From 47cfe9615a81fc600fba0876c760715cf9e8b261 Mon Sep 17 00:00:00 2001 From: EricZijian_Siter Date: Fri, 21 Jul 2023 23:44:11 +0800 Subject: [PATCH 01/39] Add tests for Smoke CO Alarm (#27123) * Fix decoding of TLV payload data Ignore empty field events. * Restyled by autopep8 * Smoke/CO: Add test scripts * [SMCO] Update test scripts * SMOKECO: Revised document * Revised yaml per the documentation * Regen zap * Disable all smco tests in Darwin * Regen zap * Fix PICS * Update test scripts per review comments * Remove Unit Testing Cluster * Restyled by prettier-yaml * Update test scripts per review comments * Regen zap * Update test scripts per review comments --------- Co-authored-by: Hare Co-authored-by: Restyled.io --- .../templates/tests/ciTests.json | 10 +- .../smoke-co-alarm-app.matter | 303 -- .../smoke-co-alarm-app.zap | 1503 ------ scripts/tests/chiptest/__init__.py | 5 + src/app/tests/suites/certification/PICS.yaml | 113 + .../certification/Test_TC_SMCO_1_1.yaml | 255 + .../certification/Test_TC_SMCO_2_1.yaml | 156 + .../certification/Test_TC_SMCO_2_2.yaml | 250 + .../certification/Test_TC_SMCO_2_3.yaml | 249 + .../certification/Test_TC_SMCO_2_4.yaml | 582 +++ .../certification/Test_TC_SMCO_2_5.yaml | 1021 ++++ .../certification/Test_TC_SMCO_2_6.yaml | 489 ++ .../tests/suites/certification/ci-pics-values | 34 + src/app/tests/suites/ciTests.json | 10 + src/app/tests/suites/manualTests.json | 2 + .../chip-tool/zap-generated/test/Commands.h | 4638 +++++++++++++++++ 16 files changed, 7813 insertions(+), 1807 deletions(-) create mode 100644 src/app/tests/suites/certification/Test_TC_SMCO_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_SMCO_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_SMCO_2_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_SMCO_2_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_SMCO_2_4.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_SMCO_2_5.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_SMCO_2_6.yaml diff --git a/examples/darwin-framework-tool/templates/tests/ciTests.json b/examples/darwin-framework-tool/templates/tests/ciTests.json index 6e076c8d97e799..83adb93e91fffc 100644 --- a/examples/darwin-framework-tool/templates/tests/ciTests.json +++ b/examples/darwin-framework-tool/templates/tests/ciTests.json @@ -38,6 +38,14 @@ "Disabled because the power source configuration cluster is now deprecated and not present in all-clusters", "Test_TC_PSCFG_1_1", "Test_TC_PSCFG_2_1", - "Test_TC_PSCFG_2_2" + "Test_TC_PSCFG_2_2", + "Disabled due to SmokeCOAlarm not being enabled in Matter.framework for now:", + "Test_TC_SMCO_1_1", + "Test_TC_SMCO_2_1", + "Test_TC_SMCO_2_2", + "Test_TC_SMCO_2_3", + "Test_TC_SMCO_2_4", + "Test_TC_SMCO_2_5", + "Test_TC_SMCO_2_6" ] } diff --git a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter index f3a361a71119e9..fd4e3ef135a2ca 100644 --- a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter +++ b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter @@ -1725,223 +1725,6 @@ server cluster SmokeCoAlarm = 92 { command SelfTestRequest(): DefaultSuccess = 0; } -/** The Test Cluster is meant to validate the generated code */ -server cluster UnitTesting = 4294048773 { - enum SimpleEnum : ENUM8 { - kUnspecified = 0; - kValueA = 1; - kValueB = 2; - kValueC = 3; - } - - bitmap Bitmap16MaskMap : BITMAP16 { - kMaskVal1 = 0x1; - kMaskVal2 = 0x2; - kMaskVal3 = 0x4; - kMaskVal4 = 0x4000; - } - - bitmap Bitmap32MaskMap : BITMAP32 { - kMaskVal1 = 0x1; - kMaskVal2 = 0x2; - kMaskVal3 = 0x4; - kMaskVal4 = 0x40000000; - } - - bitmap Bitmap64MaskMap : BITMAP64 { - kMaskVal1 = 0x1; - kMaskVal2 = 0x2; - kMaskVal3 = 0x4; - kMaskVal4 = 0x4000000000000000; - } - - bitmap Bitmap8MaskMap : BITMAP8 { - kMaskVal1 = 0x1; - kMaskVal2 = 0x2; - kMaskVal3 = 0x4; - kMaskVal4 = 0x40; - } - - bitmap SimpleBitmap : BITMAP8 { - kValueA = 0x1; - kValueB = 0x2; - kValueC = 0x4; - } - - struct SimpleStruct { - int8u a = 0; - boolean b = 1; - SimpleEnum c = 2; - octet_string d = 3; - char_string e = 4; - SimpleBitmap f = 5; - single g = 6; - double h = 7; - } - - fabric_scoped struct TestFabricScoped { - fabric_sensitive int8u fabricSensitiveInt8u = 1; - optional fabric_sensitive int8u optionalFabricSensitiveInt8u = 2; - nullable fabric_sensitive int8u nullableFabricSensitiveInt8u = 3; - optional nullable fabric_sensitive int8u nullableOptionalFabricSensitiveInt8u = 4; - fabric_sensitive char_string fabricSensitiveCharString = 5; - fabric_sensitive SimpleStruct fabricSensitiveStruct = 6; - fabric_sensitive int8u fabricSensitiveInt8uList[] = 7; - fabric_idx fabricIndex = 254; - } - - struct NullablesAndOptionalsStruct { - nullable int16u nullableInt = 0; - optional int16u optionalInt = 1; - optional nullable int16u nullableOptionalInt = 2; - nullable char_string nullableString = 3; - optional char_string optionalString = 4; - optional nullable char_string nullableOptionalString = 5; - nullable SimpleStruct nullableStruct = 6; - optional SimpleStruct optionalStruct = 7; - optional nullable SimpleStruct nullableOptionalStruct = 8; - nullable SimpleEnum nullableList[] = 9; - optional SimpleEnum optionalList[] = 10; - optional nullable SimpleEnum nullableOptionalList[] = 11; - } - - struct NestedStruct { - int8u a = 0; - boolean b = 1; - SimpleStruct c = 2; - } - - struct NestedStructList { - int8u a = 0; - boolean b = 1; - SimpleStruct c = 2; - SimpleStruct d[] = 3; - int32u e[] = 4; - octet_string f[] = 5; - int8u g[] = 6; - } - - struct DoubleNestedStructList { - NestedStructList a[] = 0; - } - - struct TestListStructOctet { - int64u member1 = 0; - octet_string<32> member2 = 1; - } - - info event TestEvent = 1 { - INT8U arg1 = 1; - SimpleEnum arg2 = 2; - BOOLEAN arg3 = 3; - SimpleStruct arg4 = 4; - SimpleStruct arg5[] = 5; - SimpleEnum arg6[] = 6; - } - - fabric_sensitive info event TestFabricScopedEvent = 2 { - fabric_idx fabricIndex = 254; - } - - attribute boolean boolean = 0; - attribute Bitmap8MaskMap bitmap8 = 1; - attribute Bitmap16MaskMap bitmap16 = 2; - attribute Bitmap32MaskMap bitmap32 = 3; - attribute Bitmap64MaskMap bitmap64 = 4; - attribute int8u int8u = 5; - attribute int16u int16u = 6; - attribute int24u int24u = 7; - attribute int32u int32u = 8; - attribute int40u int40u = 9; - attribute int48u int48u = 10; - attribute int56u int56u = 11; - attribute int64u int64u = 12; - attribute int8s int8s = 13; - attribute int16s int16s = 14; - attribute int24s int24s = 15; - attribute int32s int32s = 16; - attribute int40s int40s = 17; - attribute int48s int48s = 18; - attribute int56s int56s = 19; - attribute int64s int64s = 20; - attribute enum8 enum8 = 21; - attribute enum16 enum16 = 22; - attribute single floatSingle = 23; - attribute double floatDouble = 24; - attribute octet_string<10> octetString = 25; - attribute INT8U listInt8u[] = 26; - attribute OCTET_STRING listOctetString[] = 27; - attribute TestListStructOctet listStructOctetString[] = 28; - attribute long_octet_string<1000> longOctetString = 29; - attribute char_string<10> charString = 30; - attribute long_char_string<1000> longCharString = 31; - attribute epoch_us epochUs = 32; - attribute epoch_s epochS = 33; - attribute vendor_id vendorId = 34; - attribute NullablesAndOptionalsStruct listNullablesAndOptionalsStruct[] = 35; - attribute SimpleEnum enumAttr = 36; - attribute SimpleStruct structAttr = 37; - attribute int8u rangeRestrictedInt8u = 38; - attribute int8s rangeRestrictedInt8s = 39; - attribute int16u rangeRestrictedInt16u = 40; - attribute int16s rangeRestrictedInt16s = 41; - attribute LONG_OCTET_STRING listLongOctetString[] = 42; - attribute TestFabricScoped listFabricScoped[] = 43; - timedwrite attribute boolean timedWriteBoolean = 48; - attribute boolean generalErrorBoolean = 49; - attribute boolean clusterErrorBoolean = 50; - attribute nullable boolean nullableBoolean = 16384; - attribute nullable Bitmap8MaskMap nullableBitmap8 = 16385; - attribute nullable Bitmap16MaskMap nullableBitmap16 = 16386; - attribute nullable Bitmap32MaskMap nullableBitmap32 = 16387; - attribute nullable Bitmap64MaskMap nullableBitmap64 = 16388; - attribute nullable int8u nullableInt8u = 16389; - attribute nullable int16u nullableInt16u = 16390; - attribute nullable int24u nullableInt24u = 16391; - attribute nullable int32u nullableInt32u = 16392; - attribute nullable int40u nullableInt40u = 16393; - attribute nullable int48u nullableInt48u = 16394; - attribute nullable int56u nullableInt56u = 16395; - attribute nullable int64u nullableInt64u = 16396; - attribute nullable int8s nullableInt8s = 16397; - attribute nullable int16s nullableInt16s = 16398; - attribute nullable int24s nullableInt24s = 16399; - attribute nullable int32s nullableInt32s = 16400; - attribute nullable int40s nullableInt40s = 16401; - attribute nullable int48s nullableInt48s = 16402; - attribute nullable int56s nullableInt56s = 16403; - attribute nullable int64s nullableInt64s = 16404; - attribute nullable enum8 nullableEnum8 = 16405; - attribute nullable enum16 nullableEnum16 = 16406; - attribute nullable single nullableFloatSingle = 16407; - attribute nullable double nullableFloatDouble = 16408; - attribute nullable octet_string<10> nullableOctetString = 16409; - attribute nullable char_string<10> nullableCharString = 16414; - attribute nullable SimpleEnum nullableEnumAttr = 16420; - attribute nullable SimpleStruct nullableStruct = 16421; - attribute nullable int8u nullableRangeRestrictedInt8u = 16422; - attribute nullable int8s nullableRangeRestrictedInt8s = 16423; - attribute nullable int16u nullableRangeRestrictedInt16u = 16424; - attribute nullable int16s nullableRangeRestrictedInt16s = 16425; - readonly attribute command_id generatedCommandList[] = 65528; - readonly attribute command_id acceptedCommandList[] = 65529; - readonly attribute event_id eventList[] = 65530; - readonly attribute attrib_id attributeList[] = 65531; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; - - request struct TestEmitTestEventRequestRequest { - INT8U arg1 = 0; - SimpleEnum arg2 = 1; - BOOLEAN arg3 = 2; - } - - command Test(): DefaultSuccess = 0; - command TestNotHandled(): DefaultSuccess = 1; - command TestSpecific(): TestSpecificResponse = 2; - command TestEmitTestEventRequest(TestEmitTestEventRequestRequest): TestEmitTestEventResponse = 20; -} - endpoint 0 { device type rootdevice = 22, version 1; binding cluster OtaSoftwareUpdateProvider; @@ -2245,92 +2028,6 @@ endpoint 1 { ram attribute featureMap default = 3; ram attribute clusterRevision default = 1; } - - server cluster UnitTesting { - emits event TestEvent; - ram attribute boolean default = false; - ram attribute bitmap8 default = 0; - ram attribute bitmap16 default = 0; - ram attribute bitmap32 default = 0; - ram attribute bitmap64 default = 0; - ram attribute int8u default = 0; - ram attribute int16u default = 0; - ram attribute int24u default = 0; - ram attribute int32u default = 0; - ram attribute int40u default = 0; - ram attribute int48u default = 0; - ram attribute int56u default = 0; - ram attribute int64u default = 0; - ram attribute int8s default = 0; - ram attribute int16s default = 0; - ram attribute int24s default = 0; - ram attribute int32s default = 0; - ram attribute int40s default = 0; - ram attribute int48s default = 0; - ram attribute int56s default = 0; - ram attribute int64s default = 0; - ram attribute enum8 default = 0; - ram attribute enum16 default = 0; - ram attribute floatSingle default = 0; - ram attribute floatDouble default = 0; - ram attribute octetString; - callback attribute listInt8u; - callback attribute listOctetString; - callback attribute listStructOctetString; - ram attribute longOctetString; - ram attribute charString; - ram attribute longCharString; - ram attribute epochUs; - ram attribute epochS; - ram attribute vendorId default = 0; - callback attribute listNullablesAndOptionalsStruct; - ram attribute enumAttr; - callback attribute structAttr; - ram attribute rangeRestrictedInt8u default = 70; - ram attribute rangeRestrictedInt8s default = -5; - ram attribute rangeRestrictedInt16u default = 200; - ram attribute rangeRestrictedInt16s default = -5; - callback attribute listLongOctetString; - callback attribute listFabricScoped; - ram attribute timedWriteBoolean; - callback attribute generalErrorBoolean; - callback attribute clusterErrorBoolean; - ram attribute nullableBoolean default = false; - ram attribute nullableBitmap8 default = 0; - ram attribute nullableBitmap16 default = 0; - ram attribute nullableBitmap32 default = 0; - ram attribute nullableBitmap64 default = 0; - ram attribute nullableInt8u default = 0; - ram attribute nullableInt16u default = 0; - ram attribute nullableInt24u default = 0; - ram attribute nullableInt32u default = 0; - ram attribute nullableInt40u default = 0; - ram attribute nullableInt48u default = 0; - ram attribute nullableInt56u default = 0; - ram attribute nullableInt64u default = 0; - ram attribute nullableInt8s default = 0; - ram attribute nullableInt16s default = 0; - ram attribute nullableInt24s default = 0; - ram attribute nullableInt32s default = 0; - ram attribute nullableInt40s default = 0; - ram attribute nullableInt48s default = 0; - ram attribute nullableInt56s default = 0; - ram attribute nullableInt64s default = 0; - ram attribute nullableEnum8 default = 0; - ram attribute nullableEnum16 default = 0; - ram attribute nullableFloatSingle default = 0; - ram attribute nullableFloatDouble default = 0; - ram attribute nullableOctetString; - ram attribute nullableCharString; - ram attribute nullableEnumAttr; - callback attribute nullableStruct; - ram attribute nullableRangeRestrictedInt8u default = 70; - ram attribute nullableRangeRestrictedInt8s default = -5; - ram attribute nullableRangeRestrictedInt16u default = 200; - ram attribute nullableRangeRestrictedInt16s default = -5; - ram attribute featureMap default = 0; - ram attribute clusterRevision default = 1; - } } diff --git a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.zap b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.zap index 938cb271bacc04..8a4bba62e7b8ab 100644 --- a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.zap +++ b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.zap @@ -7109,1509 +7109,6 @@ "included": 1 } ] - }, - { - "name": "Unit Testing", - "code": 4294048773, - "mfgCode": null, - "define": "UNIT_TESTING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "Test", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "TestNotHandled", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "TestSpecific", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "TestEmitTestEventRequest", - "code": 20, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Unit Testing", - "code": 4294048773, - "mfgCode": null, - "define": "UNIT_TESTING_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "boolean", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "false", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "bitmap8", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "Bitmap8MaskMap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "bitmap16", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "Bitmap16MaskMap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "bitmap32", - "code": 3, - "mfgCode": null, - "side": "server", - "type": "Bitmap32MaskMap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "bitmap64", - "code": 4, - "mfgCode": null, - "side": "server", - "type": "Bitmap64MaskMap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int8u", - "code": 5, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int16u", - "code": 6, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int24u", - "code": 7, - "mfgCode": null, - "side": "server", - "type": "int24u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int32u", - "code": 8, - "mfgCode": null, - "side": "server", - "type": "int32u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int40u", - "code": 9, - "mfgCode": null, - "side": "server", - "type": "int40u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int48u", - "code": 10, - "mfgCode": null, - "side": "server", - "type": "int48u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int56u", - "code": 11, - "mfgCode": null, - "side": "server", - "type": "int56u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int64u", - "code": 12, - "mfgCode": null, - "side": "server", - "type": "int64u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int8s", - "code": 13, - "mfgCode": null, - "side": "server", - "type": "int8s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int16s", - "code": 14, - "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int24s", - "code": 15, - "mfgCode": null, - "side": "server", - "type": "int24s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int32s", - "code": 16, - "mfgCode": null, - "side": "server", - "type": "int32s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int40s", - "code": 17, - "mfgCode": null, - "side": "server", - "type": "int40s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int48s", - "code": 18, - "mfgCode": null, - "side": "server", - "type": "int48s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int56s", - "code": 19, - "mfgCode": null, - "side": "server", - "type": "int56s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "int64s", - "code": 20, - "mfgCode": null, - "side": "server", - "type": "int64s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "enum8", - "code": 21, - "mfgCode": null, - "side": "server", - "type": "enum8", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "enum16", - "code": 22, - "mfgCode": null, - "side": "server", - "type": "enum16", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "float_single", - "code": 23, - "mfgCode": null, - "side": "server", - "type": "single", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "float_double", - "code": 24, - "mfgCode": null, - "side": "server", - "type": "double", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "octet_string", - "code": 25, - "mfgCode": null, - "side": "server", - "type": "octet_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "list_int8u", - "code": 26, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "list_octet_string", - "code": 27, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "list_struct_octet_string", - "code": 28, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "long_octet_string", - "code": 29, - "mfgCode": null, - "side": "server", - "type": "long_octet_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "char_string", - "code": 30, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "long_char_string", - "code": 31, - "mfgCode": null, - "side": "server", - "type": "long_char_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "epoch_us", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "epoch_us", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "epoch_s", - "code": 33, - "mfgCode": null, - "side": "server", - "type": "epoch_s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "vendor_id", - "code": 34, - "mfgCode": null, - "side": "server", - "type": "vendor_id", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "list_nullables_and_optionals_struct", - "code": 35, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "enum_attr", - "code": 36, - "mfgCode": null, - "side": "server", - "type": "SimpleEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "struct_attr", - "code": 37, - "mfgCode": null, - "side": "server", - "type": "SimpleStruct", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "range_restricted_int8u", - "code": 38, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "70", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "range_restricted_int8s", - "code": 39, - "mfgCode": null, - "side": "server", - "type": "int8s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "-5", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "range_restricted_int16u", - "code": 40, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "200", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "range_restricted_int16s", - "code": 41, - "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "-5", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "list_long_octet_string", - "code": 42, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "list_fabric_scoped", - "code": 43, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "timed_write_boolean", - "code": 48, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "general_error_boolean", - "code": 49, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "cluster_error_boolean", - "code": 50, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "unsupported", - "code": 255, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_boolean", - "code": 16384, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "false", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_bitmap8", - "code": 16385, - "mfgCode": null, - "side": "server", - "type": "Bitmap8MaskMap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_bitmap16", - "code": 16386, - "mfgCode": null, - "side": "server", - "type": "Bitmap16MaskMap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_bitmap32", - "code": 16387, - "mfgCode": null, - "side": "server", - "type": "Bitmap32MaskMap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_bitmap64", - "code": 16388, - "mfgCode": null, - "side": "server", - "type": "Bitmap64MaskMap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int8u", - "code": 16389, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int16u", - "code": 16390, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int24u", - "code": 16391, - "mfgCode": null, - "side": "server", - "type": "int24u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int32u", - "code": 16392, - "mfgCode": null, - "side": "server", - "type": "int32u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int40u", - "code": 16393, - "mfgCode": null, - "side": "server", - "type": "int40u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int48u", - "code": 16394, - "mfgCode": null, - "side": "server", - "type": "int48u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int56u", - "code": 16395, - "mfgCode": null, - "side": "server", - "type": "int56u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int64u", - "code": 16396, - "mfgCode": null, - "side": "server", - "type": "int64u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int8s", - "code": 16397, - "mfgCode": null, - "side": "server", - "type": "int8s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int16s", - "code": 16398, - "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int24s", - "code": 16399, - "mfgCode": null, - "side": "server", - "type": "int24s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int32s", - "code": 16400, - "mfgCode": null, - "side": "server", - "type": "int32s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int40s", - "code": 16401, - "mfgCode": null, - "side": "server", - "type": "int40s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int48s", - "code": 16402, - "mfgCode": null, - "side": "server", - "type": "int48s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int56s", - "code": 16403, - "mfgCode": null, - "side": "server", - "type": "int56s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_int64s", - "code": 16404, - "mfgCode": null, - "side": "server", - "type": "int64s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_enum8", - "code": 16405, - "mfgCode": null, - "side": "server", - "type": "enum8", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_enum16", - "code": 16406, - "mfgCode": null, - "side": "server", - "type": "enum16", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_float_single", - "code": 16407, - "mfgCode": null, - "side": "server", - "type": "single", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_float_double", - "code": 16408, - "mfgCode": null, - "side": "server", - "type": "double", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_octet_string", - "code": 16409, - "mfgCode": null, - "side": "server", - "type": "octet_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_char_string", - "code": 16414, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_enum_attr", - "code": 16420, - "mfgCode": null, - "side": "server", - "type": "SimpleEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_struct", - "code": 16421, - "mfgCode": null, - "side": "server", - "type": "SimpleStruct", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_range_restricted_int8u", - "code": 16422, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "70", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_range_restricted_int8s", - "code": 16423, - "mfgCode": null, - "side": "server", - "type": "int8s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "-5", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_range_restricted_int16u", - "code": 16424, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "200", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "nullable_range_restricted_int16s", - "code": 16425, - "mfgCode": null, - "side": "server", - "type": "int16s", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "-5", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "write_only_int8u", - "code": 16426, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "GeneratedCommandList", - "code": 65528, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 0, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "AcceptedCommandList", - "code": 65529, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 0, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "EventList", - "code": 65530, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 0, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "AttributeList", - "code": 65531, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 0, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ], - "events": [ - { - "name": "TestEvent", - "code": 1, - "mfgCode": null, - "side": "server", - "included": 1 - } - ] } ] } diff --git a/scripts/tests/chiptest/__init__.py b/scripts/tests/chiptest/__init__.py index e88d246ed74339..87c308c60030f6 100644 --- a/scripts/tests/chiptest/__init__.py +++ b/scripts/tests/chiptest/__init__.py @@ -143,6 +143,11 @@ def _GetInDevelopmentTests() -> Set[str]: "Test_TC_PSCFG_1_1.yaml", # Power source configuration cluster is deprecated and removed from all-clusters "Test_TC_PSCFG_2_1.yaml", # Power source configuration cluster is deprecated and removed from all-clusters "Test_TC_PSCFG_2_2.yaml", # Power source configuration cluster is deprecated and removed from all-clusters + "Test_TC_SMCO_2_2.yaml", # chip-repl does not support timeout (07/20/2023) + "Test_TC_SMCO_2_3.yaml", # chip-repl does not support timeout (07/20/2023) + "Test_TC_SMCO_2_4.yaml", # chip-repl does not support timeout (07/20/2023) + "Test_TC_SMCO_2_5.yaml", # chip-repl does not support timeout (07/20/2023) + "Test_TC_SMCO_2_6.yaml", # chip-repl does not support timeout (07/20/2023) } diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index 7bc663fe5f54bd..25ebac3b8dde39 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -5903,6 +5903,119 @@ PICS: - label: "Read all supported mandatory attribute" id: S.C.AM-READ + # Smoke CO Alarm Cluster Test Plan + - label: "Does the device implement the SMOKECO cluster as a server?" + id: SMOKECO.S + + - label: "Does the device implement the SMOKECO cluster as a client?" + id: SMOKECO.C + + # + # server / features + # + - label: "Does the device support this specific cluster feature?" + id: SMOKECO.S.F00 + + - label: "Does the device support this specific cluster feature?" + id: SMOKECO.S.F01 + + # + # server / attributes + # + - label: "Does the device implement the ExpressedState attribute?" + id: SMOKECO.S.A0000 + + - label: "Does the device implement the SmokeState attribute?" + id: SMOKECO.S.A0001 + + - label: "Does the device implement the COState attribute?" + id: SMOKECO.S.A0002 + + - label: "Does the device implement the BatteryAlert attribute?" + id: SMOKECO.S.A0003 + + - label: "Does the device implement the DeviceMuted attribute?" + id: SMOKECO.S.A0004 + + - label: "Does the device implement the TestInProgress attribute?" + id: SMOKECO.S.A0005 + + - label: "Does the device implement the HardwareFaultAlert attribute?" + id: SMOKECO.S.A0006 + + - label: "Does the device implement the EndOfServiceAlert attribute?" + id: SMOKECO.S.A0007 + + - label: "Does the device implement the InterconnectSmokeAlarm attribute?" + id: SMOKECO.S.A0008 + + - label: "Does the device implement the InterconnectCOAlarm attribute?" + id: SMOKECO.S.A0009 + + - label: "Does the device implement the ContaminationState attribute?" + id: SMOKECO.S.A000a + + - label: "Does the device implement the SensitivityLevel attribute?" + id: SMOKECO.S.A000b + + - label: "Does the device implement the ExpiryDate attribute?" + id: SMOKECO.S.A000c + + # + # server / Events + # + - label: "Does the device implement the SmokeAlarm event?" + id: SMOKECO.S.E00 + + - label: "Does the device implement the COAlarm event?" + id: SMOKECO.S.E01 + + - label: "Does the device implement the LowBattery event?" + id: SMOKECO.S.E02 + + - label: "Does the device implement the HardwareFault event?" + id: SMOKECO.S.E03 + + - label: "Does the device implement the EndOfService event?" + id: SMOKECO.S.E04 + + - label: "Does the device implement the SelfTestComplete event?" + id: SMOKECO.S.E05 + + - label: "Does the device implement the AlarmMuted event?" + id: SMOKECO.S.E06 + + - label: "Does the device implement the MuteEnded event?" + id: SMOKECO.S.E07 + + - label: "Does the device implement the InterconnectSmokeAlarm event?" + id: SMOKECO.S.E08 + + - label: "Does the device implement the InterconnectCOAlarm event?" + id: SMOKECO.S.E09 + + - label: "Does the device implement the AllClear event?" + id: SMOKECO.S.E0a + + # + # server / manually + # + - label: + "Can the TestInProgress attribute be changed by physical control at + the device?" + id: SMOKECO.M.ManuallyControlledTest + + - label: + "Can the DeviceMuted attribute be changed by physical control at the + device?" + id: SMOKECO.M.ManuallyControlledMute + + # + # server / commandsReceived + # + - label: "Does the device implement receiving the SelfTestRequest command?" + id: SMOKECO.S.C00.Rsp + # Software Diagnostics Cluster Test Plan - label: "Does the device implement the Software Diagnostics cluster as a diff --git a/src/app/tests/suites/certification/Test_TC_SMCO_1_1.yaml b/src/app/tests/suites/certification/Test_TC_SMCO_1_1.yaml new file mode 100644 index 00000000000000..07730f59f0e57d --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_SMCO_1_1.yaml @@ -0,0 +1,255 @@ +# 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: 4.1.1. [TC-SMCO-1.1] Global Attributes with DUT as Server + +PICS: + - SMOKECO.S + +config: + nodeId: 0x12344321 + cluster: "Smoke CO Alarm" + endpoint: 1 + +tests: + - label: "Commission DUT to TH" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + + - label: "TH reads the ClusterRevision attribute from the DUT" + command: "readAttribute" + attribute: "ClusterRevision" + response: + value: 1 + constraints: + type: int16u + + - label: "TH reads from the DUT the FeatureMap attribute" + PICS: "!SMOKECO.S.F00 && !SMOKECO.S.F01" + command: "readAttribute" + attribute: "FeatureMap" + response: + value: 0 + constraints: + type: bitmap32 + + - label: "TH reads from the DUT the FeatureMap attribute(Smoke Alarm)" + PICS: SMOKECO.S.F00 && !SMOKECO.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + value: 1 + constraints: + type: bitmap32 + + - label: "TH reads from the DUT the FeatureMap attribute(CO Alarm)" + PICS: SMOKECO.S.F01 && !SMOKECO.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + value: 2 + constraints: + type: bitmap32 + + - label: + "TH reads from the DUT the FeatureMap attribute(Smoke Alarm & CO + Alarm)" + PICS: SMOKECO.S.F00 && SMOKECO.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + value: 3 + constraints: + type: bitmap32 + + - label: "TH reads from the DUT the AttributeList attribute" + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 3, 5, 6, 7] + + - label: "TH reads from the DUT the AttributeList attribute(SmokeState)" + PICS: SMOKECO.S.A0001 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [1] + + - label: "TH reads from the DUT the AttributeList attribute(COState)" + PICS: SMOKECO.S.A0002 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [2] + + - label: "TH reads from the DUT the AttributeList attribute(DeviceMuted)" + PICS: SMOKECO.S.A0004 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [4] + + - label: + "TH reads from the DUT the AttributeList + attribute(InterconnectSmokeAlarm)" + PICS: SMOKECO.S.A0008 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [8] + + - label: + "TH reads from the DUT the AttributeList + attribute(InterconnectCOAlarm)" + PICS: SMOKECO.S.A0009 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [9] + + - label: + "TH reads from the DUT the AttributeList attribute(ContaminationState)" + PICS: SMOKECO.S.A000a + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [10] + + - label: + "TH reads from the DUT the AttributeList + attribute(SmokeSensitivityLevel)" + PICS: SMOKECO.S.A000b + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [11] + + - label: "TH reads from the DUT the AttributeList attribute(ExpiryDate)" + PICS: SMOKECO.S.A000c + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [12] + + - label: "TH reads from the DUT the EventList attribute" + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [2, 3, 4, 5, 10] + + - label: "TH reads from the DUT the EventList attribute(SmokeAlarm)" + PICS: SMOKECO.S.E00 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [0] + + - label: "TH reads from the DUT the EventList attribute(COAlarm)" + PICS: SMOKECO.S.E01 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [1] + + - label: "TH reads from the DUT the EventList attribute(AlarmMuted)" + PICS: SMOKECO.S.E06 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [6] + + - label: "TH reads from the DUT the EventList attribute(MuteEnded)" + PICS: SMOKECO.S.E07 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [7] + + - label: + "TH reads from the DUT the EventList attribute(InterconnectSmokeAlarm)" + PICS: SMOKECO.S.E08 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [8] + + - label: + "TH reads from the DUT the EventList attribute(InterconnectCOAlarm)" + PICS: SMOKECO.S.E09 + command: "readAttribute" + attribute: "EventList" + response: + constraints: + type: list + contains: [9] + + - label: "TH reads from the DUT the AcceptedCommandList attribute" + PICS: "!SMOKECO.S.C00.Rsp" + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + value: [] + constraints: + type: list + + - label: "TH reads from the DUT the AcceptedCommandList attribute" + PICS: SMOKECO.S.C00.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + constraints: + type: list + contains: [0] + + - label: "TH reads from the DUT the GeneratedCommandList attribute" + command: "readAttribute" + attribute: "GeneratedCommandList" + response: + value: [] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_SMCO_2_1.yaml b/src/app/tests/suites/certification/Test_TC_SMCO_2_1.yaml new file mode 100644 index 00000000000000..5eeb7084800ab7 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_SMCO_2_1.yaml @@ -0,0 +1,156 @@ +# 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: 4.2.1. [TC-SMCO-2.1] Attributes with DUT as Server + +PICS: + - SMOKECO.S + +config: + nodeId: 0x12344321 + cluster: "Smoke CO Alarm" + endpoint: 1 + +tests: + - label: "Commission DUT to TH" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + + - label: "TH reads from the DUT the ExpressedState attribute" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 8 + + - label: "TH reads from the DUT the SmokeState attribute" + PICS: SMOKECO.S.A0001 + command: "readAttribute" + attribute: "SmokeState" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 2 + + - label: "TH reads from the DUT the COState attribute" + PICS: SMOKECO.S.A0002 + command: "readAttribute" + attribute: "COState" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 2 + + - label: "TH reads from the DUT the BatteryAlert attribute" + PICS: SMOKECO.S.A0003 + command: "readAttribute" + attribute: "BatteryAlert" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 2 + + - label: "TH reads from the DUT the DeviceMuted attribute" + PICS: SMOKECO.S.A0004 + command: "readAttribute" + attribute: "DeviceMuted" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 1 + + - label: "TH reads from the DUT the TestInProgress attribute" + PICS: SMOKECO.S.A0005 + command: "readAttribute" + attribute: "TestInProgress" + response: + constraints: + type: boolean + + - label: "TH reads from the DUT the HardwareFaultAlert attribute" + PICS: SMOKECO.S.A0006 + command: "readAttribute" + attribute: "HardwareFaultAlert" + response: + constraints: + type: boolean + + - label: "TH reads from the DUT the EndOfServiceAlert attribute" + PICS: SMOKECO.S.A0007 + command: "readAttribute" + attribute: "EndOfServiceAlert" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 1 + + - label: "TH reads from the DUT the InterconnectSmokeAlarm attribute" + PICS: SMOKECO.S.A0008 + command: "readAttribute" + attribute: "InterconnectSmokeAlarm" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 2 + + - label: "TH reads from the DUT the InterconnectCOAlarm attribute" + PICS: SMOKECO.S.A0009 + command: "readAttribute" + attribute: "InterconnectCOAlarm" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 2 + + - label: "TH reads from the DUT the ContaminationState attribute" + PICS: SMOKECO.S.A000a + command: "readAttribute" + attribute: "ContaminationState" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 3 + + - label: "TH reads from the DUT the SmokeSensitivityLevel attribute" + PICS: SMOKECO.S.A000b + command: "readAttribute" + attribute: "SmokeSensitivityLevel" + response: + constraints: + type: enum8 + minValue: 0 + maxValue: 2 + + - label: "TH reads from the DUT the ExpiryDate attribute" + PICS: SMOKECO.S.A000c + command: "readAttribute" + attribute: "ExpiryDate" + response: + constraints: + type: epoch_s diff --git a/src/app/tests/suites/certification/Test_TC_SMCO_2_2.yaml b/src/app/tests/suites/certification/Test_TC_SMCO_2_2.yaml new file mode 100644 index 00000000000000..a36cb1a46944cf --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_SMCO_2_2.yaml @@ -0,0 +1,250 @@ +# 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: + 4.2.2. [TC-SMCO-2.2] Primary Functionality - Smoke Alarm with DUT as Server + +PICS: + - SMOKECO.S + +config: + nodeId: 0x12344321 + cluster: "Smoke CO Alarm" + endpoint: 1 + timeout: 990 + TEST_EVENT_TRIGGER_KEY: + type: octet_string + defaultValue: "hex:00112233445566778899aabbccddeeff" + TEST_EVENT_TRIGGER_WARNING_SMOKE_ALARM: + type: int64u + defaultValue: "0xffffffff00000090" + TEST_EVENT_TRIGGER_CRITICAL_SMOKE_ALARM: + type: int64u + defaultValue: "0xffffffff0000009c" + TEST_EVENT_TRIGGER_SMOKE_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a0" + EVENT_NUMBER: + type: int64u + defaultValue: 0 + +tests: + - label: "Commission DUT to TH" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + + - label: "TH subscribes to SmokeState attribute from DUT" + PICS: SMOKECO.S.A0001 + command: "subscribeAttribute" + attribute: "SmokeState" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH reads TestEventTriggersEnabled attribute from General Diagnostics + Cluster" + PICS: DGGEN.S.A0008 + cluster: "General Diagnostics" + endpoint: 0 + command: "readAttribute" + attribute: "TestEventTriggersEnabled" + response: + value: 1 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Warning Smoke Alarm Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_WARNING_SMOKE_ALARM + + - label: + "TH waits for a report of SmokeState attribute from DUT with a timeout + of 300 seconds" + PICS: SMOKECO.S.A0001 + command: "waitForReport" + attribute: "SmokeState" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 1 + constraints: + type: enum8 + + - label: "TH reads SmokeAlarm event from DUT" + PICS: SMOKECO.S.E00 + command: "readEvent" + event: "SmokeAlarm" + EVENT_NUMBER: EVENT_NUMBER + 1 + response: + value: { AlarmSeverityLevel: 1 } + + - label: "Start manually DUT self-test" + cluster: "LogCommands" + PICS: PICS_USER_PROMPT && SMOKECO.M.ManuallyControlledTest + command: "UserPrompt" + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: "TH reads TestInProgress attribute from DUT" + PICS: SMOKECO.S.A0005 + command: "readAttribute" + attribute: "TestInProgress" + response: + value: 0 + constraints: + type: boolean + + - label: "TH sends SelfTestRequest command to DUT" + PICS: SMOKECO.S.C00.Rsp + command: "SelfTestRequest" + response: + error: BUSY + + - label: "TH reads TestInProgress attribute from DUT" + PICS: SMOKECO.S.A0005 + command: "readAttribute" + attribute: "TestInProgress" + response: + value: 0 + constraints: + type: boolean + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Critical Smoke Alarm Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CRITICAL_SMOKE_ALARM + + - label: + "TH waits for a report of SmokeState attribute from DUT with a timeout + of 300 seconds" + PICS: SMOKECO.S.A0001 + command: "waitForReport" + attribute: "SmokeState" + timeout: 300 + response: + value: 2 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 1 + constraints: + type: enum8 + + - label: "TH reads SmokeAlarm event from DUT" + PICS: SMOKECO.S.E00 + command: "readEvent" + event: "SmokeAlarm" + EVENT_NUMBER: EVENT_NUMBER + 2 + response: + value: { AlarmSeverityLevel: 2 } + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke Alarm Test Event Clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_SMOKE_ALARM_CLEAR + + - label: + "TH waits for a report of SmokeState attribute from DUT with a timeout + of 300 seconds" + PICS: SMOKECO.S.A0001 + command: "waitForReport" + attribute: "SmokeState" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads AllClear event from DUT" + PICS: SMOKECO.S.E0a + command: "readEvent" + event: "AllClear" + EVENT_NUMBER: EVENT_NUMBER + 3 + response: + value: {} diff --git a/src/app/tests/suites/certification/Test_TC_SMCO_2_3.yaml b/src/app/tests/suites/certification/Test_TC_SMCO_2_3.yaml new file mode 100644 index 00000000000000..96d3f41e2047d8 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_SMCO_2_3.yaml @@ -0,0 +1,249 @@ +# 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: 4.2.3. [TC-SMCO-2.3] Primary Functionality - CO Alarm with DUT as Server + +PICS: + - SMOKECO.S + +config: + nodeId: 0x12344321 + cluster: "Smoke CO Alarm" + endpoint: 1 + timeout: 990 + TEST_EVENT_TRIGGER_KEY: + type: octet_string + defaultValue: "hex:00112233445566778899aabbccddeeff" + TEST_EVENT_TRIGGER_WARNING_CO_ALARM: + type: int64u + defaultValue: "0xffffffff00000091" + TEST_EVENT_TRIGGER_CRITICAL_CO_ALARM: + type: int64u + defaultValue: "0xffffffff0000009d" + TEST_EVENT_TRIGGER_CO_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a1" + EVENT_NUMBER: + type: int64u + defaultValue: 0 + +tests: + - label: "Commission DUT to TH" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + + - label: "TH subscribes to COState attribute from DUT" + PICS: SMOKECO.S.A0002 + command: "subscribeAttribute" + attribute: "COState" + minInterval: 3 + maxInterval: 30 + response: + Value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH reads TestEventTriggersEnabled attribute from General Diagnostics + Cluster" + PICS: DGGEN.S.A0008 + cluster: "General Diagnostics" + endpoint: 0 + command: "readAttribute" + attribute: "TestEventTriggersEnabled" + response: + value: 1 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Warning CO Alarm Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_WARNING_CO_ALARM + + - label: + "TH waits for a report of COState attribute from DUT with a timeout of + 300 seconds" + PICS: SMOKECO.S.A0002 + command: "waitForReport" + attribute: "COState" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 2 + constraints: + type: enum8 + + - label: "TH reads COAlarm event from DUT" + PICS: SMOKECO.S.E01 + command: "readEvent" + event: "COAlarm" + EVENT_NUMBER: EVENT_NUMBER + 1 + response: + value: { AlarmSeverityLevel: 1 } + + - label: "Start manually DUT self-test" + cluster: "LogCommands" + PICS: PICS_USER_PROMPT && SMOKECO.M.ManuallyControlledTest + command: "UserPrompt" + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: "TH reads TestInProgress attribute from DUT" + PICS: SMOKECO.S.A0005 + command: "readAttribute" + attribute: "TestInProgress" + response: + value: 0 + constraints: + type: boolean + + - label: "TH sends SelfTestRequest command to DUT" + PICS: SMOKECO.S.C00.Rsp + command: "SelfTestRequest" + response: + error: BUSY + + - label: "TH reads TestInProgress attribute from DUT" + PICS: SMOKECO.S.A0005 + command: "readAttribute" + attribute: "TestInProgress" + response: + value: 0 + constraints: + type: boolean + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Critical CO Alarm Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CRITICAL_CO_ALARM + + - label: + "TH waits for a report of COState attribute from DUT with a timeout of + 300 seconds" + PICS: SMOKECO.S.A0002 + command: "waitForReport" + attribute: "COState" + timeout: 300 + response: + value: 2 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 2 + constraints: + type: enum8 + + - label: "TH reads COAlarm event from DUT" + PICS: SMOKECO.S.E01 + command: "readEvent" + event: "COAlarm" + EVENT_NUMBER: EVENT_NUMBER + 2 + response: + value: { AlarmSeverityLevel: 2 } + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for CO Alarm Test Event Clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CO_ALARM_CLEAR + + - label: + "TH waits for a report of COState attribute from DUT with a timeout of + 300 seconds" + PICS: SMOKECO.S.A0002 + command: "waitForReport" + attribute: "COState" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads AllClear event from DUT" + PICS: SMOKECO.S.E0a + command: "readEvent" + event: "AllClear" + EVENT_NUMBER: EVENT_NUMBER + 3 + response: + value: {} diff --git a/src/app/tests/suites/certification/Test_TC_SMCO_2_4.yaml b/src/app/tests/suites/certification/Test_TC_SMCO_2_4.yaml new file mode 100644 index 00000000000000..353826179b1d74 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_SMCO_2_4.yaml @@ -0,0 +1,582 @@ +# 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: + 4.2.4. [TC-SMCO-2.4] Secondary Functionality - Mandatory with DUT as Server + +PICS: + - SMOKECO.S + +config: + nodeId: 0x12344321 + cluster: "Smoke CO Alarm" + endpoint: 1 + timeout: 2910 + TEST_EVENT_TRIGGER_KEY: + type: octet_string + defaultValue: "hex:00112233445566778899aabbccddeeff" + TEST_EVENT_TRIGGER_WARNING_BATTERY_ALERT: + type: int64u + defaultValue: "0xffffffff00000095" + TEST_EVENT_TRIGGER_CRITICAL_BATTERY_ALERT: + type: int64u + defaultValue: "0xffffffff0000009e" + TEST_EVENT_TRIGGER_BATTERY_ALERT_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a5" + TEST_EVENT_TRIGGER_HARDWARE_FAULT_ALERT: + type: int64u + defaultValue: "0xffffffff00000093" + TEST_EVENT_TRIGGER_HARDWARE_FAULT_ALERT_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a3" + TEST_EVENT_TRIGGER_END_OF_SERVICE_ALERT: + type: int64u + defaultValue: "0xffffffff0000009a" + TEST_EVENT_TRIGGER_END_OF_SERVICE_ALERT_CLEAR: + type: int64u + defaultValue: "0xffffffff000000aa" + EVENT_NUMBER: + type: int64u + defaultValue: 0 + +tests: + - label: "Commission DUT to TH" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + + - label: "TH subscribes to BatteryAlert attribute from DUT" + PICS: SMOKECO.S.A0003 + command: "subscribeAttribute" + attribute: "BatteryAlert" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH reads TestEventTriggersEnabled attribute from General Diagnostics + Cluster" + PICS: DGGEN.S.A0008 + cluster: "General Diagnostics" + endpoint: 0 + command: "readAttribute" + attribute: "TestEventTriggersEnabled" + response: + value: 1 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Warning Battery Alert Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_WARNING_BATTERY_ALERT + + - label: + "TH waits for a report of BatteryAlert attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A0003 + command: "waitForReport" + attribute: "BatteryAlert" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 3 + constraints: + type: enum8 + + - label: "TH reads LowBattery event from DUT" + PICS: SMOKECO.S.E02 + command: "readEvent" + event: "LowBattery" + EVENT_NUMBER: EVENT_NUMBER + 1 + response: + value: { AlarmSeverityLevel: 1 } + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Critical Battery Alert Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CRITICAL_BATTERY_ALERT + + - label: + "TH waits for a report of BatteryAlert attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A0003 + command: "waitForReport" + attribute: "BatteryAlert" + timeout: 300 + response: + value: 2 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 3 + constraints: + type: enum8 + + - label: "TH reads LowBattery event from DUT" + PICS: SMOKECO.S.E02 + command: "readEvent" + event: "LowBattery" + EVENT_NUMBER: EVENT_NUMBER + 2 + response: + value: { AlarmSeverityLevel: 2 } + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Battery Alert Test Event Clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_BATTERY_ALERT_CLEAR + + - label: + "TH waits for a report of BatteryAlert attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A0003 + command: "waitForReport" + attribute: "BatteryAlert" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads AllClear event from DUT" + PICS: SMOKECO.S.E0a + command: "readEvent" + event: "AllClear" + EVENT_NUMBER: EVENT_NUMBER + 3 + response: + value: {} + + - label: "TH subscribes to HardwareFaultAlert attribute from DUT" + PICS: SMOKECO.S.A0006 + command: "subscribeAttribute" + attribute: "HardwareFaultAlert" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: boolean + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Hardware Fault Alert Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_HARDWARE_FAULT_ALERT + + - label: + "TH waits for a report of HardwareFaultAlert attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A0006 + command: "waitForReport" + attribute: "HardwareFaultAlert" + timeout: 300 + response: + value: 1 + constraints: + type: boolean + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 5 + constraints: + type: enum8 + + - label: "TH reads HardwareFault event from DUT" + PICS: SMOKECO.S.E03 + command: "readEvent" + event: "HardwareFault" + EVENT_NUMBER: EVENT_NUMBER + 4 + response: + value: {} + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Hardware Fault Alert Test Event + Clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_HARDWARE_FAULT_ALERT_CLEAR + + - label: + "TH waits for a report of HardwareFaultAlert attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A0006 + command: "waitForReport" + attribute: "HardwareFaultAlert" + timeout: 300 + response: + value: 0 + constraints: + type: boolean + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads AllClear event from DUT" + PICS: SMOKECO.S.E0a + command: "readEvent" + event: "AllClear" + EVENT_NUMBER: EVENT_NUMBER + 5 + response: + value: {} + + - label: "TH subscribes to EndOfServiceAlert attribute from DUT" + PICS: SMOKECO.S.A0007 + command: "subscribeAttribute" + attribute: "EndOfServiceAlert" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for End of Service Alert Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_END_OF_SERVICE_ALERT + + - label: + "TH waits for a report of EndOfServiceAlert attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A0007 + command: "waitForReport" + attribute: "EndOfServiceAlert" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 6 + constraints: + type: enum8 + + - label: "TH reads EndOfService event from DUT" + PICS: SMOKECO.S.E04 + command: "readEvent" + event: "EndOfService" + EVENT_NUMBER: EVENT_NUMBER + 6 + response: + value: {} + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for End of Service Alert Test Event + Clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_END_OF_SERVICE_ALERT_CLEAR + + - label: + "TH waits for a report of EndOfServiceAlert attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A0007 + command: "waitForReport" + attribute: "EndOfServiceAlert" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads AllClear event from DUT" + PICS: SMOKECO.S.E0a + command: "readEvent" + event: "AllClear" + EVENT_NUMBER: EVENT_NUMBER + 7 + response: + value: {} + + - label: "TH subscribes to TestInProgress attribute from DUT" + PICS: SMOKECO.S.A0005 + command: "subscribeAttribute" + attribute: "TestInProgress" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: boolean + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "Start manually DUT self-test" + cluster: "LogCommands" + PICS: PICS_USER_PROMPT && SMOKECO.M.ManuallyControlledTest + command: "UserPrompt" + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH waits for a report of TestInProgress attribute from DUT with a + timeout of 180 seconds" + PICS: SMOKECO.S.A0005 + command: "waitForReport" + attribute: "TestInProgress" + timeout: 180 + response: + value: 1 + constraints: + type: boolean + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 4 + constraints: + type: enum8 + + - label: + "TH waits for a report of TestInProgress attribute from DUT with a + timeout of 180 seconds" + PICS: SMOKECO.S.A0005 + command: "waitForReport" + attribute: "TestInProgress" + timeout: 180 + response: + value: 0 + constraints: + type: boolean + + - label: "TH reads SelfTestComplete event from DUT" + PICS: SMOKECO.S.E05 + command: "readEvent" + event: "SelfTestComplete" + EVENT_NUMBER: EVENT_NUMBER + 8 + response: + value: {} + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads AllClear event from DUT" + PICS: SMOKECO.S.E0a + command: "readEvent" + event: "AllClear" + EVENT_NUMBER: EVENT_NUMBER + 9 + response: + value: {} + + - label: "TH sends SelfTestRequest command to DUT" + PICS: SMOKECO.S.C00.Rsp + command: "SelfTestRequest" + + - label: + "TH waits for a report of TestInProgress attribute from DUT with a + timeout of 180 seconds" + PICS: SMOKECO.S.A0005 + command: "waitForReport" + attribute: "TestInProgress" + timeout: 180 + response: + value: 1 + constraints: + type: boolean + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 4 + constraints: + type: enum8 + + - label: + "TH waits for a report of TestInProgress attribute from DUT with a + timeout of 180 seconds" + PICS: SMOKECO.S.A0005 + command: "waitForReport" + attribute: "TestInProgress" + timeout: 180 + response: + value: 0 + constraints: + type: boolean + + - label: "TH reads SelfTestComplete event from DUT" + PICS: SMOKECO.S.E05 + command: "readEvent" + event: "SelfTestComplete" + EVENT_NUMBER: EVENT_NUMBER + 10 + response: + value: {} + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads AllClear event from DUT" + PICS: SMOKECO.S.E0a + command: "readEvent" + event: "AllClear" + EVENT_NUMBER: EVENT_NUMBER + 11 + response: + value: {} diff --git a/src/app/tests/suites/certification/Test_TC_SMCO_2_5.yaml b/src/app/tests/suites/certification/Test_TC_SMCO_2_5.yaml new file mode 100644 index 00000000000000..edb7e6d8cf3021 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_SMCO_2_5.yaml @@ -0,0 +1,1021 @@ +# 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: 4.2.5. [TC-SMCO-2.5] Secondary Functionality - Optional with DUT as Server + +PICS: + - SMOKECO.S + +config: + nodeId: 0x12344321 + cluster: "Smoke CO Alarm" + endpoint: 1 + timeout: 6090 + TEST_EVENT_TRIGGER_KEY: + type: octet_string + defaultValue: "hex:00112233445566778899aabbccddeeff" + TEST_EVENT_TRIGGER_WARNING_SMOKE_ALARM: + type: int64u + defaultValue: "0xffffffff00000090" + TEST_EVENT_TRIGGER_CRITICAL_SMOKE_ALARM: + type: int64u + defaultValue: "0xffffffff0000009c" + TEST_EVENT_TRIGGER_SMOKE_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a0" + TEST_EVENT_TRIGGER_WARNING_CO_ALARM: + type: int64u + defaultValue: "0xffffffff00000091" + TEST_EVENT_TRIGGER_CRITICAL_CO_ALARM: + type: int64u + defaultValue: "0xffffffff0000009d" + TEST_EVENT_TRIGGER_CO_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a1" + TEST_EVENT_TRIGGER_DEVICE_MUTED: + type: int64u + defaultValue: "0xffffffff0000009b" + TEST_EVENT_TRIGGER_DEVICE_MUTED_CLEAR: + type: int64u + defaultValue: "0xffffffff000000ab" + TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM: + type: int64u + defaultValue: "0xffffffff00000092" + TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a2" + TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM: + type: int64u + defaultValue: "0xffffffff00000094" + TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a4" + TEST_EVENT_TRIGGER_CONTAMINATION_STATE_HIGH: + type: int64u + defaultValue: "0xffffffff00000096" + TEST_EVENT_TRIGGER_CONTAMINATION_STATE_LOW: + type: int64u + defaultValue: "0xffffffff00000097" + TTEST_EVENT_TRIGGER_CONTAMINATION_STATE_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a6" + TEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_HIGH: + type: int64u + defaultValue: "0xffffffff00000098" + TEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_LOW: + type: int64u + defaultValue: "0xffffffff00000099" + TTEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a8" + EVENT_NUMBER: + type: int64u + defaultValue: 0 + +tests: + - label: "Commission DUT to TH" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + + - label: "TH subscribes to InterconnectSmokeAlarm attribute from DUT" + PICS: SMOKECO.S.A0008 + command: "subscribeAttribute" + attribute: "InterconnectSmokeAlarm" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0008 && SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH reads TestEventTriggersEnabled attribute from General Diagnostics + Cluster" + PICS: SMOKECO.S.A0008 && DGGEN.S.A0008 + cluster: "General Diagnostics" + endpoint: 0 + command: "readAttribute" + attribute: "TestEventTriggersEnabled" + response: + value: 1 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Interconnect Smoke Alarm Test + Event" + PICS: SMOKECO.S.A0008 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM + + - label: + "TH waits for a report of InterconnectSmokeAlarm attribute from DUT + with a timeout of 300 seconds" + PICS: SMOKECO.S.A0008 + command: "waitForReport" + attribute: "InterconnectSmokeAlarm" + timeout: 300 + response: + saveAs: interconnectSmokeAlarmSeverityLevel + constraints: + type: enum8 + minValue: 1 + maxValue: 2 + + - label: "TH reads InterconnectSmokeAlarm event from DUT" + PICS: SMOKECO.S.A0008 && SMOKECO.S.E08 + command: "readEvent" + event: "InterconnectSmokeAlarm" + EVENT_NUMBER: EVENT_NUMBER + 1 + response: + value: { AlarmSeverityLevel: interconnectSmokeAlarmSeverityLevel } + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0008 && SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 7 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Interconnect Smoke Alarm Test + Event Clear" + PICS: SMOKECO.S.A0008 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM_CLEAR + + - label: + "TH waits for a report of InterconnectSmokeAlarm attribute from DUT + with a timeout of 300 seconds" + PICS: SMOKECO.S.A0008 + command: "waitForReport" + attribute: "InterconnectSmokeAlarm" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0008 && SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads AllClear event from DUT" + PICS: SMOKECO.S.A0008 && SMOKECO.S.E0a + command: "readEvent" + event: "AllClear" + EVENT_NUMBER: EVENT_NUMBER + 2 + response: + value: {} + + - label: "TH subscribes to InterconnectCOAlarm attribute from DUT" + PICS: SMOKECO.S.A0009 + command: "subscribeAttribute" + attribute: "InterconnectCOAlarm" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0009 && SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Interconnect CO Alarm Test Event" + PICS: SMOKECO.S.A0009 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM + + - label: + "TH waits for a report of InterconnectCOAlarm attribute from DUT with + a timeout of 300 seconds" + PICS: SMOKECO.S.A0009 + command: "waitForReport" + attribute: "InterconnectCOAlarm" + timeout: 300 + response: + saveAs: interconnectCOAlarmSeverityLevel + constraints: + type: enum8 + minValue: 1 + maxValue: 2 + + - label: "TH reads InterconnectCOAlarm event from DUT" + PICS: SMOKECO.S.A0009 && SMOKECO.S.E09 + command: "readEvent" + event: "InterconnectCOAlarm" + EVENT_NUMBER: EVENT_NUMBER + 3 + response: + value: { AlarmSeverityLevel: interconnectCOAlarmSeverityLevel } + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0009 && SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 8 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Interconnect CO Alarm Test Event + Clear" + PICS: SMOKECO.S.A0009 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM_CLEAR + + - label: + "TH waits for a report of InterconnectCOAlarm attribute from DUT with + a timeout of 300 seconds" + PICS: SMOKECO.S.A0009 + command: "waitForReport" + attribute: "InterconnectCOAlarm" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0009 && SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads AllClear event from DUT" + PICS: SMOKECO.S.E0a + command: "readEvent" + event: "AllClear" + EVENT_NUMBER: EVENT_NUMBER + 4 + response: + value: {} + + - label: "TH subscribes to ContaminationState attribute from DUT" + PICS: SMOKECO.S.A000a + command: "subscribeAttribute" + attribute: "ContaminationState" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Contamination State (High) Test + Event" + PICS: SMOKECO.S.A000a && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CONTAMINATION_STATE_HIGH + + - label: + "TH waits for a report of ContaminationState attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A000a + command: "waitForReport" + attribute: "ContaminationState" + timeout: 300 + response: + constraints: + type: enum8 + minValue: 2 + maxValue: 3 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Contamination State Test Event + Clear" + PICS: SMOKECO.S.A000a && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TTEST_EVENT_TRIGGER_CONTAMINATION_STATE_CLEAR + + - label: + "TH waits for a report of ContaminationState attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A000a + command: "waitForReport" + attribute: "ContaminationState" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Contamination State (Low) Test + Event" + PICS: SMOKECO.S.A000a && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CONTAMINATION_STATE_LOW + + - label: + "TH waits for a report of ContaminationState attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A000a + command: "waitForReport" + attribute: "ContaminationState" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Contamination State Test Event + Clear" + PICS: SMOKECO.S.A000a && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TTEST_EVENT_TRIGGER_CONTAMINATION_STATE_CLEAR + + - label: + "TH waits for a report of ContaminationState attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A000a + command: "waitForReport" + attribute: "ContaminationState" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH subscribes to SmokeSensitivityLevel attribute from DUT" + PICS: SMOKECO.S.A000b + command: "subscribeAttribute" + attribute: "SmokeSensitivityLevel" + minInterval: 3 + maxInterval: 30 + response: + value: 1 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke Sensitivity Level (High) + Test Event" + PICS: SMOKECO.S.A000b && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_HIGH + + - label: + "TH waits for a report of SmokeSensitivityLevel attribute from DUT + with a timeout of 300 seconds" + PICS: SMOKECO.S.A000b + command: "waitForReport" + attribute: "SmokeSensitivityLevel" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke Sensitivity Level Test + Event Clear" + PICS: SMOKECO.S.A000b && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TTEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_CLEAR + + - label: + "TH waits for a report of SmokeSensitivityLevel attribute from DUT + with a timeout of 300 seconds" + PICS: SMOKECO.S.A000b + command: "waitForReport" + attribute: "SmokeSensitivityLevel" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke Sensitivity Level (Low) + Test Event" + PICS: SMOKECO.S.A000b && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_LOW + + - label: + "TH waits for a report of SmokeSensitivityLevel attribute from DUT + with a timeout of 300 seconds" + PICS: SMOKECO.S.A000b + command: "waitForReport" + attribute: "SmokeSensitivityLevel" + timeout: 300 + response: + value: 2 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke Sensitivity Level Test + Event Clear" + PICS: SMOKECO.S.A000b && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TTEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_CLEAR + + - label: + "TH waits for a report of SmokeSensitivityLevel attribute from DUT + with a timeout of 300 seconds" + PICS: SMOKECO.S.A000b + command: "waitForReport" + attribute: "SmokeSensitivityLevel" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: "TH subscribes to DeviceMuted attribute from DUT" + PICS: SMOKECO.S.A0004 + command: "subscribeAttribute" + attribute: "DeviceMuted" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads FeatureMap attribute(Smoke Alarm) from DUT" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "TH subscribes to SmokeState attribute from DUT" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.A0001 + command: "subscribeAttribute" + attribute: "SmokeState" + minInterval: 3 + maxInterval: 30 + keepSubscriptions: true + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Warning Smoke Alarm Test Event" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_WARNING_SMOKE_ALARM + + - label: + "TH waits for a report of SmokeState attribute from DUT with a timeout + of 300 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.A0001 + command: "waitForReport" + attribute: "SmokeState" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Manual Device Mute Test Event" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_DEVICE_MUTED + + - label: + "TH waits for a report of DeviceMuted attribute from DUT with a + timeout of 120 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 + command: "waitForReport" + attribute: "DeviceMuted" + timeout: 120 + response: + value: 1 + constraints: + type: enum8 + + - label: "TH reads AlarmMuted event from DUT" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.E06 + command: "readEvent" + event: "AlarmMuted" + EVENT_NUMBER: EVENT_NUMBER + 5 + response: + value: {} + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Manual Device Mute Test Event + Clear" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_DEVICE_MUTED_CLEAR + + - label: + "TH waits for a report of DeviceMuted attribute from DUT with a + timeout of 120 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 + command: "waitForReport" + attribute: "DeviceMuted" + timeout: 120 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads MuteEnded event from DUT" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.E07 + command: "readEvent" + event: "MuteEnded" + EVENT_NUMBER: EVENT_NUMBER + 6 + response: + value: {} + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Critical Smoke Alarm Test Event" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CRITICAL_SMOKE_ALARM + + - label: + "TH waits for a report of SmokeState attribute from DUT with a timeout + of 300 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.A0001 + command: "waitForReport" + attribute: "SmokeState" + timeout: 300 + response: + value: 2 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Manual Device Mute Test Event" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_DEVICE_MUTED + + - label: "TH waits 60 Seconds" + PICS: "!PICS_SDK_CI_ONLY" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 60000 + + - label: "TH reads DeviceMuted attribute from DUT" + PICS: SMOKECO.S.A0004 + command: "readAttribute" + attribute: "DeviceMuted" + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke Alarm Test Event Clear" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_SMOKE_ALARM_CLEAR + + - label: + "TH waits for a report of SmokeState attribute from DUT with a timeout + of 300 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.A0001 && SMOKECO.S.F00 + command: "waitForReport" + attribute: "SmokeState" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads FeatureMap attribute(CO Alarm) from DUT" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x2] + + - label: "TH subscribes to COState attribute from DUT" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.A0002 + command: "subscribeAttribute" + attribute: "COState" + minInterval: 3 + maxInterval: 30 + keepSubscriptions: true + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Warning CO Alarm Test Event" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_WARNING_CO_ALARM + + - label: + "TH waits for a report of COState attribute from DUT with a timeout of + 300 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.A0002 + command: "waitForReport" + attribute: "COState" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Manual Device Mute Test Event" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_DEVICE_MUTED + + - label: + "TH waits for a report of DeviceMuted attribute from DUT with a + timeout of 120 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 + command: "waitForReport" + attribute: "DeviceMuted" + timeout: 120 + response: + value: 1 + constraints: + type: enum8 + + - label: "TH reads AlarmMuted event from DUT" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.E06 + command: "readEvent" + event: "AlarmMuted" + EVENT_NUMBER: EVENT_NUMBER + 7 + response: + value: {} + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Manual Device Mute Test Event + Clear" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_DEVICE_MUTED_CLEAR + + - label: + "TH waits for a report of DeviceMuted attribute from DUT with a + timeout of 120 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 + command: "waitForReport" + attribute: "DeviceMuted" + timeout: 120 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads MuteEnded event from DUT" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.E07 + command: "readEvent" + event: "MuteEnded" + EVENT_NUMBER: EVENT_NUMBER + 8 + response: + value: {} + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Critical CO Alarm Test Event" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CRITICAL_CO_ALARM + + - label: + "TH waits for a report of COState attribute from DUT with a timeout of + 300 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.A0002 + command: "waitForReport" + attribute: "COState" + timeout: 300 + response: + value: 2 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Manual Device Mute Test Event" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_DEVICE_MUTED + + - label: "TH waits 60 Seconds" + PICS: "!PICS_SDK_CI_ONLY" + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 60000 + + - label: "TH reads DeviceMuted attribute from DUT" + PICS: SMOKECO.S.A0004 + command: "readAttribute" + attribute: "DeviceMuted" + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for CO Alarm Test Event Clear" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CO_ALARM_CLEAR + + - label: + "TH waits for a report of COState attribute from DUT with a timeout of + 300 seconds" + PICS: SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.A0002 + command: "waitForReport" + attribute: "COState" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 diff --git a/src/app/tests/suites/certification/Test_TC_SMCO_2_6.yaml b/src/app/tests/suites/certification/Test_TC_SMCO_2_6.yaml new file mode 100644 index 00000000000000..5d68637c3b5a46 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_SMCO_2_6.yaml @@ -0,0 +1,489 @@ +# 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: + 4.2.6. [TC-SMCO-2.6] ExpressedState Attribute - Multiple Alarms with DUT as + Server + +PICS: + - SMOKECO.S + +config: + nodeId: 0x12344321 + cluster: "Smoke CO Alarm" + endpoint: 1 + timeout: 3090 + TEST_EVENT_TRIGGER_KEY: + type: octet_string + defaultValue: "hex:00112233445566778899aabbccddeeff" + TEST_EVENT_TRIGGER_WARNING_SMOKE_ALARM: + type: int64u + defaultValue: "0xffffffff00000090" + TEST_EVENT_TRIGGER_SMOKE_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a0" + TEST_EVENT_TRIGGER_WARNING_CO_ALARM: + type: int64u + defaultValue: "0xffffffff00000091" + TEST_EVENT_TRIGGER_CO_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a1" + TEST_EVENT_TRIGGER_WARNING_BATTERY_ALERT: + type: int64u + defaultValue: "0xffffffff00000095" + TEST_EVENT_TRIGGER_BATTERY_ALERT_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a5" + TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM: + type: int64u + defaultValue: "0xffffffff00000092" + TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a2" + TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM: + type: int64u + defaultValue: "0xffffffff00000094" + TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM_CLEAR: + type: int64u + defaultValue: "0xffffffff000000a4" + HIEST_PRI_ALARM: + type: int8u + defaultValue: 1 + +tests: + - label: "Commission DUT to TH" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 + + - label: "TH subscribes to BatteryAlert attribute from DUT" + PICS: SMOKECO.S.A0003 + command: "subscribeAttribute" + attribute: "BatteryAlert" + minInterval: 3 + maxInterval: 30 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH subscribes to InterconnectSmokeAlarm attribute from DUT" + PICS: SMOKECO.S.A0008 + command: "subscribeAttribute" + attribute: "InterconnectSmokeAlarm" + minInterval: 3 + maxInterval: 30 + keepSubscriptions: true + response: + value: 0 + constraints: + type: enum8 + + - label: "TH subscribes to InterconnectCOAlarm attribute from DUT" + PICS: SMOKECO.S.A0009 + command: "subscribeAttribute" + attribute: "InterconnectCOAlarm" + minInterval: 3 + maxInterval: 30 + keepSubscriptions: true + response: + value: 0 + constraints: + type: enum8 + + - label: "TH subscribes to COState attribute from DUT" + PICS: SMOKECO.S.A0002 + command: "subscribeAttribute" + attribute: "COState" + minInterval: 3 + maxInterval: 30 + keepSubscriptions: true + response: + value: 0 + constraints: + type: enum8 + + - label: "TH subscribes to SmokeState attribute from DUT" + PICS: SMOKECO.S.A0001 + command: "subscribeAttribute" + attribute: "SmokeState" + minInterval: 3 + maxInterval: 30 + keepSubscriptions: true + response: + value: 0 + constraints: + type: enum8 + + - label: + "TH reads TestEventTriggersEnabled attribute from General Diagnostics + Cluster" + PICS: DGGEN.S.A0008 + cluster: "General Diagnostics" + endpoint: 0 + command: "readAttribute" + attribute: "TestEventTriggersEnabled" + response: + value: 1 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Warning Battery Alert Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_WARNING_BATTERY_ALERT + + - label: + "TH waits for a report of BatteryAlert attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A0003 + command: "waitForReport" + attribute: "BatteryAlert" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Interconnect Smoke Alarm Test + Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM + + - label: + "TH waits for a report of InterconnectSmokeAlarm attribute from DUT + with a timeout of 300 seconds" + PICS: SMOKECO.S.A0008 + command: "waitForReport" + attribute: "InterconnectSmokeAlarm" + timeout: 300 + response: + constraints: + type: enum8 + minValue: 1 + maxValue: 2 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Interconnect CO Alarm Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM + + - label: + "TH waits for a report of InterconnectCOAlarm attribute from DUT with + a timeout of 300 seconds" + PICS: SMOKECO.S.A0009 + command: "waitForReport" + attribute: "InterconnectCOAlarm" + timeout: 300 + response: + constraints: + type: enum8 + minValue: 1 + maxValue: 2 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Warning CO Alarm Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_WARNING_CO_ALARM + + - label: + "TH waits for a report of COState attribute from DUT with a timeout of + 300 seconds" + PICS: SMOKECO.S.A0002 + command: "waitForReport" + attribute: "COState" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Warning Smoke Alarm Test Event" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_WARNING_SMOKE_ALARM + + - label: + "TH waits for a report of SmokeState attribute from DUT with a timeout + of 300 seconds" + PICS: SMOKECO.S.A0001 + command: "waitForReport" + attribute: "SmokeState" + timeout: 300 + response: + value: 1 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: HIEST_PRI_ALARM + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke Alarm Test Event Clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_SMOKE_ALARM_CLEAR + + - label: + "TH waits for a report of SmokeState attribute from DUT with a timeout + of 300 seconds" + PICS: SMOKECO.S.A0001 + command: "waitForReport" + attribute: "SmokeState" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: HIEST_PRI_ALARM + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for CO Alarm Test Event clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_CO_ALARM_CLEAR + + - label: + "TH waits for a report of COState attribute from DUT with a timeout of + 300 seconds" + PICS: SMOKECO.S.A0002 + command: "waitForReport" + attribute: "COState" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: HIEST_PRI_ALARM + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Interconnect CO Alarm Test Event + Clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM_CLEAR + + - label: + "TH waits for a report of InterconnectCOAlarm attribute from DUT with + a timeout of 300 seconds" + PICS: SMOKECO.S.A0009 + command: "waitForReport" + attribute: "InterconnectCOAlarm" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: HIEST_PRI_ALARM + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Interconnect Smoke Alarm Test + Event Clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM_CLEAR + + - label: + "TH waits for a report of InterconnectSmokeAlarm attribute from DUT + with a timeout of 300 seconds" + PICS: SMOKECO.S.A0008 + command: "waitForReport" + attribute: "InterconnectSmokeAlarm" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: HIEST_PRI_ALARM + constraints: + type: enum8 + + - label: + "TH sends TestEventTrigger command to General Diagnostics Cluster on + Endpoint 0 with EnableKey field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to + PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Battery Alert Test Event Clear" + PICS: DGGEN.S.C00.Rsp + cluster: "General Diagnostics" + endpoint: 0 + command: "TestEventTrigger" + arguments: + values: + - name: "EnableKey" + value: TEST_EVENT_TRIGGER_KEY + - name: "EventTrigger" + value: TEST_EVENT_TRIGGER_BATTERY_ALERT_CLEAR + + - label: + "TH waits for a report of BatteryAlert attribute from DUT with a + timeout of 300 seconds" + PICS: SMOKECO.S.A0003 + command: "waitForReport" + attribute: "BatteryAlert" + timeout: 300 + response: + value: 0 + constraints: + type: enum8 + + - label: "TH reads ExpressedState attribute from DUT" + PICS: SMOKECO.S.A0000 + command: "readAttribute" + attribute: "ExpressedState" + response: + value: 0 + constraints: + type: enum8 diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index b52820046477a7..32aa633543408f 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -654,6 +654,40 @@ S.C.AM-WRITE=0 S.C.AO-READ=0 S.C.AO-WRITE=0 +# Smoke CO Alarm Cluster +SMOKECO.S=1 +SMOKECO.S.F00=1 +SMOKECO.S.F01=1 +SMOKECO.S.A0000=1 +SMOKECO.S.A0001=1 +SMOKECO.S.A0002=1 +SMOKECO.S.A0003=1 +SMOKECO.S.A0004=1 +SMOKECO.S.A0005=1 +SMOKECO.S.A0006=1 +SMOKECO.S.A0007=1 +SMOKECO.S.A0008=1 +SMOKECO.S.A0009=1 +SMOKECO.S.A000a=1 +SMOKECO.S.A000b=1 +SMOKECO.S.A000c=1 +SMOKECO.S.E00=1 +SMOKECO.S.E01=1 +SMOKECO.S.E02=1 +SMOKECO.S.E03=1 +SMOKECO.S.E04=1 +SMOKECO.S.E05=1 +SMOKECO.S.E06=1 +SMOKECO.S.E07=1 +SMOKECO.S.E08=1 +SMOKECO.S.E09=1 +SMOKECO.S.E0a=1 +SMOKECO.M.ManuallyControlledTest=1 +SMOKECO.M.ManuallyControlledMute=1 +SMOKECO.S.C00.Rsp=1 + +SMOKECO.C=1 + # Switch Cluster SWTCH.S=1 SWTCH.S.F00=1 diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json index 8c7b97bb7463a1..40f9c8978790c1 100644 --- a/src/app/tests/suites/ciTests.json +++ b/src/app/tests/suites/ciTests.json @@ -176,6 +176,15 @@ "PowerSourceConfiguration": ["Test_TC_PSCFG_1_1", "Test_TC_PSCFG_2_1"], "RelativeHumidityMeasurement": ["Test_TC_RH_1_1", "Test_TC_RH_2_1"], "SecureChannel": [], + "SmokeCOAlarm": [ + "Test_TC_SMCO_1_1", + "Test_TC_SMCO_2_1", + "Test_TC_SMCO_2_2", + "Test_TC_SMCO_2_3", + "Test_TC_SMCO_2_4", + "Test_TC_SMCO_2_5", + "Test_TC_SMCO_2_6" + ], "Switch": ["Test_TC_SWTCH_1_1", "Test_TC_SWTCH_2_1"], "TemperatureMeasurement": ["Test_TC_TMP_1_1", "Test_TC_TMP_2_1"], "Thermostat": ["Test_TC_TSTAT_1_1", "Test_TC_TSTAT_2_1"], @@ -359,6 +368,7 @@ "PowerSourceConfiguration", "RelativeHumidityMeasurement", "SecureChannel", + "SmokeCOAlarm", "Switch", "TemperatureMeasurement", "Thermostat", diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json index bd53c9a03962e3..4ab6e63c4845c0 100644 --- a/src/app/tests/suites/manualTests.json +++ b/src/app/tests/suites/manualTests.json @@ -250,6 +250,7 @@ "LevelControl": ["Test_TC_LVL_8_1"], "OnOff": ["Test_TC_OO_2_3"], "RelativeHumidityMeasurement": ["Test_TC_RH_2_2"], + "SmokeCOAlarm": [], "Switch": ["Test_TC_SWTCH_2_2", "Test_TC_SWTCH_3_2"], "TemperatureMeasurement": ["Test_TC_TMP_2_2"], "Thermostat": ["Test_TC_TSTAT_3_1", "Test_TC_TSTAT_3_2"], @@ -310,6 +311,7 @@ "LevelControl", "OnOff", "RelativeHumidityMeasurement", + "SmokeCOAlarm", "Switch", "TemperatureMeasurement", "Thermostat", diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 2f4f24d5404310..ba960be297db89 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -208,6 +208,13 @@ class TestList : public Command printf("Test_TC_PSCFG_2_1\n"); printf("Test_TC_RH_1_1\n"); printf("Test_TC_RH_2_1\n"); + printf("Test_TC_SMCO_1_1\n"); + printf("Test_TC_SMCO_2_1\n"); + printf("Test_TC_SMCO_2_2\n"); + printf("Test_TC_SMCO_2_3\n"); + printf("Test_TC_SMCO_2_4\n"); + printf("Test_TC_SMCO_2_5\n"); + printf("Test_TC_SMCO_2_6\n"); printf("Test_TC_SWTCH_1_1\n"); printf("Test_TC_SWTCH_2_1\n"); printf("Test_TC_TMP_1_1\n"); @@ -58889,6 +58896,4630 @@ class Test_TC_RH_2_1Suite : public TestCommand } }; +class Test_TC_SMCO_1_1Suite : public TestCommand +{ +public: + Test_TC_SMCO_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SMCO_1_1", 25, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SMCO_1_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("clusterRevision", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 1UL)); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 2UL)); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 3UL)); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 11UL)); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 12UL)); + } + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 4UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 5UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 10UL)); + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 6UL)); + } + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 7UL)); + } + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 8UL)); + } + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 9UL)); + } + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("acceptedCommandList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + } + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("generatedCommandList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Commission DUT to TH"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "TH reads the ClusterRevision attribute from the DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ClusterRevision::Id, + true, chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads from the DUT the FeatureMap attribute"); + VerifyOrDo(!ShouldSkip("!SMOKECO.S.F00 && !SMOKECO.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 3: { + LogStep(3, "TH reads from the DUT the FeatureMap attribute(Smoke Alarm)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.F00 && !SMOKECO.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 4: { + LogStep(4, "TH reads from the DUT the FeatureMap attribute(CO Alarm)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.F01 && !SMOKECO.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads from the DUT the FeatureMap attribute(Smoke Alarm & CO Alarm)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.F00 && SMOKECO.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "TH reads from the DUT the AttributeList attribute"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads from the DUT the AttributeList attribute(SmokeState)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 8: { + LogStep(8, "TH reads from the DUT the AttributeList attribute(COState)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 9: { + LogStep(9, "TH reads from the DUT the AttributeList attribute(DeviceMuted)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 10: { + LogStep(10, "TH reads from the DUT the AttributeList attribute(InterconnectSmokeAlarm)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 11: { + LogStep(11, "TH reads from the DUT the AttributeList attribute(InterconnectCOAlarm)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 12: { + LogStep(12, "TH reads from the DUT the AttributeList attribute(ContaminationState)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 13: { + LogStep(13, "TH reads from the DUT the AttributeList attribute(SmokeSensitivityLevel)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 14: { + LogStep(14, "TH reads from the DUT the AttributeList attribute(ExpiryDate)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 15: { + LogStep(15, "TH reads from the DUT the EventList attribute"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 16: { + LogStep(16, "TH reads from the DUT the EventList attribute(SmokeAlarm)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 17: { + LogStep(17, "TH reads from the DUT the EventList attribute(COAlarm)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 18: { + LogStep(18, "TH reads from the DUT the EventList attribute(AlarmMuted)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E06"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 19: { + LogStep(19, "TH reads from the DUT the EventList attribute(MuteEnded)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E07"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 20: { + LogStep(20, "TH reads from the DUT the EventList attribute(InterconnectSmokeAlarm)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 21: { + LogStep(21, "TH reads from the DUT the EventList attribute(InterconnectCOAlarm)"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E09"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 22: { + LogStep(22, "TH reads from the DUT the AcceptedCommandList attribute"); + VerifyOrDo(!ShouldSkip("!SMOKECO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 23: { + LogStep(23, "TH reads from the DUT the AcceptedCommandList attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 24: { + LogStep(24, "TH reads from the DUT the GeneratedCommandList attribute"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SMCO_2_1Suite : public TestCommand +{ +public: + Test_TC_SMCO_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SMCO_2_1", 14, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SMCO_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 8U)); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 1U)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::EndOfServiceEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 1U)); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ContaminationStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::SensitivityEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "epoch_s", "epoch_s")); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Commission DUT to TH"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "TH reads from the DUT the ExpressedState attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads from the DUT the SmokeState attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::SmokeState::Id, true, + chip::NullOptional); + } + case 3: { + LogStep(3, "TH reads from the DUT the COState attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::COState::Id, true, + chip::NullOptional); + } + case 4: { + LogStep(4, "TH reads from the DUT the BatteryAlert attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::BatteryAlert::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads from the DUT the DeviceMuted attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::DeviceMuted::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, "TH reads from the DUT the TestInProgress attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::TestInProgress::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads from the DUT the HardwareFaultAlert attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::HardwareFaultAlert::Id, + true, chip::NullOptional); + } + case 8: { + LogStep(8, "TH reads from the DUT the EndOfServiceAlert attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::EndOfServiceAlert::Id, + true, chip::NullOptional); + } + case 9: { + LogStep(9, "TH reads from the DUT the InterconnectSmokeAlarm attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::InterconnectSmokeAlarm::Id, true, chip::NullOptional); + } + case 10: { + LogStep(10, "TH reads from the DUT the InterconnectCOAlarm attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::InterconnectCOAlarm::Id, true, chip::NullOptional); + } + case 11: { + LogStep(11, "TH reads from the DUT the ContaminationState attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ContaminationState::Id, + true, chip::NullOptional); + } + case 12: { + LogStep(12, "TH reads from the DUT the SmokeSensitivityLevel attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::SmokeSensitivityLevel::Id, true, chip::NullOptional); + } + case 13: { + LogStep(13, "TH reads from the DUT the ExpiryDate attribute"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpiryDate::Id, true, + chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SMCO_2_2Suite : public TestCommand +{ +public: + Test_TC_SMCO_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SMCO_2_2", 20, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("TEST_EVENT_TRIGGER_KEY", &mTestEventTriggerKey); + AddArgument("TEST_EVENT_TRIGGER_WARNING_SMOKE_ALARM", 0, UINT64_MAX, &mTestEventTriggerWarningSmokeAlarm); + AddArgument("TEST_EVENT_TRIGGER_CRITICAL_SMOKE_ALARM", 0, UINT64_MAX, &mTestEventTriggerCriticalSmokeAlarm); + AddArgument("TEST_EVENT_TRIGGER_SMOKE_ALARM_CLEAR", 0, UINT64_MAX, &mTestEventTriggerSmokeAlarmClear); + AddArgument("EVENT_NUMBER", 0, UINT64_MAX, &mEventNumber); + } + + ~Test_TC_SMCO_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(990)); } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mTestEventTriggerKey; + chip::Optional mTestEventTriggerWarningSmokeAlarm; + chip::Optional mTestEventTriggerCriticalSmokeAlarm; + chip::Optional mTestEventTriggerSmokeAlarmClear; + chip::Optional mEventNumber; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testEventTriggersEnabled", value, 1)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 7: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::SmokeAlarm::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeAlarm.alarmSeverityLevel", value.alarmSeverityLevel, 1U)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testInProgress", value, 0)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_BUSY)); + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testInProgress", value, 0)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 2U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 15: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::SmokeAlarm::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeAlarm.alarmSeverityLevel", value.alarmSeverityLevel, 2U)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 19: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Commission DUT to TH"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "TH subscribes to SmokeState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::SmokeState::Id, 3, + 30, true, chip::NullOptional, chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 3: { + LogStep(3, "TH reads TestEventTriggersEnabled attribute from General Diagnostics Cluster"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::TestEventTriggersEnabled::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Warning Smoke Alarm Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerWarningSmokeAlarm.HasValue() ? mTestEventTriggerWarningSmokeAlarm.Value() : 0xffffffff00000090ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 5: { + LogStep(5, "TH waits for a report of SmokeState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 6: { + LogStep(6, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads SmokeAlarm event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::SmokeAlarm::Id, false, + chip::NullOptional); + } + case 8: { + LogStep(8, "Start manually DUT self-test"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && SMOKECO.M.ManuallyControlledTest"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "TH reads TestInProgress attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::TestInProgress::Id, + true, chip::NullOptional); + } + case 10: { + LogStep(10, "TH sends SelfTestRequest command to DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::SmokeCoAlarm::Commands::SelfTestRequest::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Commands::SelfTestRequest::Id, value, + chip::NullOptional + + ); + } + case 11: { + LogStep(11, "TH reads TestInProgress attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::TestInProgress::Id, + true, chip::NullOptional); + } + case 12: { + LogStep(12, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Critical Smoke Alarm Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerCriticalSmokeAlarm.HasValue() ? mTestEventTriggerCriticalSmokeAlarm.Value() + : 0xffffffff0000009cULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 13: { + LogStep(13, "TH waits for a report of SmokeState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 14: { + LogStep(14, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 15: { + LogStep(15, "TH reads SmokeAlarm event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::SmokeAlarm::Id, false, + chip::NullOptional); + } + case 16: { + LogStep(16, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke " + "Alarm Test Event Clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerSmokeAlarmClear.HasValue() ? mTestEventTriggerSmokeAlarmClear.Value() : 0xffffffff000000a0ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 17: { + LogStep(17, "TH waits for a report of SmokeState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 18: { + LogStep(18, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 19: { + LogStep(19, "TH reads AllClear event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AllClear::Id, false, + chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SMCO_2_3Suite : public TestCommand +{ +public: + Test_TC_SMCO_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SMCO_2_3", 20, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("TEST_EVENT_TRIGGER_KEY", &mTestEventTriggerKey); + AddArgument("TEST_EVENT_TRIGGER_WARNING_CO_ALARM", 0, UINT64_MAX, &mTestEventTriggerWarningCoAlarm); + AddArgument("TEST_EVENT_TRIGGER_CRITICAL_CO_ALARM", 0, UINT64_MAX, &mTestEventTriggerCriticalCoAlarm); + AddArgument("TEST_EVENT_TRIGGER_CO_ALARM_CLEAR", 0, UINT64_MAX, &mTestEventTriggerCoAlarmClear); + AddArgument("EVENT_NUMBER", 0, UINT64_MAX, &mEventNumber); + } + + ~Test_TC_SMCO_2_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(990)); } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mTestEventTriggerKey; + chip::Optional mTestEventTriggerWarningCoAlarm; + chip::Optional mTestEventTriggerCriticalCoAlarm; + chip::Optional mTestEventTriggerCoAlarmClear; + chip::Optional mEventNumber; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testEventTriggersEnabled", value, 1)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 2U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 7: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::COAlarm::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COAlarm.alarmSeverityLevel", value.alarmSeverityLevel, 1U)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testInProgress", value, 0)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_BUSY)); + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testInProgress", value, 0)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 2U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 2U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 15: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::COAlarm::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COAlarm.alarmSeverityLevel", value.alarmSeverityLevel, 2U)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 19: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Commission DUT to TH"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "TH subscribes to COState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::COState::Id, 3, + 30, true, chip::NullOptional, chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 3: { + LogStep(3, "TH reads TestEventTriggersEnabled attribute from General Diagnostics Cluster"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::TestEventTriggersEnabled::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Warning CO Alarm Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerWarningCoAlarm.HasValue() ? mTestEventTriggerWarningCoAlarm.Value() : 0xffffffff00000091ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 5: { + LogStep(5, "TH waits for a report of COState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 6: { + LogStep(6, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads COAlarm event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::COAlarm::Id, false, + chip::NullOptional); + } + case 8: { + LogStep(8, "Start manually DUT self-test"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && SMOKECO.M.ManuallyControlledTest"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "TH reads TestInProgress attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::TestInProgress::Id, + true, chip::NullOptional); + } + case 10: { + LogStep(10, "TH sends SelfTestRequest command to DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::SmokeCoAlarm::Commands::SelfTestRequest::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Commands::SelfTestRequest::Id, value, + chip::NullOptional + + ); + } + case 11: { + LogStep(11, "TH reads TestInProgress attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::TestInProgress::Id, + true, chip::NullOptional); + } + case 12: { + LogStep(12, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Critical CO Alarm Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerCriticalCoAlarm.HasValue() ? mTestEventTriggerCriticalCoAlarm.Value() : 0xffffffff0000009dULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 13: { + LogStep(13, "TH waits for a report of COState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 14: { + LogStep(14, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 15: { + LogStep(15, "TH reads COAlarm event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::COAlarm::Id, false, + chip::NullOptional); + } + case 16: { + LogStep(16, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for CO " + "Alarm Test Event Clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerCoAlarmClear.HasValue() ? mTestEventTriggerCoAlarmClear.Value() : 0xffffffff000000a1ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 17: { + LogStep(17, "TH waits for a report of COState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 18: { + LogStep(18, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 19: { + LogStep(19, "TH reads AllClear event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AllClear::Id, false, + chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SMCO_2_4Suite : public TestCommand +{ +public: + Test_TC_SMCO_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SMCO_2_4", 50, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("TEST_EVENT_TRIGGER_KEY", &mTestEventTriggerKey); + AddArgument("TEST_EVENT_TRIGGER_WARNING_BATTERY_ALERT", 0, UINT64_MAX, &mTestEventTriggerWarningBatteryAlert); + AddArgument("TEST_EVENT_TRIGGER_CRITICAL_BATTERY_ALERT", 0, UINT64_MAX, &mTestEventTriggerCriticalBatteryAlert); + AddArgument("TEST_EVENT_TRIGGER_BATTERY_ALERT_CLEAR", 0, UINT64_MAX, &mTestEventTriggerBatteryAlertClear); + AddArgument("TEST_EVENT_TRIGGER_HARDWARE_FAULT_ALERT", 0, UINT64_MAX, &mTestEventTriggerHardwareFaultAlert); + AddArgument("TEST_EVENT_TRIGGER_HARDWARE_FAULT_ALERT_CLEAR", 0, UINT64_MAX, &mTestEventTriggerHardwareFaultAlertClear); + AddArgument("TEST_EVENT_TRIGGER_END_OF_SERVICE_ALERT", 0, UINT64_MAX, &mTestEventTriggerEndOfServiceAlert); + AddArgument("TEST_EVENT_TRIGGER_END_OF_SERVICE_ALERT_CLEAR", 0, UINT64_MAX, &mTestEventTriggerEndOfServiceAlertClear); + AddArgument("EVENT_NUMBER", 0, UINT64_MAX, &mEventNumber); + } + + ~Test_TC_SMCO_2_4Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(2910)); } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mTestEventTriggerKey; + chip::Optional mTestEventTriggerWarningBatteryAlert; + chip::Optional mTestEventTriggerCriticalBatteryAlert; + chip::Optional mTestEventTriggerBatteryAlertClear; + chip::Optional mTestEventTriggerHardwareFaultAlert; + chip::Optional mTestEventTriggerHardwareFaultAlertClear; + chip::Optional mTestEventTriggerEndOfServiceAlert; + chip::Optional mTestEventTriggerEndOfServiceAlertClear; + chip::Optional mEventNumber; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("batteryAlert", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testEventTriggersEnabled", value, 1)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("batteryAlert", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 3U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 7: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::LowBattery::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("lowBattery.alarmSeverityLevel", value.alarmSeverityLevel, 1U)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("batteryAlert", value, 2U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 3U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 11: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::LowBattery::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("lowBattery.alarmSeverityLevel", value.alarmSeverityLevel, 2U)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("batteryAlert", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 15: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("hardwareFaultAlert", value, 0)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("hardwareFaultAlert", value, 1)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + shouldContinue = true; + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 5U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 20: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::HardwareFault::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("hardwareFaultAlert", value, 0)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + shouldContinue = true; + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 24: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::EndOfServiceEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("endOfServiceAlert", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::EndOfServiceEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("endOfServiceAlert", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 6U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 29: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::EndOfService::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::EndOfServiceEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("endOfServiceAlert", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 33: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testInProgress", value, 0)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testInProgress", value, 1)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + shouldContinue = true; + break; + case 38: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 4U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 39: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testInProgress", value, 0)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + shouldContinue = true; + break; + case 40: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::SelfTestComplete::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 41: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 42: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 43: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 44: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testInProgress", value, 1)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + shouldContinue = true; + break; + case 45: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 4U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 46: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testInProgress", value, 0)); + VerifyOrReturn(CheckConstraintType("value", "boolean", "boolean")); + } + shouldContinue = true; + break; + case 47: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::SelfTestComplete::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 49: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Commission DUT to TH"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "TH subscribes to BatteryAlert attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::BatteryAlert::Id, + 3, 30, true, chip::NullOptional, chip::NullOptional, + /* autoResubscribe = */ chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 3: { + LogStep(3, "TH reads TestEventTriggersEnabled attribute from General Diagnostics Cluster"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::TestEventTriggersEnabled::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Warning Battery Alert Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerWarningBatteryAlert.HasValue() ? mTestEventTriggerWarningBatteryAlert.Value() + : 0xffffffff00000095ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 5: { + LogStep(5, "TH waits for a report of BatteryAlert attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 6: { + LogStep(6, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads LowBattery event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::LowBattery::Id, false, + chip::NullOptional); + } + case 8: { + LogStep(8, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Critical Battery Alert Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerCriticalBatteryAlert.HasValue() ? mTestEventTriggerCriticalBatteryAlert.Value() + : 0xffffffff0000009eULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 9: { + LogStep(9, "TH waits for a report of BatteryAlert attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 10: { + LogStep(10, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 11: { + LogStep(11, "TH reads LowBattery event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::LowBattery::Id, false, + chip::NullOptional); + } + case 12: { + LogStep(12, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Battery Alert Test Event Clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerBatteryAlertClear.HasValue() ? mTestEventTriggerBatteryAlertClear.Value() : 0xffffffff000000a5ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 13: { + LogStep(13, "TH waits for a report of BatteryAlert attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 14: { + LogStep(14, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 15: { + LogStep(15, "TH reads AllClear event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AllClear::Id, false, + chip::NullOptional); + } + case 16: { + LogStep(16, "TH subscribes to HardwareFaultAlert attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::HardwareFaultAlert::Id, 3, 30, true, chip::NullOptional, + chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 17: { + LogStep(17, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Hardware Fault Alert Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerHardwareFaultAlert.HasValue() ? mTestEventTriggerHardwareFaultAlert.Value() + : 0xffffffff00000093ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 18: { + LogStep(18, "TH waits for a report of HardwareFaultAlert attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 19: { + LogStep(19, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 20: { + LogStep(20, "TH reads HardwareFault event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E03"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::HardwareFault::Id, false, + chip::NullOptional); + } + case 21: { + LogStep(21, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Hardware Fault Alert Test Event Clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerHardwareFaultAlertClear.HasValue() + ? mTestEventTriggerHardwareFaultAlertClear.Value() + : 0xffffffff000000a3ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 22: { + LogStep(22, "TH waits for a report of HardwareFaultAlert attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 23: { + LogStep(23, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 24: { + LogStep(24, "TH reads AllClear event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AllClear::Id, false, + chip::NullOptional); + } + case 25: { + LogStep(25, "TH subscribes to EndOfServiceAlert attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::EndOfServiceAlert::Id, 3, 30, true, chip::NullOptional, + chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 26: { + LogStep(26, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for End " + "of Service Alert Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerEndOfServiceAlert.HasValue() ? mTestEventTriggerEndOfServiceAlert.Value() : 0xffffffff0000009aULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 27: { + LogStep(27, "TH waits for a report of EndOfServiceAlert attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 28: { + LogStep(28, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 29: { + LogStep(29, "TH reads EndOfService event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E04"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::EndOfService::Id, false, + chip::NullOptional); + } + case 30: { + LogStep(30, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for End " + "of Service Alert Test Event Clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerEndOfServiceAlertClear.HasValue() + ? mTestEventTriggerEndOfServiceAlertClear.Value() + : 0xffffffff000000aaULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 31: { + LogStep(31, "TH waits for a report of EndOfServiceAlert attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 32: { + LogStep(32, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 33: { + LogStep(33, "TH reads AllClear event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AllClear::Id, false, + chip::NullOptional); + } + case 34: { + LogStep(34, "TH subscribes to TestInProgress attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::TestInProgress::Id, 3, 30, true, chip::NullOptional, + chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 35: { + LogStep(35, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 36: { + LogStep(36, "Start manually DUT self-test"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && SMOKECO.M.ManuallyControlledTest"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 37: { + LogStep(37, "TH waits for a report of TestInProgress attribute from DUT with a timeout of 180 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 38: { + LogStep(38, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 39: { + LogStep(39, "TH waits for a report of TestInProgress attribute from DUT with a timeout of 180 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 40: { + LogStep(40, "TH reads SelfTestComplete event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::SelfTestComplete::Id, false, + chip::NullOptional); + } + case 41: { + LogStep(41, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 42: { + LogStep(42, "TH reads AllClear event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AllClear::Id, false, + chip::NullOptional); + } + case 43: { + LogStep(43, "TH sends SelfTestRequest command to DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::SmokeCoAlarm::Commands::SelfTestRequest::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Commands::SelfTestRequest::Id, value, + chip::NullOptional + + ); + } + case 44: { + LogStep(44, "TH waits for a report of TestInProgress attribute from DUT with a timeout of 180 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 45: { + LogStep(45, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 46: { + LogStep(46, "TH waits for a report of TestInProgress attribute from DUT with a timeout of 180 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 47: { + LogStep(47, "TH reads SelfTestComplete event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E05"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::SelfTestComplete::Id, false, + chip::NullOptional); + } + case 48: { + LogStep(48, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 49: { + LogStep(49, "TH reads AllClear event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AllClear::Id, false, + chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SMCO_2_5Suite : public TestCommand +{ +public: + Test_TC_SMCO_2_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SMCO_2_5", 75, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("TEST_EVENT_TRIGGER_KEY", &mTestEventTriggerKey); + AddArgument("TEST_EVENT_TRIGGER_WARNING_SMOKE_ALARM", 0, UINT64_MAX, &mTestEventTriggerWarningSmokeAlarm); + AddArgument("TEST_EVENT_TRIGGER_CRITICAL_SMOKE_ALARM", 0, UINT64_MAX, &mTestEventTriggerCriticalSmokeAlarm); + AddArgument("TEST_EVENT_TRIGGER_SMOKE_ALARM_CLEAR", 0, UINT64_MAX, &mTestEventTriggerSmokeAlarmClear); + AddArgument("TEST_EVENT_TRIGGER_WARNING_CO_ALARM", 0, UINT64_MAX, &mTestEventTriggerWarningCoAlarm); + AddArgument("TEST_EVENT_TRIGGER_CRITICAL_CO_ALARM", 0, UINT64_MAX, &mTestEventTriggerCriticalCoAlarm); + AddArgument("TEST_EVENT_TRIGGER_CO_ALARM_CLEAR", 0, UINT64_MAX, &mTestEventTriggerCoAlarmClear); + AddArgument("TEST_EVENT_TRIGGER_DEVICE_MUTED", 0, UINT64_MAX, &mTestEventTriggerDeviceMuted); + AddArgument("TEST_EVENT_TRIGGER_DEVICE_MUTED_CLEAR", 0, UINT64_MAX, &mTestEventTriggerDeviceMutedClear); + AddArgument("TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM", 0, UINT64_MAX, &mTestEventTriggerInterconnectSmokeAlarm); + AddArgument("TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM_CLEAR", 0, UINT64_MAX, + &mTestEventTriggerInterconnectSmokeAlarmClear); + AddArgument("TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM", 0, UINT64_MAX, &mTestEventTriggerInterconnectCoAlarm); + AddArgument("TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM_CLEAR", 0, UINT64_MAX, &mTestEventTriggerInterconnectCoAlarmClear); + AddArgument("TEST_EVENT_TRIGGER_CONTAMINATION_STATE_HIGH", 0, UINT64_MAX, &mTestEventTriggerContaminationStateHigh); + AddArgument("TEST_EVENT_TRIGGER_CONTAMINATION_STATE_LOW", 0, UINT64_MAX, &mTestEventTriggerContaminationStateLow); + AddArgument("TTEST_EVENT_TRIGGER_CONTAMINATION_STATE_CLEAR", 0, UINT64_MAX, &mTtestEventTriggerContaminationStateClear); + AddArgument("TEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_HIGH", 0, UINT64_MAX, &mTestEventTriggerSensitivityLevelHigh); + AddArgument("TEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_LOW", 0, UINT64_MAX, &mTestEventTriggerSensitivityLevelLow); + AddArgument("TTEST_EVENT_TRIGGER_SENSITIVITY_LEVEL_CLEAR", 0, UINT64_MAX, &mTtestEventTriggerSensitivityLevelClear); + AddArgument("EVENT_NUMBER", 0, UINT64_MAX, &mEventNumber); + } + + ~Test_TC_SMCO_2_5Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(6090)); } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mTestEventTriggerKey; + chip::Optional mTestEventTriggerWarningSmokeAlarm; + chip::Optional mTestEventTriggerCriticalSmokeAlarm; + chip::Optional mTestEventTriggerSmokeAlarmClear; + chip::Optional mTestEventTriggerWarningCoAlarm; + chip::Optional mTestEventTriggerCriticalCoAlarm; + chip::Optional mTestEventTriggerCoAlarmClear; + chip::Optional mTestEventTriggerDeviceMuted; + chip::Optional mTestEventTriggerDeviceMutedClear; + chip::Optional mTestEventTriggerInterconnectSmokeAlarm; + chip::Optional mTestEventTriggerInterconnectSmokeAlarmClear; + chip::Optional mTestEventTriggerInterconnectCoAlarm; + chip::Optional mTestEventTriggerInterconnectCoAlarmClear; + chip::Optional mTestEventTriggerContaminationStateHigh; + chip::Optional mTestEventTriggerContaminationStateLow; + chip::Optional mTtestEventTriggerContaminationStateClear; + chip::Optional mTestEventTriggerSensitivityLevelHigh; + chip::Optional mTestEventTriggerSensitivityLevelLow; + chip::Optional mTtestEventTriggerSensitivityLevelClear; + chip::Optional mEventNumber; + + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum interconnectSmokeAlarmSeverityLevel; + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum interconnectCOAlarmSeverityLevel; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectSmokeAlarm", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testEventTriggersEnabled", value, 1)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 1U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + interconnectSmokeAlarmSeverityLevel = value; + } + shouldContinue = true; + break; + case 6: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::InterconnectSmokeAlarm::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectSmokeAlarm.alarmSeverityLevel", value.alarmSeverityLevel, + interconnectSmokeAlarmSeverityLevel)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 7U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectSmokeAlarm", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 11: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectCOAlarm", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 1U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + interconnectCOAlarmSeverityLevel = value; + } + shouldContinue = true; + break; + case 16: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::InterconnectCOAlarm::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectCOAlarm.alarmSeverityLevel", value.alarmSeverityLevel, + interconnectCOAlarmSeverityLevel)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 8U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectCOAlarm", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 21: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AllClear::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ContaminationStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("contaminationState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ContaminationStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 2U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 3U)); + } + shouldContinue = true; + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ContaminationStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("contaminationState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ContaminationStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("contaminationState", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ContaminationStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("contaminationState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::SensitivityEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeSensitivityLevel", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::SensitivityEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeSensitivityLevel", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::SensitivityEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeSensitivityLevel", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 37: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::SensitivityEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeSensitivityLevel", value, 2U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 38: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 39: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::SensitivityEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeSensitivityLevel", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 40: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("deviceMuted", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 41: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); + } + break; + case 42: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 43: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 44: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 45: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 46: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("deviceMuted", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 47: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AlarmMuted::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 48: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 49: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("deviceMuted", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 50: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::MuteEnded::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 51: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 52: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 2U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 53: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 54: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 55: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("deviceMuted", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 56: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 57: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 58: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 2UL)); + } + break; + case 59: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 60: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 61: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 62: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 63: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("deviceMuted", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 64: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::AlarmMuted::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 65: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 66: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("deviceMuted", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 67: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::Events::MuteEnded::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 68: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 69: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 2U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 70: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 71: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 72: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("deviceMuted", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 73: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 74: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Commission DUT to TH"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "TH subscribes to InterconnectSmokeAlarm attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::InterconnectSmokeAlarm::Id, 3, 30, true, chip::NullOptional, + chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008 && SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 3: { + LogStep(3, "TH reads TestEventTriggersEnabled attribute from General Diagnostics Cluster"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008 && DGGEN.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::TestEventTriggersEnabled::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Interconnect Smoke Alarm Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008 && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerInterconnectSmokeAlarm.HasValue() + ? mTestEventTriggerInterconnectSmokeAlarm.Value() + : 0xffffffff00000092ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 5: { + LogStep(5, "TH waits for a report of InterconnectSmokeAlarm attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 6: { + LogStep(6, "TH reads InterconnectSmokeAlarm event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008 && SMOKECO.S.E08"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::InterconnectSmokeAlarm::Id, + false, chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008 && SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 8: { + LogStep(8, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Interconnect Smoke Alarm Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008 && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerInterconnectSmokeAlarmClear.HasValue() + ? mTestEventTriggerInterconnectSmokeAlarmClear.Value() + : 0xffffffff000000a2ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 9: { + LogStep(9, "TH waits for a report of InterconnectSmokeAlarm attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 10: { + LogStep(10, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008 && SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 11: { + LogStep(11, "TH reads AllClear event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008 && SMOKECO.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AllClear::Id, false, + chip::NullOptional); + } + case 12: { + LogStep(12, "TH subscribes to InterconnectCOAlarm attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::InterconnectCOAlarm::Id, 3, 30, true, chip::NullOptional, + chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 13: { + LogStep(13, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009 && SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 14: { + LogStep(14, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Interconnect CO Alarm Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009 && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerInterconnectCoAlarm.HasValue() ? mTestEventTriggerInterconnectCoAlarm.Value() + : 0xffffffff00000094ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 15: { + LogStep(15, "TH waits for a report of InterconnectCOAlarm attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 16: { + LogStep(16, "TH reads InterconnectCOAlarm event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009 && SMOKECO.S.E09"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::InterconnectCOAlarm::Id, false, + chip::NullOptional); + } + case 17: { + LogStep(17, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009 && SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 18: { + LogStep(18, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Interconnect CO Alarm Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009 && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerInterconnectCoAlarmClear.HasValue() + ? mTestEventTriggerInterconnectCoAlarmClear.Value() + : 0xffffffff000000a4ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 19: { + LogStep(19, "TH waits for a report of InterconnectCOAlarm attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 20: { + LogStep(20, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009 && SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 21: { + LogStep(21, "TH reads AllClear event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.E0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AllClear::Id, false, + chip::NullOptional); + } + case 22: { + LogStep(22, "TH subscribes to ContaminationState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::ContaminationState::Id, 3, 30, true, chip::NullOptional, + chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 23: { + LogStep(23, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Contamination State (High) Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerContaminationStateHigh.HasValue() + ? mTestEventTriggerContaminationStateHigh.Value() + : 0xffffffff00000096ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 24: { + LogStep(24, "TH waits for a report of ContaminationState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 25: { + LogStep(25, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Contamination State Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTtestEventTriggerContaminationStateClear.HasValue() + ? mTtestEventTriggerContaminationStateClear.Value() + : 0xffffffff000000a6ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 26: { + LogStep(26, "TH waits for a report of ContaminationState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 27: { + LogStep(27, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Contamination State (Low) Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerContaminationStateLow.HasValue() ? mTestEventTriggerContaminationStateLow.Value() + : 0xffffffff00000097ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 28: { + LogStep(28, "TH waits for a report of ContaminationState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 29: { + LogStep(29, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Contamination State Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTtestEventTriggerContaminationStateClear.HasValue() + ? mTtestEventTriggerContaminationStateClear.Value() + : 0xffffffff000000a6ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 30: { + LogStep(30, "TH waits for a report of ContaminationState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 31: { + LogStep(31, "TH subscribes to SmokeSensitivityLevel attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::SmokeSensitivityLevel::Id, 3, 30, true, chip::NullOptional, + chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 32: { + LogStep(32, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke " + "Sensitivity Level (High) Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerSensitivityLevelHigh.HasValue() ? mTestEventTriggerSensitivityLevelHigh.Value() + : 0xffffffff00000098ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 33: { + LogStep(33, "TH waits for a report of SmokeSensitivityLevel attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 34: { + LogStep(34, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke " + "Sensitivity Level Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTtestEventTriggerSensitivityLevelClear.HasValue() + ? mTtestEventTriggerSensitivityLevelClear.Value() + : 0xffffffff000000a8ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 35: { + LogStep(35, "TH waits for a report of SmokeSensitivityLevel attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 36: { + LogStep(36, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke " + "Sensitivity Level (Low) Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerSensitivityLevelLow.HasValue() ? mTestEventTriggerSensitivityLevelLow.Value() + : 0xffffffff00000099ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 37: { + LogStep(37, "TH waits for a report of SmokeSensitivityLevel attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 38: { + LogStep(38, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke " + "Sensitivity Level Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b && DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTtestEventTriggerSensitivityLevelClear.HasValue() + ? mTtestEventTriggerSensitivityLevelClear.Value() + : 0xffffffff000000a8ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 39: { + LogStep(39, "TH waits for a report of SmokeSensitivityLevel attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 40: { + LogStep(40, "TH subscribes to DeviceMuted attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::DeviceMuted::Id, + 3, 30, true, chip::NullOptional, chip::NullOptional, + /* autoResubscribe = */ chip::NullOptional); + } + case 41: { + LogStep(41, "TH reads FeatureMap attribute(Smoke Alarm) from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 42: { + LogStep(42, "TH subscribes to SmokeState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.A0001"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::SmokeState::Id, 3, + 30, true, chip::NullOptional, chip::Optional(true), + /* autoResubscribe = */ chip::NullOptional); + } + case 43: { + LogStep(43, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Warning Smoke Alarm Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerWarningSmokeAlarm.HasValue() ? mTestEventTriggerWarningSmokeAlarm.Value() : 0xffffffff00000090ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 44: { + LogStep(44, "TH waits for a report of SmokeState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.A0001"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 45: { + LogStep(45, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Manual Device Mute Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerDeviceMuted.HasValue() ? mTestEventTriggerDeviceMuted.Value() : 0xffffffff0000009bULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 46: { + LogStep(46, "TH waits for a report of DeviceMuted attribute from DUT with a timeout of 120 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 47: { + LogStep(47, "TH reads AlarmMuted event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.E06"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AlarmMuted::Id, false, + chip::NullOptional); + } + case 48: { + LogStep(48, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Manual Device Mute Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerDeviceMutedClear.HasValue() ? mTestEventTriggerDeviceMutedClear.Value() : 0xffffffff000000abULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 49: { + LogStep(49, "TH waits for a report of DeviceMuted attribute from DUT with a timeout of 120 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 50: { + LogStep(50, "TH reads MuteEnded event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.E07"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::MuteEnded::Id, false, + chip::NullOptional); + } + case 51: { + LogStep(51, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Critical Smoke Alarm Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerCriticalSmokeAlarm.HasValue() ? mTestEventTriggerCriticalSmokeAlarm.Value() + : 0xffffffff0000009cULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 52: { + LogStep(52, "TH waits for a report of SmokeState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && SMOKECO.S.A0001"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 53: { + LogStep(53, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Manual Device Mute Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerDeviceMuted.HasValue() ? mTestEventTriggerDeviceMuted.Value() : 0xffffffff0000009bULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 54: { + LogStep(54, "TH waits 60 Seconds"); + VerifyOrDo(!ShouldSkip("!PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 60000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 55: { + LogStep(55, "TH reads DeviceMuted attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::DeviceMuted::Id, true, + chip::NullOptional); + } + case 56: { + LogStep(56, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke " + "Alarm Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F00 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerSmokeAlarmClear.HasValue() ? mTestEventTriggerSmokeAlarmClear.Value() : 0xffffffff000000a0ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 57: { + LogStep(57, "TH waits for a report of SmokeState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.A0001 && SMOKECO.S.F00"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 58: { + LogStep(58, "TH reads FeatureMap attribute(CO Alarm) from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 59: { + LogStep(59, "TH subscribes to COState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.A0002"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::COState::Id, 3, + 30, true, chip::NullOptional, chip::Optional(true), + /* autoResubscribe = */ chip::NullOptional); + } + case 60: { + LogStep(60, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Warning CO Alarm Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerWarningCoAlarm.HasValue() ? mTestEventTriggerWarningCoAlarm.Value() : 0xffffffff00000091ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 61: { + LogStep(61, "TH waits for a report of COState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.A0002"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 62: { + LogStep(62, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Manual Device Mute Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerDeviceMuted.HasValue() ? mTestEventTriggerDeviceMuted.Value() : 0xffffffff0000009bULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 63: { + LogStep(63, "TH waits for a report of DeviceMuted attribute from DUT with a timeout of 120 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 64: { + LogStep(64, "TH reads AlarmMuted event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.E06"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::AlarmMuted::Id, false, + chip::NullOptional); + } + case 65: { + LogStep(65, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Manual Device Mute Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerDeviceMutedClear.HasValue() ? mTestEventTriggerDeviceMutedClear.Value() : 0xffffffff000000abULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 66: { + LogStep(66, "TH waits for a report of DeviceMuted attribute from DUT with a timeout of 120 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 67: { + LogStep(67, "TH reads MuteEnded event from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.E07"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Events::MuteEnded::Id, false, + chip::NullOptional); + } + case 68: { + LogStep(68, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Critical CO Alarm Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerCriticalCoAlarm.HasValue() ? mTestEventTriggerCriticalCoAlarm.Value() : 0xffffffff0000009dULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 69: { + LogStep(69, "TH waits for a report of COState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.A0002"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 70: { + LogStep(70, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Manual Device Mute Test Event"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerDeviceMuted.HasValue() ? mTestEventTriggerDeviceMuted.Value() : 0xffffffff0000009bULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 71: { + LogStep(71, "TH waits 60 Seconds"); + VerifyOrDo(!ShouldSkip("!PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 60000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 72: { + LogStep(72, "TH reads DeviceMuted attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::DeviceMuted::Id, true, + chip::NullOptional); + } + case 73: { + LogStep(73, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for CO " + "Alarm Test Event Clear"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && DGGEN.S.C00.Rsp"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerCoAlarmClear.HasValue() ? mTestEventTriggerCoAlarmClear.Value() : 0xffffffff000000a1ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 74: { + LogStep(74, "TH waits for a report of COState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0004 && SMOKECO.S.F01 && SMOKECO.S.A0002"), + return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SMCO_2_6Suite : public TestCommand +{ +public: + Test_TC_SMCO_2_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SMCO_2_6", 34, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + AddArgument("TEST_EVENT_TRIGGER_KEY", &mTestEventTriggerKey); + AddArgument("TEST_EVENT_TRIGGER_WARNING_SMOKE_ALARM", 0, UINT64_MAX, &mTestEventTriggerWarningSmokeAlarm); + AddArgument("TEST_EVENT_TRIGGER_SMOKE_ALARM_CLEAR", 0, UINT64_MAX, &mTestEventTriggerSmokeAlarmClear); + AddArgument("TEST_EVENT_TRIGGER_WARNING_CO_ALARM", 0, UINT64_MAX, &mTestEventTriggerWarningCoAlarm); + AddArgument("TEST_EVENT_TRIGGER_CO_ALARM_CLEAR", 0, UINT64_MAX, &mTestEventTriggerCoAlarmClear); + AddArgument("TEST_EVENT_TRIGGER_WARNING_BATTERY_ALERT", 0, UINT64_MAX, &mTestEventTriggerWarningBatteryAlert); + AddArgument("TEST_EVENT_TRIGGER_BATTERY_ALERT_CLEAR", 0, UINT64_MAX, &mTestEventTriggerBatteryAlertClear); + AddArgument("TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM", 0, UINT64_MAX, &mTestEventTriggerInterconnectSmokeAlarm); + AddArgument("TEST_EVENT_TRIGGER_INTERCONNECT_SMOKE_ALARM_CLEAR", 0, UINT64_MAX, + &mTestEventTriggerInterconnectSmokeAlarmClear); + AddArgument("TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM", 0, UINT64_MAX, &mTestEventTriggerInterconnectCoAlarm); + AddArgument("TEST_EVENT_TRIGGER_INTERCONNECT_CO_ALARM_CLEAR", 0, UINT64_MAX, &mTestEventTriggerInterconnectCoAlarmClear); + AddArgument("HIEST_PRI_ALARM", 0, UINT8_MAX, &mHiestPriAlarm); + } + + ~Test_TC_SMCO_2_6Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(3090)); } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + chip::Optional mTestEventTriggerKey; + chip::Optional mTestEventTriggerWarningSmokeAlarm; + chip::Optional mTestEventTriggerSmokeAlarmClear; + chip::Optional mTestEventTriggerWarningCoAlarm; + chip::Optional mTestEventTriggerCoAlarmClear; + chip::Optional mTestEventTriggerWarningBatteryAlert; + chip::Optional mTestEventTriggerBatteryAlertClear; + chip::Optional mTestEventTriggerInterconnectSmokeAlarm; + chip::Optional mTestEventTriggerInterconnectSmokeAlarmClear; + chip::Optional mTestEventTriggerInterconnectCoAlarm; + chip::Optional mTestEventTriggerInterconnectCoAlarmClear; + chip::Optional mHiestPriAlarm; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("batteryAlert", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectSmokeAlarm", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectCOAlarm", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("testEventTriggersEnabled", value, 1)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("batteryAlert", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 1U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + } + shouldContinue = true; + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + VerifyOrReturn(CheckConstraintMinValue("value", value, 1U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 2U)); + } + shouldContinue = true; + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, mHiestPriAlarm.HasValue() ? mHiestPriAlarm.Value() : 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("smokeState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, mHiestPriAlarm.HasValue() ? mHiestPriAlarm.Value() : 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("COState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, mHiestPriAlarm.HasValue() ? mHiestPriAlarm.Value() : 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectCOAlarm", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, mHiestPriAlarm.HasValue() ? mHiestPriAlarm.Value() : 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("interconnectSmokeAlarm", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, mHiestPriAlarm.HasValue() ? mHiestPriAlarm.Value() : 1U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("batteryAlert", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + shouldContinue = true; + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("expressedState", value, 0U)); + VerifyOrReturn(CheckConstraintType("value", "enum8", "enum8")); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Commission DUT to TH"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 2: { + LogStep(2, "TH subscribes to BatteryAlert attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::BatteryAlert::Id, + 3, 30, true, chip::NullOptional, chip::NullOptional, + /* autoResubscribe = */ chip::NullOptional); + } + case 3: { + LogStep(3, "TH subscribes to InterconnectSmokeAlarm attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::InterconnectSmokeAlarm::Id, 3, 30, true, chip::NullOptional, + chip::Optional(true), /* autoResubscribe = */ chip::NullOptional); + } + case 4: { + LogStep(4, "TH subscribes to InterconnectCOAlarm attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, + SmokeCoAlarm::Attributes::InterconnectCOAlarm::Id, 3, 30, true, chip::NullOptional, + chip::Optional(true), /* autoResubscribe = */ chip::NullOptional); + } + case 5: { + LogStep(5, "TH subscribes to COState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::COState::Id, 3, + 30, true, chip::NullOptional, chip::Optional(true), + /* autoResubscribe = */ chip::NullOptional); + } + case 6: { + LogStep(6, "TH subscribes to SmokeState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return SubscribeAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::SmokeState::Id, 3, + 30, true, chip::NullOptional, chip::Optional(true), + /* autoResubscribe = */ chip::NullOptional); + } + case 7: { + LogStep(7, "TH reads TestEventTriggersEnabled attribute from General Diagnostics Cluster"); + VerifyOrDo(!ShouldSkip("DGGEN.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Attributes::TestEventTriggersEnabled::Id, true, chip::NullOptional); + } + case 8: { + LogStep(8, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Warning Battery Alert Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerWarningBatteryAlert.HasValue() ? mTestEventTriggerWarningBatteryAlert.Value() + : 0xffffffff00000095ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 9: { + LogStep(9, "TH waits for a report of BatteryAlert attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 10: { + LogStep(10, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Interconnect Smoke Alarm Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerInterconnectSmokeAlarm.HasValue() + ? mTestEventTriggerInterconnectSmokeAlarm.Value() + : 0xffffffff00000092ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 11: { + LogStep(11, "TH waits for a report of InterconnectSmokeAlarm attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 12: { + LogStep(12, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Interconnect CO Alarm Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerInterconnectCoAlarm.HasValue() ? mTestEventTriggerInterconnectCoAlarm.Value() + : 0xffffffff00000094ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 13: { + LogStep(13, "TH waits for a report of InterconnectCOAlarm attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 14: { + LogStep(14, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Warning CO Alarm Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerWarningCoAlarm.HasValue() ? mTestEventTriggerWarningCoAlarm.Value() : 0xffffffff00000091ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 15: { + LogStep(15, "TH waits for a report of COState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 16: { + LogStep(16, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Warning Smoke Alarm Test Event"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerWarningSmokeAlarm.HasValue() ? mTestEventTriggerWarningSmokeAlarm.Value() : 0xffffffff00000090ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 17: { + LogStep(17, "TH waits for a report of SmokeState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 18: { + LogStep(18, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 19: { + LogStep(19, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for Smoke " + "Alarm Test Event Clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerSmokeAlarmClear.HasValue() ? mTestEventTriggerSmokeAlarmClear.Value() : 0xffffffff000000a0ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 20: { + LogStep(20, "TH waits for a report of SmokeState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 21: { + LogStep(21, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 22: { + LogStep(22, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for CO " + "Alarm Test Event clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerCoAlarmClear.HasValue() ? mTestEventTriggerCoAlarmClear.Value() : 0xffffffff000000a1ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 23: { + LogStep(23, "TH waits for a report of COState attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 24: { + LogStep(24, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 25: { + LogStep(25, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Interconnect CO Alarm Test Event Clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerInterconnectCoAlarmClear.HasValue() + ? mTestEventTriggerInterconnectCoAlarmClear.Value() + : 0xffffffff000000a4ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 26: { + LogStep(26, "TH waits for a report of InterconnectCOAlarm attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 27: { + LogStep(27, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 28: { + LogStep(28, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Interconnect Smoke Alarm Test Event Clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = mTestEventTriggerInterconnectSmokeAlarmClear.HasValue() + ? mTestEventTriggerInterconnectSmokeAlarmClear.Value() + : 0xffffffff000000a2ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 29: { + LogStep(29, "TH waits for a report of InterconnectSmokeAlarm attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 30: { + LogStep(30, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + case 31: { + LogStep(31, + "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to " + "PIXIT.SMOKECO.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.SMOKECO.TEST_EVENT_TRIGGER for " + "Battery Alert Test Event Clear"); + VerifyOrDo(!ShouldSkip("DGGEN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type value; + value.enableKey = mTestEventTriggerKey.HasValue() + ? mTestEventTriggerKey.Value() + : chip::ByteSpan(chip::Uint8::from_const_char("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"), + 16); + value.eventTrigger = + mTestEventTriggerBatteryAlertClear.HasValue() ? mTestEventTriggerBatteryAlertClear.Value() : 0xffffffff000000a5ULL; + return SendCommand(kIdentityAlpha, GetEndpoint(0), GeneralDiagnostics::Id, + GeneralDiagnostics::Commands::TestEventTrigger::Id, value, chip::NullOptional + + ); + } + case 32: { + LogStep(32, "TH waits for a report of BatteryAlert attribute from DUT with a timeout of 300 seconds"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return WaitForReport(); + } + case 33: { + LogStep(33, "TH reads ExpressedState attribute from DUT"); + VerifyOrDo(!ShouldSkip("SMOKECO.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), SmokeCoAlarm::Id, SmokeCoAlarm::Attributes::ExpressedState::Id, + true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + class Test_TC_SWTCH_1_1Suite : public TestCommand { public: @@ -135304,6 +139935,13 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), From 96b56a6761d77f637450665f01b5ef23f38b23d8 Mon Sep 17 00:00:00 2001 From: shchen-Lab <75290921+shchen-Lab@users.noreply.github.com> Date: Fri, 21 Jul 2023 23:51:00 +0800 Subject: [PATCH 02/39] [BouffaloLab]Add generate factory qr code scripts (#28146) * add factory qr code scripts * remove unused modules * Restyled by autopep8 * remove unused modules --------- Co-authored-by: Restyled.io --- scripts/setup/requirements.bouffalolab.txt | 6 ++ scripts/tools/bouffalolab/factory_qrcode.py | 84 +++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 scripts/tools/bouffalolab/factory_qrcode.py diff --git a/scripts/setup/requirements.bouffalolab.txt b/scripts/setup/requirements.bouffalolab.txt index 87fa5c49ab96e5..acd5fa726bb22b 100644 --- a/scripts/setup/requirements.bouffalolab.txt +++ b/scripts/setup/requirements.bouffalolab.txt @@ -1 +1,7 @@ bflb-iot-tool>=1.8.0 +jsonschema>=4.4.0 +cbor2>=5.4.3 +ecdsa>=0.18.0 +qrcode==7.4.2 +bitarray==2.6.0 +python_stdnum==1.18 diff --git a/scripts/tools/bouffalolab/factory_qrcode.py b/scripts/tools/bouffalolab/factory_qrcode.py new file mode 100644 index 00000000000000..1a7f6303495775 --- /dev/null +++ b/scripts/tools/bouffalolab/factory_qrcode.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import os +import sys + +try: + import qrcode + from generate_setup_payload import CommissioningFlow, SetupPayload +except ImportError: + SDK_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))) + sys.path.append(os.path.join(SDK_ROOT, "src/setup_payload/python")) + try: + import qrcode + from generate_setup_payload import CommissioningFlow, SetupPayload + except ModuleNotFoundError or ImportError: + no_onboarding_modules = True + else: + no_onboarding_modules = False +else: + no_onboarding_modules = False + + +def allow_any_int(i): return int(i, 0) + + +def get_args(): + parser = argparse.ArgumentParser(description="BouffaloLab QR Code generator tool") + mandatory_arguments = parser.add_argument_group( + "Mandatory keys", "These arguments must be provided to generate QR Code JSON file") + mandatory_arguments.add_argument("--vendor_id", type=allow_any_int, required=True, + help="[int | hex int] Provide Vendor Identification Number") + mandatory_arguments.add_argument("--product_id", type=allow_any_int, required=True, + help="[int | hex int] Provide Product Identification Number") + mandatory_arguments.add_argument("--discriminator", type=allow_any_int, required=True, + help="[int] Provide BLE pairing discriminator. \ + A 12-bit value matching the field of the same name in \ + the setup code. Discriminator is used during a discovery process.") + mandatory_arguments.add_argument("--pincode", type=allow_any_int, required=True, + help=("[int | hex] Default PASE session passcode. " + "(This is mandatory to generate QR Code).")) + mandatory_arguments.add_argument("-o", "--output", type=str, required=True, + help="Output path to store .json file, e.g. my_dir/output.json") + return parser.parse_args() + + +def generate_qrcode_data(args): + if no_onboarding_modules is False: + setup_payload = SetupPayload(discriminator=args.discriminator, + pincode=args.pincode, + rendezvous=2, # fixed pairing BLE + flow=CommissioningFlow.Standard, + vid=args.vendor_id, + pid=args.product_id) + with open(args.output[:-len(".json")] + ".txt", "w") as manual_code_file: + manual_code_file.write("Manualcode : " + setup_payload.generate_manualcode() + "\n") + manual_code_file.write("QRCode : " + setup_payload.generate_qrcode()) + qr = qrcode.make(setup_payload.generate_qrcode()) + qr.save(args.output[:-len(".json")] + ".png") + else: + print("Please install it with all dependencies: pip3 install -r ./scripts/setup/requirements.bouffalolab.txt from the Matter root directory") + + +def main(): + args = get_args() + generate_qrcode_data(args) + + +if __name__ == "__main__": + main() From 8e393c4f83929ee3f8a3498ff47436e2346fc1f7 Mon Sep 17 00:00:00 2001 From: tianfeng-yang <130436698+tianfeng-yang@users.noreply.github.com> Date: Fri, 21 Jul 2023 23:53:52 +0800 Subject: [PATCH 03/39] [Python] CreateControllersOnFabric support paaTrustStorePath (#28049) --- .../python/chip/utils/CommissioningBuildingBlocks.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/controller/python/chip/utils/CommissioningBuildingBlocks.py b/src/controller/python/chip/utils/CommissioningBuildingBlocks.py index efa104258a0e25..8fa80223b14316 100644 --- a/src/controller/python/chip/utils/CommissioningBuildingBlocks.py +++ b/src/controller/python/chip/utils/CommissioningBuildingBlocks.py @@ -118,7 +118,8 @@ async def CreateControllersOnFabric(fabricAdmin: FabricAdmin, controllerNodeIds: typing.List[int], privilege: Clusters.AccessControl.Enums.AccessControlEntryPrivilegeEnum, targetNodeId: int, - catTags: typing.List[int] = []) -> typing.List[ChipDeviceController]: + catTags: typing.List[int] = [], + paaTrustStorePath: str = "") -> typing.List[ChipDeviceController]: ''' Create new ChipDeviceController instances on a given fabric with a specific privilege on a target node. Args: @@ -130,12 +131,13 @@ async def CreateControllersOnFabric(fabricAdmin: FabricAdmin, targetNodeId: The Node ID of the target. catTags: CAT Tags to include in the NOC of controller, as well as when setting up the ACLs on the target. + paaTrustStorePath: Path to the PAA trust store. If one isn't provided, a suitable default is selected. ''' controllerList = [] for nodeId in controllerNodeIds: - newController = fabricAdmin.NewController(nodeId=nodeId, catTags=catTags) + newController = fabricAdmin.NewController(nodeId=nodeId, paaTrustStorePath=paaTrustStorePath, catTags=catTags) await GrantPrivilege(adminDevCtrl, newController, privilege, targetNodeId, catTags) controllerList.append(newController) From 8d666e5f7e40294a11b7bc8a0b65a2ca1acdf207 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Fri, 21 Jul 2023 11:54:37 -0400 Subject: [PATCH 04/39] Add a way to update ReadPrepareParams based on CASE session. (#28078) If the ReadClient is doing the CASE establishment itself, it should give the client a way to modify the ReadPrepareParams based on the session information. --- src/app/BufferedReadCallback.h | 5 +++++ src/app/ClusterStateCache.h | 5 +++++ src/app/ReadClient.cpp | 2 ++ src/app/ReadClient.h | 10 ++++++++++ 4 files changed, 22 insertions(+) diff --git a/src/app/BufferedReadCallback.h b/src/app/BufferedReadCallback.h index 747855be1d6ea7..7779446f5a78fd 100644 --- a/src/app/BufferedReadCallback.h +++ b/src/app/BufferedReadCallback.h @@ -113,6 +113,11 @@ class BufferedReadCallback : public ReadClient::Callback return mCallback.OnUnsolicitedMessageFromPublisher(apReadClient); } + void OnCASESessionEstablished(const SessionHandle & aSession, ReadPrepareParams & aSubscriptionParams) override + { + return mCallback.OnCASESessionEstablished(aSession, aSubscriptionParams); + } + /* * Given a reader positioned at a list element, allocate a packet buffer, copy the list item where * the reader is positioned into that buffer and add it to our buffered list for tracking. diff --git a/src/app/ClusterStateCache.h b/src/app/ClusterStateCache.h index e773dcb4e55ea6..e0d5d98d72a5ec 100644 --- a/src/app/ClusterStateCache.h +++ b/src/app/ClusterStateCache.h @@ -631,6 +631,11 @@ class ClusterStateCache : protected ReadClient::Callback return mCallback.OnUnsolicitedMessageFromPublisher(apReadClient); } + void OnCASESessionEstablished(const SessionHandle & aSession, ReadPrepareParams & aSubscriptionParams) override + { + return mCallback.OnCASESessionEstablished(aSession, aSubscriptionParams); + } + // Commit the pending cluster data version, if there is one. void CommitPendingDataVersion(); diff --git a/src/app/ReadClient.cpp b/src/app/ReadClient.cpp index 93b6448f56f774..23b57df99ddbcf 100644 --- a/src/app/ReadClient.cpp +++ b/src/app/ReadClient.cpp @@ -1095,6 +1095,8 @@ void ReadClient::HandleDeviceConnected(void * context, Messaging::ExchangeManage _this->mReadPrepareParams.mSessionHolder.Grab(sessionHandle); _this->mpExchangeMgr = &exchangeMgr; + _this->mpCallback.OnCASESessionEstablished(sessionHandle, _this->mReadPrepareParams); + auto err = _this->SendSubscribeRequest(_this->mReadPrepareParams); if (err != CHIP_NO_ERROR) { diff --git a/src/app/ReadClient.h b/src/app/ReadClient.h index 4b0868c98798ef..502e08eaa65a6a 100644 --- a/src/app/ReadClient.h +++ b/src/app/ReadClient.h @@ -249,6 +249,16 @@ class ReadClient : public Messaging::ExchangeDelegate * @param[in] apReadClient the ReadClient for the subscription. */ virtual void OnUnsolicitedMessageFromPublisher(ReadClient * apReadClient) {} + + /** + * OnCASESessionEstablished will be called for a subscription ReadClient when + * it finishes setting up a CASE session, as part of either automatic + * re-subscription or doing an initial subscribe based on ScopedNodeId. + * + * The callee is allowed to modify the ReadPrepareParams (e.g. to change + * things like min/max intervals based on the session parameters). + */ + virtual void OnCASESessionEstablished(const SessionHandle & aSession, ReadPrepareParams & aSubscriptionParams) {} }; enum class InteractionType : uint8_t From 6f2f586fb8745b3aa44ed111a8965f56a06d4ca3 Mon Sep 17 00:00:00 2001 From: Justin Wood Date: Fri, 21 Jul 2023 09:06:23 -0700 Subject: [PATCH 05/39] Update .pullapprove.yml --- .pullapprove.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pullapprove.yml b/.pullapprove.yml index 6bc39e11f09e30..1dfcc84b50e31b 100644 --- a/.pullapprove.yml +++ b/.pullapprove.yml @@ -159,7 +159,7 @@ groups: reviewers: teams: [reviewers-logitech] reviews: - request: 10 + request: 0 # Requested to be only on demand shared-reviewers-nordic: type: optional conditions: From c54639a9e91d64157c85a9c46ee264cfe45d24bb Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Fri, 21 Jul 2023 12:06:43 -0400 Subject: [PATCH 06/39] Update pigweed, make android not use mapfiles (#28161) * Disable mapfile creation for android toolchains (too large and slow, not used) * Bump pigweed up to support the new flag * Make tracing compile --------- Co-authored-by: Andrei Litvin --- build/toolchain/android/android_toolchain.gni | 2 +- build/toolchain/gcc_toolchain.gni | 4 ++++ examples/platform/bouffalolab/common/rpc/Rpc.cpp | 2 +- examples/platform/esp32/Rpc.cpp | 2 +- examples/platform/linux/Rpc.cpp | 2 +- examples/platform/nrfconnect/Rpc.cpp | 2 +- examples/platform/silabs/Rpc.cpp | 2 +- examples/platform/telink/Rpc.cpp | 2 +- third_party/pigweed/repo | 2 +- 9 files changed, 12 insertions(+), 8 deletions(-) diff --git a/build/toolchain/android/android_toolchain.gni b/build/toolchain/android/android_toolchain.gni index b2c3290a39a50b..e4eed1b30b577e 100644 --- a/build/toolchain/android/android_toolchain.gni +++ b/build/toolchain/android/android_toolchain.gni @@ -37,7 +37,6 @@ template("android_clang_toolchain") { _android_toolchain_args = { current_os = "android" is_clang = true - forward_variables_from(_invoker_toolchain_args, "*") } @@ -70,5 +69,6 @@ template("android_clang_toolchain") { ar = _ndk_prefix + "llvm-ar" cc = _ndk_prefix + _tool_name_root + "clang" cxx = _ndk_prefix + _tool_name_root + "clang++" + link_generate_map_file = false } } diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni index 98a10d1dd03903..fba42eb8349f1f 100644 --- a/build/toolchain/gcc_toolchain.gni +++ b/build/toolchain/gcc_toolchain.gni @@ -40,6 +40,10 @@ template("gcc_toolchain") { cxx = invoker.cxx } + if (defined(invoker.link_generate_map_file)) { + link_generate_map_file = invoker.link_generate_map_file + } + is_host_toolchain = invoker_toolchain_args.current_os == host_os link_group = invoker_toolchain_args.current_os != "mac" && invoker_toolchain_args.current_os != "ios" diff --git a/examples/platform/bouffalolab/common/rpc/Rpc.cpp b/examples/platform/bouffalolab/common/rpc/Rpc.cpp index 763767ce6ef7d2..cead7e2e72913e 100644 --- a/examples/platform/bouffalolab/common/rpc/Rpc.cpp +++ b/examples/platform/bouffalolab/common/rpc/Rpc.cpp @@ -168,7 +168,7 @@ Thread thread; #endif // defined(PW_RPC_THREAD_SERVICE) && PW_RPC_THREAD_SERVICE #if defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE -pw::trace::TraceService trace_service; +pw::trace::TraceService trace_service(pw::trace::GetTokenizedTracer()); #endif // defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE void RegisterServices(pw::rpc::Server & server) diff --git a/examples/platform/esp32/Rpc.cpp b/examples/platform/esp32/Rpc.cpp index 1ad91dddef4253..f34172a05e0a98 100644 --- a/examples/platform/esp32/Rpc.cpp +++ b/examples/platform/esp32/Rpc.cpp @@ -285,7 +285,7 @@ Locking locking; #endif // defined(PW_RPC_LOCKING_SERVICE) && PW_RPC_LOCKING_SERVICE #if defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE -pw::trace::TraceService trace_service; +pw::trace::TraceService trace_service(pw::trace::GetTokenizedTracer()); #endif // defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE #if defined(PW_RPC_WIFI_SERVICE) && PW_RPC_WIFI_SERVICE diff --git a/examples/platform/linux/Rpc.cpp b/examples/platform/linux/Rpc.cpp index 5a731fbc1e511a..3f81f0514fc17f 100644 --- a/examples/platform/linux/Rpc.cpp +++ b/examples/platform/linux/Rpc.cpp @@ -80,7 +80,7 @@ Lighting lighting_service; #endif // defined(PW_RPC_LIGHTING_SERVICE) && PW_RPC_LIGHTING_SERVICE #if defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE -pw::trace::TraceService trace_service; +pw::trace::TraceService trace_service(pw::trace::GetTokenizedTracer()); #endif // defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE void RegisterServices(pw::rpc::Server & server) diff --git a/examples/platform/nrfconnect/Rpc.cpp b/examples/platform/nrfconnect/Rpc.cpp index 5b76dc3f7e7d76..c89dd6c7e25de2 100644 --- a/examples/platform/nrfconnect/Rpc.cpp +++ b/examples/platform/nrfconnect/Rpc.cpp @@ -157,7 +157,7 @@ Thread thread; #endif // defined(PW_RPC_THREAD_SERVICE) && PW_RPC_THREAD_SERVICE #if defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE -pw::trace::TraceService trace_service; +pw::trace::TraceService trace_service(pw::trace::GetTokenizedTracer()); #endif // defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE void RegisterServices(pw::rpc::Server & server) diff --git a/examples/platform/silabs/Rpc.cpp b/examples/platform/silabs/Rpc.cpp index 5c3462bece6f0e..55cc232c382617 100644 --- a/examples/platform/silabs/Rpc.cpp +++ b/examples/platform/silabs/Rpc.cpp @@ -149,7 +149,7 @@ Thread thread; #endif // defined(PW_RPC_THREAD_SERVICE) && PW_RPC_THREAD_SERVICE #if defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE -pw::trace::TraceService trace_service; +pw::trace::TraceService trace_service(pw::trace::GetTokenizedTracer()); #endif // defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE void RegisterServices(pw::rpc::Server & server) diff --git a/examples/platform/telink/Rpc.cpp b/examples/platform/telink/Rpc.cpp index 93348fc5dbcbcb..e8c9500ab68291 100644 --- a/examples/platform/telink/Rpc.cpp +++ b/examples/platform/telink/Rpc.cpp @@ -157,7 +157,7 @@ Thread thread; #endif // defined(PW_RPC_THREAD_SERVICE) && PW_RPC_THREAD_SERVICE #if defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE -pw::trace::TraceService trace_service; +pw::trace::TraceService trace_service(pw::trace::GetTokenizedTracer()); #endif // defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE void RegisterServices(pw::rpc::Server & server) diff --git a/third_party/pigweed/repo b/third_party/pigweed/repo index b5cec17a34cb41..2157b49553b7aa 160000 --- a/third_party/pigweed/repo +++ b/third_party/pigweed/repo @@ -1 +1 @@ -Subproject commit b5cec17a34cb4115537141d06c7726392857f678 +Subproject commit 2157b49553b7aac671b352b8972df44b511364af From 28a3ed1f02b8881e4f3e098ddee472599b9ad193 Mon Sep 17 00:00:00 2001 From: Matt Hazley Date: Fri, 21 Jul 2023 17:17:10 +0100 Subject: [PATCH 07/39] Adding fan-stub.cpp to all-clusters-app on all platforms (#28165) --- examples/all-clusters-app/ameba/chip_main.cmake | 1 + examples/all-clusters-app/asr/BUILD.gn | 1 + examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn | 1 + examples/all-clusters-app/cc13x4_26x4/BUILD.gn | 1 + examples/all-clusters-app/infineon/psoc6/BUILD.gn | 1 + examples/all-clusters-app/mbed/CMakeLists.txt | 1 + examples/all-clusters-app/nrfconnect/CMakeLists.txt | 1 + examples/all-clusters-app/nxp/mw320/BUILD.gn | 1 + examples/all-clusters-app/openiotsdk/CMakeLists.txt | 1 + examples/all-clusters-app/telink/CMakeLists.txt | 1 + examples/all-clusters-app/tizen/BUILD.gn | 1 + 11 files changed, 11 insertions(+) diff --git a/examples/all-clusters-app/ameba/chip_main.cmake b/examples/all-clusters-app/ameba/chip_main.cmake index 7d6cecf60d73a0..a9d5fad68d4ebf 100755 --- a/examples/all-clusters-app/ameba/chip_main.cmake +++ b/examples/all-clusters-app/ameba/chip_main.cmake @@ -154,6 +154,7 @@ list( APPEND ${list_chip_main_sources} ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp + ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp diff --git a/examples/all-clusters-app/asr/BUILD.gn b/examples/all-clusters-app/asr/BUILD.gn index a701ccf8e2c170..9cbee21ac1d0b0 100755 --- a/examples/all-clusters-app/asr/BUILD.gn +++ b/examples/all-clusters-app/asr/BUILD.gn @@ -72,6 +72,7 @@ asr_executable("clusters_app") { sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn b/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn index ff3cc6b49b0856..e0b44485a753a2 100644 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn +++ b/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn @@ -77,6 +77,7 @@ ti_simplelink_executable("all-clusters-app") { sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/cc13x4_26x4/BUILD.gn b/examples/all-clusters-app/cc13x4_26x4/BUILD.gn index 377ecad0f1bb53..e1e2fc683206b7 100644 --- a/examples/all-clusters-app/cc13x4_26x4/BUILD.gn +++ b/examples/all-clusters-app/cc13x4_26x4/BUILD.gn @@ -77,6 +77,7 @@ ti_simplelink_executable("all-clusters-app") { sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/infineon/psoc6/BUILD.gn b/examples/all-clusters-app/infineon/psoc6/BUILD.gn index 2e0da5dc51baaf..6febaf08afdb50 100644 --- a/examples/all-clusters-app/infineon/psoc6/BUILD.gn +++ b/examples/all-clusters-app/infineon/psoc6/BUILD.gn @@ -108,6 +108,7 @@ psoc6_executable("clusters_app") { sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/mbed/CMakeLists.txt b/examples/all-clusters-app/mbed/CMakeLists.txt index 3b5e605c1c7e08..9c6fc1167dd49c 100644 --- a/examples/all-clusters-app/mbed/CMakeLists.txt +++ b/examples/all-clusters-app/mbed/CMakeLists.txt @@ -60,6 +60,7 @@ target_sources(${APP_TARGET} PRIVATE ${MBED_COMMON}/util/LEDWidget.cpp ${MBED_COMMON}/util/DFUManager.cpp ${ALL_CLUSTERS_COMMON}/src/bridged-actions-stub.cpp + ${ALL_CLUSTERS_COMMON}/src/fan-stub.cpp ${ALL_CLUSTERS_COMMON}/src/smco-stub.cpp ${ALL_CLUSTERS_COMMON}/src/static-supported-modes-manager.cpp ${ALL_CLUSTERS_COMMON}/src/static-supported-temperature-levels.cpp diff --git a/examples/all-clusters-app/nrfconnect/CMakeLists.txt b/examples/all-clusters-app/nrfconnect/CMakeLists.txt index 7d38fe7530442f..d1d1770d7b33ff 100644 --- a/examples/all-clusters-app/nrfconnect/CMakeLists.txt +++ b/examples/all-clusters-app/nrfconnect/CMakeLists.txt @@ -61,6 +61,7 @@ target_sources(app PRIVATE ${ALL_CLUSTERS_COMMON_DIR}/src/static-supported-modes-manager.cpp ${ALL_CLUSTERS_COMMON_DIR}/src/static-supported-temperature-levels.cpp ${ALL_CLUSTERS_COMMON_DIR}/src/bridged-actions-stub.cpp + ${ALL_CLUSTERS_COMMON_DIR}/src/fan-stub.cpp ${ALL_CLUSTERS_COMMON_DIR}/src/binding-handler.cpp ${NRFCONNECT_COMMON}/util/LEDWidget.cpp) diff --git a/examples/all-clusters-app/nxp/mw320/BUILD.gn b/examples/all-clusters-app/nxp/mw320/BUILD.gn index bd40e0ff3a4317..03ef9b9441b92a 100644 --- a/examples/all-clusters-app/nxp/mw320/BUILD.gn +++ b/examples/all-clusters-app/nxp/mw320/BUILD.gn @@ -75,6 +75,7 @@ mw320_executable("shell_mw320") { ] sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/openiotsdk/CMakeLists.txt b/examples/all-clusters-app/openiotsdk/CMakeLists.txt index 56170710a859bc..bae84c46cd65cb 100644 --- a/examples/all-clusters-app/openiotsdk/CMakeLists.txt +++ b/examples/all-clusters-app/openiotsdk/CMakeLists.txt @@ -54,6 +54,7 @@ target_sources(${APP_TARGET} main/main_ns.cpp ${ALL_CLUSTERS_COMMON}/src/smco-stub.cpp ${ALL_CLUSTERS_COMMON}/src/bridged-actions-stub.cpp + ${ALL_CLUSTERS_COMMON}/src/fan-stub.cpp ${ALL_CLUSTERS_COMMON}/src/static-supported-modes-manager.cpp ${ALL_CLUSTERS_COMMON}/src/binding-handler.cpp ) diff --git a/examples/all-clusters-app/telink/CMakeLists.txt b/examples/all-clusters-app/telink/CMakeLists.txt index a3844c529eb677..71664db1938c35 100644 --- a/examples/all-clusters-app/telink/CMakeLists.txt +++ b/examples/all-clusters-app/telink/CMakeLists.txt @@ -76,6 +76,7 @@ target_sources(app PRIVATE ${ALL_CLUSTERS_COMMON_DIR}/src/static-supported-temperature-levels.cpp ${ALL_CLUSTERS_COMMON_DIR}/src/bridged-actions-stub.cpp ${ALL_CLUSTERS_COMMON_DIR}/src/binding-handler.cpp + ${ALL_CLUSTERS_COMMON_DIR}/src/fan-stub.cpp ${TELINK_COMMON}/common/src/mainCommon.cpp ${TELINK_COMMON}/common/src/AppTaskCommon.cpp ${TELINK_COMMON}/util/src/LEDWidget.cpp diff --git a/examples/all-clusters-app/tizen/BUILD.gn b/examples/all-clusters-app/tizen/BUILD.gn index 94e841dd81dbed..4883363fa79917 100644 --- a/examples/all-clusters-app/tizen/BUILD.gn +++ b/examples/all-clusters-app/tizen/BUILD.gn @@ -25,6 +25,7 @@ source_set("chip-all-clusters-common") { sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", From 99f4a87a8ec6b07e5ada1b108264844599241783 Mon Sep 17 00:00:00 2001 From: ajoletta <139806032+ajoletta@users.noreply.github.com> Date: Fri, 21 Jul 2023 12:46:51 -0400 Subject: [PATCH 08/39] Updating TV-casting-Android app read me and tv-app linux (#28028) * Update tv casting app and tv app readmes * Update examples/tv-app/linux/README.md Co-authored-by: chrisdecenzo <61757564+chrisdecenzo@users.noreply.github.com> --------- Co-authored-by: chrisdecenzo <61757564+chrisdecenzo@users.noreply.github.com> --- examples/tv-app/linux/README.md | 15 +++++++++++++++ examples/tv-casting-app/android/README.md | 15 +++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/examples/tv-app/linux/README.md b/examples/tv-app/linux/README.md index 46e04564e3f924..5cd2bcfc48b5ed 100644 --- a/examples/tv-app/linux/README.md +++ b/examples/tv-app/linux/README.md @@ -55,6 +55,21 @@ Try the "commission-onnetwork " command $ controller commission-onnetwork 34567890 2976 192.168.65.3 5540 -or- $ controller commission-onnetwork 34567890 2976 fe80::50:ff:fe00:1 5540 +When the tv-app receives a UDC request from a commissionable node (like a +tv-casting-app), it will print out + +``` +CHIP:SVR: UserDirectedCommissioningServer::OnMessageReceived +CHIP:SVR: UDC instance=F879911BF17129AA +CHIP:SVR: OnCommissionableNodeFound instance: name=F879911BF17129AA old_state=1 new_state=3 +CHIP:CTL: ------PROMPT USER: Test TV casting app is requesting permission to cast to this TV, approve? [0x0000_FFF1,0x0000_8001,F879911BF17129AA,01005DD9BB0990AF18F19C35C30C670532BC] +CHIP:CTL: ------Via Shell Enter: controller ux ok|cancel +``` + +Begin commissioning it by running + + $ controller ux ok + - User Directed Commissioning (UDC) Print out the cached list of UDC sessions diff --git a/examples/tv-casting-app/android/README.md b/examples/tv-casting-app/android/README.md index b9e2f716c84036..c2a7622036bc8a 100644 --- a/examples/tv-casting-app/android/README.md +++ b/examples/tv-casting-app/android/README.md @@ -20,10 +20,17 @@ the TV. ## Requirements for building -You need Android SDK 21 & NDK 23.2.8568313 downloaded to your machine. Set the -`$ANDROID_HOME` environment variable to where the SDK is downloaded and the -`$ANDROID_NDK_HOME` environment variable to point to where the NDK package is -downloaded. +Refer to +[this file](../../../docs/guides/android_building.md#requirements-for-building) +to download the recommended version for the Android SDK and NDK for your +machine. Set the `$ANDROID_HOME` environment variable to where the SDK is +downloaded and the `$ANDROID_NDK_HOME` environment variable to point to where +the NDK package is downloaded. + +``` +export ANDROID_HOME=~/Library/Android/sdk +export ANDROID_NDK_HOME=~/Library/Android/sdk/ndk/{NDK_VERSION_NUMBER} +``` ### ABIs and TARGET_CPU From 98781285915b198b4f01b32ba36c88a96983b2c4 Mon Sep 17 00:00:00 2001 From: manjunath-grl <102359958+manjunath-grl@users.noreply.github.com> Date: Sat, 22 Jul 2023 00:46:02 +0530 Subject: [PATCH 09/39] Modified manual scripts jul 21 (#28159) * Modified Manual scripts: TC_ACE_1_2 TC_ACE_1_6 TC_ACT_2_1 TC_ACT_2_2 TC_ACT_3_2 TC_ALOGIN_12_2 TC_APPLAUNCHER_3_7_1 TC_APPLAUNCHER_3_8_1 TC_APPLAUNCHER_3_9_1 TC_AUDIOOUTPUT_7_3 TC_AUDIOOUTPUT_7_4 TC_BDX_1_2 TC_BDX_1_4 TC_BDX_2_1 TC_BDX_2_2 TC_BIND_2_1 TC_BIND_2_2 TC_BIND_2_3 TC_BINFO_2_2 TC_BINFO_2_4 TC_BOOL_2_2 TC_BRBINFO_2_2 TC_BRBINFO_2_3 TC_BR_1 TC_BR_2 TC_BR_3 TC_BR_4 TC_CADMIN_1_1 TC_CADMIN_1_11 TC_CADMIN_1_12 TC_CADMIN_1_13 TC_CADMIN_1_14 TC_CADMIN_1_15 TC_CADMIN_1_17 TC_CADMIN_1_18 TC_CADMIN_1_19 TC_CADMIN_1_2 TC_CADMIN_1_20 TC_CADMIN_1_3 TC_CADMIN_1_5 TC_CADMIN_1_7 TC_CADMIN_1_8 TC_CADMIN_1_9 TC_CGEN_2_2 TC_CHANNEL_5_4 TC_CHANNEL_5_5 TC_CHANNEL_5_6 TC_CNET_4_1 TC_CNET_4_10 TC_CNET_4_11 TC_CNET_4_12 TC_CNET_4_13 TC_CNET_4_14 TC_CNET_4_15 TC_CNET_4_16 TC_CNET_4_17 TC_CNET_4_18 TC_CNET_4_19 TC_CNET_4_2 TC_CNET_4_20 TC_CNET_4_21 TC_CNET_4_22 TC_CNET_4_3 TC_CNET_4_4 TC_CNET_4_5 TC_CNET_4_6 TC_CNET_4_9 TC_CONTENTLAUNCHER_10_4 TC_CONTENTLAUNCHER_10_6 TC_DA_1_1 TC_DA_1_2 TC_DA_1_3 TC_DA_1_4 TC_DA_1_5 TC_DA_1_6 TC_DD_1_10 TC_DD_1_11 TC_DD_1_12 TC_DD_1_13 TC_DD_1_14 TC_DD_1_15 TC_DD_1_5 TC_DD_1_6 TC_DD_1_7 TC_DD_1_8 TC_DD_1_9 TC_DD_2_1 TC_DD_2_2 TC_DD_3_1 TC_DD_3_10 TC_DD_3_11 TC_DD_3_12 TC_DD_3_13 TC_DD_3_14 TC_DD_3_15 TC_DD_3_16 TC_DD_3_17 TC_DD_3_18 TC_DD_3_19 TC_DD_3_2 TC_DD_3_20 TC_DD_3_21 TC_DD_3_3 TC_DD_3_4 TC_DD_3_5 TC_DD_3_6 TC_DD_3_7 TC_DD_3_8 TC_DD_3_9 TC_DESC_2_1 TC_DGGEN_2_2 TC_DGGEN_2_3 TC_DGGEN_3_1 TC_DGSW_2_1 TC_DGSW_2_2 TC_DGSW_2_3 TC_DGTHREAD_2_5 Newly added manual tests: TC-BINFO-3.1 TC-BRBINFO-3.1 * Modified manual test: TC_BOOL_2_2 TC_BR_1 TC_CADMIN_1_1 TC_CADMIN_1_2 TC_CADMIN_1_7 TC_CADMIN_1_8 TC_CNET_4_9 TC_DESC_2_1 TC_DGWIFI_2_2 TC_DLOG_2_1 TC_DLOG_2_2 TC_DLOG_3_1 TC_DRLK_2_10 TC_DRLK_3_3 TC_FAN_3_3 TC_FAN_3_5 TC_FAN_3_6 TC_G_2_2 TC_G_3_2 TC_ICDM_2_2 TC_IDM_1_1 TC_IDM_2_1 TC_IDM_2_2 TC_IDM_3_1 TC_IDM_3_2 TC_IDM_4_1 TC_IDM_4_2 TC_IDM_4_3 TC_IDM_4_4 TC_IDM_5_1 TC_IDM_5_2 TC_IDM_6_1 TC_IDM_6_2 TC_IDM_6_3 TC_IDM_6_4 TC_IDM_7_1 TC_I_3_2 TC_KEYPADINPUT_3_1 TC_LCFG_2_1 TC_LOWPOWER_2_2 TC_LTIME_2_1 TC_LTIME_3_1 TC_LVL_8_1 TC_MC_11_1 TC_MC_11_2 TC_MEDIAINPUT_3_14 TC_MEDIAINPUT_3_15 TC_MEDIAINPUT_3_16 TC_MEDIAINPUT_3_17 TC_MEDIAPLAYBACK_6_5 TC_MEDIAPLAYBACK_6_7 TC_MOD_1_2 TC_MOD_1_3 TC_MOD_2_1 TC_MOD_2_2 TC_MOD_2_3 TC_MOD_3_1 TC_MOD_3_2 TC_MOD_3_3 TC_MOD_3_4 TC_OPCREDS_3_1 TC_OPCREDS_3_2 TC_OPCREDS_3_3 TC_OPCREDS_3_4 TC_OPCREDS_3_5 TC_OPCREDS_3_6 TC_OPSTATE_2_1 TC_OPSTATE_2_2 TC_OPSTATE_2_3 TC_PSCFG_2_2 TC_PS_2_2 TC_PS_3_1 TC_REFALM_1_1 TC_REFALM_2_1 TC_SC_3_1 TC_SC_3_2 TC_SC_3_3 TC_SC_3_6 TC_SC_4_2 TC_SC_4_4 TC_SC_4_6 TC_SC_4_7 TC_SC_4_8 TC_SC_4_9 TC_SMCO_1_1 TC_SMCO_2_1 TC_SU_1_1 TC_SU_2_1 TC_SU_2_2 TC_SU_2_3 TC_SU_2_4 TC_SU_2_5 TC_SU_2_6 TC_SU_2_7 TC_SU_3_1 TC_SU_3_2 TC_SU_3_4 TC_SU_4_1 TC_SU_4_2 TC_SWTCH_2_2 TC_SWTCH_3_2 TC_S_2_5 TC_S_2_6 TC_S_3_1 TC_TGTNAV_8_2 TC_TIMESYNC_2_15 TC_TSTAT_3_1 * New manual testcases: TC_DISHALM_1_1 TC_DISHALM_2_1 TC_DISHALM_3_1 TC_DISHALM_3_2 TC_DISHALM_3_3 TC_DISHALM_3_4 TC_DISHALM_3_5 TC_DISHALM_3_6 TC_DISHM_1_1 TC_DISHM_1_2 TC_DISHM_2_1 TC_DISHM_3_1 TC_DISHM_3_2 TC_DISHM_3_3 TC_ICDM_2_3 TC_LWM_1_1 TC_LWM_1_2 TC_LWM_2_1 TC_LWM_3_1 TC_LWM_3_2 TC_OPSTATE_2_4 TC_REFALM_1_1 TC_REFALM_2_1 TC_REFALM_2_2 TC_REFALM_2_3 TC_RVCCLEANM_1_1 TC_RVCCLEANM_1_2 TC_RVCCLEANM_2_1 TC_RVCCLEANM_3_1 TC_RVCCLEANM_3_2 TC_RVCCLEANM_3_3 TC_RVCOPSTATE_2_1 TC_RVCOPSTATE_2_2 TC_RVCOPSTATE_2_3 TC_RVCRUNM_1_1 TC_RVCRUNM_1_2 TC_RVCRUNM_2_1 TC_RVCRUNM_3_1 TC_RVCRUNM_3_2 TC_RVCRUNM_3_3 TC_SMCO_2_2 TC_SMCO_2_3 TC_SMCO_2_4 TC_SMCO_2_5 TC_SMCO_2_6 TC_TCCM_1_1 TC_TCCM_1_2 TC_TCCM_2_1 TC_TCCM_3_1 TC_TCCM_3_2 TC_TCCM_3_3 TC_TCTL_1_1 TC_TCTL_2_1 TC_TCTL_2_2 TC_TCTL_2_3 TC_TCTL_3_2 TC_TCTL_3_3 TC_WASHERCTRL_1_1 TC_WASHERCTRL_2_1 TC_WASHERCTRL_2_2 TC_WASHERCTRL_3_1 TC_WASHERCTRL_3_2 * Auo generated files * Restyled by whitespace * Restyled by prettier-json * Restyled by prettier-yaml * Modified tests: IDM-6.2 SC-5.3 Added auto generated files * Restyled by whitespace * Added LWM.S.C01.Tx pics value * Resolve conflict Added auto generated files --------- Co-authored-by: Restyled.io --- .../placeholder/linux/apps/app1/ciTests.json | 1 - src/app/tests/suites/certification/PICS.yaml | 664 ++- .../suites/certification/Test_TC_ACE_1_6.yaml | 8 +- .../suites/certification/Test_TC_ACT_2_1.yaml | 149 +- .../suites/certification/Test_TC_ACT_2_2.yaml | 158 +- .../suites/certification/Test_TC_ACT_3_2.yaml | 281 +- .../certification/Test_TC_ALOGIN_12_2.yaml | 14 +- .../Test_TC_APPLAUNCHER_3_7_1.yaml | 5 +- .../Test_TC_APPLAUNCHER_3_8_1.yaml | 65 +- .../Test_TC_APPLAUNCHER_3_9_1.yaml | 5 +- .../Test_TC_AUDIOOUTPUT_7_3.yaml | 2 +- .../Test_TC_AUDIOOUTPUT_7_4.yaml | 5 +- .../suites/certification/Test_TC_BDX_1_2.yaml | 29 +- .../suites/certification/Test_TC_BDX_1_4.yaml | 10 +- .../suites/certification/Test_TC_BDX_2_1.yaml | 26 +- .../suites/certification/Test_TC_BDX_2_2.yaml | 34 +- .../certification/Test_TC_BIND_2_1.yaml | 408 +- .../certification/Test_TC_BIND_2_2.yaml | 86 +- .../certification/Test_TC_BIND_2_3.yaml | 84 +- .../Test_TC_BINFO_2_3_Simulated.yaml | 136 - .../certification/Test_TC_BINFO_2_4.yaml | 319 - .../certification/Test_TC_BINFO_3_1.yaml | 97 + .../certification/Test_TC_BOOL_2_2.yaml | 37 +- .../certification/Test_TC_BRBINFO_2_2.yaml | 11 +- .../certification/Test_TC_BRBINFO_2_3.yaml | 487 -- .../certification/Test_TC_BRBINFO_3_1.yaml | 103 + .../suites/certification/Test_TC_BR_1.yaml | 254 +- .../suites/certification/Test_TC_BR_2.yaml | 335 +- .../suites/certification/Test_TC_BR_3.yaml | 44 +- .../suites/certification/Test_TC_BR_4.yaml | 1213 ++-- .../certification/Test_TC_CADMIN_1_1.yaml | 99 +- .../certification/Test_TC_CADMIN_1_11.yaml | 65 +- .../certification/Test_TC_CADMIN_1_12.yaml | 83 +- .../certification/Test_TC_CADMIN_1_13.yaml | 85 +- .../certification/Test_TC_CADMIN_1_14.yaml | 82 +- .../certification/Test_TC_CADMIN_1_15.yaml | 36 +- .../certification/Test_TC_CADMIN_1_17.yaml | 40 +- .../certification/Test_TC_CADMIN_1_18.yaml | 42 +- .../certification/Test_TC_CADMIN_1_19.yaml | 21 +- .../certification/Test_TC_CADMIN_1_2.yaml | 97 +- .../certification/Test_TC_CADMIN_1_20.yaml | 20 +- .../certification/Test_TC_CADMIN_1_21.yaml | 11 +- .../certification/Test_TC_CADMIN_1_22.yaml | 1 - .../certification/Test_TC_CADMIN_1_23.yaml | 12 +- .../certification/Test_TC_CADMIN_1_24.yaml | 9 +- .../certification/Test_TC_CADMIN_1_3.yaml | 44 +- .../certification/Test_TC_CADMIN_1_5.yaml | 40 +- .../certification/Test_TC_CADMIN_1_6.yaml | 22 +- .../certification/Test_TC_CADMIN_1_7.yaml | 53 +- .../certification/Test_TC_CADMIN_1_8.yaml | 53 +- .../certification/Test_TC_CADMIN_1_9.yaml | 24 +- .../suites/certification/Test_TC_CC_2_1.yaml | 37 +- .../suites/certification/Test_TC_CC_3_2.yaml | 6 +- .../certification/Test_TC_CGEN_2_2.yaml | 280 +- .../certification/Test_TC_CHANNEL_5_4.yaml | 9 +- .../certification/Test_TC_CHANNEL_5_5.yaml | 2 +- .../certification/Test_TC_CHANNEL_5_6.yaml | 5 +- .../certification/Test_TC_CNET_4_1.yaml | 75 +- .../certification/Test_TC_CNET_4_10.yaml | 114 +- .../certification/Test_TC_CNET_4_11.yaml | 202 +- .../certification/Test_TC_CNET_4_12.yaml | 107 +- .../certification/Test_TC_CNET_4_13.yaml | 108 +- .../certification/Test_TC_CNET_4_14.yaml | 93 +- .../certification/Test_TC_CNET_4_15.yaml | 22 +- .../certification/Test_TC_CNET_4_16.yaml | 32 +- .../certification/Test_TC_CNET_4_17.yaml | 230 +- .../certification/Test_TC_CNET_4_18.yaml | 36 +- .../certification/Test_TC_CNET_4_19.yaml | 192 +- .../certification/Test_TC_CNET_4_2.yaml | 119 +- .../certification/Test_TC_CNET_4_20.yaml | 261 +- .../certification/Test_TC_CNET_4_21.yaml | 24 +- .../certification/Test_TC_CNET_4_22.yaml | 63 +- .../certification/Test_TC_CNET_4_3.yaml | 49 +- .../certification/Test_TC_CNET_4_4.yaml | 32 +- .../certification/Test_TC_CNET_4_5.yaml | 39 +- .../certification/Test_TC_CNET_4_6.yaml | 24 +- .../certification/Test_TC_CNET_4_9.yaml | 144 +- .../Test_TC_CONTENTLAUNCHER_10_4.yaml | 5 +- .../Test_TC_CONTENTLAUNCHER_10_6.yaml | 6 +- .../suites/certification/Test_TC_DA_1_1.yaml | 29 +- .../suites/certification/Test_TC_DA_1_3.yaml | 29 +- .../suites/certification/Test_TC_DA_1_4.yaml | 58 +- .../suites/certification/Test_TC_DA_1_6.yaml | 24 +- .../suites/certification/Test_TC_DD_1_10.yaml | 7 +- .../suites/certification/Test_TC_DD_1_11.yaml | 28 +- .../suites/certification/Test_TC_DD_1_12.yaml | 6 +- .../suites/certification/Test_TC_DD_1_13.yaml | 9 +- .../suites/certification/Test_TC_DD_1_14.yaml | 9 +- .../suites/certification/Test_TC_DD_1_15.yaml | 25 +- .../suites/certification/Test_TC_DD_1_5.yaml | 66 +- .../suites/certification/Test_TC_DD_1_6.yaml | 4 +- .../suites/certification/Test_TC_DD_1_7.yaml | 4 +- .../suites/certification/Test_TC_DD_1_8.yaml | 28 +- .../suites/certification/Test_TC_DD_1_9.yaml | 8 +- .../suites/certification/Test_TC_DD_2_1.yaml | 144 +- .../suites/certification/Test_TC_DD_2_2.yaml | 48 +- .../suites/certification/Test_TC_DD_3_1.yaml | 42 +- .../suites/certification/Test_TC_DD_3_10.yaml | 10 +- .../suites/certification/Test_TC_DD_3_11.yaml | 54 +- .../suites/certification/Test_TC_DD_3_12.yaml | 44 +- .../suites/certification/Test_TC_DD_3_13.yaml | 50 +- .../suites/certification/Test_TC_DD_3_14.yaml | 45 +- .../suites/certification/Test_TC_DD_3_15.yaml | 31 +- .../suites/certification/Test_TC_DD_3_16.yaml | 75 +- .../suites/certification/Test_TC_DD_3_17.yaml | 103 +- .../suites/certification/Test_TC_DD_3_18.yaml | 28 +- .../suites/certification/Test_TC_DD_3_19.yaml | 36 +- .../suites/certification/Test_TC_DD_3_2.yaml | 43 +- .../suites/certification/Test_TC_DD_3_20.yaml | 36 +- .../suites/certification/Test_TC_DD_3_21.yaml | 28 +- .../suites/certification/Test_TC_DD_3_3.yaml | 28 +- .../suites/certification/Test_TC_DD_3_4.yaml | 23 +- .../suites/certification/Test_TC_DD_3_5.yaml | 60 +- .../suites/certification/Test_TC_DD_3_6.yaml | 56 +- .../suites/certification/Test_TC_DD_3_7.yaml | 105 +- .../suites/certification/Test_TC_DD_3_8.yaml | 100 +- .../suites/certification/Test_TC_DD_3_9.yaml | 10 +- .../certification/Test_TC_DESC_2_1.yaml | 191 +- .../Test_TC_DESC_2_2_Simulated.yaml | 13 + .../certification/Test_TC_DGETH_2_1.yaml | 51 +- .../certification/Test_TC_DGGEN_2_2.yaml | 55 +- .../certification/Test_TC_DGGEN_2_3.yaml | 12 +- .../certification/Test_TC_DGGEN_3_1.yaml | 1020 +++- .../certification/Test_TC_DGSW_2_1.yaml | 25 +- .../certification/Test_TC_DGSW_2_2.yaml | 18 +- .../certification/Test_TC_DGSW_2_3.yaml | 26 +- .../certification/Test_TC_DGTHREAD_2_5.yaml | 24 +- .../certification/Test_TC_DGWIFI_2_2.yaml | 19 +- .../certification/Test_TC_DISHALM_1_1.yaml | 100 + .../certification/Test_TC_DISHALM_2_1.yaml | 54 + .../certification/Test_TC_DISHALM_3_1.yaml | 105 + .../certification/Test_TC_DISHALM_3_2.yaml | 101 + .../certification/Test_TC_DISHALM_3_3.yaml | 102 + .../certification/Test_TC_DISHALM_3_4.yaml | 107 + .../certification/Test_TC_DISHALM_3_5.yaml | 107 + .../certification/Test_TC_DISHALM_3_6.yaml | 110 + .../certification/Test_TC_DISHM_1_1.yaml | 102 + .../certification/Test_TC_DISHM_1_2.yaml | 118 + .../certification/Test_TC_DISHM_2_1.yaml | 185 + .../certification/Test_TC_DISHM_3_1.yaml | 162 + .../certification/Test_TC_DISHM_3_2.yaml | 141 + .../certification/Test_TC_DISHM_3_3.yaml | 206 + .../certification/Test_TC_DLOG_2_1.yaml | 72 +- .../certification/Test_TC_DLOG_2_2.yaml | 8 +- .../certification/Test_TC_DLOG_3_1.yaml | 8 +- .../certification/Test_TC_DRLK_2_10.yaml | 279 +- .../certification/Test_TC_DRLK_3_3.yaml | 2473 +++----- .../suites/certification/Test_TC_FAN_3_3.yaml | 175 + .../suites/certification/Test_TC_FAN_3_5.yaml | 592 ++ .../suites/certification/Test_TC_FAN_3_6.yaml | 3 +- .../suites/certification/Test_TC_G_2_2.yaml | 1389 ++--- .../suites/certification/Test_TC_G_3_2.yaml | 632 +- .../certification/Test_TC_ICDM_2_2.yaml | 269 + .../certification/Test_TC_ICDM_2_3.yaml | 48 + .../suites/certification/Test_TC_IDM_1_1.yaml | 233 +- .../suites/certification/Test_TC_IDM_2_1.yaml | 1225 ++-- .../suites/certification/Test_TC_IDM_2_2.yaml | 242 +- .../suites/certification/Test_TC_IDM_3_1.yaml | 482 +- .../suites/certification/Test_TC_IDM_3_2.yaml | 1362 +++-- .../suites/certification/Test_TC_IDM_4_1.yaml | 920 +-- .../suites/certification/Test_TC_IDM_4_2.yaml | 707 +-- .../suites/certification/Test_TC_IDM_4_3.yaml | 242 +- .../suites/certification/Test_TC_IDM_4_4.yaml | 12 +- .../suites/certification/Test_TC_IDM_5_1.yaml | 95 +- .../suites/certification/Test_TC_IDM_5_2.yaml | 37 +- .../suites/certification/Test_TC_IDM_6_1.yaml | 110 +- .../suites/certification/Test_TC_IDM_6_2.yaml | 285 +- .../suites/certification/Test_TC_IDM_6_3.yaml | 211 +- .../suites/certification/Test_TC_IDM_6_4.yaml | 124 +- .../suites/certification/Test_TC_IDM_7_1.yaml | 24 +- .../suites/certification/Test_TC_I_3_2.yaml | 345 +- .../Test_TC_KEYPADINPUT_3_1.yaml | 5 +- .../certification/Test_TC_LCFG_2_1.yaml | 78 +- .../certification/Test_TC_LOWPOWER_2_2.yaml | 5 +- .../certification/Test_TC_LTIME_2_1.yaml | 1351 +++-- .../certification/Test_TC_LTIME_3_1.yaml | 243 +- .../suites/certification/Test_TC_LVL_8_1.yaml | 4 +- .../suites/certification/Test_TC_LWM_1_1.yaml | 97 + .../suites/certification/Test_TC_LWM_1_2.yaml | 75 + .../suites/certification/Test_TC_LWM_2_1.yaml | 140 + .../suites/certification/Test_TC_LWM_3_1.yaml | 90 + .../suites/certification/Test_TC_LWM_3_2.yaml | 83 + .../suites/certification/Test_TC_MC_11_1.yaml | 21 +- .../suites/certification/Test_TC_MC_11_2.yaml | 19 +- .../Test_TC_MEDIAINPUT_3_14.yaml | 54 +- .../Test_TC_MEDIAINPUT_3_15.yaml | 4 +- .../Test_TC_MEDIAINPUT_3_16.yaml | 4 +- .../Test_TC_MEDIAINPUT_3_17.yaml | 4 +- .../Test_TC_MEDIAPLAYBACK_6_3.yaml | 21 +- .../Test_TC_MEDIAPLAYBACK_6_4.yaml | 11 + .../Test_TC_MEDIAPLAYBACK_6_5.yaml | 15 +- .../Test_TC_MEDIAPLAYBACK_6_7.yaml | 25 +- .../suites/certification/Test_TC_MOD_1_1.yaml | 22 +- .../suites/certification/Test_TC_MOD_1_2.yaml | 42 +- .../suites/certification/Test_TC_MOD_1_3.yaml | 324 ++ .../suites/certification/Test_TC_MOD_2_1.yaml | 54 +- .../suites/certification/Test_TC_MOD_2_2.yaml | 189 + .../suites/certification/Test_TC_MOD_2_3.yaml | 36 +- .../suites/certification/Test_TC_MOD_3_1.yaml | 61 +- .../suites/certification/Test_TC_MOD_3_2.yaml | 47 +- .../suites/certification/Test_TC_MOD_3_3.yaml | 181 + .../suites/certification/Test_TC_MOD_3_4.yaml | 68 +- .../certification/Test_TC_OPCREDS_3_1.yaml | 317 +- .../certification/Test_TC_OPCREDS_3_2.yaml | 54 +- .../certification/Test_TC_OPCREDS_3_3.yaml | 2437 +++----- .../certification/Test_TC_OPCREDS_3_4.yaml | 130 +- .../certification/Test_TC_OPCREDS_3_5.yaml | 97 +- .../certification/Test_TC_OPCREDS_3_6.yaml | 30 +- .../certification/Test_TC_OPSTATE_2_1.yaml | 155 + .../certification/Test_TC_OPSTATE_2_2.yaml | 327 ++ .../certification/Test_TC_OPSTATE_2_3.yaml | 169 + .../certification/Test_TC_OPSTATE_2_4.yaml | 54 + .../suites/certification/Test_TC_PCC_2_3.yaml | 48 +- .../certification/Test_TC_PSCFG_2_2.yaml | 60 +- .../suites/certification/Test_TC_PS_2_1.yaml | 2 +- .../suites/certification/Test_TC_PS_2_2.yaml | 46 +- .../suites/certification/Test_TC_PS_3_1.yaml | 908 +-- .../certification/Test_TC_REFALM_1_1.yaml | 110 + .../certification/Test_TC_REFALM_2_1.yaml | 76 + .../certification/Test_TC_REFALM_2_2.yaml | 100 + .../certification/Test_TC_REFALM_2_3.yaml | 92 + .../certification/Test_TC_RVCCLEANM_1_1.yaml | 99 + .../certification/Test_TC_RVCCLEANM_1_2.yaml | 108 + .../certification/Test_TC_RVCCLEANM_2_1.yaml | 176 + .../certification/Test_TC_RVCCLEANM_3_1.yaml | 148 + .../certification/Test_TC_RVCCLEANM_3_2.yaml | 129 + .../certification/Test_TC_RVCCLEANM_3_3.yaml | 200 + .../certification/Test_TC_RVCOPSTATE_2_1.yaml | 95 + .../certification/Test_TC_RVCOPSTATE_2_2.yaml | 186 + .../certification/Test_TC_RVCOPSTATE_2_3.yaml | 136 + .../certification/Test_TC_RVCRUNM_1_1.yaml | 100 + .../certification/Test_TC_RVCRUNM_1_2.yaml | 108 + .../certification/Test_TC_RVCRUNM_2_1.yaml | 176 + .../certification/Test_TC_RVCRUNM_3_1.yaml | 148 + .../certification/Test_TC_RVCRUNM_3_2.yaml | 129 + .../certification/Test_TC_RVCRUNM_3_3.yaml | 200 + .../suites/certification/Test_TC_SC_3_1.yaml | 207 +- .../suites/certification/Test_TC_SC_3_2.yaml | 10 +- .../suites/certification/Test_TC_SC_3_3.yaml | 222 +- .../suites/certification/Test_TC_SC_3_6.yaml | 310 + .../suites/certification/Test_TC_SC_4_2.yaml | 11 +- .../suites/certification/Test_TC_SC_4_4.yaml | 10 +- .../suites/certification/Test_TC_SC_4_6.yaml | 14 +- .../suites/certification/Test_TC_SC_4_7.yaml | 8 +- .../suites/certification/Test_TC_SC_4_8.yaml | 241 +- .../suites/certification/Test_TC_SC_4_9.yaml | 15 +- .../suites/certification/Test_TC_SC_5_3.yaml | 93 +- .../suites/certification/Test_TC_SU_1_1.yaml | 17 +- .../suites/certification/Test_TC_SU_2_1.yaml | 58 +- .../suites/certification/Test_TC_SU_2_2.yaml | 109 +- .../suites/certification/Test_TC_SU_2_3.yaml | 98 +- .../suites/certification/Test_TC_SU_2_4.yaml | 7 +- .../suites/certification/Test_TC_SU_2_5.yaml | 87 +- .../suites/certification/Test_TC_SU_2_6.yaml | 4 +- .../suites/certification/Test_TC_SU_2_7.yaml | 150 +- .../suites/certification/Test_TC_SU_3_1.yaml | 11 +- .../suites/certification/Test_TC_SU_3_2.yaml | 88 +- .../suites/certification/Test_TC_SU_3_4.yaml | 48 +- .../suites/certification/Test_TC_SU_4_1.yaml | 381 +- .../suites/certification/Test_TC_SU_4_2.yaml | 49 +- .../certification/Test_TC_SWTCH_2_2.yaml | 471 +- .../certification/Test_TC_SWTCH_3_2.yaml | 396 +- .../suites/certification/Test_TC_S_2_5.yaml | 313 + .../suites/certification/Test_TC_S_2_6.yaml | 252 + .../suites/certification/Test_TC_S_3_1.yaml | 609 +- .../certification/Test_TC_TCCM_1_1.yaml | 94 + .../certification/Test_TC_TCCM_1_2.yaml | 75 + .../certification/Test_TC_TCCM_2_1.yaml | 140 + .../certification/Test_TC_TCCM_3_1.yaml | 87 + .../certification/Test_TC_TCCM_3_2.yaml | 83 + .../certification/Test_TC_TCCM_3_3.yaml | 103 + .../certification/Test_TC_TCTL_1_1.yaml | 131 + .../certification/Test_TC_TCTL_2_1.yaml | 38 + .../certification/Test_TC_TCTL_2_2.yaml | 51 + .../certification/Test_TC_TCTL_2_3.yaml | 71 + .../certification/Test_TC_TCTL_3_2.yaml | 61 + .../certification/Test_TC_TCTL_3_3.yaml | 49 + .../certification/Test_TC_TGTNAV_8_2.yaml | 5 +- .../certification/Test_TC_TIMESYNC_2_15.yaml | 163 + .../certification/Test_TC_TSTAT_3_1.yaml | 28 +- .../certification/Test_TC_WASHERCTRL_1_1.yaml | 76 + .../certification/Test_TC_WASHERCTRL_2_1.yaml | 42 + .../certification/Test_TC_WASHERCTRL_2_2.yaml | 42 + .../certification/Test_TC_WASHERCTRL_3_1.yaml | 54 + .../certification/Test_TC_WASHERCTRL_3_2.yaml | 55 + .../tests/suites/certification/ci-pics-values | 292 +- src/app/tests/suites/ciTests.json | 1 + src/app/tests/suites/manualTests.json | 111 +- .../chip-tool/zap-generated/test/Commands.h | 5115 +++++++++++++++-- .../zap-generated/test/Commands.h | 215 +- .../app1/zap-generated/test/Commands.h | 183 +- .../app2/zap-generated/test/Commands.h | 183 +- 292 files changed, 31431 insertions(+), 16745 deletions(-) delete mode 100644 src/app/tests/suites/certification/Test_TC_BINFO_2_3_Simulated.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_BINFO_2_4.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_BINFO_3_1.yaml delete mode 100644 src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_BRBINFO_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHALM_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHALM_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHALM_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHALM_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHALM_3_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHALM_3_4.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHALM_3_5.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHALM_3_6.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHM_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHM_1_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHM_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHM_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHM_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_DISHM_3_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_FAN_3_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_FAN_3_5.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_ICDM_2_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_ICDM_2_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_LWM_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_LWM_1_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_LWM_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_LWM_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_LWM_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_OPSTATE_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_OPSTATE_2_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_OPSTATE_2_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_OPSTATE_2_4.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_REFALM_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_REFALM_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_REFALM_2_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_REFALM_2_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCCLEANM_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCRUNM_1_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCRUNM_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCRUNM_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCRUNM_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_RVCRUNM_3_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_SC_3_6.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_S_2_5.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_S_2_6.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCCM_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCCM_1_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCCM_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCCM_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCCM_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCCM_3_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCTL_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCTL_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCTL_2_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCTL_2_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCTL_3_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TCTL_3_3.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_TIMESYNC_2_15.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_WASHERCTRL_1_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_WASHERCTRL_2_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_WASHERCTRL_2_2.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_WASHERCTRL_3_1.yaml create mode 100644 src/app/tests/suites/certification/Test_TC_WASHERCTRL_3_2.yaml diff --git a/examples/placeholder/linux/apps/app1/ciTests.json b/examples/placeholder/linux/apps/app1/ciTests.json index 33fb9fa05e1bdf..6313a9621b7290 100644 --- a/examples/placeholder/linux/apps/app1/ciTests.json +++ b/examples/placeholder/linux/apps/app1/ciTests.json @@ -1,6 +1,5 @@ { "Test": [ - "Test_TC_BINFO_2_3_Simulated", "Test_TC_ACT_3_1_Simulated", "Test_TC_BOOL_3_1_Simulated", "Test_TC_DESC_2_2_Simulated", diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index 25ebac3b8dde39..c2015d037578ae 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -1783,6 +1783,101 @@ PICS: - label: "Does the DUT(client) support the Color Temperature feature?" id: CC.C.F04 + # Dishwasher Alarm Cluster + + - label: + "Does the device implement the Dishwasher Alarm cluster as a server?" + id: DISHALM.S + + - label: + "Does the device implement the Dishwasher Alarm cluster as a client?" + id: DISHALM.C + + # + # server / features + # + - label: "Does the device support the Reset command" + id: DISHALM.S.F00 + + # + # server / attributes + # + - label: "Does the device implement the Mask attribute?" + id: DISHALM.S.A0000 + + - label: "Does the device implement the Latch attribute?" + id: DISHALM.S.A0001 + + - label: "Does the device implement the State attribute?" + id: DISHALM.S.A0002 + + - label: "Does the DUT(server) support the PARTSLIST attribute?" + id: DISHALM.S.A0003 + + # + # server / events + # + - label: "Does the device implement the Notify event_?" + id: DISHALM.S.E00 + + # + # server / Manual controllable + # + - label: + "Can the Dishwasher Alarm attribute changed by physical control at the + device?" + id: DISHALM.M.ManuallyControlled + + # + # server / Commands received + # + - label: "Does the device implement receiving the Reset command?" + id: DISHALM.S.C00.Rsp + + - label: "Does the device implement receiving the Modify command?" + id: DISHALM.S.C01.Rsp + + # Dishwasher Mode Cluster + + - label: "Does the device implement the DISHM cluster as a server?" + id: DISHM.S + + # + # server / features + # + - label: + "Does the device support depending on an On/Off cluster implemented on + the same endpoint?" + id: DISHM.S.F00 + + # + # server / attributes + # + - label: "Does the device implement the SupportedModes attribute?" + id: DISHM.S.A0000 + + - label: "Does the device implement the CurrentMode attribute?" + id: DISHM.S.A0001 + + - label: "Does the device implement the StartUpMode attribute?" + id: DISHM.S.A0002 + + - label: "Does the device implement the OnMode attribute?" + id: DISHM.S.A0003 + + # + # server / Commands received + # + - label: "Does the device implement receiving the ChangeToMode command?" + id: DISHM.S.C00.Rsp + + # + # server / Commands generated + # + - label: + "Does the device implement sending the ChangeToModeResponse command?" + id: DISHM.S.C01.Tx + # Descriptor Cluster TestPlan - label: "Does the device implement the Descriptor cluster as a server?" id: DESC.S @@ -4945,10 +5040,10 @@ PICS: # server / manually # - label: "Does the Device support User Interface Display" - id: CADMIN.UserInterfaceDisplay + id: CADMIN.M.UserInterfaceDisplay - label: "Does the Device support Audio Interface" - id: CADMIN.AudioInterface + id: CADMIN.M.AudioInterface # # client / attributes @@ -9118,6 +9213,28 @@ PICS: "Does the device implement the ClientsSupportedPerFabric attribute?" id: ICDM.S.A0005 + # + # Client Attribute + # + - label: "Does the device implement the IdleModeInterval attribute?" + id: ICDM.C.A0000 + + - label: "Does the device implement the ActiveModeInterval attribute?" + id: ICDM.C.A0001 + + - label: "Does the device implement the ActiveModeThreshold attribute?" + id: ICDM.C.A0002 + + - label: "Does the device implement the RegisteredClients attribute?" + id: ICDM.C.A0003 + + - label: "Does the device implement the IcdCounter attribute?" + id: ICDM.C.A0004 + + - label: + "Does the device implement the ClientsSupportedPerFabric attribute?" + id: ICDM.C.A0005 + # # Features # @@ -9127,10 +9244,30 @@ PICS: # #Commands: # + - label: "Does the device implement receiving the RegisterClient command?" + id: ICDM.S.C00.Rsp + + - label: "Does the device implement receiving the UnregisterClient command?" + id: ICDM.S.C02.Rsp + - label: "Does the device implement receiving the StayActiveRequest command?" id: ICDM.S.C03.Rsp + # + #Commands generated + # + - label: "Does the device implement receiving the RegisterClient command?" + id: ICDM.S.C01.Tx + + # + #Commands received + # + - label: + "Does the device implement receiving the RegisterClientResponse + command?" + id: ICDM.C.C00.Rsp + # #RVC Clean Mode Select # @@ -9171,11 +9308,37 @@ PICS: # #Operational State # + - label: + "Does the device implement the Operational State cluster as a server?" + id: OPSTATE.S + + - label: + "Does the device implement the Operational State cluster as a client?" + id: OPSTATE.C + #Server Attributes + - label: "Does the device implement the PhaseList attribute?" + id: OPSTATE.S.A0000 + + - label: "Does the device implement the CurrentPhase attribute?" + id: OPSTATE.S.A0001 + - label: "Does the device implement the CountdownTime attribute?" id: OPSTATE.S.A0002 + - label: "Does the device implement the OperationalStateList attribute?" + id: OPSTATE.S.A0003 + + - label: "Does the device implement the OperationalState attribute?" + id: OPSTATE.S.A0004 + + - label: "Does the device implement the OperationalError attribute?" + id: OPSTATE.S.A0005 #Events Generated + + - label: "Does the device generate the OperationalError event?" + id: OPSTATE.S.E00 + - label: "Does the device generate the OperationCompltion event?" id: OPSTATE.S.E01 @@ -9191,3 +9354,500 @@ PICS: - label: "Does the device implement receiving the Resume command?" id: OPSTATE.S.C03 + + #Commands recevied + - label: "Does the device implement receiving the Pause command?" + id: OPSTATE.S.C00.Rsp + + - label: "Does the device implement receiving the Stop command?" + id: OPSTATE.S.C01.Rsp + + - label: "Does the device implement receiving the Start command?" + id: OPSTATE.S.C02.Rsp + + - label: "Does the device implement receiving the Resume command?" + id: OPSTATE.S.C03.Rsp + + #Commands generated + - label: + "Does the device implement generating the OperationalCommandResponse + command?" + id: OPSTATE.S.C04.Tx + + # Smoke CO Alarm Cluster Test Plan + - label: "Does the device implement the SMCO cluster as a server?" + id: SMCO.S + + - label: "Does the device implement the SMCO cluster as a client?" + id: SMCO.C + + # + # server / features + # + - label: "Does the device support this specific cluster feature?" + id: SMCO.S.F00 + + - label: "Does the device support this specific cluster feature?" + id: SMCO.S.F01 + + # + # server / attributes + # + - label: "Does the device implement the ExpressedState attribute?" + id: SMCO.S.A0000 + + - label: "Does the device implement the SmokeState attribute?" + id: SMCO.S.A0001 + + - label: "Does the device implement the COState attribute?" + id: SMCO.S.A0002 + + - label: "Does the device implement the BatteryAlert attribute?" + id: SMCO.S.A0003 + + - label: "Does the device implement the DeviceMuted attribute?" + id: SMCO.S.A0004 + + - label: "Does the device implement the TestInProgress attribute?" + id: SMCO.S.A0005 + + - label: "Does the device implement the HardwareFaultAlert attribute?" + id: SMCO.S.A0006 + + - label: "Does the device implement the EndOfServiceAlert attribute?" + id: SMCO.S.A0007 + + - label: "Does the device implement the InterconnectSmokeAlarm attribute?" + id: SMCO.S.A0008 + + - label: "Does the device implement the InterconnectCOAlarm attribute?" + id: SMCO.S.A0009 + + - label: "Does the device implement the ContaminationState attribute?" + id: SMCO.S.A0010 + + - label: "Does the device implement the SensitivityLevel attribute?" + id: SMCO.S.A0011 + + - label: "Does the device implement the ExpiryDate attribute?" + id: SMCO.S.A0012 + + - label: "Does the device implement the ContaminationState attribute?" + id: SMCO.S.A000a + + - label: "Does the device implement the SensitivityLevel attribute?" + id: SMCO.S.A000b + + - label: "Does the device implement the ExpiryDate attribute?" + id: SMCO.S.A000c + + # + # server / Events + # + - label: "Does the device implement the SmokeAlarm event?" + id: SMCO.S.E00 + + - label: "Does the device implement the COAlarm event?" + id: SMCO.S.E01 + + - label: "Does the device implement the LowBattery event?" + id: SMCO.S.E02 + + - label: "Does the device implement the HardwareFault event?" + id: SMCO.S.E03 + + - label: "Does the device implement the EndOfService event?" + id: SMCO.S.E04 + + - label: "Does the device implement the SelfTestComplete event?" + id: SMCO.S.E05 + + - label: "Does the device implement the AlarmMuted event?" + id: SMCO.S.E06 + + - label: "Does the device implement the MuteEnded event?" + id: SMCO.S.E07 + + - label: "Does the device implement the InterconnectSmokeAlarm event?" + id: SMCO.S.E08 + + - label: "Does the device implement the InterconnectCOAlarm event?" + id: SMCO.S.E09 + + - label: "Does the device implement the AllClear event?" + id: SMCO.S.E10 + + # + # server / manually + # + - label: + "Can the TestInProgress attribute be changed by physical control at + the device?" + id: SMCO.M.ManuallyControlledTest + + - label: + "Can the DeviceMuted attribute be changed by physical control at the + device?" + id: SMCO.M.ManuallyControlledMute + + # + # server / commandsReceived + # + - label: "Does the device implement receiving the SelfTestRequest command?" + id: SMCO.S.C00.Rsp + + # Laundry Washer Mode Cluster + + - label: "Does the device implement the LWM cluster as a server?" + id: LWM.S + + # + # server / features + # + - label: + "Does the device support depending on an On/Off cluster implemented on + the same endpoint?" + id: LWM.S.F00 + + # + # server / attributes + # + - label: "Does the device implement the SupportedModes attribute?" + id: LWM.S.A0000 + + - label: "Does the device implement the CurrentMode attribute?" + id: LWM.S.A0001 + + - label: "Does the device implement the StartUpMode attribute?" + id: LWM.S.A0002 + + - label: "Does the device implement the OnMode attribute?" + id: LWM.S.A0003 + + # + # server / Commands received + # + - label: "Does the device implement receiving the ChangeToMode command?" + id: LWM.S.C00.Rsp + + # + # server / Commands generated + # + - label: + "Does the device implement sending the ChangeToModeResponse command?" + id: LWM.S.C01.Tx + + # RVC Clean Mode Cluster + + - label: "Does the device implement the RVCCLEANM cluster as a server?" + id: RVCCLEANM.S + + # + # server / features + # + - label: + "Does the device support depending on an On/Off cluster implemented on + the same endpoint?" + id: RVCCLEANM.S.F00 + + # + # server / attributes + # + - label: "Does the device implement the SupportedModes attribute?" + id: RVCCLEANM.S.A0000 + + - label: "Does the device implement the CurrentMode attribute?" + id: RVCCLEANM.S.A0001 + + - label: "Does the device implement the StartUpMode attribute?" + id: RVCCLEANM.S.A0002 + + - label: "Does the device implement the OnMode attribute?" + id: RVCCLEANM.S.A0003 + + # + # server / Commands received + # + - label: "Does the device implement receiving the ChangeToMode command?" + id: RVCCLEANM.S.C00.Rsp + + # + # server / Commands generated + # + - label: + "Does the device implement sending the ChangeToModeResponse command?" + id: RVCCLEANM.S.C01.Tx + + # + #Temperature Controlled Cabinet Mode Cluster + # + - label: "Does the device implement the TCCM cluster as a server?" + id: TCCM.S + + #Features + - label: + "Does the device support depending on an On/Off cluster implemented on + the same endpoint?" + id: TCCM.S.F00 + + #Server Attributes + - label: "Does the device implement the SupportedModes attribute?" + id: TCCM.S.A0000 + + - label: "Does the device implement the CurrentMode attribute?" + id: TCCM.S.A0001 + + - label: "Does the device implement the StartUpMode attribute?" + id: TCCM.S.A0002 + + - label: "Does the device implement the OnMode attribute?" + id: TCCM.S.A0003 + + #Commands received + - label: "Does the device implement receiving the ChangeToMode command?" + id: TCCM.S.C00.Rsp + + #Commands generated + - label: + "Does the device implement sending the ChangeToModeResponse command?" + id: TCCM.S.C01.Tx + + # + #Temperature Control + # + - label: + "Does the device implement the TemperatureControl cluster as a server?" + id: TCTL.S + + - label: + "Does the device implement the TemperatureControl cluster as a client?" + id: TCTL.C + + #Features + - label: "Does the device support temperature number feature" + id: TCTL.S.F00 + + - label: "Does the device support temperature level feature" + id: TCTL.S.F01 + + - label: "Does the device support step feature" + id: TCTL.S.F02 + + #Server Attributes + - label: "Does the device implement the TemperatureSetpoint attribute?" + id: TCTL.S.A0000 + + - label: "Does the device implement the MinTemperature attribute?" + id: TCTL.S.A0001 + + - label: "Does the device implement the MaxTemperature attribute?" + id: TCTL.S.A0002 + + - label: "Does the device implement the Step attribute?" + id: TCTL.S.A0003 + + - label: "Does the device implement the SelectedTemperatureLevel attribute?" + id: TCTL.S.A0004 + + - label: + "Does the device implement the SupportedTemperatureLevels attribute?" + id: TCTL.S.A0005 + + #Manual controllable + - label: + "Can the Temperature attribute changed by physical control at the + device?" + id: TCC.M.ManuallyControlledTemperature + + #Commands received + - label: + "Does the device implement receiving the SetTemperatureCommand + command?" + id: TCTL.S.C00.Rsp + + #Commands generated + - label: + "Does the device support sending the SetTemperatureCommand command?" + id: TCTL.C.C00.Tx + + # + #Washer Controls + # + - label: + "Does the device implement the Laundry Washer Controls cluster as a + server?" + id: WASHERCTRL.S + + - label: + "Does the device implement the Laundry Washer Controls cluster as a + client?" + id: WASHERCTRL.C + + #Features + - label: "Does the device support spin feature" + id: WASHERCTRL.S.F00 + + - label: "Does the device support rinse feature" + id: WASHERCTRL.S.F01 + + #Server Attributes + - label: "Does the device implement the SpinSpeeds attribute?" + id: WASHERCTRL.S.A0000 + + - label: "Does the device implement the SpinSpeedCurrent attribute?" + id: WASHERCTRL.S.A0001 + + - label: "Does the device implement the NumberOfRinses attribute?" + id: WASHERCTRL.S.A0002 + + - label: "Does the device implement the SupportedRinses attribute?" + id: WASHERCTRL.S.A0003 + + #Manual controllable + - label: "Can the Spin attribute changed by physical control at the device?" + id: WASHERCTRL.S.M.ManuallyControlledSpin + + - label: + "Can the Rinse attribute changed by physical control at the device?" + id: WASHERCTRL.S.M.ManuallyControlledRinse + + # + #RVC Run Mode + # + - label: "Does the device implement the RVCRUNM cluster as a server?" + id: RVCRUNM.S + + #Features + - label: + "Does the device support depending on an On/Off cluster implemented on + the same endpoint?" + id: RVCRUNM.S.F00 + + #Attributes + - label: "Does the device implement the SupportedModes attribute?" + id: RVCRUNM.S.A0000 + + - label: "Does the device implement the CurrentMode attribute?" + id: RVCRUNM.S.A0001 + + - label: "Does the device implement the StartUpMode attribute?" + id: RVCRUNM.S.A0002 + + - label: "Does the device implement the OnMode attribute?" + id: RVCRUNM.S.A0003 + + #Commands received + - label: "Does the device implement receiving the ChangeToMode command?" + id: RVCRUNM.S.C00.Rsp + + #Commands generated + - label: + "Does the device implement sending the ChangeToModeResponse command?" + id: RVCRUNM.S.C01.Tx + + # + #Refrigerator Alarm + # + - label: + "Does the device implement the Refrigerator Alarm cluster as a server?" + id: REFALM.S + + - label: + "Does the device implement the Refrigerator Alarm cluster as a client?" + id: REFALM.C + + #Attributes + - label: "Does the device implement the Mask attribute?" + id: REFALM.S.A0000 + + - label: "Does the device implement the Latch attribute?" + id: REFALM.S.A0001 + + - label: "Does the device implement the State attribute?" + id: REFALM.S.A0002 + + - label: "Does the device implement the Supported attribute?" + id: REFALM.S.A0003 + + #Events + - label: "Does the device implement the Notify event?" + id: REFALM.S.E00 + + #Commands received + - label: "Does the device implement receiving the Reset command?" + id: REFALM.S.C00.Rsp + + - label: + "Does the device implement receiving the ModifyEnabledAlarms command?" + id: REFALM.S.C01.Rsp + + # + #RVC Operational State + # + - label: + "Does the device implement the RVC Operational State cluster as a + server?" + id: RVCOPSTATE.S + + - label: + "Does the device implement the RVC Operational State cluster as a + client?" + id: RVCOPSTATE.C + + #Attributes + - label: "Does the device implement the PhaseList attribute?" + id: RVCOPSTATE.S.A0000 + + - label: "Does the device implement the CurrentPhase attribute?" + id: RVCOPSTATE.S.A0001 + + - label: "Does the device implement the CountdownTime attribute?" + id: RVCOPSTATE.S.A0002 + + - label: "Does the device implement the OperationalStateList attribute?" + id: RVCOPSTATE.S.A0003 + + - label: "Does the device implement the OperationalState attribute?" + id: RVCOPSTATE.S.A0004 + + - label: "Does the device implement the OperationalError attribute?" + id: RVCOPSTATE.S.A0005 + + #Commands received + - label: "Does the device implement receiving the Pause command?" + id: RVCOPSTATE.S.C00.Rsp + + - label: "Does the device implement receiving the Stop command?" + id: RVCOPSTATE.S.C01.Rsp + + - label: "Does the device implement receiving the Start command?" + id: RVCOPSTATE.S.C02.Rsp + + - label: "Does the device implement receiving the Resume command?" + id: RVCOPSTATE.S.C03.Rsp + + #Commands generated + - label: + "Does the device implement generating the OperationalCommandResponse + command?" + id: RVCOPSTATE.S.C04.Tx + + #Events + - label: "Does the device implement the OperationalError Event ?" + id: RVCOPSTATE.S.E00 + + - label: "Does the device implement the OperationCompletion Event ?" + id: RVCOPSTATE.S.E01 + + #Client Commands received + - label: "Does the device implement sending the Pause command?" + id: RVCOPSTATE.C.C00.Tx + + - label: "Does the device implement sending the Stop command?" + id: RVCOPSTATE.C.C01.Tx + + - label: "Does the device implement sending the Start command?" + id: RVCOPSTATE.C.C02.Tx + + - label: "Does the device implement sending the Resume command?" + id: RVCOPSTATE.C.C04.Tx diff --git a/src/app/tests/suites/certification/Test_TC_ACE_1_6.yaml b/src/app/tests/suites/certification/Test_TC_ACE_1_6.yaml index 9e3b0163b13995..e4038e0a627e28 100644 --- a/src/app/tests/suites/certification/Test_TC_ACE_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACE_1_6.yaml @@ -110,10 +110,10 @@ tests: add Manage privileges for group 0x0103 and maintain the current administrative privileges for the TH on the Access Control cluster. The following access control list shall be used: List item 1 (TH - admin): Privilege: Administer (5), AuthMode: CASE (2), Subjects: [N1], - Targets: [{Cluster: AccessControl (0x001f), Endpoint: 0}]. List item 2 - (group Manage access): Privilege: Manage (4), AuthMode: Group (3), - Subjects: group 0x0103 ([0x0103]), Targets: {Cluster: Groups (0x0004), + admin): Privilege: Administer (5) AuthMode: CASE (2) Subjects: [N1] + Targets: [{Cluster: AccessControl (0x001f), Endpoint: 0}] List item 2 + (group Manage access): Privilege: Manage (4) AuthMode: Group (3) + Subjects: group 0x0103 ([0x0103]) Targets: {Cluster: Groups (0x0004), Endpoint: PIXIT.G.ENDPOINT}" command: "writeAttribute" attribute: "ACL" diff --git a/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml b/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml index f910cb9f39f9b4..5be7d63eb82bd6 100644 --- a/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml @@ -24,37 +24,38 @@ config: endpoint: 0 tests: - - label: "Commission DUT to TH (can be skipped if done in a preceding test)" + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" verification: | DUT and TH are on same fabric - disabled: true - label: - "Use manufacturer provided means (e.g. app) to define groups of - endpoints that can be exposed using the Actions server cluster (NOTE - if this is not provided, it is assumed the DUT automagically creates - these)" + "Step 2a: Use manufacturer provided means (e.g. app) to define groups + of endpoints that can be exposed using the Actions server cluster + (NOTE if this is not provided, it is assumed the DUT automagically + creates these)" PICS: ACT.S.M.FillEndpointLists verification: | no Matter messages, result will be used in steps 4a and beyond disabled: true - label: - "Use manufacturer provided means (e.g. app) to define available - actions that can be exposed using the Actions server cluster" + "Step 2b: Use manufacturer provided means (e.g. app) to define + available actions that can be exposed using the Actions server cluster" PICS: ACT.S.M.FillActionList verification: | no Matter messages, result will be used in steps 5a and beyond disabled: true - label: - "Read PartsList attribute of Descriptor cluster on endpoint 0 of the - DUT" + "Step 3: Read PartsList attribute of Descriptor cluster on endpoint 0 + of the DUT" verification: | ./chip-tool descriptor read parts-list 1 0 - On TH(chip-tool), verify the PartsList value as 12 entries (number may vary by DUT capabilities) + Via the TH (chip-tool), verify the PartsList value has 12 entries (number may vary by DUT capabilities). [1661775581.434024][11909:11914] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2309949467 [1661775581.434098][11909:11914] CHIP:TOO: parts list: 12 entries @@ -73,12 +74,12 @@ tests: [1661775581.434597][11909:11914] CHIP:EM: Sending Standalone Ack for MessageCounter:142298497 on exchange 3054i disabled: true - - label: "Read EndpointLists attribute of Actions server" + - label: "Step 4a: Read EndpointLists attribute of Actions server" PICS: ACT.S.A0001 verification: | ./chip-tool actions read endpoint-lists 1 1 - On TH(chip-tool), verify the EndpointListStructs in TH Log: + Via the TH (chip-tool), verify the EndpointLists attribute that contains EndpointListStructs. [1658474608.888833][20775:20780] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 2082192894 [1658474608.888887][20775:20780] CHIP:TOO: endpoint list: 2 entries @@ -101,10 +102,10 @@ tests: disabled: true - label: - "For each EndpointListStruct, verify that the endpoints in the - Endpoints field are in the list of endpoints of the DUT" + "Step 4b: For each EndpointListStruct, verify that the endpoints in + the Endpoints field are in the list of endpoints of the DUT" verification: | - On TH(chip-tool), Verify all referenced endpoints present in list from step 3 + Via the TH (chip-tool), Verify all referenced endpoints present in list from step 3 [1658474608.888833][20775:20780] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 2082192894 [1658474608.888887][20775:20780] CHIP:TOO: endpoint list: 2 entries @@ -126,9 +127,10 @@ tests: [1658474608.889205][20775:20780] CHIP:TOO: } disabled: true - - label: "For each EndpointListStruct, verify that the Name is present" + - label: + "Step 4c: For each EndpointListStruct, verify that the Name is present" verification: | - On TH(chip-tool), Verify each EndpointListStruct has Name in following log + Via the TH (chip-tool), Verify each EndpointListStruct has Name in following log. [1658474608.888833][20775:20780] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 2082192894 [1658474608.888887][20775:20780] CHIP:TOO: endpoint list: 2 entries @@ -151,10 +153,10 @@ tests: disabled: true - label: - "For each EndpointListStruct, verify that the Type is present and - valid" + "Step 4d: For each EndpointListStruct, verify that the Type is present + and valid" verification: | - On TH(chip-tool), Verify the type is present and valid for each EndpointListStruct in the following log + Via the TH (chip-tool), Verify the type is present and valid for each EndpointListStruct in the following log. [1658474608.888833][20775:20780] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 2082192894 [1658474608.888887][20775:20780] CHIP:TOO: endpoint list: 2 entries @@ -177,10 +179,10 @@ tests: disabled: true - label: - "Verify that the EndPointListIDs of all EndpointListStruct are unique - (no duplicates)" + "Step 4e: Verify that the EndPointListIDs of all EndpointListStruct + are unique (no duplicates)" verification: | - On TH(chip-tool), Verify the EndPointListIDs of all EndpointListStruct are unique and no duplicates in the following log + Via the TH (chip-tool), Verify the EndPointListIDs of all EndpointListStruct are unique and no duplicates in the following log [1658474608.888833][20775:20780] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 2082192894 [1658474608.888887][20775:20780] CHIP:TOO: endpoint list: 2 entries @@ -196,19 +198,19 @@ tests: [1658474608.889114][20775:20780] CHIP:TOO: EndpointListID: 57346 [1658474608.889128][20775:20780] CHIP:TOO: Name: Room 2 [1658474608.889142][20775:20780] CHIP:TOO: Type: 1 - [1658474608.889159][20775:20780] CHIP:TOO: Endpoints: 2 entries \ + [1658474608.889159][20775:20780] CHIP:TOO: Endpoints: 2 entries [1658474608.889175][20775:20780] CHIP:TOO: [1]: 12 [1658474608.889191][20775:20780] CHIP:TOO: [2]: 13 [1658474608.889205][20775:20780] CHIP:TOO: } disabled: true - label: - "For each EndpointListStruct, verify Name and Type against the - name/type of each group of endpoints provided by the manufacturers + "Step 4f: For each EndpointListStruct, verify Name and Type against + the name/type of each group of endpoints provided by the manufacturers means" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | - On TH(chip-tool), Verify the information matches, Name and Type against the name/type of each group of endpoints provided + Via the TH (chip-tool), Verify the information matches, Name and Type against the name/type of each group of endpoints provided [1658474608.888833][20775:20780] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 2082192894 [1658474608.888887][20775:20780] CHIP:TOO: endpoint list: 2 entries @@ -230,12 +232,12 @@ tests: [1658474608.889205][20775:20780] CHIP:TOO: } disabled: true - - label: "Read ActionList attribute of Actions server" + - label: "Step 5a: Read ActionList attribute of Actions server" PICS: ACT.S.A0000 verification: | ./chip-tool actions read action-list 1 1 - Verify ActionStructs in TH(chip-tool) Log: + Via the TH (chip-tool), verify the ActionList attribute contains ActionStructs has 2 entries. [1658473018.104129][16539:16544] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 3292516604 [1658473018.104215][16539:16544] CHIP:TOO: action list: 2 entries @@ -245,7 +247,7 @@ tests: [1658473018.104770][16539:16544] CHIP:TOO: Type: 3 [1658473018.104786][16539:16544] CHIP:TOO: EndpointListID: 57345 [1658473018.104803][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104819][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104819][16539:16544] CHIP:TOO: State: 0 [1658473018.104834][16539:16544] CHIP:TOO: } [1658473018.104864][16539:16544] CHIP:TOO: [2]: { [1658473018.104879][16539:16544] CHIP:TOO: ActionID: 4098 @@ -253,13 +255,13 @@ tests: [1658473018.104908][16539:16544] CHIP:TOO: Type: 3 [1658473018.104923][16539:16544] CHIP:TOO: EndpointListID: 57346 [1658473018.104938][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104953][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104953][16539:16544] CHIP:TOO: State: 0 [1658473018.104967][16539:16544] CHIP:TOO: } disabled: true - - label: "For each ActionStruct, verify the Name is present" + - label: "Step 5b: For each ActionStruct, verify the Name is present" verification: | - On TH(chip-tool), Verify the name is present in each of the ActionStruct in the below log + Via the TH (chip-tool), Verify the name is present in each of the ActionStruct in the below log. [1658473018.104129][16539:16544] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 3292516604 [1658473018.104215][16539:16544] CHIP:TOO: action list: 2 entries @@ -269,7 +271,7 @@ tests: [1658473018.104770][16539:16544] CHIP:TOO: Type: 3 [1658473018.104786][16539:16544] CHIP:TOO: EndpointListID: 57345 [1658473018.104803][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104819][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104819][16539:16544] CHIP:TOO: State: 0 [1658473018.104834][16539:16544] CHIP:TOO: } [1658473018.104864][16539:16544] CHIP:TOO: [2]: { [1658473018.104879][16539:16544] CHIP:TOO: ActionID: 4098 @@ -277,13 +279,14 @@ tests: [1658473018.104908][16539:16544] CHIP:TOO: Type: 3 [1658473018.104923][16539:16544] CHIP:TOO: EndpointListID: 57346 [1658473018.104938][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104953][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104953][16539:16544] CHIP:TOO: State: 0 [1658473018.104967][16539:16544] CHIP:TOO: } disabled: true - - label: "For each ActionStruct, verify the Type is present and valid" + - label: + "Step 5c: For each ActionStruct, verify the Type is present and valid" verification: | - On TH(chip-tool), Verify the type is present and valid for each of the ActionStruct in the below log + Via the TH (chip-tool), Verify the type is present and valid for each of the ActionStruct in the below log. [1658473018.104129][16539:16544] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 3292516604 [1658473018.104215][16539:16544] CHIP:TOO: action list: 2 entries @@ -293,7 +296,7 @@ tests: [1658473018.104770][16539:16544] CHIP:TOO: Type: 3 [1658473018.104786][16539:16544] CHIP:TOO: EndpointListID: 57345 [1658473018.104803][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104819][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104819][16539:16544] CHIP:TOO: State: 0 [1658473018.104834][16539:16544] CHIP:TOO: } [1658473018.104864][16539:16544] CHIP:TOO: [2]: { [1658473018.104879][16539:16544] CHIP:TOO: ActionID: 4098 @@ -301,22 +304,22 @@ tests: [1658473018.104908][16539:16544] CHIP:TOO: Type: 3 [1658473018.104923][16539:16544] CHIP:TOO: EndpointListID: 57346 [1658473018.104938][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104953][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104953][16539:16544] CHIP:TOO: State: 0 [1658473018.104967][16539:16544] CHIP:TOO: } disabled: true - label: - "For each ActionStruct, verify the EndpointListID is present in one of - the EndpointListStructs (see step 4a)" + "Step 5d: For each ActionStruct, verify the EndpointListID is present + in one of the EndpointListStructs (see step 4a)" verification: | Compare step 5d and 4a, verify the EndpointListID is present in one of the EndpointListStructs disabled: true - label: - "For each ActionStruct, verify the SupportedCommands field is present - and valid (at least one bit is set)" + "Step 5e: For each ActionStruct, verify the SupportedCommands field is + present and valid (at least one bit is set)" verification: | - On TH(chip-tool), verify the SupportedCommands field is present and valid for each ActionStruct in the below log + Via the TH (chip-tool), verify the SupportedCommands field is present and valid for each ActionStruct in the below log. [1658473018.104129][16539:16544] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 3292516604 [1658473018.104215][16539:16544] CHIP:TOO: action list: 2 entries @@ -326,7 +329,7 @@ tests: [1658473018.104770][16539:16544] CHIP:TOO: Type: 3 [1658473018.104786][16539:16544] CHIP:TOO: EndpointListID: 57345 [1658473018.104803][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104819][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104819][16539:16544] CHIP:TOO: State: 0 [1658473018.104834][16539:16544] CHIP:TOO: } [1658473018.104864][16539:16544] CHIP:TOO: [2]: { [1658473018.104879][16539:16544] CHIP:TOO: ActionID: 4098 @@ -334,14 +337,14 @@ tests: [1658473018.104908][16539:16544] CHIP:TOO: Type: 3 [1658473018.104923][16539:16544] CHIP:TOO: EndpointListID: 57346 [1658473018.104938][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104953][16539:16544] CHIP:TOO: Status: 0 - [1658473018.104967][16539:16544] CHIP:TOO: } + [1658473018.104953][16539:16544] CHIP:TOO: State: 0 disabled: true - label: - "For each ActionStruct, verify the State field is present and valid" + "Step 5f: For each ActionStruct, verify the State field is present and + valid" verification: | - On TH(chip-tool), verify the State field is present and valid for each ActionStruct in the below log + Via the TH (chip-tool), verify the State field is present and valid for each ActionStruct in the below log. [1658473018.104129][16539:16544] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 3292516604 [1658473018.104215][16539:16544] CHIP:TOO: action list: 2 entries @@ -351,7 +354,7 @@ tests: [1658473018.104770][16539:16544] CHIP:TOO: Type: 3 [1658473018.104786][16539:16544] CHIP:TOO: EndpointListID: 57345 [1658473018.104803][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104819][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104819][16539:16544] CHIP:TOO: State: 0 [1658473018.104834][16539:16544] CHIP:TOO: } [1658473018.104864][16539:16544] CHIP:TOO: [2]: { [1658473018.104879][16539:16544] CHIP:TOO: ActionID: 4098 @@ -359,15 +362,15 @@ tests: [1658473018.104908][16539:16544] CHIP:TOO: Type: 3 [1658473018.104923][16539:16544] CHIP:TOO: EndpointListID: 57346 [1658473018.104938][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104953][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104953][16539:16544] CHIP:TOO: State: 0 [1658473018.104967][16539:16544] CHIP:TOO: } disabled: true - label: - "Verify that the ActionIDs of all ActionStructs are unique (no - duplicates)" + "Step 5g: Verify that the ActionIDs of all ActionStructs are unique + (no duplicates)" verification: | - On TH(chip-tool), Verify the ActionIDs of all ActionStructs are unique and no duplicates are found in the below log + Via the TH (chip-tool), Verify the ActionIDs of all ActionStructs are unique and no duplicates are found in the below log. [1658473018.104129][16539:16544] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 3292516604 [1658473018.104215][16539:16544] CHIP:TOO: action list: 2 entries @@ -377,7 +380,7 @@ tests: [1658473018.104770][16539:16544] CHIP:TOO: Type: 3 [1658473018.104786][16539:16544] CHIP:TOO: EndpointListID: 57345 [1658473018.104803][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104819][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104819][16539:16544] CHIP:TOO: State: 0 [1658473018.104834][16539:16544] CHIP:TOO: } [1658473018.104864][16539:16544] CHIP:TOO: [2]: { [1658473018.104879][16539:16544] CHIP:TOO: ActionID: 4098 @@ -385,17 +388,17 @@ tests: [1658473018.104908][16539:16544] CHIP:TOO: Type: 3 [1658473018.104923][16539:16544] CHIP:TOO: EndpointListID: 57346 [1658473018.104938][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104953][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104953][16539:16544] CHIP:TOO: State: 0 [1658473018.104967][16539:16544] CHIP:TOO: } disabled: true - label: - "For each ActionStruct, verify Name, Type and State against the - name/type/state info for the action provided by the manufacturers + "Step 5h: For each ActionStruct, verify Name, Type and State against + the name/type/state info for the action provided by the manufacturers means" PICS: ACT.S.A0000 && ACT.S.M.FillActionList verification: | - On TH(chip-tool), verify the information matches Name, Type and State against the name/type/state info for the action provided in below log: + Via the TH (chip-tool), verify the information matches Name, Type and State against the name/type/state info for the action provided in below log. [1658473018.104129][16539:16544] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 3292516604 [1658473018.104215][16539:16544] CHIP:TOO: action list: 2 entries @@ -405,7 +408,7 @@ tests: [1658473018.104770][16539:16544] CHIP:TOO: Type: 3 [1658473018.104786][16539:16544] CHIP:TOO: EndpointListID: 57345 [1658473018.104803][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104819][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104819][16539:16544] CHIP:TOO: State: 0 [1658473018.104834][16539:16544] CHIP:TOO: } [1658473018.104864][16539:16544] CHIP:TOO: [2]: { [1658473018.104879][16539:16544] CHIP:TOO: ActionID: 4098 @@ -413,43 +416,45 @@ tests: [1658473018.104908][16539:16544] CHIP:TOO: Type: 3 [1658473018.104923][16539:16544] CHIP:TOO: EndpointListID: 57346 [1658473018.104938][16539:16544] CHIP:TOO: SupportedCommands: 1 - [1658473018.104953][16539:16544] CHIP:TOO: Status: 0 + [1658473018.104953][16539:16544] CHIP:TOO: State: 0 [1658473018.104967][16539:16544] CHIP:TOO: } disabled: true - - label: "Read SetupURL attribute" + - label: "Step 6a: Read SetupURL attribute" PICS: ACT.S.A0002 verification: | ./chip-tool actions read setup-url 1 1 - Verify in TH(chip-tool) log, this is an optional attribute and it is implemented in RPI, it may vary based on DUT implementation. + Via the TH (chip-tool), Verify SetupURL attribute that contains string value. + + this is an optional attribute and it is implemented in RPI, it may vary based on DUT implementation. [1658473627.759830][18059:18064] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0002 DataVersion: 3292516604 [1658473627.759880][18059:18064] CHIP:TOO: setup url: https://example.com disabled: true - - label: "Verify that its syntax" + - label: "Step 6b: Verify that its syntax" verification: | - On TH(chip-tool), Verify the syntax as specified in RFC 3986, max. 512 ASCII characters in below log + Via the TH (chip-tool), Verify the syntax as specified in RFC 3986, max. 512 ASCII characters in below log [1658473627.759830][18059:18064] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0002 DataVersion: 3292516604 [1658473627.759880][18059:18064] CHIP:TOO: setup url: https://example.com disabled: true - label: - "Verify SetupURL points to a site providing information about the - actions" + "Step 6c: Verify SetupURL points to a site providing information about + the actions" verification: | - On TH(chip-tool), Verify SetupURL points to a site providing information about the actions in below log + Via the TH (chip-tool), Verify SetupURL points to a site providing information about the actions in below log [1658473627.759830][18059:18064] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0002 DataVersion: 3292516604 [1658473627.759880][18059:18064] CHIP:TOO: setup url: https://example.com disabled: true - label: - "Verify SetupURL appended by '?/a='' and the decimal numeric value of - one of the exposed ActionIDs (see step 5a) points to a site providing - information about the action" + "Step 6d: Verify SetupURL appended by '?/a='' and the decimal numeric + value of one of the exposed ActionIDs (see step 5a) points to a site + providing information about the action" PICS: ACT.S.A0002 && ACT.S.M.SetupURLWithSuffix verification: | Compare 5a and 6a, Verify SetupURL appended by "?/a=" and the decimal numeric value of one of the exposed ActionIDs diff --git a/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml b/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml index 08d1eae040a18e..bc13c424587388 100644 --- a/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml @@ -24,24 +24,27 @@ config: endpoint: 0 tests: - - label: "Commission DUT to TH (can be skipped if done in a preceding test)" + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" verification: | disabled: true - label: - "Using the manufacturer provided means, create multiple groups with - each multiple bridged devices (endpoints)" + "Step 2a: Using the manufacturer provided means, create multiple + groups with each multiple bridged devices (endpoints)" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | Create multiple groups with each multiple bridged devices (endpoints) disabled: true - - label: "Read EndpointLists attribute" + - label: "Step 2b: Read EndpointLists attribute" verification: | ./chip-tool actions read endpoint-lists 1 1 - On TH(chip-tool), verify the EndpointListStructs in TH Log: + Via the TH (chip-tool), verify the EndpointLists attribute that contains EndpointListStructs. + [1658426570.716289][16527:16532] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 [1658426570.716404][16527:16532] CHIP:TOO: endpoint list: 2 entries [1658426570.716465][16527:16532] CHIP:TOO: [1]: { @@ -62,20 +65,21 @@ tests: disabled: true - label: - "Using the manufacturer provided means, update the name of one of the - groups" + "Step 2c: Using the manufacturer provided means, update the name of + one of the groups" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | press r in bridge-app to rename (in the example, renamed "office" to "kitchen") disabled: true - - label: "Read EndpointLists attribute again" + - label: "Step 2d: Read EndpointLists attribute again" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | ./chip-tool actions read endpoint-lists 1 1 - On TH(chip-tool), verify the EndpointListStructs in below Log: + Via the TH (chip-tool), verify the EndpointLists attribute that contains EndpointListStructs. + [1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648 [1658408033.786954][14495:14500] CHIP:TOO: endpoint list: 2 entries [1658408033.787044][14495:14500] CHIP:TOO: [1]: { @@ -95,13 +99,14 @@ tests: [1658408033.788278][14495:14500] CHIP:TOO: } disabled: true - - label: "compare result of step 2d to what was read in step 2b" + - label: "Step 2e: compare result of step 2d to what was read in step 2b" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | compare result of step 2d to what was read in step 2b, Verify name field in relevant EndpointListStruct has been updated and no other changes in EndpointLists attribute - Step 2d log - On TH(chip-tool), verify the EndpointListStructs: + Step 2d log: + Via the TH (chip-tool), verify the EndpointLists attribute that contains EndpointListStructs. + [1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648 [1658408033.786954][14495:14500] CHIP:TOO: endpoint list: 2 entries [1658408033.787044][14495:14500] CHIP:TOO: [1]: { @@ -120,8 +125,9 @@ tests: [1658408033.788243][14495:14500] CHIP:TOO: [1]: 9 [1658408033.788278][14495:14500] CHIP:TOO: } - Step 2b log - On TH(chip-tool), verify the EndpointListStructs + Step 2b log: + Via the TH (chip-tool), verify the EndpointLists attribute that contains EndpointListStructs. + [1658426570.716289][16527:16532] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 [1658426570.716404][16527:16532] CHIP:TOO: endpoint list: 2 entries [1658426570.716465][16527:16532] CHIP:TOO: [1]: { @@ -142,8 +148,8 @@ tests: disabled: true - label: - "Using the manufacturer provided means, move one of the bridged - devices (one endpoint) from one group to another group" + "Step 2f: Using the manufacturer provided means, move one of the + bridged devices (one endpoint) from one group to another group" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | Press f in bridge app to move one of the bridged devices (one endpoint) from one group to another group @@ -151,12 +157,13 @@ tests: (in the example, light at ep 3 was moved to kitchen) disabled: true - - label: "Read EndpointLists attribute again" + - label: "Step 2g: Read EndpointLists attribute again" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | ./chip-tool actions read endpoint-lists 1 1 - On TH(chip-tool), verify the EndpointListStructs + Via the TH (chip-tool), verify the EndpointLists attribute that contains EndpointListStructs. + [1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648 [1658408033.786954][14495:14500] CHIP:TOO: endpoint list: 2 entries [1658408033.787044][14495:14500] CHIP:TOO: [1]: { @@ -176,13 +183,15 @@ tests: [1658408033.788278][14495:14500] CHIP:TOO: } disabled: true - - label: "compare result of step 2g to what was read in step 2d" + - label: "Step 2h: compare result of step 2g to what was read in step 2d" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | compare result of step 2g to what was read in step 2d, Verify one EP (EP 3 in this case) has been moved from one EndpointListStruct to another EndpointListStruct disabled: true - - label: "Using the manufacturer provided means, remove one of the groups" + - label: + "Step 2i: Using the manufacturer provided means, remove one of the + groups" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | Press i in bridge-ap to remove one of the groups @@ -190,12 +199,13 @@ tests: in this case, the 2nd group was removed disabled: true - - label: "Read EndpointLists attribute again" + - label: "Step 2j: Read EndpointLists attribute again" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | ./chip-tool actions read endpoint-lists 1 1 - On TH(chip-tool), verify the EndpointListStructs + Via the TH (chip-tool), verify the EndpointLists attribute that contains EndpointListStructs. + [1658426959.409374][16560:16565] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 [1658426959.409476][16560:16565] CHIP:TOO: endpoint list: 1 entries [1658426959.409543][16560:16565] CHIP:TOO: [1]: { @@ -207,27 +217,29 @@ tests: [1658426959.409755][16560:16565] CHIP:TOO: } disabled: true - - label: "compare result of step 2j to what was read in step 2g" + - label: "Step 2k: compare result of step 2j to what was read in step 2g" PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists verification: | compare result of step 2j to what was read in step 2g, Verify one EndpointListStruct (the 2nd one in this example) got removed while the other one(s) did not change disabled: true - label: - "Using the manufacturer provided means, create a new group, which - includes one of the bridged devices also present in another group" + "Step 2l: Using the manufacturer provided means, create a new group, + which includes one of the bridged devices also present in another + group" PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists verification: | press l in bridge-app in this example, a zone was created with same light (ep 2) disabled: true - - label: "Read EndpointLists attribute again" + - label: "Step 2m: Read EndpointLists attribute again" PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists verification: | ./chip-tool actions read endpoint-lists 1 1 - On TH(chip-tool), verify the EndpointListStructs + Via the TH (chip-tool), verify the EndpointLists attribute that contains EndpointListStructs. + 1658427088.316681][16578:16583] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568 [1658427088.316792][16578:16583] CHIP:TOO: endpoint list: 2 entries [1658427088.316850][16578:16583] CHIP:TOO: [1]: { @@ -246,25 +258,28 @@ tests: [1658427088.317705][16578:16583] CHIP:TOO: } disabled: true - - label: "compare result of step 2m to what was read in step 2j" + - label: "Step 2n: compare result of step 2m to what was read in step 2j" PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists verification: | compare result of step 2m to what was read in step 2j. Verify a new EndpointListStruct got added (the 2nd one in this example) with an EP which is also in one of the other EndpointListStructs (EP2 in this example) disabled: true - - label: "Using the manufacturer provided means, create multiple actions" + - label: + "Step 3a: Using the manufacturer provided means, create multiple + actions" PICS: ACT.S.A0000 && ACT.S.M.FillActionList verification: | no Matter messages disabled: true - - label: "Read ActionList attribute" + - label: "Step 3b: Read ActionList attribute" PICS: ACT.S.A0000 && ACT.S.M.FillActionList verification: | ./chip-tool actions read action-list 1 1 - Verify ActionStructs in TH(chip-tool) Log: + Via the TH (chip-tool), verify the ActionList attribute that contains ActionListStructs. + [1658479958.699434][26130:26135] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 [1658479958.699494][26130:26135] CHIP:TOO: action list: 2 entries [1658479958.699549][26130:26135] CHIP:TOO: [1]: { @@ -286,19 +301,20 @@ tests: disabled: true - label: - "Using the manufacturer provided means, update the name of one of the - actions" + "Step 3c: Using the manufacturer provided means, update the name of + one of the actions" PICS: ACT.S.A0000 && ACT.S.M.FillActionList verification: | Press m in bridge-app to update the name of one action disabled: true - - label: "Read ActionList attribute again" + - label: "Step 3d: Read ActionList attribute again" PICS: ACT.S.A0000 && ACT.S.M.FillActionList verification: | ./chip-tool actions read action-list 1 1 - Verify ActionStructs in TH(chip-tool) Log: + Via the TH (chip-tool), verify the ActionList attribute that contains ActionListStructs. + [1658480004.064867][26153:26158] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 [1658480004.064928][26153:26158] CHIP:TOO: action list: 2 entries [1658480004.064992][26153:26158] CHIP:TOO: [1]: { @@ -319,13 +335,14 @@ tests: [1658480004.065252][26153:26158] CHIP:TOO: } disabled: true - - label: "compare result of step 3d to what was read in step 3b" + - label: "Step 3e: compare result of step 3d to what was read in step 3b" PICS: ACT.S.A0000 && ACT.S.M.FillActionList verification: | Compare step 3d and 3b and verify the name field has been changed Step 3d - Verify ActionStructs in TH(chip-tool) Log: + Via the TH (chip-tool), verify the ActionList attribute that contains ActionListStructs. + [1658480004.064867][26153:26158] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 [1658480004.064928][26153:26158] CHIP:TOO: action list: 2 entries [1658480004.064992][26153:26158] CHIP:TOO: [1]: { @@ -346,7 +363,8 @@ tests: [1658480004.065252][26153:26158] CHIP:TOO: } Step 3b Log: - Verify ActionStructs in TH(chip-tool) Log: + Via the TH (chip-tool), verify the ActionList attribute that contains ActionListStructs. + [1658479958.699434][26130:26135] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 [1658479958.699494][26130:26135] CHIP:TOO: action list: 2 entries [1658479958.699549][26130:26135] CHIP:TOO: [1]: { @@ -368,19 +386,18 @@ tests: disabled: true - label: - "Using the manufacturer provided means, remove one of the exposed - actions" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList + "Step 3f: Using the manufacturer provided means, remove one of the + exposed actions" verification: | - press n in bridge-app + press n in bridge-app to remove one of the exposed actions. disabled: true - - label: "Read ActionList attribute again" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList + - label: "Step 3g: Read ActionList attribute again" verification: | ./chip-tool actions read action-list 1 1 - Verify ActionStructs in TH(chip-tool) Log: + Via the TH (chip-tool), verify the ActionList attribute that contains ActionListStructs. + [1658480039.164683][26172:26177] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 [1658480039.164758][26172:26177] CHIP:TOO: action list: 1 entries [1658480039.164815][26172:26177] CHIP:TOO: [1]: { @@ -393,25 +410,25 @@ tests: [1658480039.164997][26172:26177] CHIP:TOO: } disabled: true - - label: "compare result of step 3g to what was read in step 3d" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList + - label: "Step 3h: compare result of step 3g to what was read in step 3d" verification: | compare result of step 3g to what was read in step 3d Verify one Action (4098 in this example) got removed while the other Action(s) (4097 in this case) did not change disabled: true - - label: "Using the manufacturer provided means, add a new exposed action" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList + - label: + "Step 3i: Using the manufacturer provided means, add a new exposed + action" verification: | - press o in bridge-app + press o in bridge-app to add a new exposed action. disabled: true - - label: "Read ActionList attribute again" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList + - label: "Step 3j: Read ActionList attribute again" verification: | ./chip-tool actions read action-list 1 1 - Verify ActionStructs in TH(chip-tool) Log: + Via the TH (chip-tool), verify the ActionList attribute that contains ActionListStructs. + [1658480059.199268][26178:26183] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 [1658480059.199349][26178:26183] CHIP:TOO: action list: 2 entries [1658480059.199410][26178:26183] CHIP:TOO: [1]: { @@ -432,25 +449,27 @@ tests: [1658480059.199665][26178:26183] CHIP:TOO: } disabled: true - - label: "compare result of step 3j to what was read in step 3g" - PICS: ACT.S.A0000 && ACT.S.M.FillActionList + - label: "Step 3k: compare result of step 3j to what was read in step 3g" verification: | compare result of step 3j to what was read in step 3g Verify one new Action (4099 in this example) got added while the other Action(s) (4097 in this case) did not change disabled: true - - label: "Using the manufacturer provided means, create multiple actions" + - label: + "Step 4a: Using the manufacturer provided means, create multiple + actions" PICS: ACT.S.A0000 && ACT.S.M.FillActionList verification: | no Matter messages disabled: true - - label: "Read ActionList attribute" + - label: "Step 4b: Read ActionList attribute" PICS: ACT.S.A0000 verification: | ./chip-tool actions read action-list 1 1 - Verify ActionStructs in TH(chip-tool) Log: + Via the TH (chip-tool), verify the ActionList attribute that contains ActionListStructs. + [1658480080.135069][26185:26190] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220 [1658480080.135130][26185:26190] CHIP:TOO: action list: 2 entries [1658480080.135191][26185:26190] CHIP:TOO: [1]: { @@ -471,12 +490,15 @@ tests: [1658480080.135443][26185:26190] CHIP:TOO: } disabled: true - - label: "subscribe to StateChanged and ActionFailed events" + - label: "Step 4c: subscribe to StateChanged and ActionFailed events" verification: | To subscribe StateChanged event follow below steps + 1) ./chip-tool interactive start 2) actions subscribe-event action-failed 2 30 1 0 - Verify in TH Log: + + Via the TH (chip-tool), Verify ActionFailed event subscription. + [1659962630.453221][25381:25386] CHIP:EM: Removed CHIP MessageCounter:65903257 from RetransTable on exchange 50035i [1659962630.453246][25381:25386] CHIP:DMG: ReportDataMessage = [1659962630.453259][25381:25386] CHIP:DMG: { @@ -502,7 +524,7 @@ tests: 3) actions instant-action 0x1001 1 1 - Verify in TH Log + Via the TH (chip-tool), Verify the SUCCESS response for instant-action. [1659955888.114483][23216:23221] CHIP:DMG: StatusIB = [1659955888.114499][23216:23221] CHIP:DMG: { @@ -511,16 +533,16 @@ tests: disabled: true - label: - "For each of the ActionStructs provided by DUT (see list read in step - 4b), perform one of the actions supported (see SupportedCommands in - this ActionStruct) by sending the command with this particular - ActionID and a random value for InvokeID" + "Step 4d: For each of the ActionStructs provided by DUT (see list read + in step 4b), perform one of the actions supported (see + SupportedCommands in this ActionStruct) by sending the command with + this particular ActionID and a random value for InvokeID" verification: | Only InstantActions command is supported ./chip-tool actions instant-action 0x1001 1 1 - Verify in TH Log + Via the TH (chip-tool), Verify the SUCCESS response for instant-action. [1659955888.114483][23216:23221] CHIP:DMG: StatusIB = [1659955888.114499][23216:23221] CHIP:DMG: { @@ -528,7 +550,9 @@ tests: [1659955888.114529][23216:23221] CHIP:DMG: }, disabled: true - - label: "repeat 4d for the other SupportedCommands of each ActionStruct" + - label: + "Step 4e: repeat 4d for the other SupportedCommands of each + ActionStruct" verification: | Only InstantActions command is supported disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml b/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml index c5afbfacfc588c..42f492697ff450 100644 --- a/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml @@ -30,170 +30,115 @@ tests: disabled: true - label: - "Preparation: TH as server exposes an Actions server cluster on EP 1, - with one action (supporting all possible commands) and corresponding - ActionLists and EndpointLists attributes: ActionList: contains one - list element (ActionListStruct): ActionIO = 0x1001 Name = 'some - test' Type = other EndpointListID = 0xE001 SupportedCommands = - 0x0fff // suppports all commands State = Inactive EndpointLists: - contains one list element (EndpointListStruct): EndpointListID = - 0xE001 Name = 'test room' Type = room Endpoints = [3] SetupURL: '' - (empty string)" + "Step 0: Preparation: TH as server exposes an Actions server cluster + on EP 1, with one action (supporting all possible commands) and + corresponding ActionLists and EndpointLists attributes: ActionList: + contains one list element (ActionListStruct): ActionIO = 0x1001 Name + = 'some test' Type = other EndpointListID = + 0xE001 SupportedCommands = 0x0fff // suppports all commands State = + Inactive EndpointLists: contains one list element + (EndpointListStruct): EndpointListID = 0xE001 Name = 'test + room' Type = room Endpoints = [3] SetupURL: '' (empty string)" verification: | pre-condition : Please use the below chip-tool commmands as example on how this TC can be performed using chip-tool. The DUT vendor to use commands per the DUT implemetnation 1. First read action-list by following command - ./chip-tool actions read action-list 1 1 + ./chip-tool actions read action-list 1 1 --trace_decode 1 + + Via the TH (bridge-app), verify the ActionList attribute that contains ActionListStructs. + + [1686033574.850552][39104:39106] CHIP:DMG: ReportDataMessage = + [1686033574.850639][39104:39106] CHIP:DMG: { + [1686033574.850689][39104:39106] CHIP:DMG: AttributeReportIBs = + [1686033574.850802][39104:39106] CHIP:DMG: [ + [1686033574.850861][39104:39106] CHIP:DMG: AttributeReportIB = + [1686033574.850976][39104:39106] CHIP:DMG: { + [1686033574.851039][39104:39106] CHIP:DMG: AttributeDataIB = + [1686033574.851133][39104:39106] CHIP:DMG: { + [1686033574.851206][39104:39106] CHIP:DMG: DataVersion = 0x17ed8ce2, + [1686033574.851299][39104:39106] CHIP:DMG: AttributePathIB = + [1686033574.851375][39104:39106] CHIP:DMG: { + [1686033574.851450][39104:39106] CHIP:DMG: Endpoint = 0x1, + [1686033574.851557][39104:39106] CHIP:DMG: Cluster = 0x25, + [1686033574.851658][39104:39106] CHIP:DMG: Attribute = 0x0000_0000, + [1686033574.851736][39104:39106] CHIP:DMG: } + [1686033574.851838][39104:39106] CHIP:DMG: + [1686033574.851914][39104:39106] CHIP:DMG: Data = [ + [1686033574.852009][39104:39106] CHIP:DMG: + [1686033574.852090][39104:39106] CHIP:DMG: { + [1686033574.852194][39104:39106] CHIP:DMG: 0x0 = 4097, + [1686033574.852287][39104:39106] CHIP:DMG: 0x1 = "Room 1 On" (9 chars), + [1686033574.852393][39104:39106] CHIP:DMG: 0x2 = 3, + [1686033574.852482][39104:39106] CHIP:DMG: 0x3 = 57345, + [1686033574.852588][39104:39106] CHIP:DMG: 0x4 = 1, + [1686033574.852692][39104:39106] CHIP:DMG: 0x5 = 0, + [1686033574.852780][39104:39106] CHIP:DMG: }, + [1686033574.852880][39104:39106] CHIP:DMG: { + [1686033574.852963][39104:39106] CHIP:DMG: 0x0 = 4098, + [1686033574.853070][39104:39106] CHIP:DMG: 0x1 = "Turn On Room 2" (14 chars), + [1686033574.853158][39104:39106] CHIP:DMG: 0x2 = 3, + [1686033574.853311][39104:39106] CHIP:DMG: 0x3 = 57346, + [1686033574.853428][39104:39106] CHIP:DMG: 0x4 = 1, + [1686033574.853516][39104:39106] CHIP:DMG: 0x5 = 0, + [1686033574.853621][39104:39106] CHIP:DMG: }, + [1686033574.853703][39104:39106] CHIP:DMG: ], + [1686033574.853792][39104:39106] CHIP:DMG: }, + [1686033574.853887][39104:39106] CHIP:DMG: + [1686033574.853969][39104:39106] CHIP:DMG: }, + [1686033574.854059][39104:39106] CHIP:DMG: + [1686033574.854137][39104:39106] CHIP:DMG: ], + [1686033574.854225][39104:39106] CHIP:DMG: + [1686033574.854283][39104:39106] CHIP:DMG: SuppressResponse = true, + [1686033574.854342][39104:39106] CHIP:DMG: InteractionModelRevision = 1 + [1686033574.854395][39104:39106] CHIP:DMG: } - [1666952908.036087][217545:217550] CHIP:DMG: ReportDataMessage = - [1666952908.036108][217545:217550] CHIP:DMG: { - [1666952908.036123][217545:217550] CHIP:DMG: AttributeReportIBs = - [1666952908.036146][217545:217550] CHIP:DMG: [ - [1666952908.036162][217545:217550] CHIP:DMG: AttributeReportIB = - [1666952908.036186][217545:217550] CHIP:DMG: { - [1666952908.036201][217545:217550] CHIP:DMG: AttributeDataIB = - [1666952908.036218][217545:217550] CHIP:DMG: { - [1666952908.036236][217545:217550] CHIP:DMG: DataVersion = 0x24eeedc4, - [1666952908.036253][217545:217550] CHIP:DMG: AttributePathIB = - [1666952908.036271][217545:217550] CHIP:DMG: { - [1666952908.036291][217545:217550] CHIP:DMG: Endpoint = 0x1, - [1666952908.036309][217545:217550] CHIP:DMG: Cluster = 0x25, - [1666952908.036330][217545:217550] CHIP:DMG: Attribute = 0x0000_0000, - [1666952908.036347][217545:217550] CHIP:DMG: } - [1666952908.036368][217545:217550] CHIP:DMG: - [1666952908.036387][217545:217550] CHIP:DMG: Data = [ - [1666952908.036404][217545:217550] CHIP:DMG: - [1666952908.036422][217545:217550] CHIP:DMG: ], - [1666952908.036438][217545:217550] CHIP:DMG: }, - [1666952908.036463][217545:217550] CHIP:DMG: - [1666952908.036482][217545:217550] CHIP:DMG: }, - [1666952908.036511][217545:217550] CHIP:DMG: - [1666952908.036531][217545:217550] CHIP:DMG: AttributeReportIB = - [1666952908.036558][217545:217550] CHIP:DMG: { - [1666952908.036576][217545:217550] CHIP:DMG: AttributeDataIB = - [1666952908.036593][217545:217550] CHIP:DMG: { - [1666952908.036610][217545:217550] CHIP:DMG: DataVersion = 0x24eeedc4, - [1666952908.036627][217545:217550] CHIP:DMG: AttributePathIB = - [1666952908.036646][217545:217550] CHIP:DMG: { - [1666952908.036667][217545:217550] CHIP:DMG: Endpoint = 0x1, - [1666952908.036688][217545:217550] CHIP:DMG: Cluster = 0x25, - [1666952908.036713][217545:217550] CHIP:DMG: Attribute = 0x0000_0000, - [1666952908.036731][217545:217550] CHIP:DMG: ListIndex = Null, - [1666952908.036749][217545:217550] CHIP:DMG: } - [1666952908.036770][217545:217550] CHIP:DMG: - [1666952908.036787][217545:217550] CHIP:DMG: Data = - [1666952908.036805][217545:217550] CHIP:DMG: { - [1666952908.036824][217545:217550] CHIP:DMG: 0x0 = 4097, - [1666952908.036846][217545:217550] CHIP:DMG: 0x1 = "Room 1 On" (9 chars), - [1666952908.036866][217545:217550] CHIP:DMG: 0x2 = 3, - [1666952908.036889][217545:217550] CHIP:DMG: 0x3 = 57345, - [1666952908.036908][217545:217550] CHIP:DMG: 0x4 = 1, - [1666952908.036924][217545:217550] CHIP:DMG: 0x5 = 0, - [1666952908.036938][217545:217550] CHIP:DMG: }, - [1666952908.036954][217545:217550] CHIP:DMG: }, - [1666952908.036981][217545:217550] CHIP:DMG: - [1666952908.036995][217545:217550] CHIP:DMG: }, - [1666952908.037037][217545:217550] CHIP:DMG: - [1666952908.037052][217545:217550] CHIP:DMG: AttributeReportIB = - [1666952908.037082][217545:217550] CHIP:DMG: { - [1666952908.037095][217545:217550] CHIP:DMG: AttributeDataIB = - [1666952908.037106][217545:217550] CHIP:DMG: { - [1666952908.037118][217545:217550] CHIP:DMG: DataVersion = 0x24eeedc4, - [1666952908.037129][217545:217550] CHIP:DMG: AttributePathIB = - [1666952908.037142][217545:217550] CHIP:DMG: { - [1666952908.037155][217545:217550] CHIP:DMG: Endpoint = 0x1, - [1666952908.037168][217545:217550] CHIP:DMG: Cluster = 0x25, - [1666952908.037181][217545:217550] CHIP:DMG: Attribute = 0x0000_0000, - [1666952908.037193][217545:217550] CHIP:DMG: ListIndex = Null, - [1666952908.037206][217545:217550] CHIP:DMG: } - [1666952908.037220][217545:217550] CHIP:DMG: - [1666952908.037231][217545:217550] CHIP:DMG: Data = - [1666952908.037243][217545:217550] CHIP:DMG: { - [1666952908.037263][217545:217550] CHIP:DMG: 0x0 = 4098, - [1666952908.037289][217545:217550] CHIP:DMG: 0x1 = "Turn On Room 2" (14 chars), - [1666952908.037314][217545:217550] CHIP:DMG: 0x2 = 3, - [1666952908.037334][217545:217550] CHIP:DMG: 0x3 = 57346, - [1666952908.037355][217545:217550] CHIP:DMG: 0x4 = 1, - [1666952908.037380][217545:217550] CHIP:DMG: 0x5 = 0, - [1666952908.037393][217545:217550] CHIP:DMG: }, - [1666952908.037404][217545:217550] CHIP:DMG: }, - [1666952908.037426][217545:217550] CHIP:DMG: - [1666952908.037437][217545:217550] CHIP:DMG: }, - [1666952908.037456][217545:217550] CHIP:DMG: - [1666952908.037465][217545:217550] CHIP:DMG: ], - [1666952908.037519][217545:217550] CHIP:DMG: - [1666952908.037550][217545:217550] CHIP:DMG: SuppressResponse = true, - [1666952908.037569][217545:217550] CHIP:DMG: InteractionModelRevision = 1 - [1666952908.037588][217545:217550] CHIP:DMG: } - [1666952908.037903][217545:217550] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 619638212 - [1666952908.037961][217545:217550] CHIP:TOO: ActionList: 2 entries - [1666952908.037989][217545:217550] CHIP:TOO: [1]: { - [1666952908.038003][217545:217550] CHIP:TOO: ActionID: 4097 - [1666952908.038015][217545:217550] CHIP:TOO: Name: Room 1 On - [1666952908.038027][217545:217550] CHIP:TOO: Type: 3 - [1666952908.038039][217545:217550] CHIP:TOO: EndpointListID: 57345 - [1666952908.038052][217545:217550] CHIP:TOO: SupportedCommands: 1 - [1666952908.038063][217545:217550] CHIP:TOO: State: 0 - [1666952908.038074][217545:217550] CHIP:TOO: } - [1666952908.038093][217545:217550] CHIP:TOO: [2]: { - [1666952908.038104][217545:217550] CHIP:TOO: ActionID: 4098 - [1666952908.038114][217545:217550] CHIP:TOO: Name: Turn On Room 2 - [1666952908.038125][217545:217550] CHIP:TOO: Type: 3 - [1666952908.038136][217545:217550] CHIP:TOO: EndpointListID: 57346 - [1666952908.038147][217545:217550] CHIP:TOO: SupportedCommands: 1 - [1666952908.038158][217545:217550] CHIP:TOO: State: 0 - [1666952908.038168][217545:217550] CHIP:TOO: } 2. Use the above obtained ActionID to verify the following commands - ./chip-tool actions instant-action 4097 1 1 + ./chip-tool actions instant-action 4097 1 1 --trace_decode 1 disabled: true - - label: "DUT issues an InstantAction command to TH" + - label: "Step 1: DUT issues an InstantAction command to TH" PICS: ACT.C.C00.Tx verification: | - ./chip-tool actions instant-action 4097 1 1 - - Verify the command is successfully sent on TH(bridge-app) - - [1666953083.522228][217528:217528] CHIP:DMG: suppressResponse = false, - [1666953083.522251][217528:217528] CHIP:DMG: InvokeResponseIBs = - [1666953083.522287][217528:217528] CHIP:DMG: [ - [1666953083.522307][217528:217528] CHIP:DMG: InvokeResponseIB = - [1666953083.522343][217528:217528] CHIP:DMG: { - [1666953083.522364][217528:217528] CHIP:DMG: CommandStatusIB = - [1666953083.522393][217528:217528] CHIP:DMG: { - [1666953083.522416][217528:217528] CHIP:DMG: CommandPathIB = - [1666953083.522445][217528:217528] CHIP:DMG: { - [1666953083.522473][217528:217528] CHIP:DMG: EndpointId = 0x1, - [1666953083.522504][217528:217528] CHIP:DMG: ClusterId = 0x25, - [1666953083.522528][217528:217528] CHIP:DMG: CommandId = 0x0, - [1666953083.522549][217528:217528] CHIP:DMG: }, - [1666953083.522578][217528:217528] CHIP:DMG: - [1666953083.522599][217528:217528] CHIP:DMG: StatusIB = - [1666953083.522622][217528:217528] CHIP:DMG: { - [1666953083.522645][217528:217528] CHIP:DMG: status = 0x00 (SUCCESS), - [1666953083.522667][217528:217528] CHIP:DMG: }, - [1666953083.522690][217528:217528] CHIP:DMG: - [1666953083.522710][217528:217528] CHIP:DMG: }, - [1666953083.522738][217528:217528] CHIP:DMG: - [1666953083.522756][217528:217528] CHIP:DMG: }, - [1666953083.522785][217528:217528] CHIP:DMG: - [1666953083.522803][217528:217528] CHIP:DMG: ], - [1666953083.522832][217528:217528] CHIP:DMG: - [1666953083.522851][217528:217528] CHIP:DMG: InteractionModelRevision = 1 - [1666953083.522869][217528:217528] CHIP:DMG: }, - [1666953083.522888][217528:217528] CHIP:DMG: - [1666953083.523029][217528:217528] CHIP:DMG: Command handler moving to [CommandSen] - [1666953083.523057][217528:217528] CHIP:DMG: Command handler moving to [AwaitingDe] - [1666953083.523120][217528:217528] CHIP:DMG: Endpoint a, Cluster 0x0000_0006 update version to 37442e42 - [1666953083.523159][217528:217528] CHIP:DMG: Endpoint b, Cluster 0x0000_0006 update version to a57a1137 - [1666953083.523956][217528:217528] CHIP:DMG: << from UDP:[fe80::485c:bace:6107:3682%wlp3s0]:49809 | 100197571 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 0 / Exchange = 45347] + ./chip-tool actions instant-action 4097 1 1 --trace_decode 1 + + Via the TH (bridge-app), verify the SUCCESS response for InstantAction. + + [1686033693.327962][39117:39119] CHIP:DMG: InvokeResponseMessage = + [1686033693.328040][39117:39119] CHIP:DMG: { + [1686033693.328094][39117:39119] CHIP:DMG: suppressResponse = false, + [1686033693.328151][39117:39119] CHIP:DMG: InvokeResponseIBs = + [1686033693.328248][39117:39119] CHIP:DMG: [ + [1686033693.328307][39117:39119] CHIP:DMG: InvokeResponseIB = + [1686033693.328407][39117:39119] CHIP:DMG: { + [1686033693.328469][39117:39119] CHIP:DMG: CommandStatusIB = + [1686033693.328561][39117:39119] CHIP:DMG: { + [1686033693.328632][39117:39119] CHIP:DMG: CommandPathIB = + [1686033693.328708][39117:39119] CHIP:DMG: { + [1686033693.328807][39117:39119] CHIP:DMG: EndpointId = 0x1, + [1686033693.328887][39117:39119] CHIP:DMG: ClusterId = 0x25, + [1686033693.328987][39117:39119] CHIP:DMG: CommandId = 0x0, + [1686033693.329062][39117:39119] CHIP:DMG: }, + [1686033693.329167][39117:39119] CHIP:DMG: + [1686033693.329237][39117:39119] CHIP:DMG: StatusIB = + [1686033693.329376][39117:39119] CHIP:DMG: { + [1686033693.329454][39117:39119] CHIP:DMG: status = 0x00 (SUCCESS), + [1686033693.329551][39117:39119] CHIP:DMG: }, + [1686033693.329629][39117:39119] CHIP:DMG: + [1686033693.329716][39117:39119] CHIP:DMG: }, + [1686033693.329794][39117:39119] CHIP:DMG: + [1686033693.329876][39117:39119] CHIP:DMG: }, + [1686033693.329950][39117:39119] CHIP:DMG: + [1686033693.330005][39117:39119] CHIP:DMG: ], + [1686033693.330101][39117:39119] CHIP:DMG: + [1686033693.330158][39117:39119] CHIP:DMG: InteractionModelRevision = 1 + [1686033693.330241][39117:39119] CHIP:DMG: }, disabled: true - - label: "DUT issues an StartAction command to TH" + - label: "Step 2: DUT issues an StartAction command to TH" PICS: ACT.C.C02.Tx verification: | ./chip-tool actions start-action 0 1 1 @@ -201,62 +146,62 @@ tests: Note: Message log similar as in step 1 disabled: true - - label: "DUT issues an StopAction command to TH" + - label: "Step 3: DUT issues an StopAction command to TH" PICS: ACT.C.C04.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true - - label: "DUT issues an PauseAction command to TH" + - label: "Step 4: DUT issues an PauseAction command to TH" PICS: ACT.C.C05.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true - - label: "DUT issues an ResumeAction command to TH" + - label: "Step 5: DUT issues an ResumeAction command to TH" PICS: ACT.C.C07.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true - - label: "DUT issues an EnableAction command to TH" + - label: "Step 6: DUT issues an EnableAction command to TH" PICS: ACT.C.C08.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true - - label: "DUT issues an DisableAction command to TH" + - label: "Step 7: DUT issues an DisableAction command to TH" PICS: ACT.C.C0a.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true - - label: "DUT issues an StartActionWithDuration command to TH" + - label: "Step 8: DUT issues an StartActionWithDuration command to TH" PICS: ACT.C.C03.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true - - label: "DUT issues an PauseActionWithDuration command to TH" + - label: "Step 9: DUT issues an PauseActionWithDuration command to TH" PICS: ACT.C.C06.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true - - label: "DUT issues an EnableActionWithDuration command to TH" + - label: "Step 10: DUT issues an EnableActionWithDuration command to TH" PICS: ACT.C.C09.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true - - label: "DUT issues an DisableActionWithDuration command to TH" + - label: "Step 11: DUT issues an DisableActionWithDuration command to TH" PICS: ACT.C.C0b.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true - - label: "DUT issues an InstantActionWithTransition command to TH" + - label: "Step 12: DUT issues an InstantActionWithTransition command to TH" PICS: ACT.C.C01.Tx verification: | - Out of scope for V1.0, The reference app doesn't have implementation for this command + The reference app doesn't have implementation for this command disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ALOGIN_12_2.yaml b/src/app/tests/suites/certification/Test_TC_ALOGIN_12_2.yaml index df2723dc9dbad9..57f3888c65dffe 100644 --- a/src/app/tests/suites/certification/Test_TC_ALOGIN_12_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_ALOGIN_12_2.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends GetSetupPIN command to TH" + - label: "Step 1: DUT sends GetSetupPIN command to TH" PICS: ALOGIN.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -37,8 +37,7 @@ tests: ./chip-tool accountlogin get-setup-pin 1111 1 4 --timedInteractionTimeoutMs 1000 ./chip-tv-casting-app accountlogin get-setup-pin 1111 1 4 --timedInteractionTimeoutMs 1000 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the get setup pin command is received successfully. [1658531772994] [21924:325733] CHIP: [DMG] InvokeRequestMessage = [1658531772994] [21924:325733] CHIP: [DMG] { @@ -67,7 +66,7 @@ tests: [1658531772994] [21924:325733] CHIP: [DMG] }, disabled: true - - label: "DUT sends Login command to TH" + - label: "Step 2: DUT sends Login command to TH" PICS: ALOGIN.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -75,8 +74,7 @@ tests: ./chip-tool accountlogin login 11111 34567890 1 4 --timedInteractionTimeoutMs 1000 ./chip-tv-casting-app accountlogin login 11111 34567890 1 4 --timedInteractionTimeoutMs 1000 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the login command is received successfully. [1658531831563] [21924:325733] CHIP: [DMG] InvokeRequestMessage = [1658531831563] [21924:325733] CHIP: [DMG] { @@ -106,7 +104,7 @@ tests: [1658531831563] [21924:325733] CHIP: [DMG] }, disabled: true - - label: "DUT sends Logout command to TH" + - label: "Step 3: DUT sends Logout command to TH" PICS: ALOGIN.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -115,7 +113,7 @@ tests: ./chip-tv-casting-app accountlogin logout 1 4 --timedInteractionTimeoutMs 1000 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the logout command is received successfully. [1658531872518] [21924:331051] CHIP: [DMG] InvokeRequestMessage = [1658531872518] [21924:331051] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_7_1.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_7_1.yaml index d8565656c56251..25836f5b6876eb 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_7_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_7_1.yaml @@ -31,7 +31,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends LaunchApp command to TH" + - label: "Step 1: DUT sends LaunchApp command to TH" PICS: APPLAUNCHER.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -40,7 +40,8 @@ tests: ./chip-tv-casting-app applicationlauncher launch-app '{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + + On TH (tv-app), Verify the launch app command is received successfully. [1674562560.376993][12550:12550] CHIP:EM: Handling via exchange: 22201r, Delegate: 0x5572d99d2b08 [1674562560.377026][12550:12550] CHIP:DMG: InvokeRequestMessage = diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml index b08cec90dc1e2f..1b00e21af2b523 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml @@ -30,7 +30,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends StopApp command to TH" + - label: "Step 1: DUT sends StopApp command to TH" PICS: APPLAUNCHER.C.C01.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -39,36 +39,35 @@ tests: ./chip-tv-casting-app applicationlauncher stop-app'{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): - 74562683.652082][12550:12550] CHIP:DMG: InvokeRequestMessage = - [1674562683.652085][12550:12550] CHIP:DMG: { - [1674562683.652088][12550:12550] CHIP:DMG: suppressResponse = false, - [1674562683.652092][12550:12550] CHIP:DMG: timedRequest = false, - [1674562683.652095][12550:12550] CHIP:DMG: InvokeRequests = - [1674562683.652101][12550:12550] CHIP:DMG: [ - [1674562683.652104][12550:12550] CHIP:DMG: CommandDataIB = - [1674562683.652108][12550:12550] CHIP:DMG: { - [1674562683.652111][12550:12550] CHIP:DMG: CommandPathIB = - [1674562683.652114][12550:12550] CHIP:DMG: { - [1674562683.652117][12550:12550] CHIP:DMG: EndpointId = 0x1, - [1674562683.652121][12550:12550] CHIP:DMG: ClusterId = 0x50c, - [1674562683.652125][12550:12550] CHIP:DMG: CommandId = 0x1, - [1674562683.652128][12550:12550] CHIP:DMG: }, - [1674562683.652131][12550:12550] CHIP:DMG: - [1674562683.652134][12550:12550] CHIP:DMG: CommandFields = - [1674562683.652137][12550:12550] CHIP:DMG: { - [1674562683.652140][12550:12550] CHIP:DMG: 0x0 = - [1674562683.652143][12550:12550] CHIP:DMG: { - [1674562683.652147][12550:12550] CHIP:DMG: 0x0 = 123, - [1674562683.652152][12550:12550] CHIP:DMG: 0x1 = "exampleid" (9 chars), - [1674562683.652156][12550:12550] CHIP:DMG: }, - [1674562683.652159][12550:12550] CHIP:DMG: }, - [1674562683.652162][12550:12550] CHIP:DMG: }, - [1674562683.652167][12550:12550] CHIP:DMG: - [1674562683.652169][12550:12550] CHIP:DMG: ], - [1674562683.652173][12550:12550] CHIP:DMG: - [1674562683.652175][12550:12550] CHIP:DMG: InteractionModelRevision = 1 - [1674562683.652177][12550:12550] CHIP:DMG: }, - [1674562683.652193][12550:12550] CHIP:DMG: AccessControl: checking f=2 a=c s=0x000000000001B669 t= c=0x0000_050C e=1 p=o + On TH (tv-app), Verify the stop app command is received successfully. + 74562683.652082][12550:12550] CHIP:DMG: InvokeRequestMessage = + [1674562683.652085][12550:12550] CHIP:DMG: { + [1674562683.652088][12550:12550] CHIP:DMG: suppressResponse = false, + [1674562683.652092][12550:12550] CHIP:DMG: timedRequest = false, + [1674562683.652095][12550:12550] CHIP:DMG: InvokeRequests = + [1674562683.652101][12550:12550] CHIP:DMG: [ + [1674562683.652104][12550:12550] CHIP:DMG: CommandDataIB = + [1674562683.652108][12550:12550] CHIP:DMG: { + [1674562683.652111][12550:12550] CHIP:DMG: CommandPathIB = + [1674562683.652114][12550:12550] CHIP:DMG: { + [1674562683.652117][12550:12550] CHIP:DMG: EndpointId = 0x1, + [1674562683.652121][12550:12550] CHIP:DMG: ClusterId = 0x50c, + [1674562683.652125][12550:12550] CHIP:DMG: CommandId = 0x1, + [1674562683.652128][12550:12550] CHIP:DMG: }, + [1674562683.652131][12550:12550] CHIP:DMG: + [1674562683.652134][12550:12550] CHIP:DMG: CommandFields = + [1674562683.652137][12550:12550] CHIP:DMG: { + [1674562683.652140][12550:12550] CHIP:DMG: 0x0 = + [1674562683.652143][12550:12550] CHIP:DMG: { + [1674562683.652147][12550:12550] CHIP:DMG: 0x0 = 123, + [1674562683.652152][12550:12550] CHIP:DMG: 0x1 = "exampleid" (9 chars), + [1674562683.652156][12550:12550] CHIP:DMG: }, + [1674562683.652159][12550:12550] CHIP:DMG: }, + [1674562683.652162][12550:12550] CHIP:DMG: }, + [1674562683.652167][12550:12550] CHIP:DMG: + [1674562683.652169][12550:12550] CHIP:DMG: ], + [1674562683.652173][12550:12550] CHIP:DMG: + [1674562683.652175][12550:12550] CHIP:DMG: InteractionModelRevision = 1 + [1674562683.652177][12550:12550] CHIP:DMG: }, + [1674562683.652193][12550:12550] CHIP:DMG: AccessControl: checking f=2 a=c s=0x000000000001B669 t= c=0x0000_050C e=1 p=o disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml index 4c4c9cec4f940b..039c9dbdfe6966 100644 --- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml @@ -30,7 +30,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends HideApp command to TH" + - label: "Step 1: DUT sends HideApp command to TH" PICS: APPLAUNCHER.C.C02.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -39,8 +39,7 @@ tests: ./chip-tv-casting-app applicationlauncher hide-app '{"catalogVendorID": 123, "applicationID": "exampleid"}' 1 1 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the hide app command is received successfully. [1674562762.318820][12550:12550] CHIP:DMG: InvokeRequestMessage = [1674562762.318828][12550:12550] CHIP:DMG: { diff --git a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_3.yaml b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_3.yaml index 0ce9582c3ed75c..823cf99cb98896 100644 --- a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_3.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends SelectOutput command to TH" + - label: "Step 1: DUT sends SelectOutput command to TH" PICS: AUDIOOUTPUT.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): diff --git a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_4.yaml b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_4.yaml index 4d0253bdf757f0..845b6edcd02e5a 100644 --- a/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_AUDIOOUTPUT_7_4.yaml @@ -30,7 +30,7 @@ tests: The test app should have one or more content apps available disabled: true - - label: "DUT sends RenameOutput command to TH" + - label: "Step 1: DUT sends RenameOutput command to TH" PICS: AUDIOOUTPUT.C.C01.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -38,8 +38,7 @@ tests: ./chip-tool audiooutput rename-output 1 'Kitchen Speakers' 1 1 ./chip-tv-casting-app audiooutput rename-output 1 'Kitchen Speakers' 1 1 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the rename output command is received successfully. [1658531363038] [21924:323905] CHIP: [DMG] InvokeRequestMessage = [1658531363038] [21924:323905] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_BDX_1_2.yaml b/src/app/tests/suites/certification/Test_TC_BDX_1_2.yaml index a32ae8b2257840..e50e1387d7ad6d 100644 --- a/src/app/tests/suites/certification/Test_TC_BDX_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BDX_1_2.yaml @@ -30,17 +30,24 @@ tests: This test can be verified using TC-SU-2.3 from the OTA Software Update section. Pls refer to OTA section for steps. disabled: true - - label: "DUT sends a ReceiveInit message to TH" + - label: "Step 1: DUT sends a ReceiveInit message to TH." verification: | - 1. Verify that the OTA Reference Provider App logs show ReceiveInit message from DUT + On OTA Reference Provider App logs, Verify that the ReceiveInit message has the following mandatory fields. + - Proposed Transfer Control - At least one of the PTC[RECEIVER_DRIVE] or PTC[SENDER_DRIVE] field bits shall be set. + - Range Control. + - Proposed Max Block Size. + - Start Offset - Optional. + - Proposed Max Length - Optional. + - File Designator Length. + - File Designator. + - Metadata - Optional. - [1636410921473] [59203:62969336] CHIP: [ATM] Handling received BDX Message - [1636410921473] [59203:62969336] CHIP: [ATM] ReceiveInit - [1636410921473] [59203:62969336] CHIP: [ATM] Proposed Transfer Control: 0x20 - [1636410921473] [59203:62969336] CHIP: [ATM] Range Control: 0x0 - [1636410921473] [59203:62969336] CHIP: [ATM] Proposed Max Block Size: 1024 - [1636410921473] [59203:62969336] CHIP: [ATM] Start Offset: 0x0000000000000000 - [1636410921473] [59203:62969336] CHIP: [ATM] Proposed Max Length: 0x0000000000000000 - [1636410921473] [59203:62969336] CHIP: [ATM] File Designator Length: 8 - [1636410921473] [59203:62969336] CHIP: [ATM] File Designator: test.txt + [1687335217.824270][14728:14728] CHIP:ATM: ReceiveInit + [1687335217.824272][14728:14728] CHIP:ATM: Proposed Transfer Control: 0x20 + [1687335217.824275][14728:14728] CHIP:ATM: Range Control: 0x0 + [1687335217.824279][14728:14728] CHIP:ATM: Proposed Max Block Size: 1024 + [1687335217.824282][14728:14728] CHIP:ATM: Start Offset: 0x0000000000000000 + [1687335217.824285][14728:14728] CHIP:ATM: Proposed Max Length: 0x0000000000000000 + [1687335217.824288][14728:14728] CHIP:ATM: File Designator Length: 21 + [1687335217.824292][14728:14728] CHIP:ATM: File Designator: ota-requestor-app.ota disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BDX_1_4.yaml b/src/app/tests/suites/certification/Test_TC_BDX_1_4.yaml index e05c31c42bc04f..aa640cf5dc9f6b 100644 --- a/src/app/tests/suites/certification/Test_TC_BDX_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_BDX_1_4.yaml @@ -31,10 +31,14 @@ tests: disabled: true - label: - "TH sends a ReceiveInit message to DUT + DUT sends a ReceiveAccept - message back to TH" + "Step 1: TH sends a ReceiveInit message to DUT + DUT sends a + ReceiveAccept message back to TH." verification: | - 1. Verify that the OTA Reference Requester App logs show ReceiveAccept message from DUT and compare field values against ReceiveInit + On OTA Reference Requester App logs, Verify that the ReceiveAccept message has the following mandatory fields. + - Transfer Control + - Range Control + - Max Block Size + - Length [1636410922200] [59208:62970584] CHIP: [ATM] Handling received BDX Message [1636410922200] [59208:62970584] CHIP: [ATM] ReceiveAccept diff --git a/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml index 170bc9406a8d7b..942bc5ccd60ff7 100644 --- a/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml @@ -19,7 +19,7 @@ PICS: - MCORE.BDX.SynchronousSender config: - nodeId: 0x12344321 + nodeId: "0x12344321" cluster: "Basic Information" endpoint: 0 @@ -31,10 +31,12 @@ tests: disabled: true - label: - "DUT sends the first Block message to TH + TH sends a BlockAck message - back to DUT." + "Step 1: DUT sends the first Block message to TH + TH sends a BlockAck + message back to DUT." verification: | - 1. Verify that the OTA Reference Requester App logs show Block message from DUT + On OTA Reference Requester App logs, Verify that the Block message has the following mandatory fields + - Block Counter - Must start at 0 at the start of the transfer. + - Data - The length must be in the range [0 < Length ⇐ Max Block Size], where Max Block Size is the negotiated Max Block Size matching the SendAccept message that initiated the transfer. [1636410923701] [59208:62970584] CHIP: [ATM] Handling received BDX Message [1636410923701] [59208:62970584] CHIP: [ATM] Block @@ -52,10 +54,10 @@ tests: disabled: true - label: - "DUT sends further Block messages to TH + TH sends BlockAck messages - back to DUT." + "Step 2: DUT sends further Block messages to TH + TH sends BlockAck + messages back to DUT." verification: | - 1. Verify from the OTA Reference Requester App logs that the Blocks are sent in ascending and sequential block counter order. + On OTA Reference Requester App logs, Verify that the Blocks are sent in ascending and sequential block counter order. [1636410925203] [59208:62970585] CHIP: [ATM] Block [1636410925203] [59208:62970585] CHIP: [ATM] Block Counter: 1 @@ -67,10 +69,14 @@ tests: disabled: true - label: - "DUT sends a BlockEOF message to TH + TH sends a BlockAckEOF message - back to DUT" + "Step 3: DUT sends a BlockEOF message to TH + TH sends a BlockAckEOF + message back to DUT." verification: | - 1. Verify that the OTA Reference Requester App logs show BlockEOF message from DUT + On OTA Reference Requester App logs, Verify that the BlockEOF message has the following mandatory fields. + - Block Counter. + - Data - The length must be in the range [0 ⇐ Length ⇐ Max Block Size], where Max Block Size is the negotiated Max Block Size matching the SendAccept message that initiated the transfer. + - Verify that the pre-negotiated file size was transferred, if a definite size had been given. + [1636410935710] [59208:62970585] CHIP: [ATM] Handling received BDX Message [1636410935710] [59208:62970585] CHIP: [ATM] BlockEOF diff --git a/src/app/tests/suites/certification/Test_TC_BDX_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BDX_2_2.yaml index c55f47cdbad622..c3489daf2af6a6 100644 --- a/src/app/tests/suites/certification/Test_TC_BDX_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BDX_2_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 32.2.2. [TC-BDX-2.2] Synchronous File Receiving +name: 32.2.2. [TC-BDX-2.2] Synchronous file receiving PICS: - MCORE.BDX.SynchronousReceiver @@ -31,18 +31,19 @@ tests: disabled: true - label: - "TH sends the first Block message to DUT + DUT sends a BlockAck - message back to TH." + "Step 1: TH sends the first Block message to DUT + DUT sends a + BlockAck message back to TH." verification: | - Out of scope for V1.0 + Out of scope disabled: true - label: - "DUT sends the first BlockQuery message to TH + TH sends a Block - message back to DUT." + "Step 2: DUT sends the first BlockQuery message to TH + TH sends a + Block message back to DUT." PICS: MCORE.BDX.Driver verification: | - 1. Verify that the OTA Reference Provider App logs show BlockQuery message from DUT + On OTA Reference Provider App logs, Verify that the BlockQuery message has the following mandatory fields. + - Block Counter - Must start at 0 at the start of the transfer. [1636410922974] [59203:62969336] CHIP: [ATM] Handling received BDX Message [1636410922974] [59203:62969336] CHIP: [ATM] BlockQuery @@ -50,11 +51,11 @@ tests: disabled: true - label: - "DUT sends further BlockQuery messages to TH + TH sends further Block - messages back to DUT." + "Step 3: DUT sends further BlockQuery messages to TH + TH sends + further Block messages back to DUT." PICS: MCORE.BDX.Driver verification: | - 1. Verify from the OTA Reference Provider App logs that the BlockQuery messages are sent in ascending and sequential block counter order. + On OTA Reference Provider App logs, Verify that the BlockQuery messages are sent in ascending and sequential block counter order. [1636410924476] [59203:62969337] CHIP: [ATM] BlockQuery [1636410924476] [59203:62969337] CHIP: [ATM] Block Counter: 1 @@ -66,18 +67,19 @@ tests: disabled: true - label: - "DUT sends a BlockQueryWithSkip message to TH + TH sends a Block - message back to DUT" + "Step 4: DUT sends a BlockQueryWithSkip message to TH + TH sends a + Block message back to DUT." PICS: MCORE.BDX.BlockQueryWithSkip verification: | - Out of scope for V1.0 + Out of scope disabled: true - label: - "TH sends a BlockEOF message to DUT + DUT sends a BlockAckEOF message - back to TH" + "Step 5: TH sends a BlockEOF message to DUT + DUT sends a BlockAckEOF + message back to TH" verification: | - 1. Verify that the OTA Reference App logs show BlockAckEOF message from DUT + On OTA Reference App logs, Verify that the BlockAckEOF message has the following mandatory fields. + Block Counter - Must correspond to the Block Counter which was embedded in the BlockEOF being acknowledged [1636410936486] [59203:62969336] CHIP: [ATM] Handling received BDX Message [1636410936486] [59203:62969336] CHIP: [ATM] BlockAckEOF diff --git a/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml index dbdd27bb0293db..483d57169defa6 100644 --- a/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml @@ -27,19 +27,7 @@ tests: - label: "Note" verification: | Chip-tool command used below are an example to verify the DUT as controller test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Pre-Conditions" - verification: | - TH2 supports On/Off server on Endpoint 1. - - TH3 supports On/Off server on Endpoint 2. - DUT supports On/Off client. - disabled: true - - - label: "Note" - verification: | 1.This test case requires 4 raspi to execute. 1 raspi as Commissioner. and 1 raspi as dut[Controller] 2 raspi as controllee 2. In this example, RASP is used as DUT & it requires additional shell access to execute the controller commands. To support the shell, use the following command to build the all-clusters-app . On the DUT device Use - [scripts/examples/gn_build_example.sh examples/all-clusters-app/linux/ out/all-clusters-app chip_inet_config_enable_ipv4=false chip_build_libshell=true ] - (Vendor DUT must have this provision to execute the controller commands. ) @@ -51,64 +39,119 @@ tests: 5.Hit the Enter button on raspi , you will see a shell prompt (>) , enter help, this would list the command for switch . At the prompt enter switch on ,the "on" command is sent to both TH2 and TH3. and the command and corresponding response can be verified in the log. to test if the TH2/TH3 are turned on or not, you can read the on-off attribute status. Read the status before sending the switch on command and read after sending the command. you should see the value changing. disabled: true - - label: "Factory Reset DUT" + - label: "Pre-Conditions" + verification: | + TH2 supports On/Off server on Endpoint 1. + + TH3 supports On/Off server on Endpoint 2. + + DUT supports On/Off client. + disabled: true + + - label: "Step 1: Factory Reset DUT" verification: | Vendor specific action, for chip-tool run rm -rf /tmp/chip* disabled: true - - label: "Commission DUT to TH1s fabric" + - label: "Step 2: Commission DUT to TH1s fabric" verification: | ./chip-tool pairing onnetwork 1 20202021 disabled: true - - label: "Commission TH2 to TH1s fabric (Node ID = 2)" + - label: "Step 3: Commission TH2 to TH1s fabric (Node ID = 2)" verification: | ./chip-tool pairing ble-wifi 2 chipsetup4 matter123 20202021 3840 disabled: true - - label: "Commission TH3 to TH1s fabric (Node ID = 3)" + - label: "Step 4: Commission TH3 to TH1s fabric (Node ID = 3)" verification: | ./chip-tool pairing ble-wifi 3 chipsetup4 matter123 20202021 3841 disabled: true - label: - "TH1 writes Binding entries into DUT on the endpoint with the On/Off - client with Entry 1: Node = 2 Cluster = 0x0006(onoff) Endpoint = 1 - Entry 2: Node = 3 Cluster = 0x0006(onoff) Endpoint = 2 Note: Node 2 - corresponds to TH2s Node ID Node 3 corresponds to TH3s Node ID" + "Step 5: TH1 writes Binding entries into DUT on the endpoint with the + On/Off client with Entry 1: Node = 2 Cluster = 0x0006(onoff) Endpoint + = 1 Entry 2: Node = 3 Cluster = 0x0006(onoff) Endpoint = 2 Note: Node + 2 corresponds to TH2s Node ID Node 3 corresponds to TH3s Node ID" verification: | ./chip-tool binding write binding '[{"node" : 2 , "cluster" : "0x0006" , "endpoint" : 1 }, { "node" : 3 , "cluster" : "0x0006" , "endpoint" : 2 }]' 1 1 - On TH1(Chip-tool), Verify the success response for binding entries - - - [1657797710.456056][3796:3801] CHIP:DMG: status = 0x00 (SUCCESS), - MG: status = 0x00 (SUCCESS), - [1657797710.457093][3796:3801] CHIP:DMG: }, - [1657797710.457171][3796:3801] CHIP:DMG: - [1657797710.457232][3796:3801] CHIP:DMG: }, - [1657797710.457318][3796:3801] CHIP:DMG: - [1 StatusIB = - [1657797710.458209][3796:3801] CHIP:DMG: { - [1657797710.458286][3796:3801] CHIP:DMG: status = 0x00 (SUCCESS), - [1657797710.458369][3796:3801] CHIP:DMG: }, - [1657797710.458444][3796:3801] CHIP:DMG: - pted msg 0xffff7e7cd9d8 with MessageCounter:161235290 to 0x0000000000000001 (1) at monotonic time: 000000000071D1BB msec - [1657797710.459711][3796:3801] CHIP:EM: Flushed pending ack for MessageCounter:23683634 on exchange 26818i + Verify the SUCCESS status response On TH1(Chip-tool) log and below is the sample log provided for the raspi platform + + [1686231481.225889][13509:13511] CHIP:DMG: WriteResponseMessage = + [1686231481.225946][13509:13511] CHIP:DMG: { + [1686231481.225995][13509:13511] CHIP:DMG: AttributeStatusIBs = + [1686231481.226068][13509:13511] CHIP:DMG: [ + [1686231481.226124][13509:13511] CHIP:DMG: AttributeStatusIB = + [1686231481.226187][13509:13511] CHIP:DMG: { + [1686231481.226247][13509:13511] CHIP:DMG: AttributePathIB = + [1686231481.226322][13509:13511] CHIP:DMG: { + [1686231481.226391][13509:13511] CHIP:DMG: Endpoint = 0x1, + [1686231481.226467][13509:13511] CHIP:DMG: Cluster = 0x1e, + [1686231481.226542][13509:13511] CHIP:DMG: Attribute = 0x0000_0000, + [1686231481.226613][13509:13511] CHIP:DMG: } + [1686231481.226692][13509:13511] CHIP:DMG: + [1686231481.226758][13509:13511] CHIP:DMG: StatusIB = + [1686231481.226828][13509:13511] CHIP:DMG: { + [1686231481.226900][13509:13511] CHIP:DMG: status = 0x00 (SUCCESS), + [1686231481.226970][13509:13511] CHIP:DMG: }, + [1686231481.227120][13509:13511] CHIP:DMG: + [1686231481.227186][13509:13511] CHIP:DMG: }, + [1686231481.227270][13509:13511] CHIP:DMG: + [1686231481.227326][13509:13511] CHIP:DMG: AttributeStatusIB = + [1686231481.227387][13509:13511] CHIP:DMG: { + [1686231481.227446][13509:13511] CHIP:DMG: AttributePathIB = + [1686231481.227514][13509:13511] CHIP:DMG: { + [1686231481.227584][13509:13511] CHIP:DMG: Endpoint = 0x1, + [1686231481.227658][13509:13511] CHIP:DMG: Cluster = 0x1e, + [1686231481.227733][13509:13511] CHIP:DMG: Attribute = 0x0000_0000, + [1686231481.227806][13509:13511] CHIP:DMG: ListIndex = Null, + [1686231481.227875][13509:13511] CHIP:DMG: } + [1686231481.228035][13509:13511] CHIP:DMG: + [1686231481.228103][13509:13511] CHIP:DMG: StatusIB = + [1686231481.228171][13509:13511] CHIP:DMG: { + [1686231481.228242][13509:13511] CHIP:DMG: status = 0x00 (SUCCESS), + [1686231481.228312][13509:13511] CHIP:DMG: }, + [1686231481.228381][13509:13511] CHIP:DMG: + [1686231481.228439][13509:13511] CHIP:DMG: }, + [1686231481.228524][13509:13511] CHIP:DMG: + [1686231481.228580][13509:13511] CHIP:DMG: AttributeStatusIB = + [1686231481.228641][13509:13511] CHIP:DMG: { + [1686231481.228701][13509:13511] CHIP:DMG: AttributePathIB = + [1686231481.228768][13509:13511] CHIP:DMG: { + [1686231481.228917][13509:13511] CHIP:DMG: Endpoint = 0x1, + [1686231481.229041][13509:13511] CHIP:DMG: Cluster = 0x1e, + [1686231481.229119][13509:13511] CHIP:DMG: Attribute = 0x0000_0000, + [1686231481.229192][13509:13511] CHIP:DMG: ListIndex = Null, + [1686231481.229262][13509:13511] CHIP:DMG: } + [1686231481.229340][13509:13511] CHIP:DMG: + [1686231481.229470][13509:13511] CHIP:DMG: StatusIB = + [1686231481.229545][13509:13511] CHIP:DMG: { + [1686231481.229616][13509:13511] CHIP:DMG: status = 0x00 (SUCCESS), + [1686231481.229686][13509:13511] CHIP:DMG: }, + [1686231481.229755][13509:13511] CHIP:DMG: + [1686231481.229814][13509:13511] CHIP:DMG: }, + [1686231481.229882][13509:13511] CHIP:DMG: + [1686231481.229936][13509:13511] CHIP:DMG: ], + [1686231481.230023][13509:13511] CHIP:DMG: + [1686231481.230125][13509:13511] CHIP:DMG: InteractionModelRevision = 1 + [1686231481.230180][13509:13511] CHIP:DMG: } disabled: true - - label: "TH1 enables DUT as Controller" + - label: "Step 6: TH1 enables DUT as Controller" verification: | disabled: true - - label: "DUT is triggered to send On command to its binding node entries" + - label: + "Step 7: DUT is triggered to send On command to its binding node + entries" PICS: OO.C.C01.Tx verification: | ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": [{"cluster": 6, "endpoint": 1, "deviceType": null}]}]' 2 0 - on TH1 (Chip-tool), Verify the on command receives success response + Verify the SUCCESS status response On TH1(Chip-tool) log and below is the sample log provided for the raspi platform [1652330385.328196][3240:3245] CHIP:DMG: StatusIB = [1652330385.328229][3240:3245] CHIP:DMG: { @@ -118,7 +161,7 @@ tests: ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": [{"cluster": 6, "endpoint": 2, "deviceType": null}]}]' 3 0 - on TH1(Chip-tool), Verify the on command receives success response + Verify the SUCCESS status response On TH1(Chip-tool) log and below is the sample log provided for the raspi platform [1650610345.847274][2626:2631] CHIP:DMG: StatusIB = [1650610345.847317][2626:2631] CHIP:DMG: { @@ -126,132 +169,101 @@ tests: [1650610345.847429][2626:2631] CHIP:DMG: }, NOTE: - Every DUT should have their own mechanism to trigger on/off mechanism ,this for raspi platform - - DUT sends on command in the shell - - > switch on - [1658837711.917557][4764:4764] CHIP:DMG: ICR moving to [AddingComm] - [1658837711.917653][4764:4764] CHIP:DMG: ICR moving to [AddedComma] - [1658837711.917869][4764:4764] CHIP:IN: Prepared secure message 0xaaaaf8a908f8 to 0x0000000000000046 (1) of type 0x8 and protocolId (0, 1) on exchange 5086i with MessageCounter:188042572. - [1658837711.917966][4764:4764] CHIP:IN: Sending encrypted msg 0xaaaaf8a908f8 with MessageCounter:188042572 to 0x0000000000000046 (1) at monotonic time: 0000000001828F3D msec - [1658837711.918320][4764:4764] CHIP:DMG: ICR moving to [CommandSen] - [1658837711.918428][4764:4764] CHIP:DMG: ICR moving to [AddingComm] - [1658837711.918496][4764:4764] CHIP:DMG: ICR moving to [AddedComma] - [1658837711.918633][4764:4764] CHIP:IN: Prepared secure message 0xaaaaf8a733a8 to 0x0000000000000258 (1) of type 0x8 and protocolId (0, 1) on exchange 5087i with MessageCounter:70524918. - [1658837711.918720][4764:4764] CHIP:IN: Sending encrypted msg 0xaaaaf8a733a8 with MessageCounter:70524918 to 0x0000000000000258 (1) at monotonic time: 0000000001828F3E msec - [1658837711.919011][4764:4764] CHIP:DMG: ICR moving to [CommandSen] - Done - > [1658837711.920333][4764:4764] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:225570715 on exchange 5086i - [1658837711.920409][4764:4764] CHIP:EM: Found matching exchange: 5086i, Delegate: 0xaaaaf8a90220 - [1658837711.920490][4764:4764] CHIP:EM: Rxd Ack; Removing MessageCounter:188042572 from Retrans Table on exchange 5086i - [1658837711.920598][4764:4764] CHIP:EM: Removed CHIP MessageCounter:188042572 from RetransTable on exchange 5086i - [1658837711.920673][4764:4764] CHIP:DMG: ICR moving to [ResponseRe] - [1658837711.920777][4764:4764] CHIP:DMG: InvokeResponseMessage = - [1658837711.920837][4764:4764] CHIP:DMG: { - [1658837711.920894][4764:4764] CHIP:DMG: suppressResponse = false, - [1658837711.920954][4764:4764] CHIP:DMG: InvokeResponseIBs = - [1658837711.921030][4764:4764] CHIP:DMG: [ - [1658837711.921089][4764:4764] CHIP:DMG: InvokeResponseIB = - [1658837711.921166][4764:4764] CHIP:DMG: { - [1658837711.921229][4764:4764] CHIP:DMG: CommandStatusIB = - [1658837711.921309][4764:4764] CHIP:DMG: { - [1658837711.921380][4764:4764] CHIP:DMG: CommandPathIB = - [1658837711.921462][4764:4764] CHIP:DMG: { - [1658837711.921543][4764:4764] CHIP:DMG: EndpointId = 0x1, - [1658837711.921630][4764:4764] CHIP:DMG: ClusterId = 0x6, - [1658837711.921714][4764:4764] CHIP:DMG: CommandId = 0x1, - [1658837711.921801][4764:4764] CHIP:DMG: }, - [1658837711.921889][4764:4764] CHIP:DMG: - [1658837711.921961][4764:4764] CHIP:DMG: StatusIB = - [1658837711.922050][4764:4764] CHIP:DMG: { - [1658837711.922139][4764:4764] CHIP:DMG: status = 0x00 (SUCCESS), - [1658837711.922222][4764:4764] CHIP:DMG: }, - [1658837711.922301][4764:4764] CHIP:DMG: - [1658837711.922374][4764:4764] CHIP:DMG: }, - [1658837711.922456][4764:4764] CHIP:DMG: - [1658837711.922522][4764:4764] CHIP:DMG: }, - [1658837711.922596][4764:4764] CHIP:DMG: - [1658837711.922654][4764:4764] CHIP:DMG: ], - [1658837711.922726][4764:4764] CHIP:DMG: - [1658837711.922786][4764:4764] CHIP:DMG: InteractionModelRevision = 1 - [1658837711.922844][4764:4764] CHIP:DMG: }, - [1658837711.922978][4764:4764] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1658837711.923042][4764:4764] CHIP:-: OnOff command succeeds - [1658837711.923125][4764:4764] CHIP:DMG: ICR moving to [AwaitingDe] - [1658837711.923188][4764:4764] CHIP:EM: Sending Standalone Ack for MessageCounter:225570715 on exchange 5086i - [1658837711.923300][4764:4764] CHIP:IN: Prepared secure message 0xffffc33c53d8 to 0x0000000000000046 (1) of type 0x10 and protocolId (0, 0) on exchange 5086i with MessageCounter:188042573. - [1658837711.923385][4764:4764] CHIP:IN: Sending encrypted msg 0xffffc33c53d8 with MessageCounter:188042573 to 0x0000000000000046 (1) at monotonic time: 0000000001828F42 msec - [1658837711.923572][4764:4764] CHIP:EM: Flushed pending ack for MessageCounter:225570715 on exchange 5086i - [1658837711.926330][4764:4764] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:32223638 on exchange 5087i - [1658837711.926404][4764:4764] CHIP:EM: Found matching exchange: 5087i, Delegate: 0xaaaaf8a8bb70 - [1658837711.926475][4764:4764] CHIP:EM: Rxd Ack; Removing MessageCounter:70524918 from Retrans Table on exchange 5087i - [1658837711.926534][4764:4764] CHIP:EM: Removed CHIP MessageCounter:70524918 from RetransTable on exchange 5087i - [1658837711.926599][4764:4764] CHIP:DMG: ICR moving to [ResponseRe] - [1658837711.926687][4764:4764] CHIP:DMG: InvokeResponseMessage = - [1658837711.926744][4764:4764] CHIP:DMG: { - [1658837711.926800][4764:4764] CHIP:DMG: suppressResponse = false, - [1658837711.926859][4764:4764] CHIP:DMG: InvokeResponseIBs = - [1658837711.926932][4764:4764] CHIP:DMG: [ - [1658837711.926991][4764:4764] CHIP:DMG: InvokeResponseIB = - [1658837711.927066][4764:4764] CHIP:DMG: { - [1658837711.927128][4764:4764] CHIP:DMG: CommandStatusIB = - [1658837711.927310][4764:4764] CHIP:DMG: { - [1658837711.927388][4764:4764] CHIP:DMG: CommandPathIB = - [1658837711.927469][4764:4764] CHIP:DMG: { - [1658837711.927551][4764:4764] CHIP:DMG: EndpointId = 0x1, - [1658837711.927638][4764:4764] CHIP:DMG: ClusterId = 0x6, - [1658837711.927722][4764:4764] CHIP:DMG: CommandId = 0x1, - [1658837711.927802][4764:4764] CHIP:DMG: }, - [1658837711.927897][4764:4764] CHIP:DMG: - [1658837711.927970][4764:4764] CHIP:DMG: StatusIB = - [1658837711.928057][4764:4764] CHIP:DMG: { - [1658837711.928145][4764:4764] CHIP:DMG: status = 0x00 (SUCCESS), - [1658837711.928222][4764:4764] CHIP:DMG: }, - [1658837711.928303][4764:4764] CHIP:DMG: - [1658837711.928373][4764:4764] CHIP:DMG: }, - [1658837711.928453][4764:4764] CHIP:DMG: - [1658837711.928515][4764:4764] CHIP:DMG: }, - [1658837711.928625][4764:4764] CHIP:DMG: - [1658837711.928686][4764:4764] CHIP:DMG: ], - [1658837711.928757][4764:4764] CHIP:DMG: - [1658837711.928816][4764:4764] CHIP:DMG: InteractionModelRevision = 1 - [1658837711.928873][4764:4764] CHIP:DMG: }, - [1658837711.928983][4764:4764] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1658837711.929015][4764:4764] CHIP:-: OnOff command succeeds - [1658837711.929055][4764:4764] CHIP:DMG: ICR moving to [AwaitingDe] - [1658837711.929134][4764:4764] CHIP:EM: Sending Standalone Ack for MessageCounter:32223638 on exchange 5087i - [1658837711.929198][4764:4764] CHIP:IN: Prepared secure message 0xffffc33c53d8 to 0x0000000000000258 (1) of type 0x10 and protocolId (0, 0) on exchange 5087i with MessageCounter:70524919. - [1658837711.929241][4764:4764] CHIP:IN: Sending encrypted msg 0xffffc33c53d8 with MessageCounter:70524919 to 0x0000000000000258 (1) at monotonic time: 0000000001828F48 msec - [1658837711.929336][4764:4764] CHIP:EM: Flushed pending ack for MessageCounter:32223638 on exchange 5087i + Every DUT should have their own mechanism to trigger on/off mechanism. + + DUT sends On command in the shell + >switch on + + On TH2(all-cluster-app) log, Verify that TH2 receives On command and below is the sample log provided for the raspi platform + + [1686569607.687455][68496:68496] CHIP:DMG: InvokeRequestMessage = + [1686569607.687516][68496:68496] CHIP:DMG: { + [1686569607.687570][68496:68496] CHIP:DMG: suppressResponse = false, + [1686569607.687632][68496:68496] CHIP:DMG: timedRequest = false, + [1686569607.687689][68496:68496] CHIP:DMG: InvokeRequests = + [1686569607.687759][68496:68496] CHIP:DMG: [ + [1686569607.687815][68496:68496] CHIP:DMG: CommandDataIB = + [1686569607.687891][68496:68496] CHIP:DMG: { + [1686569607.687954][68496:68496] CHIP:DMG: CommandPathIB = + [1686569607.688024][68496:68496] CHIP:DMG: { + [1686569607.688097][68496:68496] CHIP:DMG: EndpointId = 0x1, + [1686569607.688172][68496:68496] CHIP:DMG: ClusterId = 0x6, + [1686569607.688245][68496:68496] CHIP:DMG: CommandId = 0x1, + [1686569607.688316][68496:68496] CHIP:DMG: }, + [1686569607.688385][68496:68496] CHIP:DMG: + [1686569607.688450][68496:68496] CHIP:DMG: CommandFields = + [1686569607.688629][68496:68496] CHIP:DMG: { + [1686569607.688706][68496:68496] CHIP:DMG: }, + [1686569607.688772][68496:68496] CHIP:DMG: }, + [1686569607.688842][68496:68496] CHIP:DMG: + [1686569607.688897][68496:68496] CHIP:DMG: ], + [1686569607.688966][68496:68496] CHIP:DMG: + [1686569607.689085][68496:68496] CHIP:DMG: InteractionModelRevision = 1 + [1686569607.689141][68496:68496] CHIP:DMG: }, + + + On TH3(all-cluster-app) log, Verify that TH3 receives On command and below is the sample log provided for the raspi platform + + [1686569607.660350][46545:46545] CHIP:DMG: InvokeRequestMessage = + [1686569607.660410][46545:46545] CHIP:DMG: { + [1686569607.660462][46545:46545] CHIP:DMG: suppressResponse = false, + [1686569607.660522][46545:46545] CHIP:DMG: timedRequest = false, + [1686569607.660578][46545:46545] CHIP:DMG: InvokeRequests = + [1686569607.660648][46545:46545] CHIP:DMG: [ + [1686569607.660739][46545:46545] CHIP:DMG: CommandDataIB = + [1686569607.660802][46545:46545] CHIP:DMG: { + [1686569607.660884][46545:46545] CHIP:DMG: CommandPathIB = + [1686569607.660956][46545:46545] CHIP:DMG: { + [1686569607.661026][46545:46545] CHIP:DMG: EndpointId = 0x2, + [1686569607.661126][46545:46545] CHIP:DMG: ClusterId = 0x6, + [1686569607.661201][46545:46545] CHIP:DMG: CommandId = 0x1, + [1686569607.661293][46545:46545] CHIP:DMG: }, + [1686569607.661367][46545:46545] CHIP:DMG: + [1686569607.661449][46545:46545] CHIP:DMG: CommandFields = + [1686569607.661517][46545:46545] CHIP:DMG: { + [1686569607.661606][46545:46545] CHIP:DMG: }, + [1686569607.661672][46545:46545] CHIP:DMG: }, + [1686569607.661741][46545:46545] CHIP:DMG: + [1686569607.661817][46545:46545] CHIP:DMG: ], + [1686569607.661887][46545:46545] CHIP:DMG: + [1686569607.661963][46545:46545] CHIP:DMG: InteractionModelRevision = 1 + [1686569607.662019][46545:46545] CHIP:DMG: }, + + + Verify DUT receives SUCCESS response from TH2(all-cluster-app) + + [1686569607.703553][48796:48796] CHIP:DMG: StatusIB = + [1686569607.703635][48796:48796] CHIP:DMG: { + [1686569607.703711][48796:48796] CHIP:DMG: status = 0x00 (SUCCESS), + [1686569607.703785][48796:48796] CHIP:DMG: }, + + Verify DUT receives SUCCESS response from TH3(all-cluster-app) + + [1686569607.703553][48796:48796] CHIP:DMG: StatusIB = + [1686569607.703635][48796:48796] CHIP:DMG: { + [1686569607.703711][48796:48796] CHIP:DMG: status = 0x00 (SUCCESS), + [1686569607.703785][48796:48796] CHIP:DMG: }, disabled: true - - label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)" + - label: "Step 8: TH1 reads OnOff attribute from TH2 (Endpoint 1)" PICS: OO.C.C01.Tx verification: | ./chip-tool onoff read on-off 2 1 - Verify on TH1 (Chip-tool),the onoff value is set to ON + On TH1 (Chip-tool) log, Verify that OnOff value is set to On(TRUE) and below is the sample log provided for the raspi platform [1657798291.396477][3835:3841] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 4260513117 [1657798291.396514][3835:3841] CHIP:TOO: OnOff: TRUE - - ./chip-tool onoff read on-off 3 2 - - Verify on TH1 (Chip-tool) ,the onoff value is set to ON - - [1657798691.194894][3869:3874] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 470320746 - [1657798691.194948][3869:3874] CHIP:TOO: OnOff: TRUE disabled: true - - label: "TH1 removes second binding entry corresponding to TH3 from DUT" + - label: + "Step 9: TH1 removes second binding entry corresponding to TH3 from + DUT" verification: | ./chip-tool binding write binding '[{"node" : 2 , "cluster" : "0x0006" , "endpoint" : 1 }]' 1 1 - Verify on TH1(Chip-tool) ,binding entry receives success response + Verify the SUCCESS status response On TH1(Chip-tool) log and below is the sample log provided for the raspi platform - [1657800844.739833][4000:4006] CHIP:EM: Removed CHIP MessageCounter:244702117 from RetransTable on exchange 12653i - [1657800844.739867][4000:4006] CHIP:DMG: WriteClient moving to [ResponseRe] [1657800844.739922][4000:4006] CHIP:DMG: WriteResponseMessage = [1657800844.739949][4000:4006] CHIP:DMG: { [1657800844.739990][4000:4006] CHIP:DMG: AttributeStatusIBs = @@ -297,76 +309,70 @@ tests: [1657800844.741591][4000:4006] CHIP:EM: Sending Standalone Ack for MessageCounter:142199059 on exchange 12653i disabled: true - - label: "DUT is triggered to send off command to its binding entries" + - label: + "Step 10: DUT is triggered to send off command to its binding entries" PICS: OO.C.C00.Tx verification: | DUT sends off command in the shell - > switch off - [1658838896.810567][4764:4764] CHIP:DMG: ICR moving to [AddingComm] - [1658838896.810692][4764:4764] CHIP:DMG: ICR moving to [AddedComma] - [1658838896.810911][4764:4764] CHIP:IN: Prepared secure message 0xaaaaf8a8c0e8 to 0x0000000000000046 (1) of type 0x8 and protocolId (0, 1) on exchange 5088i with MessageCounter:188042574. - [1658838896.811035][4764:4764] CHIP:IN: Sending encrypted msg 0xaaaaf8a8c0e8 with MessageCounter:188042574 to 0x0000000000000046 (1) at monotonic time: 000000000194A3BA msec - [1658838896.811427][4764:4764] CHIP:DMG: ICR moving to [CommandSen] - Done - > [1658838896.817922][4764:4764] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:225570716 on exchange 5088i - [1658838896.817984][4764:4764] CHIP:EM: Found matching exchange: 5088i, Delegate: 0xaaaaf8a90220 - [1658838896.818042][4764:4764] CHIP:EM: Rxd Ack; Removing MessageCounter:188042574 from Retrans Table on exchange 5088i - [1658838896.818087][4764:4764] CHIP:EM: Removed CHIP MessageCounter:188042574 from RetransTable on exchange 5088i - [1658838896.818140][4764:4764] CHIP:DMG: ICR moving to [ResponseRe] - [1658838896.818241][4764:4764] CHIP:DMG: InvokeResponseMessage = - [1658838896.818287][4764:4764] CHIP:DMG: { - [1658838896.818344][4764:4764] CHIP:DMG: suppressResponse = false, - [1658838896.818391][4764:4764] CHIP:DMG: InvokeResponseIBs = - [1658838896.818463][4764:4764] CHIP:DMG: [ - [1658838896.818508][4764:4764] CHIP:DMG: InvokeResponseIB = - [1658838896.818581][4764:4764] CHIP:DMG: { - [1658838896.818629][4764:4764] CHIP:DMG: CommandStatusIB = - [1658838896.818699][4764:4764] CHIP:DMG: { - [1658838896.818759][4764:4764] CHIP:DMG: CommandPathIB = - [1658838896.818836][4764:4764] CHIP:DMG: { - [1658838896.818915][4764:4764] CHIP:DMG: EndpointId = 0x1, - [1658838896.819001][4764:4764] CHIP:DMG: ClusterId = 0x6, - [1658838896.819068][4764:4764] CHIP:DMG: CommandId = 0x0, - [1658838896.819144][4764:4764] CHIP:DMG: }, - [1658838896.819227][4764:4764] CHIP:DMG: - [1658838896.819285][4764:4764] CHIP:DMG: StatusIB = - [1658838896.819347][4764:4764] CHIP:DMG: { - [1658838896.819408][4764:4764] CHIP:DMG: status = 0x00 (SUCCESS), - [1658838896.819474][4764:4764] CHIP:DMG: }, - [1658838896.819535][4764:4764] CHIP:DMG: - [1658838896.819588][4764:4764] CHIP:DMG: }, - [1658838896.819650][4764:4764] CHIP:DMG: - [1658838896.819700][4764:4764] CHIP:DMG: }, - [1658838896.819759][4764:4764] CHIP:DMG: - [1658838896.819803][4764:4764] CHIP:DMG: ], - [1658838896.819856][4764:4764] CHIP:DMG: - [1658838896.819900][4764:4764] CHIP:DMG: InteractionModelRevision = 1 - [1658838896.819943][4764:4764] CHIP:DMG: }, - [1658838896.820047][4764:4764] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0000 Status=0x0 - [1658838896.820095][4764:4764] CHIP:-: OnOff command succeeds + >switch off + + On TH2(all-cluster-app) log, Verify that TH2 receives Off command and below is the sample log provided for the raspi platform + + [1686570217.594079][68496:68496] CHIP:DMG: InvokeRequestMessage = + [1686570217.594141][68496:68496] CHIP:DMG: { + [1686570217.594194][68496:68496] CHIP:DMG: suppressResponse = false, + [1686570217.594256][68496:68496] CHIP:DMG: timedRequest = false, + [1686570217.594314][68496:68496] CHIP:DMG: InvokeRequests = + [1686570217.594385][68496:68496] CHIP:DMG: [ + [1686570217.594481][68496:68496] CHIP:DMG: CommandDataIB = + [1686570217.594545][68496:68496] CHIP:DMG: { + [1686570217.594626][68496:68496] CHIP:DMG: CommandPathIB = + [1686570217.594706][68496:68496] CHIP:DMG: { + [1686570217.594776][68496:68496] CHIP:DMG: EndpointId = 0x1, + [1686570217.594873][68496:68496] CHIP:DMG: ClusterId = 0x6, + [1686570217.594947][68496:68496] CHIP:DMG: CommandId = 0x0, + [1686570217.595037][68496:68496] CHIP:DMG: }, + [1686570217.595111][68496:68496] CHIP:DMG: + [1686570217.595202][68496:68496] CHIP:DMG: CommandFields = + [1686570217.595271][68496:68496] CHIP:DMG: { + [1686570217.595360][68496:68496] CHIP:DMG: }, + [1686570217.595426][68496:68496] CHIP:DMG: }, + [1686570217.595494][68496:68496] CHIP:DMG: + [1686570217.595571][68496:68496] CHIP:DMG: ], + [1686570217.595640][68496:68496] CHIP:DMG: + [1686570217.595715][68496:68496] CHIP:DMG: InteractionModelRevision = 1 + [1686570217.595772][68496:68496] CHIP:DMG: }, + + Verify DUT receives SUCCESS response from TH2(all-cluster-app) + + [1686570217.617563][48796:48796] CHIP:DMG: StatusIB = + [1686570217.617622][48796:48796] CHIP:DMG: { + [1686570217.617679][48796:48796] CHIP:DMG: status = 0x00 (SUCCESS), + [1686570217.617735][48796:48796] CHIP:DMG: }, + + Note: + TH3 does not receive off command . disabled: true - - label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)" + - label: "Step 11: TH1 reads OnOff attribute from TH2 (Endpoint 1)" PICS: OO.C.C00.Tx verification: | ./chip-tool onoff read on-off 2 1 - Verify on TH1 (Chip-tool),the onoff value is set to OFF + On TH1 (Chip-tool) log, Verify that OnOff value is set to Off(FALSE) and below is the sample log provided for the raspi platform [1657803168.769564][4272:4277] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 1968648540 - [1657803168.769598][4272:4277] CHIP:TOO: OnOff: FALSE disabled: true - - label: "TH1 reads OnOff attribute from TH3 (Endpoint 2)" + - label: "Step 12: TH1 reads OnOff attribute from TH3 (Endpoint 2)" PICS: OO.C.C01.Tx verification: | ./chip-tool onoff read on-off 3 2 - Verify on TH1 (Chip-tool) ,the onoff value is set to ON + On TH1 (Chip-tool) log, Verify that OnOff value is set to On(TRUE) and below is the sample log provided for the raspi platform [1657803609.731464][4333:4339] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3914456390 - [1657803609.731521][4333:4339] CHIP:TOO: OnOff: TRUE disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml index 22d0109704e94d..e5934b40d091bc 100644 --- a/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml @@ -29,6 +29,8 @@ tests: - label: "Note" verification: | Chip-tool command used below are an example to verify the DUT as controller test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. + + Take 2 raspi, 1 as Lighting app and another one as chip-tool. and use [ nRF52840-DK ]Thread device as light-switch-app. disabled: true - label: "Pre-Conditions" @@ -40,30 +42,25 @@ tests: DUT supports On/Off client disabled: true - - label: "Note" - verification: | - Take 2 raspi, 1 as Lighting app and another one as chip-tool. and use [ nRF52840-DK ]Thread device as light-switch-app. - disabled: true - - - label: "Factory Reset DUT" + - label: "Step 1: Factory Reset DUT" verification: | Vendor specific action, for chip-tool run rm -rf /tmp/chip* disabled: true - - label: "Commission DUT to TH1s fabric" + - label: "Step 2: Commission DUT to TH1s fabric" verification: | Advertise the [ light-switch-app ] on [ nRF52840-DK ]Thread device and pair the TH using below cmmd. ./chip-tool pairing ble-thread 74 hex:0e080000000000010000000300000f35060004001fffe0020810101191022022920708fd6587bfe9821353051000112237945966880899aabbccddeeff030f7070656e5468726561644465696f6c010212340410f23d85dd55d9748cc6a1fd5fccbb1da20c0402a0fff8 20202021 3840 disabled: true - - label: "TH1 enables DUT as Controller" + - label: "Step 3: TH1 enables DUT as Controller" verification: | disabled: true - - label: "Commission TH2 to TH1s fabric (Node ID = 2)" + - label: "Step 4: Commission TH2 to TH1s fabric (Node ID = 2)" verification: | Advertise the [Lighting-app] on Raspi and pair the TH using below cmmd. @@ -78,19 +75,18 @@ tests: disabled: true - label: - "DUT generates fabric-unique GroupID, GroupName, random key, EpochKey0 - and GroupKeySetID." + "Step 5: DUT generates fabric-unique GroupID, GroupName, random key, + EpochKey0 and GroupKeySetID." verification: | As Admin generates it is not necessary to verify disabled: true - label: - "DUT sends KeySetWrite command to GroupKeyManagement cluster to TH2 on - Endpoint 0." + "Step 6: DUT sends KeySetWrite command to GroupKeyManagement cluster + to TH2 on Endpoint 0." PICS: GRPKEY.C.C00.Tx verification: | - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: - + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, "groupKeySecurityPolicy": 0, "epochKey0": @@ -131,7 +127,7 @@ tests: [1657719041.076012][4541:4546] CHIP:DMG: InteractionModelRevision = 1 - Run this cmmd for lighting app in chip-tool: + Run this command for lighting app in chip-tool: ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, "groupKeySecurityPolicy": 0, "epochKey0": @@ -141,7 +137,6 @@ tests: On TH1(Chip-tool), Verify the success response for KeySetWrite - [1657717291.809861][3361:3366] CHIP:DMG: ICR moving to [ResponseRe] [1657717291.809913][3361:3366] CHIP:DMG: InvokeResponseMessage = [1657717291.809939][3361:3366] CHIP:DMG: { @@ -176,8 +171,8 @@ tests: disabled: true - label: - "DUT binds GroupId with GroupKeySetID in the GroupKeyMap attribute - list on GroupKeyManagement cluster to TH2 on Endpoint 0" + "Step 7: DUT binds GroupId with GroupKeySetID in the GroupKeyMap + attribute list on GroupKeyManagement cluster to TH2 on Endpoint 0" PICS: GRPKEY.C.A0000 verification: | Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: @@ -206,15 +201,15 @@ tests: disabled: true - label: - "DUT sends AddGroup( Group Name and Group-ID) Command to TH2 on - Endpoint 1." + "Step 8: DUT sends AddGroup( Group Name and Group-ID) Command to TH2 + on Endpoint 1." PICS: G.C.C00.Tx verification: | - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool groups add-group 0x0001 grp1 74 1 - On TH1(Chip-tool), Verify the success response for AddGroup + Verify the SUCCESS status response On TH1(Chip-tool) log and below is the sample log provided for the raspi platform [1657719097.788236][4548:4554] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000 [1657719097.788325][4548:4554] CHIP:TOO: AddGroupResponse: { @@ -222,8 +217,7 @@ tests: [1657719097.788393][4548:4554] CHIP:TOO: groupId: 1 [1657719097.788418][4548:4554] CHIP:TOO: } - - Run this cmmd for lighting app in chip-tool: + Run this command for lighting app in chip-tool: ./chip-tool groups add-group 0x0001 grp1 2 1 @@ -236,7 +230,6 @@ tests: [1657717342.600054][3368:3373] CHIP:TOO: } [1657717342.600130][3368:3373] CHIP:DMG: ICR moving - Run this commands for both Ligh-switch-app and Lighting-app: ./chip-tool groupsettings add-group grp1 0x0001 @@ -258,35 +251,36 @@ tests: disabled: true - label: - "TH1 writes Binding entry into DUT with Entry 1: Group = The Group ID - in the AddGroup command sent from DUT to TH2" + "Step 9: TH1 writes Binding entry into DUT with Entry 1: Group = The + Group ID in the AddGroup command sent from DUT to TH2" verification: | Before write the binding entries run the ACL Commands: - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: + Run this commandd for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 74 0 - On TH1(Chip-tool), Verify the success response for Acl: + Verify the SUCCESS status response On TH1(Chip-tool) log and below is the sample log provided for the raspi platform [1659075680.943991][2687:2692] CHIP:DMG: StatusIB = [1659075680.944052][2687:2692] CHIP:DMG: { [1659075680.944116][2687:2692] CHIP:DMG: status = 0x00 (SUCCESS), - Run this cmmd for lighting app in chip-tool: + Run this commandd for lighting app in chip-tool: ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 2 0 - On TH1(Chip-tool), Verify the success response for Acl: + Verify the SUCCESS status response On TH1(Chip-tool) log and below is the sample log provided for the raspi platform [1659075680.943991][2687:2692] CHIP:DMG: StatusIB = [1659075680.944052][2687:2692] CHIP:DMG: { [1659075680.944116][2687:2692] CHIP:DMG: status = 0x00 (SUCCESS), - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: + + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool binding write binding '[{"group" : "0x0001"}]' 74 1 - On TH1(chip-tool), Verify the success response for binding entry + Verify the SUCCESS status response On TH1(Chip-tool) log and below is the sample log provided for the raspi platform [1657717436.184899][4353:4358] CHIP:DMG: StatusIB = [1657717436.184940][4353:4358] CHIP:DMG: { @@ -296,33 +290,33 @@ tests: disabled: true - label: - "DUT is triggered to send Multicast message On command to its binding - entries" + "Step 10a: DUT is triggered to send Multicast message On command to + its binding entries" PICS: OO.C.C01.Tx verification: | Press button no.2 on [ nRF52840-DK ]thread board disabled: true - - label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)" + - label: "Step 10b: TH1 reads OnOff attribute from TH2 (Endpoint 1)" PICS: OO.C.C01.Tx verification: | Run this cmmd for lighting app in chip-tool: ./chip-tool onoff read on-off 2 1 - On TH1 (Chip-tool), Verify the value is set to ON + On TH1 (Chip-tool) log, Verify that OnOff value is set to ON(TRUE) and below is the sample log provided for the raspi platform [1657717900.832851][4381:4386] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 1558029216 [1657717900.832890][4381:4386] CHIP:TOO: OnOff: TRUE disabled: true - - label: "TH1 removes all the binding entries from DUT" + - label: "Step 11: TH1 removes all the binding entries from DUT" verification: | - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool binding write binding '[]' 74 1 - On TH1(Chip-tool), Verify the success response for removing binding entry + Verify the SUCCESS status response On TH1(Chip-tool) log and below is the sample log provided for the raspi platform [1659362827.431927][2469:2475] CHIP:DMG: StatusIB = [1659362827.431996][2469:2475] CHIP:DMG: { @@ -331,21 +325,21 @@ tests: disabled: true - label: - "DUT is triggered to send Multicast message off command to its binding - entries" + "Step 12a: DUT is triggered to send Multicast message off command to + its binding entries" PICS: OO.C.C00.Tx verification: | Press button no.2 on [ nRF52840-DK ] thread board disabled: true - - label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)" + - label: "Step 12b: TH1 reads OnOff attribute from TH2 (Endpoint 1)" PICS: OO.C.C01.Tx verification: | - Run this cmmd for lighting app in chip-tool: + Run this command for lighting app in chip-tool: ./chip-tool onoff read on-off 2 1 - On TH1(Chip-tool), Verify the value is set to ON + On TH1 (Chip-tool) log, Verify that OnOff value is set to ON(TRUE) and below is the sample log provided for the raspi platform [1657718251.169765][4425:4431] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 1558029223 [1657718251.169817][4425:4431] CHIP:TOO: OnOff: TRUE diff --git a/src/app/tests/suites/certification/Test_TC_BIND_2_3.yaml b/src/app/tests/suites/certification/Test_TC_BIND_2_3.yaml index bd8ead4aeb4893..f1fcc17f0985cd 100644 --- a/src/app/tests/suites/certification/Test_TC_BIND_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_BIND_2_3.yaml @@ -29,6 +29,8 @@ tests: - label: "Note" verification: | Chip-tool command used below are an example to verify the DUT as controller test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. + + Take 2 raspi, 1 as Lighting app and another one as chip-tool. and use [ nRF52840-DK ]Thread device as light-switch-app. disabled: true - label: "Pre-Conditions" @@ -40,30 +42,25 @@ tests: DUT supports On/Off client disabled: true - - label: "Note" - verification: | - Take 2 raspi, 1 as Lighting app and another one as chip-tool. and use [ nRF52840-DK ]Thread device as light-switch-app. - disabled: true - - - label: "Factory Reset DUT" + - label: "Step 1: Factory Reset DUT" verification: | Vendor specific action, for chip-tool run rm -rf /tmp/chip* disabled: true - - label: "Commission DUT to TH1s fabric" + - label: "Step 2: Commission DUT to TH1s fabric" verification: | Advertise the [ light-switch-app ] on [ nRF52840-DK ]Thread device and pair the TH using below cmmd. - ./chip-tool pairing ble-thread 74 hex:0e080000000000010000000300000f35060004001fffe0020810101191022022920708fd6587bfe9821353051000112237945966880899aabbccddeeff030f7070656e5468726561644465696f6c010212340410f23d85dd55d9748cc6a1fd5fccbb1da20c0402a0fff8 20202021 3840 + ./chip-tool pairing ble-thread 74 hex:0e080000000000010000000300001035060004001fffe0020811131111222222220708fd289db171f70e0a051000112233449566778899aabbccddeeff030f4f70656e54687265616444656d6f6a01021234041054cf5959c56366f2a69129148737edc60c0402a0f7f8 20202021 3840 disabled: true - - label: "TH1 enables DUT as Controller" + - label: "Step 3: TH1 enables DUT as Controller" verification: | disabled: true - - label: "Commission TH2 to TH1s fabric (Node ID = 2)" + - label: "Step 4: Commission TH2 to TH1s fabric (Node ID = 2)" verification: | Advertise the [Lighting-app] on Raspi and pair the TH using below cmmd. @@ -78,18 +75,17 @@ tests: disabled: true - label: - "TH1 generates fabric-unique GroupID, GroupName, random key, EpochKey0 - and GroupKeySetID." + "Step 5: TH1 generates fabric-unique GroupID, GroupName, random key, + EpochKey0 and GroupKeySetID." verification: | As Admin generates it is not required to verify disabled: true - label: - "TH1 sends KeySetWrite command to GroupKeyManagement cluster to TH2 on - Endpoint 0." + "Step 6: TH1 sends KeySetWrite command to GroupKeyManagement cluster + to TH2 on Endpoint 0." verification: | - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: - + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, "groupKeySecurityPolicy": 0, "epochKey0": @@ -129,14 +125,13 @@ tests: [1657719041.075988][4541:4546] CHIP:DMG: [1657719041.076012][4541:4546] CHIP:DMG: InteractionModelRevision = 1 - Run this cmmd for lighting app in chip-tool: + Run this command for lighting app in chip-tool: ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, "groupKeySecurityPolicy": 0, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 2 0 - [1657719041.076036][4541:4546] CHIP:DMG: } On TH1, Verify the success response for KeySetWrite @@ -144,10 +139,10 @@ tests: disabled: true - label: - "TH1 binds GroupId with GroupKeySetID in the GroupKeyMap attribute - list on GroupKeyManagement cluster to TH2 on Endpoint 0" + "Step 7: TH1 binds GroupId with GroupKeySetID in the GroupKeyMap + attribute list on GroupKeyManagement cluster to TH2 on Endpoint 0" verification: | - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]' 74 0 @@ -159,10 +154,9 @@ tests: [1657719130.464298][4557:4562] CHIP:DMG: }, [1657719130.464342][4557:4562] CHIP:DMG: - Run this cmmd for lighting app in chip-tool: + Run this command for lighting app in chip-tool: ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]' 2 0 - On TH1(Chip-tool), Verify the success response for GroupKeySetID [1657719130.464175][4557:4562] CHIP:DMG: StatusIB = @@ -173,10 +167,10 @@ tests: disabled: true - label: - "TH1 sends AddGroup( Group Name and Group-ID) Command to TH2 on - Endpoint 1." + "Step 8: TH1 sends AddGroup( Group Name and Group-ID) Command to TH2 + on Endpoint 1." verification: | - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool groups add-group 0x0001 grp1 74 1 @@ -189,7 +183,7 @@ tests: [1657719097.788418][4548:4554] CHIP:TOO: } - Run this cmmd for lighting app in chip-tool: + Run this command for lighting app in chip-tool: ./chip-tool groups add-group 0x0001 grp1 2 1 @@ -223,12 +217,12 @@ tests: disabled: true - label: - "TH1 writes Binding entry into DUT with Entry 1: Group = The Group ID - in the AddGroup command sent from TH1 to TH2" + "Step 9: TH1 writes Binding entry into DUT with Entry 1: Group = The + Group ID in the AddGroup command sent from TH1 to TH2" verification: | Before write the binding entries run the ACL Commands: - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 74 0 @@ -238,7 +232,7 @@ tests: [1659075680.944052][2687:2692] CHIP:DMG: { [1659075680.944116][2687:2692] CHIP:DMG: status = 0x00 (SUCCESS), - Run this cmmd for lighting app in chip-tool: + Run this command for lighting app in chip-tool: ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]' 2 0 @@ -249,7 +243,7 @@ tests: [1659075680.944116][2687:2692] CHIP:DMG: status = 0x00 (SUCCESS), - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool binding write binding '[{"group" : "0x0001"}]' 74 1 @@ -261,35 +255,35 @@ tests: [1657719251.763440][4597:4602] CHIP:DMG: }, disabled: true - - label: "TH1 sets up group settings on DUT" + - label: "Step 10: TH1 sets up group settings on DUT" verification: | disabled: true - label: - "DUT is triggered to send Multicast message On command to its binding - entries" + "Step 11a: DUT is triggered to send Multicast message On command to + its binding entries" PICS: OO.C.C01.Tx verification: | Press button no.2 on nrf52840 DK thread board disabled: true - - label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)" + - label: "Step 11b: TH1 reads OnOff attribute from TH2 (Endpoint 1)" PICS: OO.C.C01.Tx verification: | - Run this cmmd for lighting app in chip-tool: + Run this command for lighting app in chip-tool: ./chip-tool onoff read on-off 2 1 - On TH1(Chip-tool), Verify the onoff value is set to ON + On TH1(Chip-tool), Verify the onoff value is set to ON(TRUE) [1657719363.799344][4615:4620] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3526720174 [1657719363.799380][4615:4620] CHIP:TOO: OnOff: TRUE disabled: true - - label: "TH1 removes all the binding entries from DUT" + - label: "Step 12: TH1 removes all the binding entries from DUT" verification: | - Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool: + Run this command for [ nRF52840-DK ]Thread device in chip-tool: ./chip-tool binding write binding '[]' 74 1 @@ -302,21 +296,21 @@ tests: disabled: true - label: - "DUT is triggered to send Multicast message off command to its binding - entries" + "Step 13a: DUT is triggered to send Multicast message off command to + its binding entries" PICS: OO.C.C00.Tx verification: | Press button no.2 on nrf52840 DK thread board disabled: true - - label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)" + - label: "Step 13b: TH1 reads OnOff attribute from TH2 (Endpoint 1)" PICS: OO.C.C01.Tx verification: | - Run this cmmd for lighting app in chip-tool: + Run this command for lighting app in chip-tool: ./chip-tool onoff read on-off 2 1 - On TH1(Chip-tool), Verify the onoff value is set to ON + On TH1(Chip-tool), Verify the onoff value is set to ON(TRUE) [1657719448.858149][4636:4641] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3526720174 [1657719448.858183][4636:4641] CHIP:TOO: OnOff: TRUE diff --git a/src/app/tests/suites/certification/Test_TC_BINFO_2_3_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_BINFO_2_3_Simulated.yaml deleted file mode 100644 index fd497721e12901..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_BINFO_2_3_Simulated.yaml +++ /dev/null @@ -1,136 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -name: 11.2.3. [TC-BINFO-2.3] Attributes [DUT-Client] - -PICS: - - BINFO.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - #- label: "Wait for the device to be commissioned" - # cluster: "DelayCommands" - # command: "WaitForCommissioning" - - - label: "Log OnOff Test Startup" - cluster: "LogCommands" - command: "Log" - arguments: - values: - - name: "message" - value: "*** Basic Cluster Tests Ready" - - - label: "DUT reads DataModelRevision from the TH" - PICS: BINFO.C.A0000 - wait: "readAttribute" - attribute: "DataModelRevision" - - - label: "DUT reads VendorName from the TH" - PICS: BINFO.C.A0001 - wait: "readAttribute" - attribute: "VendorName" - - - label: "DUT reads VendorID from the TH" - PICS: BINFO.C.A0002 - wait: "readAttribute" - attribute: "VendorID" - - - label: "DUT reads ProductName from the TH" - PICS: BINFO.C.A0003 - wait: "readAttribute" - attribute: "ProductName" - - - label: "DUT reads ProductID from the TH" - PICS: BINFO.C.A0004 - wait: "readAttribute" - attribute: "ProductID" - - - label: "DUT reads NodeLabel from the TH" - PICS: BINFO.C.A0005 - wait: "readAttribute" - attribute: "NodeLabel" - - - label: "DUT reads Location from the TH" - PICS: BINFO.C.A0006 - wait: "readAttribute" - attribute: "Location" - - - label: "DUT reads HardwareVersion from the TH" - PICS: BINFO.C.A0007 - wait: "readAttribute" - attribute: "HardwareVersion" - - - label: "DUT reads HardwareVersionString from the TH" - PICS: BINFO.C.A0008 - wait: "readAttribute" - attribute: "HardwareVersionString" - - - label: "DUT reads SoftwareVersion from the TH" - PICS: BINFO.C.A0009 - wait: "readAttribute" - attribute: "SoftwareVersion" - - - label: "DUT reads SoftwareVersionString from the TH" - PICS: BINFO.C.A000a - wait: "readAttribute" - attribute: "SoftwareVersionString" - - - label: "DUT reads ManufacturingDate from the TH" - PICS: BINFO.C.A000b - wait: "readAttribute" - attribute: "ManufacturingDate" - - - label: "DUT reads PartNumber from the TH" - PICS: BINFO.C.A000c - wait: "readAttribute" - attribute: "PartNumber" - - - label: "DUT reads ProductURL from the TH" - PICS: BINFO.C.A000d - wait: "readAttribute" - attribute: "ProductURL" - - - label: "DUT reads ProductLabel from the TH" - PICS: BINFO.C.A000e - wait: "readAttribute" - attribute: "ProductLabel" - - - label: "DUT reads SerialNumber from the TH" - PICS: BINFO.C.A000f - wait: "readAttribute" - attribute: "SerialNumber" - - - label: "DUT reads LocalConfigDisabled from the TH" - PICS: BINFO.C.A0010 - wait: "readAttribute" - attribute: "LocalConfigDisabled" - - - label: "DUT reads Reachable from the TH" - PICS: BINFO.C.A0011 - wait: "readAttribute" - attribute: "Reachable" - - - label: "DUT reads UniqueID from the TH" - PICS: BINFO.C.A0012 - wait: "readAttribute" - attribute: "UniqueID" - - - label: "DUT reads CapabilityMinima from the TH" - PICS: BINFO.C.A0013 - wait: "readAttribute" - attribute: "CapabilityMinima" diff --git a/src/app/tests/suites/certification/Test_TC_BINFO_2_4.yaml b/src/app/tests/suites/certification/Test_TC_BINFO_2_4.yaml deleted file mode 100644 index b248279c1df7a1..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_BINFO_2_4.yaml +++ /dev/null @@ -1,319 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.1.4. [TC-BINFO-2.4] Events [DUT - Client] - -PICS: - - BINFO.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - Note: : Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Precondition:" - verification: | - 1. Commission TH to DUT - 2. DUT subscribes to the events it supports - disabled: true - - - label: "Simulate a Reachable attribute change on the TH" - PICS: BINFO.C.E03 - verification: | - "reachable-changed" Event is an Optional event - - As its an optional event we cannot generate the event as of now , hence no example logs provided. - - ./chip-tool basicinformation read-event reachable-changed 1 0 - disabled: true - - - label: "Simulate a shutdown on the TH" - PICS: BINFO.C.E01 - verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) and TH as all-clusters-app. - - - To verify shutdown event follow the below commands, - - 1. Launch chip-tool into interactive mode with using the below command - ./chip-tool interactive start - - - 2. run below subscribe-event command in interactive mode shell and then Turn down the TH (all-clusters-app) - basicinformation subscribe-event shut-down 20 100 1 0 - - On TH(all-cluster-app), ,verify that Shutdown event has priority set as CRITICAL (0x2) - - [1666095658.719821][16788:16788] CHIP:DMG: Unblock report hold after min 20 seconds - [1666095661.196050][16788:16788] CHIP:DL: Caught signal 2 - [1666095661.196434][16788:16788] CHIP:DL: Select failed: ../../third_party/connectedhomeip/src/system/SystemLayerImplSelect.cpp:493: OS Error 0x02000004: Interrupted system call - [1666095661.196516][16788:16788] CHIP:ZCL: Emitting ShutDown event - [1666095661.196659][16788:16788] CHIP:EVL: LogEvent event number: 0x0000000000000004 priority: 2, endpoint id: 0x0 cluster id: 0x0000_0028 event id: 0x1 Sys timestamp: 0x0000000006C599DA - [1666095661.196784][16788:16788] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 34 DirtyGeneration = 0 - [1666095661.196870][16788:16788] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=v - [1666095661.196942][16788:16788] CHIP:DMG: AccessControl: allowed - [1666095661.197336][16788:16788] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=v - [1666095661.197412][16788:16788] CHIP:DMG: AccessControl: allowed - [1666095661.197544][16788:16788] CHIP:DMG: Fetched 1 events - [1666095661.197604][16788:16788] CHIP:DMG: Sending report (payload has 46 bytes)... - [1666095661.197694][16788:16788] CHIP:DMG: IM RH moving to [AwaitingReportResponse] - [1666095661.198422][16788:16788] CHIP:EM: <<< [E:41036i M:8509282] (S) Msg TX to 1:000000000001B669 [CE46] --- Type 0001:05 (IM:ReportData) - [1666095661.198540][16788:16788] CHIP:IN: (S) Sending msg 8509282 on secure session with LSID: 51611 - [1666095661.199285][16788:16788] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:49389 | 8509282 | [Interaction Model (1) / Report Data (0x05) / Session = 13015 / Exchange = 41036] - [1666095661.199393][16788:16788] CHIP:DMG: Header Flags = - [1666095661.199457][16788:16788] CHIP:DMG: { - [1666095661.199546][16788:16788] CHIP:DMG: Exchange (0x05) = - [1666095661.199606][16788:16788] CHIP:DMG: { - [1666095661.199649][16788:16788] CHIP:DMG: Initiator = true - [1666095661.199694][16788:16788] CHIP:DMG: NeedsAck = true - [1666095661.199739][16788:16788] CHIP:DMG: } - [1666095661.199802][16788:16788] CHIP:DMG: } - [1666095661.199858][16788:16788] CHIP:DMG: - [1666095661.199921][16788:16788] CHIP:DMG: Encrypted Payload (76 bytes) = - [1666095661.199967][16788:16788] CHIP:DMG: { - [1666095661.200011][16788:16788] CHIP:DMG: data = 00d7320062d7810003c31589377980d0f605ee088487c6447c4af8c6c81ca99435840ff42595614bb74bdc5fd0f637a32f55ea9fe14602448c8e6249a76e2b39c0b18ee6a2af4b2ca820e664 - [1666095661.200062][16788:16788] CHIP:DMG: buffer_ptr = 187651017181200 - [1666095661.200123][16788:16788] CHIP:DMG: } - [1666095661.200322][16788:16788] CHIP:DMG: - [1666095661.200502][16788:16788] CHIP:DMG: ReportDataMessage = - [1666095661.200563][16788:16788] CHIP:DMG: { - [1666095661.200618][16788:16788] CHIP:DMG: SubscriptionId = 0xba47e717, - [1666095661.200682][16788:16788] CHIP:DMG: EventReportIBs = - [1666095661.200762][16788:16788] CHIP:DMG: [ - [1666095661.200824][16788:16788] CHIP:DMG: EventReportIB = - [1666095661.200918][16788:16788] CHIP:DMG: { - [1666095661.200993][16788:16788] CHIP:DMG: EventDataIB = - [1666095661.201084][16788:16788] CHIP:DMG: { - [1666095661.201172][16788:16788] CHIP:DMG: EventPath = - [1666095661.201247][16788:16788] CHIP:DMG: { - [1666095661.201335][16788:16788] CHIP:DMG: Endpoint = 0x0, - [1666095661.201435][16788:16788] CHIP:DMG: Cluster = 0x28, - [1666095661.201535][16788:16788] CHIP:DMG: Event = 0x1, - [1666095661.201629][16788:16788] CHIP:DMG: }, - [1666095661.201728][16788:16788] CHIP:DMG: - [1666095661.201798][16788:16788] CHIP:DMG: EventNumber = 0x4, - [1666095661.201918][16788:16788] CHIP:DMG: PriorityLevel = 0x2, - [1666095661.201998][16788:16788] CHIP:DMG: SystemTimestamp = 0x6c599da, - [1666095661.202071][16788:16788] CHIP:DMG: EventData = - [1666095661.202155][16788:16788] CHIP:DMG: { - [1666095661.202251][16788:16788] CHIP:DMG: }, - [1666095661.202345][16788:16788] CHIP:DMG: }, - [1666095661.202435][16788:16788] CHIP:DMG: - [1666095661.202508][16788:16788] CHIP:DMG: }, - [1666095661.202596][16788:16788] CHIP:DMG: - [1666095661.202660][16788:16788] CHIP:DMG: ], - disabled: true - - - label: "Simulate a (re)start on the TH after the previous shutdown" - PICS: BINFO.C.E00 - verification: | - ./chip-tool basicinformation read-event start-up 1 0 - - verify that StartUp event has priority set as CRITICAL(0x2) and software version field on TH(all-clusters-app) log - - [1666095714.120905][16801:16801] CHIP:EM: Handling via exchange: 5364r, Delegate: 0xaaaabb940288 - [1666095714.121004][16801:16801] CHIP:IM: Received Read request - [1666095714.121170][16801:16801] CHIP:DMG: ReadRequestMessage = - [1666095714.121243][16801:16801] CHIP:DMG: { - [1666095714.121299][16801:16801] CHIP:DMG: EventPathIBs = - [1666095714.121371][16801:16801] CHIP:DMG: [ - [1666095714.121436][16801:16801] CHIP:DMG: EventPath = - [1666095714.121511][16801:16801] CHIP:DMG: { - [1666095714.121590][16801:16801] CHIP:DMG: Endpoint = 0x0, - [1666095714.121667][16801:16801] CHIP:DMG: Cluster = 0x28, - [1666095714.121756][16801:16801] CHIP:DMG: Event = 0x0, - [1666095714.121840][16801:16801] CHIP:DMG: }, - [1666095714.122028][16801:16801] CHIP:DMG: - [1666095714.122094][16801:16801] CHIP:DMG: ], - [1666095714.122170][16801:16801] CHIP:DMG: - [1666095714.122234][16801:16801] CHIP:DMG: isFabricFiltered = true, - [1666095714.122299][16801:16801] CHIP:DMG: InteractionModelRevision = 1 - [1666095714.122361][16801:16801] CHIP:DMG: }, - [1666095714.122526][16801:16801] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666095714.122751][16801:16801] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666095714.122849][16801:16801] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=v - [1666095714.122939][16801:16801] CHIP:DMG: AccessControl: allowed - [1666095714.123208][16801:16801] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=v - [1666095714.123283][16801:16801] CHIP:DMG: AccessControl: allowed - [1666095714.123503][16801:16801] CHIP:DMG: Fetched 1 events - [1666095714.123581][16801:16801] CHIP:DMG: Sending report (payload has 45 bytes)... - [1666095714.124187][16801:16801] CHIP:EM: <<< [E:5364r M:137175071 (Ack:122333195)] (S) Msg TX to 1:000000000001B669 [CE46] --- Type 0001:05 (IM:ReportData) - [1666095714.124298][16801:16801] CHIP:IN: (S) Sending msg 137175071 on secure session with LSID: 4134 - [1666095714.125008][16801:16801] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:42507 | 137175071 | [Interaction Model (1) / Report Data (0x05) / Session = 6804 / Exchange = 5364] - [1666095714.125108][16801:16801] CHIP:DMG: Header Flags = - [1666095714.125167][16801:16801] CHIP:DMG: { - [1666095714.125254][16801:16801] CHIP:DMG: Exchange (0x06) = - [1666095714.125317][16801:16801] CHIP:DMG: { - [1666095714.125378][16801:16801] CHIP:DMG: AckMsg = 122333195 - [1666095714.125436][16801:16801] CHIP:DMG: NeedsAck = true - [1666095714.125491][16801:16801] CHIP:DMG: } - [1666095714.125559][16801:16801] CHIP:DMG: } - [1666095714.125615][16801:16801] CHIP:DMG: - [1666095714.125681][16801:16801] CHIP:DMG: Encrypted Payload (79 bytes) = - [1666095714.125737][16801:16801] CHIP:DMG: { - [1666095714.125784][16801:16801] CHIP:DMG: data = 00941a001f202d08fd6e34f74dcff1465a672c4c21f744f37ff898ebedf0afe4dc318d0fabb2ab1a235f77b70644801a87b621538403c586d44b81d596af74f7da65f18b461ef8ee4cedb3b86177f1 - [1666095714.125842][16801:16801] CHIP:DMG: buffer_ptr = 187651174387456 - [1666095714.125949][16801:16801] CHIP:DMG: } - [1666095714.126003][16801:16801] CHIP:DMG: - [1666095714.126171][16801:16801] CHIP:DMG: ReportDataMessage = - [1666095714.126247][16801:16801] CHIP:DMG: { - [1666095714.126304][16801:16801] CHIP:DMG: EventReportIBs = - [1666095714.126389][16801:16801] CHIP:DMG: [ - [1666095714.126453][16801:16801] CHIP:DMG: EventReportIB = - [1666095714.126546][16801:16801] CHIP:DMG: { - [1666095714.126606][16801:16801] CHIP:DMG: EventDataIB = - [1666095714.126698][16801:16801] CHIP:DMG: { - [1666095714.126786][16801:16801] CHIP:DMG: EventPath = - [1666095714.126877][16801:16801] CHIP:DMG: { - [1666095714.126976][16801:16801] CHIP:DMG: Endpoint = 0x0, - [1666095714.127079][16801:16801] CHIP:DMG: Cluster = 0x28, - [1666095714.127171][16801:16801] CHIP:DMG: Event = 0x0, - [1666095714.127270][16801:16801] CHIP:DMG: }, - [1666095714.127369][16801:16801] CHIP:DMG: - [1666095714.127463][16801:16801] CHIP:DMG: EventNumber = 0x2, - [1666095714.127561][16801:16801] CHIP:DMG: PriorityLevel = 0x2, - [1666095714.127660][16801:16801] CHIP:DMG: SystemTimestamp = 0x6c60dde, - [1666095714.127746][16801:16801] CHIP:DMG: EventData = - [1666095714.127828][16801:16801] CHIP:DMG: { - [1666095714.127930][16801:16801] CHIP:DMG: 0x0 = 1, - [1666095714.128031][16801:16801] CHIP:DMG: }, - [1666095714.128123][16801:16801] CHIP:DMG: }, - [1666095714.128200][16801:16801] CHIP:DMG: - [1666095714.128267][16801:16801] CHIP:DMG: }, - [1666095714.128339][16801:16801] CHIP:DMG: - [1666095714.128414][16801:16801] CHIP:DMG: ], - disabled: true - - - label: "Simulate a leave current fabric operation on the TH" - PICS: BINFO.C.E02 - verification: | - To verify leave event follow the below commands - - 1. ./chip-tool interactive start - 2. basicinformation subscribe-event leave 1 100 1 0 - 3. operationalcredentials remove-fabric 1 1 0 - - verify that leave event has priority as INFO(0x1) on TH (all-clusters-app) - - [1666095741.182466][16801:16801] CHIP:EM: Handling via exchange: 6250r, Delegate: 0xaaaabb940288 - [1666095741.182603][16801:16801] CHIP:DMG: InvokeRequestMessage = - [1666095741.182674][16801:16801] CHIP:DMG: { - [1666095741.182735][16801:16801] CHIP:DMG: suppressResponse = false, - [1666095741.182803][16801:16801] CHIP:DMG: timedRequest = false, - [1666095741.182875][16801:16801] CHIP:DMG: InvokeRequests = - [1666095741.182954][16801:16801] CHIP:DMG: [ - [1666095741.183015][16801:16801] CHIP:DMG: CommandDataIB = - [1666095741.183083][16801:16801] CHIP:DMG: { - [1666095741.183146][16801:16801] CHIP:DMG: CommandPathIB = - [1666095741.183228][16801:16801] CHIP:DMG: { - [1666095741.183303][16801:16801] CHIP:DMG: EndpointId = 0x0, - [1666095741.183377][16801:16801] CHIP:DMG: ClusterId = 0x3e, - [1666095741.183457][16801:16801] CHIP:DMG: CommandId = 0xa, - [1666095741.183529][16801:16801] CHIP:DMG: }, - [1666095741.183605][16801:16801] CHIP:DMG: - [1666095741.183672][16801:16801] CHIP:DMG: CommandFields = - [1666095741.183743][16801:16801] CHIP:DMG: { - [1666095741.183818][16801:16801] CHIP:DMG: 0x0 = 1, - [1666095741.183898][16801:16801] CHIP:DMG: }, - [1666095741.183967][16801:16801] CHIP:DMG: }, - [1666095741.184041][16801:16801] CHIP:DMG: - [1666095741.184102][16801:16801] CHIP:DMG: ], - [1666095741.184172][16801:16801] CHIP:DMG: - [1666095741.184231][16801:16801] CHIP:DMG: InteractionModelRevision = 1 - [1666095741.184290][16801:16801] CHIP:DMG: }, - [1666095741.184438][16801:16801] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_003E e=0 p=a - [1666095741.184521][16801:16801] CHIP:DMG: AccessControl: allowed - [1666095741.184594][16801:16801] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003E Command=0x0000_000A - [1666095741.184670][16801:16801] CHIP:ZCL: OpCreds: Received a RemoveFabric Command for FabricIndex 0x1 - [1666095741.185241][16801:16801] CHIP:EM: <<< [E:6250r M:228971067 (Ack:245528765)] (S) Msg TX to 1:000000000001B669 [CE46] --- Type 0000:10 (SecureChannel:StandaloneAck) - [1666095741.185342][16801:16801] CHIP:IN: (S) Sending msg 228971067 on secure session with LSID: 4135 - [1666095741.186065][16801:16801] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:33876 | 228971067 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 6773 / Exchange = 6250] - [1666095741.186161][16801:16801] CHIP:DMG: Header Flags = - [1666095741.186219][16801:16801] CHIP:DMG: { - [1666095741.186306][16801:16801] CHIP:DMG: Exchange (0x02) = - [1666095741.186364][16801:16801] CHIP:DMG: { - [1666095741.186423][16801:16801] CHIP:DMG: AckMsg = 245528765 - [1666095741.186478][16801:16801] CHIP:DMG: } - [1666095741.186550][16801:16801] CHIP:DMG: } - [1666095741.186605][16801:16801] CHIP:DMG: - [1666095741.186668][16801:16801] CHIP:DMG: Encrypted Payload (34 bytes) = - [1666095741.186723][16801:16801] CHIP:DMG: { - [1666095741.186771][16801:16801] CHIP:DMG: data = 00751a003bd2a50d9cd081c206fbd887adb06448183f58abac5fe703921498ff907c - [1666095741.186824][16801:16801] CHIP:DMG: buffer_ptr = 187651174355296 - [1666095741.186877][16801:16801] CHIP:DMG: } - [1666095741.186928][16801:16801] CHIP:DMG: - [1666095741.187240][16801:16801] CHIP:EM: Flushed pending ack for MessageCounter:245528765 on exchange 6250r - [1666095741.187395][16801:16801] CHIP:EVL: LogEvent event number: 0x0000000000000004 priority: 1, endpoint id: 0x0 cluster id: 0x0000_0028 event id: 0x2 Sys timestamp: 0x0000000006C6D251 - [1666095741.187518][16801:16801] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 34 DirtyGeneration = 0 - [1666095741.187600][16801:16801] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=v - [1666095741.187669][16801:16801] CHIP:DMG: AccessControl: allowed - [1666095741.188070][16801:16801] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=v - [1666095741.188139][16801:16801] CHIP:DMG: AccessControl: allowed - [1666095741.188261][16801:16801] CHIP:DMG: Fetched 1 events - [1666095741.188337][16801:16801] CHIP:DMG: Sending report (payload has 49 bytes)... - [1666095741.188418][16801:16801] CHIP:DMG: IM RH moving to [AwaitingReportResponse] - [1666095741.188911][16801:16801] CHIP:EM: <<< [E:46776i M:228971068] (S) Msg TX to 1:000000000001B669 [CE46] --- Type 0001:05 (IM:ReportData) - [1666095741.189010][16801:16801] CHIP:IN: (S) Sending msg 228971068 on secure session with LSID: 4135 - [1666095741.189659][16801:16801] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:33876 | 228971068 | [Interaction Model (1) / Report Data (0x05) / Session = 6773 / Exchange = 46776] - [1666095741.189755][16801:16801] CHIP:DMG: Header Flags = - [1666095741.189811][16801:16801] CHIP:DMG: { - [1666095741.189942][16801:16801] CHIP:DMG: Exchange (0x05) = - [1666095741.190003][16801:16801] CHIP:DMG: { - [1666095741.190053][16801:16801] CHIP:DMG: Initiator = true - [1666095741.190106][16801:16801] CHIP:DMG: NeedsAck = true - [1666095741.190159][16801:16801] CHIP:DMG: } - [1666095741.190229][16801:16801] CHIP:DMG: } - [1666095741.190278][16801:16801] CHIP:DMG: - [1666095741.190342][16801:16801] CHIP:DMG: Encrypted Payload (79 bytes) = - [1666095741.190396][16801:16801] CHIP:DMG: { - [1666095741.190444][16801:16801] CHIP:DMG: data = 00751a003cd2a50da5a4f51eb09603921cca9183807f8325f3787bbdbc974fe0c64b2797805fc13dd4fbfbbf46633bc2223ca949a306dc3946f2e3d1bfe9b63b6d027228362b95d169f9459cf7fecd - [1666095741.190505][16801:16801] CHIP:DMG: buffer_ptr = 187651174391040 - [1666095741.190559][16801:16801] CHIP:DMG: } - [1666095741.190604][16801:16801] CHIP:DMG: - [1666095741.190760][16801:16801] CHIP:DMG: ReportDataMessage = - [1666095741.190827][16801:16801] CHIP:DMG: { - [1666095741.190888][16801:16801] CHIP:DMG: SubscriptionId = 0x48ce933e, - [1666095741.190950][16801:16801] CHIP:DMG: EventReportIBs = - [1666095741.191025][16801:16801] CHIP:DMG: [ - [1666095741.191085][16801:16801] CHIP:DMG: EventReportIB = - [1666095741.191234][16801:16801] CHIP:DMG: { - [1666095741.191312][16801:16801] CHIP:DMG: EventDataIB = - [1666095741.191446][16801:16801] CHIP:DMG: { - [1666095741.191580][16801:16801] CHIP:DMG: EventPath = - [1666095741.191737][16801:16801] CHIP:DMG: { - [1666095741.191873][16801:16801] CHIP:DMG: Endpoint = 0x0, - [1666095741.191966][16801:16801] CHIP:DMG: Cluster = 0x28, - [1666095741.192047][16801:16801] CHIP:DMG: Event = 0x2, - [1666095741.192187][16801:16801] CHIP:DMG: }, - [1666095741.192270][16801:16801] CHIP:DMG: - [1666095741.192355][16801:16801] CHIP:DMG: EventNumber = 0x4, - [1666095741.192445][16801:16801] CHIP:DMG: PriorityLevel = 0x1, - [1666095741.192580][16801:16801] CHIP:DMG: SystemTimestamp = 0x6c6d251, - [1666095741.192719][16801:16801] CHIP:DMG: EventData = - [1666095741.192798][16801:16801] CHIP:DMG: { - [1666095741.192914][16801:16801] CHIP:DMG: 0x0 = 1, - [1666095741.193061][16801:16801] CHIP:DMG: }, - [1666095741.193206][16801:16801] CHIP:DMG: }, - [1666095741.193333][16801:16801] CHIP:DMG: - [1666095741.193395][16801:16801] CHIP:DMG: }, - [1666095741.193569][16801:16801] CHIP:DMG: - [1666095741.193636][16801:16801] CHIP:DMG: ], - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BINFO_3_1.yaml b/src/app/tests/suites/certification/Test_TC_BINFO_3_1.yaml new file mode 100644 index 00000000000000..3620ac41c6e17c --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_BINFO_3_1.yaml @@ -0,0 +1,97 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 12.3.3. [TC-BINFO-3.1] Appearance Attribute DUT as Server + +PICS: + - BINFO.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: TH reads ProductAppearance from the DUT." + PICS: BINFO.S.A0014 + verification: | + ./chip-tool basicinformation read product-appearance 1 0 + + On TH Verify that, TH reads ProductAppearance attribute from the DUT successfully and the value is in ProductAppearanceStruct Finish value is in range 0-5 + + + [1685008885.082338][143325:143327] CHIP:DMG: } + [1685008885.082831][143325:143327] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0014 DataVersion: 106877633 + [1685008885.083153][143325:143327] CHIP:TOO: ProductAppearance: { + [1685008885.083160][143325:143327] CHIP:TOO: Finish: 2 + [1685008885.083162][143325:143327] CHIP:TOO: PrimaryColor: 5 + [1685008885.083164][143325:143327] CHIP:TOO: } + disabled: true + + - label: "Step 2: TH reads ProductAppearance from the DUT." + PICS: BINFO.S.A0014 + verification: | + ./chip-tool basicinformation read product-appearance 1 0 + + On TH Verify that, TH reads ProductAppearance attribute from the DUT successfully and the value is in ProductAppearanceStruct PrimaryColor is in range 0-20 + + + [1685008885.082338][143325:143327] CHIP:DMG: } + [1685008885.082831][143325:143327] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0014 DataVersion: 106877633 + [1685008885.083153][143325:143327] CHIP:TOO: ProductAppearance: { + [1685008885.083160][143325:143327] CHIP:TOO: Finish: 2 + [1685008885.083162][143325:143327] CHIP:TOO: PrimaryColor: 5 + [1685008885.083164][143325:143327] CHIP:TOO: } + disabled: true + + - label: "Step 3: TH reads ProductAppearance from the DUT." + PICS: BINFO.S.A0014 + verification: | + Vendor specific test-step + + Below is an example log (chip-tool) by assuming the PIXIT.BINFO.Finish is satin(2). So This should be verified by the vendor as per the PIXIT values provided. + + ./chip-tool basicinformation read product-appearance 1 0 + + On TH Verify that, TH reads ProductAppearance attribute from the DUT successfully + + + [1685008885.082338][143325:143327] CHIP:DMG: } + [1685008885.082831][143325:143327] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0014 DataVersion: 106877633 + [1685008885.083153][143325:143327] CHIP:TOO: ProductAppearance: { + [1685008885.083160][143325:143327] CHIP:TOO: Finish: 2 + [1685008885.083162][143325:143327] CHIP:TOO: PrimaryColor: 5 + [1685008885.083164][143325:143327] CHIP:TOO: } + disabled: true + + - label: "Step 4: TH reads ProductAppearance from the DUT." + PICS: BINFO.S.A0014 + verification: | + Vendor specific test-step + + Below is an example log (chip-tool) by assuming the PIXIT.BINFO.PrimaryColor is purple(5). So This should be verified by the vendor as per the PIXIT values provided. + + ./chip-tool basicinformation read product-appearance 1 0 + + On TH Verify that, TH reads ProductAppearance attribute from the DUT successfully + + + [1685008885.082338][143325:143327] CHIP:DMG: } + [1685008885.082831][143325:143327] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0014 DataVersion: 106877633 + [1685008885.083153][143325:143327] CHIP:TOO: ProductAppearance: { + [1685008885.083160][143325:143327] CHIP:TOO: Finish: 2 + [1685008885.083162][143325:143327] CHIP:TOO: PrimaryColor: 5 + [1685008885.083164][143325:143327] CHIP:TOO: } + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BOOL_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BOOL_2_2.yaml index 208ce792d2d204..4a916e5aecbb30 100644 --- a/src/app/tests/suites/certification/Test_TC_BOOL_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BOOL_2_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 68.2.2. [TC-BOOL-2.2] Primary Functionality with Server as DUT +name: 68.2.2. [TC-BOOL-2.2] Primary functionality with server as DUT PICS: - BOOL.S @@ -29,45 +29,48 @@ tests: This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command disabled: true - - label: "Commission DUT to TH" + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." verification: | disabled: true - - label: "Bring the DUT into a state so StateValue is FALSE" + - label: "Step 2a: Bring the DUT into a state so StateValue is FALSE." PICS: BOOL.M.ManuallyControlled && BOOL.S.A0000 verification: | Manual operation disabled: true - - label: "TH reads the StateValue attribute from the DUT" + - label: "Step 2b: TH reads the StateValue attribute from the DUT." PICS: BOOL.M.ManuallyControlled && BOOL.S.A0000 verification: | ./chip-tool booleanstate read state-value 1 1 - On TH(chip-tool), verify the StateValue value as FALSE + Verify the StateValue value is FALSE On TH(chip-tool), below is the sample log provided for the raspi platform [1646118838.087500][3279:3284] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0045 Attribute 0x0000_0000DataVersion: 2127727071 [1646118838.087536][3279:3284] CHIP:TOO: StateValue: FALSE disabled: true - - label: "Bring the DUT into a state so StateValue is TRUE" + - label: "Step 3a: Bring the DUT into a state so StateValue is TRUE." PICS: BOOL.M.ManuallyControlled && BOOL.S.A0000 verification: | Manual operation disabled: true - - label: "TH reads the StateValue attribute from the DUT" + - label: "Step 3b: TH reads the StateValue attribute from the DUT." PICS: BOOL.M.ManuallyControlled && BOOL.S.A0000 verification: | - On TH(chip-tool), verify the StateValue value as TRUE ./chip-tool booleanstate read state-value 1 1 + Verify the StateValue value is TRUE On TH(chip-tool), below is the sample log provided for the raspi platform + [1646118838.087500][3279:3284] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0045 Attribute 0x0000_0000DataVersion: 2127727071 [1646118838.087536][3279:3284] CHIP:TOO: StateValue: TRUE disabled: true - - label: "Set up subscription to StateChange event" + - label: "Step 4a: Set up subscription to StateChange event." PICS: BOOL.M.ManuallyControlled && BOOL.S.E00 && BOOL.S.A0000 verification: | Need an SDK implementation required @@ -80,30 +83,30 @@ tests: booleanstate subscribe-event state-change 1 100 1 1 --is-urgent true disabled: true - - label: "Bring the DUT into a state so StateValue is FALSE" + - label: "Step 4b: Bring the DUT into a state so StateValue is FALSE." PICS: BOOL.M.ManuallyControlled && BOOL.S.E00 && BOOL.S.A0000 verification: | - On TH(chip-tool), verify the StateValue value as FALSE + Verify the StateValue value is FALSE On TH(chip-tool), below is the sample log provided for the raspi platform disabled: true - - label: "TH reads the StateValue attribute from the DUT" + - label: "Step 4c: TH reads the StateValue attribute from the DUT." PICS: BOOL.M.ManuallyControlled && BOOL.S.E00 && BOOL.S.A0000 verification: | booleanstate read state-value 1 1 - On TH(chip-tool), verify the StateValue value as FALSE + Verify the StateValue value is FALSE On TH(chip-tool), below is the sample log provided for the raspi platform disabled: true - - label: "Bring the DUT into a state so StateValue is TRUE" + - label: "Step 4d: Bring the DUT into a state so StateValue is TRUE." PICS: BOOL.M.ManuallyControlled && BOOL.S.E00 && BOOL.S.A0000 verification: | - On TH(chip-tool), verify the StateValue value as TRUE + Verify the StateValue value is TRUE On TH(chip-tool), below is the sample log provided for the raspi platform disabled: true - - label: "TH reads the StateValue attribute from the DUT" + - label: "Step 4e: TH reads the StateValue attribute from the DUT." PICS: BOOL.M.ManuallyControlled && BOOL.S.E00 && BOOL.S.A0000 verification: | booleanstate read state-value 1 1 - On TH(chip-tool), verify the StateValue value as TRUE + Verify the StateValue value is TRUE On TH(chip-tool), below is the sample log provided for the raspi platform disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml index 450b804aca1489..e742a2a98e52a5 100644 --- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml @@ -38,8 +38,8 @@ tests: disabled: true - label: - "Reboot the DUT (i.e. restart by power cycle, not by making it factory - new) TH receives the StartUp event from DUT" + "Step 1: Reboot the DUT (i.e. restart by power cycle, not by making it + factory new) TH receives the StartUp event from DUT" PICS: BRBINFO.S.E00 verification: | StartUp is an optional Event - @@ -50,8 +50,8 @@ tests: disabled: true - label: - "Make the device on the bridged endpoint unreachable across the - bridge, such that the Reachable attribute changes, in a + "Step 2: Make the device on the bridged endpoint unreachable across + the bridge, such that the Reachable attribute changes, in a manufacturer-specific way, such as powering off or otherwise disabling the bridged device or the connectivity to it." PICS: BRBINFO.S.E03 @@ -73,7 +73,8 @@ tests: [1659441193.443331][2392:2397] CHIP:EM: Piggybacking Ack for MessageCounter:194624180 on exchange: 18196r disabled: true - - label: "TH subscribes to the shutdown event on the DUT. Shutdown DUT." + - label: + "Step 3: TH subscribes to the shutdown event on the DUT. Shutdown DUT." PICS: BRBINFO.S.E01 verification: | ShutDown is an optional Event - diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml deleted file mode 100644 index 4df4f21276c733..00000000000000 --- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml +++ /dev/null @@ -1,487 +0,0 @@ -# Copyright (c) 2021 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default - -name: 3.2.3. [TC-BRBINFO-2.3] Attributes [DUT-Client] - -PICS: - - BRBINFO.C - -config: - nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 - -tests: - - label: "Note" - verification: | - For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. - disabled: true - - - label: "Precondition" - verification: | - 1. Commission TH to DUT - disabled: true - - - label: "DUT reads VendorName from the TH" - PICS: BRBINFO.C.A0001 - verification: | - ./chip-tool bridgeddevicebasicinformation read vendor-name 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1662483091.813322][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483091.813361][6721:6721] CHIP:DMG: { - [1662483091.813393][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483091.813431][6721:6721] CHIP:DMG: [ - [1662483091.813467][6721:6721] CHIP:DMG: AttributePathIB = - [1662483091.813507][6721:6721] CHIP:DMG: { - [1662483091.813548][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483091.813594][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483091.813641][6721:6721] CHIP:DMG: Attribute = 0x0000_0001, - [1662483091.813684][6721:6721] CHIP:DMG: } - [1662483091.813725][6721:6721] CHIP:DMG: - [1662483091.813762][6721:6721] CHIP:DMG: ], - [1662483091.813803][6721:6721] CHIP:DMG: - [1662483091.813841][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483091.813878][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483091.813912][6721:6721] CHIP:DMG: }, - [1662483091.814011][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: "DUT reads VendorID from the TH" - PICS: BRBINFO.C.A0002 - verification: | - ./chip-tool bridgeddevicebasicinformation read vendor-id 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1662483142.830377][6721:6721] CHIP:IM: Received Read request - [1662483142.830459][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483142.830487][6721:6721] CHIP:DMG: { - [1662483142.830510][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483142.830553][6721:6721] CHIP:DMG: [ - [1662483142.830578][6721:6721] CHIP:DMG: AttributePathIB = - [1662483142.830616][6721:6721] CHIP:DMG: { - [1662483142.830650][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483142.830690][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483142.830728][6721:6721] CHIP:DMG: Attribute = 0x0000_0002, - [1662483142.830756][6721:6721] CHIP:DMG: } - [1662483142.830792][6721:6721] CHIP:DMG: - [1662483142.830818][6721:6721] CHIP:DMG: ], - [1662483142.830856][6721:6721] CHIP:DMG: - [1662483142.830883][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483142.830916][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483142.830940][6721:6721] CHIP:DMG: }, - [1662483142.831024][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: "DUT reads ProductName from the TH" - PICS: BRBINFO.C.A0003 - verification: | - ./chip-tool bridgeddevicebasicinformation read product-name 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1662483164.120156][6721:6721] CHIP:IM: Received Read request - [1662483164.120237][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483164.120264][6721:6721] CHIP:DMG: { - [1662483164.120286][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483164.120312][6721:6721] CHIP:DMG: [ - [1662483164.120336][6721:6721] CHIP:DMG: AttributePathIB = - [1662483164.120364][6721:6721] CHIP:DMG: { - [1662483164.120391][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483164.120426][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483164.120458][6721:6721] CHIP:DMG: Attribute = 0x0000_0003, - [1662483164.120487][6721:6721] CHIP:DMG: } - [1662483164.120515][6721:6721] CHIP:DMG: - [1662483164.120540][6721:6721] CHIP:DMG: ], - [1662483164.120568][6721:6721] CHIP:DMG: - [1662483164.120594][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483164.120619][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483164.120642][6721:6721] CHIP:DMG: }, - [1662483164.120713][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483164.120803][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662483164.120834][6721:6721] CHIP:DMG: Cluster 39, Attribute 3 is dirty - disabled: true - - - label: "DUT reads NodeLabel from the TH" - PICS: BRBINFO.C.A0005 - verification: | - ./chip-tool bridgeddevicebasicinformation read node-label 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1678082556.298595][4469:4469] CHIP:IM: Received Read request - [1678082556.298708][4469:4469] CHIP:DMG: ReadRequestMessage = - [1678082556.298741][4469:4469] CHIP:DMG: { - [1678082556.298765][4469:4469] CHIP:DMG: AttributePathIBs = - [1678082556.298807][4469:4469] CHIP:DMG: [ - [1678082556.298834][4469:4469] CHIP:DMG: AttributePathIB = - [1678082556.298867][4469:4469] CHIP:DMG: { - [1678082556.298899][4469:4469] CHIP:DMG: Endpoint = 0x3, - [1678082556.298933][4469:4469] CHIP:DMG: Cluster = 0x39, - [1678082556.298966][4469:4469] CHIP:DMG: Attribute = 0x0000_0005, - [1678082556.298998][4469:4469] CHIP:DMG: } - [1678082556.299030][4469:4469] CHIP:DMG: - [1678082556.299059][4469:4469] CHIP:DMG: ], - [1678082556.299089][4469:4469] CHIP:DMG: - [1678082556.299118][4469:4469] CHIP:DMG: isFabricFiltered = true, - [1678082556.299145][4469:4469] CHIP:DMG: InteractionModelRevision = 1 - [1678082556.299171][4469:4469] CHIP:DMG: }, - [1678082556.299247][4469:4469] CHIP:DMG: IM RH moving to [GeneratingReports] - [1678082556.299380][4469:4469] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1678082556.299413][4469:4469] CHIP:DMG: Cluster 39, Attribute 5 is dirty - disabled: true - - - label: "DUT reads HardwareVersion from the TH" - PICS: BRBINFO.C.A0007 - verification: | - ./chip-tool bridgeddevicebasicinformation read hardware-version 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1662483240.584273][6721:6721] CHIP:IM: Received Read request - [1662483240.584351][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483240.584389][6721:6721] CHIP:DMG: { - [1662483240.584411][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483240.584437][6721:6721] CHIP:DMG: [ - [1662483240.584470][6721:6721] CHIP:DMG: AttributePathIB = - [1662483240.584500][6721:6721] CHIP:DMG: { - [1662483240.584539][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483240.584570][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483240.584611][6721:6721] CHIP:DMG: Attribute = 0x0000_0007, - [1662483240.584648][6721:6721] CHIP:DMG: } - [1662483240.584679][6721:6721] CHIP:DMG: - [1662483240.584713][6721:6721] CHIP:DMG: ], - [1662483240.584743][6721:6721] CHIP:DMG: - [1662483240.584780][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483240.584805][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483240.584837][6721:6721] CHIP:DMG: }, - [1662483240.584919][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483240.585010][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - disabled: true - - - label: "DUT reads HardwareVersionString from the TH" - PICS: BRBINFO.C.A0008 - verification: | - ./chip-tool bridgeddevicebasicinformation read hardware-version-string 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1662483260.814729][6721:6721] CHIP:IM: Received Read request - [1662483260.814805][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483260.814843][6721:6721] CHIP:DMG: { - [1662483260.814872][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483260.814903][6721:6721] CHIP:DMG: [ - [1662483260.814928][6721:6721] CHIP:DMG: AttributePathIB = - [1662483260.814955][6721:6721] CHIP:DMG: { - [1662483260.814983][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483260.815022][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483260.815063][6721:6721] CHIP:DMG: Attribute = 0x0000_0008, - [1662483260.815091][6721:6721] CHIP:DMG: } - [1662483260.815129][6721:6721] CHIP:DMG: - [1662483260.815156][6721:6721] CHIP:DMG: ], - [1662483260.815192][6721:6721] CHIP:DMG: - [1662483260.815218][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483260.815252][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483260.815275][6721:6721] CHIP:DMG: }, - [1662483260.815364][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483260.815454][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662483260.815483][6721:6721] CHIP:DMG: Cluster 39, Attribute 8 is dirty - disabled: true - - - label: "DUT reads SoftwareVersion from the TH" - PICS: BRBINFO.C.A0009 - verification: | - ./chip-tool bridgeddevicebasicinformation read software-version 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1662483282.272696][6721:6721] CHIP:IM: Received Read request - [1662483282.272777][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483282.272805][6721:6721] CHIP:DMG: { - [1662483282.272830][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483282.272866][6721:6721] CHIP:DMG: [ - [1662483282.272891][6721:6721] CHIP:DMG: AttributePathIB = - [1662483282.272920][6721:6721] CHIP:DMG: { - [1662483282.272949][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483282.272978][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483282.273007][6721:6721] CHIP:DMG: Attribute = 0x0000_0009, - [1662483282.273036][6721:6721] CHIP:DMG: } - [1662483282.273064][6721:6721] CHIP:DMG: - [1662483282.273089][6721:6721] CHIP:DMG: ], - [1662483282.273118][6721:6721] CHIP:DMG: - [1662483282.273144][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483282.273169][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483282.273192][6721:6721] CHIP:DMG: }, - [1662483282.273267][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483282.273361][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662483282.273392][6721:6721] CHIP:DMG: Cluster 39, Attribute 9 is dirty - disabled: true - - - label: "DUT reads SoftwareVersionString from the TH" - PICS: BRBINFO.C.A000a - verification: | - ./chip-tool bridgeddevicebasicinformation read software-version-string 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1662483301.552473][6721:6721] CHIP:IM: Received Read request - [1662483301.552587][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483301.552630][6721:6721] CHIP:DMG: { - [1662483301.552666][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483301.552709][6721:6721] CHIP:DMG: [ - [1662483301.552748][6721:6721] CHIP:DMG: AttributePathIB = - [1662483301.552796][6721:6721] CHIP:DMG: { - [1662483301.552842][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483301.552893][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483301.552946][6721:6721] CHIP:DMG: Attribute = 0x0000_000A, - [1662483301.552992][6721:6721] CHIP:DMG: } - [1662483301.553038][6721:6721] CHIP:DMG: - [1662483301.553079][6721:6721] CHIP:DMG: ], - [1662483301.553125][6721:6721] CHIP:DMG: - [1662483301.553168][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483301.553208][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483301.553246][6721:6721] CHIP:DMG: }, - [1662483301.553352][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483301.553468][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662483301.553513][6721:6721] CHIP:DMG: Cluster 39, Attribute a is dirty - disabled: true - - - label: "DUT reads ManufacturingDate from the TH" - PICS: BRBINFO.C.A000b - verification: | - ./chip-tool bridgeddevicebasicinformation read manufacturing-date 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1662483324.189011][6721:6721] CHIP:IM: Received Read request - [1662483324.189095][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483324.189123][6721:6721] CHIP:DMG: { - [1662483324.189145][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483324.189170][6721:6721] CHIP:DMG: [ - [1662483324.189194][6721:6721] CHIP:DMG: AttributePathIB = - [1662483324.189222][6721:6721] CHIP:DMG: { - [1662483324.189250][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483324.189284][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483324.189317][6721:6721] CHIP:DMG: Attribute = 0x0000_000B, - [1662483324.189347][6721:6721] CHIP:DMG: } - [1662483324.189376][6721:6721] CHIP:DMG: - [1662483324.189401][6721:6721] CHIP:DMG: ], - [1662483324.189429][6721:6721] CHIP:DMG: - [1662483324.189455][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483324.189479][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483324.189502][6721:6721] CHIP:DMG: }, - [1662483324.189575][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483324.189665][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = - disabled: true - - - label: "DUT reads PartNumber from the TH" - PICS: BRBINFO.C.A000c - verification: | - ./chip-tool bridgeddevicebasicinformation read part-number 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1662483344.709130][6721:6721] CHIP:IM: Received Read request - [1662483344.709209][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483344.709236][6721:6721] CHIP:DMG: { - [1662483344.709257][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483344.709283][6721:6721] CHIP:DMG: [ - [1662483344.709307][6721:6721] CHIP:DMG: AttributePathIB = - [1662483344.709341][6721:6721] CHIP:DMG: { - [1662483344.709371][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483344.709407][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483344.709439][6721:6721] CHIP:DMG: Attribute = 0x0000_000C, - [1662483344.709468][6721:6721] CHIP:DMG: } - [1662483344.709496][6721:6721] CHIP:DMG: - [1662483344.709523][6721:6721] CHIP:DMG: ], - [1662483344.709551][6721:6721] CHIP:DMG: - [1662483344.709576][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483344.709603][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483344.709626][6721:6721] CHIP:DMG: }, - [1662483344.709697][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483344.709776][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662483344.709805][6721:6721] CHIP:DMG: Cluster 39, Attribute c is dirty - disabled: true - - - label: "DUT reads ProductURL from the TH" - PICS: BRBINFO.C.A000d - verification: | - ./chip-tool bridgeddevicebasicinformation read product-url 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1662483368.089998][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483368.090026][6721:6721] CHIP:DMG: { - [1662483368.090047][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483368.090100][6721:6721] CHIP:DMG: [ - [1662483368.090126][6721:6721] CHIP:DMG: AttributePathIB = - [1662483368.090154][6721:6721] CHIP:DMG: { - [1662483368.090182][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483368.090214][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483368.090244][6721:6721] CHIP:DMG: Attribute = 0x0000_000D, - [1662483368.090272][6721:6721] CHIP:DMG: } - [1662483368.090299][6721:6721] CHIP:DMG: - [1662483368.090324][6721:6721] CHIP:DMG: ], - [1662483368.090352][6721:6721] CHIP:DMG: - [1662483368.090378][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483368.090403][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483368.090426][6721:6721] CHIP:DMG: }, - [1662483368.090499][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483368.090578][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662483368.090607][6721:6721] CHIP:DMG: Cluster 39, Attribute d is dirty - disabled: true - - - label: "DUT reads ProductLabel from the TH" - PICS: BRBINFO.C.A000e - verification: | - ./chip-tool bridgeddevicebasicinformation read product-label 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1662483390.848183][6721:6721] CHIP:IM: Received Read request - [1662483390.848263][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483390.848289][6721:6721] CHIP:DMG: { - [1662483390.848311][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483390.848344][6721:6721] CHIP:DMG: [ - [1662483390.848368][6721:6721] CHIP:DMG: AttributePathIB = - [1662483390.848395][6721:6721] CHIP:DMG: { - [1662483390.848423][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483390.848454][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483390.848488][6721:6721] CHIP:DMG: Attribute = 0x0000_000E, - [1662483390.848517][6721:6721] CHIP:DMG: } - [1662483390.848546][6721:6721] CHIP:DMG: - [1662483390.848573][6721:6721] CHIP:DMG: ], - [1662483390.848601][6721:6721] CHIP:DMG: - [1662483390.848627][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483390.848652][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483390.848675][6721:6721] CHIP:DMG: }, - [1662483390.848745][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - disabled: true - - - label: "DUT reads SerialNumber from the TH" - PICS: BRBINFO.C.A000f - verification: | - ./chip-tool bridgeddevicebasicinformation read serial-number 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - - [1662483412.129986][6721:6721] CHIP:IM: Received Read request - [1662483412.130062][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483412.130088][6721:6721] CHIP:DMG: { - [1662483412.130134][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483412.130162][6721:6721] CHIP:DMG: [ - [1662483412.130186][6721:6721] CHIP:DMG: AttributePathIB = - [1662483412.130214][6721:6721] CHIP:DMG: { - [1662483412.130242][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483412.130273][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483412.130304][6721:6721] CHIP:DMG: Attribute = 0x0000_000F, - [1662483412.130333][6721:6721] CHIP:DMG: } - [1662483412.130361][6721:6721] CHIP:DMG: - [1662483412.130386][6721:6721] CHIP:DMG: ], - [1662483412.130413][6721:6721] CHIP:DMG: - [1662483412.130439][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483412.130464][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483412.130487][6721:6721] CHIP:DMG: }, - [1662483412.130558][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483412.130636][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662483412.130665][6721:6721] CHIP:DMG: Cluster 39, Attribute f is dirty - disabled: true - - - label: "DUT reads Reachable from the TH" - PICS: BRBINFO.C.A0011 - verification: | - ./chip-tool bridgeddevicebasicinformation read reachable 1 3 - - Verify ReadRequestMessage is displayed on TH(bridge-app) Log - [1674815846.289405][16608:16608] CHIP:DMG: ReportDataMessage = - [1674815846.289407][16608:16608] CHIP:DMG: { - [1674815846.289409][16608:16608] CHIP:DMG: AttributeReportIBs = - [1674815846.289413][16608:16608] CHIP:DMG: [ - [1674815846.289415][16608:16608] CHIP:DMG: AttributeReportIB = - [1674815846.289419][16608:16608] CHIP:DMG: { - [1674815846.289422][16608:16608] CHIP:DMG: AttributeDataIB = - [1674815846.289425][16608:16608] CHIP:DMG: { - [1674815846.289427][16608:16608] CHIP:DMG: DataVersion = 0xf6524906, - [1674815846.289431][16608:16608] CHIP:DMG: AttributePathIB = - [1674815846.289434][16608:16608] CHIP:DMG: { - [1674815846.289436][16608:16608] CHIP:DMG: Endpoint = 0x3, - [1674815846.289439][16608:16608] CHIP:DMG: Cluster = 0x39, - [1674815846.289441][16608:16608] CHIP:DMG: Attribute = 0x0000_0011, - [1674815846.289446][16608:16608] CHIP:DMG: } - [1674815846.289449][16608:16608] CHIP:DMG: - [1674815846.289451][16608:16608] CHIP:DMG: Data = true, - [1674815846.289454][16608:16608] CHIP:DMG: }, - [1674815846.289457][16608:16608] CHIP:DMG: - [1674815846.289459][16608:16608] CHIP:DMG: }, - [1674815846.289464][16608:16608] CHIP:DMG: - [1674815846.289465][16608:16608] CHIP:DMG: ], - [1674815846.289468][16608:16608] CHIP:DMG: - [1674815846.289471][16608:16608] CHIP:DMG: SuppressResponse = true, - [1674815846.289473][16608:16608] CHIP:DMG: InteractionModelRevision = 1 - [1674815846.289475][16608:16608] CHIP:DMG: } - [1674815846.289477][16608:16608] CHIP:DMG: - disabled: true - - - label: "DUT reads UniqueID from the TH" - PICS: BRBINFO.C.A0012 - verification: | - ./chip-tool bridgeddevicebasicinformation read unique-id 1 3 - - Optional Attribute - If it is supported, then in TH(bridge-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE - - Example Log: - [1662483460.016076][6721:6721] CHIP:IM: Received Read request - [1662483460.016164][6721:6721] CHIP:DMG: ReadRequestMessage = - [1662483460.016192][6721:6721] CHIP:DMG: { - [1662483460.016214][6721:6721] CHIP:DMG: AttributePathIBs = - [1662483460.016240][6721:6721] CHIP:DMG: [ - [1662483460.016264][6721:6721] CHIP:DMG: AttributePathIB = - [1662483460.016298][6721:6721] CHIP:DMG: { - [1662483460.016335][6721:6721] CHIP:DMG: Endpoint = 0x3, - [1662483460.016368][6721:6721] CHIP:DMG: Cluster = 0x39, - [1662483460.016399][6721:6721] CHIP:DMG: Attribute = 0x0000_0012, - [1662483460.016429][6721:6721] CHIP:DMG: } - [1662483460.016457][6721:6721] CHIP:DMG: - [1662483460.016482][6721:6721] CHIP:DMG: ], - [1662483460.016510][6721:6721] CHIP:DMG: - [1662483460.016536][6721:6721] CHIP:DMG: isFabricFiltered = true, - [1662483460.016561][6721:6721] CHIP:DMG: InteractionModelRevision = 1 - [1662483460.016584][6721:6721] CHIP:DMG: }, - [1662483460.016656][6721:6721] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662483460.016752][6721:6721] CHIP:DMG: Building Reports for ReadHandler with LastReportGenera - disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_3_1.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_3_1.yaml new file mode 100644 index 00000000000000..76c10a9784b9f6 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_3_1.yaml @@ -0,0 +1,103 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 139.2.4. [TC-BRBINFO-3.1] Appearance Attribute DUT as Server + +PICS: + - BRBINFO.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Note" + verification: | + This test plan is derived from the test plan for the Basic Information cluster. + disabled: true + + - label: "Step 1: TH reads ProductAppearance from the DUT." + PICS: BRBINFO.S.A0014 + verification: | + ./chip-tool bridgeddevicebasicinformation read product-appearance 1 3 + + Via the TH (chip-tool), verify that the ProductAppearance attribute value is in ProductAppearanceStruct Finish value is in range 0-5. + + Current sample apps do not have this implementation. However, if the vendor has implemented it, the below response will be displayed. + + + [1685008885.082338][143325:143327] CHIP:DMG: } + [1685008885.082831][143325:143327] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0014 DataVersion: 106877633 + [1685008885.083153][143325:143327] CHIP:TOO: ProductAppearance: { + [1685008885.083160][143325:143327] CHIP:TOO: Finish: 2 + [1685008885.083162][143325:143327] CHIP:TOO: PrimaryColor: 5 + [1685008885.083164][143325:143327] CHIP:TOO: } + disabled: true + + - label: "Step 2: TH reads ProductAppearance from the DUT." + PICS: BRBINFO.S.A0014 + verification: | + ./chip-tool bridgeddevicebasicinformation read product-appearance 1 3 + + Via the TH (chip-tool), verify that the ProductAppearance attribute value is in ProductAppearanceStruct PrimaryColor is in range 0-20. + + Current sample apps do not have this implementation. However, if the vendor has implemented it, the below response will be displayed. + + [1685008885.082338][143325:143327] CHIP:DMG: } + [1685008885.082831][143325:143327] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0014 DataVersion: 106877633 + [1685008885.083153][143325:143327] CHIP:TOO: ProductAppearance: { + [1685008885.083160][143325:143327] CHIP:TOO: Finish: 2 + [1685008885.083162][143325:143327] CHIP:TOO: PrimaryColor: 5 + [1685008885.083164][143325:143327] CHIP:TOO: } + disabled: true + + - label: "Step 3: TH reads ProductAppearance from the DUT." + PICS: BRBINFO.S.A0014 + verification: | + Vendor specific test-step + + Below is an example log (chip-tool) by assuming the PIXIT.BRBINFO.Finish is satin(2). So This should be verified by the vendor as per the PIXIT values provided. + + ./chip-tool bridgeddevicebasicinformation read product-appearance 1 3 + + Via the TH (chip-tool), verify the TH reads ProductAppearance attribute from the DUT successfully. + + [1685008885.082338][143325:143327] CHIP:DMG: } + [1685008885.082831][143325:143327] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0014 DataVersion: 106877633 + [1685008885.083153][143325:143327] CHIP:TOO: ProductAppearance: { + [1685008885.083160][143325:143327] CHIP:TOO: Finish: 2 + [1685008885.083162][143325:143327] CHIP:TOO: PrimaryColor: 5 + [1685008885.083164][143325:143327] CHIP:TOO: } + disabled: true + + - label: "Step 4: TH reads ProductAppearance from the DUT." + PICS: BRBINFO.S.A0014 + verification: | + Vendor specific test-step + + Below is an example log (chip-tool) by assuming the PIXIT.BRBINFO.PrimaryColor is purple(5). So This should be verified by the vendor as per the PIXIT values provided. + + ./chip-tool bridgeddevicebasicinformation read product-appearance 1 3 + + Via the TH (chip-tool), verify the TH reads ProductAppearance attribute from the DUT successfully. + + [1685008885.082338][143325:143327] CHIP:DMG: } + [1685008885.082831][143325:143327] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0014 DataVersion: 106877633 + [1685008885.083153][143325:143327] CHIP:TOO: ProductAppearance: { + [1685008885.083160][143325:143327] CHIP:TOO: Finish: 2 + [1685008885.083162][143325:143327] CHIP:TOO: PrimaryColor: 5 + [1685008885.083164][143325:143327] CHIP:TOO: } + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BR_1.yaml b/src/app/tests/suites/certification/Test_TC_BR_1.yaml index 6b096d4b246bd6..82a7eb749d8565 100644 --- a/src/app/tests/suites/certification/Test_TC_BR_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_BR_1.yaml @@ -33,14 +33,13 @@ tests: disabled: true - label: - "Read attribute DeviceTypeList of the Descriptor cluster on endpoint 0" + "Step 1a: Read attribute DeviceTypeList of the Descriptor cluster on + endpoint 0" PICS: MCORE.BRIDGE verification: | ./chip-tool descriptor read device-type-list 1 0 - - - Verify this attribute contains device type Root Node (Type-22) in TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute contains device type Root Node (Type-22). [1666243894.570786][44943:44948] CHIP:DMG: } [1666243894.572001][44943:44948] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4030820095 @@ -51,12 +50,14 @@ tests: [1666243894.608126][44943:44948] CHIP:TOO: } disabled: true - - label: "Read attribute PartsList of the Descriptor cluster on endpoint 0" + - label: + "Step 1b: Read attribute PartsList of the Descriptor cluster on + endpoint 0" PICS: MCORE.BRIDGE verification: | ./chip-tool descriptor read parts-list 1 0 - Verify the endpoints listed in TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartList that contains list with 12 entries. [1657002201.045720][3893:3899] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3573910940 [1657002201.045841][3893:3899] CHIP:TOO: parts list: 12 entries @@ -75,7 +76,7 @@ tests: disabled: true - label: - "For each of the endpoints read in step 1b, read attribute + "Step 1c: For each of the endpoints read in step 1b, read attribute DeviceTypeList of the Descriptor cluster on that endpoint" PICS: MCORE.BRIDGE verification: | @@ -83,7 +84,7 @@ tests: ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 1. 1666244345.296680][44990:44995] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3968445751 [1666244345.296742][44990:44995] CHIP:TOO: DeviceTypeList: 1 entries @@ -94,7 +95,7 @@ tests: ./chip-tool descriptor read device-type-list 1 3 - Verify the DeviceTypeList entries with endpoint 3 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 3. [1666244839.544979][45200:45205] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1513076890 [1666244839.545006][45200:45205] CHIP:TOO: DeviceTypeList: 2 entries @@ -111,7 +112,7 @@ tests: ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 4. [1666244925.833459][45215:45220] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1944707282 [1666244925.833553][45215:45220] CHIP:TOO: DeviceTypeList: 2 entries @@ -127,7 +128,7 @@ tests: ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 5. [1666244984.115887][45249:45254] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1760060075 [1666244984.115918][45249:45254] CHIP:TOO: DeviceTypeList: 2 entries @@ -143,7 +144,7 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 6. [1666246675.944572][45787:45792] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3539120641 [1666246675.944625][45787:45792] CHIP:TOO: DeviceTypeList: 1 entries @@ -155,7 +156,7 @@ tests: ./chip-tool descriptor read device-type-list 1 7 - Verify the DeviceTypeList entries with endpoint 7 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 7. [1666246718.470591][45821:45826] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3285189124 [1666246718.470649][45821:45826] CHIP:TOO: DeviceTypeList: 1 entries @@ -167,7 +168,7 @@ tests: ./chip-tool descriptor read device-type-list 1 8 - Verify the DeviceTypeList entries with endpoint 8 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 8. [1666246775.067195][45834:45839] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3210151050 [1666246775.067256][45834:45839] CHIP:TOO: DeviceTypeList: 1 entries @@ -179,7 +180,7 @@ tests: ./chip-tool descriptor read device-type-list 1 9 - Verify the DeviceTypeList entries with endpoint 9 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 9. [1666246820.646933][45893:45898] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3716023031 [1666246820.647028][45893:45898] CHIP:TOO: DeviceTypeList: 1 entries @@ -191,7 +192,7 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 10. [1666246866.935280][45904:45909] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4193039876 [1666246866.935412][45904:45909] CHIP:TOO: DeviceTypeList: 2 entries @@ -206,7 +207,7 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 11. [1666246922.797443][45920:45925] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2632191905 [1666246922.797466][45920:45925] CHIP:TOO: DeviceTypeList: 2 entries @@ -222,7 +223,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 12. [1666246970.442284][45932:45937] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 494395813 [1666246970.442340][45932:45937] CHIP:TOO: DeviceTypeList: 2 entries @@ -238,7 +239,7 @@ tests: ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 13. [1666247013.621248][45940:45945] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1009438523 [1666247013.621381][45940:45945] CHIP:TOO: DeviceTypeList: 2 entries @@ -264,15 +265,15 @@ tests: disabled: true - label: - "Read attribute PartsList of the Descriptor cluster on endpoint found - in step 1c" + "Step 2a: Read attribute PartsList of the Descriptor cluster on + endpoint found in step 1c" PICS: MCORE.BRIDGE verification: | - Read attribute PartsList of the Descriptor cluster on endpoint found in step 1c + Read PartsList attribute of the Descriptor cluster on endpoint found in step 1c ./chip-tool descriptor read parts-list 1 1 - Verify the list contains 11 entries in TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartList attribute that contains 11 entries. [1657002810.697118][4121:4126] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3021853414 [1657002810.697276][4121:4126] CHIP:TOO: parts list: 11 entries @@ -290,17 +291,16 @@ tests: disabled: true - label: - "For each of the endpoints found in this PartsList attribute, read the - DeviceTypeList attribute in the Descriptor cluster on such endpoint, - and select those endpoints which have (at least) a device type of - Bridged Node in their DeviceTypeList" - PICS: MCORE.BRIDGE + "Step 2b: For each of the endpoints found in this PartsList attribute, + read the DeviceTypeList attribute in the Descriptor cluster on such + endpoint, and select those endpoints which have (at least) a device + type of Bridged Node in their DeviceTypeList" verification: | Verify device type has either Bridged node (0x0013), i.e., Type=19 in their DeviceTypeList ./chip-tool descriptor read device-type-list 1 3 - Verify the DeviceTypeList entries with endpoint 3 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 3. [1666248913.681607][46430:46435] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1513076890 [1666248913.681690][46430:46435] CHIP:TOO: DeviceTypeList: 2 entries @@ -315,7 +315,7 @@ tests: ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 4. [1666249581.063940][46547:46552] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1944707282 [1666249581.064029][46547:46552] CHIP:TOO: DeviceTypeList: 2 entries @@ -331,7 +331,7 @@ tests: ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 5. [1666249707.579997][46594:46599] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1760060075 [1666249707.580060][46594:46599] CHIP:TOO: DeviceTypeList: 2 entries @@ -347,7 +347,7 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 6. [1666249778.844305][46630:46635] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3539120641 [1666249778.844394][46630:46635] CHIP:TOO: DeviceTypeList: 1 entries @@ -359,7 +359,7 @@ tests: ./chip-tool descriptor read device-type-list 1 7 - Verify the DeviceTypeList entries with endpoint 7 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 7. [1666249851.031384][46650:46655] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3285189124 [1666249851.031468][46650:46655] CHIP:TOO: DeviceTypeList: 1 entries @@ -371,7 +371,7 @@ tests: ./chip-tool descriptor read device-type-list 1 8 - Verify the DeviceTypeList entries with endpoint 8 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 8. [1666249888.738349][46686:46691] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3210151050 [1666249888.738375][46686:46691] CHIP:TOO: DeviceTypeList: 1 entries @@ -383,7 +383,7 @@ tests: ./chip-tool descriptor read device-type-list 1 9 - Verify the DeviceTypeList entries with endpoint 9 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 9. [1666249928.585516][46696:46701] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3716023031 [1666249928.585580][46696:46701] CHIP:TOO: DeviceTypeList: 1 entries @@ -395,7 +395,7 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 10. [1666250003.848251][46707:46712] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4193039876 [1666250003.848342][46707:46712] CHIP:TOO: DeviceTypeList: 2 entries @@ -411,7 +411,7 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 11. [1666250205.808189][46800:46805] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2632191905 [1666250205.808274][46800:46805] CHIP:TOO: DeviceTypeList: 2 entries @@ -427,7 +427,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 12. [1666250398.116886][46821:46826] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 494395813 [1666250398.116974][46821:46826] CHIP:TOO: DeviceTypeList: 2 entries @@ -443,7 +443,7 @@ tests: ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 13. [1666250472.105194][46833:46838] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1009438523 [1666250472.105364][46833:46838] CHIP:TOO: DeviceTypeList: 2 entries @@ -458,37 +458,133 @@ tests: disabled: true - label: - "For each of the endpoints for the bridged devices found in step 2b, - perform the tests for Bridged Device Basic Information cluster" + "Step 3a: For each of the endpoints for the bridged devices found in + step 2b, read attribute PartsList of the Descriptor cluster." + PICS: MCORE.BRIDGE + verification: | + Read PartList of the Descriptor cluster for For each of the endpoints for the bridged devices: + + ./chip-tool descriptor read parts-list 1 3 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 3. + + [1657013905.333904][5805:5810] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 4168180 + [1657013905.333984][5805:5810] CHIP:TOO: parts list: 0 entries + + + ./chip-tool descriptor read parts-list 1 4 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 4. + + [1657014011.276060][5822:5827] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2935336058 + [1657014011.276141][5822:5827] CHIP:TOO: parts list: 0 entries + + + ./chip-tool descriptor read parts-list 1 5 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 5. + + [1657014034.298958][5829:5834] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3372622835 + [1657014034.299041][5829:5834] CHIP:TOO: parts list: 0 entries + + ./chip-tool descriptor read parts-list 1 6 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 6. + + [1657014056.893995][5847:5852] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1565587733 + [1657014056.894072][5847:5852] CHIP:TOO: parts list: 3 entries + [1657014056.894104][5847:5852] CHIP:TOO: [1]: 7 + [1657014056.894130][5847:5852] CHIP:TOO: [2]: 8 + [1657014056.894154][5847:5852] CHIP:TOO: [3]: 9 + + ./chip-tool descriptor read parts-list 1 7 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 7. + + [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 + [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries + + ./chip-tool descriptor read parts-list 1 8 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 8. + + [1663236558.589003][5550:5555] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 310844624 + [1663236558.589059][5550:5555] CHIP:TOO: PartsList: 0 entries + + + ./chip-tool descriptor read parts-list 1 9 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 9. + + [1663236593.607523][5556:5561] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3304459819 + [1663236593.607583][5556:5561] CHIP:TOO: PartsList: 0 entries + + + ./chip-tool descriptor read parts-list 1 10 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 10. + + [1663236642.682033][5565:5570] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2389378730 + [1663236642.682091][5565:5570] CHIP:TOO: PartsList: 0 entries + + + ./chip-tool descriptor read parts-list 1 11 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 11. + + [1663236682.900934][5573:5578] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3007496001 + [1663236682.900988][5573:5578] CHIP:TOO: PartsList: 0 entries + + + ./chip-tool descriptor read parts-list 1 12 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 12. + + [1663236715.610271][5579:5584] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2445783348 + [1663236715.610328][5579:5584] CHIP:TOO: PartsList: 0 entries + + + ./chip-tool descriptor read parts-list 1 13 + + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 13. + + [1663236752.985450][5590:5595] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 4223376445 + [1663236752.985512][5590:5595] CHIP:TOO: PartsList: 0 entries + disabled: true + + - label: + "Step 3b: For each of the endpoints for the bridged devices found in + step 2b, perform the tests for Bridged Device Basic Information + cluster" PICS: MCORE.BRIDGE verification: | For Bridged Device Basic Information cluster, ref the test plan (https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/bridged_device_basic_information.adoc) - ./chip-tool bridgeddevicebasicinformation read reachable 1 3 + ./chip-tool bridgeddevicebasicinformation read reachable 1 3 - Verify reachable attribute is read successfully in TH(chip-tool) Log + Via the TH (chip-tool), Verify the DUT reads reachable attribute successfully. [1657003614.269096][4564:4569] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0011 DataVersion: 1897994097 [1657003614.269155][4564:4569] CHIP:TOO: Reachable: TRUE ./chip-tool bridgeddevicebasicinformation read node-label 1 4 - Verify Node-label is read sucessfully in TH(chip-tool) Log + Via the TH (chip-tool), Verify the DUT reads Node-label attribute sucessfully. [1657003598.573764][4552:4557] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 3722118563 [1657003598.573811][4552:4557] CHIP:TOO: NodeLabel: TempSensor 1 disabled: true - label: - "For each of the endpoints found in step 2b, if a Power Source + "Step 4: For each of the endpoints found in step 2b, if a Power Source Configuration cluster is present on this endpoint, perform the tests for this Power Source Configuration cluster plus the tests for the Power Source clusters at the endpoint(s) which this Power Source Configuration cluster refers to" PICS: MCORE.BRIDGE && MCORE.BRIDGE.BatInfo verification: | - For Power Source Configuration and Power Source clusters, ref the test plan - Link1: https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/powersourceconfiguration.adoc Link2: https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/powersource.adoc + For Power Source Configuration and Power Source clusters, ref the test plan - Link1 Link2 None of the endpoints listed in step 2b supports Power Source Configuration cluster and Power Source cluster. @@ -498,16 +594,16 @@ tests: disabled: true - label: - "For each of the endpoints found in step 2b, from the DeviceTypeList - attribute in their Descriptor cluster, derive the (application) device - type(s) of the bridged device" + "Step 5: For each of the endpoints found in step 2b, from the + DeviceTypeList attribute in their Descriptor cluster, derive the + (application) device type(s) of the bridged device" PICS: MCORE.BRIDGE verification: | Verify the device-list attribute has devicetype application e.g., 0x0100 = 256(on/off light),0x0302=770( temperature sensor) ./chip-tool descriptor read device-type-list 1 3 - Verify the DeviceTypeList entries with endpoint 3 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 3. [1666250653.988384][46910:46915] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1513076890 [1666250653.988484][46910:46915] CHIP:TOO: DeviceTypeList: 2 entries @@ -521,10 +617,9 @@ tests: [1666250653.988715][46910:46915] CHIP:TOO: } - ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 4. [1666250817.223402][46942:46947] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1944707282 [1666250817.223467][46942:46947] CHIP:TOO: DeviceTypeList: 2 entries @@ -538,10 +633,9 @@ tests: [1666250817.223654][46942:46947] CHIP:TOO: } - ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 5. [1666250873.731351][46954:46959] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1760060075 [1666250873.731439][46954:46959] CHIP:TOO: DeviceTypeList: 2 entries @@ -557,7 +651,7 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 6. [1666777557.437994][150164:150169] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3270810303 [1666777557.438067][150164:150169] CHIP:TOO: DeviceTypeList: 1 entries @@ -569,7 +663,7 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 10. [1666777615.234902][150178:150183] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2077823451 [1666777615.235002][150178:150183] CHIP:TOO: DeviceTypeList: 2 entries @@ -585,7 +679,7 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 11. [1666777671.688839][150216:150221] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2814988377 [1666777671.688927][150216:150221] CHIP:TOO: DeviceTypeList: 2 entries @@ -600,7 +694,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 12. [1666777714.615379][150259:150264] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 312494071 [1666777714.615443][150259:150264] CHIP:TOO: DeviceTypeList: 2 entries @@ -616,7 +710,7 @@ tests: ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList entries with endpoint 13. [1666777780.917239][150295:150300] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2475792486 [1666777780.917356][150295:150300] CHIP:TOO: DeviceTypeList: 2 entries @@ -631,8 +725,8 @@ tests: disabled: true - label: - "From the list acquired in step 5, choose one of the bridged devices - which is an actuator (e.g. light, window covering)" + "Step 6a: From the list acquired in step 5, choose one of the bridged + devices which is an actuator (e.g. light, window covering)" PICS: MCORE.BRIDGE verification: | From Step 5 output , choose one of the device type and identify the device from the device library. @@ -640,27 +734,26 @@ tests: disabled: true - label: - "Read the state of this bridged device (through Matter), e.g. on/off, - brightness" + "Step 6b: Read the state of this bridged device (through Matter), e.g. + on/off, brightness" PICS: MCORE.BRIDGE verification: | ./chip-tool onoff read on-off 1 3 - Verify the state of this bridge device values match the actual state of the bridged device in TH(Chip-tool) log + Via the TH (chip-tool), Verify the On/Off state of this bridge device values match the actual state of the bridged device. [1657004454.213279][4792:4798] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303315 [1657004454.213319][4792:4798] CHIP:TOO: OnOff: FALSE disabled: true - label: - "Change the state of this bridged device (through Matter), e.g. change - its brightness or toggle its on/off state" + "Step 6c: Change the state of this bridged device (through Matter), + e.g. change its brightness or toggle its on/off state" PICS: MCORE.BRIDGE verification: | ./chip-tool onoff toggle 1 3 - - Verify state change response of the bridged device in TH(chip-tool) Log + Via the TH (chip-tool), Verify the SUCCESS response for On/Off state change response of the bridged device. [1657522278.539407][16698:16703] CHIP:DMG: { [1657522278.539447][16698:16703] CHIP:DMG: suppressResponse = false, @@ -694,21 +787,23 @@ tests: [1657522278.540981][16698:16703] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - - label: "Read the state of this bridged device (through Matter), as in 6b" + - label: + "Step 6d: Read the state of this bridged device (through Matter), as + in 6b" PICS: MCORE.BRIDGE verification: | ./chip-tool onoff read on-off 1 3 - Verify the value of onoff matches the value of onoff in step 6c in TH(chip-tool) Log + Via the TH (chip-tool), Verify the value of On/Off state matches the value of step 6c. [1657004565.254591][4804:4809] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303316 [1657004565.254635][4804:4809] CHIP:TOO: OnOff: TRUE disabled: true - label: - "From the list acquired in step 5, choose one of the bridged devices - which is a sensor (e.g. occupancy sensor, contact sensor, temperature - sensor)or switch" + "Step 7a: From the list acquired in step 5, choose one of the bridged + devices which is a sensor (e.g. occupancy sensor, contact sensor, + temperature sensor)or switch" PICS: MCORE.BRIDGE verification: | From Step 5 output , choose one of the sensor device type and identify the device from the device library @@ -716,13 +811,13 @@ tests: disabled: true - label: - "Read the state of this bridged device (through Matter), e.g. + "Step 7b: Read the state of this bridged device (through Matter), e.g. occupancy status, contact status, current temperature" PICS: MCORE.BRIDGE verification: | ./chip-tool temperaturemeasurement read measured-value 1 4 - Verify the state of the bridged device matches the actual physical state of the sensor in TH(chip-tool) Log + Via the TH (chip-tool), Verify the state of the bridged device matches the actual physical state of the sensor. [1659351487.005743][12201:12207] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0402 Attribute 0x0000_0000 DataVersion: 2406690152 [1659351487.005831][12201:12207] CHIP:TOO: MeasuredValue: 100 @@ -730,8 +825,8 @@ tests: disabled: true - label: - "Change the state of this sensor (e.g. cover the occupancy sensor, - open the contact sensor, heat the temperature sensor)" + "Step 7c: Change the state of this sensor (e.g. cover the occupancy + sensor, open the contact sensor, heat the temperature sensor)" PICS: MCORE.BRIDGE verification: | Press a key 't' on bridge-app to change the simulated temperature @@ -745,12 +840,13 @@ tests: [1659351537.116179][14237:14242] CHIP:DL: TempSensorDevice[Composed TempSensor 2]: New measurement="200" disabled: true - - label: "Read the state of this bridged device again, as in 7b" + - label: "Step 7d: Read the state of this bridged device again, as in 7b" PICS: MCORE.BRIDGE verification: | ./chip-tool temperaturemeasurement read measured-value 1 4 - Verify the state has changed and expect to get a different value than step 7b in TH(chip-tool) Log + Via the TH (chip-tool), Verify the state has changed and expect to get a different value than step 7b. + [1659351542.393349][12212:12217] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0402 Attribute 0x0000_0000 DataVersion: 2406690153 [1659351542.393429][12212:12217] CHIP:TOO: MeasuredValue: 200 [1659351542.393552][12212:12217] CHIP:EM: Sending Standalone Ack for MessageCounter:120981971 on exchange 25924i diff --git a/src/app/tests/suites/certification/Test_TC_BR_2.yaml b/src/app/tests/suites/certification/Test_TC_BR_2.yaml index 32481bf96243d0..5dbf11eb592b99 100644 --- a/src/app/tests/suites/certification/Test_TC_BR_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_BR_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.1.2. [TC-BR-2] Changing the set of Bridged Devices +name: 3.1.2. [TC-BR-2] Changing the set of Bridged Devices (DUT server) PICS: - MCORE.BRIDGE @@ -32,18 +32,18 @@ tests: disabled: true - label: - "Read PartsList and DeviceTypeList attributes of the Descriptor - cluster of endpoint 0 .For each endpoint listed in the PartsList - attribute of the Descriptor cluster of endpoint 0: read the PartsList - and DeviceTypeList attributes of the Descriptor cluster at that - endpoint" + "Step 1a: Read PartsList and DeviceTypeList attributes of the + Descriptor cluster of endpoint 0 .For each endpoint listed in the + PartsList attribute of the Descriptor cluster of endpoint 0: read the + PartsList and DeviceTypeList attributes of the Descriptor cluster at + that endpoint" PICS: MCORE.BRIDGE verification: | Read parts-list and device-list with endpoint 0, and for each of the endpoint listed for endpoint 0 read device-list and parts-list and verify the below log in TH ./chip-tool descriptor read parts-list 1 0 - Verify the PartsList attribute entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 0. [1657004688.484502][4828:4833] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3573910940 [1657004688.484597][4828:4833] CHIP:TOO: parts list: 12 entries @@ -62,7 +62,7 @@ tests: ./chip-tool descriptor read parts-list 1 1 - Verify the PartsList attribute entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 1. [1657013897.304642][5792:5797] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1583672815 [1657013897.304741][5792:5797] CHIP:TOO: parts list: 11 entries @@ -81,7 +81,7 @@ tests: ./chip-tool descriptor read parts-list 1 3 - Verify the PartsList attribute entries with endpoint 3 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 3. [1657013905.333904][5805:5810] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 4168180 [1657013905.333984][5805:5810] CHIP:TOO: parts list: 0 entries @@ -89,7 +89,7 @@ tests: ./chip-tool descriptor read parts-list 1 4 - Verify the PartsList attribute entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 4. [1657014011.276060][5822:5827] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2935336058 [1657014011.276141][5822:5827] CHIP:TOO: parts list: 0 entries @@ -97,14 +97,14 @@ tests: ./chip-tool descriptor read parts-list 1 5 - Verify the PartsList attribute entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 5. [1657014034.298958][5829:5834] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3372622835 [1657014034.299041][5829:5834] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 6 - Verify the PartsList attribute entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 6. [1657014056.893995][5847:5852] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1565587733 [1657014056.894072][5847:5852] CHIP:TOO: parts list: 3 entries @@ -114,14 +114,14 @@ tests: ./chip-tool descriptor read parts-list 1 7 - Verify the PartsList attribute entries with endpoint 7 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 7. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 8 - Verify the PartsList attribute entries with endpoint 8 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 8. [1663236558.589003][5550:5555] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 310844624 [1663236558.589059][5550:5555] CHIP:TOO: PartsList: 0 entries @@ -129,7 +129,7 @@ tests: ./chip-tool descriptor read parts-list 1 9 - Verify the PartsList attribute entries with endpoint 9 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 9. [1663236593.607523][5556:5561] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3304459819 [1663236593.607583][5556:5561] CHIP:TOO: PartsList: 0 entries @@ -137,7 +137,7 @@ tests: ./chip-tool descriptor read parts-list 1 10 - Verify the PartsList attribute entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 10. [1663236642.682033][5565:5570] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2389378730 [1663236642.682091][5565:5570] CHIP:TOO: PartsList: 0 entries @@ -145,7 +145,7 @@ tests: ./chip-tool descriptor read parts-list 1 11 - Verify the PartsList attribute entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 11. [1663236682.900934][5573:5578] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3007496001 [1663236682.900988][5573:5578] CHIP:TOO: PartsList: 0 entries @@ -153,7 +153,7 @@ tests: ./chip-tool descriptor read parts-list 1 12 - Verify the PartsList attribute entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 12. [1663236715.610271][5579:5584] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2445783348 [1663236715.610328][5579:5584] CHIP:TOO: PartsList: 0 entries @@ -161,7 +161,7 @@ tests: ./chip-tool descriptor read parts-list 1 13 - Verify the PartsList attribute entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 13. [1663236752.985450][5590:5595] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 4223376445 [1663236752.985512][5590:5595] CHIP:TOO: PartsList: 0 entries @@ -170,7 +170,7 @@ tests: ./chip-tool descriptor read device-type-list 1 0 - Verify the DeviceTypeList entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 0. 1666250976.171198][46974:46979] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4030820095 [1666250976.171293][46974:46979] CHIP:TOO: DeviceTypeList: 1 entries @@ -183,7 +183,7 @@ tests: ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 1. [1666251027.402704][46981:46986] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3968445751 [1666251027.402805][46981:46986] CHIP:TOO: DeviceTypeList: 1 entries @@ -195,7 +195,7 @@ tests: ./chip-tool descriptor read device-type-list 1 3 - Verify the DeviceTypeList entries with endpoint 3 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 3. [1666251082251388][46996:47001] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1513076890 [1666251082.251476][46996:47001] CHIP:TOO: DeviceTypeList: 2 entries @@ -210,7 +210,7 @@ tests: ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 4. [1666251158.590005][47007:47012] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1944707282 [1666251158.590120][47007:47012] CHIP:TOO: DeviceTypeList: 2 entries @@ -225,7 +225,7 @@ tests: ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 5. [1666251201.503157][47017:47022] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1760060075 [1666251201.503273][47017:47022] CHIP:TOO: DeviceTypeList: 2 entries @@ -240,7 +240,7 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 6. [1666251387.430964][47094:47099] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3539120641 [1666251387.431026][47094:47099] CHIP:TOO: DeviceTypeList: 1 entries @@ -252,7 +252,7 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 10. [1666251412.907038][47102:47107] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4193039876 [1666251412.907165][47102:47107] CHIP:TOO: DeviceTypeList: 2 entries @@ -268,7 +268,7 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 11. [1666252002.412264][47368:47373] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2632191905 [1666252002.412358][47368:47373] CHIP:TOO: DeviceTypeList: 2 entries @@ -284,7 +284,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 12. [1666252081.956121][47409:47414] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 494395813 [1666252081.956186][47409:47414] CHIP:TOO: DeviceTypeList: 2 entries @@ -300,7 +300,7 @@ tests: ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 12. 1666252148.366524][47441:47446] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1009438523 [1666252148.366610][47441:47446] CHIP:TOO: DeviceTypeList: 2 entries @@ -315,7 +315,7 @@ tests: disabled: true - label: - "By inspecting the DeviceTypeList attributes read in step 1a, + "Step 1b: By inspecting the DeviceTypeList attributes read in step 1a, determine which of those endpoints has a device type of Aggregator" verification: | Verify list of endpoints is printed for aggregator i.e., 0x000e=14 @@ -324,7 +324,7 @@ tests: ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 1. [1666252195.610169][47476:47481] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3968445751 [1666252195.610228][47476:47481] CHIP:TOO: DeviceTypeList: 1 entries @@ -336,7 +336,7 @@ tests: ./chip-tool descriptor read device-type-list 1 3 - Verify the DeviceTypeList entries with endpoint 3 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 3. [1666252254.182552][47485:47490] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1513076890 [1666252254.182649][47485:47490] CHIP:TOO: DeviceTypeList: 2 entries @@ -353,7 +353,7 @@ tests: ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 4. [1666252341.032161][47529:47534] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1944707282 [1666252341.032246][47529:47534] CHIP:TOO: DeviceTypeList: 2 entries @@ -369,7 +369,7 @@ tests: ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 5. [1666252401.412287][47601:47606] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1760060075 [1666252401.412377][47601:47606] CHIP:TOO: DeviceTypeList: 2 entries @@ -385,7 +385,7 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 6. [1666252476.292638][47801:47806] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3539120641 [1666252476.292713][47801:47806] CHIP:TOO: DeviceTypeList: 1 entries @@ -397,7 +397,7 @@ tests: ./chip-tool descriptor read device-type-list 1 7 - Verify the DeviceTypeList entries with endpoint 7 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 7. [1666252509.843031][47813:47818] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3285189124 [1666252509.843104][47813:47818] CHIP:TOO: DeviceTypeList: 1 entries @@ -410,7 +410,7 @@ tests: ./chip-tool descriptor read device-type-list 1 8 - Verify the DeviceTypeList entries with endpoint 8 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 8. [1666252562.087283][47822:47827] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3210151050 [1666252562.087347][47822:47827] CHIP:TOO: DeviceTypeList: 1 entries @@ -422,7 +422,7 @@ tests: ./chip-tool descriptor read device-type-list 1 9 - Verify the DeviceTypeList entries with endpoint 9 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 9. [1666252723.595161][47851:47856] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3716023031 [1666252723.595284][47851:47856] CHIP:TOO: DeviceTypeList: 1 entries @@ -434,7 +434,7 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 10. [1666252816.237844][47882:47887] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4193039876 [1666252816.237980][47882:47887] CHIP:TOO: DeviceTypeList: 2 entries @@ -451,7 +451,7 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 11. [1666252858.431544][47894:47899] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2632191905 [1666252858.431646][47894:47899] CHIP:TOO: DeviceTypeList: 2 entries @@ -467,7 +467,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 12. [1666253053.966809][47936:47941] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 494395813 [1666253053.966877][47936:47941] CHIP:TOO: DeviceTypeList: 2 entries @@ -484,7 +484,7 @@ tests: ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 13. [1666253095.919526][47946:47951] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1009438523 [1666253095.919637][47946:47951] CHIP:TOO: DeviceTypeList: 2 entries @@ -499,22 +499,23 @@ tests: disabled: true - label: - "Add a bridged device (using a method indicated by the manufacturer)" + "Step 2a: Add a bridged device (using a method indicated by the + manufacturer)" PICS: MCORE.BRIDGE verification: | Press 2 on bridge-app to add a bridged device disabled: true - label: - "Read the PartsList and DeviceTypeList attributes of the Descriptor - cluster on endpoint 0" + "Step 2b: Read the PartsList and DeviceTypeList attributes of the + Descriptor cluster on endpoint 0" verification: | Verify DeviceTypeList has not changed compared to step 1a and PartsList contains exactly one endpoint which previously was not present which is higher than the previously used highest endpoint and also make sure the previously listed endpoint doesn't change ./chip-tool descriptor read parts-list 1 0 - Verify the PartsList entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 0. [1657004820.589511][4847:4853] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3573910941 [1657004820.589607][4847:4853] CHIP:TOO: parts list: 13 entries @@ -536,7 +537,7 @@ tests: ./chip-tool descriptor read device-type-list 1 0 - Verify the DeviceTypeList entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 0. [1666258982.251127][49133:49138] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4030820095 [1666258982.251208][49133:49138] CHIP:TOO: DeviceTypeList: 1 entries @@ -546,13 +547,15 @@ tests: [1666258982.251347][49133:49138] CHIP:TOO: } disabled: true - - label: "Repeat step 2b for endpoint found in step 1b (the Aggregator EP)" + - label: + "Step 2c: Repeat step 2b for endpoint found in step 1b (the Aggregator + EP)" verification: | Read parts-list and device-list with EP 1 ./chip-tool descriptor read parts-list 1 1 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 1. [1657004854.903425][4855:4860] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3021853415 [1657004854.903514][4855:4860] CHIP:TOO: parts list: 12 entries @@ -570,28 +573,28 @@ tests: [1657004854.903818][4855:4860] CHIP:TOO: [12]: 14 - ./chip-tool descriptor read device-type-list 1 0 + ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 1. - [1666259336.460366][49173:49178] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4030820095 - [1666259336.460437][49173:49178] CHIP:TOO: DeviceTypeList: 1 entries - [1666259336.460497][49173:49178] CHIP:TOO: [1]: { - [1666259336.460543][49173:49178] CHIP:TOO: Type: 22 - [1666259336.460571][49173:49178] CHIP:TOO: Revision: 1 - [1666259336.460599][49173:49178] CHIP:TOO: } + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 0. + [1685005209.364316][4224:4226] CHIP:TOO: DeviceTypeList: 1 entries + [1685005209.364397][4224:4226] CHIP:TOO: [1]: { + [1685005209.364455][4224:4226] CHIP:TOO: DeviceType: 14 + [1685005209.364508][4224:4226] CHIP:TOO: Revision: 1 + [1685005209.364559][4224:4226] CHIP:TOO: } disabled: true - label: - "Read PartsList and DeviceTypeList attributes of the Descriptor - cluster of all other endpoints listed in the PartsList attribute in - the Descriptor cluster of endpoint 0" + "Step 2d: Read PartsList and DeviceTypeList attributes of the + Descriptor cluster of all other endpoints listed in the PartsList + attribute in the Descriptor cluster of endpoint 0" verification: | Verify that the contents of these attributes have not changed relative to step 1a ./chip-tool descriptor read parts-list 1 0 - Verify the PartList entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 0. [1657014360.649059][5991:5997] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2526005575 [1657014360.649148][5991:5997] CHIP:TOO: parts list: 13 entries @@ -612,7 +615,7 @@ tests: ./chip-tool descriptor read parts-list 1 1 - Verify the PartList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 1. [1657014489.152608][6029:6034] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1583672816 [1657014489.152708][6029:6034] CHIP:TOO: parts list: 12 entries @@ -632,7 +635,7 @@ tests: ./chip-tool descriptor read parts-list 1 3 - Verify the PartList entries with endpoint 3 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 3. [1657013905.333904][5805:5810] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 4168180 [1657013905.333984][5805:5810] CHIP:TOO: parts list: 0 entries @@ -640,7 +643,7 @@ tests: ./chip-tool descriptor read parts-list 1 4 - Verify the PartList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 4. [1657014011.276060][5822:5827] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2935336058 [1657014011.276141][5822:5827] CHIP:TOO: parts list: 0 entries @@ -648,14 +651,14 @@ tests: ./chip-tool descriptor read parts-list 1 5 - Verify the PartList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 5. [1657014034.298958][5829:5834] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3372622835 [1657014034.299041][5829:5834] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 6 - Verify the PartList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 6. [1657014056.893995][5847:5852] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1565587733 [1657014056.894072][5847:5852] CHIP:TOO: parts list: 3 entries @@ -665,14 +668,14 @@ tests: ./chip-tool descriptor read parts-list 1 7 - Verify the PartList entries with endpoint 7 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 7. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 8 - Verify the PartList entries with endpoint 8 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 8. [1663236927.299795][5601:5606] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 310 [1663236927.299849][5601:5606] CHIP:TOO: PartsList: 0 entries @@ -680,14 +683,14 @@ tests: ./chip-tool descriptor read parts-list 1 9 - Verify the PartList entries with endpoint 9 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 9. [1663236962.433335][5608:5613] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3304459819 [1663236962.433395][5608:5613] CHIP:TOO: PartsList: 0 entries ./chip-tool descriptor read parts-list 1 10 - Verify the PartList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 10. [1663236993.718577][5615:5620] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2389378730 [1663236993.718639][5615:5620] CHIP:TOO: PartsList: 0 entries @@ -695,7 +698,7 @@ tests: ./chip-tool descriptor read parts-list 1 11 - Verify the PartList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 11. 1663237029.086031][5627:5632] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3007496001 [1663237029.086097][5627:5632] CHIP:TOO: PartsList: 0 entries @@ -703,7 +706,7 @@ tests: ./chip-tool descriptor read parts-list 1 12 - Verify the PartList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 12. [1663237048.194842][5636:5641] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2445783348 [1663237048.194910][5636:5641] CHIP:TOO: PartsList: 0 entries @@ -711,7 +714,7 @@ tests: ./chip-tool descriptor read parts-list 1 13 - Verify the PartList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 13. 1663237070.228529][5642:5647] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 4223376445 [1663237070.228588][5642:5647] CHIP:TOO: PartsList: 0 entries @@ -719,14 +722,14 @@ tests: ./chip-tool descriptor read parts-list 1 14 - Verify the PartList entries with endpoint 14 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 14. 1657014512.922645][6043:6048] CHIP:TOO: Endpoint: 14 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 503350386 [1657014512.922742][6043:6048] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 1. [1666259443.940442][49193:49198] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3968445751 [1666259443.940547][49193:49198] CHIP:TOO: DeviceTypeList: 1 entries @@ -738,7 +741,7 @@ tests: ./chip-tool descriptor read device-type-list 1 3 - Verify the DeviceTypeList entries with endpoint 3 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 3. [1666338247.117097][53837:53842] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2862309133 [1666338247.117198][53837:53842] CHIP:TOO: DeviceTypeList: 2 entries @@ -754,7 +757,7 @@ tests: ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 4. [1666259669.219517][49250:49255] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1944707282 [1666259669.219625][49250:49255] CHIP:TOO: DeviceTypeList: 2 entries @@ -771,7 +774,7 @@ tests: ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 5. [1666259695.336104][49258:49263] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1760060075 [1666259695.336266][49258:49263] CHIP:TOO: DeviceTypeList: 2 entries @@ -787,7 +790,7 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 6. [1666259757.823150][49274:49279] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3539120641 [1666259757.823220][49274:49279] CHIP:TOO: DeviceTypeList: 1 entries @@ -798,7 +801,7 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 10. [1666259819.548394][49296:49301] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4193039876 [1666259819.548807][49296:49301] CHIP:TOO: DeviceTypeList: 2 entries @@ -814,7 +817,7 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 11. [1666259853.748503][49306:49311] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2632191905 [1666259853.748599][49306:49311] CHIP:TOO: DeviceTypeList: 2 entries @@ -830,7 +833,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 12. [1666259896.402204][49317:49322] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 494395813 [1666259896.402387][49317:49322] CHIP:TOO: DeviceTypeList: 2 entries @@ -847,7 +850,7 @@ tests: ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 13. [1666259951.507848][49328:49333] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1009438523 [1666259951.507957][49328:49333] CHIP:TOO: DeviceTypeList: 2 entries @@ -863,7 +866,7 @@ tests: ./chip-tool descriptor read device-type-list 1 14 - Verify the DeviceTypeList entries with endpoint 14 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 14. [1657014545.912534][6051:6056] CHIP:TOO: Endpoint: 14 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 503350386 [1657014545.912595][6051:6056] CHIP:TOO: device list: 2 entries @@ -878,8 +881,8 @@ tests: disabled: true - label: - "Perform step 6 (for an actuator) resp. step 7 (for a sensor/switch) - of TC-BR-1 for the bridged device added in step 2" + "Step 3: Perform step 6 (for an actuator) resp. step 7 (for a + sensor/switch) of TC-BR-1 for the bridged device added in step 2" PICS: MCORE.BRIDGE verification: | Verify step 6 and 7 of TC-BR-1 for bridged device added in step 2 of TC-BR-2 @@ -891,14 +894,14 @@ tests: 1) Choose on-off cluster as the bridged devices which is an actuator 2) ./chip-tool onoff read on-off 1 3 - Verify the actual state of the bridged device in TH(chip-tool) Log + Via the TH (chip-tool), Verify the On/Off state of this bridge device values match the actual state of the bridged device. [1657004454.213279][4792:4798] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303315 [1657004454.213319][4792:4798] CHIP:TOO: OnOff: FALSE 3) ./chip-tool onoff toggle 1 3 - Verify On bridge-app + Verify On/Off attribute toggle response On bridge-app [1657522278.538831][18140:18140] CHIP:DMG: Received command for Endpoint=3 Cluster=0x0000_0006 Command=0x0000_0002 [1657522278.538861][18140:18140] CHIP:ZCL: On/Off set value: 3 2 @@ -907,7 +910,8 @@ tests: [1657522278.538936][18140:18140] CHIP:DL: HandleWriteOnOffAttribute: attrId=0 [1657522278.538957][18140:18140] CHIP:DL: Device[Light 1]: ON - Verify actual state of the bridged device changes accordingly in TH(chip-tool) Log + Via the TH (chip-tool), Verify actual state of the bridged device changes accordingly. + [1657522278.539407][16698:16703] CHIP:DMG: { [1657522278.539447][16698:16703] CHIP:DMG: suppressResponse = false, [1657522278.539495][16698:16703] CHIP:DMG: InvokeResponseIBs = @@ -941,7 +945,8 @@ tests: 4)./chip-tool onoff read on-off 1 3 - Verify the value of onoff matches the value of onoff in step 6c in TH(chip-tool) Log + Via the TH (chip-tool), Verify the value of On/Off state matches the value of step 6c. + [1657004565.254591][4804:4809] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303316 [1657004565.254635][4804:4809] CHIP:TOO: OnOff: TRUE @@ -953,7 +958,7 @@ tests: 1) Choose a sensor device (e.g. temperature sensor, being added to bridge-app) 2) ./chip-tool temperaturemeasurement read measured-value 1 4 - Verify MeasuredValue on TH(chip-tool) Log + Via the TH (chip-tool), Verify the MeasuredValue attribute that contains value as 100. [1659351487.005743][12201:12207] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0402 Attribute 0x0000_0000 DataVersion: 2406690152 [1659351487.005831][12201:12207] CHIP:TOO: MeasuredValue: 100 @@ -973,7 +978,7 @@ tests: 4)./chip-tool temperaturemeasurement read measured-value 1 4 - Verify MeasuredValue on TH(chip-tool) Log + Via the TH (chip-tool), Verify the MeasuredValue attribute that contains value as 200. [1659351542.393349][12212:12217] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_0402 Attribute 0x0000_0000 DataVersion: 2406690153 [1659351542.393429][12212:12217] CHIP:TOO: MeasuredValue: 200 @@ -981,22 +986,22 @@ tests: disabled: true - label: - "Remove one of the bridged devices (but not the one which was added in - step 2) (using a method indicated by the manufacturer)" + "Step 4a: Remove one of the bridged devices (but not the one which was + added in step 2) (using a method indicated by the manufacturer)" PICS: MCORE.BRIDGE verification: | Press 4 in the bridge-app to remove bridged device disabled: true - label: - "Read the PartsList and DeviceTypeList attributes in the Descriptor - cluster on endpoint 0" + "Step 4b: Read the PartsList and DeviceTypeList attributes in the + Descriptor cluster on endpoint 0" verification: | Verify the parts-list has EP which was present earlier is removed ./chip-tool descriptor read parts-list 1 0 - Verify the PartList entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 0. [1657005165.790283][4885:4890] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3573910942 [1657005165.790379][4885:4890] CHIP:TOO: parts list: 12 entries @@ -1016,7 +1021,7 @@ tests: ./chip-tool descriptor read device-type-list 1 0 - Verify that DeviceTypeList has not changed compared to step 1a + Via the TH (chip-tool), Verify that DeviceTypeList has not changed compared to step 1a [1666260216.664281][49376:49381] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4030820095 [1666260216.664352][49376:49381] CHIP:TOO: DeviceTypeList: 1 entries @@ -1026,13 +1031,15 @@ tests: [1666260216.664531][49376:49381] CHIP:TOO: } disabled: true - - label: "Repeat step 4b for endpoint found in step 1b (the Aggregator EP)" + - label: + "Step 4c: Repeat step 4b for endpoint found in step 1b (the Aggregator + EP)" verification: | Read parts-list and device-list with EP 1 ./chip-tool descriptor read parts-list 1 1 - Verify the PartList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 1. [1657005188.474784][4893:4898] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3021853416 [1657005188.474879][4893:4898] CHIP:TOO: parts list: 11 entries @@ -1051,7 +1058,7 @@ tests: ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 1. [1666260297.215137][49388:49393] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3968445751 [1666260297.215199][49388:49393] CHIP:TOO: DeviceTypeList: 1 entries @@ -1062,15 +1069,15 @@ tests: disabled: true - label: - "Read PartsList and DeviceTypeList attributes of the Descriptor - cluster of all other endpoints listed in the PartsList attribute in - the Descriptor cluster of endpoint 0" + "Step 4d: Read PartsList and DeviceTypeList attributes of the + Descriptor cluster of all other endpoints listed in the PartsList + attribute in the Descriptor cluster of endpoint 0" verification: | Each device-list and parts-list with EP 0 and verify the contents is not changed when compared to step 1a ./chip-tool descriptor read parts-list 1 0 - Verify the PartList entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 0. [1657014638.415060][6061:6066] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2526005576 [1657014638.415201][6061:6066] CHIP:TOO: parts list: 12 entries @@ -1091,7 +1098,7 @@ tests: ./chip-tool descriptor read parts-list 1 1 - Verify the PartList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 1. [1657014672.768932][6068:6073] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1583672817 [1657014672.769082][6068:6073] CHIP:TOO: parts list: 11 entries @@ -1111,7 +1118,7 @@ tests: ./chip-tool descriptor read parts-list 1 4 - Verify the PartList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 4. [1657014011.276060][5822:5827] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2935336058 [1657014011.276141][5822:5827] CHIP:TOO: parts list: 0 entries @@ -1119,14 +1126,14 @@ tests: ./chip-tool descriptor read parts-list 1 5 - Verify the PartList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 5. [1657014034.298958][5829:5834] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3372622835 [1657014034.299041][5829:5834] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 6 - Verify the PartList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 6. [1657014056.893995][5847:5852] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1565587733 [1657014056.894072][5847:5852] CHIP:TOO: parts list: 3 entries @@ -1136,63 +1143,63 @@ tests: ./chip-tool descriptor read parts-list 1 7 - Verify the PartList entries with endpoint 7 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 7. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 8 - Verify the PartList entries with endpoint 8 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 8. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 9 - Verify the PartList entries with endpoint 9 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 9. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 10 - Verify the PartList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 10. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 11 - Verify the PartList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 11. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 12 - Verify the PartList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 12. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 13 - Verify the PartList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 13. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 14 - Verify the PartList entries with endpoint 14 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 14. 1657014512.922645][6043:6048] CHIP:TOO: Endpoint: 14 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 503350386 [1657014512.922742][6043:6048] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 1. [1666338959.159031][54089:54094] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4153437440 [1666338959.159104][54089:54094] CHIP:TOO: DeviceTypeList: 1 entries @@ -1203,7 +1210,7 @@ tests: ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 4. [1666339056.791288][54121:54126] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2823994112 [1666339056.791391][54121:54126] CHIP:TOO: DeviceTypeList: 2 entries @@ -1219,7 +1226,7 @@ tests: ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 5. [1666339133.924066][54135:54140] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1185270366 [1666339133.924157][54135:54140] CHIP:TOO: DeviceTypeList: 2 entries @@ -1236,7 +1243,7 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 6. [1666339192.765667][54150:54155] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3019197104 [1666339192.765681][54150:54155] CHIP:TOO: DeviceTypeList: 1 entries @@ -1247,7 +1254,7 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 10. [1666339247.022099][54172:54177] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3847761018 [1666339247.022167][54172:54177] CHIP:TOO: DeviceTypeList: 2 entries @@ -1262,7 +1269,7 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 11. [1666339310.168000][54182:54187] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4158444484 [1666339310.168098][54182:54187] CHIP:TOO: DeviceTypeList: 2 entries @@ -1280,7 +1287,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 12. [1666339370.827538][54193:54198] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2979677803 [1666339370.827566][54193:54198] CHIP:TOO: DeviceTypeList: 2 entries @@ -1297,7 +1304,7 @@ tests: ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 13. [1666339413.453432][54201:54206] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 825842769 [1666339413.453493][54201:54206] CHIP:TOO: DeviceTypeList: 2 entries @@ -1313,7 +1320,7 @@ tests: ./chip-tool descriptor read device-type-list 1 14 - Verify the DeviceTypeList entries with endpoint 14 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 14. [1666339467.335722][54212:54217] CHIP:TOO: Endpoint: 14 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3691015272 [1666339467.335748][54212:54217] CHIP:TOO: DeviceTypeList: 2 entries @@ -1327,29 +1334,29 @@ tests: [1666339467.335822][54212:54217] CHIP:TOO: } disabled: true - - label: "restart the DUT" + - label: "Step 4z: Restart the DUT" PICS: MCORE.BRIDGE verification: | restart the DUT disabled: true - label: - "Re-add the bridged device which was removed in the previous step - (using a method indicated by the manufacturer)" + "Step 5a: Re-add the bridged device which was removed in the previous + step (using a method indicated by the manufacturer)" PICS: MCORE.BRIDGE verification: | Press 5 in the bridge-app Re-add the bridged device disabled: true - label: - "Read the PartsList and DeviceTypeList attributes in the Descriptor - cluster on endpoint 0" + "Step 5b: Read the PartsList and DeviceTypeList attributes in the + Descriptor cluster on endpoint 0" verification: | Eead device-list and parts-list with EP 0 and verify the contents is not changed when compared to step 1a ./chip-tool descriptor read parts-list 1 0 - Verify the PartList entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 0. [1657005275.756668][4900:4905] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3573910943 [1657005275.756770][4900:4905] CHIP:TOO: parts list: 13 entries @@ -1370,7 +1377,7 @@ tests: ./chip-tool descriptor read device-type-list 1 0 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 0. [1676454208.899427][31915:31917] CHIP:DMG: } [1676454208.899706][31915:31917] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 12927127 @@ -1381,13 +1388,15 @@ tests: [1676454208.899831][31915:31917] CHIP:TOO: } disabled: true - - label: "Repeat step 5b for endpoint found in step 1b (the Aggregator EP)" + - label: + "Step 5c: Repeat step 5b for endpoint found in step 1b (the Aggregator + EP)" verification: | Read parts-list and device-list with EP 1 and compare the result with step 4c ./chip-tool descriptor read parts-list 1 1 - Verify the PartList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 1. [1657005310.589940][4938:4943] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3021853417 [1657005310.590033][4938:4943] CHIP:TOO: parts list: 12 entries @@ -1406,7 +1415,7 @@ tests: ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 1. [1657514252.212456][15958:15963] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2755694332 [1666260348.181193][49397:49402] CHIP:TOO: DeviceTypeList: 1 entries @@ -1417,13 +1426,13 @@ tests: disabled: true - label: - "Read PartsList and DeviceTypeList attributes of the Descriptor - cluster of all other endpoints listed in the PartsList attribute in - the Descriptor cluster of endpoint 0" + "Step 5d: Read PartsList and DeviceTypeList attributes of the + Descriptor cluster of all other endpoints listed in the PartsList + attribute in the Descriptor cluster of endpoint 0" verification: | ./chip-tool descriptor read parts-list 1 0 - Verify the PartList entries with endpoint 0 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 0. [1657005275.756668][4900:4905] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3573910943 [1657005275.756770][4900:4905] CHIP:TOO: parts list: 13 entries @@ -1444,7 +1453,7 @@ tests: ./chip-tool descriptor read parts-list 1 1 - Verify the PartList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 1. [1657005310.589940][4938:4943] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3021853417 [1657005310.590033][4938:4943] CHIP:TOO: parts list: 12 entries @@ -1465,14 +1474,14 @@ tests: ./chip-tool descriptor read parts-list 1 15 - Verify the PartList entries with endpoint 15 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 15. [1657014783.484273][6118:6123] CHIP:TOO: Endpoint: 15 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2738912500 [1657014783.484345][6118:6123] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 4 - Verify the PartList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 4. [1657014011.276060][5822:5827] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2935336058 [1657014011.276141][5822:5827] CHIP:TOO: parts list: 0 entries @@ -1480,14 +1489,14 @@ tests: ./chip-tool descriptor read parts-list 1 5 - Verify the PartList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 5. [1657014034.298958][5829:5834] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3372622835 [1657014034.299041][5829:5834] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 6 - Verify the PartList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 6. [1657014056.893995][5847:5852] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1565587733 [1657014056.894072][5847:5852] CHIP:TOO: parts list: 3 entries @@ -1497,56 +1506,56 @@ tests: ./chip-tool descriptor read parts-list 1 7 - Verify the PartList entries with endpoint 7 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 7. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 8 - Verify the PartList entries with endpoint 8 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 8. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 9 - Verify the PartList entries with endpoint 9 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 9. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 10 - Verify the PartList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 10. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 11 - Verify the PartList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 11. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 12 - Verify the PartList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 12. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 13 - Verify the PartList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 13. [1657014071.347535][5854:5859] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1352552269 [1657014071.347611][5854:5859] CHIP:TOO: parts list: 0 entries ./chip-tool descriptor read parts-list 1 14 - Verify the PartList entries with endpoint 14 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 14. 1657014512.922645][6043:6048] CHIP:TOO: Endpoint: 14 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 503350386 [1657014512.922742][6043:6048] CHIP:TOO: parts list: 0 entries @@ -1554,7 +1563,7 @@ tests: ./chip-tool descriptor read device-type-list 1 15 - Verify the DeviceTypeList entries with endpoint 15 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the PartsList attribute entries with endpoint 15. [1657014818.210651][6132:6137] CHIP:TOO: Endpoint: 15 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2738912500 [1657014818.210711][6132:6137] CHIP:TOO: device list: 2 entries @@ -1569,7 +1578,7 @@ tests: ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList entries with endpoint 1 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 1. [1666781135.580037][154035:154040] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1939805432 [1666781135.580104][154035:154040] CHIP:TOO: DeviceTypeList: 1 entries @@ -1582,7 +1591,7 @@ tests: ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList entries with endpoint 4 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 4. [[1666781249.506822][154135:154140] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3384622383 [1666781249.506936][154135:154140] CHIP:TOO: DeviceTypeList: 2 entries @@ -1598,7 +1607,7 @@ tests: ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList entries with endpoint 5 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 5. [1666781295.814357][154186:154191] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1586047503 [1666781295.814477][154186:154191] CHIP:TOO: DeviceTypeList: 2 entries @@ -1613,7 +1622,7 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList entries with endpoint 6 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 6. [1666781352.226403][154237:154242] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3245051896 [1666781352.226485][154237:154242] CHIP:TOO: DeviceTypeList: 1 entries @@ -1625,7 +1634,7 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList entries with endpoint 10 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 10. [1666781396.648375][154274:154279] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1293946708 [1666781396.648475][154274:154279] CHIP:TOO: DeviceTypeList: 2 entries @@ -1641,7 +1650,7 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList entries with endpoint 11 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 11. [1666781437.491909][154304:154309] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 731418355 [1666781437.492152][154304:154309] CHIP:TOO: DeviceTypeList: 2 entries @@ -1657,7 +1666,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList entries with endpoint 12 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 12. [1666781478.247115][154348:154353] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4056704360 [1666781478.247242][154348:154353] CHIP:TOO: DeviceTypeList: 2 entries @@ -1672,7 +1681,7 @@ tests: ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList entries with endpoint 13 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 13. [1666781551.887253][154449:154454] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3945074678 [1666781551.887323][154449:154454] CHIP:TOO: DeviceTypeList: 2 entries @@ -1689,7 +1698,7 @@ tests: ./chip-tool descriptor read device-type-list 1 14 - Verify the DeviceTypeList entries with endpoint 14 On TH(chip-tool) Log + Via the TH (chip-tool), Verify the DeviceTypeList attribute entries with endpoint 14. [1666781570.445039][154457:154462] CHIP:TOO: Endpoint: 14 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1672133809 [1666781570.445138][154457:154462] CHIP:TOO: DeviceTypeList: 2 entries diff --git a/src/app/tests/suites/certification/Test_TC_BR_3.yaml b/src/app/tests/suites/certification/Test_TC_BR_3.yaml index f4bd78d31f37e9..4a6a438df5d7af 100644 --- a/src/app/tests/suites/certification/Test_TC_BR_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_BR_3.yaml @@ -32,23 +32,24 @@ tests: disabled: true - label: - "Get the name of a bridged device: Read the NodeLabel attribute of the - Bridged Device Basic Information cluster on the applicable endpoint" + "Step 1a: Get the name of a bridged device: Read the NodeLabel + attribute of the Bridged Device Basic Information cluster on the + applicable endpoint" PICS: MCORE.BRIDGE && MCORE.BRIDGE.AllowDeviceRename verification: | Read the NodeLabel attribute of the Bridged Device Basic Information cluster with EP 3 ./chip-tool bridgeddevicebasicinformation read node-label 1 3 - Verify the NodeLabel attribute On TH(chip-tool) Log + Via the TH (chip-tool), Verify the NodeLabel attribute value contains a string. [1657013337.140125][5753:5758] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 3293551312 [1657013337.140235][5753:5758] CHIP:TOO: NodeLabel: Light 1 disabled: true - label: - "Using manufacturer provided means (i.e. NOT using Matter protocol), - update the name of this bridged device" + "Step 1b: Using manufacturer provided means (i.e. NOT using Matter + protocol), update the name of this bridged device" verification: | Press b on bridge app @@ -57,55 +58,58 @@ tests: disabled: true - label: - "Read the NodeLabel attribute of the Bridged Device Basic Information - cluster on the same endpoint as in 1a" + "Step 1c: Read the NodeLabel attribute of the Bridged Device Basic + Information cluster on the same endpoint as in 1a" verification: | Read the NodeLabel attribute of the Bridged Device Basic Information cluster with EP 3, verify the name is changed ./chip-tool bridgeddevicebasicinformation read node-label 1 3 - Verify the NodeLabel attribute On TH(chip-tool) Log + Via the TH (chip-tool), Verify the NodeLabel attribute value has changed. [1657013347.277584][5759:5764] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 3293551313 [1657013347.277631][5759:5764] CHIP:TOO: NodeLabel: Light 1b disabled: true - label: - "Choose a bridged device for which the state can be changed through a - non-Matter interface (example: bridge manufacturer provides an app - which can change the state of the bridged devices, e.g. change a - lights brightness)" + "Step 2a: Choose a bridged device for which the state can be changed + through a non-Matter interface (example: bridge manufacturer provides + an app which can change the state of the bridged devices, e.g. change + a lights brightness)" PICS: MCORE.BRIDGE && MCORE.BRIDGE.OtherControl verification: | Choose on-off cluster on EP 3 disabled: true - - label: "Read the state (e.g. on/off, brightness) of that bridged device" + - label: + "Step 2b: Read the state (e.g. on/off, brightness) of that bridged + device" verification: | Read OnOff attribute of On/Off cluster ./chip-tool onoff read on-off 1 3 - Verify the Onoff attribute On TH(chip-tool) Log + Via the TH (chip-tool), Verify the state of Onoff attribute that contains bool value. + [1657004565.254591][4804:4809] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303316 - [1657004565.254635][4804:4809] CHIP:TOO: OnOff: TRUE + [1657004565.254635][4804:4809] CHIP:TOO: OnOff: FALSE disabled: true - label: - "Change the state (e.g. on/off, brightness) of that bridged device - with this 'other' interface." + "Step 2c: Change the state (e.g. on/off, brightness) of that bridged + device with this 'other' interface." verification: | Press c on bridge-app to change the state disabled: true - - label: "Read the state of that bridged device again (as in 2b)" + - label: "Step 2d: Read the state of that bridged device again (as in 2b)" verification: | Read OnOff attribute of On/Off cluster and verify the value is different compared to step 2b ./chip-tool onoff read on-off 1 3 - Verify the Onoff attribute On TH(chip-tool) Log + Via the TH (chip-tool), Verify the Onoff attribute state has changed. [1657004454.213279][4792:4798] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3808303315 - [1657004454.213319][4792:4798] CHIP:TOO: OnOff: FALSE + [1657004454.213319][4792:4798] CHIP:TOO: OnOff: TRUE disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_BR_4.yaml b/src/app/tests/suites/certification/Test_TC_BR_4.yaml index fd650f7795107a..167d8966c58c3f 100644 --- a/src/app/tests/suites/certification/Test_TC_BR_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_BR_4.yaml @@ -37,12 +37,14 @@ tests: disabled: true - label: - "Start bridge-app on TH. Commission TH to DUT. Monitor traffic between - DUT and TH." + "Step 1a: Start bridge-app on TH. Commission TH to DUT. Monitor + traffic between DUT and TH." verification: | + Verify DeviceTypeList and PartsList attribute response with all available EPs: + ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList attribute with endpoint 1 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 1 On TH(bridge-app) Log: [1666960977.561385][218195:218195] CHIP:IM: Received Read request [1666960977.561428][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -144,7 +146,7 @@ tests: ./chip-tool descriptor read device-type-list 1 2 - Verify the DeviceTypeList attribute with endpoint 2 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 2 On TH(bridge-app) Log: [1666961027.989897][218195:218195] CHIP:IM: Received Read request [1666961027.989925][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -223,7 +225,7 @@ tests: ./chip-tool descriptor read device-type-list 1 3 - Verify the DeviceTypeList attribute with endpoint 3 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 3 On TH(bridge-app) Log: [1666961101.342071][218195:218195] CHIP:IM: Received Read request [1666961101.342101][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -347,7 +349,7 @@ tests: ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList attribute with endpoint 4 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 4 On TH(bridge-app) Log: 1666961162.773915][218195:218195] CHIP:DMG: ReadRequestMessage = [1666961162.773928][218195:218195] CHIP:DMG: { @@ -470,7 +472,7 @@ tests: ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList attribute with endpoint 5 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 5 On TH(bridge-app) Log: [1666961235.484701][218195:218195] CHIP:IM: Received Read request [1666961235.484743][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -594,7 +596,7 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList attribute with endpoint 6 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 6 On TH(bridge-app) Log: [1666961312.435864][218195:218195] CHIP:IM: Received Read request [1666961312.435907][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -697,7 +699,7 @@ tests: ./chip-tool descriptor read device-type-list 1 7 - Verify the DeviceTypeList attribute with endpoint 7 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 7 On TH(bridge-app) Log: [1666961364.286140][218195:218195] CHIP:IM: Received Read request [1666961364.286177][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -799,7 +801,7 @@ tests: ./chip-tool descriptor read device-type-list 1 8 - Verify the DeviceTypeList attribute with endpoint 8 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 8 On TH(bridge-app) Log: [1666961419.607662][218195:218195] CHIP:IM: Received Read request [1666961419.607690][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -901,7 +903,7 @@ tests: ./chip-tool descriptor read device-type-list 1 9 - Verify the DeviceTypeList attribute with endpoint 9 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 9 On TH(bridge-app) Log: [1666961467.313086][218195:218195] CHIP:IM: Received Read request [1666961467.313117][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -1004,7 +1006,7 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList attribute with endpoint 10 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 10 On TH(bridge-app) Log: [1666961546.940423][218195:218195] CHIP:IM: Received Read request [1666961546.940503][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -1129,7 +1131,7 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList attribute with endpoint 11 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 11 On TH(bridge-app) Log: [1666961579.870142][218195:218195] CHIP:IM: Received Read request [1666961579.870175][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -1253,7 +1255,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList attribute with endpoint 12 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 12 On TH(bridge-app) Log: [1666961637.024382][218195:218195] CHIP:EM: Handling via exchange: 24264r, Delegate: 0x559dd6ddf8c8 [1666961637.024406][218195:218195] CHIP:IM: Received Read request @@ -1376,9 +1378,9 @@ tests: [1666961637.027535][218195:218195] CHIP:DMG: InteractionModelRevision = 1 [1666961637.027543][218195:218195] CHIP:DMG: } - ./chip-tool descriptor read device-type-list 1 13 + ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList attribute with endpoint 13 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 13 On TH(bridge-app) Log: [1666961681.323410][218195:218195] CHIP:IM: Received Read request [1666961681.323440][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -1502,7 +1504,7 @@ tests: ./chip-tool descriptor read parts-list 1 0 - Verify the PartList attribute with endpoint 0 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 0 On TH(bridge-app) Log: 1666962087.594430][218195:218195] CHIP:IM: Received Read request [1666962087.594452][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -1798,7 +1800,7 @@ tests: ./chip-tool descriptor read parts-list 1 1 - Verify the PartList attribute with endpoint 1 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 1 On TH(bridge-app) Log: [1666962024.475117][218195:218195] CHIP:IM: Received Read request [1666962024.475146][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2077,7 +2079,7 @@ tests: ./chip-tool descriptor read parts-list 1 2 - Verify the PartList attribute with endpoint 2 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 2 On TH(bridge-app) Log: [1666962122.075925][218195:218195] CHIP:IM: Received Read request [1666962122.075953][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2156,8 +2158,7 @@ tests: ./chip-tool descriptor read parts-list 1 3 - Verify the PartList attribute with endpoint 3 On TH(bridge-app) Log: - + Verify the PartList attribute response with endpoint 3 On TH(bridge-app) Log: [1666962181.272370][218195:218195] CHIP:IM: Received Read request [1666962181.272431][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2238,7 +2239,7 @@ tests: ./chip-tool descriptor read parts-list 1 4 - Verify the PartList attribute with endpoint 4 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 4 On TH(bridge-app) Log: [1666962226.211067][218195:218195] CHIP:IM: Received Read request [1666962226.211160][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2318,7 +2319,7 @@ tests: ./chip-tool descriptor read parts-list 1 5 - Verify the PartList attribute with endpoint 5 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 5 On TH(bridge-app) Log: [1666962275.528464][218195:218195] CHIP:IM: Received Read request [1666962275.528514][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2398,8 +2399,7 @@ tests: ./chip-tool descriptor read parts-list 1 6 - Verify the PartList attribute with endpoint 6 On TH(bridge-app) Log: - + Verify the PartList attribute response with endpoint 6 On TH(bridge-app) Log: [1666962322.069585][218195:218195] CHIP:IM: Received Read request [1666962322.069620][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2534,7 +2534,7 @@ tests: ./chip-tool descriptor read parts-list 1 7 - Verify the PartList attribute with endpoint 7 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 7 On TH(bridge-app) Log: [1666962362.557106][218195:218195] CHIP:IM: Received Read request [1666962362.557147][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2614,8 +2614,7 @@ tests: ./chip-tool descriptor read parts-list 1 8 - Verify the PartList attribute with endpoint 8 On TH(bridge-app) Log: - + Verify the PartList attribute response with endpoint 8 On TH(bridge-app) Log: [1666962423.861269][218195:218195] CHIP:IM: Received Read request [1666962423.861296][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2696,7 +2695,7 @@ tests: ./chip-tool descriptor read parts-list 1 9 - Verify the PartList attribute with endpoint 9 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 9 On TH(bridge-app) Log: [1666962496.027253][218195:218195] CHIP:IM: Received Read request [1666962496.027291][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2776,7 +2775,7 @@ tests: ./chip-tool descriptor read parts-list 1 10 - Verify the PartList attribute with endpoint 10 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 10 On TH(bridge-app) Log: [1666962545.266945][218195:218195] CHIP:IM: Received Read request [1666962545.266979][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2856,7 +2855,7 @@ tests: ./chip-tool descriptor read parts-list 1 11 - Verify the PartList attribute with endpoint 11 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 11 On TH(bridge-app) Log: [1666962605.941370][218195:218195] CHIP:IM: Received Read request [1666962605.941421][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -2935,9 +2934,9 @@ tests: [1666962605.947132][218195:218195] CHIP:DMG: } [1666962605.947147][218195:218195] CHIP:DMG: - ./chip-tool descriptor read parts-list 1 12 + ./chip-tool descriptor read parts-list 1 12 - Verify the PartList attribute with endpoint 12 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 12 On TH(bridge-app) Log: [1666962633.918167][218195:218195] CHIP:IM: Received Read request [1666962633.918280][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -3018,7 +3017,7 @@ tests: ./chip-tool descriptor read parts-list 1 13 - Verify the PartList attribute with endpoint 13 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 13 On TH(bridge-app) Log: [1666962673.106887][218195:218195] CHIP:IM: Received Read request [1666962673.106920][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -3102,7 +3101,7 @@ tests: verification: | ./chip-tool descriptor read device-type-list 1 1 - Verify the DeviceTypeList attribute with endpoint 1 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 1 On TH(bridge-app) Log: [1666960977.561385][218195:218195] CHIP:IM: Received Read request [1666960977.561428][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -3204,7 +3203,7 @@ tests: ./chip-tool descriptor read device-type-list 1 2 - Verify the DeviceTypeList attribute with endpoint 2 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 2 On TH(bridge-app) Log: [1666961027.989897][218195:218195] CHIP:IM: Received Read request [1666961027.989925][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -3283,7 +3282,7 @@ tests: ./chip-tool descriptor read device-type-list 1 3 - Verify the DeviceTypeList attribute with endpoint 3 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 3 On TH(bridge-app) Log: [1666961101.342071][218195:218195] CHIP:IM: Received Read request [1666961101.342101][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -3407,7 +3406,7 @@ tests: ./chip-tool descriptor read device-type-list 1 4 - Verify the DeviceTypeList attribute with endpoint 4 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 4 On TH(bridge-app) Log: 1666961162.773915][218195:218195] CHIP:DMG: ReadRequestMessage = [1666961162.773928][218195:218195] CHIP:DMG: { @@ -3530,7 +3529,7 @@ tests: ./chip-tool descriptor read device-type-list 1 5 - Verify the DeviceTypeList attribute with endpoint 5 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 5 On TH(bridge-app) Log: [1666961235.484701][218195:218195] CHIP:IM: Received Read request [1666961235.484743][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -3654,7 +3653,8 @@ tests: ./chip-tool descriptor read device-type-list 1 6 - Verify the DeviceTypeList attribute with endpoint 6 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 6 On TH(bridge-app) Log: + [1666961312.435864][218195:218195] CHIP:IM: Received Read request [1666961312.435907][218195:218195] CHIP:DMG: ReadRequestMessage = [1666961312.435918][218195:218195] CHIP:DMG: { @@ -3756,7 +3756,8 @@ tests: ./chip-tool descriptor read device-type-list 1 7 - Verify the DeviceTypeList attribute with endpoint 7 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 7 On TH(bridge-app) Log: + [1666961364.286140][218195:218195] CHIP:IM: Received Read request [1666961364.286177][218195:218195] CHIP:DMG: ReadRequestMessage = [1666961364.286185][218195:218195] CHIP:DMG: { @@ -3857,7 +3858,8 @@ tests: ./chip-tool descriptor read device-type-list 1 8 - Verify the DeviceTypeList attribute with endpoint 8 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 8 On TH(bridge-app) Log: + [1666961419.607662][218195:218195] CHIP:IM: Received Read request [1666961419.607690][218195:218195] CHIP:DMG: ReadRequestMessage = [1666961419.607697][218195:218195] CHIP:DMG: { @@ -3958,7 +3960,8 @@ tests: ./chip-tool descriptor read device-type-list 1 9 - Verify the DeviceTypeList attribute with endpoint 9 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 9 On TH(bridge-app) Log: + [1666961467.313086][218195:218195] CHIP:IM: Received Read request [1666961467.313117][218195:218195] CHIP:DMG: ReadRequestMessage = [1666961467.313124][218195:218195] CHIP:DMG: { @@ -4060,7 +4063,8 @@ tests: ./chip-tool descriptor read device-type-list 1 10 - Verify the DeviceTypeList attribute with endpoint 10 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 10 On TH(bridge-app) Log: + [1666961546.940423][218195:218195] CHIP:IM: Received Read request [1666961546.940503][218195:218195] CHIP:DMG: ReadRequestMessage = [1666961546.940529][218195:218195] CHIP:DMG: { @@ -4184,7 +4188,8 @@ tests: ./chip-tool descriptor read device-type-list 1 11 - Verify the DeviceTypeList attribute with endpoint 11 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 11 On TH(bridge-app) Log: + [1666961579.870142][218195:218195] CHIP:IM: Received Read request [1666961579.870175][218195:218195] CHIP:DMG: ReadRequestMessage = [1666961579.870183][218195:218195] CHIP:DMG: { @@ -4307,7 +4312,7 @@ tests: ./chip-tool descriptor read device-type-list 1 12 - Verify the DeviceTypeList attribute with endpoint 12 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 12 On TH(bridge-app) Log: [1666961637.024382][218195:218195] CHIP:EM: Handling via exchange: 24264r, Delegate: 0x559dd6ddf8c8 [1666961637.024406][218195:218195] CHIP:IM: Received Read request @@ -4432,7 +4437,8 @@ tests: ./chip-tool descriptor read device-type-list 1 13 - Verify the DeviceTypeList attribute with endpoint 13 On TH(bridge-app) Log: + Verify the DeviceTypeList attribute response with endpoint 13 On TH(bridge-app) Log: + [1666961681.323410][218195:218195] CHIP:IM: Received Read request [1666961681.323440][218195:218195] CHIP:DMG: ReadRequestMessage = [1666961681.323447][218195:218195] CHIP:DMG: { @@ -4554,7 +4560,9 @@ tests: [1666961681.324724][218195:218195] CHIP:DMG: } ./chip-tool descriptor read parts-list 1 0 - Verify the PartList attribute with endpoint 0 On TH(bridge-app) Log: + + Verify the PartList attribute response with endpoint 0 On TH(bridge-app) Log: + 1666962087.594430][218195:218195] CHIP:IM: Received Read request [1666962087.594452][218195:218195] CHIP:DMG: ReadRequestMessage = [1666962087.594457][218195:218195] CHIP:DMG: { @@ -4849,7 +4857,8 @@ tests: ./chip-tool descriptor read parts-list 1 1 - Verify the PartList attribute with endpoint 1 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 1 On TH(bridge-app) Log: + [1666962024.475117][218195:218195] CHIP:IM: Received Read request [1666962024.475146][218195:218195] CHIP:DMG: ReadRequestMessage = [1666962024.475155][218195:218195] CHIP:DMG: { @@ -5126,7 +5135,9 @@ tests: [1666962024.477789][218195:218195] CHIP:DMG: ./chip-tool descriptor read parts-list 1 2 - Verify the PartList attribute with endpoint 2 On TH(bridge-app) Log: + + Verify the PartList attribute response with endpoint 2 On TH(bridge-app) Log: + [1666962122.075925][218195:218195] CHIP:IM: Received Read request [1666962122.075953][218195:218195] CHIP:DMG: ReadRequestMessage = [1666962122.075960][218195:218195] CHIP:DMG: { @@ -5203,7 +5214,9 @@ tests: [1666962122.076769][218195:218195] CHIP:DMG: } ./chip-tool descriptor read parts-list 1 3 - Verify the PartList attribute with endpoint 3 On TH(bridge-app) Log: + + Verify the PartList attribute response with endpoint 3 On TH(bridge-app) Log: + [1666962181.272370][218195:218195] CHIP:IM: Received Read request [1666962181.272431][218195:218195] CHIP:DMG: ReadRequestMessage = [1666962181.272451][218195:218195] CHIP:DMG: { @@ -5281,8 +5294,9 @@ tests: [1666962181.274337][218195:218195] CHIP:DMG: } [1666962181.274354][218195:218195] CHIP:DMG: - ./chip-tool descriptor read parts-list 1 4 - Verify the PartList attribute with endpoint 4 On TH(bridge-app) Log: + ./chip-tool descriptor read parts-list 1 4 + + Verify the PartList attribute response with endpoint 4 On TH(bridge-app) Log: [1666962226.211067][218195:218195] CHIP:IM: Received Read request [1666962226.211160][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -5361,7 +5375,9 @@ tests: [1666962226.211991][218195:218195] CHIP:DMG: } ./chip-tool descriptor read parts-list 1 5 - Verify the PartList attribute with endpoint 5 On TH(bridge-app) Log: + + Verify the PartList attribute response with endpoint 5 On TH(bridge-app) Log: + [1666962275.528464][218195:218195] CHIP:IM: Received Read request [1666962275.528514][218195:218195] CHIP:DMG: ReadRequestMessage = [1666962275.528527][218195:218195] CHIP:DMG: { @@ -5439,7 +5455,9 @@ tests: [1666962275.533543][218195:218195] CHIP:DMG: } ./chip-tool descriptor read parts-list 1 6 - Verify the PartList attribute with endpoint 6 On TH(bridge-app) Log: + + Verify the PartList attribute response with endpoint 6 On TH(bridge-app) Log: + [1666962322.069585][218195:218195] CHIP:IM: Received Read request [1666962322.069620][218195:218195] CHIP:DMG: ReadRequestMessage = [1666962322.069628][218195:218195] CHIP:DMG: { @@ -5573,7 +5591,8 @@ tests: ./chip-tool descriptor read parts-list 1 7 - Verify the PartList attribute with endpoint 7 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 7 On TH(bridge-app) Log: + [1666962362.557106][218195:218195] CHIP:IM: Received Read request [1666962362.557147][218195:218195] CHIP:DMG: ReadRequestMessage = [1666962362.557158][218195:218195] CHIP:DMG: { @@ -5651,7 +5670,9 @@ tests: [1666962362.558321][218195:218195] CHIP:DMG: } ./chip-tool descriptor read parts-list 1 8 - Verify the PartList attribute with endpoint 8 On TH(bridge-app) Log: + + Verify the PartList attribute response with endpoint 8 On TH(bridge-app) Log: + [1666962423.861269][218195:218195] CHIP:IM: Received Read request [1666962423.861296][218195:218195] CHIP:DMG: ReadRequestMessage = [1666962423.861303][218195:218195] CHIP:DMG: { @@ -5731,7 +5752,8 @@ tests: ./chip-tool descriptor read parts-list 1 9 - Verify the PartList attribute with endpoint 9 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 9 On TH(bridge-app) Log: + [1666962496.027253][218195:218195] CHIP:IM: Received Read request [1666962496.027291][218195:218195] CHIP:DMG: ReadRequestMessage = [1666962496.027300][218195:218195] CHIP:DMG: { @@ -5810,7 +5832,7 @@ tests: ./chip-tool descriptor read parts-list 1 10 - Verify the PartList attribute with endpoint 10 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 10 On TH(bridge-app) Log: [1666962545.266945][218195:218195] CHIP:IM: Received Read request [1666962545.266979][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -5890,7 +5912,7 @@ tests: ./chip-tool descriptor read parts-list 1 11 - Verify the PartList attribute with endpoint 11 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 11 On TH(bridge-app) Log: [1666962605.941370][218195:218195] CHIP:IM: Received Read request [1666962605.941421][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -5971,7 +5993,7 @@ tests: ./chip-tool descriptor read parts-list 1 12 - Verify the PartList attribute with endpoint 12 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 12 On TH(bridge-app) Log: [1666962633.918167][218195:218195] CHIP:IM: Received Read request [1666962633.918280][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -6052,7 +6074,7 @@ tests: ./chip-tool descriptor read parts-list 1 13 - Verify the PartList attribute with endpoint 13 On TH(bridge-app) Log: + Verify the PartList attribute response with endpoint 13 On TH(bridge-app) Log: [1666962673.106887][218195:218195] CHIP:IM: Received Read request [1666962673.106920][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -6132,54 +6154,43 @@ tests: disabled: true - label: - "Verify DUT has (during step 1a) read the NodeLabel attribute from the - Bridged Device Basic Information cluster on various endpoints,Verify - DUT contains the names for the (supported) devices from the above list" + "Step 1c: Verify DUT has (during step 1a) read the NodeLabel attribute + from the Bridged Device Basic Information cluster on various + endpoints. Verify DUT contains the names for the (supported) devices + from the above list" PICS: MCORE.DEVLIST.UseDeviceName verification: | NodeLabel is supported for endpoints 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ./chip-tool bridgeddevicebasicinformation read node-label 1 3 - Verify the node-label with endpoint 3 On TH(bridge-app) Log: - - [1663916825.766885][1588:1588] CHIP:DMG: ReportDataMessage = - [1663916825.766934][1588:1588] CHIP:DMG: { - [1663916825.766955][1588:1588] CHIP:DMG: AttributeReportIBs = - [1663916825.766984][1588:1588] CHIP:DMG: [ - [1663916825.767006][1588:1588] CHIP:DMG: AttributeReportIB = - [1663916825.767154][1588:1588] CHIP:DMG: { - [1663916825.767218][1588:1588] CHIP:DMG: AttributeDataIB = - [1663916825.767252][1588:1588] CHIP:DMG: { - [1663916825.767283][1588:1588] CHIP:DMG: DataVersion = 0x6bd99dc9, - [1663916825.767309][1588:1588] CHIP:DMG: AttributePathIB = - [1663916825.767388][1588:1588] CHIP:DMG: { - [1663916825.767423][1588:1588] CHIP:DMG: Endpoint = 0x3, - [1663916825.767456][1588:1588] CHIP:DMG: Cluster = 0x39, - [1663916825.767502][1588:1588] CHIP:DMG: Attribute = 0x0000_0005, - [1663916825.767578][1588:1588] CHIP:DMG: } - [1663916825.767614][1588:1588] CHIP:DMG: - [1663916825.767641][1588:1588] CHIP:DMG: Data = [ - [1663916825.767688][1588:1588] CHIP:DMG: - [1663916825.767743][1588:1588] CHIP:DMG: ], - [1663916825.767772][1588:1588] CHIP:DMG: }, - [1663916825.767824][1588:1588] CHIP:DMG: - [1663916825.767867][1588:1588] CHIP:DMG: }, - [1663916825.767897][1588:1588] CHIP:DMG: - [1663916825.767918][1588:1588] CHIP:DMG: ], - [1663916825.767945][1588:1588] CHIP:DMG: - [1663916825.767992][1588:1588] CHIP:DMG: SuppressResponse = true, - [1663916825.768016][1588:1588] CHIP:DMG: InteractionModelRevision = 1 - [1663916825.768038][1588:1588] CHIP:DMG: } - [1663916825.768059][1588:1588] CHIP:DMG: - [1663916825.768347][1588:1588] CHIP:DMG: OnReportConfirm: NumReports = 0 - [1663916825.768378][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages - [1663916825.768400][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] - [1663916825.768429][1588:1588] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet + Verify the node-label attribute response with endpoint 3 On TH(bridge-app) Log: + + [1678949732.758830][30220:30220] CHIP:IM: Received Read request + [1678949732.758854][30220:30220] CHIP:DMG: ReadRequestMessage = + [1678949732.758859][30220:30220] CHIP:DMG: { + [1678949732.758862][30220:30220] CHIP:DMG: AttributePathIBs = + [1678949732.758866][30220:30220] CHIP:DMG: [ + [1678949732.758870][30220:30220] CHIP:DMG: AttributePathIB = + [1678949732.758875][30220:30220] CHIP:DMG: { + [1678949732.758879][30220:30220] CHIP:DMG: Endpoint = 0x3, + [1678949732.758884][30220:30220] CHIP:DMG: Cluster = 0x39, + [1678949732.758889][30220:30220] CHIP:DMG: Attribute = 0x0000_0005, + [1678949732.758893][30220:30220] CHIP:DMG: } + [1678949732.758897][30220:30220] CHIP:DMG: + [1678949732.758901][30220:30220] CHIP:DMG: ], + [1678949732.758906][30220:30220] CHIP:DMG: + [1678949732.758910][30220:30220] CHIP:DMG: isFabricFiltered = true, + [1678949732.758914][30220:30220] CHIP:DMG: InteractionModelRevision = 1 + [1678949732.758918][30220:30220] CHIP:DMG: }, + [1678949732.758937][30220:30220] CHIP:DMG: IM RH moving to [GeneratingReports] + [1678949732.758953][30220:30220] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1678949732.758959][30220:30220] CHIP:DMG: Cluster 39, Attribute 5 is dirty + ./chip-tool bridgeddevicebasicinformation read node-label 1 4 - Verify the node-label with endpoint 4 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 4 On TH(bridge-app) Log: [1663916874.414183][1588:1588] CHIP:DMG: [1663916874.414304][1588:1588] CHIP:DMG: ReportDataMessage = @@ -6214,14 +6225,12 @@ tests: [1663916874.416261][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] [1663916874.416299][1588:1588] CHIP:DMG: All ReadHandler-s are clean, clear Globa - - ./chip-tool bridgeddevicebasicinformation read node-label 1 5 - Verify the node-label with endpoint 5 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 5 On TH(bridge-app) Log: [1663925132.199931][1588:1588] CHIP:DMG: - [1663925132.200086][1588:1588] CHIP:DMG: Verify in TH(bridge-app) Log:ReportDataMessage = + [1663925132.200086][1588:1588] CHIP:DMG: ReportDataMessage = [1663925132.200117][1588:1588] CHIP:DMG: { [1663925132.200153][1588:1588] CHIP:DMG: AttributeReportIBs = [1663925132.200190][1588:1588] CHIP:DMG: [ @@ -6254,10 +6263,9 @@ tests: [1663925132.201409][1588:1588] CHIP:DMG: All ReadHandler-s are clean, clear Globa - ./chip-tool bridgeddevicebasicinformation read node-label 1 6 - Verify the node-label with endpoint 6 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 6 On TH(bridge-app) Log: [1663925170.922635][1588:1588] CHIP:DMG: } [1663925170.922652][1588:1588] CHIP:DMG: @@ -6293,10 +6301,9 @@ tests: [1663925170.923752][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] - ./chip-tool bridgeddevicebasicinformation read node-label 1 7 - Verify the node-label with endpoint 7 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 7 On TH(bridge-app) Log: [1663925266.540251][1588:1588] CHIP:DMG: [1663925266.540311][1588:1588] CHIP:DMG: ReportDataMessage = @@ -6333,7 +6340,7 @@ tests: ./chip-tool bridgeddevicebasicinformation read node-label 1 8 - Verify the node-label with endpoint 8 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 8 On TH(bridge-app) Log: [1663925300.298779][1588:1588] CHIP:DMG: [1663925300.298852][1588:1588] CHIP:DMG: ReportDataMessage = @@ -6368,11 +6375,9 @@ tests: [1663925300.299963][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] - - ./chip-tool bridgeddevicebasicinformation read node-label 1 9 - Verify the node-label with endpoint 9 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 9 On TH(bridge-app) Log: [[1666958851.515530][218195:218195] CHIP:IM: Received Read request [1666958851.515565][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -6453,7 +6458,7 @@ tests: ./chip-tool bridgeddevicebasicinformation read node-label 1 10 - Verify the node-label with endpoint 10 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 10 On TH(bridge-app) Log: [1663925401.539430][1588:1588] CHIP:DMG: ReportDataMessage = [1663925401.539454][1588:1588] CHIP:DMG: { @@ -6488,10 +6493,9 @@ tests: - ./chip-tool bridgeddevicebasicinformation read node-label 1 11 - Verify the node-label with endpoint 11 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 11 On TH(bridge-app) Log: [1663925451.561534][1588:1588] CHIP:DMG: [1663925451.561598][1588:1588] CHIP:DMG: ReportDataMessage = @@ -6527,7 +6531,7 @@ tests: ./chip-tool bridgeddevicebasicinformation read node-label 1 12 - Verify the node-label with endpoint 12 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 12 On TH(bridge-app) Log: [1663925487.322435][1588:1588] CHIP:DMG: [1663925487.322496][1588:1588] CHIP:DMG: ReportDataMessage = @@ -6563,7 +6567,7 @@ tests: ./chip-tool bridgeddevicebasicinformation read node-label 1 13 - Verify the node-label with endpoint 13 On TH(bridge-app) Log: + Verify the node-label attribute response with endpoint 13 On TH(bridge-app) Log: [1663925529.771162][1588:1588] CHIP:DMG: } [1663925529.771179][1588:1588] CHIP:DMG: @@ -6601,16 +6605,16 @@ tests: disabled: true - label: - "Verify DUT has read or reads OnOff attribute from the On/Off cluster - for the various endpoints containing an On/Off light, Verify DUT - contains the state for the (supported) devices from the above list" + "Step 1d: Verify DUT has read or reads OnOff attribute from the On/Off + cluster for the various endpoints containing an On/Off light. Verify + DUT contains the state for the (supported) devices from the above list" PICS: MCORE.DEVLIST.UseDeviceState verification: | Read onoff attribute from OnOff cluster with applicable EP (refer step 1a ) ./chip-tool onoff read on-off 1 3 - Verify in TH(bridge-app) Log: + Verify onoff attribute response in TH(bridge-app) Log: [1666957927.222093][218195:218195] CHIP:IM: Received Read request [1666957927.222155][218195:218195] CHIP:DMG: ReadRequestMessage = @@ -6689,8 +6693,9 @@ tests: disabled: true - label: - "Use TH/bridge-app to change the on/off state of one or more of the - bridged On/Off lights (use key 'c' in the console to bridge-app)" + "Step 1e: Use TH/bridge-app to change the on/off state of one or more + of the bridged On/Off lights (use key 'c' in the console to + bridge-app)" PICS: MCORE.DEVLIST.UseDeviceState verification: | Press c on bridge-app to change the state @@ -6700,9 +6705,10 @@ tests: [1678950518.634668][30220:30222] CHIP:DL: Device[Light 1b]: ON [1678950518.634817][30220:30220] CHIP:DMG: Endpoint 3, Cluster 0x0000_0006 update version to e7d4a040 - Verify on TH(bridge-app) Log: ./chip-tool onoff read on-off 1 3 + Verify On/Off attribute response on TH(bridge-app) Log: + [1666957963.876084][218195:218195] CHIP:IM: Received Read request [1666957963.876112][218195:218195] CHIP:DMG: ReadRequestMessage = [1666957963.876119][218195:218195] CHIP:DMG: { @@ -6781,52 +6787,53 @@ tests: disabled: true - label: - "Verify DUT has read or reads MeasuredValue attribute from the - Temperature Measurement cluster for the various endpoints containing a - Temperature Sensor (or receives updates because of a previously set up - subscription) ,Verify DUT contains the state for the (supported) - device from the above list" + "Step 1f: Verify DUT has read or reads MeasuredValue attribute from + the Temperature Measurement cluster for the various endpoints + containing a Temperature Sensor (or receives updates because of a + previously set up subscription). Verify DUT contains the state for the + (supported) device from the above list" PICS: MCORE.DEVLIST.UseDeviceState verification: | ./chip-tool temperaturemeasurement read measured-value 1 4 - Verify on TH(bridge-app) Log: - [[1663925677.995424][1588:1588] CHIP:DMG: - [1663925677.995497][1588:1588] CHIP:DMG: ReportDataMessage = - [1663925677.995521][1588:1588] CHIP:DMG: { - [1663925677.995549][1588:1588] CHIP:DMG: AttributeReportIBs = - [1663925677.995576][1588:1588] CHIP:DMG: [ - [1663925677.995607][1588:1588] CHIP:DMG: AttributeReportIB = - [1663925677.995638][1588:1588] CHIP:DMG: { - [1663925677.995671][1588:1588] CHIP:DMG: AttributeDataIB = - [1663925677.995697][1588:1588] CHIP:DMG: { - [1663925677.995736][1588:1588] CHIP:DMG: DataVersion = 0xf0f8afb8, - [1663925677.995767][1588:1588] CHIP:DMG: AttributePathIB = - [1663925677.995805][1588:1588] CHIP:DMG: { - [1663925677.995836][1588:1588] CHIP:DMG: Endpoint = 0x4, - [1663925677.995875][1588:1588] CHIP:DMG: Cluster = 0x402, - [1663925677.995907][1588:1588] CHIP:DMG: Attribute = 0x0000_0000, - [1663925677.995945][1588:1588] CHIP:DMG: } - [1663925677.995977][1588:1588] CHIP:DMG: - [1663925677.996019][1588:1588] CHIP:DMG: Data = 100, - [1663925677.996048][1588:1588] CHIP:DMG: }, - [1663925677.996087][1588:1588] CHIP:DMG: - [1663925677.996112][1588:1588] CHIP:DMG: }, - [1663925677.996149][1588:1588] CHIP:DMG: - [1663925677.996171][1588:1588] CHIP:DMG: ], - [1663925677.996208][1588:1588] CHIP:DMG: - [1663925677.996230][1588:1588] CHIP:DMG: SuppressResponse = true, - [1663925677.996260][1588:1588] CHIP:DMG: InteractionModelRevision = 1 - [1663925677.996282][1588:1588] CHIP:DMG: } - [1663925677.996301][1588:1588] CHIP:DMG: - [1663925677.996528][1588:1588] CHIP:DMG: OnReportConfirm: NumReports = 0 - [1663925677.996561][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages - [1663925677.996585][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] + Verify MeasuredValue attribute response on TH(bridge-app) Log: + + [[1663925677.995424][1588:1588] CHIP:DMG: + [1663925677.995497][1588:1588] CHIP:DMG: ReportDataMessage = + [1663925677.995521][1588:1588] CHIP:DMG: { + [1663925677.995549][1588:1588] CHIP:DMG: AttributeReportIBs = + [1663925677.995576][1588:1588] CHIP:DMG: [ + [1663925677.995607][1588:1588] CHIP:DMG: AttributeReportIB = + [1663925677.995638][1588:1588] CHIP:DMG: { + [1663925677.995671][1588:1588] CHIP:DMG: AttributeDataIB = + [1663925677.995697][1588:1588] CHIP:DMG: { + [1663925677.995736][1588:1588] CHIP:DMG: DataVersion = 0xf0f8afb8, + [1663925677.995767][1588:1588] CHIP:DMG: AttributePathIB = + [1663925677.995805][1588:1588] CHIP:DMG: { + [1663925677.995836][1588:1588] CHIP:DMG: Endpoint = 0x4, + [1663925677.995875][1588:1588] CHIP:DMG: Cluster = 0x402, + [1663925677.995907][1588:1588] CHIP:DMG: Attribute = 0x0000_0000, + [1663925677.995945][1588:1588] CHIP:DMG: } + [1663925677.995977][1588:1588] CHIP:DMG: + [1663925677.996019][1588:1588] CHIP:DMG: Data = 100, + [1663925677.996048][1588:1588] CHIP:DMG: }, + [1663925677.996087][1588:1588] CHIP:DMG: + [1663925677.996112][1588:1588] CHIP:DMG: }, + [1663925677.996149][1588:1588] CHIP:DMG: + [1663925677.996171][1588:1588] CHIP:DMG: ], + [1663925677.996208][1588:1588] CHIP:DMG: + [1663925677.996230][1588:1588] CHIP:DMG: SuppressResponse = true, + [1663925677.996260][1588:1588] CHIP:DMG: InteractionModelRevision = 1 + [1663925677.996282][1588:1588] CHIP:DMG: } + [1663925677.996301][1588:1588] CHIP:DMG: + [1663925677.996528][1588:1588] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1663925677.996561][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1663925677.996585][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] disabled: true - label: - "Use TH/bridge-app to change the simulated temperature level of the - simulated temperature sensors (use key 't' in the console to + "Step 1g: Use TH/bridge-app to change the simulated temperature level + of the simulated temperature sensors (use key 't' in the console to bridge-app)" PICS: MCORE.DEVLIST.UseDeviceState verification: | @@ -6835,9 +6842,8 @@ tests: ./chip-tool temperaturemeasurement read measured-value 1 4 - Verify on TH(bridge-app) Log: + Verify MeasuredValue attribute response on TH(bridge-app) Log: - expect to get a different value than step 7b [1663925766.995856][1588:1588] CHIP:DMG: ReportDataMessage = [1663925766.995878][1588:1588] CHIP:DMG: { [1663925766.995896][1588:1588] CHIP:DMG: AttributeReportIBs = @@ -6871,56 +6877,56 @@ tests: disabled: true - label: - "Verify DUT has read or reads BatChargeLevel attribute from the Power - Source cluster from the relevant endpoint (or receives updates because - of a previously set up subscription) ,Verify DUT contains the state of - the battery of the (supported) devices from the above list" - PICS: MCORE.DEVLIST.UseBatInfo + "Step 1h: Verify DUT has read or reads BatChargeLevel attribute from + the Power Source cluster from the relevant endpoint (or receives + updates because of a previously set up subscription).Verify DUT + contains the state of the battery of the (supported) devices from the + above list" verification: | ./chip-tool powersource read bat-charge-level 1 9 - Verify on TH(bridge-app) Log: - - [1663925822.845528][1588:1588] CHIP:DMG: - [1663925822.845587][1588:1588] CHIP:DMG: ReportDataMessage = - [1663925822.845609][1588:1588] CHIP:DMG: { - [1663925822.845627][1588:1588] CHIP:DMG: AttributeReportIBs = - [1663925822.845652][1588:1588] CHIP:DMG: [ - [1663925822.845672][1588:1588] CHIP:DMG: AttributeReportIB = - [1663925822.845697][1588:1588] CHIP:DMG: { - [1663925822.845720][1588:1588] CHIP:DMG: AttributeDataIB = - [1663925822.845747][1588:1588] CHIP:DMG: { - [1663925822.845775][1588:1588] CHIP:DMG: DataVersion = 0xc7a1a64e, - [1663925822.845801][1588:1588] CHIP:DMG: AttributePathIB = - [1663925822.845829][1588:1588] CHIP:DMG: { - [1663925822.845859][1588:1588] CHIP:DMG: Endpoint = 0x9, - [1663925822.845888][1588:1588] CHIP:DMG: Cluster = 0x2f, - [1663925822.845919][1588:1588] CHIP:DMG: Attribute = 0x0000_000E, - [1663925822.845946][1588:1588] CHIP:DMG: } - [1663925822.845978][1588:1588] CHIP:DMG: - [1663925822.846007][1588:1588] CHIP:DMG: Data = 58, - [1663925822.846035][1588:1588] CHIP:DMG: }, - [1663925822.846063][1588:1588] CHIP:DMG: - [1663925822.846086][1588:1588] CHIP:DMG: }, - [1663925822.846112][1588:1588] CHIP:DMG: - [1663925822.846131][1588:1588] CHIP:DMG: ], - [1663925822.846156][1588:1588] CHIP:DMG: - [1663925822.846176][1588:1588] CHIP:DMG: SuppressResponse = true, - [1663925822.846201][1588:1588] CHIP:DMG: InteractionModelRevision = 1 - [1663925822.846221][1588:1588] CHIP:DMG: } - [1663925822.846238][1588:1588] CHIP:DMG: - [1663925822.846416][1588:1588] CHIP:DMG: OnReportConfirm: NumReports = 0 - [1663925822.846442][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages - [1663925822.846461][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] + Verify BatChargeLevel attribute response on TH(bridge-app) Log: + + [1663925822.845528][1588:1588] CHIP:DMG: + [1663925822.845587][1588:1588] CHIP:DMG: ReportDataMessage = + [1663925822.845609][1588:1588] CHIP:DMG: { + [1663925822.845627][1588:1588] CHIP:DMG: AttributeReportIBs = + [1663925822.845652][1588:1588] CHIP:DMG: [ + [1663925822.845672][1588:1588] CHIP:DMG: AttributeReportIB = + [1663925822.845697][1588:1588] CHIP:DMG: { + [1663925822.845720][1588:1588] CHIP:DMG: AttributeDataIB = + [1663925822.845747][1588:1588] CHIP:DMG: { + [1663925822.845775][1588:1588] CHIP:DMG: DataVersion = 0xc7a1a64e, + [1663925822.845801][1588:1588] CHIP:DMG: AttributePathIB = + [1663925822.845829][1588:1588] CHIP:DMG: { + [1663925822.845859][1588:1588] CHIP:DMG: Endpoint = 0x9, + [1663925822.845888][1588:1588] CHIP:DMG: Cluster = 0x2f, + [1663925822.845919][1588:1588] CHIP:DMG: Attribute = 0x0000_000E, + [1663925822.845946][1588:1588] CHIP:DMG: } + [1663925822.845978][1588:1588] CHIP:DMG: + [1663925822.846007][1588:1588] CHIP:DMG: Data = 58, + [1663925822.846035][1588:1588] CHIP:DMG: }, + [1663925822.846063][1588:1588] CHIP:DMG: + [1663925822.846086][1588:1588] CHIP:DMG: }, + [1663925822.846112][1588:1588] CHIP:DMG: + [1663925822.846131][1588:1588] CHIP:DMG: ], + [1663925822.846156][1588:1588] CHIP:DMG: + [1663925822.846176][1588:1588] CHIP:DMG: SuppressResponse = true, + [1663925822.846201][1588:1588] CHIP:DMG: InteractionModelRevision = 1 + [1663925822.846221][1588:1588] CHIP:DMG: } + [1663925822.846238][1588:1588] CHIP:DMG: + [1663925822.846416][1588:1588] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1663925822.846442][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1663925822.846461][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] disabled: true - label: - "Use the DUT to change the on/off state of one or more of the bridged - On/Off lights" + "Step 2a: Use the DUT to change the on/off state of one or more of the + bridged On/Off lights" verification: | ./chip-tool onoff read on-off 1 3 - Verify on TH(bridge-app) Log: + Verify On/Off attribute response on TH(bridge-app) Log: [1659973152.263905][3652:3652] CHIP:IM: Received Read request [1659973152.264002][3652:3652] CHIP:DMG: ReadRequestMessage = @@ -6945,13 +6951,13 @@ tests: disabled: true - label: - "Use TH/bridge-app to rename a bridged light (use key 'b' in the - console to bridge-app to rename Light 1 to Light 1b)" + "Step 3a: Use TH/bridge-app to rename a bridged light (use key 'b' in + the console to bridge-app to rename Light 1 to Light 1b)" PICS: MCORE.DEVLIST.UseDeviceName verification: | ./chip-tool bridgeddevicebasicinformation read node-label 1 3 - Verify on TH(bridge-app) Log: + Verify NodeLabel attribute response on TH(bridge-app) Log: [1663925916.519589][1588:1588] CHIP:DMG: ReportDataMessage = [1663925916.519654][1588:1588] CHIP:DMG: { @@ -6984,6 +6990,9 @@ tests: [1663925916.521023][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages [1663925916.521045][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] + + Press a key 'b' on bridge-app to rename a bridged light + Verify on TH(bridge-app) Log "b @@ -6991,7 +7000,8 @@ tests: ./chip-tool bridgeddevicebasicinformation read node-label 1 3 - Verify on TH(bridge-app) Log: + Verify NodeLabel attribute response on TH(bridge-app) Log: + [1663925967.303463][1588:1588] CHIP:DMG: ReportDataMessage = [1663925967.303486][1588:1588] CHIP:DMG: { [1663925967.303505][1588:1588] CHIP:DMG: AttributeReportIBs = @@ -7024,141 +7034,24 @@ tests: [1663925967.304405][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] disabled: true - - label: "Verify DUT contains the updated name for the renamed device" - PICS: MCORE.DEVLIST.UseDeviceName + - label: + "Step 3b: Verify DUT contains the updated name for the renamed device" verification: | Verify on TH(bridge-app) Log + b [1659089470.077297][12236:12241] CHIP:DL: Device[Light 1]: New Name="Light 1b" - disabled: true + disabled: True - label: - "Use TH/bridge-app to add a bridged light (use key '2' in the console - to bridge-app to add Light 2)" - verification: | - Press '2' on TH(bridge-app) Log - - ./chip-tool descriptor read parts-list 1 0 - - Verify the endpoints listed in TH(bridge-app) Log - - [1659972886.385225][3652:3652] CHIP:IM: Received Read request - [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = - [1659972886.385353][3652:3652] CHIP:DMG: { - [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs = - [1659972886.385413][3652:3652] CHIP:DMG: [ - [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB = - [1659972886.385482][3652:3652] CHIP:DMG: { - [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x0, - [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d, - [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003, - [1659972886.385630][3652:3652] CHIP:DMG: } - [1659972886.385668][3652:3652] CHIP:DMG: - [1659972886.385694][3652:3652] CHIP:DMG: ], - [1659972886.385730][3652:3652] CHIP:DMG: - [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true, - [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1 - [1659972886.385817][3652:3652] CHIP:DMG: }, - [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty - - " - ./chip-tool descriptor read parts-list 1 1 - Verify the list contains 11 entries in TH(bridge-app) Log - - [1659972886.385225][3652:3652] CHIP:IM: Received Read request - [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = - [1659972886.385353][3652:3652] CHIP:DMG: { - [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs = - [1659972886.385413][3652:3652] CHIP:DMG: [ - [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB = - [1659972886.385482][3652:3652] CHIP:DMG: { - [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x1, - [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d, - [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003, - [1659972886.385630][3652:3652] CHIP:DMG: } - [1659972886.385668][3652:3652] CHIP:DMG: - [1659972886.385694][3652:3652] CHIP:DMG: ], - [1659972886.385730][3652:3652] CHIP:DMG: - [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true, - [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1 - [1659972886.385817][3652:3652] CHIP:DMG: }, - [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty - - ./chip-tool descriptor read parts-list 1 14 - - Verify on TH(bridge-app) Log - - [1659972886.385225][3652:3652] CHIP:IM: Received Read request - [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = - [1659972886.385353][3652:3652] CHIP:DMG: { - [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs = - [1659972886.385413][3652:3652] CHIP:DMG: [ - [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB = - [1659972886.385482][3652:3652] CHIP:DMG: { - [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x14, - [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d, - [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003, - [1659972886.385630][3652:3652] CHIP:DMG: } - [1659972886.385668][3652:3652] CHIP:DMG: - [1659972886.385694][3652:3652] CHIP:DMG: ], - [1659972886.385730][3652:3652] CHIP:DMG: - [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true, - [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1 - [1659972886.385817][3652:3652] CHIP:DMG: }, - [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty - - ./chip-tool descriptor read device-type-list 1 14 - - Verify the list contains 11 entries in TH(bridge-app) Log - - [1659972694.732632][3652:3652] CHIP:IM: Received Read request - [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage = - [1659972694.732739][3652:3652] CHIP:DMG: { - [1659972694.732761][3652:3652] CHIP:DMG: AttributePathIBs = - [1659972694.732800][3652:3652] CHIP:DMG: [ - [1659972694.732824][3652:3652] CHIP:DMG: AttributePathIB = - [1659972694.732866][3652:3652] CHIP:DMG: { - [1659972694.732905][3652:3652] CHIP:DMG: Endpoint = 0x14, - [1659972694.732940][3652:3652] CHIP:DMG: Cluster = 0x1d, - [1659972694.732980][3652:3652] CHIP:DMG: Attribute = 0x0000_0000, - [1659972694.733009][3652:3652] CHIP:DMG: } - [1659972694.733066][3652:3652] CHIP:DMG: - [1659972694.733092][3652:3652] CHIP:DMG: ], - [1659972694.733128][3652:3652] CHIP:DMG: - [1659972694.733154][3652:3652] CHIP:DMG: isFabricFiltered = true, - [1659972694.733188][3652:3652] CHIP:DMG: InteractionModelRevision = 1 - [1659972694.733211][3652:3652] CHIP:DMG: }, - [1659972694.733292][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659972694.733401][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659972694.733429][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty - [1659972694.733460][3652:3652] CHIP:DMG: Reading attribute: Cluster=0x0000_001D Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1659972694.733487][3652:3652] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_001D e=1 p=v - [1659972694.733520][3652:3652] CHIP:DMG: AccessControl: allowed - disabled: true - - - label: "Verify DUT contains the added device in the list of devices" - PICS: MCORE.DEVLIST.UseDevices + "Step 3c: Use TH/bridge-app to add a bridged light (use key '2' in the + console to bridge-app to add Light 2)" verification: | - Verify on TH(bridge-app) Log - 2 - [1659352274.915018][14237:14242] CHIP:DMG: Endpoint 1, Cluster 0x0000_001D update version to 7e918bae - [1659352274.915107][14237:14242] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 7561f371 - [1659352274.915166][14237:14242] CHIP:DL: Added device Light 2 to dynamic endpoint 14 (index=11) - disabled: true + Press a key '2' on bridge-app to add a bridged light - - label: - "Use TH/bridge-app to remove a bridged light (use key '4' in the - console to bridge-app to remove Light 1b)" - verification: | ./chip-tool descriptor read parts-list 1 0 - Verify the endpoints listed in TH(bridge-app) Log + Verify the PartList list attribute response with 13 entries on TH(bridge-app) Log: [[1663926036.463802][1588:1588] CHIP:DMG: [1663926036.464013][1588:1588] CHIP:DMG: ReportDataMessage = @@ -7215,24 +7108,24 @@ tests: [1663926036.465435][1588:1588] CHIP:DMG: ListIndex = Null, [1663926036.465461][1588:1588] CHIP:DMG: } [1663926036.465489][1588:1588] CHIP:DMG: - [1663926036.465517][1588:1588] CHIP:DMG: Data = 3, - [1663926036.465542][1588:1588] CHIP:DMG: }, - [1663926036.465572][1588:1588] CHIP:DMG: - [1663926036.465594][1588:1588] CHIP:DMG: }, - [1663926036.465624][1588:1588] CHIP:DMG: - [1663926036.465645][1588:1588] CHIP:DMG: AttributeReportIB = - [1663926036.465675][1588:1588] CHIP:DMG: { - [1663926036.465700][1588:1588] CHIP:DMG: AttributeDataIB = - [1663926036.465728][1588:1588] CHIP:DMG: { - [1663926036.465754][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, - [1663926036.465779][1588:1588] CHIP:DMG: AttributePathIB = - [1663926036.465806][1588:1588] CHIP:DMG: { - [1663926036.465835][1588:1588] CHIP:DMG: Endpoint = 0x0, - [1663926036.465863][1588:1588] CHIP:DMG: Cluster = 0x1d, - [1663926036.465894][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, - [1663926036.465924][1588:1588] CHIP:DMG: ListIndex = Null, - [1663926036.465951][1588:1588] CHIP:DMG: } - [1663926036.465981][1588:1588] CHIP:DMG: + [1663926036.465036][1588:1588] CHIP:DMG: Data = 3, + [1663926036.465062][1588:1588] CHIP:DMG: }, + [1663926036.465090][1588:1588] CHIP:DMG: + [1663926036.465112][1588:1588] CHIP:DMG: }, + [1663926036.465142][1588:1588] CHIP:DMG: + [1663926036.465163][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.465193][1588:1588] CHIP:DMG: { + [1663926036.465216][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.465241][1588:1588] CHIP:DMG: { + [1663926036.465268][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.465294][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.465323][1588:1588] CHIP:DMG: { + [1663926036.465350][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.465378][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.465407][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.465435][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.465461][1588:1588] CHIP:DMG: } + [1663926036.465489][1588:1588] CHIP:DMG: [1663926036.466009][1588:1588] CHIP:DMG: Data = 4, [1663926036.466034][1588:1588] CHIP:DMG: }, [1663926036.466061][1588:1588] CHIP:DMG: @@ -7428,9 +7321,10 @@ tests: [1663926036.471404][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages [1663926036.471424][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] - " + ./chip-tool descriptor read parts-list 1 1 - Verify the list contains 11 entries in TH(bridge-app) Log + + Verify the PartList attribute response with 12 entries in TH(bridge-app) Log [1663926082.690768][1588:1588] CHIP:DMG: [1663926082.690991][1588:1588] CHIP:DMG: ReportDataMessage = @@ -7469,24 +7363,24 @@ tests: [1663926082.691972][1588:1588] CHIP:DMG: ListIndex = Null, [1663926082.692005][1588:1588] CHIP:DMG: } [1663926082.692039][1588:1588] CHIP:DMG: - [1663926082.692071][1588:1588] CHIP:DMG: Data = 3, - [1663926082.692103][1588:1588] CHIP:DMG: }, - [1663926082.692132][1588:1588] CHIP:DMG: - [1663926082.692157][1588:1588] CHIP:DMG: }, - [1663926082.692191][1588:1588] CHIP:DMG: - [1663926082.692213][1588:1588] CHIP:DMG: AttributeReportIB = - [1663926082.692244][1588:1588] CHIP:DMG: { - [1663926082.692269][1588:1588] CHIP:DMG: AttributeDataIB = - [1663926082.692298][1588:1588] CHIP:DMG: { - [1663926082.692327][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, - [1663926082.692356][1588:1588] CHIP:DMG: AttributePathIB = - [1663926082.692383][1588:1588] CHIP:DMG: { - [1663926082.692414][1588:1588] CHIP:DMG: Endpoint = 0x1, - [1663926082.692448][1588:1588] CHIP:DMG: Cluster = 0x1d, - [1663926082.692481][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, - [1663926082.692515][1588:1588] CHIP:DMG: ListIndex = Null, - [1663926082.692545][1588:1588] CHIP:DMG: } - [1663926082.692582][1588:1588] CHIP:DMG: + [1663926082.692613][1588:1588] CHIP:DMG: Data = 3, + [1663926082.692658][1588:1588] CHIP:DMG: }, + [1663926082.692691][1588:1588] CHIP:DMG: + [1663926082.692716][1588:1588] CHIP:DMG: }, + [1663926082.692751][1588:1588] CHIP:DMG: + [1663926082.692774][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.692804][1588:1588] CHIP:DMG: { + [1663926082.692830][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.692860][1588:1588] CHIP:DMG: { + [1663926082.692888][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.692918][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.692950][1588:1588] CHIP:DMG: { + [1663926082.692984][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.693016][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.693045][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.693076][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.693107][1588:1588] CHIP:DMG: } + [1663926082.693138][1588:1588] CHIP:DMG: [1663926082.692613][1588:1588] CHIP:DMG: Data = 4, [1663926082.692658][1588:1588] CHIP:DMG: }, [1663926082.692691][1588:1588] CHIP:DMG: @@ -7681,15 +7575,578 @@ tests: [1663926082.698647][1588:1588] CHIP:DMG: OnReportConfirm: NumReports = 0 [1663926082.698681][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages [1663926082.698702][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] + + ./chip-tool descriptor read parts-list 1 14 + + Verify PartList attribute response with endpoint 14 on TH(bridge-app) Log + + [1659972886.385225][3652:3652] CHIP:IM: Received Read request + [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage = + [1659972886.385353][3652:3652] CHIP:DMG: { + [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs = + [1659972886.385413][3652:3652] CHIP:DMG: [ + [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB = + [1659972886.385482][3652:3652] CHIP:DMG: { + [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x14, + [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d, + [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003, + [1659972886.385630][3652:3652] CHIP:DMG: } + [1659972886.385668][3652:3652] CHIP:DMG: + [1659972886.385694][3652:3652] CHIP:DMG: ], + [1659972886.385730][3652:3652] CHIP:DMG: + [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true, + [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1 + [1659972886.385817][3652:3652] CHIP:DMG: }, + [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] + [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty + + ./chip-tool descriptor read device-type-list 1 14 + + Verify DeviceTypeList attribute response with endpoint 14 on TH(bridge-app) Log + + [1659972694.732632][3652:3652] CHIP:IM: Received Read request + [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage = + [1659972694.732739][3652:3652] CHIP:DMG: { + [1659972694.732761][3652:3652] CHIP:DMG: AttributePathIBs = + [1659972694.732800][3652:3652] CHIP:DMG: [ + [1659972694.732824][3652:3652] CHIP:DMG: AttributePathIB = + [1659972694.732866][3652:3652] CHIP:DMG: { + [1659972694.732905][3652:3652] CHIP:DMG: Endpoint = 0x14, + [1659972694.732940][3652:3652] CHIP:DMG: Cluster = 0x1d, + [1659972694.732980][3652:3652] CHIP:DMG: Attribute = 0x0000_0000, + [1659972694.733009][3652:3652] CHIP:DMG: } + [1659972694.733066][3652:3652] CHIP:DMG: + [1659972694.733092][3652:3652] CHIP:DMG: ], + [1659972694.733128][3652:3652] CHIP:DMG: + [1659972694.733154][3652:3652] CHIP:DMG: isFabricFiltered = true, + [1659972694.733188][3652:3652] CHIP:DMG: InteractionModelRevision = 1 + [1659972694.733211][3652:3652] CHIP:DMG: }, + [1659972694.733292][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports] + [1659972694.733401][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1659972694.733429][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty + [1659972694.733460][3652:3652] CHIP:DMG: Reading attribute: Cluster=0x0000_001D Endpoint=1 AttributeId=0x0000_0000 (expanded=0) + [1659972694.733487][3652:3652] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_001D e=1 p=v + [1659972694.733520][3652:3652] CHIP:DMG: AccessControl: allowed disabled: true - label: - "Verify DUT no longer contains the removed device in the list of - devices" - PICS: MCORE.DEVLIST.UseDevices + "Step 3d: Verify DUT contains the added device in the list of devices" + verification: | + Verify on TH(bridge-app) Log + + 2 + [1659352274.915018][14237:14242] CHIP:DMG: Endpoint 1, Cluster 0x0000_001D update version to 7e918bae + [1659352274.915107][14237:14242] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 7561f371 + [1659352274.915166][14237:14242] CHIP:DL: Added device Light 2 to dynamic endpoint 14 (index=11) + disabled: true + + - label: + "Step 3e: Use TH/bridge-app to remove a bridged light (use key '4' in + the console to bridge-app to remove Light 1b)" verification: | - Verify on TH(bridge-app) Log 4 + Press a key '4' on bridge-app to remove a bridged light + + ./chip-tool descriptor read parts-list 1 0 + + Verify PartList attribute response with 12 entries on TH(bridge-app) Log + + [[1663926036.463802][1588:1588] CHIP:DMG: + [1663926036.464013][1588:1588] CHIP:DMG: ReportDataMessage = + [1663926036.464035][1588:1588] CHIP:DMG: { + [1663926036.464052][1588:1588] CHIP:DMG: AttributeReportIBs = + [1663926036.464077][1588:1588] CHIP:DMG: [ + [1663926036.464097][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.464125][1588:1588] CHIP:DMG: { + [1663926036.464148][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.464176][1588:1588] CHIP:DMG: { + [1663926036.464205][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.464233][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.464262][1588:1588] CHIP:DMG: { + [1663926036.464292][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.464324][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.464353][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.464380][1588:1588] CHIP:DMG: } + [1663926036.464411][1588:1588] CHIP:DMG: + [1663926036.464438][1588:1588] CHIP:DMG: Data = [ + [1663926036.464465][1588:1588] CHIP:DMG: + [1663926036.464491][1588:1588] CHIP:DMG: ], + [1663926036.464518][1588:1588] CHIP:DMG: }, + [1663926036.464549][1588:1588] CHIP:DMG: + [1663926036.464571][1588:1588] CHIP:DMG: }, + [1663926036.464602][1588:1588] CHIP:DMG: + [1663926036.464622][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.464706][1588:1588] CHIP:DMG: { + [1663926036.464730][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.464757][1588:1588] CHIP:DMG: { + [1663926036.464786][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.464812][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.464839][1588:1588] CHIP:DMG: { + [1663926036.464866][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.464894][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.464923][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.464951][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.464978][1588:1588] CHIP:DMG: } + [1663926036.465006][1588:1588] CHIP:DMG: + [1663926036.465036][1588:1588] CHIP:DMG: Data = 1, + [1663926036.465062][1588:1588] CHIP:DMG: }, + [1663926036.465090][1588:1588] CHIP:DMG: + [1663926036.465112][1588:1588] CHIP:DMG: }, + [1663926036.465142][1588:1588] CHIP:DMG: + [1663926036.465163][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.465193][1588:1588] CHIP:DMG: { + [1663926036.465216][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.465241][1588:1588] CHIP:DMG: { + [1663926036.465268][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.465294][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.465323][1588:1588] CHIP:DMG: { + [1663926036.465350][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.465378][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.465407][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.465435][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.465461][1588:1588] CHIP:DMG: } + [1663926036.465489][1588:1588] CHIP:DMG: + [1663926036.466009][1588:1588] CHIP:DMG: Data = 4, + [1663926036.466034][1588:1588] CHIP:DMG: }, + [1663926036.466061][1588:1588] CHIP:DMG: + [1663926036.466083][1588:1588] CHIP:DMG: }, + [1663926036.466113][1588:1588] CHIP:DMG: + [1663926036.466135][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.466164][1588:1588] CHIP:DMG: { + [1663926036.466187][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.466212][1588:1588] CHIP:DMG: { + [1663926036.466238][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.466264][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.466290][1588:1588] CHIP:DMG: { + [1663926036.466317][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.466345][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.466374][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.466402][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.466429][1588:1588] CHIP:DMG: } + [1663926036.466456][1588:1588] CHIP:DMG: + [1663926036.466486][1588:1588] CHIP:DMG: Data = 5, + [1663926036.466512][1588:1588] CHIP:DMG: }, + [1663926036.466540][1588:1588] CHIP:DMG: + [1663926036.466562][1588:1588] CHIP:DMG: }, + [1663926036.466592][1588:1588] CHIP:DMG: + [1663926036.466612][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.466639][1588:1588] CHIP:DMG: { + [1663926036.466659][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.466680][1588:1588] CHIP:DMG: { + [1663926036.466706][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.466732][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.466758][1588:1588] CHIP:DMG: { + [1663926036.466783][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.466812][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.466841][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.466869][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.466895][1588:1588] CHIP:DMG: } + [1663926036.466923][1588:1588] CHIP:DMG: + [1663926036.466951][1588:1588] CHIP:DMG: Data = 6, + [1663926036.466976][1588:1588] CHIP:DMG: }, + [1663926036.467002][1588:1588] CHIP:DMG: + [1663926036.467024][1588:1588] CHIP:DMG: }, + [1663926036.467054][1588:1588] CHIP:DMG: + [1663926036.467074][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.467101][1588:1588] CHIP:DMG: { + [1663926036.467123][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.467148][1588:1588] CHIP:DMG: { + [1663926036.467172][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.467197][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.467223][1588:1588] CHIP:DMG: { + [1663926036.467250][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.467280][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.467312][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.467340][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.467369][1588:1588] CHIP:DMG: } + [1663926036.467399][1588:1588] CHIP:DMG: + [1663926036.467430][1588:1588] CHIP:DMG: Data = 7, + [1663926036.467458][1588:1588] CHIP:DMG: }, + [1663926036.467485][1588:1588] CHIP:DMG: + [1663926036.467507][1588:1588] CHIP:DMG: }, + [1663926036.467538][1588:1588] CHIP:DMG: + [1663926036.467558][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.467584][1588:1588] CHIP:DMG: { + [1663926036.467607][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.467634][1588:1588] CHIP:DMG: { + [1663926036.467659][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.467686][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.467712][1588:1588] CHIP:DMG: { + [1663926036.467739][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.467768][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.467799][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.467829][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.467857][1588:1588] CHIP:DMG: } + [1663926036.467884][1588:1588] CHIP:DMG: + [1663926036.467915][1588:1588] CHIP:DMG: Data = 8, + [1663926036.467943][1588:1588] CHIP:DMG: }, + [1663926036.467971][1588:1588] CHIP:DMG: + [1663926036.467993][1588:1588] CHIP:DMG: }, + [1663926036.468023][1588:1588] CHIP:DMG: + [1663926036.468043][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.468069][1588:1588] CHIP:DMG: { + [1663926036.468092][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.468119][1588:1588] CHIP:DMG: { + [1663926036.468145][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.468171][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.468197][1588:1588] CHIP:DMG: { + [1663926036.468226][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.468263][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.468292][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.468320][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.468347][1588:1588] CHIP:DMG: } + [1663926036.468375][1588:1588] CHIP:DMG: + [1663926036.468405][1588:1588] CHIP:DMG: Data = 9, + [1663926036.468433][1588:1588] CHIP:DMG: }, + [1663926036.468463][1588:1588] CHIP:DMG: + [1663926036.468488][1588:1588] CHIP:DMG: }, + [1663926036.468518][1588:1588] CHIP:DMG: + [1663926036.468538][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.468565][1588:1588] CHIP:DMG: { + [1663926036.468587][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.468614][1588:1588] CHIP:DMG: { + [1663926036.468654][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.468684][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.468710][1588:1588] CHIP:DMG: { + [1663926036.468738][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.468764][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.468792][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.468820][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.468846][1588:1588] CHIP:DMG: } + [1663926036.468874][1588:1588] CHIP:DMG: + [1663926036.468901][1588:1588] CHIP:DMG: Data = 10, + [1663926036.468927][1588:1588] CHIP:DMG: }, + [1663926036.468957][1588:1588] CHIP:DMG: + [1663926036.468979][1588:1588] CHIP:DMG: }, + [1663926036.469007][1588:1588] CHIP:DMG: + [1663926036.469027][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.469054][1588:1588] CHIP:DMG: { + [1663926036.469076][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.469103][1588:1588] CHIP:DMG: { + [1663926036.469129][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.469154][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.469183][1588:1588] CHIP:DMG: { + [1663926036.469210][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.469238][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.469267][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.469295][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.469324][1588:1588] CHIP:DMG: } + [1663926036.469355][1588:1588] CHIP:DMG: + [1663926036.469382][1588:1588] CHIP:DMG: Data = 11, + [1663926036.469410][1588:1588] CHIP:DMG: }, + [1663926036.469438][1588:1588] CHIP:DMG: + [1663926036.469458][1588:1588] CHIP:DMG: }, + [1663926036.469487][1588:1588] CHIP:DMG: + [1663926036.469506][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.469533][1588:1588] CHIP:DMG: { + [1663926036.469556][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.469583][1588:1588] CHIP:DMG: { + [1663926036.469608][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.469633][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.469661][1588:1588] CHIP:DMG: { + [1663926036.469690][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.469722][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.469824][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.469857][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.469883][1588:1588] CHIP:DMG: } + [1663926036.469914][1588:1588] CHIP:DMG: + [1663926036.469941][1588:1588] CHIP:DMG: Data = 12, + [1663926036.469967][1588:1588] CHIP:DMG: }, + [1663926036.469995][1588:1588] CHIP:DMG: + [1663926036.470017][1588:1588] CHIP:DMG: }, + [1663926036.470048][1588:1588] CHIP:DMG: + [1663926036.470068][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.470095][1588:1588] CHIP:DMG: { + [1663926036.470117][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.470143][1588:1588] CHIP:DMG: { + [1663926036.470168][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.470194][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.470223][1588:1588] CHIP:DMG: { + [1663926036.470252][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.470278][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.470307][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.470338][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.470365][1588:1588] CHIP:DMG: } + [1663926036.470395][1588:1588] CHIP:DMG: + [1663926036.470421][1588:1588] CHIP:DMG: Data = 13, + [1663926036.470446][1588:1588] CHIP:DMG: }, + [1663926036.470473][1588:1588] CHIP:DMG: + [1663926036.470495][1588:1588] CHIP:DMG: }, + [1663926036.470526][1588:1588] CHIP:DMG: + [1663926036.470545][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926036.470572][1588:1588] CHIP:DMG: { + [1663926036.470594][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926036.470618][1588:1588] CHIP:DMG: { + [1663926036.470646][1588:1588] CHIP:DMG: DataVersion = 0x6f679aa8, + [1663926036.470672][1588:1588] CHIP:DMG: AttributePathIB = + [1663926036.470701][1588:1588] CHIP:DMG: { + [1663926036.470730][1588:1588] CHIP:DMG: Endpoint = 0x0, + [1663926036.470756][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926036.470784][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926036.470813][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926036.470840][1588:1588] CHIP:DMG: } + [1663926036.470868][1588:1588] CHIP:DMG: + [1663926036.470898][1588:1588] CHIP:DMG: Data = 14, + [1663926036.470921][1588:1588] CHIP:DMG: }, + [1663926036.470948][1588:1588] CHIP:DMG: + [1663926036.470970][1588:1588] CHIP:DMG: }, + [1663926036.470994][1588:1588] CHIP:DMG: + [1663926036.471013][1588:1588] CHIP:DMG: ], + [1663926036.471079][1588:1588] CHIP:DMG: + [1663926036.471100][1588:1588] CHIP:DMG: SuppressResponse = true, + [1663926036.471121][1588:1588] CHIP:DMG: InteractionModelRevision = 1 + [1663926036.471140][1588:1588] CHIP:DMG: } + [1663926036.471159][1588:1588] CHIP:DMG: + [1663926036.471372][1588:1588] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1663926036.471404][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1663926036.471424][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] + + + ./chip-tool descriptor read parts-list 1 1 + + Verify part list attribute response contains 11 entries on TH(bridge-app) Log + + [1663926082.690768][1588:1588] CHIP:DMG: + [1663926082.690991][1588:1588] CHIP:DMG: ReportDataMessage = + [1663926082.691016][1588:1588] CHIP:DMG: { + [1663926082.691036][1588:1588] CHIP:DMG: AttributeReportIBs = + [1663926082.691064][1588:1588] CHIP:DMG: [ + [1663926082.691086][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.691118][1588:1588] CHIP:DMG: { + [1663926082.691144][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.691175][1588:1588] CHIP:DMG: { + [1663926082.691208][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.691238][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.691270][1588:1588] CHIP:DMG: { + [1663926082.691299][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.691334][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.691366][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.691396][1588:1588] CHIP:DMG: } + [1663926082.691429][1588:1588] CHIP:DMG: + [1663926082.691462][1588:1588] CHIP:DMG: Data = [ + [1663926082.691492][1588:1588] CHIP:DMG: + [1663926082.691527][1588:1588] CHIP:DMG: ], + [1663926082.691556][1588:1588] CHIP:DMG: }, + [1663926082.691588][1588:1588] CHIP:DMG: + [1663926082.691613][1588:1588] CHIP:DMG: }, + [1663926082.691647][1588:1588] CHIP:DMG: + [1663926082.691669][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.691700][1588:1588] CHIP:DMG: { + [1663926082.691725][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.691753][1588:1588] CHIP:DMG: { + [1663926082.691779][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.691808][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.691837][1588:1588] CHIP:DMG: { + [1663926082.691871][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.691906][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.691939][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.691972][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.692005][1588:1588] CHIP:DMG: } + [1663926082.692039][1588:1588] CHIP:DMG: + [1663926082.692613][1588:1588] CHIP:DMG: Data = 4, + [1663926082.692658][1588:1588] CHIP:DMG: }, + [1663926082.692691][1588:1588] CHIP:DMG: + [1663926082.692716][1588:1588] CHIP:DMG: }, + [1663926082.692751][1588:1588] CHIP:DMG: + [1663926082.692774][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.692804][1588:1588] CHIP:DMG: { + [1663926082.692830][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.692860][1588:1588] CHIP:DMG: { + [1663926082.692888][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.692918][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.692950][1588:1588] CHIP:DMG: { + [1663926082.692984][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.693016][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.693045][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.693076][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.693107][1588:1588] CHIP:DMG: } + [1663926082.693138][1588:1588] CHIP:DMG: + [1663926082.693170][1588:1588] CHIP:DMG: Data = 5, + [1663926082.693199][1588:1588] CHIP:DMG: }, + [1663926082.693230][1588:1588] CHIP:DMG: + [1663926082.693251][1588:1588] CHIP:DMG: }, + [1663926082.693283][1588:1588] CHIP:DMG: + [1663926082.693305][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.693336][1588:1588] CHIP:DMG: { + [1663926082.693361][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.693391][1588:1588] CHIP:DMG: { + [1663926082.693419][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.693450][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.693482][1588:1588] CHIP:DMG: { + [1663926082.693515][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.693550][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.693582][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.693613][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.693645][1588:1588] CHIP:DMG: } + [1663926082.693680][1588:1588] CHIP:DMG: + [1663926082.693711][1588:1588] CHIP:DMG: Data = 6, + [1663926082.693743][1588:1588] CHIP:DMG: }, + [1663926082.693776][1588:1588] CHIP:DMG: + [1663926082.693801][1588:1588] CHIP:DMG: }, + [1663926082.693838][1588:1588] CHIP:DMG: + [1663926082.693860][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.693889][1588:1588] CHIP:DMG: { + [1663926082.693911][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.693938][1588:1588] CHIP:DMG: { + [1663926082.693967][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.693996][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.694026][1588:1588] CHIP:DMG: { + [1663926082.694053][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.694085][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.694117][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.694149][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.694179][1588:1588] CHIP:DMG: } + [1663926082.694213][1588:1588] CHIP:DMG: + [1663926082.694244][1588:1588] CHIP:DMG: Data = 7, + [1663926082.694275][1588:1588] CHIP:DMG: }, + [1663926082.694306][1588:1588] CHIP:DMG: + [1663926082.694331][1588:1588] CHIP:DMG: }, + [1663926082.694365][1588:1588] CHIP:DMG: + [1663926082.694387][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.694415][1588:1588] CHIP:DMG: { + [1663926082.694439][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.694469][1588:1588] CHIP:DMG: { + [1663926082.694501][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.694530][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.694558][1588:1588] CHIP:DMG: { + [1663926082.694594][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.694626][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.694658][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.694691][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.694724][1588:1588] CHIP:DMG: } + [1663926082.694755][1588:1588] CHIP:DMG: + [1663926082.694786][1588:1588] CHIP:DMG: Data = 8, + [1663926082.694815][1588:1588] CHIP:DMG: }, + [1663926082.694845][1588:1588] CHIP:DMG: + [1663926082.694869][1588:1588] CHIP:DMG: }, + [1663926082.694904][1588:1588] CHIP:DMG: + [1663926082.694926][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.694956][1588:1588] CHIP:DMG: { + [1663926082.694981][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.695008][1588:1588] CHIP:DMG: { + [1663926082.695038][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.695066][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.695095][1588:1588] CHIP:DMG: { + [1663926082.695128][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.695161][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.695194][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.695225][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.695255][1588:1588] CHIP:DMG: } + [1663926082.695287][1588:1588] CHIP:DMG: + [1663926082.695320][1588:1588] CHIP:DMG: Data = 9, + [1663926082.695349][1588:1588] CHIP:DMG: }, + [1663926082.695382][1588:1588] CHIP:DMG: + [1663926082.695405][1588:1588] CHIP:DMG: }, + [1663926082.695439][1588:1588] CHIP:DMG: + [1663926082.695461][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.695491][1588:1588] CHIP:DMG: { + [1663926082.695517][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.695545][1588:1588] CHIP:DMG: { + [1663926082.695574][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.695603][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.695635][1588:1588] CHIP:DMG: { + [1663926082.695668][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.695700][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.695732][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.695766][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.695798][1588:1588] CHIP:DMG: } + [1663926082.695833][1588:1588] CHIP:DMG: + [1663926082.695864][1588:1588] CHIP:DMG: Data = 10, + [1663926082.695893][1588:1588] CHIP:DMG: }, + [1663926082.695922][1588:1588] CHIP:DMG: + [1663926082.695947][1588:1588] CHIP:DMG: }, + [1663926082.695981][1588:1588] CHIP:DMG: + [1663926082.696003][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.696033][1588:1588] CHIP:DMG: { + [1663926082.696059][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.696087][1588:1588] CHIP:DMG: { + [1663926082.696118][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.696148][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.696180][1588:1588] CHIP:DMG: { + [1663926082.696207][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.696239][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.696274][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.696306][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.696337][1588:1588] CHIP:DMG: } + [1663926082.696369][1588:1588] CHIP:DMG: + [1663926082.696400][1588:1588] CHIP:DMG: Data = 11, + [1663926082.696429][1588:1588] CHIP:DMG: }, + [1663926082.696462][1588:1588] CHIP:DMG: + [1663926082.696487][1588:1588] CHIP:DMG: }, + [1663926082.696520][1588:1588] CHIP:DMG: + [1663926082.696542][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.696571][1588:1588] CHIP:DMG: { + [1663926082.696593][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.696620][1588:1588] CHIP:DMG: { + [1663926082.696713][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.696745][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.696775][1588:1588] CHIP:DMG: { + [1663926082.696806][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.696840][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.696872][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.696903][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.696936][1588:1588] CHIP:DMG: } + [1663926082.696968][1588:1588] CHIP:DMG: + [1663926082.696999][1588:1588] CHIP:DMG: Data = 12, + [1663926082.697027][1588:1588] CHIP:DMG: }, + [1663926082.697061][1588:1588] CHIP:DMG: + [1663926082.697084][1588:1588] CHIP:DMG: }, + [1663926082.697116][1588:1588] CHIP:DMG: + [1663926082.697139][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.697169][1588:1588] CHIP:DMG: { + [1663926082.697195][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.697220][1588:1588] CHIP:DMG: { + [1663926082.697248][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.697277][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.697307][1588:1588] CHIP:DMG: { + [1663926082.697337][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.697369][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.697401][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.697434][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.697464][1588:1588] CHIP:DMG: } + [1663926082.697498][1588:1588] CHIP:DMG: + [1663926082.697529][1588:1588] CHIP:DMG: Data = 13, + [1663926082.697557][1588:1588] CHIP:DMG: }, + [1663926082.697587][1588:1588] CHIP:DMG: + [1663926082.697612][1588:1588] CHIP:DMG: }, + [1663926082.697646][1588:1588] CHIP:DMG: + [1663926082.697668][1588:1588] CHIP:DMG: AttributeReportIB = + [1663926082.697698][1588:1588] CHIP:DMG: { + [1663926082.697723][1588:1588] CHIP:DMG: AttributeDataIB = + [1663926082.697752][1588:1588] CHIP:DMG: { + [1663926082.697780][1588:1588] CHIP:DMG: DataVersion = 0x2b116729, + [1663926082.697812][1588:1588] CHIP:DMG: AttributePathIB = + [1663926082.697841][1588:1588] CHIP:DMG: { + [1663926082.697872][1588:1588] CHIP:DMG: Endpoint = 0x1, + [1663926082.697901][1588:1588] CHIP:DMG: Cluster = 0x1d, + [1663926082.697939][1588:1588] CHIP:DMG: Attribute = 0x0000_0003, + [1663926082.697970][1588:1588] CHIP:DMG: ListIndex = Null, + [1663926082.697997][1588:1588] CHIP:DMG: } + [1663926082.698031][1588:1588] CHIP:DMG: + [1663926082.698064][1588:1588] CHIP:DMG: Data = 14, + [1663926082.698096][1588:1588] CHIP:DMG: }, + [1663926082.698126][1588:1588] CHIP:DMG: + [1663926082.698151][1588:1588] CHIP:DMG: }, + [1663926082.698178][1588:1588] CHIP:DMG: + [1663926082.698200][1588:1588] CHIP:DMG: ], + [1663926082.698272][1588:1588] CHIP:DMG: + [1663926082.698295][1588:1588] CHIP:DMG: SuppressResponse = true, + [1663926082.698318][1588:1588] CHIP:DMG: InteractionModelRevision = 1 + [1663926082.698340][1588:1588] CHIP:DMG: } + [1663926082.698360][1588:1588] CHIP:DMG: + [1663926082.698647][1588:1588] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1663926082.698681][1588:1588] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1663926082.698702][1588:1588] CHIP:DMG: IM RH moving to [AwaitingDestruction] + disabled: true + + - label: + "Step 3f: Verify DUT no longer contains the removed device in the list + of devices" + PICS: MCORE.DEVLIST.UseDevices + verification: | + Verify on TH(bridge-app) Log + 4 [1659352426.184434][14237:14242] CHIP:DMG: Endpoint 1, Cluster 0x0000_001D update version to 7e918baf [1659352426.184489][14237:14242] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 7561f372 [1659352426.184512][14237:14242] CHIP:DL: Removed device Light 1b from dynamic endpoint 3 (index=0) diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml index 04ee3d8fff8349..cfbfe22a274ea7 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml @@ -36,16 +36,16 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with TH_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | "1. Provision the TH_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi" disabled: true - label: - "TH_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM - (Enhanced Commissioning Method)." + "Step 2: TH_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + ECM (Enhanced Commissioning Method)." PICS: CADMIN.C.C00.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -62,7 +62,8 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR1 sends command to TH_CE to read the list of Fabrics" + - label: + "Step 3a: TH_CR1 sends command to TH_CE to read the list of Fabrics" PICS: OPCREDS.C.A0001 verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command with their all-cluster-app and for the second and third commissioners. @@ -73,7 +74,7 @@ tests: Verify 1 entry in the Fabrics list attributeOn TH_CR1(CHIP-TOOL) Log - Verify TH_CE reports 1 entry in fabrics list + Verify TH_CE reports 1 entry in fabrics list [1676355303.608991][997145:997145] CHIP:IM: Received Read request [1676355303.609044][997145:997145] CHIP:DMG: ReadRequestMessage = [1676355303.609054][997145:997145] CHIP:DMG: { @@ -110,7 +111,15 @@ tests: [1676355303.610660][997160:997162] CHIP:EM: <<< [E:41653i S:27265 M:61334885 (Ack:214003320)] (S) Msg TX to 1:0000000000000001 [6193] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - - label: "DUT_CR2 starts a commissioning process with TH_CE" + - label: + "Step 3b: Introduce dashes and spaces into the 11 digit Manual Code + provided in step 2 and enter it in the userinterfacedisplay of DUT_CR2" + PICS: CADMIN.M.UserInterfaceDisplay + verification: | + Vendor specific test step that should be manually verified using the requirements in the Expected Outcome. + disabled: true + + - label: "Step 4.a: DUT_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -124,7 +133,9 @@ tests: Commissioning completed successfully disabled: true - - label: "Verify TH_CE is now discoverable over DNS-SD with two SRV Records" + - label: + "Step 4.b: Verify TH_CE is now discoverable over DNS-SD with two SRV + Records" verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -151,7 +162,7 @@ tests: disabled: true - label: - "DUT_CR2 sends command to TH_CE to write and read the Basic + "Step 4.c: DUT_CR2 sends command to TH_CE to write and read the Basic Information Clusters NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | @@ -159,6 +170,7 @@ tests: On DUT_CR2 send the below command + ./chip-tool basicinformation write node-label te5new 2 0 --commissioner-name beta Verify Write request on TH_CE(all-clusters-app) Log @@ -204,7 +216,8 @@ tests: [1660894142.829777][2871:2871] CHIP:DMG: disabled: true - - label: "DUT_CR2 sends command to TH_CE to read the list of Fabrics" + - label: + "Step 5: DUT_CR2 sends command to TH_CE to read the list of Fabrics" PICS: OPCREDS.C.A0001 verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -256,8 +269,8 @@ tests: disabled: true - label: - "TH_CR1 sends command to TH_CE to write and read the Basic Information - Clusters NodeLabel mandatory attribute" + "Step 6: TH_CR1 sends command to TH_CE to write and read the Basic + Information Clusters NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -309,8 +322,8 @@ tests: disabled: true - label: - "DUT_CR2 sends command to TH_CE to read, write and then read the Basic - Information Clusters NodeLabel mandatory attribute" + "Step 7: DUT_CR2 sends command to TH_CE to read, write and then read + the Basic Information Clusters NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -385,15 +398,15 @@ tests: [1660900360.862158][3045:3045] CHIP:DMG: ], disabled: true - - label: "Turn off TH_CR1" + - label: "Step 8: Turn off TH_CR1" verification: | No need to do anything as chip-tool process exits after each command disabled: true - label: - "DUT_CR2 sends command to TH_CE to open a commissioning window using a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM - (Enhanced Commissioning Method)" + "Step 9: DUT_CR2 sends command to TH_CE to open a commissioning window + using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + ECM (Enhanced Commissioning Method)" PICS: CADMIN.C.C00.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -401,6 +414,7 @@ tests: On DUT_CR2 send the below command ./chip-tool pairing open-commissioning-window 2 1 400 2000 3841 --commissioner-name beta + Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log [1660901022.112296][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp @@ -409,8 +423,8 @@ tests: disabled: true - label: - "DUT_CR2 sends command to TH_CE to revoke the commissioning window - using the Revoke Commissioning command" + "Step 10: DUT_CR2 sends command to TH_CE to revoke the commissioning + window using the Revoke Commissioning command" PICS: CADMIN.C.C02.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -427,8 +441,8 @@ tests: disabled: true - label: - "TH_CR3 attempts to execute a PASE to starts a commissioning process - with TH_CE" + "Step 11: TH_CR3 attempts to execute a PASE to starts a commissioning + process with TH_CE" PICS: CADMIN.C verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command with their all-cluster-app and for the second and third commissioners. @@ -444,28 +458,16 @@ tests: If the DUT has to provision to verify the logs, Verify that either no _matterc._udp commissionable records exist matching the previously obtained discriminator, or that TH_CE refuses to allow a PASE with the provided passcode from the onboarding payload. - [1676356124.529686][997434:997434] CHIP:TS: Reverted Last Known Good Time to previous value - [1676356124.529707][997434:997434] CHIP:CTL: Shutting down the commissioner - [1676356124.529711][997434:997434] CHIP:CTL: Stopping commissioning discovery over DNS-SD - [1676356124.529728][997434:997434] CHIP:CTL: Shutting down the controller - [1676356124.529732][997434:997434] CHIP:CTL: Shutting down the System State, this will teardown the CHIP Stack - [1676356124.530546][997434:997434] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet - [1676356124.530584][997434:997434] CHIP:BLE: BleConnectionDelegate::CancelConnection is not implemented. - [1676356124.530603][997434:997434] CHIP:FP: Shutting down FabricTable - [1676356124.530617][997434:997434] CHIP:TS: Pending Last Known Good Time: 2023-02-13T11:57:54 - [1676356124.530729][997434:997434] CHIP:TS: Previous Last Known Good Time: 2023-02-13T11:57:54 - [1676356124.530736][997434:997434] CHIP:TS: Reverted Last Known Good Time to previous value - [1676356124.530884][997434:997434] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-G154Fy) - [1676356124.531158][997434:997434] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - [1676356124.531183][997434:997434] CHIP:DL: NVS set: chip-counters/total-operational-hours = 0 (0x0) - [1676356124.531192][997434:997434] CHIP:DL: Inet Layer shutdown - [1676356124.531199][997434:997434] CHIP:DL: BLE shutdown - [1676356124.531204][997434:997434] CHIP:DL: System Layer shutdown - [1676356124.531299][997434:997434] CHIP:TOO: Run command failure: ../../commands/pairing/PairingCommand.cpp:196: CHIP Error 0x00000003: Incorrect state + [1689719618872] [29136:5163326] [DIS] Browsing for: _matterc._udp,_S15 + [1689719648874] [29136:5163326] [CTL] Discovery timed out + [1689719648874] [29136:5163326] [CTL] Stopping commissioning discovery over DNS-SD + [1689719648874] [29136:5163320] [CTL] Shutting down the commissioner + [1689719648874] [29136:5163320] [CTL] Stopping commissioning discovery over DNS-SD + [1689719648874] [29136:5163320] [CTL] Shutting down the controller disabled: true - label: - "DUT_CR2 sends command to TH_CE to write and read the Basic + "Step 12: DUT_CR2 sends command to TH_CE to write and read the Basic Information Clusters NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | @@ -520,8 +522,8 @@ tests: disabled: true - label: - "DUT_CR2 sends command to TH_CE to open a commissioning window using - ECM" + "Step 13: DUT_CR2 sends command to TH_CE to open a commissioning + window using ECM" PICS: CADMIN.C.C00.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -538,14 +540,15 @@ tests: disabled: true - label: - "Wait for commissioning window that was opened in step 13 to timeout" + "Step 14: Wait for commissioning window that was opened in step 13 to + timeout" verification: | Wait for the timeout of commissioning window in the above step disabled: true - label: - "DUT_CR2 sends command to TH_CE to open a commissioning window using - ECM" + "Step 15: DUT_CR2 sends command to TH_CE to open a commissioning + window using ECM" PICS: CADMIN.C.C00.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -562,8 +565,8 @@ tests: disabled: true - label: - "TH_CR1 starts a commissioning process with TH_CE before the timeout - from step 15" + "Step 16: TH_CR1 starts a commissioning process with TH_CE before the + timeout from step 15" PICS: CADMIN.C verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml index 0c2eed149d2a8c..26503486dd059a 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml @@ -32,15 +32,15 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with DUT_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | "1. Provision the DUT_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi" disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 2: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 send the below command @@ -62,7 +62,7 @@ tests: [1635864513.699685][3850:3855] CHIP:IN: Prepared plaintext message 0xffff8a7cd960 to 0x0000000000000000 of type disabled: true - - label: "DNS-SD records shows DUT_CE advertising" + - label: "Step 3: DNS-SD records shows DUT_CE advertising" verification: | On TH_CR1 send the below command @@ -82,7 +82,7 @@ tests: grl@grl-ThinkPad-L480:~/2nd_cntrl/connectedhomeip/examples/chip-tool/out/debug$ On TH_CR1 send the below command disabled: true - - label: "TH_CR3 Commissions with DUT_CE" + - label: "Step 4: TH_CR3 Commissions with DUT_CE" PICS: CADMIN.S verification: | On TH_CR3 send the below command @@ -94,9 +94,9 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM and TH_CR2 - Commissions with DUT_CE" + "Step 5: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM and + TH_CR2 Commissions with DUT_CE" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 send the below command @@ -119,8 +119,8 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 6: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 send the below command @@ -142,9 +142,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds which was - set in step 5, TH_CR1 opens a 2nd commissioning window on DUT_CE using - a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 7: Before the expiration of PIXIT.CADMIN.CwDuration seconds + which was set in step 5, TH_CR1 opens a 2nd commissioning window on + DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration + seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 send the below command @@ -167,7 +168,7 @@ tests: [1650527291.952634][8566:8571] CHIP:DMG: }, disabled: true - - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + - label: "Step 8: TH_CR1 reads the list of Fabrics on DUT_CE" PICS: OPCREDS.S.A0001 verification: | On TH_CR1 send the below command @@ -205,14 +206,14 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was - set in step 6" + "Step 9: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that was set in step 6" verification: | Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was set in step 6 disabled: true - label: - "TH_CR1 re-opens a commissioning window on DUT_CE using a + "Step 10: TH_CR1 re-opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" PICS: CADMIN.S.C01.Rsp verification: | @@ -237,7 +238,7 @@ tests: [1650278416.249823][11064:11069] CHIP:DMG: disabled: true - - label: "DNS-SD records shows DUT_CE advertising" + - label: "Step 11: DNS-SD records shows DUT_CE advertising" verification: | On TH_CR1 send the below command avahi-browse -rt _matterc._udp @@ -251,9 +252,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set - in step 10, TH_CR3 opens a 2nd commissioning window on DUT_CE using a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 12: Before the expiration of PIXIT.CADMIN.CwDuration seconds + that was set in step 10, TH_CR3 opens a 2nd commissioning window on + DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration + seconds using BCM" PICS: CADMIN.S.C01.Rsp verification: | On TH_CR3 send the below command @@ -282,13 +284,13 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was - set in step 11" + "Step 13: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that was set in step 11" verification: | - Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was set in step 11 + Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was set in step 10 disabled: true - - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + - label: "Step 14: TH_CR1 reads the list of Fabrics on DUT_CE" PICS: OPCREDS.S.A0001 verification: | On TH_CR1 send the below command @@ -326,8 +328,8 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 15: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" PICS: CADMIN.S.C01.Rsp verification: | On TH_CR1 send the below command @@ -347,9 +349,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set - in step 14, TH_CR2 opens a second commissioning window on DUT_CE using - a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 16: Before the expiration of PIXIT.CADMIN.CwDuration seconds + that was set in step 14, TH_CR2 opens a second commissioning window on + DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration + seconds using BCM" PICS: CADMIN.S.C01.Rsp verification: | On TH_CR2 send the below command @@ -359,6 +362,8 @@ tests: Verify that the DUT_CE is rejecting the opening of second commissioning session with the response status 0x01 failure + + [1650527622.374682][15824:15829] CHIP:DMG: }, [1650527622.374799][15824:15829] CHIP:DMG: [1650527622.374896][15824:15829] CHIP:DMG: StatusIB = diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml index 020d23eb48ee27..b68214c3a90475 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml @@ -16,7 +16,6 @@ name: 4.1.12. [TC-CADMIN-1.12] Open commissioning window on DUT twice using ECM then BCM [DUT - Commissioner] - PICS: - CADMIN.C - CADMIN.C.C00.Tx @@ -38,16 +37,16 @@ tests: Reset Devices to factory defaults disabled: true - - label: "DUT_CR1 starts a commissioning process with TH_CE" + - label: "Step 1: DUT_CR1 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | "1. Provision the TH_CE (all-cluster-app) device using DUT_CR1 (chip-tool ) on the raspi" disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM and - TH_CR3 Commissions with TH_CE" + "Step 2: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + ECM and TH_CR3 Commissions with TH_CE" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 send the below command @@ -75,9 +74,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM and - TH_CR2 Commissions with TH_CE" + "Step 3: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + ECM and TH_CR2 Commissions with TH_CE" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 send the below command @@ -105,8 +104,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 4: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 send the below command @@ -124,8 +124,8 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 4, DUT_CR1 sends command to TH_CE to read WindowStatus + "Step 5: Before the expiration of PIXIT.CADMIN.CwDuration seconds that + is set in step 4, DUT_CR1 sends command to TH_CE to read WindowStatus attribute" PICS: CADMIN.C.A0000 verification: | @@ -167,10 +167,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set - in step 4, DUT_CR1 sends command to TH_CE to open a 2nd commissioning - window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds - using ECM" + "Step 6: Before the expiration of PIXIT.CADMIN.CwDuration seconds that + was set in step 4, DUT_CR1 sends command to TH_CE to open a 2nd + commissioning window with a commissioning timeout of + PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 send the below command @@ -195,16 +195,16 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was - set in step 4" + "Step 7: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that was set in step 4" verification: | Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was set in step 4 disabled: true - label: - "DUT_CR1 sends command to TH_CE to re-opens a commissioning window - with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using - BCM" + "Step 8: DUT_CR1 sends command to TH_CE to re-opens a commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using BCM" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 send the below command @@ -223,8 +223,8 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 8, DUT_CR1 sends command to TH_CE to read WindowStatus + "Step 9: Before the expiration of PIXIT.CADMIN.CwDuration seconds that + is set in step 8, DUT_CR1 sends command to TH_CE to read WindowStatus attribute" PICS: CADMIN.C.A0000 verification: | @@ -262,10 +262,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set - in step 8, TH_CR3 sends command to TH_CE to open a 2nd commissioning - window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds - using BCM" + "Step 10: Before the expiration of PIXIT.CADMIN.CwDuration seconds + that was set in step 8, TH_CR3 sends command to TH_CE to open a 2nd + commissioning window with a commissioning timeout of + PIXIT.CADMIN.CwDuration seconds using BCM" PICS: CADMIN.C.C01.Tx verification: | On TH_CR3 send the below command @@ -286,15 +286,16 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was - set in step 8" + "Step 11: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that was set in step 8" verification: | Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was set in step 8 disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 12: DUT_CR1 sends command to TH_CE to open a commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using BCM" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 send the below command @@ -312,10 +313,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set - in step 12, TH_CR2 sends command to open a second commissioning window - on TH_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration - seconds using BCM" + "Step 13: Before the expiration of PIXIT.CADMIN.CwDuration seconds + that was set in step 12, TH_CR2 sends command to open a second + commissioning window on TH_CE using a commissioning timeout of + PIXIT.CADMIN.CwDuration seconds using BCM" PICS: CADMIN.C.C01.Tx verification: | On TH_CR2 send the below command @@ -338,7 +339,9 @@ tests: [1650527622.375527][15824:15829] CHIP:DMG: }, disabled: true - - label: "DUT_CR1 sends command to TH_CE to read WindowStatus attribute" + - label: + "Step 14: DUT_CR1 sends command to TH_CE to read WindowStatus + attribute" PICS: CADMIN.C.A0000 verification: | On DUT_CR1 send the below command @@ -373,7 +376,9 @@ tests: [1661483425.924244][6917:6917] CHIP:DMG: disabled: true - - label: "DUT_CR1 sends command to TH_CE to read AdminFabricIndex attribute" + - label: + "Step 15: DUT_CR1 sends command to TH_CE to read AdminFabricIndex + attribute" PICS: CADMIN.C.A0001 verification: | On DUT_CR1 send the below command @@ -408,7 +413,9 @@ tests: [1661483686.786167][6930:6930] CHIP:DMG: ], disabled: true - - label: "DUT_CR1 sends command to TH_CE to read AdminVendorId attribute" + - label: + "Step 16: DUT_CR1 sends command to TH_CE to read AdminVendorId + attribute" PICS: CADMIN.C.A0002 verification: | On DUT_CR1 send the below command diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml index 9e1e83daf81554..4af0406adfdb17 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.13. [TC-CADMIN-1.13] Open commissioning window twice on DUT using BCM + 4.1.13. [TC-CADMIN-1.13] Open commissioning window twice on DUT using BCM then ECM [DUT - Commissionee] PICS: @@ -32,15 +32,15 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with DUT_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | "1. Provision the DUT_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi" disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 2: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" PICS: CADMIN.S.C01.Rsp verification: | On TH_CR1 send the below command @@ -60,7 +60,7 @@ tests: [1650278416.249889][11064:11069] CHIP:DMG: }, disabled: true - - label: "TH_CR1 reads WindowStatus attribute from DUT_CE" + - label: "Step 3: TH_CR1 reads WindowStatus attribute from DUT_CE" PICS: CADMIN.S.A0000 verification: | On TH_CR1 send the below command @@ -75,7 +75,7 @@ tests: [1658838248.888038][9273:9278] CHIP:EM: Sending Standalone Ack for MessageCounter:253317720 on exchange 63644i disabled: true - - label: "TH_CR1 reads AdminFabricIndex attribute from DUT_CE" + - label: "Step 4: TH_CR1 reads AdminFabricIndex attribute from DUT_CE" PICS: CADMIN.S.A0001 verification: | On TH_CR1 send the below command @@ -95,7 +95,7 @@ tests: Verify 1 entry in the Fabrics list attributeOn TH_CR1(chip-tool) Log - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3621507058 + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3621507058 [1649245801.244173][10091:10096] CHIP:TOO: Fabrics: 1 entries [1649245801.244305][10091:10096] CHIP:TOO: [1]: { [1649245801.244348][10091:10096] CHIP:TOO: RootPublicKey: 045541017FCEFD0D83963C9ED7F21380C6B789EB989B5D20DC318FAE92D60D0F685666505E9C4F86C49ADC71AB3A8B9B44FD43214CF9BE2B6D47DE01F28FE1544F @@ -108,7 +108,7 @@ tests: [1649245801.244671][10091:10096] CHIP:EM: Sending Standalone Ack for MessageCounter:8407998 on exchange 12989i disabled: true - - label: "TH_CR1 reads AdminVendorId attribute from DUT_CE" + - label: "Step 5: TH_CR1 reads AdminVendorId attribute from DUT_CE" PICS: CADMIN.S.A0002 verification: | On TH_CR1 send the below command @@ -127,7 +127,7 @@ tests: Verify 1 entry in the Fabrics list attributeOn TH_CR1(chip-tool) Log - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3621507058 + CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3621507058 [1649245801.244173][10091:10096] CHIP:TOO: Fabrics: 1 entries [1649245801.244305][10091:10096] CHIP:TOO: [1]: { [1649245801.244348][10091:10096] CHIP:TOO: RootPublicKey: 045541017FCEFD0D83963C9ED7F21380C6B789EB989B5D20DC318FAE92D60D0F685666505E9C4F86C49ADC71AB3A8B9B44FD43214CF9BE2B6D47DE01F28FE1544F @@ -140,7 +140,7 @@ tests: [1649245801.244671][10091:10096] CHIP:EM: Sending Standalone Ack for MessageCounter:8407998 on exchange 12989i disabled: true - - label: "DNS-SD records shows DUT_CE advertising" + - label: "Step 6: DNS-SD records shows DUT_CE advertising" verification: | On TH_CR1 send the below command avahi-browse -rt _matterc._udp @@ -154,7 +154,7 @@ tests: grl@grl-ThinkPad-L480:~/2nd_cntrl/connectedhomeip/examples/chip-tool/out/debug$ disabled: true - - label: "TH_CR3 Commissions with DUT_CE" + - label: "Step 7: TH_CR3 Commissions with DUT_CE" PICS: CADMIN.S verification: | On TH_CR3 send the below command @@ -166,9 +166,9 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using BCM and TH_CR2 - Commissions with DUT_CE" + "Step 8: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and + TH_CR2 Commissions with DUT_CE" PICS: CADMIN.S.C01.Rsp verification: | On TH_CR1 send the below command @@ -217,8 +217,8 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 9: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" PICS: CADMIN.S.C01.Rsp verification: | On TH_CR1 send the below command @@ -239,9 +239,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 9, TH_CR1 opens a 2nd commissioning window on DUT_CE using a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 10: Before the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 9, TH_CR1 opens a 2nd commissioning window on + DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration + seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 send the below command @@ -285,7 +286,7 @@ tests: [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 disabled: true - - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + - label: "Step 11: TH_CR1 reads the list of Fabrics on DUT_CE" PICS: OPCREDS.S.A0001 verification: | On TH_CR1 send the below command @@ -323,14 +324,14 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was - set in step 9" + "Step 12: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that was set in step 9" verification: | Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was set in step 9 disabled: true - label: - "TH_CR1 re-opens a commissioning window on DUT_CE using a + "Step 13: TH_CR1 re-opens a commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | @@ -353,7 +354,7 @@ tests: [1635925391.232299][9653:9658] CHIP:CTL: SetupQRCode: [MT:00000CQM0061ZN63N10] disabled: true - - label: "TH_CR1 reads WindowStatus attribute from DUT_CE" + - label: "Step 14: TH_CR1 reads WindowStatus attribute from DUT_CE" PICS: CADMIN.S.A0001 verification: | On TH_CR1 send the below command @@ -368,7 +369,7 @@ tests: [1658838248.888038][9273:9278] CHIP:EM: Sending Standalone Ack for MessageCounter:253317720 on exchange 63644i disabled: true - - label: "DNS-SD records shows DUT_CE advertising" + - label: "Step 15: DNS-SD records shows DUT_CE advertising" verification: | On TH_CR1 send the below command avahi-browse -rt _matterc._udp @@ -388,9 +389,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 13, TH_CR3 opens a 2nd commissioning window on DUT_CE using a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 16: Before the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 13, TH_CR3 opens a 2nd commissioning window on + DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration + seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR3 send the below command @@ -433,7 +435,7 @@ tests: [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01 disabled: true - - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + - label: "Step 17: TH_CR1 reads the list of Fabrics on DUT_CE" PICS: OPCREDS.S.A0001 verification: | On TH_CR1 send the below command @@ -471,15 +473,15 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is - set in step 13" + "Step 18: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 13" verification: | Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 13 disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 19: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" verification: | On TH_CR1 send the below command @@ -500,9 +502,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 19, TH_CR2 opens a second commissioning window on DUT_CE using - a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 20: Before the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 19, TH_CR2 opens a second commissioning window on + DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration + seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR2 send the below command @@ -523,13 +526,13 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is - set in step 19" + "Step 21: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 19" verification: | Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 19 disabled: true - - label: "TH_CR1 reads WindowStatus attribute from DUT_CE" + - label: "Step 22: TH_CR1 reads WindowStatus attribute from DUT_CE" PICS: CADMIN.S.A0000 verification: | On TH_CR1 send the below command @@ -543,7 +546,7 @@ tests: [1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i" disabled: true - - label: "TH_CR1 reads AdminFabricIndex attribute from DUT_CE" + - label: "Step 23: TH_CR1 reads AdminFabricIndex attribute from DUT_CE" PICS: CADMIN.S.A0001 verification: | On TH_CR1 send the below command @@ -558,7 +561,7 @@ tests: [1659097193.389913][11728:11733] CHIP:EM: Sending Standalone Ack for MessageCounter:195671426 on exchange 34244i disabled: true - - label: "TH_CR1 reads AdminVendorId attribute from DUT_CE" + - label: "Step 24: TH_CR1 reads AdminVendorId attribute from DUT_CE" PICS: CADMIN.S.A0002 verification: | On TH_CR1 send the below command diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml index b25c5b15b6ccca..1cc87991ccee18 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml @@ -38,7 +38,7 @@ tests: Reset Devices to factory defaults disabled: true - - label: "DUT_CR1 starts a commissioning process with TH_CE" + - label: "Step 1: DUT_CR1 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | "1. Provision TH_CE using DUT_CR1 (Chip-tool as DUT controller) @@ -46,9 +46,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and - TH_CR3 Commissions with TH_CE" + "Step 2: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + BCM and TH_CR3 Commissions with TH_CE" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 , open commissioning window using BCM @@ -74,9 +74,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and - TH_CR2 Commissions with TH_CE" + "Step 3: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + BCM and TH_CR2 Commissions with TH_CE" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 , open commissioning window using BCM @@ -105,8 +105,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 4: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + BCM" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 , open commissioning window using BCM @@ -125,8 +126,8 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 4, DUT_CR1 sends command to TH_CE to read WindowStatus + "Step 5: Before the expiration of PIXIT.CADMIN.CwDuration seconds that + is set in step 4, DUT_CR1 sends command to TH_CE to read WindowStatus attribute" PICS: CADMIN.C.A0000 verification: | @@ -164,10 +165,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 4, DUT_CR1 sends command to TH_CE to open a 2nd commissioning - window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds - using ECM" + "Step 6: Before the expiration of PIXIT.CADMIN.CwDuration seconds that + is set in step 4, DUT_CR1 sends command to TH_CE to open a 2nd + commissioning window with a commissioning timeout of + PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 chip tool, open commissioning window using ECM @@ -215,16 +216,16 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is - set in step 4" + "Step 7: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 4" verification: | Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 4 disabled: true - label: - "DUT_CR1 sends command to TH_CE to re-opens a commissioning window - with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using - ECM" + "Step 8: DUT_CR1 sends command to TH_CE to re-opens a commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 chip tool, open commissioning window using ECM @@ -241,8 +242,8 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 8, DUT_CR1 sends command to TH_CE to read WindowStatus + "Step 9: Before the expiration of PIXIT.CADMIN.CwDuration seconds that + is set in step 8, DUT_CR1 sends command to TH_CE to read WindowStatus attribute" PICS: CADMIN.C.A0000 verification: | @@ -283,10 +284,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 8, TH_CR3 sends command to TH_CE to open a 2nd commissioning - window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds - using ECM" + "Step 10: Before the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 8, TH_CR3 sends command to TH_CE to open a 2nd + commissioning window with a commissioning timeout of + PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.C.C00.Tx verification: | On TH_CR3 chip tool, open commissioning window using ECM @@ -334,15 +335,16 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is - set in step 8" + "Step 11: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 8" verification: | Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 8 disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 12: DUT_CR1 sends command to TH_CE to open a commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 chip tool, open commissioning window using ECM @@ -359,8 +361,8 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set - in step 12, TH_CR2 sends command to TH_CE to open a second + "Step 13: Before the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 12, TH_CR2 sends command to TH_CE to open a second commissioning window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.C.C00.Tx @@ -409,13 +411,15 @@ tests: disabled: true - label: - "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is - set in step 12" + "Step 14: Wait for the expiration of PIXIT.CADMIN.CwDuration seconds + that is set in step 12" verification: | Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 12 disabled: true - - label: "DUT_CR1 sends command to TH_CE to read WindowStatus attribute" + - label: + "Step 15: DUT_CR1 sends command to TH_CE to read WindowStatus + attribute" PICS: CADMIN.C.A0000 verification: | On DUT_CR1 , read WindowStatus @@ -454,7 +458,9 @@ tests: [1661482777.284962][6453:6453] CHIP:DMG: disabled: true - - label: "DUT_CR1 sends command to TH_CE to read AdminFabricIndex attribute" + - label: + "Step 16: DUT_CR1 sends command to TH_CE to read AdminFabricIndex + attribute" PICS: CADMIN.C.A0001 verification: | On DUT_CR1 , read AdminFabricIndex @@ -490,7 +496,9 @@ tests: [1661484456.069892][6930:6930] CHIP:DMG: disabled: true - - label: "DUT_CR1 sends command to TH_CE to read AdminVendorId attribute" + - label: + "Step 17: DUT_CR1 sends command to TH_CE to read AdminVendorId + attribute" PICS: CADMIN.C.A0002 verification: | On DUT_CR1 , read AdminVendorId diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml index 0ad164fb6fc810..3ca0f9b9905bf0 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 30.1.15. [TC-CADMIN-1.15] Removing Fabrics from DUT and Fabric index + 4.1.15. [TC-CADMIN-1.15] Removing Fabrics from DUT and Fabric index enumeration using ECM [DUT - Commissionee] PICS: @@ -31,7 +31,7 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with DUT_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | "1. Provision the device using TH_CR1 (Chip-tool as controller) @@ -39,8 +39,8 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 2: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 chip tool, open commissioning window using ECM @@ -62,7 +62,7 @@ tests: [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i disabled: true - - label: "TH_CR2 starts a commissioning process with DUT_CE" + - label: "Step 3: TH_CR2 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | On TH_CR2 using chip tool connect to the accessory @@ -75,8 +75,8 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 4: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 chip tool, open commissioning window using ECM @@ -98,7 +98,7 @@ tests: [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i disabled: true - - label: "TH_CR3 starts a commissioning process with DUT_CE" + - label: "Step 5: TH_CR3 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | On TH_CR3 using chip tool connect to the accessory @@ -109,7 +109,7 @@ tests: Device commissioning completed with success disabled: true - - label: "TH_CR2 reads the list of Fabrics on DUT_CE" + - label: "Step 6: TH_CR2 reads the list of Fabrics on DUT_CE" PICS: OPCREDS.S.A0001 verification: | On TH_CR2 using chip tool, read fabrics list @@ -147,7 +147,9 @@ tests: CHIP:EM: Sending Standalone Ack for MessageCounter:9143157 on exchange 1147i disabled: true - - label: "TH_CR2 sends RemoveFabric with FabricIndex = 2 command to DUT_CE" + - label: + "Step 7: TH_CR2 sends RemoveFabric with FabricIndex = 2 command to + DUT_CE" PICS: OPCREDS.S.C0a.Rsp verification: | on TH_CR2 using chip tool, remove fabric with FabricIndex=2 @@ -166,8 +168,8 @@ tests: disabled: true - label: - "TH_CR2 writes and reads the Basic Information Clusters NodeLabel - mandatory attribute of DUT_CE" + "Step 8: TH_CR2 writes and reads the Basic Information Clusters + NodeLabel mandatory attribute of DUT_CE" PICS: BINFO.S.A0005 verification: | Using TH_CR2 , write attribute and read attribute @@ -188,7 +190,7 @@ tests: [1678875950.655316][713499:713501] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1727: CHIP Error 0x000000C9: No shared trusted root at ../../commands/clusters/ModelCommand.cpp:62 disabled: true - - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + - label: "Step 9: TH_CR1 reads the list of Fabrics on DUT_CE" PICS: OPCREDS.S.A0001 verification: | On TH_CR1 using chip tool, read fabrics list @@ -241,8 +243,8 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 11: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 chip tool, open commissioning window using ECM @@ -264,7 +266,7 @@ tests: [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i disabled: true - - label: "TH_CR2 starts a commissioning process with DUT_CE" + - label: "Step 12: TH_CR2 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | On TH_CR2 using chip tool connect to the accessory @@ -275,7 +277,7 @@ tests: Device commissioning completed with success disabled: true - - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + - label: "Step 13: TH_CR1 reads the list of Fabrics on DUT_CE" PICS: OPCREDS.S.A0001 verification: | On TH_CR1 , read fabrics list diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml index af7a4672df53e9..65bcd3f07c5878 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml @@ -37,7 +37,7 @@ tests: Reset Devices to factory defaults disabled: true - - label: "DUT_CR1 starts a commissioning process with TH_CE" + - label: "Step 1: DUT_CR1 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | "1. Provision the device using DUT_CR1 (Chip-tool as DUT controller) @@ -45,8 +45,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 2: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 , open commissioning window using ECM @@ -62,7 +63,7 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "Step 3: TH_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR2 using chip tool connect to the accessory @@ -77,8 +78,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 4: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1, open commissioning window using ECM @@ -94,7 +96,7 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR3 starts a commissioning process with TH_CE" + - label: "Step 5: TH_CR3 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR3 using chip tool connect to the accessory @@ -107,7 +109,8 @@ tests: Commissioning completed successfully disabled: true - - label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics" + - label: + "Step 6: DUT_CR1 sends command to TH_CE to read the list of Fabrics" PICS: OPCREDS.C.A0001 verification: | On DUT_CR1 using chip tool, read fabrics list @@ -210,7 +213,9 @@ tests: [1661484795.153752][6993:6993] CHIP:DMG: } disabled: true - - label: "DUT_CR1 sends RemoveFabric with FabricIndex = 2 command to TH_CE" + - label: + "Step 7: DUT_CR1 sends RemoveFabric with FabricIndex = 2 command to + TH_CE" PICS: OPCREDS.C.C0a.Tx verification: | on DUT_CR1 using chip tool, remove fabric with FabricIndex=2 @@ -232,8 +237,8 @@ tests: disabled: true - label: - "TH_CR2 sends command to TH_CE to write and read the Basic Information - Clusters NodeLabel mandatory attribute" + "Step 8: TH_CR2 sends command to TH_CE to write and read the Basic + Information Clusters NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | Using TH_CR2 , write attribute and read attribute to and from TH_CE @@ -256,7 +261,8 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to read the list of Fabrics on TH_CE" + "Step 9: DUT_CR1 sends command to TH_CE to read the list of Fabrics on + TH_CE" PICS: OPCREDS.C.A0001 verification: | On DUT_CR1 , read fabrics list @@ -376,8 +382,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 11: DUT_CR1 sends command to TH_CE to open a commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 (chip tool) , open commissioning window using ECM @@ -394,7 +401,7 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "Step 12: TH_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR2 using chip tool connect to the accessory @@ -409,7 +416,8 @@ tests: disabled: true - label: - "TH_CR2 sends command to TH_CE to read the list of Fabrics on TH_CE" + "Step 13: TH_CR2 sends command to TH_CE to read the list of Fabrics on + TH_CE" PICS: OPCREDS.C.A0001 verification: | On TH_CR2 , read fabrics list diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml index f74d1809c67a94..977eed436268c5 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 30.1.18. [TC-CADMIN-1.18] Removing Fabrics from DUT and Fabric index + 4.1.18. [TC-CADMIN-1.18] Removing Fabrics from DUT and Fabric index enumeration using BCM [DUT - Commissioner] PICS: @@ -37,7 +37,7 @@ tests: Reset Devices to factory defaults disabled: true - - label: "DUT_CR1 starts a commissioning process with TH_CE" + - label: "Step 1: DUT_CR1 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | "1. Provision the device using DUT_CR1 (Chip-tool as DUT controller) @@ -45,8 +45,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 2: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + BCM" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 (chip tool), open commissioning window using BCM @@ -63,7 +64,7 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "Step 3: TH_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR2 using chip tool connect to the accessory @@ -79,8 +80,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 4: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + BCM" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 (chip tool), open commissioning window using BCM @@ -98,7 +100,7 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR3 starts a commissioning process with TH_CE" + - label: "Step 5: TH_CR3 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR3 using chip tool connect to the accessory @@ -113,7 +115,8 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to read the list of Fabrics on TH_CE" + "Step 6: DUT_CR1 sends command to TH_CE to read the list of Fabrics on + TH_CE" PICS: OPCREDS.C.A0001 verification: | On DUT_CR1 , read fabrics list @@ -217,7 +220,9 @@ tests: [1661484795.153752][6993:6993] CHIP:DMG: } disabled: true - - label: "DUT_CR1 sends RemoveFabric with FabricIndex = 2 command to TH_CE" + - label: + "Step 7: DUT_CR1 sends RemoveFabric with FabricIndex = 2 command to + TH_CE" PICS: OPCREDS.C.C0a.Tx verification: | on DUT_CR1 ( using chip tool), remove fabric with FabricIndex=2 @@ -238,8 +243,8 @@ tests: disabled: true - label: - "TH_CR2 sends command to TH_CE to write and read the Basic Information - Clusters NodeLabel mandatory attribute" + "Step 8: TH_CR2 sends command to TH_CE to write and read the Basic + Information Clusters NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | Using TH_CR2 , write attribute and read attribute to and from TH_CE @@ -261,7 +266,8 @@ tests: [1678876803.495040][714337:714339] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1727: CHIP Error 0x000000C9: No shared trusted root at ../../commands/clusters/ModelCommand.cpp:62 disabled: true - - label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics" + - label: + "Step 9: DUT_CR1 sends command to TH_CE to read the list of Fabrics" PICS: OPCREDS.C.A0001 verification: | On DUT_CR1 , read fabrics list @@ -357,8 +363,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 11: DUT_CR1 sends command to TH_CE to open a commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using BCM" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 chip tool, open commissioning window using BCM @@ -376,7 +383,7 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "Step 12: TH_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR2 using chip tool connect to the accessory @@ -390,7 +397,8 @@ tests: Commissioning completed successfully disabled: true - - label: "TH_CR2 sends command to TH_CE to read the list of Fabrics" + - label: + "Step 13: TH_CR2 sends command to TH_CE to read the list of Fabrics" PICS: OPCREDS.C.A0001 verification: | On TH_CR2 , read fabrics list diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml index cd02765d10b6ee..892ae3c627623b 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml @@ -15,8 +15,7 @@ name: 4.1.19. [TC-CADMIN-1.19] max number of Commissioned Fabrics and - SupportedFabrics rollover using ECM [DUT - Commissionee] - + SupportedFabrics rollover using ECM [DUT - Commissionee] PICS: - CADMIN.S @@ -31,7 +30,7 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with DUT_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | "1. Provision the device using TH_CR1 -chip tool(use above instructions) , @@ -39,8 +38,8 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 2: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 (chip tool), open commissioning window using ECM @@ -62,7 +61,7 @@ tests: [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i disabled: true - - label: "THn starts a commissioning process with DUT_CE" + - label: "Step 3: THn starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | On TH_CR1+1 controller using chip tool connect to the accessory @@ -75,8 +74,8 @@ tests: disabled: true - label: - "Repeat Step 3 and Step 4 an additional (SupportedFabrics - 2) times - to reach an index value of SupportedFabrics on DUT_CE" + "Step 4: Repeat Step 3 and Step 4 an additional (SupportedFabrics - 2) + times to reach an index value of SupportedFabrics on DUT_CE" PICS: CADMIN.S.C00.Rsp verification: | Repeat step 3 until CommissionedFabrics=SupportedFabrics (Supported fabrics value obtained in the precondition) @@ -89,8 +88,8 @@ tests: disabled: true - label: - "THn_1 starts a commissioning process and opens a commissioning window - with DUT_CE" + "Step 5: THn_1 starts a commissioning process and opens a + commissioning window with DUT_CE" PICS: CADMIN.S verification: | On THnth controller using chip tool connect to the accessory @@ -105,7 +104,7 @@ tests: [1649756670.402241][10794:10799] CHIP:CTL: Failed to perform commissioning step 13 disabled: true - - label: "TH_CR1 removes FabricIndex1" + - label: "Step 6: TH_CR1 removes FabricIndex1" PICS: OPCREDS.S.C0a.Rsp verification: | on TH_CR1 using chip tool, remove fabric with FabricIndex=1 diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml index cfa7d368e34196..4d5b3028c193ce 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml @@ -36,16 +36,16 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with TH_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | "1. Provision the TH_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi" disabled: true - label: - "TH_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM - (Basic Commissioning Method)" + "Step 2: TH_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + BCM (Basic Commissioning Method)" PICS: CADMIN.C.C01.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -61,7 +61,7 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR1 sends command to TH_CE to read the list of Fabrics" + - label: "Step 3: TH_CR1 sends command to TH_CE to read the list of Fabrics" PICS: OPCREDS.C.A0001 verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command with their all-cluster-app and for the second and third commissioners. @@ -106,20 +106,22 @@ tests: [1676355303.610660][997160:997162] CHIP:EM: <<< [E:41653i S:27265 M:61334885 (Ack:214003320)] (S) Msg TX to 1:0000000000000001 [6193] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - - label: "DUT_CR2 starts a commissioning process with TH_CE" + - label: "Step 4a: DUT_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers On DUT_CR2 send the below command - ./chip-tool pairing onnetwork 2 20202021 --commissioner-name beta + ./chip-tool pairing code 2 34970112332 --commissioner-name beta Verify TH_CE logs for Commissioning completed successfully disabled: true - - label: "Verify TH_CE is now discoverable over DNS-SD with two SRV Records" + - label: + "Step 4b: Verify TH_CE is now discoverable over DNS-SD with two SRV + Records" verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -148,7 +150,7 @@ tests: disabled: true - label: - "DUT_CR2 sends command to TH_CE to write and read the Basic + "Step 4c: DUT_CR2 sends command to TH_CE to write and read the Basic Information Clusters NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | @@ -197,7 +199,8 @@ tests: disabled: true - label: - "DUT_CR2 sends command to TH_CE to read the list of Fabrics on TH_CE" + "Step 5: DUT_CR2 sends command to TH_CE to read the list of Fabrics on + TH_CE" PICS: OPCREDS.C.A0001 verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -250,8 +253,8 @@ tests: disabled: true - label: - "TH_CR1 sends command to TH_CE to write and read the Basic Information - Clusters NodeLabel mandatory attribute" + "Step 6: TH_CR1 sends command to TH_CE to write and read the Basic + Information Cluster’s NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -294,8 +297,8 @@ tests: disabled: true - label: - "DUT_CR2 sends command to TH_CE to read, write and then read the Basic - Information Clusters NodeLabel mandatory attribute" + "Step 7: DUT_CR2 sends command to TH_CE to read, write and then read + the Basic Information Cluster’s NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | On DUT_CR2 read, write attribute and then read attribute to and from TH_CE @@ -375,15 +378,15 @@ tests: [1660902253.380208][3045:3045] CHIP:DMG: ], disabled: true - - label: "Turn off TH_CR1" + - label: "Step 8: Turn off TH_CR1" verification: | No need to do anything as chip-tool process exits after each command disabled: true - label: - "DUT_CR2 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM - (Basic Commissioning Method)" + "Step 9: DUT_CR2 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + BCM (Basic Commissioning Method)" PICS: CADMIN.C.C01.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -400,8 +403,8 @@ tests: disabled: true - label: - "DUT_CR2 sends command to TH_CE to revoke the commissioning window - using the Revoke Commissioning command" + "Step 10: DUT_CR2 sends command to TH_CE to revoke the commissioning + window using the Revoke Commissioning command" PICS: CADMIN.C.C02.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -417,46 +420,34 @@ tests: disabled: true - label: - "TH_CR3 attempts to execute a PASE to starts a commissioning process - with TH_CE" + "Step 11: TH_CR3 attempts to execute a PASE to starts a commissioning + process with TH_CE" PICS: CADMIN.C verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command with their all-cluster-app and for the second and third commissioners. On TH_CR3 send the below command - ./chip-tool pairing onnetwork 3 20202021 --commissioner-name gamma + ./chip-tool pairing code 3 34970112332 --commissioner-name gamma - verify you got the following message in the TH_CR3(all-clusters-app) log + verify you got the following message in the TH_CR3 log If the DUT has to provision to verify the logs, Verify that either no _matterc._udp commissionable records exist matching the previously obtained discriminator, or that TH_CE refuses to allow a PASE with the provided passcode from the onboarding payload. - [1676356124.529686][997434:997434] CHIP:TS: Reverted Last Known Good Time to previous value - [1676356124.529707][997434:997434] CHIP:CTL: Shutting down the commissioner - [1676356124.529711][997434:997434] CHIP:CTL: Stopping commissioning discovery over DNS-SD - [1676356124.529728][997434:997434] CHIP:CTL: Shutting down the controller - [1676356124.529732][997434:997434] CHIP:CTL: Shutting down the System State, this will teardown the CHIP Stack - [1676356124.530546][997434:997434] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet - [1676356124.530584][997434:997434] CHIP:BLE: BleConnectionDelegate::CancelConnection is not implemented. - [1676356124.530603][997434:997434] CHIP:FP: Shutting down FabricTable - [1676356124.530617][997434:997434] CHIP:TS: Pending Last Known Good Time: 2023-02-13T11:57:54 - [1676356124.530729][997434:997434] CHIP:TS: Previous Last Known Good Time: 2023-02-13T11:57:54 - [1676356124.530736][997434:997434] CHIP:TS: Reverted Last Known Good Time to previous value - [1676356124.530884][997434:997434] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-G154Fy) - [1676356124.531158][997434:997434] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) - [1676356124.531183][997434:997434] CHIP:DL: NVS set: chip-counters/total-operational-hours = 0 (0x0) - [1676356124.531192][997434:997434] CHIP:DL: Inet Layer shutdown - [1676356124.531199][997434:997434] CHIP:DL: BLE shutdown - [1676356124.531204][997434:997434] CHIP:DL: System Layer shutdown - [1676356124.531299][997434:997434] CHIP:TOO: Run command failure: ../../commands/pairing/PairingCommand.cpp:196: CHIP Error 0x00000003: Incorrect state + [1689719618872] [29136:5163326] [DIS] Browsing for: _matterc._udp,_S15 + [1689719648874] [29136:5163326] [CTL] Discovery timed out + [1689719648874] [29136:5163326] [CTL] Stopping commissioning discovery over DNS-SD + [1689719648874] [29136:5163320] [CTL] Shutting down the commissioner + [1689719648874] [29136:5163320] [CTL] Stopping commissioning discovery over DNS-SD + [1689719648874] [29136:5163320] [CTL] Shutting down the controller disabled: true - label: - "DUT_CR2 sends command to TH_CE to write and read the Basic - Information Clusters NodeLabel mandatory attribute" + "Step 12: DUT_CR2 sends command to TH_CE to write and read the Basic + Information Cluster’s NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -494,8 +485,8 @@ tests: disabled: true - label: - "DUT_CR2 sends command to TH_CE to open a commissioning window using - BCM" + "Step 13: DUT_CR2 sends command to TH_CE to open a commissioning + window using BCM" PICS: CADMIN.C.C01.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -512,14 +503,15 @@ tests: disabled: true - label: - "Wait for commissioning window that was opened in step 13 to timeout" + "Step 14: Wait for commissioning window that was opened in step 13 to + timeout" verification: | Wait for the timeout of commissioning window in the above step disabled: true - label: - "DUT_CR2 sends command to TH_CE to open a commissioning window using - BCM" + "Step 15: DUT_CR2 sends command to TH_CE to open a commissioning + window using BCM" PICS: CADMIN.C.C01.Tx verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers @@ -536,15 +528,16 @@ tests: disabled: true - label: - "TH_CR1 starts a commissioning process with TH_CE before the timeout - from step 15" + "Step 16: TH_CR1 starts a commissioning process with TH_CE before the + timeout from step 15" PICS: CADMIN.C verification: | Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers On TH_CR1 send the below command - ./chip-tool pairing onnetwork 1 20202021 + + ./chip-tool pairing code 1 34970112332 --commissioner-name alpha [1676358083.879096][997283:997283] CHIP:SVR: Failsafe timer expired [1676358083.879098][997283:997283] CHIP:IN: SecureSession[0x563d5294d7b0]: MarkForEviction Type:1 LSID:55630 [1676358083.879100][997283:997283] CHIP:SC: SecureSession[0x563d5294d7b0]: Moving from state 'kActive' --> 'kPendingEviction' diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml index e5d7aa3c28fecc..94fb786d5aa1af 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml @@ -15,7 +15,7 @@ name: 4.1.20. [TC-CADMIN-1.20] max number of Commissioned Fabrics and - SupportedFabrics rollover using BCM [DUT - Commissionee] + SupportedFabrics rollover using BCM [DUT - Commissionee] PICS: - CADMIN.S @@ -32,7 +32,7 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with DUT_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | "1. Provision the device using TH_CR1 - chip tool(use above instructions) , @@ -40,8 +40,8 @@ tests: disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 2: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" PICS: CADMIN.S.C01.Rsp verification: | On TH_CR1 (chip tool), open commissioning window using BCM @@ -83,7 +83,7 @@ tests: [1649756654.930801][3385:3390] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - - label: "THn starts a commissioning process with DUT_CE" + - label: "Step 3: THn starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | On TH_CR1+1 controller using chip tool connect to the accessory @@ -95,8 +95,8 @@ tests: disabled: true - label: - "Repeat Step 3 and Step 4 an additional (SupportedFabrics - 2) times - to reach an index value of SupportedFabrics on DUT_CE" + "Step 4: Repeat Step 3 and Step 4 an additional (SupportedFabrics - 2) + times to reach an index value of SupportedFabrics on DUT_CE" PICS: CADMIN.S.C01.Rsp verification: | Repeat step 3 until CommissionedFabrics=SupportedFabrics (Supported fabrics value obtained in the precondition) @@ -109,8 +109,8 @@ tests: disabled: true - label: - "THn_1 starts a commissioning process and opens a commissioning window - with DUT_CE" + "Step 5: THn_1 starts a commissioning process and opens a + commissioning window with DUT_CE" PICS: CADMIN.S.C01.Rsp verification: | On THnth controller using chip tool connect to the accessory @@ -125,7 +125,7 @@ tests: [1649756670.402241][10794:10799] CHIP:CTL: Failed to perform commissioning step 13 disabled: true - - label: "TH_CR1 removes FabricIndex1" + - label: "Step 6: TH_CR1 removes FabricIndex1" PICS: OPCREDS.S.C0a.Rsp verification: | on TH_CR1 using chip tool, remove fabric with FabricIndex=1 diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml index 0486a6dbd869de..cd1141ce8813de 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml @@ -11,7 +11,6 @@ # 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. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 30.1.21. [TC-CADMIN-1.21] Open commissioning window - durations max and @@ -54,7 +53,9 @@ tests: - name: "nodeId" value: nodeId - - label: "Step 2: TH_CR1 opens a commissioning window on DUT_CE using BCM" + - label: + "Step 2: TH_CR1 opens a commissioning window on DUT_CE using BCM with + a value of 900 seconds" cluster: "Administrator Commissioning" command: "OpenBasicCommissioningWindow" timedInteractionTimeoutMs: 10000 @@ -64,7 +65,7 @@ tests: - name: "CommissioningTimeout" value: 900 - - label: "Step 3: Wait for commissioning Window to 901 seconds" + - label: "Step 3: Wait 901 seconds for commissioning Window to be closed" cluster: "DelayCommands" command: "WaitForMs" arguments: @@ -82,7 +83,9 @@ tests: response: value: 0 - - label: "Step 5: TH_CR1 opens a commissioning window on DUT_CE" + - label: + "Step 5: TH_CR1 opens a commissioning window on DUT_CE using BCM with + a value of 901 seconds" cluster: "Administrator Commissioning" command: "OpenBasicCommissioningWindow" PICS: CADMIN.S.C01.Rsp diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml index 0c3c3d86b1039b..ff0061e4bfd838 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml @@ -11,7 +11,6 @@ # 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. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 30.1.22. [TC-CADMIN-1.22] Open commissioning window - durations max and diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml index 281a7c04abaa4e..c383ff77a46ad9 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml @@ -11,7 +11,6 @@ # 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. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 24.1.23. [TC-CADMIN-1.23] Open commissioning window - durations max and @@ -54,7 +53,9 @@ tests: - name: "nodeId" value: nodeId - - label: "Step 2: TH_CR1 opens a commissioning window on DUT_CE" + - label: + "Step 2: TH_CR1 opens a commissioning window on DUT_CE using BCM with + a value of 180 seconds" cluster: "Administrator Commissioning" command: "OpenBasicCommissioningWindow" PICS: CADMIN.S.C01.Rsp @@ -64,7 +65,8 @@ tests: - name: "CommissioningTimeout" value: 180 - - label: "Step 3: Wait for commissioning Window to 181 seconds" + - label: + "Step 3: Wait for 181 seconds for commissioning Window to be closed" cluster: "DelayCommands" command: "WaitForMs" arguments: @@ -82,7 +84,9 @@ tests: response: value: 0 - - label: "Step 5: TH_CR1 opens a commissioning window on DUT_CE" + - label: + "Step 5: TH_CR1 opens a commissioning window on DUT_CE using BCM with + a value of 179 seconds" cluster: "Administrator Commissioning" command: "OpenBasicCommissioningWindow" PICS: CADMIN.S.C01.Rsp diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml index 37ee7b7e8eda12..00f27d31146b6e 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml @@ -11,7 +11,6 @@ # 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. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: 24.1.24. [TC-CADMIN-1.24] Open commissioning window - durations max and @@ -90,7 +89,9 @@ tests: - name: "expectedValue" value: "y" - - label: "Step 2a: TH_CR1 opens a commissioning window on DUT_CE" + - label: + "Step 2a: TH_CR1 opens a commissioning window on DUT_CE using ECM with + a value of 180 seconds" cluster: "Administrator Commissioning" command: "OpenCommissioningWindow" PICS: CADMIN.S.C00.Rsp && PICS_SDK_CI_ONLY @@ -150,7 +151,9 @@ tests: - name: "expectedValue" value: "y" - - label: "Step 5a: TH_CR1 opens a commissioning window on DUT_CE" + - label: + "Step 5a: TH_CR1 opens a commissioning window on DUT_CE using ECM with + a value of 179 seconds" cluster: "Administrator Commissioning" command: "OpenCommissioningWindow" PICS: CADMIN.S.C00.Rsp && PICS_SDK_CI_ONLY diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_3.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_3.yaml index bf4220bd0a9348..cde41502b540e7 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_3.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 24.1.3. [TC-CADMIN-1.3] Node Behavior using ECM [DUT - Commissionee] +name: 4.1.3. [TC-CADMIN-1.3] Node Behavior using ECM [DUT - Commissionee] PICS: - CADMIN.S @@ -29,15 +29,15 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with DUT_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | "1. Provision the DUT_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi" disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 2a: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 send the below command @@ -59,7 +59,7 @@ tests: [1635864513.699685][3850:3855] CHIP:IN: Prepared plaintext message 0xffff8a7cd960 to 0x0000000000000000 of type 0x10 and . disabled: true - - label: "Verify that the DNS-SD advertisement shows CM=2" + - label: "Step 2b: Verify that the DNS-SD advertisement shows CM=2" verification: | On TH_CR1 send the below command @@ -76,8 +76,8 @@ tests: disabled: true - label: - "TH_CR1 writes and reads the Basic Information Clusters NodeLabel - mandatory attribute of DUT_CE" + "Step 2c: TH_CR1 writes and reads the Basic Information Clusters + NodeLabel mandatory attribute of DUT_CE" PICS: BINFO.S.A0005 verification: | On TH_CR1 send the below command @@ -106,7 +106,7 @@ tests: [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i disabled: true - - label: "TH_CR2 starts a commissioning process with DUT_CE" + - label: "Step 3: TH_CR2 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | On TH_CR2 send the below command @@ -120,7 +120,8 @@ tests: disabled: true - label: - "Verify DUT_CE is now discoverable over DNS-SD with two SRV Records" + "Step 4: Verify DUT_CE is now discoverable over DNS-SD with two SRV + Records" verification: | On TH_CR2 send the below command @@ -145,7 +146,7 @@ tests: ubuntu@ubuntu:~/may16_cntrl/connectedhomeip/examples/chip-tool/out/debug$ disabled: true - - label: "TH_CR1 reads the list of Fabrics on DUT_CE" + - label: "Step 5: TH_CR1 reads the list of Fabrics on DUT_CE" PICS: OPCREDS.S.A0001 verification: | On TH_CR1 send the below command @@ -175,7 +176,7 @@ tests: [1649245825.315986][10098:10103] CHIP:TOO: } disabled: true - - label: "TH_CR2 reads the list of Fabrics on DUT_CE" + - label: "Step 6: TH_CR2 reads the list of Fabrics on DUT_CE" PICS: OPCREDS.S.A0001 verification: | On TH_CR2 send the below command @@ -206,8 +207,8 @@ tests: disabled: true - label: - "TH_CR1 writes and reads the Basic Information Clusters NodeLabel - mandatory attribute of DUT_CE" + "Step 7: TH_CR1 writes and reads the Basic Information Clusters + NodeLabel mandatory attribute of DUT_CE" PICS: BINFO.S.A0005 verification: | On TH_CR1 send the below command @@ -237,8 +238,8 @@ tests: disabled: true - label: - "TH_CR2 reads, writes and then reads the Basic Information Clusters - NodeLabel mandatory attribute of DUT_CE" + "Step 8: TH_CR2 reads, writes and then reads the Basic Information + Clusters NodeLabel mandatory attribute of DUT_CE" PICS: BINFO.S.A0005 verification: | On TH_CR2 send the below command @@ -265,7 +266,7 @@ tests: [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i disabled: true - - label: "TH_CR2 opens a commissioning window on DUT_CE using ECM" + - label: "Step 9: TH_CR2 opens a commissioning window on DUT_CE using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR2 send the below command @@ -285,13 +286,14 @@ tests: [1635864513.699566][3850:3855] CHIP:CTL: SetupQRCode: [MT:00000CQM00YZN476420] disabled: true - - label: "Wait for the commissioning window in step 13 to timeout" + - label: "Step 10: Wait for the commissioning window in step 9 to timeout" verification: | Wait for the timeout of the above step disabled: true - label: - "TH_CR2 reads the window status to verify the DUT_CE window is closed" + "Step 11: TH_CR2 reads the window status to verify the DUT_CE window + is closed" PICS: CADMIN.S.A0000 verification: | On TH_CR2 send the below command @@ -307,7 +309,7 @@ tests: [1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i disabled: true - - label: "TH_CR2 opens a commissioning window on DUT_CE using ECM" + - label: "Step 12: TH_CR2 opens a commissioning window on DUT_CE using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR2 send the below command @@ -329,8 +331,8 @@ tests: disabled: true - label: - "TH_CR1 starts a commissioning process with DUT_CE before the timeout - from step 12" + "Step 13: TH_CR1 starts a commissioning process with DUT_CE before the + timeout from step 12" PICS: CADMIN.S verification: | On TH_CR1 send the below command diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_5.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_5.yaml index 4f582b7aa30d9a..045bb85fa92f10 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_5.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 24.1.5. [TC-CADMIN-1.5] Commissioning window handling timeout and revocation + 4.1.5. [TC-CADMIN-1.5] Commissioning window handling timeout and revocation using ECM [DUT - Commissionee] PICS: @@ -31,15 +31,15 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with DUT_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | "1. Provision the DUT_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi" disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 2: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 send the below command @@ -61,7 +61,7 @@ tests: [1635864513.699685][3850:3855] CHIP:IN: Prepared plaintext message 0xffff8a7cd960 to 0x0000000000000000 of type disabled: true - - label: "DNS-SD records shows DUT_CE advertising" + - label: "Step 3: DNS-SD records shows DUT_CE advertising" verification: | On TH_CR1 send the below command @@ -75,7 +75,7 @@ tests: disabled: true - label: - "TH_CR2 starts a commissioning process with DUT_CE after + "Step 4: TH_CR2 starts a commissioning process with DUT_CE after PIXIT.CADMIN.CwDuration (that was given in step 2) + 10 seconds" PICS: CADMIN.S.C00.Rsp verification: | @@ -95,7 +95,7 @@ tests: disabled: true - label: - "TH_CR1 opens a new commissioning window on DUT_CE using a + "Step 5: TH_CR1 opens a new commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | @@ -119,7 +119,7 @@ tests: disabled: true - label: - "TH_CR1 revokes the commissioning window on DUT_CE using + "Step 6: TH_CR1 revokes the commissioning window on DUT_CE using RevokeCommissioning command" PICS: CADMIN.S.C02.Rsp verification: | @@ -143,7 +143,7 @@ tests: [1648115245106] [6681:3894448] CHIP: [DMG] }, disabled: true - - label: "TH_CR2 starts a commissioning process with DUT_CE" + - label: "Step 7: TH_CR2 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | On TH_CR2 send the below command @@ -162,7 +162,7 @@ tests: disabled: true - label: - "TH_CR1 revokes the commissioning window on DUT_CE using + "Step 8: TH_CR1 revokes the commissioning window on DUT_CE using RevokeCommissioning command" PICS: CADMIN.S.C02.Rsp verification: | @@ -186,8 +186,8 @@ tests: disabled: true - label: - "TH_CR1 writes and reads the Basic Information Clusters NodeLabel - mandatory attribute of DUT_CE" + "Step 9: TH_CR1 writes and reads the Basic Information Clusters + NodeLabel mandatory attribute of DUT_CE" PICS: BINFO.S.A0005 verification: | On TH_CR1 send the below command @@ -221,12 +221,14 @@ tests: disabled: true - label: - "TH_CR1 opens a new commissioning window on DUT_CE using a + "Step 10: TH_CR1 opens a new commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM but with wrong PakeVerifier value" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 send the below command + Below is example command by considering the "\x06\xc7\x56\xdf\xfc\xd7\x22\x65\x34\x52\xa1\x2d\xcd\x94\x5d\x8c\x54\xda\x2b\x0f\x3c\xbd\x1b\x4d\xc3\xf1\xad\xb2\x23\xae\xb2\x6b\x04\x7c\xd2\x4c\x96\x86\x6f\x97\x9b\x1d\x83\xec\x50\xe2\xb4\xae\x30\xcd\xf2\xfd\xb3\x2b\xd8\xa2\x11\xb8\x37\xdc\x94\xed\xcd\x56\xf4\xd1\x43\x77\x19\x10\x76\xbf\xc5\x9d\x99\xb7\xdd\x30\x53\xef\xd6\xf0\x2c\x44\x34\xf2\xbd " as a wrong PakeVerifier value + ./chip-tool administratorcommissioning open-commissioning-window 200 \x06\xc7\x56\xdf\xfc\xd7\x22\x65\x34\x52\xa1\x2d\xcd\x94\x5d\x8c\x54\xda\x2b\x0f\x3c\xbd\x1b\x4d\xc3\xf1\xad\xb2\x23\xae\xb2\x6b\x04\x7c\xd2\x4c\x96\x86\x6f\x97\x9b\x1d\x83\xec\x50\xe2\xb4\xae\x30\xcd\xf2\xfd\xb3\x2b\xd8\xa2\x11\xb8\x37\xdc\x94\xed\xcd\x56\xf4\xd1\x43\x77\x19\x10\x76\xbf\xc5\x9d\x99\xb7\xdd\x30\x53\xef\xd6\xf0\x2c\x44\x34\xf2\xbd 3841 1000 16 1 0 --timedInteractionTimeoutMs 1000 @@ -250,7 +252,7 @@ tests: disabled: true - label: - "TH_CR1 opens a new commissioning window on DUT_CE using a + "Step 11: TH_CR1 opens a new commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | @@ -274,7 +276,7 @@ tests: disabled: true - label: - "TH_CR1 opens another commissioning window on DUT_CE using a + "Step 12: TH_CR1 opens another commissioning window on DUT_CE using a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | @@ -299,7 +301,7 @@ tests: [1656405166.758014][5933:5938] CHIP:DMG: }, disabled: true - - label: "TH_CR2 starts a commissioning process with DUT_CE" + - label: "Step 13: TH_CR2 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | On TH_CR2 send the below command @@ -312,8 +314,8 @@ tests: disabled: true - label: - "TH_CR1 tries to revoke the commissioning window on DUT_CE using - RevokeCommissioning command" + "Step 14: TH_CR1 tries to revoke the commissioning window on DUT_CE + using RevokeCommissioning command" PICS: CADMIN.S.C02.Rsp verification: | On TH_CR1 send the below command @@ -337,7 +339,7 @@ tests: [1656405166.758014][5933:5938] CHIP:DMG: }, disabled: true - - label: "TH_CR3 starts a commissioning process with DUT_CE" + - label: "Step 15: TH_CR3 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | On TH_CR3 send the below command diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml index 098793395a2d9e..ae3582acf90fb2 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml @@ -80,7 +80,7 @@ tests: value: 180 #Check for DNS-SD advertisement CM is not possible in YAML - - label: "Step 3a: Verify that the DNS-SD advertisement shows CM=1" + - label: "Step 3: Verify that the DNS-SD advertisement shows CM=1" verification: | On TH_CR1 send the below command @@ -107,7 +107,7 @@ tests: - name: "expectedValue" value: "y" - - label: "Step 3b: Wait for PIXIT.CADMIN.CwDuration + 10" + - label: "Wait for PIXIT.CADMIN.CwDuration + 10" cluster: "DelayCommands" command: "WaitForMs" arguments: @@ -129,7 +129,7 @@ tests: response: error: FAILURE - - label: "Step 5a: TH_CR1 opens a commissioning window on DUT_CE" + - label: "Step 5: TH_CR1 opens a commissioning window on DUT_CE" cluster: "Administrator Commissioning" command: "OpenBasicCommissioningWindow" timedInteractionTimeoutMs: 10000 @@ -139,7 +139,7 @@ tests: - name: "CommissioningTimeout" value: 180 - - label: "Step 5b: Waiting after opening commissioning window" + - label: "Waiting after opening commissioning window" cluster: "DelayCommands" command: "WaitForMs" arguments: @@ -155,6 +155,7 @@ tests: - label: "Step 7: TH_CR2 starts a commissioning process with DUT_CE" identity: "beta" + PICS: CADMIN.S cluster: "CommissionerCommands" command: "PairWithCode" arguments: @@ -193,7 +194,7 @@ tests: response: value: "chiptest" - - label: "Step 10a: TH_CR1 opens a commissioning window on DUT_CE" + - label: "Step 10: TH_CR1 opens a commissioning window on DUT_CE" identity: "alpha" cluster: "Administrator Commissioning" command: "OpenBasicCommissioningWindow" @@ -204,7 +205,7 @@ tests: - name: "CommissioningTimeout" value: 180 - - label: "Step 10b: Waiting after opening commissioning window" + - label: "Waiting after opening commissioning window" cluster: "DelayCommands" command: "WaitForMs" arguments: @@ -226,7 +227,7 @@ tests: error: FAILURE clusterError: 2 - - label: "Step 12a: TH_CR2 starts a commissioning process on DUT_CE" + - label: "Step 12: TH_CR2 starts a commissioning process on DUT_CE" identity: "beta" cluster: "CommissionerCommands" command: "PairWithCode" @@ -237,7 +238,7 @@ tests: - name: "payload" value: payload - - label: "Step 12b: DUT_CE is commissioned by TH_CR2" + - label: "DUT_CE is commissioned by TH_CR2" identity: "beta" cluster: "DelayCommands" command: "WaitForCommissionee" @@ -248,8 +249,7 @@ tests: value: nodeId2 - label: - "Step 12c: TH2 reads CurrentFabricIndex attribute and save it for - future use." + "TH2 reads CurrentFabricIndex attribute and save it for future use." identity: "beta" command: "readAttribute" cluster: "Operational Credentials" @@ -282,7 +282,7 @@ tests: response: error: FAILURE - - label: "Step 14a: Remove TH2 FabricIndex" + - label: "Remove TH2 FabricIndex" PICS: OPCREDS.S.C0a.Rsp && CADMIN.S identity: "beta" cluster: "Operational Credentials" diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml index 59f6a8d4170577..b7518730e87f65 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml @@ -37,15 +37,16 @@ tests: Reset Devices to factory defaults disabled: true - - label: "DUT_CR1 starts a commissioning process with TH_CE" + - label: "Step 1: DUT_CR1 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | "1. Provision the TH_CE (all-cluster-app) device using DUT_CR1 (chip-tool ) on the raspi" " disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 2: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 send the below command @@ -63,29 +64,30 @@ tests: disabled: true - label: - "A User Consent screen pops up asking for Users permission to allow - second commissioner to control TH_CE" - PICS: CADMIN.UserInterfaceDisplay + "Step 3a: A User Consent screen pops up asking for Users permission to + allow second commissioner to control TH_CE" + PICS: CADMIN.M.UserInterfaceDisplay verification: | Verify the User Consent pop up screen. Verify that the pop up closes after user gives permission disabled: true - label: - "11 digit Manual Code is displayed on the screen in textual format for - User to see" - PICS: CADMIN.UserInterfaceDisplay + "Step 3.b: 11 digit Manual Code is displayed on the screen in textual + format for User to see" + PICS: CADMIN.M.UserInterfaceDisplay verification: | Verify that the displayed Manual Code is 11 digits long and doesn’t contain Vendor_ID or Product_ID. disabled: true - - label: "A voice prompt of the Manual Code format should be heard" - PICS: CADMIN.AudioInterface + - label: + "Step 3.c: A voice prompt of the Manual Code format should be heard" + PICS: CADMIN.M.AudioInterface verification: | Verify voice prompt saying the manual code. Verify the voice prompt repeats if user asks. disabled: true - label: - "TH_CR2 starts a commissioning process with TH_CE after + "Step 4: TH_CR2 starts a commissioning process with TH_CE after PIXIT.CADMIN.CwDuration (that was given in step 2) + 10 seconds" PICS: CADMIN.C verification: | @@ -106,9 +108,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a new commissioning window - with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using - ECM" + "Step 5: DUT_CR1 sends command to TH_CE to open a new commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 send the below command @@ -124,7 +126,9 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window" + - label: + "Step 6: DUT_CR1 sends command to TH_CE to revoke the commissioning + window" PICS: CADMIN.C.C02.Tx verification: | On DUT_CR1 send the below command @@ -140,7 +144,7 @@ tests: [1661485834.635328][6993:6993] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "Step 7: TH_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR2 send the below command @@ -162,7 +166,9 @@ tests: [1665481996.787363][4913:4913] CHIP:TOO: Run command failure: ../../commands/pairing/PairingCommand.cpp:164: CHIP Error 0x00000003: Incorrect state disabled: true - - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window" + - label: + "Step 8: DUT_CR1 sends command to TH_CE to revoke the commissioning + window" PICS: CADMIN.C.C02.Tx verification: | On DUT_CR1 send the below command @@ -180,7 +186,7 @@ tests: disabled: true - label: - "DUT_CR1 sends commands to TH_CE to write and read the Basic + "Step 9: DUT_CR1 sends commands to TH_CE to write and read the Basic Information Clusters NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | @@ -232,8 +238,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 10: DUT_CR1 sends command to TH_CE to open a commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using ECM" PICS: CADMIN.C.C00.Tx verification: | On DUT_CR1 send the below command @@ -249,7 +256,7 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "Step 11: TH_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR2 send the below command @@ -263,7 +270,7 @@ tests: Device commissioning completed with success disabled: true - - label: "TH_CR3 starts a commissioning process with TH_CE" + - label: "Step 12: TH_CR3 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR3 send the below command diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml index be4902bf9dd82a..8ef0e6cf2e13e7 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml @@ -37,15 +37,16 @@ tests: Reset Devices to factory defaults disabled: true - - label: "DUT_CR1 starts a commissioning process with TH_CE" + - label: "Step 1: DUT_CR1 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | "1. Provision the TH_CE (all-cluster-app) device using DUT_CR1 (chip-tool ) on the raspi" " disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a commissioning window with a - commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM" + "Step 2: DUT_CR1 sends command to TH_CE to open a commissioning window + with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using + BCM" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 send the below command @@ -63,29 +64,29 @@ tests: disabled: true - label: - "A User Consent screen pops up asking for Users permission to allow - second commissioner to control TH_CE" - PICS: CADMIN.UserInterfaceDisplay + "Step 3a: A User Consent screen pops up asking for Users permission to + allow second commissioner to control TH_CE" + PICS: CADMIN.M.UserInterfaceDisplay verification: | Verify the User Consent pop up screen. Verify that the pop up closes after user gives permission disabled: true - label: - "11 digit Manual Code is displayed on the screen in textual format for - User to see" - PICS: CADMIN.UserInterfaceDisplay + "Step 3b: 11 digit Manual Code is displayed on the screen in textual + format for User to see" + PICS: CADMIN.M.UserInterfaceDisplay verification: | Verify that the displayed Manual Code is 11 digits long and doesn’t contain Vendor_ID or Product_ID. disabled: true - - label: "A voice prompt of the Manual Code format should be heard" - PICS: CADMIN.AudioInterface + - label: "Step 3c: A voice prompt of the Manual Code format should be heard" + PICS: CADMIN.M.AudioInterface verification: | Verify voice prompt saying the manual code. Verify the voice prompt repeats if user asks. disabled: true - label: - "TH_CR2 starts a commissioning process with TH_CE after + "Step 4: TH_CR2 starts a commissioning process with TH_CE after PIXIT.CADMIN.CwDuration (that was given in step 2) + 10 seconds" PICS: CADMIN.C verification: | @@ -105,9 +106,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a new commissioning window - with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using - BCM" + "Step 5: DUT_CR1 sends command to TH_CE to open a new commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using BCM" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 send the below command @@ -123,7 +124,9 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window" + - label: + "Step 6: DUT_CR1 sends command to TH_CE to revoke the commissioning + window" PICS: CADMIN.C.C02.Tx verification: | On DUT_CR1 send the below command @@ -139,7 +142,7 @@ tests: [1661485834.635328][6993:6993] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "Step 7: TH_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR2 send the below command @@ -155,7 +158,9 @@ tests: CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout disabled: true - - label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window" + - label: + "Step 8: DUT_CR1 sends command to TH_CE to revoke the commissioning + window" PICS: CADMIN.C.C02.Tx verification: | On DUT_CR1 send the below command @@ -173,7 +178,7 @@ tests: disabled: true - label: - "DUT_CR1 sends commands to TH_CE to write and read the Basic + "Step 9: DUT_CR1 sends commands to TH_CE to write and read the Basic Information Clusters NodeLabel mandatory attribute" PICS: BINFO.C.A0005 verification: | @@ -227,9 +232,9 @@ tests: disabled: true - label: - "DUT_CR1 sends command to TH_CE to open a new commissioning window - with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using - BCM" + "Step 10: DUT_CR1 sends command to TH_CE to open a new commissioning + window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds + using BCM" PICS: CADMIN.C.C01.Tx verification: | On DUT_CR1 send the below command @@ -245,7 +250,7 @@ tests: [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing] disabled: true - - label: "TH_CR2 starts a commissioning process with TH_CE" + - label: "Step 11: TH_CR2 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR2 send the below command @@ -258,7 +263,7 @@ tests: Device commissioning completed with success disabled: true - - label: "TH_CR3 starts a commissioning process with TH_CE" + - label: "Step 12: TH_CR3 starts a commissioning process with TH_CE" PICS: CADMIN.C verification: | On TH_CR3 send the below command diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_9.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_9.yaml index a213d18348685b..d5394a1a28617d 100644 --- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_9.yaml @@ -31,15 +31,15 @@ tests: Reset Devices to factory defaults disabled: true - - label: "TH_CR1 starts a commissioning process with DUT_CE" + - label: "Step 1: TH_CR1 starts a commissioning process with DUT_CE" PICS: CADMIN.S verification: | "1. Provision the DUT_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi" disabled: true - label: - "TH_CR1 opens a commissioning window on DUT_CE using a commissioning - timeout of PIXIT.CADMIN.CwDuration seconds using ECM" + "Step 2: TH_CR1 opens a commissioning window on DUT_CE using a + commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM" PICS: CADMIN.S.C00.Rsp verification: | On TH_CR1 send the below command @@ -61,7 +61,7 @@ tests: [1635864513.699685][3850:3855] CHIP:IN: Prepared plaintext message 0xffff8a7cd960 to 0x0000000000000000 of type disabled: true - - label: "DNS-SD records shows DUT_CE advertising" + - label: "Step 3: DNS-SD records shows DUT_CE advertising" verification: | On TH_CR1 send the below command avahi-browse -rt _matterc._udp @@ -75,10 +75,10 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration set in step 2, Set - up a TH_CR2 to start attempting to do PASE to DUT_CE and failing 20 - times. This can be done using a valid onboarding payload with an - incorrect setupcode" + "Step 4: Before the expiration of PIXIT.CADMIN.CwDuration set in step + 2, Set up a TH_CR2 to start attempting to do PASE to DUT_CE and + failing 20 times. This can be done using a valid onboarding payload + with an incorrect setupcode" PICS: CADMIN.S verification: | On TH_CR2 send the below command @@ -108,8 +108,8 @@ tests: disabled: true - label: - "Before the expiration of PIXIT.CADMIN.CwDuration set in step 2, - TH_CR2 attempts to do PASE to DUT_CE using the correct onboarding + "Step 5: Before the expiration of PIXIT.CADMIN.CwDuration set in step + 2, TH_CR2 attempts to do PASE to DUT_CE using the correct onboarding payload" PICS: CADMIN.S verification: | @@ -127,8 +127,8 @@ tests: disabled: true - label: - "TH_CR3 starts a commissioning process with DUT_CE using the correct - PAKEVerifier" + "Step 6: TH_CR3 starts a commissioning process with DUT_CE using the + correct PAKEVerifier" PICS: CADMIN.S verification: | On TH_CR3 send the below command (with correct passcode) diff --git a/src/app/tests/suites/certification/Test_TC_CC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_2_1.yaml index b0ffe44e7a13e7..a3b9531ab59c37 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_2_1.yaml @@ -279,7 +279,7 @@ tests: verification: | ./chip-tool colorcontrol read primary1x 1 1 - Verify that Primary1X value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 1 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary1X" attribute value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary1X" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0011 DataVersion: 540305990 [1651483665.109697][3245:3250] CHIP:TOO: Primary1X: 0 @@ -301,7 +301,8 @@ tests: verification: | ./chip-tool colorcontrol read primary1y 1 1 - Verify that Primary1Y value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 1 or more On TH(chip-tool) Logs: + + On TH(chip-tool) Logs, Verify that "Primary1Y" attribute value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary1Y" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0012 DataVersion: 540305990 [1651483698.733322][3253:3259] CHIP:TOO: Primary1Y: 0 @@ -323,7 +324,7 @@ tests: verification: | ./chip-tool colorcontrol read primary1intensity 1 1 - Verify that Primary1Intensity value is an uint8 if NumberOfPrimaries is 1 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary1Intensity" attribute value is an uint8 and below is the sample log provided for the raspi platform, In RPI "Primary1Intensity" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0013 DataVersion: 540305990 [1651483742.297459][3263:3268] CHIP:TOO: Primary1Intensity: 0 @@ -345,7 +346,7 @@ tests: verification: | ./chip-tool colorcontrol read primary2x 1 1 - Verify that Primary2X value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 2 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary2X" attribute value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary2X" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0015 DataVersion: 540305990 [1651483777.233498][3270:3275] CHIP:TOO: Primary2X: 0 @@ -367,7 +368,7 @@ tests: verification: | ./chip-tool colorcontrol read primary2y 1 1 - Verify that Primary2Y value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 2 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary2Y" value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary2Y" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0016 DataVersion: 540305990 [1651483805.650796][3279:3284] CHIP:TOO: Primary2Y: 0 @@ -389,7 +390,7 @@ tests: verification: | ./chip-tool colorcontrol read primary2intensity 1 1 - Verify that Primary2Intensity value is an uint8 if NumberOfPrimaries is 2 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary2Intensity" attribute value is an uint8 and below is the sample log provided for the raspi platform, In RPI "Primary2Intensity" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0017 DataVersion: 540305990 [1651483834.596380][3285:3290] CHIP:TOO: Primary2Intensity: 0 @@ -411,7 +412,7 @@ tests: verification: | ./chip-tool colorcontrol read primary3x 1 1 - Verify that Primary3X value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 3 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary3X" value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary3X" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0019 DataVersion: 540305990 [1651483937.072323][3298:3303] CHIP:TOO: Primary3X: 0 @@ -433,7 +434,7 @@ tests: verification: | ./chip-tool colorcontrol read primary3y 1 1 - Verify that Primary3Y value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 3 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary3Y" attribute value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary3Y" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_001A DataVersion: 540305990 [1651483967.386334][3305:3310] CHIP:TOO: Primary3Y: 0 @@ -455,7 +456,7 @@ tests: verification: | ./chip-tool colorcontrol read primary3intensity 1 1 - Verify that Primary3Intensity value is an uint8 if NumberOfPrimaries is 3 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary3Intensity" attribute value is an uint8 and below is the sample log provided for the raspi platform, In RPI "Primary3Intensity" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_001B DataVersion: 540305990 [1651484113.812178][3316:3321] CHIP:TOO: Primary3Intensity: 0 @@ -478,7 +479,7 @@ tests: verification: | ./chip-tool colorcontrol read primary4x 1 1 - Verify that Primary4X value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 4 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary4X" attribute value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary4X" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0020 DataVersion: 540305990 [1651484143.778301][3324:3329] CHIP:TOO: Primary4X: 0 @@ -500,7 +501,7 @@ tests: verification: | ./chip-tool colorcontrol read primary4y 1 1 - Verify that Primary4Y value is an uint16 [Min:0 Max:0xfeff] On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary4Y" attribute value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary4Y" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0021 DataVersion: 540305990 [1651484171.921901][3334:3339] CHIP:TOO: Primary4Y: 0 @@ -522,7 +523,7 @@ tests: verification: | ./chip-tool colorcontrol read primary4intensity 1 1 - Verify that Primary4Intensity value is an uint8 On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary4Intensity" attribute value is an uint8 and below is the sample log provided for the raspi platform, In RPI "Primary4Intensity" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0022 DataVersion: 540305990 [1651484198.443415][3341:3346] CHIP:TOO: Primary4Intensity: 0 @@ -544,7 +545,7 @@ tests: verification: | ./chip-tool colorcontrol read primary5x 1 1 - Verify that Primary5X value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 5 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary5X" attribute value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary5X" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0024 DataVersion: 540305990 [1651484241.467661][3350:3355] CHIP:TOO: Primary5X: 0 @@ -566,7 +567,7 @@ tests: verification: | ./chip-tool colorcontrol read primary5y 1 1 - Verify that Primary5Y value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 5 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary5Y" attribute value is an uint16 and below is the sample log provided for the raspi platform, In RPI "Primary5Y" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0025 DataVersion: 540305990 [1651484286.709863][3358:3363] CHIP:TOO: Primary5Y: 0 @@ -588,7 +589,7 @@ tests: verification: | ./chip-tool colorcontrol read primary5intensity 1 1 - Verify that Primary5Intensity value is an uint8 if NumberOfPrimaries is 5 or more On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary5Intensity" attribute value is an uint8 and below is the sample log provided for the raspi platform, In RPI "Primary5Intensity" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0026 DataVersion: 540305990 [1651484304.715731][3365:3370] CHIP:TOO: Primary5Intensity: 0 @@ -610,7 +611,7 @@ tests: verification: | ./chip-tool colorcontrol read primary6x 1 1 - Verify that Primary6X value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 6 On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary6X" attribute value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary6X" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0028 DataVersion: 540305990 [1651484349.601181][3372:3377] CHIP:TOO: Primary6X: 0 @@ -632,7 +633,7 @@ tests: verification: | ./chip-tool colorcontrol read primary6y 1 1 - Verify that Primary6Y value is an uint16 [Min:0 Max:0xfeff] if NumberOfPrimaries is 6 On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary6Y" attribute value is an uint16 [Min:0 Max:0xfeff] and below is the sample log provided for the raspi platform, In RPI "Primary6Y" value is 0. [1663318323.234522][132277:132282] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_0029 DataVersion: 3053940635 [1663318323.234951][132277:132282] CHIP:TOO: Primary6Y: 0 @@ -654,7 +655,7 @@ tests: verification: | ./chip-tool colorcontrol read primary6intensity 1 1 - Verify that Primary6Intensity value is an uint8 if NumberOfPrimaries is 6 On TH(chip-tool) Logs: + On TH(chip-tool) Logs, Verify that "Primary6Intensity" value is an uint8 and below is the sample log provided for the raspi platform, In RPI "Primary6Intensity" value is 0. CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_002A DataVersion: 540305990 [1651484392.490974][3378:3383] CHIP:TOO: Primary6Intensity: 0 diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml index cb15a6bdc488ca..e431b2b9872510 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml @@ -226,14 +226,16 @@ tests: - name: "ms" value: 10000 + #Tolerance to be computed from the range + #Start value 50, expected value 10, 50 - 10 = 40, 40 % 15 = 6 , So 10+/-6 - label: "Step 3c: TH reads CurrentHue attribute from DUT" PICS: CC.S.F00 && CC.S.A0000 command: "readAttribute" attribute: "CurrentHue" response: constraints: - minValue: 8 - maxValue: 12 + minValue: 4 + maxValue: 16 - label: "Wait 10s" PICS: CC.S.F00 diff --git a/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml b/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml index d8ec4cf6c51bb3..3aba777bde86fc 100644 --- a/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml @@ -24,12 +24,18 @@ config: endpoint: 0 tests: + - label: "Note" + verification: | + Please use Interactive mode to Verify this test case + Here the command to enter interactive mode:-- ./chip-tool interactive start + disabled: true + - label: - "TH1 reads the TrustedRootCertificates attribute from the Node + "Step 1: TH1 reads the TrustedRootCertificates attribute from the Node Operational Credentials cluster and saves the number of list items as numTrustedRootsOriginal" verification: | - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + operationalcredentials read trusted-root-certificates 1 0 On TH1 verify the TrustedRootCertificates entries from DUT and saves the number of list items as numTrustedRootsOriginal [1658482014.176273][26852:26857] CHIP:DMG: } @@ -40,11 +46,11 @@ tests: disabled: true - label: - "TH1 reads the BasicCommissioningInfo attribute and saves the + "Step 2: TH1 reads the BasicCommissioningInfo attribute and saves the MaxCumulativeFailsafeSeconds as maxFailsafe" PICS: CGEN.S.A0001 verification: | - ./chip-tool generalcommissioning read basic-commissioning-info 1 0 + generalcommissioning read basic-commissioning-info 1 0 On TH1 verify the BasicCommissioningInfo attribute from DUT and saves the MaxCumulativeFailsafeSeconds as maxFailsafe [1658482413.950617][27013:27018] CHIP:DMG: } @@ -57,12 +63,12 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds - field set to PIXIT.CGEN.FailsafeExpiryLengthSeconds and the Breadcrumb - value as 1" + "Step 3: TH1 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds field set to + PIXIT.CGEN.FailsafeExpiryLengthSeconds and the Breadcrumb value as 1" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | - ./chip-tool generalcommissioning arm-fail-safe 60 1 1 0 + generalcommissioning arm-fail-safe 60 1 1 0 On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658482454.092676][27036:27041] CHIP:DMG: }, @@ -76,10 +82,10 @@ tests: [1658482454.092955][27036:27041] CHIP:EM: Sending Standalone Ack for MessageCounter:147679912 on exchange 8754i disabled: true - - label: "TH1 reads the Breadcrumb attribute" + - label: "Step 4: TH1 reads the Breadcrumb attribute" PICS: CGEN.S.A0000 verification: | - ./chip-tool generalcommissioning read breadcrumb 1 0 + generalcommissioning read breadcrumb 1 0 On TH1 Verify that the breadcrumb attribute value is 1 [1658482504.991161][27058:27064] CHIP:DMG: } @@ -89,7 +95,7 @@ tests: disabled: true - label: - "TH1 obtains or generates a new TrustedRootCertificate that is + "Step 5: TH1 obtains or generates a new TrustedRootCertificate that is different from the previously commissioned TrustedRootCertificate for TH1. TH1 sends an AddTrustedRootCertificate command to the Node Operational Credentials cluster to install this new certificate" @@ -103,7 +109,8 @@ tests: 5. cat Chip-Root-Cert.txt While adding new add-trusted-root-certificate please use the above generated new root key - ./chip-tool operationalcredentials add-trusted-root-certificate hex:1530010828c376ebc17f21512402013703271401000000cacacaca182604ef171b2726056eb5b94c3706271401000000cacacaca182407012408013009410452c19fd9d329a738fd65722a8309fa68bcaa9ffe87d8114b802c922e5066d0b2f0573b89b38bf98fc9c424ab8ffdabcb18d42e623d82a02d0ca0c062ccadb4bc370a350129011824026030041457934de5405e9a40eacb86ee647e583141ae78f430051457934de5405e9a40eacb86ee647e583141ae78f418300b40a0b0d57bddbc7bcf44480a8b7bd0231d54ccacd68d90efb67b7aa3206adbd268725092992a0388c8e934504178613c5b932d422eed7463f38fd82aaa429b574a18 1 0 + + operationalcredentials add-trusted-root-certificate hex:1530010828c376ebc17f21512402013703271401000000cacacaca182604ef171b2726056eb5b94c3706271401000000cacacaca182407012408013009410452c19fd9d329a738fd65722a8309fa68bcaa9ffe87d8114b802c922e5066d0b2f0573b89b38bf98fc9c424ab8ffdabcb18d42e623d82a02d0ca0c062ccadb4bc370a350129011824026030041457934de5405e9a40eacb86ee647e583141ae78f430051457934de5405e9a40eacb86ee647e583141ae78f418300b40a0b0d57bddbc7bcf44480a8b7bd0231d54ccacd68d90efb67b7aa3206adbd268725092992a0388c8e934504178613c5b932d422eed7463f38fd82aaa429b574a18 1 0 on TH1, Verify that the DUT responds with SUCCESS @@ -116,10 +123,10 @@ tests: disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node + "Step 6: TH1 reads the TrustedRootCertificates attribute from the Node Operational Credentials cluster" verification: | - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + operationalcredentials read trusted-root-certificates 1 0 On TH1 verify the TrustedRootCertificates entries from DUT [1658482718.809139][27144:27149] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687668 [1658482718.809271][27144:27149] CHIP:TOO: TrustedRootCertificates: 2 entries @@ -130,17 +137,18 @@ tests: disabled: true - label: - "TH1 waits for PIXIT.CGEN.FailsafeExpiryLengthSeconds to ensure the - failsafe timer has expired" + "Step 7: TH1 waits for PIXIT.CGEN.FailsafeExpiryLengthSeconds to + ensure the failsafe timer has expired" verification: | The expiry length is mentioned in above step as 60 secs so wait till 60secs and proceed for next step disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node + "Step 8: TH1 reads the TrustedRootCertificates attribute from the Node Operational Credentials cluster" verification: | - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + operationalcredentials read trusted-root-certificates 1 0 + On TH1 Verify that the number of items in the returned list is numTrustedRootsOriginal [1658483361.121153][27343:27348] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687668 [1658483361.121212][27343:27348] CHIP:TOO: TrustedRootCertificates: 1 entries @@ -148,10 +156,10 @@ tests: [1658483361.121342][27343:27348] CHIP:EM: Sending Standalone Ack for MessageCounter:8407614 on exchange 22615i disabled: true - - label: "TH1 reads the Breadcrumb attribute" + - label: "Step 9: TH1 reads the Breadcrumb attribute" PICS: CGEN.S.C00.Rsp && CGEN.S.A0000 verification: | - ./chip-tool generalcommissioning read breadcrumb 1 0 + generalcommissioning read breadcrumb 1 0 On TH1 Verify that the breadcrumb attribute is 0 [1658483428.627422][27375:27380] CHIP:DMG: } @@ -160,10 +168,11 @@ tests: [1658483428.627696][27375:27380] CHIP:EM: Sending Standalone Ack for MessageCounter:242324966 on exchange 46358i disabled: true - - label: "TH1 repeats steps 3 through 5" + - label: "Step 10: TH1 repeats steps 3 through 5" verification: | To repeat Step 3 please send below mentioned command - ./chip-tool generalcommissioning arm-fail-safe 60 1 1 0 + + generalcommissioning arm-fail-safe 60 1 1 0 On TH1 verify the ArmFailSafeResponse from DUT [1658482454.092676][27036:27041] CHIP:DMG: }, @@ -177,7 +186,7 @@ tests: [1658482454.092955][27036:27041] CHIP:EM: Sending Standalone Ack for MessageCounter:147679912 on exchange 8754i To repeat Step 4 please send below mentioned command - ./chip-tool generalcommissioning read breadcrumb 1 0 + generalcommissioning read breadcrumb 1 0 On TH1 Verify that the breadcrumb attribute value as 1 [1658482504.991161][27058:27064] CHIP:DMG: } @@ -195,7 +204,7 @@ tests: 5. cat Chip-Root-Cert.txt While adding new add-trusted-root-certificate please use the above generated new root key - ./chip-tool operationalcredentials add-trusted-root-certificate hex:1530010828c376ebc17f21512402013703271401000000cacacaca182604ef171b2726056eb5b94c3706271401000000cacacaca182407012408013009410452c19fd9d329a738fd65722a8309fa68bcaa9ffe87d8114b802c922e5066d0b2f0573b89b38bf98fc9c424ab8ffdabcb18d42e623d82a02d0ca0c062ccadb4bc370a350129011824026030041457934de5405e9a40eacb86ee647e583141ae78f430051457934de5405e9a40eacb86ee647e583141ae78f418300b40a0b0d57bddbc7bcf44480a8b7bd0231d54ccacd68d90efb67b7aa3206adbd268725092992a0388c8e934504178613c5b932d422eed7463f38fd82aaa429b574a18 1 0 + operationalcredentials add-trusted-root-certificate hex:1530010828c376ebc17f21512402013703271401000000cacacaca182604ef171b2726056eb5b94c3706271401000000cacacaca182407012408013009410452c19fd9d329a738fd65722a8309fa68bcaa9ffe87d8114b802c922e5066d0b2f0573b89b38bf98fc9c424ab8ffdabcb18d42e623d82a02d0ca0c062ccadb4bc370a350129011824026030041457934de5405e9a40eacb86ee647e583141ae78f430051457934de5405e9a40eacb86ee647e583141ae78f418300b40a0b0d57bddbc7bcf44480a8b7bd0231d54ccacd68d90efb67b7aa3206adbd268725092992a0388c8e934504178613c5b932d422eed7463f38fd82aaa429b574a18 1 0 on TH1, Verify that the DUT responds with SUCCESS @@ -208,11 +217,12 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds - field set to 0" + "Step 11: TH1 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds field set to 0" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | - ./chip-tool generalcommissioning arm-fail-safe 0 1 1 0 + generalcommissioning arm-fail-safe 0 1 1 0 + On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658483503.637026][27397:27402] CHIP:DMG: }, [1658483503.637054][27397:27402] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 @@ -225,10 +235,12 @@ tests: [1658483503.637176][27397:27402] CHIP:EM: Sending Standalone Ack for MessageCounter:200752002 on exchange 2227i disabled: true - - label: "Repeat steps 8 through 9" + - label: "Step 12: Repeat steps 8 through 9" verification: | To repeat Step 8 please send below mentioned command - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + + operationalcredentials read trusted-root-certificates 1 0 + On TH1 verify the TrustedRootCertificates entries from DUT [1658483361.121153][27343:27348] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687668 [1658483361.121212][27343:27348] CHIP:TOO: TrustedRootCertificates: 1 entries @@ -236,7 +248,7 @@ tests: [1658483361.121342][27343:27348] CHIP:EM: Sending Standalone Ack for MessageCounter:8407614 on exchange 22615i To repeat Step 9 please send below mentioned command - ./chip-tool generalcommissioning read breadcrumb 1 0 + generalcommissioning read breadcrumb 1 0 On TH1 Verify the breadcrumb attribute value as 0 [1658483428.627422][27375:27380] CHIP:DMG: } [1658483428.627566][27375:27380] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2195123770 @@ -245,10 +257,11 @@ tests: disabled: true - label: - "TH1 sends the OpenCommissioningWindow command to the Administrator - Commissioning cluster" + "Step 13: TH1 sends the OpenCommissioningWindow command to the + Administrator Commissioning cluster" verification: | - ./chip-tool pairing open-commissioning-window 1 1 400 2000 3840 + pairing open-commissioning-window 1 1 400 2000 3840 + On TH1 Verify that the DUT returns a status code of SUCCESS [1658483545.889080][27420:27425] CHIP:DMG: }, [1658483545.889093][27420:27425] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000 Status=0x0 @@ -259,11 +272,13 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds - field set to PIXIT.CGEN.FailsafeExpiryLengthSeconds" + "Step 14: TH1 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds field set to + PIXIT.CGEN.FailsafeExpiryLengthSeconds" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | - ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 + generalcommissioning arm-fail-safe 900 1 1 0 + On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as BusyWithOtherAdmin(4) [1658483622.896405][27446:27451] CHIP:DMG: }, [1658483622.896466][27446:27451] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 @@ -276,7 +291,7 @@ tests: [1658483622.896705][27446:27451] CHIP:EM: Sending Standalone Ack for MessageCounter:156899074 on exchange 18880i disabled: true - - label: "TH2 opens a PASE session with the DUT" + - label: "Step 15: TH2 opens a PASE session with the DUT" verification: | Use the interactive mode to verify this test step ./chip-tool interactive start @@ -290,10 +305,10 @@ tests: disabled: true - label: - "TH2 obtains or generates a TrustedRootCertificate that is different - from the previously commissioned TrustedRootCertificate for TH1. TH2 - sends an AddTrustedRootCertificate command to the Node Operational - Credentials cluster to install this new certificate" + "Step 16: TH2 obtains or generates a TrustedRootCertificate that is + different from the previously commissioned TrustedRootCertificate for + TH1. TH2 sends an AddTrustedRootCertificate command to the Node + Operational Credentials cluster to install this new certificate" verification: | To generate TrustedRootCertificate, need to buld chip-cert in connectedhomeip by giving below mentioned commands 1. gn gen --check out/debug @@ -318,14 +333,14 @@ tests: disabled: true - label: - "TH2 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds - field set to 0" + "Step 17: TH2 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds field set to 0" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | Use the interactive mode to verify this test step ./chip-tool interactive start - ./chip-tool generalcommissioning arm-fail-safe 0 1 2 0 --commissioner-name beta + generalcommissioning arm-fail-safe 0 1 2 0 --commissioner-name beta on TH2, verify the SUCCESS response from DUT [1661516003.514158][37550:37555] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 @@ -339,11 +354,12 @@ tests: disabled: true - label: - "TH1 reads the NOCs attribute from the Node Operational Credentials - cluster using a non-fabric-filtered read and saves the returned list - as nocs" + "Step 18: TH1 reads the NOCs attribute from the Node Operational + Credentials cluster using a non-fabric-filtered read and saves the + returned list as nocs" verification: | - ./chip-tool operationalcredentials read nocs 1 0 --fabric-filtered 0 + operationalcredentials read nocs 1 0 --fabric-filtered 0 + On TH1 verify the nocs entries from DUT [1661453224.011668][30146:30151] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 4026370800 [1661453224.011688][30146:30151] CHIP:TOO: NOCs: 1 entries @@ -356,11 +372,12 @@ tests: disabled: true - label: - "TH1 reads the Fabrics attribute from the Node Operational Credentials - cluster using a non-fabric-filtered read and saves the returned list - as fabrics" + "Step 19: TH1 reads the Fabrics attribute from the Node Operational + Credentials cluster using a non-fabric-filtered read and saves the + returned list as fabrics" verification: | - ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 + operationalcredentials read fabrics 1 0 --fabric-filtered 0 + On TH1 verify the fabrics list from DUT [1661453244.946344][30146:30151] CHIP:DMG: } [1661453244.946489][30146:30151] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 4026370800 @@ -377,11 +394,12 @@ tests: disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node - Operational Credentials cluster and saves the returned list as + "Step 20: TH1 reads the TrustedRootCertificates attribute from the + Node Operational Credentials cluster and saves the returned list as trustedroots" verification: | - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + operationalcredentials read trusted-root-certificates 1 0 + On TH1 verify that TrustedRootCertificates entries from DUT [1661453263.251640][30146:30151] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 4026370800 @@ -391,14 +409,14 @@ tests: disabled: true - label: - "TH2 starts commissioning the DUT. It performs all steps up to - establishing a CASE connection, but DOES NOT send the + "Step 21: TH2 starts commissioning the DUT. It performs all steps up + to establishing a CASE connection, but DOES NOT send the CommissioningComplete command" verification: | restart interactive mode ./chip-tool interactive start - ./chip-tool generalcommissioning arm-fail-safe 900 1 2 0 --commissioner-name beta + generalcommissioning arm-fail-safe 900 1 2 0 --commissioner-name beta [1661526846.890010][39790:39795] CHIP:DMG: }, [1661526846.890045][39790:39795] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1661526846.890068][39790:39795] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -409,7 +427,7 @@ tests: [1661526846.890152][39790:39795] CHIP:DMG: ICR moving to [AwaitingDe] [1661526846.890175][39790:39795] CHIP:EM: Sending Standalone Ack for MessageCounter:154983735 on exchange 28847i - ./chip-tool generalcommissioning read basic-commissioning-info 2 0 --commissioner-name beta + generalcommissioning read basic-commissioning-info 2 0 --commissioner-name beta [1661526855.258145][39790:39795] CHIP:DMG: } [1661526855.258251][39790:39795] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0001 DataVersion: 2812726199 [1661526855.258272][39790:39795] CHIP:TOO: BasicCommissioningInfo: { @@ -419,7 +437,7 @@ tests: [1661526855.258357][39790:39795] CHIP:EM: Sending Standalone Ack for MessageCounter:154983736 on exchange 28848i - ./chip-tool operationalcredentials certificate-chain-request 1 2 0 --commissioner-name beta + operationalcredentials certificate-chain-request 1 2 0 --commissioner-name beta 1661526863.203027][39790:39795] CHIP:DMG: InteractionModelRevision = 1 [1661526863.203035][39790:39795] CHIP:DMG: }, [1661526863.203066][39790:39795] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0003 @@ -430,7 +448,7 @@ tests: [1661526863.203158][39790:39795] CHIP:TOO: } [1661526863.203177][39790:39795] CHIP:DMG: ICR moving to [AwaitingDe] - ./chip-tool operationalcredentials certificate-chain-request 2 2 0 --commissioner-name beta + operationalcredentials certificate-chain-request 2 2 0 --commissioner-name beta [1661526869.868162][39790:39795] CHIP:DMG: }, [1661526869.868190][39790:39795] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0003 [1661526869.868200][39790:39795] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0003 @@ -440,7 +458,7 @@ tests: [1661526869.868264][39790:39795] CHIP:TOO: } [1661526869.868280][39790:39795] CHIP:DMG: ICR moving to [AwaitingDe] - ./chip-tool generalcommissioning set-regulatory-config 1 xx 1 2 0 --commissioner-name beta + generalcommissioning set-regulatory-config 1 xx 1 2 0 --commissioner-name beta [1661526876.824085][39790:39795] CHIP:DMG: }, [1661526876.824116][39790:39795] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0003 [1661526876.824127][39790:39795] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0003 @@ -482,7 +500,7 @@ tests: [1661526895.276061][39790:39795] CHIP:DMG: ICR moving to [AwaitingDe] [1661526895.276069][39790:39795] CHIP:EM: Sending Standalone Ack for MessageCounter:154983743 on exchange 28853i - operationalcredentials add-trusted-root-certificate hex:1530010872A919278B9C6D342402013703271401000000CACACACA182604EF171B2726056EB5B94C3706271401000000CACACACA1824070124080130094104C5E4D28C17F94A9A9E65D524F6708233D232AEBBBDDB82A9182D471D109FF1E05D633B14B0FE64F40A8A7F9E0D0996B6D786B025B4489D1B000384083D840CDE370A3501290118240260300414DB754184659F929C86EAA58A442DACFCD6DD6222300514DB754184659F929C86EAA58A442DACFCD6DD622218300B40B5143626E30CADB003A8DAC2C9B2A28991EC64D3557889CA626A3FD3D12F93D5AAF370F6BBC9D976127B34179EE5937909C7D49C868804B6FE5ECD8F090A169D18 2 0 --commissioner-name beta + operationalcredentials add-trusted-root-certificate hex:1530010872A919278B9C6D342402013703271401000000CACACACA182604EF171B2726056EB5B94C3706271401000000CACACACA1824070124080130094104C5E4D28C17F94A9A9E65D524F6708233D232AEBBBDDB82A9182D471D109FF1E05D633B14B0FE64F40A8A7F9E0D0996B6D786B025B4489D1B000384083D840CDE370A3501290118240260300414DB754184659F929C86EAA58A442DACFCD6DD6222300514DB754184659F929C86EAA58A442DACFCD6DD622218300B40B5143626E30CADB003A8DAC2C9B2A28991EC64D3557889CA626A3FD3D12F93D5AAF370F6BBC9D976127B34179EE5937909C7D49C868804B6FE5ECD8F090A169D18 2 0 --commissioner-name beta [1661526904.272468][39790:39795] CHIP:DMG: InteractionModelRevision = 1 [1661526904.272474][39790:39795] CHIP:DMG: }, [1661526904.272503][39790:39795] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003E Command=0x0000_000B Status=0x0 @@ -490,14 +508,14 @@ tests: disabled: true - label: - "TH2 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds - field set to 0" + "Step 22: TH2 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds field set to 0" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | Use the interactive mode to verify this test step ./chip-tool interactive start - ./chip-tool generalcommissioning arm-fail-safe 0 1 2 0 --commissioner-name beta + generalcommissioning arm-fail-safe 0 1 2 0 --commissioner-name beta [1661526922.517693][39790:39795] CHIP:DMG: }, [1661526922.517742][39790:39795] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1661526922.517754][39790:39795] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -510,13 +528,13 @@ tests: disabled: true - label: - "TH1 reads the NOCs attribute from the Node Operational Credentials - cluster using a non-fabric-filtered read" + "Step 23: TH1 reads the NOCs attribute from the Node Operational + Credentials cluster using a non-fabric-filtered read" verification: | Use the interactive mode to verify this test step ./chip-tool interactive start - ./chip-tool operationalcredentials read nocs 1 0 + operationalcredentials read nocs 1 0 On TH1 verify the nocs entries from DUT and Verify that the returned list matches nocs [1661527716.060615][39909:39914] CHIP:DMG: } [1661527716.060749][39909:39914] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 415933492 @@ -530,13 +548,13 @@ tests: disabled: true - label: - "TH1 reads the Fabrics attribute from the Node Operational Credentials - cluster using a non-fabric-filtered read" + "Step 24: TH1 reads the Fabrics attribute from the Node Operational + Credentials cluster using a non-fabric-filtered read" verification: | Use the interactive mode to verify this test step ./chip-tool interactive start - ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 + operationalcredentials read fabrics 1 0 --fabric-filtered 0 On TH1 verify the fabrics list from DUT and Verify that the returned list matches fabrics [1658484405.562192][27710:27716] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 527687672 [1658484405.562321][27710:27716] CHIP:TOO: Fabrics: 2 entries @@ -560,13 +578,13 @@ tests: disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node - Operational Credentials cluster" + "Step 25: TH1 reads the TrustedRootCertificates attribute from the + Node Operational Credentials cluster" verification: | Use the interactive mode to verify this test step ./chip-tool interactive start - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + operationalcredentials read trusted-root-certificates 1 0 On TH1 verify the TrustedRootCertificates entries from DUT and Verify that the returned list matches trustedroots [1658484601.144043][28501:28506] CHIP:DMG: InteractionModelRevision = 1 [1658484601.144050][28501:28506] CHIP:DMG: } @@ -580,7 +598,7 @@ tests: [1658484601.144408][28501:28506] CHIP:EM: Flushed pending ack for MessageCounter:68619713 on exchange 46067i disabled: true - - label: "TH2 fully commissions the DUT" + - label: "Step 26: TH2 fully commissions the DUT" verification: | While pairing between DUT and TH2, On TH2 verify that commissioning completes successfully [1660748637.271112][21572:21577] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 @@ -591,9 +609,9 @@ tests: disabled: true - label: - "TH2 obtains or generates a new TrustedRootCertificate that is - different from the previously commissioned TrustedRootCertificate for - TH2. TH2 sends an AddTrustedRootCertificate command to the Node + "Step 27: TH2 obtains or generates a new TrustedRootCertificate that + is different from the previously commissioned TrustedRootCertificate + for TH2. TH2 sends an AddTrustedRootCertificate command to the Node Operational Credentials cluster to install this new certificate" verification: | To generate TrustedRootCertificate, need to buld chip-cert in connectedhomeip by giving below mentioned commands @@ -606,7 +624,7 @@ tests: While adding new add-trusted-root-certificate please use the above generated new root key - ./chip-tool operationalcredentials add-trusted-root-certificate 04614D01D2897082D7F85832CE00AC787A5A221A6F7B19C4202C069E3D70DDC615E5B9436919266360AC847F2FAB3EAEE3902B43812A13D18C061CC5028EADB775583DCB1008E4CEBFF810EEB2BC60FF7A3CF954C57101798443DA39E75F5FFDEA 2 0 --commissioner-name beta + operationalcredentials add-trusted-root-certificate 04614D01D2897082D7F85832CE00AC787A5A221A6F7B19C4202C069E3D70DDC615E5B9436919266360AC847F2FAB3EAEE3902B43812A13D18C061CC5028EADB775583DCB1008E4CEBFF810EEB2BC60FF7A3CF954C57101798443DA39E75F5FFDEA 2 0 --commissioner-name beta On TH2 verify that DUT responds with FAILSAFE_REQUIRED [1658484766.785916][8132:8137] CHIP:DMG: [1658484766.785961][8132:8137] CHIP:DMG: InteractionModelRevision = 1 @@ -617,10 +635,10 @@ tests: disabled: true - label: - "TH1 reads the Fabrics attribute from the Node Operational Credentials - cluster using a non-fabric-filtered read" + "Step 28: TH1 reads the Fabrics attribute from the Node Operational + Credentials cluster using a non-fabric-filtered read" verification: | - ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 + operationalcredentials read fabrics 1 0 --fabric-filtered 0 On TH1 verify the fabrics list from DUT and Verify that the returned list includes an additional entry for TH2 when compared to fabrics [1658484405.562192][27710:27716] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 527687672 [1658484405.562321][27710:27716] CHIP:TOO: Fabrics: 2 entries @@ -644,12 +662,12 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds - field set to PIXIT.CGEN.FailsafeExpiryLengthSeconds and the Breadcrumb - value as 1" + "Step 29: TH1 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds field set to + PIXIT.CGEN.FailsafeExpiryLengthSeconds and the Breadcrumb value as 1" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | - ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 + generalcommissioning arm-fail-safe 900 1 1 0 On TH1 Verify that DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658485224.066397][28732:28737] CHIP:DMG: InteractionModelRevision = 1 [1658485224.066407][28732:28737] CHIP:DMG: }, @@ -663,9 +681,9 @@ tests: disabled: true - label: - "TH1 obtains or generates a new TrustedRootCertificate that is - different from the previously commissioned TrustedRootCertificate for - TH1. TH1 sends an AddTrustedRootCertificate command to the Node + "Step 30: TH1 obtains or generates a new TrustedRootCertificate that + is different from the previously commissioned TrustedRootCertificate + for TH1. TH1 sends an AddTrustedRootCertificate command to the Node Operational Credentials cluster to install this new certificate" verification: | To generate TrustedRootCertificate, need to buld chip-cert in connectedhomeip by giving below mentioned commands @@ -680,7 +698,7 @@ tests: While adding new add-trusted-root-certificate please use the above generated new root key - ./chip-tool operationalcredentials add-trusted-root-certificate hex:1530010828c376ebc17f21512402013703271401000000cacacaca182604ef171b2726056eb5b94c3706271401000000cacacaca182407012408013009410452c19fd9d329a738fd65722a8309fa68bcaa9ffe87d8114b802c922e5066d0b2f0573b89b38bf98fc9c424ab8ffdabcb18d42e623d82a02d0ca0c062ccadb4bc370a350129011824026030041457934de5405e9a40eacb86ee647e583141ae78f430051457934de5405e9a40eacb86ee647e583141ae78f418300b40a0b0d57bddbc7bcf44480a8b7bd0231d54ccacd68d90efb67b7aa3206adbd268725092992a0388c8e934504178613c5b932d422eed7463f38fd82aaa429b574a18 1 0 + operationalcredentials add-trusted-root-certificate hex:1530010828c376ebc17f21512402013703271401000000cacacaca182604ef171b2726056eb5b94c3706271401000000cacacaca182407012408013009410452c19fd9d329a738fd65722a8309fa68bcaa9ffe87d8114b802c922e5066d0b2f0573b89b38bf98fc9c424ab8ffdabcb18d42e623d82a02d0ca0c062ccadb4bc370a350129011824026030041457934de5405e9a40eacb86ee647e583141ae78f430051457934de5405e9a40eacb86ee647e583141ae78f418300b40a0b0d57bddbc7bcf44480a8b7bd0231d54ccacd68d90efb67b7aa3206adbd268725092992a0388c8e934504178613c5b932d422eed7463f38fd82aaa429b574a18 1 0 On TH1 verify that DUT responds as success [1658485618.508499][28884:28890] CHIP:DMG: @@ -692,10 +710,10 @@ tests: disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node - Operational Credentials cluster" + "Step 31: TH1 reads the TrustedRootCertificates attribute from the + Node Operational Credentials cluster" verification: | - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + operationalcredentials read trusted-root-certificates 1 0 On TH1 verify the TrustedRootCertificates entries from DUT and Verify that the number of items in the returned list is numTrustedRootsOriginal + 1 [1658485696.739931][28920:28925] CHIP:DMG: InteractionModelRevision = 1 @@ -709,11 +727,11 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds - field set to maxFailsafe" + "Step 32: TH1 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds field set to maxFailsafe" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | - ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 + generalcommissioning arm-fail-safe 900 1 1 0 On TH1 verify the ArmFailSafe command from DUT [1658486181.080260][29218:29223] CHIP:DMG: }, [1658486181.080289][29218:29223] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 @@ -726,16 +744,16 @@ tests: [1658486181.080408][29218:29223] CHIP:EM: Sending Standalone Ack for MessageCounter:68810716 on exchange 21458i disabled: true - - label: "TH1 waits for PIXIT.CGEN.FailsafeExpiryLengthSeconds" + - label: "Step 33: TH1 waits for PIXIT.CGEN.FailsafeExpiryLengthSeconds" verification: | The expiry length is mentioned in above step as 900 secs so wait till 900secs and proced for next step disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node - Operational Credentials cluster" + "Step 34: TH1 reads the TrustedRootCertificates attribute from the + Node Operational Credentials cluster" verification: | - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + operationalcredentials read trusted-root-certificates 1 0 On TH1 verify that TH reads TrustedRootCertificates entries from DUT and Verify that the number of entries in the returned list is still numTrustedRootsOriginal + 1 [1658486366.493185][29315:29320] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687672 [1658486366.493236][29315:29320] CHIP:TOO: TrustedRootCertificates: 2 entries @@ -745,12 +763,12 @@ tests: disabled: true - label: - "TH2 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds - field set to PIXIT.CGEN.FailsafeExpiryLengthSeconds and the Breadcrumb - value as 1" + "Step 35: TH2 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds field set to + PIXIT.CGEN.FailsafeExpiryLengthSeconds and the Breadcrumb value as 1" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | - ./chip-tool generalcommissioning arm-fail-safe 60 1 2 0 --commissioner-name beta + generalcommissioning arm-fail-safe 60 1 2 0 --commissioner-name beta On TH2 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as BusyWithOtherAdmin [1658486289.473526][8200:8205] CHIP:DMG: InteractionModelRevision = 1 [1658486289.473563][8200:8205] CHIP:DMG: }, @@ -765,11 +783,11 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafeCommand to the DUT with ExpiryLengthSeconds - field set to 0" + "Step 36: TH1 sends ArmFailSafeCommand to the DUT with + ExpiryLengthSeconds field set to 0" PICS: CGEN.S.C00.Rsp verification: | - ./chip-tool generalcommissioning arm-fail-safe 0 1 1 0 + generalcommissioning arm-fail-safe 0 1 1 0 On TH1 verify the ArmFailSafe command from DUT [1658486510.232274][29388:29393] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1658486510.232302][29388:29393] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -782,11 +800,11 @@ tests: disabled: true - label: - "TH1 sends ArmFailsafeCommand to the DUT with ExpiryLengthSeconds - field set to maxFailsafe" + "Step 37: TH1 sends ArmFailsafeCommand to the DUT with + ExpiryLengthSeconds field set to maxFailsafe" PICS: CGEN.S.C00.Rsp verification: | - ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 + generalcommissioning arm-fail-safe 900 1 1 0 On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658486418.024554][29343:29348] CHIP:DMG: InteractionModelRevision = 1 [1658486418.024559][29343:29348] CHIP:DMG: }, @@ -800,15 +818,16 @@ tests: [1658486418.024725][29343:29348] CHIP:EM: Sending Standalone Ack for MessageCounter:21602903 on exchange 9289i disabled: true - - label: "TH1 saves the current wall time clock in seconds as Tstart" + - label: + "Step 38: TH1 saves the current wall time clock in seconds as Tstart" verification: | this can be calculated manually from the value obtained from the previous steps disabled: true - label: - "TH1 obtains or generates a new TrustedRootCertificate that is - different from the previously commissioned TrustedRootCertificate for - TH1. TH1 sends an AddTrustedRootCertificate command to the Node + "Step 39: TH1 obtains or generates a new TrustedRootCertificate that + is different from the previously commissioned TrustedRootCertificate + for TH1. TH1 sends an AddTrustedRootCertificate command to the Node Operational Credentials cluster to install this new certificate" verification: | To generate TrustedRootCertificate, need to buld chip-cert in connectedhomeip by giving below mentioned commands @@ -820,7 +839,7 @@ tests: 5. cat Chip-Root-Cert.txt While adding new add-trusted-root-certificate please use the above generated new root key - ./chip-tool operationalcredentials add-trusted-root-certificate + operationalcredentials add-trusted-root-certificate hex:1530010828c376ebc17f21512402013703271401000000cacacaca182604ef171b2726056eb5b94c3706271401000000cacacaca182407012408013009410452c19fd9d329a738fd65722a8309fa68bcaa9ffe87d8114b802c922e5066d0b2f0573b89b38bf98fc9c424ab8ffdabcb18d42e623d82a02d0ca0c062ccadb4bc370a350129011824026030041457934de5405e9a40eacb86ee647e583141ae78f430051457934de5405e9a40eacb86ee647e583141ae78f418300b40a0b0d57bddbc7bcf44480a8b7bd0231d54ccacd68d90efb67b7aa3206adbd268725092992a0388c8e934504178613c5b932d422eed7463f38fd82aaa429b574a18 1 0 On TH1 verify that DUT responds as success [1658487558.547191][30203:30208] CHIP:DMG: }, @@ -830,10 +849,10 @@ tests: disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node - Operational Credentials cluster" + "Step 40: TH1 reads the TrustedRootCertificates attribute from the + Node Operational Credentials cluster" verification: | - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + operationalcredentials read trusted-root-certificates 1 0 On TH1 Verify that the number of items in the returned list is numTrustedRootsOriginal + 1 [1658487613.357548][30232:30237] CHIP:DMG: } @@ -849,17 +868,18 @@ tests: disabled: true - label: - "TH1 waits until the current wall time clock is Tstart + maxFailsafe/2" + "Step 41: TH1 waits until the current wall time clock is Tstart + + maxFailsafe/2" verification: | this can be calculated manually from the value obtained from the previous steps disabled: true - label: - "TH1 sends ArmFailsafeCommand to the DUT with ExpiryLengthSeconds - field set to maxFailsafe" + "Step 42: TH1 sends ArmFailsafeCommand to the DUT with + ExpiryLengthSeconds field set to maxFailsafe" PICS: CGEN.S.C00.Rsp verification: | - ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 + generalcommissioning arm-fail-safe 900 0 1 0 On TH1 Verify that the DUT responds with ArmFailSafeResponse with ErrorCode as 'OK'(0) and DebugText argument is of type string with max length 512 or empty [1658487663.593485][30268:30273] CHIP:DMG: InteractionModelRevision = 1 @@ -875,19 +895,19 @@ tests: disabled: true - label: - "TH1 waits until the current wall time clock is Tstart + maxFailsafe. - maxFailsafe is the maximum amount of time a failsafe can be armed for, - so the failsafe is required to time out at this point, despite having - been re-armed in step 42." + "Step 43: TH1 waits until the current wall time clock is Tstart + + maxFailsafe. maxFailsafe is the maximum amount of time a failsafe can + be armed for, so the failsafe is required to time out at this point, + despite having been re-armed in step 42." verification: | this can be calculated manually from the value obtained from the previous steps disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node - Operational Credentials cluster" + "Step 44: TH1 reads the TrustedRootCertificates attribute from the + Node Operational Credentials cluster" verification: | - ./chip-tool operationalcredentials read trusted-root-certificates 1 0 + operationalcredentials read trusted-root-certificates 1 0 On TH1 Verify that the number of items in the returned list is numTrustedRootsOriginal [1658489869.278413][31188:31193] CHIP:DMG: } [1658489869.278997][31188:31193] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687672 diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_4.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_4.yaml index 84495540d36863..314a38feb204bc 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_4.yaml @@ -29,19 +29,19 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends ChangeChannel command to TH" + - label: "Step 1: DUT sends ChangeChannel command to TH" PICS: CHANNEL.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): If the DUT knows the Match(Channel name) in channel InputList then those can be sent as the argument. Else User needs to execute the following command to know theMatch(Channel name) to change the channel - ./chip-tool channel read channel-list 1 1 + ./chip-tool channel read channel-list 1 1 By sending above command user can select the Match(Channel name) instead of ABC which are listed in chanel list. ./chip-tool channel change-channel ABC 1 1 - + On TH (tv-app), Verify the change channel command is received successfully. [1665567814.599622][111029:111029] CHIP:DMG: InvokeRequestMessage = [1665567814.599625][111029:111029] CHIP:DMG: { [1665567814.599628][111029:111029] CHIP:DMG: suppressResponse = false, @@ -70,5 +70,6 @@ tests: [1665567814.599733][111029:111029] CHIP:DMG: AccessControl: checking f=2 a=c s=0x000000000001B669 t= c=0x0000_0504 e=1 p=o - Enter the below command to read the current input. ./chip-tool channel read current-channel 1 1 + Enter the below command to read the current input. + ./chip-tool channel read current-channel 1 1 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_5.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_5.yaml index 144148f465a03d..32f15b3c99c21b 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_5.yaml @@ -31,7 +31,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends ChangeChannelByNumber command to TH" + - label: "Step 1: DUT sends ChangeChannelByNumber command to TH" PICS: CHANNEL.C.C02.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_6.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_6.yaml index d99999c88b4f78..17dc2c278bdb56 100644 --- a/src/app/tests/suites/certification/Test_TC_CHANNEL_5_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_5_6.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends SkipChannel command to TH" + - label: "Step 1: DUT sends SkipChannel command to TH" PICS: CHANNEL.C.C03.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -37,8 +37,7 @@ tests: ./chip-tool channel skip-channel 33 1 1 ./chip-tv-casting-app channel skip-channel 33 1 1 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the skip-channel command is received successfully. [1658530897782] [21924:317544] CHIP: [DMG] InvokeRequestMessage = [1658530897782] [21924:317544] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_1.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_1.yaml index 17d8657dc6b76f..2dcdf1d54f9ddf 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_1.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.4.1. [TC-CNET-4.1] [Wi-Fi] Verification for attributes check [DUT-Server] + 12.4.1. [TC-CNET-4.1] [WiFi] Verification for attributes check [DUT-Server] PICS: - CNET.S.F00 @@ -25,23 +25,23 @@ config: endpoint: 0 tests: - - label: "Factory reset the DUT" + - label: "Step 1: Factory reset the DUT" verification: | disabled: true - - label: "Commission TH and DUT over BLE to setup the Wi-Fi" + - label: "Step 2: Commission TH and DUT over BLE to setup the Wi-Fi" verification: | disabled: true - label: - "TH reads Descriptor Cluster from the DUT with EP0 TH reads ServerList - from the DUT" + "Step 3: TH reads Descriptor Cluster from the DUT with EP0 TH reads + ServerList from the DUT" verification: | ./chip-tool descriptor read server-list 1 0 - Verify "server list has value: 49" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that the server list has value as 49. [1654250292.680821][5262:5267] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 812190876 [1654250292.681079][5262:5267] CHIP:TOO: server list: 26 entries @@ -73,23 +73,23 @@ tests: [1654250292.682714][5262:5267] CHIP:TOO: [26]: 1029 disabled: true - - label: "TH reads FeatureMap attribute from the DUT" + - label: "Step 4: TH reads FeatureMap attribute from the DUT" verification: | ./chip-tool networkcommissioning read feature-map 1 0 - Verify "FeatureMap: 1" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that FeatureMap attribute value as 1 for WiFiNetworkInterface. [1653473169.784344][29771:29776] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167 [1653473169.784413][29771:29776] CHIP:TOO: FeatureMap: 1 [1653473169.784516][29771:29776] CHIP:EM: Sending Standalone Ack for MessageCounter:3349837 on exchange 7603i disabled: true - - label: "TH reads the MaxNetworks attribute from the DUT" + - label: "Step 5: TH reads the MaxNetworks attribute from the DUT" PICS: CNET.S.A0000 verification: | ./chip-tool networkcommissioning read max-networks 1 0 - Verify "MaxNetworks" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the MaxNetworks attribute that contains value in the range of 1 to 255. [1653473181.407542][29777:29782] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0000 DataVersion: 1600858167 [1653473181.407621][29777:29782] CHIP:TOO: MaxNetworks: 1 @@ -97,19 +97,20 @@ tests: disabled: true - label: - "TH saves the MaxNetworks attribute value as MaxNetworksValue for - future use" + "Step 6: TH saves the MaxNetworks attribute value as + 'MaxNetworksValue' for future use" verification: | disabled: true - - label: "TH reads the Networks attribute list from the DUT" + - label: "Step 7: TH reads the Networks attribute list from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that should the type of octstr with a length range of 1 to 32. + -that the connected status is in tthe type of bool value as TRUE. [1654250379.881780][5309:5314] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 3741733376 [1654250379.881974][5309:5314] CHIP:TOO: Networks: 1 entries @@ -119,75 +120,72 @@ tests: [1654250379.882312][5309:5314] CHIP:TOO: } disabled: true - - label: "TH reads ScanMaxTimeSeconds attribute from the DUT" + - label: "Step 8: TH reads ScanMaxTimeSeconds attribute from the DUT" PICS: CNET.S.A0002 verification: | ./chip-tool networkcommissioning read scan-max-time-seconds 1 0 - Verify "ScanMaxTimeSeconds" on the TH(Chip-tool) Log: - + Via the TH (chip-tool), Verify the ScanMaxTimeSeconds attribute that contains value in the range of 1 to 255 secs. [1653473784.850830][29813:29818] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0002 DataVersion: 1600858167 [1653473784.850916][29813:29818] CHIP:TOO: ScanMaxTimeSeconds: 10 [1653473784.851029][29813:29818] CHIP:EM: Sending Standalone Ack for MessageCounter:16671548 on exchange 37205i disabled: true - - label: "TH reads ConnectMaxTimeSeconds Attribute from the DUT" + - label: "Step 9: TH reads ConnectMaxTimeSeconds Attribute from the DUT" PICS: CNET.S.A0003 verification: | ./chip-tool networkcommissioning read connect-max-time-seconds 1 0 - - Verify "ConnectMaxTimeSeconds" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the ConnectMaxTimeSeconds attribute that contains value in the range of 1 to 255 secs. [1653473821.367214][29821:29826] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0003 DataVersion: 1600858167 [1653473821.367283][29821:29826] CHIP:TOO: ConnectMaxTimeSeconds: 20 [1653473821.367379][29821:29826] CHIP:EM: Sending Standalone Ack for MessageCounter:187119 on exchange 50022i disabled: true - - label: "TH reads InterfaceEnabled attribute from the DUT" + - label: "Step 10: TH reads InterfaceEnabled attribute from the DUT" PICS: CNET.S.A0004 verification: | ./chip-tool networkcommissioning read interface-enabled 1 0 - - Verify "InterfaceEnabled" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the InterfaceEnabled attribute that contains bool value as True. [1653473893.275901][29834:29839] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0004 DataVersion: 1600858167 [1653473893.275964][29834:29839] CHIP:TOO: InterfaceEnabled: TRUE [1653473893.276084][29834:29839] CHIP:EM: Sending Standalone Ack for MessageCounter:13157245 on exchange 55578i disabled: true - - label: "TH reads LastNetworkingStatus attribute from the DUT" + - label: "Step 11: TH reads LastNetworkingStatus attribute from the DUT" PICS: CNET.S.A0005 verification: | ./chip-tool networkcommissioning read last-networking-status 1 0 - - Verify "LastNetworkingStatus" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the LastNetworkingStatus attribute that contains value as 0 that mentions success. [1653473918.484769][29840:29845] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0005 DataVersion: 1600858167 [1653473918.484843][29840:29845] CHIP:TOO: LastNetworkingStatus: 0 - [1653473918.484940][29840:29845] CHIP:EM: Sending Standalone Ack for MessageCounter:10161085 on exchange 18769i + [1653473918.484940][29840:29845] CHIP:EM: Sending Standalone Ack for MessageCounter:10161085 on exchange 18769 disabled: true - label: - "TH reads the LastNetworkID attribute from the DUT TH reads the - Networks attribute from the DUT" + "Step 12: TH reads the LastNetworkID attribute from the DUT TH reads + the Networks attribute from the DUT" PICS: CNET.S.A0006 verification: | ./chip-tool networkcommissioning read last-network-id 1 0 - Verify "LastNetworkID" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -that the LastNetworkID attribute that contains NetworkID that should be the type of octstr with a length range 1 to 32. + -if the Networks attribute list is Empty, then LastNetworkID attribute value is null. - - "[1653474059.383553][27286:27291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0006 DataVersion: 1912591449 + [1653474059.383553][27286:27291] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0006 DataVersion: 1912591449 [1653474059.383618][27286:27291] CHIP:TOO: LastNetworkID: 47524C50726976617465 - [1653474059.383723][27286:27291] CHIP:EM: Sending Standalone Ack for MessageCounter:6975079 on exchange 34674i" + [1653474059.383723][27286:27291] CHIP:EM: Sending Standalone Ack for MessageCounter:6975079 on exchange 34674i ./chip-tool networkcommissioning read networks 1 0 - Verify "lastnetworkID is present in the NetworkID in the entries of Network" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the lastnetworkID is present in the NetworkID in the entries of Network. [1654250379.881780][5309:5314] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 3741733376 [1654250379.881974][5309:5314] CHIP:TOO: Networks: 1 entries @@ -197,14 +195,13 @@ tests: [1654250379.882312][5309:5314] CHIP:TOO: } disabled: true - - label: "TH reads the LastConnectErrorValue attribute from the DUT" + - label: + "Step 13: TH reads the LastConnectErrorValue attribute from the DUT" PICS: CNET.S.A0007 verification: | ./chip-tool networkcommissioning read last-connect-error-value 1 0 - - Verify "LastConnectErrorValue" on the TH(Chip-tool) Log: - + Via the TH (chip-tool), Verify the LastConnectErrorValue attribute that contains value as null. [1653474102.061746][29860:29865] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0007 DataVersion: 1600858167 [1653474102.061812][29860:29865] CHIP:TOO: LastConnectErrorValue: null diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_10.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_10.yaml index 3a49d9b8e83be8..a127b1c26c2fd5 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_10.yaml @@ -29,30 +29,21 @@ tests: - label: "Precondition" verification: | Commission TH and DUT on Thread setup - disabled: true - - label: "Precondition" - verification: | The cluster Identifier 49 (0x0031) is present in the ServerList attribute - disabled: true - - label: "Precondition" - verification: | The FeatureMap attribute value is 2 - disabled: true - - label: "Precondition" - verification: | MaxNetworks attribute value is at least 1 which is saved as 'MaxNetworksValue' for future use disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 900" + "Step 1: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 1 62 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 900 secs to the TH. [1650391404.723087][10042:10047] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1650391404.723164][10042:10047] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -64,13 +55,15 @@ tests: disabled: true - label: - "TH1 reads Networks attribute from the DUT and save the number of - entries as NumNetworks" + "Step 2: TH1 reads Networks attribute from the DUT and save the number + of entries as 'NumNetworks'" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that should be as PIXIT.CNET .THREAD_1 ST_OPERA TIONALDA TASET. + -that the connected status should be the type of bool value as TRUE. [1657790578.359665][5247:5252] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 2276799582 [1657790578.359820][5247:5252] CHIP:TOO: Networks: 1 entries @@ -82,17 +75,17 @@ tests: disabled: true - label: - "TH finds the index of the Networks list entry with NetworkID field - value PIXIT.CNET.THRE AD_1ST_OPERATI ONALDATASET and saves it as - Userth_netidx" + "Step 3: TH finds the index of the Networks list entry with NetworkID + field value PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET and saves it as + 'Userth_netidx'" verification: | disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - PIXIT.CNET.THRE AD_1ST_OPERATI ONALDATASET and Breadcrumb field set to - 1" + "Step 4: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET and Breadcrumb + field set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 @@ -101,7 +94,7 @@ tests: ./chip-tool networkcommissioning remove-network hex:1850171990782922 62 0 - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). [1657790635.532308][5254:5259] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005 [1657790635.532395][5254:5259] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 @@ -113,36 +106,36 @@ tests: [1657790635.532886][5254:5259] CHIP:EM: Sending Standalone Ack for MessageCounter:162806082 on exchange 55401i disabled: true - - label: "TH1 reads Networks attribute from the DUT" + - label: "Step 5: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify that the Networks attribute list has empty(0 entries). [1657625584.426746][2703:2708] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 1201757611 [1657625584.427014][2703:2708] CHIP:TOO: Networks: 0 entries [1657625584.427238][2703:2708] CHIP:EM: Sending Standalone Ack for MessageCounter:71370645 on exchange 9137i disabled: true - - label: "TH reads LastNetworkingStatus attribute from the DUT" + - label: "Step 6: TH reads LastNetworkingStatus attribute from the DUT" PICS: CNET.S.A0005 verification: | ./chip-tool networkcommissioning read last-networking-status 1 0 - Verify "LastNetworkingStatus" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the LastNetworkingStatus attribute that contains value as 0 that mentions success. [1657625631.550171][2710:2715] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0005 DataVersion: 1201757611 [1657625631.550337][2710:2715] CHIP:TOO: LastNetworkingStatus: 0 [1657625631.550495][2710:2715] CHIP:EM: Sending Standalone Ack for MessageCounter:45041626 on exchange 48206i disabled: true - - label: "TH reads LastNetworkID attribute from the DUT" + - label: "Step 7: TH reads LastNetworkID attribute from the DUT" PICS: CNET.S.A0006 verification: | ./chip-tool networkcommissioning read last-network-id 1 0 - Verify "LastNetworkID" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify that the LastNetworkID has PIXIT.CNET.THRE AD_1ST_OPERATI ONALDATASET. [1657625691.050998][2718:2724] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0006 DataVersion: 1201757611 [1657625691.051142][2718:2724] CHIP:TOO: LastNetworkID: 1850171990782922 @@ -150,13 +143,13 @@ tests: disabled: true - label: - "TH reads Breadcrumb attribute from the General Commissioning cluster - of the DUT" + "Step 8: TH reads Breadcrumb attribute from the General Commissioning + cluster of the DUT" PICS: CNET.S.C04.Rsp verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 - Verify "Breadcrumb: 1" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 1. [1657625860.742472][2739:2744] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2669958173 [1657625860.742607][2739:2744] CHIP:TOO: Breadcrumb: 1 @@ -164,9 +157,9 @@ tests: disabled: true - label: - "TH sends ConnectNetwork command to the DUT with NetworkID field set - to the extended PAN ID of PIXIT.CNET.THRE AD_1ST_OPERATI ONALDATASET - and Breadcrumb field set to 2" + "Step 9: TH sends ConnectNetwork command to the DUT with NetworkID + field set to the extended PAN ID of + PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET and Breadcrumb field set to 2" PICS: CNET.S.C04.Rsp verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -175,8 +168,7 @@ tests: ./chip-tool networkcommissioning connect-network hex:1850171990782922 1 0 --Breadcrumb 2 - Verify "ConnectNetworkResponse and its arguments" on the TH(Chip-tool) Log: - + Via the TH (chip-tool), Verify the ConnectNetworkResponse that contains networkingStatus value as 3(NetworkIdNotFound). [1657625912.836563][2747:2752] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0007 [1657625912.836768][2747:2752] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007 @@ -189,13 +181,13 @@ tests: disabled: true - label: - "TH reads Breadcrumb attribute from the General Commissioning cluster - of the DUT" + "Step 10: TH reads Breadcrumb attribute from the General Commissioning + cluster of the DUT" PICS: CNET.S.C04.Rsp verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 - Verify "Breadcrumb: 1" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 1. [1657781070.617341][4823:4828] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2383846386 [1657781070.617458][4823:4828] CHIP:TOO: Breadcrumb: 1 @@ -203,12 +195,12 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 0" + "Step 11: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 0" verification: | ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 0 secs to the TH. [1657626058.290176][2767:2772] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1657626058.290276][2767:2772] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -219,12 +211,14 @@ tests: [1657626058.290699][2767:2772] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "Step 12: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that should be as PIXIT.CNET .THREAD_1 ST_OPERA TIONALDA TASET. + -that the connected status should be the type of bool value as TRUE. [1657790810.454838][5308:5313] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 2276799582 [1657790810.454996][5308:5313] CHIP:TOO: Networks: 1 entries @@ -236,12 +230,12 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 90" + "Step 11: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 90 0 1 0 - Verify "ArmFailSafeResponse" on the TH (chip-tool)Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 90 secs to the TH. [1657626161.611078][2780:2785] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1657626161.611183][2780:2785] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -254,9 +248,9 @@ tests: disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - extended PAN ID of PIXIT.CNET.THRE AD_1ST_OPERATI ONALDATASET and - Breadcrumb field set to 1" + "Step 12: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to extended PAN ID of + PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET and Breadcrumb field set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 @@ -265,7 +259,7 @@ tests: ./chip-tool networkcommissioning remove-network hex:1850171990782922 32 0 --Breadcrumb 1 - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). [1657791030.761976][5336:5341] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005 [1657791030.762070][5336:5341] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 @@ -277,12 +271,12 @@ tests: [1657791030.762608][5336:5341] CHIP:EM: Sending Standalone Ack for MessageCounter:266194732 on exchange 7795i disabled: true - - label: "TH sends the CommissioningCo mplete command to the DUT" + - label: "Step 13: TH sends the CommissioningComplete command to the DUT" PICS: CNET.S.C04.Rsp verification: | ./chip-tool generalcommissioning commissioning-complete 1 0 - Verify "CommissioningCompleteResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends CommissioningComplete command and the errorCode field is 0(OK). [1657626243.485752][2795:2801] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 [1657626243.485947][2795:2801] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0005 @@ -295,14 +289,14 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 0 to ensure the CommissioningCo mplete call properly persisted the - failsafe context. This call should have no effect if Commissionining - Complete call is handled correctly" + "Step 14: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 0 to ensure the CommissioningComplete call + properly persisted the failsafe context. This call should have no + effect if Commissioning Complete call is handled correctly" verification: | ./chip-tool generalcommissioning arm-fail-safe 0 0 62 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 0 secs to the TH. [1657626274.218994][2802:2807] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 @@ -315,12 +309,12 @@ tests: [1657626274.219632][2802:2807] CHIP:EM: Sending Standalone Ack for MessageCounter:52231112 on exchange 13160i disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "Step 15: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status on the TH Log: + Via the TH (chip-tool), Verify that the Networks attribute list has empty(0 entries). [1657626300.861344][2808:2813] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 1201757611 [1657626300.861492][2808:2813] CHIP:TOO: Networks: 0 entries diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml index b2cd2ab3320ade..2f32c50b2622de 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_11.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.4.9. [TC-CNET-4.11] [Wi-Fi] Verification for ConnectNetwork Command + 12.4.9. [TC-CNET-4.11] [WiFi] Verification for ConnectNetwork Command [DUT-Server] PICS: @@ -81,12 +81,13 @@ tests: [1653478255.044428][27668:27673] CHIP:IN: Prepared secure message 0xffffa77ed958 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 5 disabled: true - - label: "TH sends ArmFailSafe command to the DUT" + - label: + "Step 1: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: - + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 900 secs to the TH. [1653479952.284160][30473:30478] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 [1653479952.284231][30473:30478] CHIP:TOO: ArmFailSafeResponse: { @@ -98,13 +99,15 @@ tests: disabled: true - label: - "TH reads Networks attribute from the DUT and saves the number of - entries as 'NumNetworks'" + "Step 2: TH reads Networks attribute from the DUT and saves the number + of entries as 'NumNetworks'" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that contains value as PIXIT.CNET.WIFI_1ST_ ACCESSPOINT_SSID. + -that the connected status should be the type of bool value as TRUE. [1657733068.835240][7475:7480] CHIP:TOO: Networks: 1 entries [1657733068.835354][7475:7480] CHIP:TOO: [1]: { @@ -114,16 +117,17 @@ tests: disabled: true - label: - "TH finds the index of the Networks list entry with NetworkID for - PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and saves it as + "Step 3: TH finds the index of the Networks list entry with NetworkID + for PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and saves it as 'Userwifi_netidx'" verification: | disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and Breadcrumb field set to 1" + "Step 4: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and Breadcrumb field + set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 @@ -132,7 +136,7 @@ tests: ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 --Breadcrumb 1 - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). [1657290079.168208][2668:2673] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 [1657290079.168273][2668:2673] CHIP:TOO: NetworkConfigResponse: { @@ -142,10 +146,10 @@ tests: disabled: true - label: - "TH sends AddOrUpdateWiFi Network command to the DUT with SSID field - set to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID, Credentials field set - to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_CREDENTIALS and Breadcrumb field - set to 1" + "Step 5: TH sends AddOrUpdateWiFiNetwork command to the DUT with SSID + field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, Credentials field + set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_CREDENTIALS and Breadcrumb + field set to 1" PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning add-or-update-wi-fi-network hex: 1 0 @@ -154,7 +158,7 @@ tests: ./chip-tool networkcommissioning add-or-update-wi-fi-network Sbee_Moto Sunsuraj 1 0 --Breadcrumb 1 ( second network) - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). [1657288838.207746][2455:2460] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005 [1657288838.207816][2455:2460] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 @@ -164,12 +168,14 @@ tests: [1657288838.208068][2455:2460] CHIP:TOO: } disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "Step 6: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that contains value as PIXIT.CNET.WIFI_2ND_ ACCESSPOINT_SSID. + -that the connected status should be the type of bool value as FALSE. [1657733345.351745][7595:7600] CHIP:TOO: Networks: 1 entries [1657733345.351888][7595:7600] CHIP:TOO: [1]: { @@ -179,9 +185,9 @@ tests: disabled: true - label: - "TH sends ConnectNetwork command to the DUT with NetworkID field set - to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID and Breadcrumb field set to - 2" + "Step 7: TH sends ConnectNetwork command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID and Breadcrumb field + set to 2" PICS: CNET.S.C06.Rsp verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -190,8 +196,7 @@ tests: ./chip-tool networkcommissioning connect-network hex:536265655F4D6F746F 1 0 --Breadcrumb 2 (second network) - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: - + Via the TH (chip-tool), Verify the ConnectNetworkResponse that contains Networking Status value as 0 (success). [1653479953.633815][30491:30496] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007 [1653479953.633986][30491:30496] CHIP:TOO: ConnectNetworkResponse: { @@ -203,20 +208,21 @@ tests: disabled: true - label: - "TH changes its WiFi connection to + "Step 8: TH changes its WiFi connection to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID" verification: | Make sure TH also joins the 2nd Wifi network to have a connectivity to the DUT. disabled: true - label: - "TH discovers and connects to DUT on the PIXIT.CNET.WIFI_ - 2ND_ACCESSPOIN T_SSID operational network" + "Step 9: TH discovers and connects to DUT on the + PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID operational network" verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: - + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that contains value as PIXIT.CNET.WIFI_2ND_ ACCESSPOINT_SSID. + -that the connected status should be the type of bool value as TRUE. [1657733596.457792][7640:7645] CHIP:TOO: Networks: 1 entries [1657733596.457867][7640:7645] CHIP:TOO: [1]: { @@ -226,29 +232,27 @@ tests: disabled: true - label: - "TH reads Breadcrumb attribute from the General Commissioning cluster - of the DUT" + "Step 10: TH reads Breadcrumb attribute from the General Commissioning + cluster of the DUT" PICS: CNET.S.C06.Rsp verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 - Verify "Breadcrumb: 2" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 2. [1657733618.370511][7653:7658] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2956231097 [1657733618.370581][7653:7658] CHIP:TOO: Breadcrumb: 2 disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 0. This forcibly disarms the fail-safe and is expected to cause the - changes of configuration to NetworkCommissi oning cluster done so far - to be reverted." + "Step 11: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 0. This forcibly disarms the fail-safe and + is expected to cause the changes of configuration to + NetworkCommissioning cluster done so far to be reverted." verification: | - Mark as not applicable and proceed to next step - ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 0 secs to the TH. [1657289119.775902][2519:2524] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1657289119.775973][2519:2524] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -259,36 +263,32 @@ tests: disabled: true - label: - "TH changes its WiFi connection to PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT - _SSID" + "Step 12 & 13: TH changes its WiFi connection to + PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and TH discovers and connects to + DUT on the PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID operational network" verification: | - Mark as not applicable and proceed to next step - disabled: true - - - label: - "TH discovers and connects to DUT on the PIXIT.CNET.WIFI_ - 1ST_ACCESSPOINT _SSID operational network" - verification: | - Mark as not applicable and proceed to next step - ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: - - [1657881740.139492][3022:3027] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 4005581086 - [1657881740.139598][3022:3027] CHIP:TOO: Networks: 0 entries - [1657881740.139716][3022:3027] CHIP:EM: Sending Standalone Ack for MessageCounter:261851669 on exchange 34342i + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that should be as PIXIT.CNET.WIFI_1ST_ ACCESSPOINT_SSID. + -that the connected status should be the type of bool value as TRUE. + + [1684497703.596528][3941:3943] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 873070909 + [1684497703.596592][3941:3943] CHIP:TOO: Networks: 1 entries + [1684497703.596640][3941:3943] CHIP:TOO: [1]: { + [1684497703.596668][3941:3943] CHIP:TOO: NetworkID: 47524C50726976617465 + [1684497703.596697][3941:3943] CHIP:TOO: Connected: FALSE + [1684497703.596721][3941:3943] CHIP:TOO: } + [1684497703.596882][3941:3943] CHIP:EM: <<< [E:51584i S:48726 M:88313254 (Ack:206238679)] (S) Msg TX to 1:0000000000000001 [3A8F] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 900" + "Step 14: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 900" verification: | - Mark as not applicable and proceed to next step - - ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 + ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout of 900 secs to the TH. [1657289228.311622][2529:2534] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1657289228.311668][2529:2534] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -299,41 +299,41 @@ tests: disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and Breadcrumb field set to 1" + "Step 15: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and Breadcrumb field + set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | - Mark as not applicable and proceed to next step + ./chip-tool networkcommissioning remove-network hex: 1 0 - ./chip-tool networkcommissioning remove-network hex: 1 0 Below is an example: ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 --Breadcrumb 1 - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). - [1653479953.633815][30491:30496] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007 - [1653479953.633986][30491:30496] CHIP:TOO: ConnectNetworkResponse: { - [1653479953.634133][30491:30496] CHIP:TOO: networkingStatus: 0 - [1653479953.634195][30491:30496] CHIP:TOO: errorValue: null - [1653479953.634275][30491:30496] CHIP:TOO: } - [1653479953.634367][30491:30496] CHIP:DMG: ICR moving to [AwaitingDe] - [1653479953.634501][30491:30496] CHIP:EM: Sending Standalone Ack for MessageCounter:490923 on exchange 21425i + [1684497783.207292][4010:4012] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005 + [1684497783.207338][4010:4012] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 + [1684497783.207481][4010:4012] CHIP:TOO: NetworkConfigResponse: { + [1684497783.207531][4010:4012] CHIP:TOO: networkingStatus: 0 + [1684497783.207555][4010:4012] CHIP:TOO: networkIndex: 0 + [1684497783.207578][4010:4012] CHIP:TOO: } + [1684497783.207635][4010:4012] CHIP:DMG: ICR moving to [AwaitingDe] + [1684497783.207723][4010:4012] CHIP:EM: <<< [E:60874i S:60117 M:37627612 (Ack:227520870)] (S) Msg TX to 1: disabled: true - label: - "TH sends AddOrUpdateWiFi Network command to the DUT with SSID field - set to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID, Credentials field set - to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_CREDENTIALS and Breadcrumb field - set to 1" + "Step 16: TH sends AddOrUpdateWiFiNetwork command to the DUT with SSID + field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, Credentials field + set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_CREDENTIALS and Breadcrumb + field set to 1" PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx verification: | - Mark as not applicable and proceed to next step + ./chip-tool networkcommissioning add-or-update-wi-fi-network-network hex: 1 0 - ./chip-tool networkcommissioning add-or-update-wi-fi-network-network hex: 1 0 Below is an example: ./chip-tool networkcommissioning add-or-update-wi-fi-network Sbee_Moto Sunsuraj 1 0 --Breadcrumb 1 ( second network) - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). [1657734444.832145][7736:7741] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 [1657734444.832215][7736:7741] CHIP:TOO: NetworkConfigResponse: { @@ -344,16 +344,16 @@ tests: disabled: true - label: - "TH sends ConnectNetwork command to the DUT with NetworkID field set - to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID and Breadcrumb field set to - 3" + "Step 17: TH sends ConnectNetwork command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID and Breadcrumb field + set to 3" PICS: CNET.S.C06.Rsp && CNET.S.C07.Tx verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 Below is an example: ./chip-tool networkcommissioning connect-network hex:536265655F4D6F746F 1 0 --Breadcrumb 3 (second network) - Verify "ConnectNetworkResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the ConnectNetworkResponse that contains Networking Status value as 0 (success). [1657734624.698518][7768:7773] CHIP:TOO: ConnectNetworkResponse: { [1657734624.698601][7768:7773] CHIP:TOO: networkingStatus: 0 @@ -362,19 +362,15 @@ tests: disabled: true - label: - "TH changes its WiFi connection to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN - T_SSID" - verification: | - - disabled: true - - - label: - "TH discovers and connects to DUT on the PIXIT.CNET.WIFI_ - 2ND_ACCESSPOIN T_SSID operational network" + "Step 18 & 19: TH changes its WiFi connection to + PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID and TH discovers and connects to + DUT on the PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID operational network" verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that contains value as PIXIT.CNET.WIFI_2ND_ ACCESSPOINT_SSID. + -that the connected status should be the type of bool value as TRUE. [1657733596.457792][7640:7645] CHIP:TOO: Networks: 1 entries [1657733596.457867][7640:7645] CHIP:TOO: [1]: { @@ -384,24 +380,23 @@ tests: disabled: true - label: - "TH reads Breadcrumb attribute from the General Commissioning cluster - of the DUT" + "Step 20: TH reads Breadcrumb attribute from the General Commissioning + cluster of the DUT" PICS: CNET.S.C06.Rsp verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 - - Verify "Breadcrumb: 3" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 3. [1657734757.740003][7793:7798] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2956231102 [1657734757.740140][7793:7798] CHIP:TOO: Breadcrumb: 3 disabled: true - - label: "TH sends the CommissioningCo mplete command to the DUT" + - label: "Step 21: TH sends the CommissioningComplete command to the DUT" verification: | ./chip-tool generalcommissioning commissioning-complete 1 0 - Verify "CommissioningCompleteResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends CommissioningComplete command and the errorCode field is 0(OK). [1657734803.411199][7802:7808] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0005 [1657734803.411256][7802:7808] CHIP:TOO: CommissioningCompleteResponse: { @@ -410,13 +405,14 @@ tests: [1657734803.411356][7802:7808] CHIP:TOO: } disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "Step 23: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: - + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that should be as PIXIT.CNET.WIFI_2ND_ ACCESSPOINT_SSID. + -that the connected status should be the type of bool value as TRUE. [1657734855.925075][7819:7824] CHIP:TOO: Networks: 1 entries [1657734855.925147][7819:7824] CHIP:TOO: [1]: { diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml index 346661683c69c2..e5a47b29eaff8e 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.4.10. [TC-CNET-4.12] [Thread] Verification for ConnectNetwork Command + 12.4.10. [TC-CNET-4.12] [Thread]Verification for ConnectNetwork Command [DUT-Server] PICS: @@ -44,12 +44,12 @@ tests: disabled: true - label: - "During the commissioning process, TH and DUT, TH sends ArmFailSafe - command to the DUT" + "Step 1: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 1 22 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 900 secs to the TH. [1657808518.577084][5979:5984] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1657808518.577181][5979:5984] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -62,13 +62,15 @@ tests: disabled: true - label: - "TH reads Networks attribute from the DUT and saves the number of - entries as NumNetworks" + "Step 2: TH reads Networks attribute from the DUT and saves the number + of entries as 'NumNetworks'" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 22 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that should be as th_xpan(first network id). + -that the connected status should be the type of bool value as TRUE. [1659623217.387917][9816:9821] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 4196844346 [1659623217.388007][9816:9821] CHIP:TOO: Networks: 1 entries @@ -79,15 +81,15 @@ tests: disabled: true - label: - "TH saves the index of the Networks list entry from step 2 - as Userth_netidx" + "Step 3: TH saves the index of the Networks list entry from step 2 as + Userth_netidx" verification: | disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - th_xpan and Breadcrumb field set to 1" + "Step 4: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to th_xpan and Breadcrumb field set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 @@ -96,7 +98,7 @@ tests: ./chip-tool networkcommissioning remove-network hex:2111111122222222 22 0 - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). [1659623277.664477][9824:9831] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005 [1659623277.664556][9824:9831] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 @@ -108,9 +110,9 @@ tests: disabled: true - label: - "TH sends AddOrUpdateThre adNetwork command to the DUT with - operational dataset field set to PIXIT.CNET.THRE AD_2ND_OPERATI - ONALDATASET and Breadcrumb field set to 1" + "Step 5: TH sends AddOrUpdateThreadNetwork command to the DUT with + operational dataset field set to + PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET and Breadcrumb field set to 1" PICS: CNET.S.C03.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning add-or-update-thread-network-network hex: 1 0 @@ -119,7 +121,7 @@ tests: ./chip-tool networkcommissioning add-or-update-thread-network hex:0e080000000000010000000300000c35060004001fffe0020831111111222222220708fd6958bdf99a83e6051000112233445566778899aabbccddeeff030e4f70656e54687265616444656d6b0102123404101fdf27d94ddb7edc69dc3e72a0ca0ae10c0402a0f7f8 22 0 (second network dataset value) - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). [1659623353.963125][9870:9875] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 [1659623353.963312][9870:9875] CHIP:TOO: NetworkConfigResponse: { @@ -129,12 +131,14 @@ tests: [1659623353.963623][9870:9875] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "Step 6: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 22 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that should be as th_xpan(second network id). + -that the connected status should be the type of bool value as FALSE. [1659623451.276073][9891:9896] CHIP:TOO: Networks: 1 entries [1659623451.276194][9891:9896] CHIP:TOO: [1]: { @@ -144,9 +148,9 @@ tests: disabled: true - label: - "TH sends ConnectNetwork command to the DUT with NetworkID - field set to PIXIT.CNET.THRE AD_2ND_OPERATI ONALDATASET and - Breadcrumb field set to 2" + "Step 7: TH sends ConnectNetwork command to the DUT with NetworkID + field set to PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET and Breadcrumb + field set to 2" PICS: CNET.S.C06.Rsp verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -155,7 +159,7 @@ tests: ./chip-tool networkcommissioning connect-network hex:3111111122222222 22 0 --Breadcrumb 2 - Verify "ConnectNetworkResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the ConnectNetworkResponse that contains Networking Status value as 0 (success). 1 Command=0x0000_0007 [1659623520.296630][9903:9908] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007 @@ -167,17 +171,20 @@ tests: disabled: true - label: - "TH discovers and connects to DUT on - the PIXIT.CNET.THRE AD_2ND_OPERATI ONALDATASET operational network" + "Step 8: TH discovers and connects to DUT on the + PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET operational network" verification: | - + Mark as not applicable and proceed to next step disabled: true - label: - "TH reads Breadcrumb attribute from - the General Commissioning cluster of the DUT" + "Step 9: TH reads Breadcrumb attribute from the General Commissioning + cluster of the DUT" PICS: CNET.S.C06.Rsp verification: | + Mark as not applicable and proceed to next step + + ./chip-tool generalcommissioning read breadcrumb 22 0 Verify "breadcrumb value is set to 2" on the TH(Chip-tool) Log: @@ -188,10 +195,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT - with ExpiryLengthSeco nds set to 0. This forcibly disarms the - fail-safe and is expected to cause the changes of configuration - to NetworkCommissi oning cluster done so far to be reverted." + "Step 10: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 0" verification: | Mark as not applicable and proceed to next step @@ -209,15 +214,15 @@ tests: disabled: true - label: - "TH ensures it can communicate on PIXIT.CNET.THRE AD_1ST_OPERATI - ONALDATASET" + "Step 11: TH ensures it can communicate on + PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET" verification: | Mark as not applicable and proceed to next step disabled: true - label: - "TH discovers and connects to DUT on the PIXIT.CNET.THRE - AD_1ST_OPERATI ONALDATASET operational network" + "Step 12: TH discovers and connects to DUT on the + PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET operational network" verification: | Mark as not applicable and proceed to next step @@ -227,59 +232,59 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 900" + "Step 13: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 900" verification: | Mark as not applicable and proceed to next step disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - th_xpan and Breadcrumb field set to 1" + "Step 14: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to th_xpan and Breadcrumb field set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | Mark as not applicable and proceed to next step disabled: true - label: - "TH sends AddOrUpdateThre adNetwork command to the DUT with the - OperationalDatase t field set to PIXIT.CNET.THRE AD_2ND_OPERATI - ONALDATASET and Breadcrumb field set to 1" + "Step 15: TH sends AddOrUpdateThreadNetwork command to the DUT with + the OperationalDataset field set to + PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET and Breadcrumb field set to 1" PICS: CNET.S.C03.Rsp && CNET.S.C05.Tx verification: | Mark as not applicable and proceed to next step disabled: true - label: - "TH sends ConnectNetwork command to the DUT with NetworkID field set - to the extended PAN ID of PIXIT.CNET.THRE AD_2ND_OPERATI ONALDATASET - and Breadcrumb field set to 3" + "Step 16: TH sends ConnectNetwork command to the DUT with NetworkID + field set to the extended PAN ID of + PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET and Breadcrumb field set to 3" PICS: CNET.S.C06.Rsp && CNET.S.C07.Tx verification: | Mark as not applicable and proceed to next step disabled: true - label: - "TH discovers and connects to DUT on - the PIXIT.CNET.THRE AD_2ND_OPERATI ONALDATASET operational network" + "Step 17: TH discovers and connects to DUT on the + PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET operational network" verification: | Mark as not applicable and proceed to next step disabled: true - label: - "TH reads Breadcrumb attribute from - the General Commissioning cluster of the DUT" + "Step 18: TH reads Breadcrumb attribute from the General Commissioning + cluster of the DUT" PICS: CNET.S.C06.Rsp verification: | Mark as not applicable and proceed to next step disabled: true - - label: "TH sends the CommissioningCo mplete command to the DUT" + - label: "Step 19: TH sends the CommissioningComplete command to the DUT" verification: | Mark as not applicable and proceed to next step disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "Step 20: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | Mark as not applicable and proceed to next step diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml index e3a52dde21d7e3..cb22eeb6278225 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.4.11. [TC-CNET-4.13] [Wi-Fi] Verification for ReorderNetwork command + 12.4.11. [TC-CNET-4.13] [WiFi] Verification for ReorderNetwork command [DUT-Server] PICS: @@ -94,8 +94,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT - with ExpiryLengthSeco nds set to 900" + "Step 1: TH sendsArmFailSafecommand to theDUT withExpiryLengthSeconds + set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 @@ -104,8 +104,8 @@ tests: disabled: true - label: - "TH reads Networks attribute from the DUT and saves the number of - entries as NumNetworks" + "Step 2: TH readsNetworksattribute from theDUT and saves thenumber of + entries as 'NumNetworks'" PICS: CNET.S.A0001 verification: | ./chip-tool network-commissioning read networks 1 0 @@ -115,18 +115,17 @@ tests: disabled: true - label: - "TH calculates the number of remaining network slots - as MaxNetworksVal ue - NumNetworks and saves - as RemainingNetwor kSlots" + "Step 3: TH calculates thenumber ofremainingnetwork slots + as'MaxNetworksValue' -'NumNetworks'and saves as'RemainingNetworkSlots'" verification: | The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4 ( Pre-Condition) disabled: true - label: - "TH1 sends AddOrUpdateWiFiNetwork command to the DUT with SSID - argument value as Userwifi_ssid2 Credentials argument value as - Userwifi_Credentials and Breadcrumb argument value as 1" + "Step 4: TH1 sends AddOrUpdateWiFiNetwork command to the DUT with SSID + argument value as 'Userwifi_ssid2', Credentials argument value as + 'Userwifi_Credentials' and Breadcrumb argument value as 1" verification: | ./chip-tool networkcommissioning add-or-update-wi-fi-network hex:47524C50726976617465 grlprivate092010 1 0 --Breadcrumb 1 @@ -135,16 +134,16 @@ tests: disabled: true - label: - "TH calculates the midpoint of the network list as floor((MaxNetwor - ksValue + 1)/2) and saves as Midpoint" + "Step 4: TH calculates the midpoint of the network list as + floor(('MaxNetwor ksValue' + 1)/2) and saves as 'Midpoint'" verification: | The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4 ( Pre-Condition) disabled: true - label: - "TH sends ArmFailSafe command to the DUT with the ExpiryLengthSeco nds - field set to 900" + "Step 5: TH sends ArmFailSafe command to the DUT with the + ExpiryLengthSeco nds field set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 @@ -154,11 +153,10 @@ tests: disabled: true - label: - "TH sends AddOrUpdateWiFi Network command to the DUT. This - step should be repeated RemainingNetwor kSlots times - using DIFFERENT SSID and credential values and the Breadcrumb - field set to 1. Note that these credentials are NOT required to be - connectable." + "Step 2: TH sendsAddOrUpdateWiFiNetworkcommand to theDUT. This + stepshould be repeated'RemainingNetworkSlots' times usingDIFFERENT + SSIDand credentialvalues and theBreadcrumb fieldset to 1. Note + thatthese credentialsare NOT requiredto be connectable." PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning add-or-update-wi-fi-network hex:63686970736574757035 matter123 1 0 --Breadcrumb 1 @@ -168,8 +166,8 @@ tests: disabled: true - label: - "TH reads Networks attribute from the DUT and saves the list - as OriginalNetworkList" + "Step 6: TH readsNetworksattribute from theDUT and saves thelist + as'OriginalNetworkList'" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 @@ -179,9 +177,9 @@ tests: disabled: true - label: - "TH sends ReorderNetwo rk Command to the DUT with the following - fields: 1. NetworkID is PIXIT.CNET .WIFI_1ST_ ACCESSPOI NT_SSID 2. - NetworkIn dex is MaxNetwo rksValue 3. Breadcrum b is 2" + "Step 7: TH sends ReorderNetwo rk Command to the DUT with the + following fields: 1. NetworkID is PIXIT.CNET .WIFI_1ST_ ACCESSPOI + NT_SSID 2. NetworkIn dex is 'MaxNetwo rksValue' 3. Breadcrum b is 2" PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx verification: | ./chip-tool network-commissioning read networks 1 0 @@ -191,7 +189,8 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 8: TH reads Breadcumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 @@ -200,10 +199,9 @@ tests: disabled: true - label: - "TH sends ReorderNetwo rk Command to the DUT with - the following fields: 1. NetworkID is a NetworkID value - NOT present in OriginalNe tworkList 2. NetworkIn dex - is Midpoint 3. Breadcrum b is 2" + "Step 9: TH sendsReorderNetwork Commandto the DUTwith + thefollowingfields: 1. NetworkIDis aNetworkIDvalue NOTpresent + in'OriginalNetworkList'2.NetworkIn dex is'Midpoint'3.Breadcrumb is 2" PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx verification: | The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4 @@ -211,7 +209,8 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 10: TH reads Breadcumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 @@ -220,9 +219,9 @@ tests: disabled: true - label: - "TH sends ReorderNetwo rk Command to the DUT with the following - fields: 1. NetworkID is PIXIT.CNET .WIFI_1ST_ ACCESSPOI NT_SSID 2. - NetworkIn dex is Midpoint 3. Breadcrum b is 2" + "Step 11: TH sends ReorderNetwo rk Command to the DUT with the + following fields: 1. NetworkID is PIXIT.CNET .WIFI_1ST_ ACCESSPOI + NT_SSID 2. NetworkIn dex is 'Midpoint' 3. Breadcrum b is 2" PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning reorder-network hex:47524C50726976617465 1 0 --Breadcrumb 1 @@ -232,8 +231,8 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from - the General Commissioning Cluster" + "Step 12: TH readsBreadcumbattribute from + theGeneralCommissioningCluster" verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 @@ -241,7 +240,7 @@ tests: ( Pre-Condition) disabled: true - - label: "TH reads Networks attribute list from the DUT" + - label: "Step 13: TH readsNetworksattribute list fromthe DUT" PICS: CNET.S.A0001 verification: | ./chip-tool network-commissioning read networks 1 0 @@ -251,8 +250,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT - with ExpiryLengthSeco nds set to 0" + "Step 14: TH sendsArmFailSafecommand to theDUT withExpiryLengthSeconds + set to 0" verification: | ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0 @@ -260,7 +259,7 @@ tests: ( Pre-Condition) disabled: true - - label: "TH reads Networks attribute list from the DUT" + - label: "Step 15: TH readsNetworksattribute list fromthe DUT" PICS: CNET.S.A0001 verification: | ./chip-tool network-commissioning read networks 1 0 @@ -270,8 +269,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 900" + "Step 16: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeco nds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 @@ -281,11 +280,10 @@ tests: disabled: true - label: - "TH sends AddOrUpdateWiFi Network command to the DUT. This - step should be repeated RemainingNetwor kSlots times - using DIFFERENT SSID and credential values and Breadcrumb - field set to 1. Note that these credentials are NOT required to be - connectable." + "Step 17: TH sendsAddOrUpdateWiFiNetworkcommand to theDUT. This + stepshould be repeated'RemainingNetworkSlots' times usingDIFFERENT + SSIDand credentialvalues and Breadcrumb fieldset to 1. Note thatthese + credentialsare NOT requiredto be connectable." PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx verification: | The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4 @@ -293,17 +291,17 @@ tests: disabled: true - label: - "TH sends ReorderNetwo rk Command to the DUT with - the following fields: 1. - NetworkID is PIXIT.CNET .WIFI_1ST_ ACCESSPOI NT_SSID 2. NetworkIn dex - is Midpoint 3. Breadcrum b is 2" + "Step 18: TH sendsReorderNetwork Commandto the DUTwith + thefollowingfields: 1. + NetworkIDisPIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID2.NetworkIndex is + 'Midpoint'3.Breadcrumb is 2" PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx verification: | The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4 ( Pre-Condition) disabled: true - - label: "TH sends the CommissioningCo mplete command to the DUT" + - label: "Step 19: TH sends the CommissioningCo mplete command to the DUT" verification: | ./chip-tool generalcommissioning CommissioningComplete 1 0 @@ -312,8 +310,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT - with ExpiryLengthSeco nds set to 0" + "Step 20: TH sendsArmFailSafecommand to theDUT withExpiryLengthSeconds + set to 0" verification: | ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0 @@ -321,7 +319,7 @@ tests: ( Pre-Condition) disabled: true - - label: "TH reads Networks attribute list from the DUT" + - label: "Step 21: TH readsNetworksattribute list fromthe DUT" PICS: CNET.S.A0001 verification: | ./chip-tool network-commissioning read networks 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml index 676e4c9d978207..1e9edd3b231a91 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml @@ -94,8 +94,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT - with ExpiryLengthSeco nds set to 900" + "Step 1: TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco + nds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 @@ -104,8 +104,8 @@ tests: disabled: true - label: - "TH reads Networks attribute from the DUT and saves the number of - entries as NumNetworks" + "Step 2: TH reads Networks attribute from the DUT and saves the number + of entries as 'NumNetworks'" PICS: CNET.S.A0001 verification: | ./chip-tool network-commissioning read networks 1 0 @@ -115,16 +115,17 @@ tests: disabled: true - label: - "TH calculates the number of remaining network slots as MaxNetworksVal - ue NumNetworks and saves as RemainingNetworkSlots" + "Step 3: TH calculates the number of remaining network slots as + 'MaxNetworksValue' - 'NumNetworks' and saves as 'RemainingNetwor + kSlots'" verification: | The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4 ( Pre-Condition) disabled: true - label: - "TH calculates the midpoint of the network list as floor((MaxNetwor - ksValue + 1)/2) and saves as Midpoint" + "Step 4: TH calculates the midpoint of the network list as + floor(('MaxNetwor ksValue' + 1)/2) and saves as 'Midpoint'" verification: | ./chip-tool networkcommissioning add-or-update-thread-network hex:1011101122222229 1 0 --Breadcrumb 1 @@ -133,8 +134,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with the ExpiryLengthSeco nds - field set to 900" + "Step 5: TH sends ArmFailSafe command to the DUT with the + ExpiryLengthSeco nds field set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 @@ -144,8 +145,8 @@ tests: disabled: true - label: - "TH sends AddOrUpdateThre adNetwork command to the DUT. This step - should be repeated RemainingNetwor kSlots times using DIFFERENT + "Step 5: TH sends AddOrUpdateThre adNetwork command to the DUT. This + step should be repeated 'RemainingNetwor kSlots' times using DIFFERENT OperationalDatase t values and Breadcrumb set to 1. Note that these credentials are NOT required to be connectable." PICS: CNET.S.C03.Rsp && CNET.S.C05.Tx @@ -157,8 +158,8 @@ tests: disabled: true - label: - "TH reads Networks attribute from the DUT and saves the list as - OriginalNetworkList" + "Step 6: TH reads Networks attribute from the DUT and saves the list + as 'OriginalNetworkList'" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 @@ -168,10 +169,10 @@ tests: disabled: true - label: - "TH sends ReorderNetwo rk Command to the DUT with the following - fields: 1. NetworkID is the extended PAN ID of PIXIT.CNET .THREAD_1 - ST_OPERA TIONALDA TASET 2. NetworkIn dex is MaxNetwo rksValue 3. - Breadcrum b is 2" + "Step 7: TH sends ReorderNetwo rk Command to the DUT with the + following fields: 1. NetworkID is the extended PAN ID of PIXIT.CNET + .THREAD_1 ST_OPERA TIONALDA TASET 2. NetworkIn dex is 'MaxNetwo + rksValue' 3. Breadcrum b is 2" PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx verification: | ./chip-tool network-commissioning read networks 1 0 @@ -181,7 +182,8 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 8: TH reads Breadcumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 @@ -190,9 +192,10 @@ tests: disabled: true - label: - "TH sends ReorderNetwo rk Command to the DUT with the following - fields: 1. NetworkID is a NetworkID value NOT present in OriginalNe - tworkList 2. NetworkIndex is Midpoint 3. Breadcrum b is 2" + "Step 9: TH sends ReorderNetwo rk Command to the DUT with the + following fields: 1. NetworkID is a NetworkID value NOT present in + 'OriginalNe tworkList' 2. NetworkIndex is 'Midpoint' 3. Breadcrum b is + 2" PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx verification: | The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4 @@ -200,7 +203,8 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 10: TH reads Breadcumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 @@ -209,10 +213,10 @@ tests: disabled: true - label: - "TH sends ReorderNetwo rk Command to the DUT with the following - fields: 1. NetworkID is the extended PAN ID of PIXIT.CNET .THREAD_1 - ST_OPERA TIONALDA TASET 2.NetworkIn dex is Midpoint 3. Breadcrum b is - 2" + "Step 11: TH sends ReorderNetwo rk Command to the DUT with the + following fields: 1. NetworkID is the extended PAN ID of PIXIT.CNET + .THREAD_1 ST_OPERA TIONALDA TASET 2.NetworkIn dex is 'Midpoint' 3. + Breadcrum b is 2" PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning reorder-network hex:1011101122222229 1 0 --Breadcrumb 1 @@ -222,7 +226,8 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 12: TH reads Breadcumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 @@ -230,7 +235,7 @@ tests: ( Pre-Condition) disabled: true - - label: "TH reads Networks attribute list from the DUT" + - label: "Step 13: TH reads Networks attribute list from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool network-commissioning read networks 1 0 @@ -240,8 +245,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 0" + "Step 14: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeco nds set to 0" verification: | ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0 @@ -249,7 +254,7 @@ tests: ( Pre-Condition) disabled: true - - label: "TH reads Networks attribute list from the DUT" + - label: "Step 15: TH reads Networks attribute list from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool network-commissioning read networks 1 0 @@ -259,8 +264,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 900" + "Step 16: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeco nds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 @@ -270,8 +275,8 @@ tests: disabled: true - label: - "TH sends AddOrUpdateThre adNetwork command to the DUT. This step - should be repeated RemainingNetwor kSlots times using DIFFERENT + "Step 17: TH sends AddOrUpdateThre adNetwork command to the DUT. This + step should be repeated 'RemainingNetwor kSlots' times using DIFFERENT OperationalDatase t values and Breadcrumb set to 1. Note that these credentials are NOT required to be connectable" PICS: CNET.S.C03.Rsp && CNET.S.C05.Tx @@ -281,17 +286,17 @@ tests: disabled: true - label: - "TH sends ReorderNetwo rk Command to the DUT with the following - fields: 1. NetworkID is the extended PAN ID of PIXIT.CNET .THREAD_1 - ST_OPERA TIONALDA TASET 2. NetworkIn dex is Midpoint 3. Breadcrum b is - 2" + "Step 18: TH sends ReorderNetwo rk Command to the DUT with the + following fields: 1. NetworkID is the extended PAN ID of PIXIT.CNET + .THREAD_1 ST_OPERA TIONALDA TASET 2. NetworkIn dex is 'Midpoint' 3. + Breadcrum b is 2" PICS: CNET.S.C08.Rsp && CNET.S.C05.Tx verification: | The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4 ( Pre-Condition) disabled: true - - label: "TH sends the CommissioningCo mplete command to the DUT" + - label: "Step 19: TH sends the CommissioningCo mplete command to the DUT" verification: | ./chip-tool generalcommissioning CommissioningComplete 1 0 @@ -300,8 +305,8 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 0" + "Step 20: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeco nds set to 0" verification: | ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0 @@ -309,7 +314,7 @@ tests: ( Pre-Condition) disabled: true - - label: "TH reads Networks attribute list from the DUT" + - label: "Step 21: TH reads Networks attribute list from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool network-commissioning read networks 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml index 1df219c8ec4eab..b7c35be94be112 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml @@ -36,12 +36,12 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 900" + "Step 1: TH sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 900 secs to the TH with error code 0. [1650383264.543046][44233:44238] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1650383264.543109][44233:44238] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -54,9 +54,9 @@ tests: disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID, which does not match the - provisioned network, and Breadcrumb field set to 1" + "Step 2: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, which does not + match the provisioned network, and Breadcrumb field set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 @@ -65,7 +65,7 @@ tests: ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 3 (NetworkIDNotFound). [1650383270.888700][44239:44244] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005 [1650383270.888774][44239:44244] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 @@ -77,9 +77,9 @@ tests: disabled: true - label: - "TH sends connectNetwork Command to the DUT with NetworkID field set - to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID, which does not match the - provisioned network, and Breadcrumb field set to 1" + "Step 3: TH sends ConnectNetwork Command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, which does not + match the provisioned network, and Breadcrumb field set to 1" PICS: CNET.S.C06.Rsp && CNET.S.C07.Tx verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -88,7 +88,7 @@ tests: ./chip-tool networkcommissioning connect-network hex:47524C50726976617465 1 0 - Verify "ConnectNetworkResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the ConnectNetworkResponse that contains Networking Status value as 3 (NetworkIDNotFound). [1650383278.349428][44245:44250] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0007 [1650383278.349490][44245:44250] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml index f3e80dc813f6fb..36bff6e14ec43a 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml @@ -14,8 +14,8 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.4.14. [TC-CNET-4.16] [Thread] NetworkIDNotFound returned in - LastNetworkingStatus field validation [DUT-Server] + 12.4.14. [TC-CNET-4.16] [Thread] NetworkIDNotFound value as + LastNetworkingStatus argument validation [DUT-Server] PICS: - CNET.S.F01 @@ -35,11 +35,13 @@ tests: 5. MaxNetworks attribute value is at least 1 which is saved as MaxNetworksValue for future use disabled: true - - label: "TH sends ArmFailSafe command to the DUT" + - label: + "Step 1: TH sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 54 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 900 secs to the TH. [1650392597.976230][10152:10157] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1650392597.976363][10152:10157] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -52,19 +54,19 @@ tests: disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - the extended PAN ID of PIXIT.CNET.THRE AD_2ND_OPERATI ONALDATASET, - which does not match the commissioned network, and Breadcrumb field - set to 1" + "Step 2: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to the extended PAN ID of + PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET, which does not match the + commissioned network, and Breadcrumb field set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 Below is an example: - ./chip-tool networkcommissioning remove-network 47524C50726976617465 54 0 + ./chip-tool networkcommissioning remove-network 2111111122222222 54 0 - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 3 (NetworkIDNotFound). [1683268296.896031][12131:12134] CHIP:DMG: InteractionModelRevision = 1 [1683268296.896239][12131:12134] CHIP:DMG: }, @@ -80,10 +82,10 @@ tests: disabled: true - label: - "TH sends ConnectNetwork Command to the DUT with NetworkID value as - the extended PAN ID of PIXIT.CNET.THRE AD_2ND_OPERATI ONALDATASET, - which does not match the commissioned network, and Breadcrumb field - set to 1" + "Step 3: TH sends ConnectNetwork Command to the DUT with NetworkID + value as the extended PAN ID of + PIXIT.CNET.THREAD_2ND_OPERATIONALDATASET, which does not match the + commissioned network, and Breadcrumb field set to 1" PICS: CNET.S.C06.Rsp && CNET.S.C07.Tx verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -92,7 +94,7 @@ tests: ./chip-tool networkcommissioning connect-network 47524C50726976617465 54 0 - Verify "ConnectNetworkResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the ConnectNetworkResponse that contains Networking Status value as 3 (NetworkIDNotFound). [1650392982.606392][10188:10193] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0007 [1650392982.606501][10188:10193] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_17.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_17.yaml index 4a8e255318fba6..a014fb35013667 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_17.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_17.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.4.15. [TC-CNET-4.17] [Wi-Fi] Verification for attributes check + 12.4.15. [TC-CNET-4.17] [WiFi] Verification for attributes check [DUT-Client] PICS: @@ -36,12 +36,12 @@ tests: disabled: true - - label: "DUT reads the MaxNetworks attribute from the TH" + - label: "Step 1: DUT reads the MaxNetworks attribute from the TH" PICS: CNET.C.A0000 verification: | - ./chip-tool networkcommissioning read max-networks 1 0 + ./chip-tool networkcommissioning read max-networks 1 0 --trace_decode 1 - Verify "MaxNetworks attribute response" on the TH(All-cluster-app) Log: + Verify MaxNetworks attribute response on TH(all-clusters-app) log: [1667208272.085200][14293:14293] CHIP:EM: Handling via exchange: 31335r, Delegate: 0xaaaaaff382d8 [1667208272.085299][14293:14293] CHIP:IM: Received Read request @@ -113,13 +113,12 @@ tests: [1667208272.092558][14293:14293] CHIP:DMG: }, disabled: true - - label: "DUT reads the Networks attribute from the TH" + - label: "Step 2: DUT reads the Networks attribute from the TH" PICS: CNET.C.A0001 verification: | - ./chip-tool networkcommissioning read networks 1 0 + ./chip-tool networkcommissioning read networks 1 0 --trace_decode 1 - - Verify "Networks response" on the TH(All-cluster-app) Log: + Verify Networks attribute response on TH(all-clusters-app) log: [1667208308.741069][14293:14293] CHIP:EM: Handling via exchange: 43353r, Delegate: 0xaaaaaff382d8 [1667208308.741175][14293:14293] CHIP:IM: Received Read request @@ -216,12 +215,12 @@ tests: [1667208308.753658][14293:14293] CHIP:DMG: disabled: true - - label: "DUT reads ScanMaxTimeSeconds attribute from the TH" + - label: "Step 3: DUT reads ScanMaxTimeSeconds attribute from the TH" PICS: CNET.C.A0002 verification: | - ./chip-tool networkcommissioning read scan-max-time-seconds 1 0 + ./chip-tool networkcommissioning read scan-max-time-seconds 1 0 --trace_decode 1 - Verify "ScanMaxTimeSeconds response" on the TH(All-cluster-app) Log: + Verify ScanMaxTimeSeconds attribute response on TH(all-clusters-app) log: [1667208358.868821][14293:14293] CHIP:EM: Handling via exchange: 17173r, Delegate: 0xaaaaaff382d8 [1667208358.868931][14293:14293] CHIP:IM: Received Read request @@ -287,19 +286,18 @@ tests: [1667208358.875926][14293:14293] CHIP:DMG: Attribute = 0x0000_0002, [1667208358.876076][14293:14293] CHIP:DMG: } [1667208358.876180][14293:14293] CHIP:DMG: - [1667208358.876270][14293:14293] CHIP:DMG: Data = 0, + [1667208358.876270][14293:14293] CHIP:DMG: Data = 10, [1667208358.876349][14293:14293] CHIP:DMG: }, [1667208358.876442][14293:14293] CHIP:DMG: [1667208358.876513][14293:14293] CHIP:DMG: }, disabled: true - - label: "DUT reads ConnectMaxTimeSeconds attribute from the TH" + - label: "Step 4: DUT reads ConnectMaxTimeSeconds attribute from the TH" PICS: CNET.C.A0003 verification: | - ./chip-tool networkcommissioning read connect-max-time-seconds 1 0 - + ./chip-tool networkcommissioning read connect-max-time-seconds 1 0 --trace_decode 1 - Verify "ConnectMaxTimeSeconds response" on the TH(All-cluster-app) Log: + Verify ConnectMaxTimeSeconds attribute response on TH(all-clusters-app) log: [1667208410.708719][14293:14293] CHIP:EM: Handling via exchange: 52668r, Delegate: 0xaaaaaff382d8 [1667208410.708835][14293:14293] CHIP:IM: Received Read request @@ -365,19 +363,18 @@ tests: [1667208410.715262][14293:14293] CHIP:DMG: Attribute = 0x0000_0003, [1667208410.715349][14293:14293] CHIP:DMG: } [1667208410.715460][14293:14293] CHIP:DMG: - [1667208410.715558][14293:14293] CHIP:DMG: Data = 0, + [1667208410.715558][14293:14293] CHIP:DMG: Data = 20, [1667208410.715820][14293:14293] CHIP:DMG: }, [1667208410.715914][14293:14293] CHIP:DMG: [1667208410.715987][14293:14293] CHIP:DMG: }, disabled: true - - label: "DUT reads InterfaceEnabled attribute from the TH" + - label: "Step 5: DUT reads InterfaceEnabled attribute from the TH" PICS: CNET.C.A0004 verification: | - ./chip-tool networkcommissioning read interface-enabled 1 0 + ./chip-tool networkcommissioning read interface-enabled 1 0 --trace_decode 1 - - Verify "InterfaceEnabled response" on the TH(All-cluster-app) Log: + Verify InterfaceEnabled attribute response on TH(all-clusters-app) log: [1667208443.008116][14293:14293] CHIP:EM: Handling via exchange: 58556r, Delegate: 0xaaaaaff382d8 [1667208443.008243][14293:14293] CHIP:IM: Received Read request @@ -447,31 +444,30 @@ tests: [1667208443.015327][14293:14293] CHIP:DMG: }, disabled: true - - label: "DUT reads LastNetworkingStatus attribute from the TH" + - label: "Step 6: DUT reads LastNetworkingStatus attribute from the TH" PICS: CNET.C.A0005 verification: | - ./chip-tool networkcommissioning read last-networking-status 1 0 - + ./chip-tool networkcommissioning read last-networking-status 1 0 --trace_decode 1 - Verify "LastNetworkingStatus response" on the TH(All-cluster-app) Log: + Verify LastNetworkingStatus attribute response on TH(all-clusters-app) log: [1667208469.154755][14293:14293] CHIP:EM: Handling via exchange: 45977r, Delegate: 0xaaaaaff382d8 [1667208469.154875][14293:14293] CHIP:IM: Received Read request [1667208469.155241][14293:14293] CHIP:DMG: ReadRequestMessage = [1667208469.155315][14293:14293] CHIP:DMG: { - [1667208469.155395][14293:14293] CHIP:DMG: AttributePathIBs = - [1667208469.155461][14293:14293] CHIP:DMG: [ - [1667208469.155514][14293:14293] CHIP:DMG: AttributePathIB = - [1667208469.155586][14293:14293] CHIP:DMG: { - [1667208469.155664][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208469.155777][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208469.155868][14293:14293] CHIP:DMG: Attribute = 0x0000_0005, - [1667208469.155968][14293:14293] CHIP:DMG: } + [1667208469.155395][14293:14293] CHIP:DMG: AttributePathIBs = + [1667208469.155461][14293:14293] CHIP:DMG: [ + [1667208469.155514][14293:14293] CHIP:DMG: AttributePathIB = + [1667208469.155586][14293:14293] CHIP:DMG: { + [1667208469.155664][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208469.155777][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208469.155868][14293:14293] CHIP:DMG: Attribute = 0x0000_0005, + [1667208469.155968][14293:14293] CHIP:DMG: } [1667208469.156047][14293:14293] CHIP:DMG: - [1667208469.156136][14293:14293] CHIP:DMG: ], + [1667208469.156136][14293:14293] CHIP:DMG: ], [1667208469.156210][14293:14293] CHIP:DMG: - [1667208469.156277][14293:14293] CHIP:DMG: isFabricFiltered = true, - [1667208469.156361][14293:14293] CHIP:DMG: InteractionModelRevision = 1 + [1667208469.156277][14293:14293] CHIP:DMG: isFabricFiltered = true, + [1667208469.156361][14293:14293] CHIP:DMG: InteractionModelRevision = 1 [1667208469.156422][14293:14293] CHIP:DMG: }, [1667208469.156602][14293:14293] CHIP:DMG: IM RH moving to [GeneratingReports] [1667208469.156848][14293:14293] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -505,48 +501,48 @@ tests: [1667208469.160136][14293:14293] CHIP:DMG: [1667208469.160282][14293:14293] CHIP:DMG: ReportDataMessage = [1667208469.160369][14293:14293] CHIP:DMG: { - [1667208469.160423][14293:14293] CHIP:DMG: AttributeReportIBs = - [1667208469.160528][14293:14293] CHIP:DMG: [ - [1667208469.160593][14293:14293] CHIP:DMG: AttributeReportIB = - [1667208469.160702][14293:14293] CHIP:DMG: { - [1667208469.160785][14293:14293] CHIP:DMG: AttributeDataIB = - [1667208469.160900][14293:14293] CHIP:DMG: { - [1667208469.160994][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, - [1667208469.161104][14293:14293] CHIP:DMG: AttributePathIB = - [1667208469.161196][14293:14293] CHIP:DMG: { - [1667208469.161310][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208469.161424][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208469.161517][14293:14293] CHIP:DMG: Attribute = 0x0000_0005, - [1667208469.161634][14293:14293] CHIP:DMG: } + [1667208469.160423][14293:14293] CHIP:DMG: AttributeReportIBs = + [1667208469.160528][14293:14293] CHIP:DMG: [ + [1667208469.160593][14293:14293] CHIP:DMG: AttributeReportIB = + [1667208469.160702][14293:14293] CHIP:DMG: { + [1667208469.160785][14293:14293] CHIP:DMG: AttributeDataIB = + [1667208469.160900][14293:14293] CHIP:DMG: { + [1667208469.160994][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, + [1667208469.161104][14293:14293] CHIP:DMG: AttributePathIB = + [1667208469.161196][14293:14293] CHIP:DMG: { + [1667208469.161310][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208469.161424][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208469.161517][14293:14293] CHIP:DMG: Attribute = 0x0000_0005, + [1667208469.161634][14293:14293] CHIP:DMG: } [1667208469.161732][14293:14293] CHIP:DMG: - [1667208469.161834][14293:14293] CHIP:DMG: Data = NULL - [1667208469.161919][14293:14293] CHIP:DMG: }, + [1667208469.161834][14293:14293] CHIP:DMG: Data = 0, + [1667208469.161919][14293:14293] CHIP:DMG: }, disabled: true - - label: "DUT reads LastNetworkID attribute from the TH" + - label: "Step 7: DUT reads LastNetworkID attribute from the TH" PICS: CNET.C.A0006 verification: | - ./chip-tool networkcommissioning read last-network-id 1 0 + ./chip-tool networkcommissioning read last-network-id 1 0 --trace_decode 1 - Verify "LastNetworkID response" on the TH(All-cluster-app) Log: + Verify LastNetworkID attribute response on TH(all-clusters-app) log: [1667208560.669590][14293:14293] CHIP:EM: Handling via exchange: 8923r, Delegate: 0xaaaaaff382d8 [1667208560.669685][14293:14293] CHIP:IM: Received Read request [1667208560.669852][14293:14293] CHIP:DMG: ReadRequestMessage = [1667208560.669918][14293:14293] CHIP:DMG: { - [1667208560.669971][14293:14293] CHIP:DMG: AttributePathIBs = - [1667208560.670037][14293:14293] CHIP:DMG: [ - [1667208560.670098][14293:14293] CHIP:DMG: AttributePathIB = - [1667208560.670181][14293:14293] CHIP:DMG: { - [1667208560.670254][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208560.670337][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208560.670411][14293:14293] CHIP:DMG: Attribute = 0x0000_0006, - [1667208560.670531][14293:14293] CHIP:DMG: } + [1667208560.669971][14293:14293] CHIP:DMG: AttributePathIBs = + [1667208560.670037][14293:14293] CHIP:DMG: [ + [1667208560.670098][14293:14293] CHIP:DMG: AttributePathIB = + [1667208560.670181][14293:14293] CHIP:DMG: { + [1667208560.670254][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208560.670337][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208560.670411][14293:14293] CHIP:DMG: Attribute = 0x0000_0006, + [1667208560.670531][14293:14293] CHIP:DMG: } [1667208560.670600][14293:14293] CHIP:DMG: - [1667208560.670656][14293:14293] CHIP:DMG: ], + [1667208560.670656][14293:14293] CHIP:DMG: ], [1667208560.670717][14293:14293] CHIP:DMG: - [1667208560.670813][14293:14293] CHIP:DMG: isFabricFiltered = true, - [1667208560.670879][14293:14293] CHIP:DMG: InteractionModelRevision = 1 + [1667208560.670813][14293:14293] CHIP:DMG: isFabricFiltered = true, + [1667208560.670879][14293:14293] CHIP:DMG: InteractionModelRevision = 1 [1667208560.670938][14293:14293] CHIP:DMG: }, [1667208560.671124][14293:14293] CHIP:DMG: IM RH moving to [GeneratingReports] [1667208560.671497][14293:14293] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -578,50 +574,60 @@ tests: [1667208560.674622][14293:14293] CHIP:DMG: data = 153601153501260083a6a0843701240200240331240406183402181818290424ff0118 [1667208560.674679][14293:14293] CHIP:DMG: } [1667208560.674730][14293:14293] CHIP:DMG: - [1667208560.674900][14293:14293] CHIP:DMG: ReportDataMessage = - [1667208560.674967][14293:14293] CHIP:DMG: { - [1667208560.675021][14293:14293] CHIP:DMG: AttributeReportIBs = - [1667208560.675129][14293:14293] CHIP:DMG: [ - [1667208560.675193][14293:14293] CHIP:DMG: AttributeReportIB = - [1667208560.675302][14293:14293] CHIP:DMG: { - [1667208560.675383][14293:14293] CHIP:DMG: AttributeDataIB = - [1667208560.675488][14293:14293] CHIP:DMG: { - [1667208560.675595][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, - [1667208560.675681][14293:14293] CHIP:DMG: AttributePathIB = - [1667208560.675788][14293:14293] CHIP:DMG: { - [1667208560.675884][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208560.676000][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208560.676102][14293:14293] CHIP:DMG: Attribute = 0x0000_0006, - [1667208560.676211][14293:14293] CHIP:DMG: } - [1667208560.676303][14293:14293] CHIP:DMG: - [1667208560.676413][14293:14293] CHIP:DMG: Data = NULL - [1667208560.676494][14293:14293] CHIP:DMG: }, + [1686200885.068762][2221:2223] CHIP:DMG: ReportDataMessage = + [1686200885.068823][2221:2223] CHIP:DMG: { + [1686200885.068872][2221:2223] CHIP:DMG: AttributeReportIBs = + [1686200885.068944][2221:2223] CHIP:DMG: [ + [1686200885.069000][2221:2223] CHIP:DMG: AttributeReportIB = + [1686200885.069077][2221:2223] CHIP:DMG: { + [1686200885.069138][2221:2223] CHIP:DMG: AttributeDataIB = + [1686200885.069209][2221:2223] CHIP:DMG: { + [1686200885.069283][2221:2223] CHIP:DMG: DataVersion = 0xe8e1d5c0, + [1686200885.069354][2221:2223] CHIP:DMG: AttributePathIB = + [1686200885.069429][2221:2223] CHIP:DMG: { + [1686200885.069504][2221:2223] CHIP:DMG: Endpoint = 0x0, + [1686200885.069621][2221:2223] CHIP:DMG: Cluster = 0x31, + [1686200885.069710][2221:2223] CHIP:DMG: Attribute = 0x0000_0006, + [1686200885.069785][2221:2223] CHIP:DMG: } + [1686200885.069860][2221:2223] CHIP:DMG: + [1686200885.069933][2221:2223] CHIP:DMG: Data = [ + [1686200885.070011][2221:2223] CHIP:DMG: 0x47, 0x52, 0x4c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + [1686200885.070094][2221:2223] CHIP:DMG: ] (10 bytes) + [1686200885.070161][2221:2223] CHIP:DMG: }, + [1686200885.070236][2221:2223] CHIP:DMG: + [1686200885.070296][2221:2223] CHIP:DMG: }, + [1686200885.070369][2221:2223] CHIP:DMG: + [1686200885.070424][2221:2223] CHIP:DMG: ], + [1686200885.070494][2221:2223] CHIP:DMG: + [1686200885.070550][2221:2223] CHIP:DMG: SuppressResponse = true, + [1686200885.070608][2221:2223] CHIP:DMG: InteractionModelRevision = 1 + [1686200885.070662][2221:2223] CHIP:DMG: } disabled: true - - label: "DUT reads LastConnectErrorValue attribute from the TH" + - label: "Step 8: DUT reads LastConnectErrorValue attribute from the TH" PICS: CNET.C.A0007 verification: | - ./chip-tool networkcommissioning read last-connect-error-value 1 0 + ./chip-tool networkcommissioning read last-connect-error-value 1 0 --trace_decode 1 - Verify "LastConnectErrorValue response" on the TH(All-cluster-app) Log: + Verify LastConnectErrorValue attribute response on TH(all-clusters-app) log: [1667208660.521154][14293:14293] CHIP:EM: Handling via exchange: 50685r, Delegate: 0xaaaaaff382d8 [1667208660.521272][14293:14293] CHIP:IM: Received Read request [1667208660.521464][14293:14293] CHIP:DMG: ReadRequestMessage = [1667208660.521530][14293:14293] CHIP:DMG: { - [1667208660.521585][14293:14293] CHIP:DMG: AttributePathIBs = - [1667208660.521649][14293:14293] CHIP:DMG: [ - [1667208660.521732][14293:14293] CHIP:DMG: AttributePathIB = - [1667208660.521810][14293:14293] CHIP:DMG: { - [1667208660.521889][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208660.522001][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208660.522112][14293:14293] CHIP:DMG: Attribute = 0x0000_0007, - [1667208660.522195][14293:14293] CHIP:DMG: } + [1667208660.521585][14293:14293] CHIP:DMG: AttributePathIBs = + [1667208660.521649][14293:14293] CHIP:DMG: [ + [1667208660.521732][14293:14293] CHIP:DMG: AttributePathIB = + [1667208660.521810][14293:14293] CHIP:DMG: { + [1667208660.521889][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208660.522001][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208660.522112][14293:14293] CHIP:DMG: Attribute = 0x0000_0007, + [1667208660.522195][14293:14293] CHIP:DMG: } [1667208660.522294][14293:14293] CHIP:DMG: - [1667208660.522366][14293:14293] CHIP:DMG: ], + [1667208660.522366][14293:14293] CHIP:DMG: ], [1667208660.522437][14293:14293] CHIP:DMG: - [1667208660.522624][14293:14293] CHIP:DMG: isFabricFiltered = true, - [1667208660.522716][14293:14293] CHIP:DMG: InteractionModelRevision = 1 + [1667208660.522624][14293:14293] CHIP:DMG: isFabricFiltered = true, + [1667208660.522716][14293:14293] CHIP:DMG: InteractionModelRevision = 1 [1667208660.522777][14293:14293] CHIP:DMG: }, [1667208660.522959][14293:14293] CHIP:DMG: IM RH moving to [GeneratingReports] [1667208660.523199][14293:14293] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -655,21 +661,21 @@ tests: [1667208660.526357][14293:14293] CHIP:DMG: [1667208660.526570][14293:14293] CHIP:DMG: ReportDataMessage = [1667208660.526666][14293:14293] CHIP:DMG: { - [1667208660.526721][14293:14293] CHIP:DMG: AttributeReportIBs = - [1667208660.526820][14293:14293] CHIP:DMG: [ - [1667208660.526885][14293:14293] CHIP:DMG: AttributeReportIB = - [1667208660.526972][14293:14293] CHIP:DMG: { - [1667208660.527061][14293:14293] CHIP:DMG: AttributeDataIB = - [1667208660.527142][14293:14293] CHIP:DMG: { - [1667208660.527245][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, - [1667208660.527329][14293:14293] CHIP:DMG: AttributePathIB = - [1667208660.527432][14293:14293] CHIP:DMG: { - [1667208660.527527][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208660.527633][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208660.527733][14293:14293] CHIP:DMG: Attribute = 0x0000_0007, - [1667208660.527840][14293:14293] CHIP:DMG: } + [1667208660.526721][14293:14293] CHIP:DMG: AttributeReportIBs = + [1667208660.526820][14293:14293] CHIP:DMG: [ + [1667208660.526885][14293:14293] CHIP:DMG: AttributeReportIB = + [1667208660.526972][14293:14293] CHIP:DMG: { + [1667208660.527061][14293:14293] CHIP:DMG: AttributeDataIB = + [1667208660.527142][14293:14293] CHIP:DMG: { + [1667208660.527245][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, + [1667208660.527329][14293:14293] CHIP:DMG: AttributePathIB = + [1667208660.527432][14293:14293] CHIP:DMG: { + [1667208660.527527][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208660.527633][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208660.527733][14293:14293] CHIP:DMG: Attribute = 0x0000_0007, + [1667208660.527840][14293:14293] CHIP:DMG: } [1667208660.527951][14293:14293] CHIP:DMG: - [1667208660.528048][14293:14293] CHIP:DMG: Data = NULL - [1667208660.528152][14293:14293] CHIP:DMG: }, + [1667208660.528048][14293:14293] CHIP:DMG: Data = NULL + [1667208660.528152][14293:14293] CHIP:DMG: }, [1667208660.528240][14293:14293] CHIP:DMG: disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_18.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_18.yaml index d3635d4a8d6f31..22453236dde1be 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_18.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_18.yaml @@ -36,12 +36,12 @@ tests: disabled: true - - label: "DUT reads the MaxNetworks attribute from the TH" + - label: "Step 1: DUT reads the MaxNetworks attribute from the TH" PICS: CNET.C.A0000 verification: | ./chip-tool networkcommissioning read max-networks 54 0 - Verify "MaxNetworks response" on the TH(All-cluster-app) Log: + Verify MaxNetworks attribute response on TH(all-clusters-app) log: D: 7993601 [SC]Allocated SecureSession (0x20003680) - waiting for Sigma1 msg D: 7993608 [EM]Retransmitting MessageCounter:53368032 on exchange 5643r Send Cnt 1 @@ -57,12 +57,12 @@ tests: I: 7993688 [IN]Prepared secure message 0x200048b4 to 0x00000000000 disabled: true - - label: "DUT reads the Networks attribute from the TH" + - label: "Step 2: DUT reads the Networks attribute from the TH" PICS: CNET.C.A0001 verification: | ./chip-tool networkcommissioning read networks 54 0 - Verify "Networks response" on the TH(All-cluster-app) Log: + Verify Networks attribute response on TH(all-clusters-app) log: D: 8065181 [SC]Allocated SecureSession (0x20003738) - waiting for Sigma1 msg D: 8065188 [EM]Retransmitting MessageCounter:53368036 on exchange 57159r Send Cnt 1 @@ -77,12 +77,13 @@ tests: D: 8065265 [DMG] Sending report (payload has 77 bytes)... disabled: true - - label: "DUT reads ScanMaxTimeSeconds attribute from the TH" + - label: "Step 3: DUT reads ScanMaxTimeSeconds attribute from the TH" PICS: CNET.C.A0002 verification: | ./chip-tool networkcommissioning read scan-max-time-seconds 54 0 - Verify "ScanMaxTimeSeconds response" on the TH(All-cluster-app) Log: + Verify ScanMaxTimeSeconds attribute response on TH(all-clusters-app) log: + D: 8108702 [SC]Allocated SecureSession (0x200037f0) - waiting for Sigma1 msg I: 8108710 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:194637583 on exchar @@ -95,12 +96,12 @@ tests: D: 8108758 [DMG] Sending report (payload has 36 bytes)... disabled: true - - label: "DUT reads ConnectMaxTimeSeconds attribute from the TH" + - label: "Step 4: DUT reads ConnectMaxTimeSeconds attribute from the TH" PICS: CNET.C.A0003 verification: | ./chip-tool networkcommissioning read connect-max-time-seconds 54 0 - Verify "ConnectMaxTimeSeconds response" on the TH(All-cluster-app) Log: + Verify InterfaceEnabled attribute response on TH(all-clusters-app) log: D: 8145477 [SC]Allocated SecureSession (0x20002c70) - waiting for Sigma1 msg I: 8145484 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:134704639 on exchar @@ -113,12 +114,12 @@ tests: D: 8145534 [DMG] Sending report (payload has 36 bytes)... disabled: true - - label: "DUT reads InterfaceEnabled attribute from the TH" + - label: "Step 5: DUT reads InterfaceEnabled attribute from the TH" PICS: CNET.C.A0004 verification: | ./chip-tool networkcommissioning read interface-enabled 54 0 - Verify "InterfaceEnabled response" on the TH(All-cluster-app) Log: + Verify InterfaceEnabled attribute response on TH(all-clusters-app) log: D: 8179717 [SC]Allocated SecureSession (0x20002de0) - waiting for Sigma1 msg I: 8179725 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:158532673 on exchar @@ -131,13 +132,12 @@ tests: D: 8179775 [DMG] Sending report (payload has 35 bytes)... disabled: true - - label: "DUT reads LastNetworkingStatus attribute from the TH" + - label: "Step 6: DUT reads LastNetworkingStatus attribute from the TH" PICS: CNET.C.A0005 verification: | ./chip-tool networkcommissioning read last-networking-status 54 0 - - Verify "LastNetworkingStatus response" on the TH(All-cluster-app) Log: + Verify LastNetworkingStatus attribute response on TH(all-clusters-app) log: D: 8428403 [SC]Allocated SecureSession (0x20002d28) - waiting for Sigma1 msg I: 8428410 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:135181543 on exchar @@ -152,13 +152,12 @@ tests: D: 8428483 [DMG] Sending report (payload has 36 bytes)... disabled: true - - label: "DUT reads LastNetworkID attribute from the TH" + - label: "Step 7: DUT reads LastNetworkID attribute from the TH" PICS: CNET.C.A0006 verification: | ./chip-tool networkcommissioning read last-network-id 54 0 - - Verify "LastNetworkID response" on the TH(All-cluster-app) Log: + Verify LastNetworkID attribute response on TH(all-clusters-app) log: D: 8469179 [SC]Allocated SecureSession (0x20002e98) - waiting for Sigma1 msg I: 8469187 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:91003604 on exchanr @@ -173,13 +172,12 @@ tests: D: 8469258 [DMG] Sending report (payload has 44 bytes)... disabled: true - - label: "DUT reads LastConnectErrorValue attribute from the TH" + - label: "Step 8: DUT reads LastConnectErrorValue attribute from the TH" PICS: CNET.C.A0007 verification: | ./chip-tool networkcommissioning read last-connect-error-value 54 0 - - Verify "LastConnectErrorValue response" on the TH(All-cluster-app) Log: + Verify LastConnectErrorValue attribute response on TH(all-clusters-app) log: D: 8729020 [SC]Allocated SecureSession (0x20002f50) - waiting for Sigma1 msg I: 8729028 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:249692114 on exchar diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_19.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_19.yaml index c2f27a7da0bb41..fc77ec9f4b2e59 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_19.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_19.yaml @@ -36,12 +36,12 @@ tests: disabled: true - - label: "DUT reads the MaxNetworks attribute from the TH" + - label: "Step 1: DUT reads the MaxNetworks attribute from the TH" PICS: CNET.C.A0000 verification: | - ./chip-tool networkcommissioning read max-networks 1 0 + ./chip-tool networkcommissioning read max-networks 1 0 --trace_decode 1 - Verify "MaxNetworks attribute response" on the TH(All-cluster-app) Log: + Verify MaxNetworks attribute response on TH(all-clusters-app) log: [1667208272.085200][14293:14293] CHIP:EM: Handling via exchange: 31335r, Delegate: 0xaaaaaff382d8 [1667208272.085299][14293:14293] CHIP:IM: Received Read request @@ -113,12 +113,12 @@ tests: [1667208272.092558][14293:14293] CHIP:DMG: }, disabled: true - - label: "DUT reads the Networks attribute from the TH" + - label: "Step 2: DUT reads the Networks attribute from the TH" PICS: CNET.C.A0001 verification: | - ./chip-tool networkcommissioning read networks 1 0 + ./chip-tool networkcommissioning read networks 1 0 --trace_decode 1 - Verify "Networks response" on the TH(All-cluster-app) Log: + Verify Networks attribute response on TH(all-clusters-app) log: [1667208308.741069][14293:14293] CHIP:EM: Handling via exchange: 43353r, Delegate: 0xaaaaaff382d8 [1667208308.741175][14293:14293] CHIP:IM: Received Read request @@ -215,30 +215,30 @@ tests: [1667208308.753658][14293:14293] CHIP:DMG: disabled: true - - label: "DUT reads InterfaceEnabled attribute from the TH" + - label: "Step 3: DUT reads InterfaceEnabled attribute from the TH" PICS: CNET.C.A0004 verification: | - ./chip-tool networkcommissioning read interface-enabled 1 0 + ./chip-tool networkcommissioning read interface-enabled 1 0 --trace_decode 1 - Verify "InterfaceEnabled response" on the TH(All-cluster-app) Log: + Verify InterfaceEnabled attribute response on TH(all-clusters-app) log: [1667208443.008116][14293:14293] CHIP:EM: Handling via exchange: 58556r, Delegate: 0xaaaaaff382d8 [1667208443.008243][14293:14293] CHIP:IM: Received Read request [1667208443.008440][14293:14293] CHIP:DMG: ReadRequestMessage = [1667208443.008508][14293:14293] CHIP:DMG: { - [1667208443.008563][14293:14293] CHIP:DMG: AttributePathIBs = - [1667208443.008628][14293:14293] CHIP:DMG: [ - [1667208443.008713][14293:14293] CHIP:DMG: AttributePathIB = - [1667208443.008809][14293:14293] CHIP:DMG: { - [1667208443.008883][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208443.008967][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208443.009074][14293:14293] CHIP:DMG: Attribute = 0x0000_0004, - [1667208443.009158][14293:14293] CHIP:DMG: } + [1667208443.008563][14293:14293] CHIP:DMG: AttributePathIBs = + [1667208443.008628][14293:14293] CHIP:DMG: [ + [1667208443.008713][14293:14293] CHIP:DMG: AttributePathIB = + [1667208443.008809][14293:14293] CHIP:DMG: { + [1667208443.008883][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208443.008967][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208443.009074][14293:14293] CHIP:DMG: Attribute = 0x0000_0004, + [1667208443.009158][14293:14293] CHIP:DMG: } [1667208443.009256][14293:14293] CHIP:DMG: - [1667208443.009328][14293:14293] CHIP:DMG: ], + [1667208443.009328][14293:14293] CHIP:DMG: ], [1667208443.009421][14293:14293] CHIP:DMG: - [1667208443.009491][14293:14293] CHIP:DMG: isFabricFiltered = true, - [1667208443.009567][14293:14293] CHIP:DMG: InteractionModelRevision = 1 + [1667208443.009491][14293:14293] CHIP:DMG: isFabricFiltered = true, + [1667208443.009567][14293:14293] CHIP:DMG: InteractionModelRevision = 1 [1667208443.009650][14293:14293] CHIP:DMG: }, [1667208443.009833][14293:14293] CHIP:DMG: IM RH moving to [GeneratingReports] [1667208443.010086][14293:14293] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -272,48 +272,48 @@ tests: [1667208443.013517][14293:14293] CHIP:DMG: [1667208443.013685][14293:14293] CHIP:DMG: ReportDataMessage = [1667208443.013773][14293:14293] CHIP:DMG: { - [1667208443.013828][14293:14293] CHIP:DMG: AttributeReportIBs = - [1667208443.013928][14293:14293] CHIP:DMG: [ - [1667208443.013993][14293:14293] CHIP:DMG: AttributeReportIB = - [1667208443.014103][14293:14293] CHIP:DMG: { - [1667208443.014188][14293:14293] CHIP:DMG: AttributeDataIB = - [1667208443.014297][14293:14293] CHIP:DMG: { - [1667208443.014391][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, - [1667208443.014520][14293:14293] CHIP:DMG: AttributePathIB = - [1667208443.014612][14293:14293] CHIP:DMG: { - [1667208443.014723][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208443.014814][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208443.014930][14293:14293] CHIP:DMG: Attribute = 0x0000_0004, - [1667208443.015015][14293:14293] CHIP:DMG: } + [1667208443.013828][14293:14293] CHIP:DMG: AttributeReportIBs = + [1667208443.013928][14293:14293] CHIP:DMG: [ + [1667208443.013993][14293:14293] CHIP:DMG: AttributeReportIB = + [1667208443.014103][14293:14293] CHIP:DMG: { + [1667208443.014188][14293:14293] CHIP:DMG: AttributeDataIB = + [1667208443.014297][14293:14293] CHIP:DMG: { + [1667208443.014391][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, + [1667208443.014520][14293:14293] CHIP:DMG: AttributePathIB = + [1667208443.014612][14293:14293] CHIP:DMG: { + [1667208443.014723][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208443.014814][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208443.014930][14293:14293] CHIP:DMG: Attribute = 0x0000_0004, + [1667208443.015015][14293:14293] CHIP:DMG: } [1667208443.015134][14293:14293] CHIP:DMG: - [1667208443.015245][14293:14293] CHIP:DMG: Data = true, - [1667208443.015327][14293:14293] CHIP:DMG: }, + [1667208443.015245][14293:14293] CHIP:DMG: Data = true, + [1667208443.015327][14293:14293] CHIP:DMG: }, disabled: true - - label: "DUT reads LastNetworkingStatus attribute from the TH" + - label: "Step 4: DUT reads LastNetworkingStatus attribute from the TH" PICS: CNET.C.A0005 verification: | - ./chip-tool networkcommissioning read last-networking-status 1 0 + ./chip-tool networkcommissioning read last-networking-status 1 0 --trace_decode 1 - Verify "LastNetworkingStatus response" on the TH(All-cluster-app) Log: + Verify LastNetworkingStatus attribute response on TH(all-clusters-app) log: [1667208469.154755][14293:14293] CHIP:EM: Handling via exchange: 45977r, Delegate: 0xaaaaaff382d8 [1667208469.154875][14293:14293] CHIP:IM: Received Read request [1667208469.155241][14293:14293] CHIP:DMG: ReadRequestMessage = [1667208469.155315][14293:14293] CHIP:DMG: { - [1667208469.155395][14293:14293] CHIP:DMG: AttributePathIBs = - [1667208469.155461][14293:14293] CHIP:DMG: [ - [1667208469.155514][14293:14293] CHIP:DMG: AttributePathIB = - [1667208469.155586][14293:14293] CHIP:DMG: { - [1667208469.155664][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208469.155777][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208469.155868][14293:14293] CHIP:DMG: Attribute = 0x0000_0005, - [1667208469.155968][14293:14293] CHIP:DMG: } + [1667208469.155395][14293:14293] CHIP:DMG: AttributePathIBs = + [1667208469.155461][14293:14293] CHIP:DMG: [ + [1667208469.155514][14293:14293] CHIP:DMG: AttributePathIB = + [1667208469.155586][14293:14293] CHIP:DMG: { + [1667208469.155664][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208469.155777][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208469.155868][14293:14293] CHIP:DMG: Attribute = 0x0000_0005, + [1667208469.155968][14293:14293] CHIP:DMG: } [1667208469.156047][14293:14293] CHIP:DMG: - [1667208469.156136][14293:14293] CHIP:DMG: ], + [1667208469.156136][14293:14293] CHIP:DMG: ], [1667208469.156210][14293:14293] CHIP:DMG: - [1667208469.156277][14293:14293] CHIP:DMG: isFabricFiltered = true, - [1667208469.156361][14293:14293] CHIP:DMG: InteractionModelRevision = 1 + [1667208469.156277][14293:14293] CHIP:DMG: isFabricFiltered = true, + [1667208469.156361][14293:14293] CHIP:DMG: InteractionModelRevision = 1 [1667208469.156422][14293:14293] CHIP:DMG: }, [1667208469.156602][14293:14293] CHIP:DMG: IM RH moving to [GeneratingReports] [1667208469.156848][14293:14293] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -347,48 +347,48 @@ tests: [1667208469.160136][14293:14293] CHIP:DMG: [1667208469.160282][14293:14293] CHIP:DMG: ReportDataMessage = [1667208469.160369][14293:14293] CHIP:DMG: { - [1667208469.160423][14293:14293] CHIP:DMG: AttributeReportIBs = - [1667208469.160528][14293:14293] CHIP:DMG: [ - [1667208469.160593][14293:14293] CHIP:DMG: AttributeReportIB = - [1667208469.160702][14293:14293] CHIP:DMG: { - [1667208469.160785][14293:14293] CHIP:DMG: AttributeDataIB = - [1667208469.160900][14293:14293] CHIP:DMG: { - [1667208469.160994][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, - [1667208469.161104][14293:14293] CHIP:DMG: AttributePathIB = - [1667208469.161196][14293:14293] CHIP:DMG: { - [1667208469.161310][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208469.161424][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208469.161517][14293:14293] CHIP:DMG: Attribute = 0x0000_0005, - [1667208469.161634][14293:14293] CHIP:DMG: } + [1667208469.160423][14293:14293] CHIP:DMG: AttributeReportIBs = + [1667208469.160528][14293:14293] CHIP:DMG: [ + [1667208469.160593][14293:14293] CHIP:DMG: AttributeReportIB = + [1667208469.160702][14293:14293] CHIP:DMG: { + [1667208469.160785][14293:14293] CHIP:DMG: AttributeDataIB = + [1667208469.160900][14293:14293] CHIP:DMG: { + [1667208469.160994][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, + [1667208469.161104][14293:14293] CHIP:DMG: AttributePathIB = + [1667208469.161196][14293:14293] CHIP:DMG: { + [1667208469.161310][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208469.161424][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208469.161517][14293:14293] CHIP:DMG: Attribute = 0x0000_0005, + [1667208469.161634][14293:14293] CHIP:DMG: } [1667208469.161732][14293:14293] CHIP:DMG: - [1667208469.161834][14293:14293] CHIP:DMG: Data = NULL - [1667208469.161919][14293:14293] CHIP:DMG: }, + [1667208469.161834][14293:14293] CHIP:DMG: Data = NULL + [1667208469.161919][14293:14293] CHIP:DMG: }, disabled: true - - label: "DUT reads LastNetworkID attribute from the TH" + - label: "Step 5: DUT reads LastNetworkID attribute from the TH" PICS: CNET.C.A0006 verification: | - ./chip-tool networkcommissioning read last-network-id 1 0 + ./chip-tool networkcommissioning read last-network-id 1 0 --trace_decode 1 - Verify "LastNetworkID response" on the TH(All-cluster-app) Log: + Verify LastNetworkID attribute response from TH(all-clusters-app) log: [1667208560.669590][14293:14293] CHIP:EM: Handling via exchange: 8923r, Delegate: 0xaaaaaff382d8 [1667208560.669685][14293:14293] CHIP:IM: Received Read request [1667208560.669852][14293:14293] CHIP:DMG: ReadRequestMessage = [1667208560.669918][14293:14293] CHIP:DMG: { - [1667208560.669971][14293:14293] CHIP:DMG: AttributePathIBs = - [1667208560.670037][14293:14293] CHIP:DMG: [ - [1667208560.670098][14293:14293] CHIP:DMG: AttributePathIB = - [1667208560.670181][14293:14293] CHIP:DMG: { - [1667208560.670254][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208560.670337][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208560.670411][14293:14293] CHIP:DMG: Attribute = 0x0000_0006, - [1667208560.670531][14293:14293] CHIP:DMG: } + [1667208560.669971][14293:14293] CHIP:DMG: AttributePathIBs = + [1667208560.670037][14293:14293] CHIP:DMG: [ + [1667208560.670098][14293:14293] CHIP:DMG: AttributePathIB = + [1667208560.670181][14293:14293] CHIP:DMG: { + [1667208560.670254][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208560.670337][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208560.670411][14293:14293] CHIP:DMG: Attribute = 0x0000_0006, + [1667208560.670531][14293:14293] CHIP:DMG: } [1667208560.670600][14293:14293] CHIP:DMG: - [1667208560.670656][14293:14293] CHIP:DMG: ], + [1667208560.670656][14293:14293] CHIP:DMG: ], [1667208560.670717][14293:14293] CHIP:DMG: - [1667208560.670813][14293:14293] CHIP:DMG: isFabricFiltered = true, - [1667208560.670879][14293:14293] CHIP:DMG: InteractionModelRevision = 1 + [1667208560.670813][14293:14293] CHIP:DMG: isFabricFiltered = true, + [1667208560.670879][14293:14293] CHIP:DMG: InteractionModelRevision = 1 [1667208560.670938][14293:14293] CHIP:DMG: }, [1667208560.671124][14293:14293] CHIP:DMG: IM RH moving to [GeneratingReports] [1667208560.671497][14293:14293] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 @@ -422,30 +422,30 @@ tests: [1667208560.674730][14293:14293] CHIP:DMG: [1667208560.674900][14293:14293] CHIP:DMG: ReportDataMessage = [1667208560.674967][14293:14293] CHIP:DMG: { - [1667208560.675021][14293:14293] CHIP:DMG: AttributeReportIBs = - [1667208560.675129][14293:14293] CHIP:DMG: [ - [1667208560.675193][14293:14293] CHIP:DMG: AttributeReportIB = - [1667208560.675302][14293:14293] CHIP:DMG: { - [1667208560.675383][14293:14293] CHIP:DMG: AttributeDataIB = - [1667208560.675488][14293:14293] CHIP:DMG: { - [1667208560.675595][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, - [1667208560.675681][14293:14293] CHIP:DMG: AttributePathIB = - [1667208560.675788][14293:14293] CHIP:DMG: { - [1667208560.675884][14293:14293] CHIP:DMG: Endpoint = 0x0, - [1667208560.676000][14293:14293] CHIP:DMG: Cluster = 0x31, - [1667208560.676102][14293:14293] CHIP:DMG: Attribute = 0x0000_0006, - [1667208560.676211][14293:14293] CHIP:DMG: } + [1667208560.675021][14293:14293] CHIP:DMG: AttributeReportIBs = + [1667208560.675129][14293:14293] CHIP:DMG: [ + [1667208560.675193][14293:14293] CHIP:DMG: AttributeReportIB = + [1667208560.675302][14293:14293] CHIP:DMG: { + [1667208560.675383][14293:14293] CHIP:DMG: AttributeDataIB = + [1667208560.675488][14293:14293] CHIP:DMG: { + [1667208560.675595][14293:14293] CHIP:DMG: DataVersion = 0x84a0a683, + [1667208560.675681][14293:14293] CHIP:DMG: AttributePathIB = + [1667208560.675788][14293:14293] CHIP:DMG: { + [1667208560.675884][14293:14293] CHIP:DMG: Endpoint = 0x0, + [1667208560.676000][14293:14293] CHIP:DMG: Cluster = 0x31, + [1667208560.676102][14293:14293] CHIP:DMG: Attribute = 0x0000_0006, + [1667208560.676211][14293:14293] CHIP:DMG: } [1667208560.676303][14293:14293] CHIP:DMG: - [1667208560.676413][14293:14293] CHIP:DMG: Data = NULL - [1667208560.676494][14293:14293] CHIP:DMG: }, + [1667208560.676413][14293:14293] CHIP:DMG: Data = NULL + [1667208560.676494][14293:14293] CHIP:DMG: }, disabled: true - - label: "DUT reads LastConnectErrorValue attribute from the TH" + - label: "Step 6: DUT reads LastConnectErrorValue attribute from the TH" PICS: CNET.C.A0007 verification: | - ./chip-tool networkcommissioning read last-connect-error-value 1 0 + ./chip-tool networkcommissioning read last-connect-error-value 1 0 --trace_decode 1 - Verify "LastConnectErrorValue response" on the TH(All-cluster-app) Log: + Verify LastConnectErrorValue attribute response from on TH(all-clusters-app) log: [1667208660.521154][14293:14293] CHIP:EM: Handling via exchange: 50685r, Delegate: 0xaaaaaff382d8 [1667208660.521272][14293:14293] CHIP:IM: Received Read request diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml index 09671ee034175e..c0b1f8c1426294 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_2.yaml @@ -26,58 +26,62 @@ config: endpoint: 0 tests: - - label: "Factory reset the DUT" + - label: "Step 1: Factory reset the DUT" verification: | disabled: true - - label: "Commmission TH and DUT on Thread setup" + - label: "Step 2: Commission TH and DUT on Thread network" verification: | disabled: true - label: - "TH reads Descriptor Cluster from the DUT with EP0 TH reads ServerList - from the DUT" + "Step 3: TH reads Descriptor Cluster from the DUT with EP0 TH reads + ServerList from the DUT" verification: | ./chip-tool descriptor read server-list 54 0 - Verify the "ServerList has valu 49" in the TH(Chip-tool) Log: - - [1645772414.100694][3827:3832] CHIP:DMG: SuppressResponse = true, - [1645772414.100718][3827:3832] CHIP:DMG: InteractionModelRevision = 1 - [1645772414.100740][3827:3832] CHIP:DMG: } - [1645772414.102134][3827:3832] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001DataVersion: 3883095917 - [1645772414.102248][3827:3832] CHIP:TOO: server list: 21 entries - [1645772414.102291][3827:3832] CHIP:TOO: [1]: 4 - [1645772414.102317][3827:3832] CHIP:TOO: [2]: 29 - [1645772414.102341][3827:3832] CHIP:TOO: [3]: 31 - [1645772414.102366][3827:3832] CHIP:TOO: [4]: 40 - [1645772414.102389][3827:3832] CHIP:TOO: [5]: 42 - [1645772414.102413][3827:3832] CHIP:TOO: [6]: 43 - [1645772414.102436][3827:3832] CHIP:TOO: [7]: 44 - [1645772414.102459][3827:3832] CHIP:TOO: [8]: 48 - [1645772414.102482][3827:3832] CHIP:TOO: [9]: 49 - [1645772414.102506][3827:3832] CHIP:TOO: [10]: 50 - [1645772414.102529][3827:3832] CHIP:TOO: [11]: 51 - [1645772414.102552][3827:3832] CHIP:TOO: [12]: 52 - [1645772414.102575][3827:3832] CHIP:TOO: [13]: 53 - [1645772414.102598][3827:3832] CHIP:TOO: [14]: 54 - [1645772414.102622][3827:3832] CHIP:TOO: [15]: 55 - [1645772414.102645][3827:3832] CHIP:TOO: [16]: 59 - [1645772414.102669][3827:3832] CHIP:TOO: [17]: 60 - [1645772414.102692][3827:3832] CHIP:TOO: [18]: 62 - [1645772414.102715][3827:3832] CHIP:TOO: [19]: 63 - [1645772414.102738][3827:3832] CHIP:TOO: [20]: 64 - [1645772414.102761][3827:3832] CHIP:TOO: [21]: 65 - [1645772414.102925][3827:3832] CHIP:EM: Sending Standalone Ack for MessageCounter:15329672 on exchange 6140i + Via the TH (chip-tool), verify that the server list has value as 49. + + [1686293236.629388][3601:3603] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 3777417155 + [1686293236.629594][3601:3603] CHIP:TOO: ServerList: 28 entries + [1686293236.629688][3601:3603] CHIP:TOO: [1]: 3 + [1686293236.629749][3601:3603] CHIP:TOO: [2]: 4 + [1686293236.629807][3601:3603] CHIP:TOO: [3]: 29 + [1686293236.629876][3601:3603] CHIP:TOO: [4]: 30 + [1686293236.629935][3601:3603] CHIP:TOO: [5]: 31 + [1686293236.629991][3601:3603] CHIP:TOO: [6]: 40 + [1686293236.630048][3601:3603] CHIP:TOO: [7]: 42 + [1686293236.630106][3601:3603] CHIP:TOO: [8]: 43 + [1686293236.630190][3601:3603] CHIP:TOO: [9]: 44 + [1686293236.630253][3601:3603] CHIP:TOO: [10]: 45 + [1686293236.630311][3601:3603] CHIP:TOO: [11]: 46 + [1686293236.630367][3601:3603] CHIP:TOO: [12]: 47 + [1686293236.630424][3601:3603] CHIP:TOO: [13]: 48 + [1686293236.630481][3601:3603] CHIP:TOO: [14]: 49 + [1686293236.630538][3601:3603] CHIP:TOO: [15]: 50 + [1686293236.630604][3601:3603] CHIP:TOO: [16]: 51 + [1686293236.630662][3601:3603] CHIP:TOO: [17]: 52 + [1686293236.630718][3601:3603] CHIP:TOO: [18]: 53 + [1686293236.630775][3601:3603] CHIP:TOO: [19]: 54 + [1686293236.630831][3601:3603] CHIP:TOO: [20]: 55 + [1686293236.630888][3601:3603] CHIP:TOO: [21]: 60 + [1686293236.630944][3601:3603] CHIP:TOO: [22]: 62 + [1686293236.631002][3601:3603] CHIP:TOO: [23]: 63 + [1686293236.631058][3601:3603] CHIP:TOO: [24]: 64 + [1686293236.631114][3601:3603] CHIP:TOO: [25]: 65 + [1686293236.631171][3601:3603] CHIP:TOO: [26]: 70 + [1686293236.631227][3601:3603] CHIP:TOO: [27]: 1029 + [1686293236.631285][3601:3603] CHIP:TOO: [28]: 4294048774 + [1686293236.631613][3601:3603] CHIP:EM: <<< [E:2627i S:46052 M:27080745 (Ack:161764674)] (S) Msg TX to 1:0000000000000037 [8709] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - - label: "TH reads FeatureMap attribute from the DUT" + - label: "Step 4: TH reads FeatureMap attribute from the DUT" verification: | ./chip-tool networkcommissioning read feature-map 54 0 - Verify the "FeatureMap: 2" in the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that FeatureMap attribute value as 2 for Thread NetworkInterface. [1645772204.502545][3809:3814] CHIP:DMG: SuppressResponse = true, [1645772204.502608][3809:3814] CHIP:DMG: InteractionModelRevision = 1 @@ -87,12 +91,12 @@ tests: [1645772204.503556][3809:3814] CHIP:EM: Sending Standalone Ack for MessageCounter:5988746 on exchange 46140i disabled: true - - label: "TH reads the MaxNetworks attribute from the DUT" + - label: "Step 5: TH reads the MaxNetworks attribute from the DUT" PICS: CNET.S.A0000 verification: | ./chip-tool networkcommissioning read max-networks 54 0 - Verify "MaxNetworks" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the MaxNetworks attribute that contains value in the range of 1 to 255. [1645772548.257320][3837:3842] CHIP:DMG: SuppressResponse = true, [1645772548.257381][3837:3842] CHIP:DMG: InteractionModelRevision = 1 @@ -103,18 +107,20 @@ tests: disabled: true - label: - "TH saves the MaxNetworks attribute value as MaxNetworksValue for - future use" + "Step 6: TH saves the MaxNetworks attribute value as + 'MaxNetworksValue' for future use" verification: | TH1 saves the MaxNetworks attribute value disabled: true - - label: "TH reads the Networks attribute list from the DUT" + - label: "Step 7: TH reads the Networks attribute list from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 54 0 - Verify "Networks entries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that should be type of octstr with a length range 1 to 32. + -that the connected status is in the type of bool value as TRUE. [1645772651.445097][3856:3861] CHIP:DMG: SuppressResponse = true, [1645772651.445149][3856:3861] CHIP:DMG: InteractionModelRevision = 1 @@ -128,12 +134,12 @@ tests: [1645772651.446431][3856:3861] CHIP:EM: Sending Standalone Ack for MessageCounter:12695576 on exchange 11133i disabled: true - - label: "TH reads ScanMaxTimeSeconds attribute from the DUT" + - label: "Step 8: TH reads ScanMaxTimeSeconds attribute from the DUT" PICS: CNET.S.A0002 verification: | ./chip-tool networkcommissioning read scan-max-time-seconds 54 0 - Verify "ScanMaxTimeSeconds" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the ScanMaxTimeSeconds attribute that contains value in the range of 1 to 255 secs. [1645772820.740795][3867:3872] CHIP:DMG: SuppressResponse = true, [1645772820.740855][3867:3872] CHIP:DMG: InteractionModelRevision = 1 @@ -143,12 +149,12 @@ tests: [1645772820.741512][3867:3872] CHIP:EM: Sending Standalone Ack for MessageCounter:10309775 on exchange 55305i disabled: true - - label: "TH reads ConnectMaxTimeSeconds Attribute from the DUT" + - label: "Step 9: TH reads ConnectMaxTimeSeconds Attribute from the DUT" PICS: CNET.S.A0003 verification: | ./chip-tool networkcommissioning read connect-max-time-seconds 54 0 - Verify "ConnectMaxTimeSeconds" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the ConnectMaxTimeSeconds attribute that contains value in the range of 1 to 255 secs. [1645772901.118880][3879:3884] CHIP:DMG: SuppressResponse = true, [1645772901.119008][3879:3884] CHIP:DMG: InteractionModelRevision = 1 @@ -158,12 +164,12 @@ tests: [1645772901.120100][3879:3884] CHIP:EM: Sending Standalone Ack for MessageCounter:11917538 on exchange 4188 disabled: true - - label: "TH reads InterfaceEnabled attribute from the DUT" + - label: "Step 10: TH reads InterfaceEnabled attribute from the DUT" PICS: CNET.S.A0004 verification: | ./chip-tool networkcommissioning read interface-enabled 54 0 - Verify "InterfaceEnabled" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the InterfaceEnabled attribute that contains bool value as True. [1645772984.653996][3895:3900] CHIP:DMG: SuppressResponse = true, [1645772984.654043][3895:3900] CHIP:DMG: InteractionModelRevision = 1 @@ -173,13 +179,12 @@ tests: [1645772984.654530][3895:3900] CHIP:EM: Sending Standalone Ack for MessageCounter:14026610 on exchange 33717i disabled: true - - label: "TH reads LastNetworkingStatus attribute from the DUT" + - label: "Step 11: TH reads LastNetworkingStatus attribute from the DUT" PICS: CNET.S.A0005 verification: | ./chip-tool networkcommissioning read last-networking-status 54 0 - - Verify "LastNetworkingStatus" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the LastNetworkingStatus attribute that contains value as 0 that mentions success. [1645773078.930516][3905:3910] CHIP:DMG: SuppressResponse = true, [1645773078.930579][3905:3910] CHIP:DMG: InteractionModelRevision = 1 @@ -190,14 +195,15 @@ tests: disabled: true - label: - "TH reads the LastNetworkID attribute from the DUT TH reads the - Networks attribute from the DUT" + "Step 12: TH reads the LastNetworkID attribute from the DUT TH reads + the Networks attribute from the DUT" PICS: CNET.S.A0006 verification: | ./chip-tool networkcommissioning read last-network-id 54 0 - - Verify "LastNetworkID" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -that the LastNetworkID attribute that contains NetworkID that should be type of octstr with a length range 1 to 32. + -if the Networks attribute list is Empty, then LastNetworkID attribute value is null. [1645773167.178501][3913:3918] CHIP:DMG: SuppressResponse = true, [1645773167.178561][3913:3918] CHIP:DMG: InteractionModelRevision = 1 @@ -207,12 +213,13 @@ tests: [1645773167.182422][3913:3918] CHIP:EM: Sending Standalone Ack for MessageCounter:2029571 on exchange 18566i disabled: true - - label: "TH reads the LastConnectErrorValue attribute from the DUT" + - label: + "Step 13: TH reads the LastConnectErrorValue attribute from the DUT" PICS: CNET.S.A0007 verification: | ./chip-tool networkcommissioning read last-connect-error-value 54 0 - Verify "LastConnectErrorValue" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the LastConnectErrorValue attribute that contains value as null. [1645773318.752774][3938:3943] CHIP:DMG: SuppressResponse = true, [1645773318.752861][3938:3943] CHIP:DMG: InteractionModelRevision = 1 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml index 40282f1c2805ed..fdf638a8642b67 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.4.18. [TC-CNET-4.20] [Wi-Fi] Verification for commands check [DUT-Client] + 12.4.18. [TC-CNET-4.20] [WiFi] Verification for commands check [DUT-Client] PICS: - CNET.C.F00 @@ -35,36 +35,82 @@ tests: disabled: true - - label: "DUT sends the ScanNetwork command to the TH" + - label: "Step 1: DUT sends the ScanNetwork command to the TH" PICS: CNET.C.C00.Tx verification: | ./chip-tool networkcommissioning scan-networks 1 0 --Ssid null --Breadcrumb 1 - Verify "ScanNetworksResponse status" on the TH(all-cluster-app) Log: - - [1659616712.104331][8402:8402] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a - [1659616712.104371][8402:8402] CHIP:DMG: AccessControl: allowed - [1659616712.104399][8402:8402] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0000 - [1659616712.104439][8402:8402] CHIP:EM: Sending Standalone Ack for MessageCounter:229325863 on exchange 34793r + Verify TH receives ScanNetwork command response on TH(all-clusters-app) log: + + [1686201126.444991][2224:2224] CHIP:DMG: InvokeRequestMessage = + [1686201126.445054][2224:2224] CHIP:DMG: { + [1686201126.445106][2224:2224] CHIP:DMG: suppressResponse = false, + [1686201126.445170][2224:2224] CHIP:DMG: timedRequest = false, + [1686201126.445228][2224:2224] CHIP:DMG: InvokeRequests = + [1686201126.445304][2224:2224] CHIP:DMG: [ + [1686201126.445362][2224:2224] CHIP:DMG: CommandDataIB = + [1686201126.445438][2224:2224] CHIP:DMG: { + [1686201126.445498][2224:2224] CHIP:DMG: CommandPathIB = + [1686201126.445571][2224:2224] CHIP:DMG: { + [1686201126.445644][2224:2224] CHIP:DMG: EndpointId = 0x0, + [1686201126.445722][2224:2224] CHIP:DMG: ClusterId = 0x31, + [1686201126.445797][2224:2224] CHIP:DMG: CommandId = 0x0, + [1686201126.445868][2224:2224] CHIP:DMG: }, + [1686201126.445941][2224:2224] CHIP:DMG: + [1686201126.446055][2224:2224] CHIP:DMG: CommandFields = + [1686201126.446132][2224:2224] CHIP:DMG: { + [1686201126.446206][2224:2224] CHIP:DMG: 0x0 = NULL + [1686201126.446284][2224:2224] CHIP:DMG: 0x1 = 1, + [1686201126.446359][2224:2224] CHIP:DMG: }, + [1686201126.446425][2224:2224] CHIP:DMG: }, + [1686201126.446497][2224:2224] CHIP:DMG: + [1686201126.446552][2224:2224] CHIP:DMG: ], + [1686201126.446624][2224:2224] CHIP:DMG: + [1686201126.446680][2224:2224] CHIP:DMG: InteractionModelRevision = 1 + [1686201126.446734][2224:2224] CHIP:DMG: }, + [1686201126.446888][2224:2224] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a + [1686201126.446969][2224:2224] CHIP:DMG: AccessControl: allowed + [1686201126.447036][2224:2224] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0000 disabled: true - - label: "DUT sends the ArmFailSafe command to the TH" + - label: "Step 2: DUT sends the ArmFailSafe command to the TH" verification: | ./chip-tool generalcommissioning arm-fail-safe 60 0 1 0 - Verify "ArmFailSafeResponse" on the TH(All-cluster-app) Log: - - [1659616767.476289][8402:8402] CHIP:DMG: InteractionModelRevision = 1 - [1659616767.476315][8402:8402] CHIP:DMG: }, - [1659616767.476389][8402:8402] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0030 e=0 p=a - [1659616767.476429][8402:8402] CHIP:DMG: AccessControl: allowed - [1659616767.476461][8402:8402] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0000 - [1659616767.476498][8402:8402] CHIP:FS: GeneralCommissioning: Received ArmFailSafe (60s) - [1659616767.476543][8402:8402] CHIP:DMG: Endpoint 0, Cluster 0x0000_0030 update version to 2dd33a83 - [1659616767.476587][8402:8402] CHIP:DMG: ICR moving to [ Preparing] + Verify TH receives ArmFailSafeResponse command response on TH(all-clusters-app) log: + + [1686202047.033792][2224:2224] CHIP:DMG: InvokeRequestMessage = + [1686202047.033855][2224:2224] CHIP:DMG: { + [1686202047.033909][2224:2224] CHIP:DMG: suppressResponse = false, + [1686202047.034035][2224:2224] CHIP:DMG: timedRequest = false, + [1686202047.034100][2224:2224] CHIP:DMG: InvokeRequests = + [1686202047.034176][2224:2224] CHIP:DMG: [ + [1686202047.034233][2224:2224] CHIP:DMG: CommandDataIB = + [1686202047.034298][2224:2224] CHIP:DMG: { + [1686202047.034359][2224:2224] CHIP:DMG: CommandPathIB = + [1686202047.034430][2224:2224] CHIP:DMG: { + [1686202047.034503][2224:2224] CHIP:DMG: EndpointId = 0x0, + [1686202047.034579][2224:2224] CHIP:DMG: ClusterId = 0x31, + [1686202047.034654][2224:2224] CHIP:DMG: CommandId = 0x0, + [1686202047.034724][2224:2224] CHIP:DMG: }, + [1686202047.034798][2224:2224] CHIP:DMG: + [1686202047.034863][2224:2224] CHIP:DMG: CommandFields = + [1686202047.034936][2224:2224] CHIP:DMG: { + [1686202047.035009][2224:2224] CHIP:DMG: 0x0 = NULL + [1686202047.035087][2224:2224] CHIP:DMG: 0x1 = 1, + [1686202047.035162][2224:2224] CHIP:DMG: }, + [1686202047.035228][2224:2224] CHIP:DMG: }, + [1686202047.035300][2224:2224] CHIP:DMG: + [1686202047.035356][2224:2224] CHIP:DMG: ], + [1686202047.035425][2224:2224] CHIP:DMG: + [1686202047.035480][2224:2224] CHIP:DMG: InteractionModelRevision = 1 + [1686202047.035535][2224:2224] CHIP:DMG: }, + [1686202047.035691][2224:2224] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a + [1686202047.035773][2224:2224] CHIP:DMG: AccessControl: allowed + [1686202047.035839][2224:2224] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0000 disabled: true - - label: "DUT sends the AddOrUpdateWiFiNetwork command to the TH" + - label: "Step 3: DUT sends the AddOrUpdateWiFiNetwork command to the TH" PICS: CNET.C.C02.Tx verification: | ./chip-tool networkcommissioning add-or-update-wi-fi-network-network hex: 1 0 @@ -73,18 +119,44 @@ tests: ./chip-tool networkcommissioning add-or-update-wi-fi-network hex:47524C50726976617465 grlprivatewifi092010 1 0 - Verify "AddOrUpdateWiFiNetwork Response" on the TH(All-cluster-app) Log: - - [1659616812.403722][8402:8402] CHIP:DMG: - [1659616812.403755][8402:8402] CHIP:DMG: InteractionModelRevision = 1 - [1659616812.403786][8402:8402] CHIP:DMG: }, - [1659616812.403872][8402:8402] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a - [1659616812.403920][8402:8402] CHIP:DMG: AccessControl: allowed - [1659616812.403957][8402:8402] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0002 - [1659616812.404024][8402:8402] CHIP:DMG: ICR moving to [ Preparing] + Verify TH receives AddOrUpdateWiFiNetwork command response on TH(all-clusters-app) log: + + [1686202105.669753][2224:2224] CHIP:DMG: InvokeRequestMessage = + [1686202105.669814][2224:2224] CHIP:DMG: { + [1686202105.669867][2224:2224] CHIP:DMG: suppressResponse = false, + [1686202105.669930][2224:2224] CHIP:DMG: timedRequest = false, + [1686202105.670062][2224:2224] CHIP:DMG: InvokeRequests = + [1686202105.670142][2224:2224] CHIP:DMG: [ + [1686202105.670199][2224:2224] CHIP:DMG: CommandDataIB = + [1686202105.670276][2224:2224] CHIP:DMG: { + [1686202105.670339][2224:2224] CHIP:DMG: CommandPathIB = + [1686202105.670411][2224:2224] CHIP:DMG: { + [1686202105.670484][2224:2224] CHIP:DMG: EndpointId = 0x0, + [1686202105.670560][2224:2224] CHIP:DMG: ClusterId = 0x31, + [1686202105.670635][2224:2224] CHIP:DMG: CommandId = 0x2, + [1686202105.670706][2224:2224] CHIP:DMG: }, + [1686202105.670781][2224:2224] CHIP:DMG: + [1686202105.670842][2224:2224] CHIP:DMG: CommandFields = + [1686202105.670911][2224:2224] CHIP:DMG: { + [1686202105.670982][2224:2224] CHIP:DMG: 0x0 = [ + [1686202105.671064][2224:2224] CHIP:DMG: 0x47, 0x52, 0x4c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + [1686202105.671150][2224:2224] CHIP:DMG: ] (10 bytes) + [1686202105.671222][2224:2224] CHIP:DMG: 0x1 = [ + [1686202105.671309][2224:2224] CHIP:DMG: 0x67, 0x72, 0x6c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x77, 0x69, 0x66, 0x69, 0x30, 0x39, 0x32, 0x30, 0x31, 0x30, + [1686202105.671401][2224:2224] CHIP:DMG: ] (20 bytes) + [1686202105.671475][2224:2224] CHIP:DMG: }, + [1686202105.671542][2224:2224] CHIP:DMG: }, + [1686202105.671613][2224:2224] CHIP:DMG: + [1686202105.671668][2224:2224] CHIP:DMG: ], + [1686202105.671740][2224:2224] CHIP:DMG: + [1686202105.671796][2224:2224] CHIP:DMG: InteractionModelRevision = 1 + [1686202105.671850][2224:2224] CHIP:DMG: }, + [1686202105.672010][2224:2224] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a + [1686202105.672093][2224:2224] CHIP:DMG: AccessControl: allowed + [1686202105.672157][2224:2224] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0002 disabled: true - - label: "DUT sends the ConnectNetwork command to the TH" + - label: "Step 4: DUT sends the ConnectNetwork command to the TH" PICS: CNET.C.C06.Tx verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -93,18 +165,41 @@ tests: ./chip-tool networkcommissioning connect-network hex:47524C50726976617465 1 0 - Verify "ConnectNetworkResponse" on the TH(All-cluster-app) Log: - - [1659616840.500694][8402:8402] CHIP:DMG: InteractionModelRevision = 1 - [1659616840.500733][8402:8402] CHIP:DMG: }, - [1659616840.500833][8402:8402] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a - [1659616840.500889][8402:8402] CHIP:DMG: AccessControl: allowed - [1659616840.500932][8402:8402] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0006 - [1659616840.501003][8402:8402] CHIP:DMG: ICR moving to [ Preparing] - [1659616840.501053][8402:8402] CHIP:DMG: ICR moving to [AddingComm] + Verify TH receives ConnectNetwork command received response on TH(all-clusters-app) log: + + [1686202171.966551][2224:2224] CHIP:DMG: InvokeRequestMessage = + [1686202171.966612][2224:2224] CHIP:DMG: { + [1686202171.966664][2224:2224] CHIP:DMG: suppressResponse = false, + [1686202171.966727][2224:2224] CHIP:DMG: timedRequest = false, + [1686202171.966814][2224:2224] CHIP:DMG: InvokeRequests = + [1686202171.966890][2224:2224] CHIP:DMG: [ + [1686202171.966969][2224:2224] CHIP:DMG: CommandDataIB = + [1686202171.967037][2224:2224] CHIP:DMG: { + [1686202171.967098][2224:2224] CHIP:DMG: CommandPathIB = + [1686202171.967210][2224:2224] CHIP:DMG: { + [1686202171.967283][2224:2224] CHIP:DMG: EndpointId = 0x0, + [1686202171.967389][2224:2224] CHIP:DMG: ClusterId = 0x31, + [1686202171.967465][2224:2224] CHIP:DMG: CommandId = 0x6, + [1686202171.967564][2224:2224] CHIP:DMG: }, + [1686202171.967639][2224:2224] CHIP:DMG: + [1686202171.967727][2224:2224] CHIP:DMG: CommandFields = + [1686202171.967799][2224:2224] CHIP:DMG: { + [1686202171.967869][2224:2224] CHIP:DMG: 0x0 = [ + [1686202171.967948][2224:2224] CHIP:DMG: 0x47, 0x52, 0x4c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + [1686202171.968055][2224:2224] CHIP:DMG: ] (10 bytes) + [1686202171.968134][2224:2224] CHIP:DMG: }, + [1686202171.968199][2224:2224] CHIP:DMG: }, + [1686202171.968293][2224:2224] CHIP:DMG: + [1686202171.968349][2224:2224] CHIP:DMG: ], + [1686202171.968444][2224:2224] CHIP:DMG: + [1686202171.968500][2224:2224] CHIP:DMG: InteractionModelRevision = 1 + [1686202171.968554][2224:2224] CHIP:DMG: }, + [1686202171.968732][2224:2224] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a + [1686202171.968838][2224:2224] CHIP:DMG: AccessControl: allowed + [1686202171.968906][2224:2224] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0006 disabled: true - - label: "DUT sends the ReorderNetwork command to the TH" + - label: "Step 5: DUT sends the ReorderNetwork command to the TH" PICS: CNET.C.C08.Tx verification: | ./chip-tool networkcommissioning reorder-network hex: 1 0 @@ -113,18 +208,42 @@ tests: ./chip-tool networkcommissioning reorder-network hex:47524C50726976617465 3 1 0 - Verify "ReorderNetworkResponse" on the TH(All-cluster-app) Log: - - [1659617048.989226][8402:8402] CHIP:DMG: InteractionModelRevision = 1 - [1659617048.989284][8402:8402] CHIP:DMG: }, - [1659617048.989447][8402:8402] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a - [1659617048.989554][8402:8402] CHIP:DMG: AccessControl: allowed - [1659617048.989622][8402:8402] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0008 - [1659617048.989747][8402:8402] CHIP:DMG: ICR moving to [ Preparing] - [1659617048.989822][8402:8402] CHIP:DMG: ICR moving to [AddingComm] + Verify TH receives ReorderNetwork command received response on TH(all-clusters-app) log: + + [1686202203.173116][2224:2224] CHIP:DMG: InvokeRequestMessage = + [1686202203.173183][2224:2224] CHIP:DMG: { + [1686202203.173242][2224:2224] CHIP:DMG: suppressResponse = false, + [1686202203.173304][2224:2224] CHIP:DMG: timedRequest = false, + [1686202203.173361][2224:2224] CHIP:DMG: InvokeRequests = + [1686202203.173435][2224:2224] CHIP:DMG: [ + [1686202203.173492][2224:2224] CHIP:DMG: CommandDataIB = + [1686202203.173556][2224:2224] CHIP:DMG: { + [1686202203.173616][2224:2224] CHIP:DMG: CommandPathIB = + [1686202203.173692][2224:2224] CHIP:DMG: { + [1686202203.173765][2224:2224] CHIP:DMG: EndpointId = 0x0, + [1686202203.173842][2224:2224] CHIP:DMG: ClusterId = 0x31, + [1686202203.173912][2224:2224] CHIP:DMG: CommandId = 0x8, + [1686202203.174101][2224:2224] CHIP:DMG: }, + [1686202203.174180][2224:2224] CHIP:DMG: + [1686202203.174243][2224:2224] CHIP:DMG: CommandFields = + [1686202203.174309][2224:2224] CHIP:DMG: { + [1686202203.174381][2224:2224] CHIP:DMG: 0x0 = [ + [1686202203.174460][2224:2224] CHIP:DMG: 0x47, 0x52, 0x4c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + [1686202203.174544][2224:2224] CHIP:DMG: ] (10 bytes) + [1686202203.174622][2224:2224] CHIP:DMG: 0x1 = 3, + [1686202203.174692][2224:2224] CHIP:DMG: }, + [1686202203.174758][2224:2224] CHIP:DMG: }, + [1686202203.174830][2224:2224] CHIP:DMG: + [1686202203.174885][2224:2224] CHIP:DMG: ], + [1686202203.174959][2224:2224] CHIP:DMG: + [1686202203.175014][2224:2224] CHIP:DMG: InteractionModelRevision = 1 + [1686202203.175068][2224:2224] CHIP:DMG: }, + [1686202203.175217][2224:2224] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a + [1686202203.175295][2224:2224] CHIP:DMG: AccessControl: allowed + [1686202203.175359][2224:2224] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0008 disabled: true - - label: "DUT sends the RemoveNetwork command to the TH" + - label: "Step 6: DUT sends the RemoveNetwork command to the TH" PICS: CNET.C.C04.Tx verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 @@ -133,14 +252,36 @@ tests: ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 - Verify "RemoveNetworkResponse" on the TH(All-cluster-app) Log: - - [1659617136.123532][8402:8402] CHIP:DMG: - [1659617136.123555][8402:8402] CHIP:DMG: InteractionModelRevision = 1 - [1659617136.123578][8402:8402] CHIP:DMG: }, - [1659617136.123645][8402:8402] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a - [1659617136.123682][8402:8402] CHIP:DMG: AccessControl: allowed - [1659617136.123709][8402:8402] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0004 - [1659617136.123758][8402:8402] CHIP:DMG: ICR moving to [ Preparing] - [1659617136.123789][8402:8402] CHIP:DMG: ICR moving to [AddingComm] + Verify TH receives RemoveNetwork command received response on TH(all-clusters-app) log: + + [1686202227.845491][2224:2224] CHIP:DMG: InvokeRequestMessage = + [1686202227.845563][2224:2224] CHIP:DMG: { + [1686202227.845620][2224:2224] CHIP:DMG: suppressResponse = false, + [1686202227.845684][2224:2224] CHIP:DMG: timedRequest = false, + [1686202227.845743][2224:2224] CHIP:DMG: InvokeRequests = + [1686202227.845818][2224:2224] CHIP:DMG: [ + [1686202227.845875][2224:2224] CHIP:DMG: CommandDataIB = + [1686202227.845939][2224:2224] CHIP:DMG: { + [1686202227.846043][2224:2224] CHIP:DMG: CommandPathIB = + [1686202227.846133][2224:2224] CHIP:DMG: { + [1686202227.846207][2224:2224] CHIP:DMG: EndpointId = 0x0, + [1686202227.846337][2224:2224] CHIP:DMG: ClusterId = 0x31, + [1686202227.846469][2224:2224] CHIP:DMG: CommandId = 0x4, + [1686202227.846591][2224:2224] CHIP:DMG: }, + [1686202227.846714][2224:2224] CHIP:DMG: + [1686202227.846780][2224:2224] CHIP:DMG: CommandFields = + [1686202227.846896][2224:2224] CHIP:DMG: { + [1686202227.847022][2224:2224] CHIP:DMG: 0x0 = [ + [1686202227.847157][2224:2224] CHIP:DMG: 0x47, 0x52, 0x4c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + [1686202227.847291][2224:2224] CHIP:DMG: ] (10 bytes) + [1686202227.847417][2224:2224] CHIP:DMG: }, + [1686202227.847530][2224:2224] CHIP:DMG: }, + [1686202227.847607][2224:2224] CHIP:DMG: + [1686202227.847663][2224:2224] CHIP:DMG: ], + [1686202227.847734][2224:2224] CHIP:DMG: + [1686202227.847789][2224:2224] CHIP:DMG: InteractionModelRevision = 1 + [1686202227.847846][2224:2224] CHIP:DMG: }, + [1686202227.848006][2224:2224] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0031 e=0 p=a + [1686202227.848086][2224:2224] CHIP:DMG: AccessControl: allowed + [1686202227.848152][2224:2224] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0004 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml index 08aca0edc5e131..b7760d99147f37 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml @@ -36,12 +36,12 @@ tests: disabled: true - - label: "DUT sends the ScanNetwork command to the TH" + - label: "Step 1: DUT sends the ScanNetwork command to the TH" PICS: CNET.C.C00.Tx verification: | ./chip-tool networkcommissioning scan-networks 54 0 - Verify "ScanNetworksResponse status" on the TH(All-cluster-app) Log: + Verify TH receives ScanNetwork command received response on TH(all-clusters-app) log: D: 14385336 [SC]Allocated SecureSession (0x20003510) - waiting for Sigma1 msg I: 14385344 [EM]Received message of type 0x8 with protocolId (0, 1) and MessageCounter:197483196 on exchr @@ -67,11 +67,11 @@ tests: D: 14390305 [DMG]ICR moving to [CommandSen] disabled: true - - label: "DUT sends the ArmFailSafe command to the TH" + - label: "Step 2: DUT sends the ArmFailSafe command to the TH" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 1 54 0 - Verify "ArmFailSafeResponse" on the TH(All-cluster-app) Log: + Verify TH receives ArmFailSafe command received response on TH(all-clusters-app) log: D: 14447757 [SC]Allocated SecureSession (0x200035c8) - waiting for Sigma1 msg I: 14447765 [EM]Received message of type 0x8 with protocolId (0, 1) and MessageCounter:60910764 on exchar @@ -88,7 +88,7 @@ tests: D: 14447853 [DMG]ICR moving to [CommandSen] disabled: true - - label: "DUT sends the AddOrUpdateThreadNetwork command to the TH" + - label: "Step 3: DUT sends the AddOrUpdateThreadNetwork command to the TH" PICS: CNET.C.C03.Tx verification: | ./chip-tool networkcommissioning add-or-update-thread-network-network hex: 1 0 @@ -97,7 +97,7 @@ tests: ./chip-tool networkcommissioning add-or-update-thread-network hex:0e080000000000010000000300000f35060004001fffe0020811111111072222220708fd9957a92dadc7aa051000112233445966778899aabbccddeeff030f4f70656e54687265616444656d6f6a0102123404106ad73489ca556d19f8c47fd2150e58e30c0402a0fff8 54 0 - Verify "NetworkConfigResponse and its arguments" on the TH(All-cluster-app) Log: + Verify TH receives AddOrUpdateThreadNetwork command received response on TH(all-clusters-app) log: D: 14484538 [SC]Allocated SecureSession (0x20003680) - waiting for Sigma1 msg D: 14484545 [EM]Retransmitting MessageCounter:53368100 on exchange 24385r Send Cnt 1 @@ -114,7 +114,7 @@ tests: D: 14484648 [DMG]ICR moving to [CommandSen] disabled: true - - label: "DUT sends the ConnectNetwork command to the TH" + - label: "Step 4: DUT sends the ConnectNetwork command to the TH" PICS: CNET.C.C06.Tx verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -123,7 +123,7 @@ tests: ./chip-tool networkcommissioning connect-network hex:1111111107222222 54 0 - Verify "ConnectNetworkResponse" on the TH(All-cluster-app) Log: + Verify TH receives ConnectNetwork command received response on TH(all-clusters-app) log: D: 14513760 [IN]SecureSession[0x20003738]: Allocated Type:2 LSID:13367 D: 14513766 [SC]Allocated SecureSession (0x20003738) - waiting for Sigma1 msg @@ -140,7 +140,7 @@ tests: D: 14513856 [DMG]ICR moving to [CommandSen] disabled: true - - label: "DUT sends the ReorderNetwork command to the TH" + - label: "Step 5: DUT sends the ReorderNetwork command to the TH" PICS: CNET.C.C08.Tx verification: | ./chip-tool networkcommissioning reorder-network hex: 1 0 @@ -149,7 +149,7 @@ tests: ./chip-tool networkcommissioning reorder-network hex:0119100899082022 3 54 0 - Verify "ReorderNetworkResponse" on the TH(All-cluster-app) Log: + Verify TH receives ReorderNetwork command received response on TH(all-clusters-app) log: D: 14569275 [IN]SecureSession[0x20002c70]: Allocated Type:2 LSID:13369 D: 14569282 [SC]Allocated SecureSession (0x20002c70) - waiting for Sigma1 msg @@ -165,7 +165,7 @@ tests: D: 14569362 [DMG]ICR moving to [CommandSen] disabled: true - - label: "DUT sends the RemoveNetwork command to the TH" + - label: "Step 6: DUT sends the RemoveNetwork command to the TH" PICS: CNET.C.C04.Tx verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 @@ -174,7 +174,7 @@ tests: ./chip-tool networkcommissioning remove-network hex:0119100899082022 54 0 - Verify "RemoveNetworkResponse" on the TH(All-cluster-app) Log: + Verify TH receives RemoveNetwork command received response on TH(all-clusters-app) log: D: 14591036 [IN]SecureSession[0x20002de0]: Allocated Type:2 LSID:13370 D: 14591042 [SC]Allocated SecureSession (0x20002de0) - waiting for Sigma1 msg diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml index ec8d8c47fb60fe..9736cb5e626781 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml @@ -36,13 +36,22 @@ tests: disabled: true - label: - "TH sends ScanNetworks command to the DUT with the SSID field omitted - and the Breadcrumb field set to 1" + "Step 1: TH sends ScanNetworks command to the DUT with the SSID field + omitted and the Breadcrumb field set to 1" PICS: CNET.S.C00.Rsp && CNET.S.C01.Tx verification: | ./chip-tool networkcommissioning scan-networks 54 0 --Breadcrumb 1 - Verify "ScanNetworksResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (all-clusters-app), verify: + -the NetworkingStatus value as 0 that mentions success. + -the PanId value is in the range of 0 to 65534. + -the ExtendedPanId value is type of uint64. + -the NetworkName value is type of string with a size of 1 to 16 bytes. + -the Channel is type of uint16 with range 0 to 65535. + -the version value is type of uint8(0 to 255). + -the ExtendedAddress is a hwaddr with a size of 8 bytes + -the RSSI is of type int8 with a range of -120 to 0. + -the LQI is type of uint8(0 to 255). [1658297246.000815][7679:7684] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0001 [1658297246.001029][7679:7684] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0001 @@ -65,11 +74,12 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 2: TH reads Breadcrumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 54 0 - Verify Breadcrumb: 1 on the TH/All-cluster-app Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 1. [1657688310.986593][1613:1618] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 829017612 [1657688310.989412][1613:1618] CHIP:TOO: Breadcrumb: 1 @@ -77,13 +87,22 @@ tests: disabled: true - label: - "TH sends ScanNetworks command to the DUT with the SSID field set to - null and the Breadcrumb field set to 2" + "Step 3: TH sends ScanNetworks command to the DUT with the SSID field + set to null and the Breadcrumb field set to 2" PICS: CNET.S.C00.Rsp && CNET.S.C01.Tx verification: | ./chip-tool networkcommissioning scan-networks 54 0 --Breadcrumb 2 - Verify ScanNetworksResponse and its arguments on the TH/All-cluster-app Log: + Via the TH (all-clusters-app), verify: + -the NetworkingStatus value as 0 that mentions success. + -the PanId value is in the range of 0 to 65534. + -the ExtendedPanId value is type of uint64. + -the NetworkName value is type of string with a size of 1 to 16 bytes. + -the Channel is type of uint16 with range 0 to 65535. + -the version value is type of uint8(0 to 255). + -the ExtendedAddress is a hwaddr with a size of 8 bytes + -the RSSI is of type int8 with a range of -120 to 0. + -the LQI is type of uint8(0 to 255). [1658297283.141075][7695:7700] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0001 [1658297283.141183][7695:7700] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0001 @@ -116,12 +135,12 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 4: TH reads Breadcrumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 54 0 - Verify "Breadcrumb: 2" on the TH(Chip-tool) Log: - + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 2. [1657688397.398564][1626:1631] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 829017613 [1657688397.398697][1626:1631] CHIP:TOO: Breadcrumb: 2 @@ -129,14 +148,23 @@ tests: disabled: true - label: - "TH sends ScanNetworks command to the DUT with the SSID field set to a - random string of ASCII characters with a size of between 1 and 31 - characters and the Breadcrumb field set to 3" + "Step 5: TH sends ScanNetworks command to the DUT with the SSID field + set to a random string of ASCII characters with a size of between 1 + and 31 characters and the Breadcrumb field set to 3" PICS: CNET.S.C00.Rsp && CNET.S.C01.Tx verification: | ./chip-tool networkcommissioning scan-networks 54 0 --Breadcrumb 3 - Verify "ScanNetworksResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (all-clusters-app), verify: + -the NetworkingStatus value should be as 0 that mentions success. + -the PanId value should be with in the range of 0 to 65534. + -the ExtendedPanId value is type of uint64. + -the NetworkName value is type of string with a size of 1 to 16 bytes. + -the Channel is type of uint16 with range 0 to 65535. + -the version value is type of uint8(0 to 255). + -the ExtendedAddress is a hwaddr with a size of 8 bytes + -the RSSI is of type int8 with a range of -120 to 0. + -the LQI is type of uint8(0 to 255). [1658297312.201709][7708:7713] CHIP:DMG: }, [1658297312.201898][7708:7713] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0001 @@ -160,11 +188,12 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 6: TH reads Breadcrumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 54 0 - Verify "Breadcrumb: 3" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 3. [1657688489.553742][1639:1644] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 829017614 [1657688489.553897][1639:1644] CHIP:TOO: Breadcrumb: 3 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_3.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_3.yaml index 32707f2181fd9b..0f7d9b22494073 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_3.yaml @@ -16,7 +16,6 @@ name: 12.4.3. [TC-CNET-4.3] [Ethernet] Verification for attributes check [DUT-Server] - PICS: - CNET.S.F02 @@ -26,23 +25,23 @@ config: endpoint: 0 tests: - - label: "Factory reset the DUT" + - label: "Step 1: Factory reset the DUT" verification: | disabled: true - - label: "Commmission TH and DUT on Ethernet setup" + - label: "Step 2: Commission TH and DUT on Ethernet setup" verification: | disabled: true - label: - "TH reads Descriptor Cluster from the DUT with EP0 TH reads ServerList - from the DUT" + "Step 3: TH reads Descriptor Cluster from the DUT with EP0 TH reads + ServerList from the DUT" verification: | ./chip-tool descriptor read server-list 1 0 - Verify "server list has value 49" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that the server list has value as 49. [1646226258.250313][2446:2451] CHIP:DMG: SuppressResponse = true, [1646226258.250337][2446:2451] CHIP:DMG: InteractionModelRevision = 1 @@ -77,12 +76,11 @@ tests: [1646226258.255517][2446:2451] CHIP:EM: Sending Standalone Ack for MessageCounter:10627940 on exchange 21443i disabled: true - - label: "TH reads FeatureMap attribute from the DUT" + - label: "Step 4: TH reads FeatureMap attribute from the DUT" verification: | ./chip-tool networkcommissioning read feature-map 1 0 - Verify "FeatureMap: 4 on the TH(Chip-tool) Log: - + Via the TH (chip-tool), verify that FeatureMap attribute value as 4 for Ethernet NetworkInterface. [1649309323.273092][2611:2617] CHIP:DMG: } [1649309323.273466][2611:2617] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 3138976789 @@ -90,12 +88,12 @@ tests: [1649309323.278863][2611:2617] CHIP:EM: Sending Standalone Ack for MessageCounter:532597 on exchange 51560i disabled: true - - label: "TH reads the MaxNetworks attribute from the DUT" + - label: "Step 5: TH reads the MaxNetworks attribute from the DUT" PICS: CNET.S.A0000 verification: | ./chip-tool networkcommissioning read max-networks 1 0 - Verify "MaxNetworks" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the MaxNetworks attribute that contains value in the range of 1 to 255. [1646226441.815782][2475:2480] CHIP:DMG: SuppressResponse = true, [1646226441.815849][2475:2480] CHIP:DMG: InteractionModelRevision = 1 @@ -106,18 +104,20 @@ tests: disabled: true - label: - "TH saves the MaxNetworks attribute value as MaxNetworksValue for - future use" + "Step 6: TH saves the MaxNetworks attribute value as + 'MaxNetworksValue' for future use" verification: | TH saves MaxNetworks attribute value disabled: true - - label: "TH reads the Networks attribute list from the DUT" + - label: "Step 7: TH reads the Networks attribute list from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that should be the type of octstr with a length range of 1 to 32. + -that the connected status should be type of bool and value as TRUE. [1654076774.294361][33659:33664] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 609053543 [1654076774.294505][33659:33664] CHIP:TOO: Networks: 1 entries @@ -127,18 +127,18 @@ tests: [1654076774.294774][33659:33664] CHIP:TOO: } disabled: true - - label: "TH reads InterfaceEnabled attribute from the DUT" + - label: "Step 8: TH reads InterfaceEnabled attribute from the DUT" PICS: CNET.S.A0004 verification: | disabled: true - - label: "TH reads LastNetworkingStatus attribute from the DUT" + - label: "Step 9: TH reads LastNetworkingStatus attribute from the DUT" PICS: CNET.S.A0005 verification: | ./chip-tool networkcommissioning read last-networking-status 1 0 - Verify "LastNetworkingStatus" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the LastNetworkingStatus attribute that contains value as null as per spec. [1659609891.611493][3877:3882] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0005 DataVersion: 4108508964 [1659609891.611559][3877:3882] CHIP:TOO: LastNetworkingStatus: null @@ -146,25 +146,28 @@ tests: disabled: true - label: - "TH reads the LastNetworkID attribute from the DUT TH reads the - Networks attribute from the DUT" + "Step 10: TH reads the LastNetworkID attribute from the DUT TH reads + the Networks attribute from the DUT" PICS: CNET.S.A0006 verification: | ./chip-tool networkcommissioning read last-network-id 1 0 - Verify "LastNetworkID" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -that the LastNetworkID attribute that contains NetworkID that should be the type of octstr with a length range of 1 to 32. + -if the Networks attribute list is Empty, then LastNetworkID attribute value is null. [1659610135.589352][3895:3900] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0006 DataVersion: 4108508964 [1659610135.589410][3895:3900] CHIP:TOO: LastNetworkID: null [1659610135.589549][3895:3900] CHIP:EM: Sending Standalone Ack for MessageCounter:28696356 on exchange 52969i disabled: true - - label: "TH reads the LastConnectErrorValue attribute from the DUT" + - label: + "Step 11: TH reads the LastConnectErrorValue attribute from the DUT" PICS: CNET.S.A0007 verification: | ./chip-tool networkcommissioning read last-connect-error-value 1 0 - Verify "LastConnectErrorValue" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the LastConnectErrorValue attribute that contains value as null. [1653483224.839873][28189:28194] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0007 DataVersion: 3189790698 [1653483224.839927][28189:28194] CHIP:TOO: LastConnectErrorValue: null diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml index 1b57450492a2b6..1e07d5dd88ee02 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.4.4. [TC-CNET-4.4] [Wi-Fi] Verification for ScanNetworks command + 12.4.4. [TC-CNET-4.4] [WiFi] Verification for ScanNetworks command [DUT-Server] PICS: @@ -81,13 +81,20 @@ tests: disabled: true - label: - "TH sends ScanNetworks command to the DUT with the SSID field set - to null and Breadcrumb field set to 1" + "Step 1: TH sends ScanNetworks command to the DUT with the SSID field + set to 'null' and Breadcrumb field set to 1" PICS: CNET.S.C00.Rsp && CNET.S.C01.Tx verification: | ./chip-tool networkcommissioning scan-networks 1 0 --Ssid null --Breadcrumb 1 - Verify "WiFiScanResults entries and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify: + -the NetworkingStatus value should be as 0 that mentions success. + -the Security value is in the type of map8 with length range 0 to 254. + -the SSID value is in the ype of octstr with length range 1 to 32. + -the BSSID value is in the type of octstr with length range of 6. + -the Channel is in the type of uint16 with range 0 to 65,535. + -the WiFi Band is in the of type enum8 with a range of -128 to 127. + -the RSSI is in the of type int8 with a range of -120 to 0. [1653475026.012811][29937:29942] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0001 [1653475026.012942][29937:29942] CHIP:TOO: ScanNetworksResponse: { @@ -219,25 +226,27 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 1b: TH reads Breadcumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 - Verify "Breadcrumb: 1" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 1. [1657190614.753193][5241:5246] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2805642039 [1657190614.753305][5241:5246] CHIP:TOO: Breadcrumb: 1 disabled: true - label: - "TH sends ScanNetworks Command to the DUT with SSID field set to - PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and Breadcrumb field set to 2" + "Step 2a: TH sends ScanNetworks Command to the DUT with SSID field set + to PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and Breadcrumb field set to + 2" PICS: CNET.S.C00.Rsp && CNET.S.C01.Tx verification: | Below is an example: ./chip-tool networkcommissioning scan-networks 1 0 --Ssid hex:47524C50726976617465 --Breadcrumb 2 - Verify "ScanNetworksResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the ScanNetworks response with first network SSID. [1653475824.575642][30076:30081] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0001 [1653475824.575807][30076:30081] CHIP:TOO: ScanNetworksResponse: { @@ -257,11 +266,12 @@ tests: disabled: true - label: - "TH reads Breadcumb attribute from the General Commissioning Cluster" + "Step 2b: TH reads Breadcumb attribute from the General Commissioning + Cluster" verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 - Verify "Breadcrumb: 2" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 2. [1657197542.352377][5661:5666] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2805642042 [1657197542.352450][5661:5666] CHIP:TOO: Breadcrumb: 2 diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml index 2aa7b6a19e3c65..3f1a7cedf164f6 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml @@ -26,23 +26,18 @@ config: endpoint: 0 tests: - - label: "Commission TH and DUT over BLE to setup the Wi-Fi" + - label: "Preconditions" verification: | + 1.Commission TH and DUT over BLE to setup the Wi-Fi - disabled: true + 2.The cluster Identifier 49 (0x0031) is present in the ServerList + attribute - - label: - "The cluster Identifier 49 (0x0031) is present in the ServerList - attribute" - verification: | + 3.The FeatureMap attribute value is 1 - disabled: true - - - label: "The FeatureMap attribute value is 1" - verification: | ./chip-tool networkcommissioning read feature-map 1 0 - Verify the "feature-map" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that FeatureMap attribute value as 1 for WiFiNetworkInterface. [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167 [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1 @@ -50,8 +45,8 @@ tests: disabled: true - label: - "TH sends the AddOrUpdateWiFiNetwork command to the DUT with the - following fields: 1. SSID field set to PIXIT.CNET.WIFI_1S + "Step 1: TH sends the AddOrUpdateWiFiNetwork command to the DUT with + the following fields: 1. SSID field set to PIXIT.CNET.WIFI_1S T_ACCESSPOINT_SSI D 2. Credentials field set to PIXIT.CNET.WIFI_1S T_ACCESSPOINT_CRE DENTIALS 3. Breadcrumb field set to 1" PICS: CNET.S.C02.Rsp @@ -62,7 +57,7 @@ tests: ./chip-tool networkcommissioning add-or-update-wi-fi-network hex:47524C50726976617465 grlprivatewifi092010 1 0 - Verify "FAILSAFE_REQUIRED status code" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the AddOrUpdateWiFiNetwork command. [1657619600.364023][2056:2061] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0003 Status=0xca [1657619600.364102][2056:2061] CHIP:TOO: Error: IM Error 0x000005CA: General error: 0xca (FAILSAFE_REQUIRED) @@ -70,8 +65,9 @@ tests: disabled: true - label: - "TH sends RemoveNetwork command to the DUT with NetworkID field set to - PIXIT.CNET.WIFI_1ST_ACCE SSPOINT_SSID and Breadcrumb field set to 1" + "Step 2: TH sends RemoveNetwork command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_1ST_ACCE SSPOINT_SSID and Breadcrumb + field set to 1" PICS: CNET.S.C02.Rsp verification: | ./chip-tool networkcommissioning remove hex: 1 0 @@ -80,7 +76,7 @@ tests: ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 - Verify "FAILSAFE_REQUIRED status code" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the RemoveNetwork command. [1657619600.364023][2056:2061] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0003 Status=0xca [1657619600.364102][2056:2061] CHIP:TOO: Error: IM Error 0x000005CA: General error: 0xca (FAILSAFE_REQUIRED) @@ -88,9 +84,10 @@ tests: disabled: true - label: - "TH sends ConnectNetwork command to the DUT with NetworkID field set - to PIXIT.CNET.WIFI_1ST_ACCE SSPOINT_SSID and Breadcrumb field set to 1" - PICS: CNET.S.C06.Rsp + "Step 3: TH sends ConnectNetwork command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_1ST_ACCE SSPOINT_SSID and Breadcrumb + field set to 1" + PICS: CNET.S.C02.Rsp verification: | ./chip-tool networkcommissioning connect hex: 1 0 @@ -98,7 +95,7 @@ tests: ./chip-tool networkcommissioning connect-network hex:47524C50726976617465 1 0 - Verify "FAILSAFE_REQUIRED status code" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the ConnectNetwork command. [1657619600.364023][2056:2061] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0003 Status=0xca [1657619600.364102][2056:2061] CHIP:TOO: Error: IM Error 0x000005CA: General error: 0xca (FAILSAFE_REQUIRED) diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml index 8ff36373386e74..5e45f04efa7a9b 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml @@ -44,9 +44,9 @@ tests: disabled: true - label: - "TH sends the AddOrUpdateThreadNetwork command to the DUT with the - following fields: 1. OperationalDataset field set to PIXIT.CNET.THREAD - _1ST_OPERATIONAL DATASET 2. Breadcrumb field set to 1" + "Step 1: TH sends the AddOrUpdateThreadNetwork command to the DUT with + the following fields: OperationalDataset field set to + PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET Breadcrumb field set to 1" PICS: CNET.S.C03.Rsp verification: | ./chip-tool networkcommissioning add-or-update-thread-network-network hex: 1 0 @@ -55,7 +55,7 @@ tests: ./chip-tool networkcommissioning add-or-update-thread-network hex:1011101122222229 51 0 - Verify "FAILSAFE_REQUIRED status code" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the AddOrUpdateThreadNetwork command. [1657619600.364023][2056:2061] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0003 Status=0xca [1657619600.364102][2056:2061] CHIP:TOO: Error: IM Error 0x000005CA: General error: 0xca (FAILSAFE_REQUIRED) @@ -63,9 +63,9 @@ tests: disabled: true - label: - "TH sends RemoveNetwork command to the DUT with NetworkID field set to - PIXIT.CNET.THREAD_1ST_O PERATIONALDATASET and Breadcrumb field set to - 1" + "Step 2: TH sends RemoveNetwork command to the DUT with NetworkID + field set to PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET and Breadcrumb + field set to 1" PICS: CNET.S.C04.Rsp verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 @@ -74,7 +74,7 @@ tests: ./chip-tool networkcommissioning remove-network hex:1011101122222229 51 0 - Verify "FAILSAFE_REQUIRED status code" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the RemoveNetwork command. [1657619600.364023][2056:2061] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0003 Status=0xca [1657619600.364102][2056:2061] CHIP:TOO: Error: IM Error 0x000005CA: General error: 0xca (FAILSAFE_REQUIRED) @@ -82,9 +82,9 @@ tests: disabled: true - label: - "TH sends ConnectNetwork command to the DUT with NetworkID field set - to PIXIT.CNET.THREAD_1ST_O PERATIONALDATASET and Breadcrumb field set - to 1" + "Step 3: TH sends ConnectNetwork command to the DUT with NetworkID + field set to PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET and Breadcrumb + field set to 1" PICS: CNET.S.C06.Rsp verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -93,7 +93,7 @@ tests: ./chip-tool networkcommissioning connect-network hex:1011101122222229 51 0 - Verify "FAILSAFE_REQUIRED status code" on the TH(chip-tool) Log: + Via the TH (chip-tool), verify the FAILSAFE_REQUIRED response for sending the ConnectNetwork command. [1657619600.364023][2056:2061] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0003 Status=0xca [1657619600.364102][2056:2061] CHIP:TOO: Error: IM Error 0x000005CA: General error: 0xca (FAILSAFE_REQUIRED) diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml index 00bb5368ffc102..ce0b858b614348 100644 --- a/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.4.7. [TC-CNET-4.9] [Wi-Fi] Verification for RemoveNetwork Command + 12.4.7. [TC-CNET-4.9] [WiFi] Verification for RemoveNetwork Command [DUT-Server] PICS: @@ -37,7 +37,7 @@ tests: verification: | ./chip-tool descriptor read server-list 1 0 - Verify the "descriptor" on the TH(Chip-tool) log + Via the TH (chip-tool), verify that the server list has value as 49. [1653474860.462391][29901:29906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1237231415 [1653474860.462487][29901:29906] CHIP:TOO: server list: 25 entries @@ -73,7 +73,7 @@ tests: verification: | ./chip-tool networkcommissioning read feature-map 1 0 - Verify the "feature-map" on the TH(Chip-tool) log + Via the TH (chip-tool), verify that FeatureMap attribute value as 1 for WiFi NetworkInterface. [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167 [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1 @@ -101,7 +101,7 @@ tests: verification: | ./chip-tool networkcommissioning read max-networks 1 0 - Verify the "max-networks" on the TH(Chip-tool) log + Via the TH (chip-tool), Verify the MaxNetworks attribute that contains value in the range of 1 to 255. [1653476960.303444][30164:30169] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0000 DataVersion: 1600858167 [1653476960.303531][30164:30169] CHIP:TOO: MaxNetworks: 1 @@ -109,12 +109,12 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 900" + "Step 1: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 900 secs to the TH. [1653478311.640549][30368:30373] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 [1653478311.640646][30368:30373] CHIP:TOO: ArmFailSafeResponse: { @@ -126,13 +126,15 @@ tests: disabled: true - label: - "TH reads Networks attribute from the DUT and saves the number of - entries as 'NumNetworks'" + "Step 2: TH reads Networks attribute from the DUT and saves the number + of entries as 'NumNetworks'" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that value as PIXIT.CNET.WIFI_1ST_ ACCESSPOINT_SSID. + -that the connected status is in the the type of bool value as TRUE. [1654250379.881780][5309:5314] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 3741733376 [1654250379.881974][5309:5314] CHIP:TOO: Networks: 1 entries @@ -143,21 +145,23 @@ tests: disabled: true - label: - "TH finds the index of the Networks list entry with NetworkID field - value PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT_SSID and saves it as - Userwifi_netidx" + "Step 3: TH finds the index of the Networks list entry with NetworkID + field value PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and saves it as + 'Userwifi_netidx'" verification: | ./chip-tool networkcommissioning read last-network-id 1 0 - Verify "LastNetworkID" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify: + -that the LastNetworkID attribute that contains NetworkID that should be the type of octstr with a length range 1 to 32. [1657198553.376268][5799:5804] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0006 DataVersion: 2494552649 [1657198553.376351][5799:5804] CHIP:TOO: LastNetworkID: 47524C50726976617465 disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and Breadcrumb field set to 1" + "Step 4: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and Breadcrumb field + set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | ./chip-tool networkcommissioning remove-network hex: 1 0 @@ -166,8 +170,7 @@ tests: ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: - + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). [1653478327.351092][30388:30393] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 [1653478327.351200][30388:30393] CHIP:TOO: NetworkConfigResponse: { @@ -178,58 +181,58 @@ tests: [1653478327.351449][30388:30393] CHIP:EM: Sending Standalone Ack for MessageCounter:14887098 on exchange 8676i disabled: true - - label: "TH1 reads Networks attribute from the DUT" + - label: "Step 5: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify that the Networks attribute list has empty(0 entries). [1653478331.979300][30395:30400] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 1600858167 [1653478331.979380][30395:30400] CHIP:TOO: Networks: 0 entries [1653478331.979496][30395:30400] CHIP:EM: Sending Standalone Ack for MessageCounter:609449 on exchange 40264i disabled: true - - label: "TH reads LastNetworkingStatus attribute from the DUT" + - label: "Step 6: TH reads LastNetworkingStatus attribute from the DUT" PICS: CNET.S.A0005 verification: | ./chip-tool networkcommissioning read last-networking-status 1 0 - Verify "LastNetworkingStatus" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the LastNetworkingStatus attribute that contains value as 0 that mentions success. [1653478850.425096][30420:30425] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0005 DataVersion: 1600858167 [1653478850.425170][30420:30425] CHIP:TOO: LastNetworkingStatus: 0 [1653478850.425269][30420:30425] CHIP:EM: Sending Standalone Ack for MessageCounter:8275942 on exchange 13394i disabled: true - - label: "TH reads LastNetworkID attribute from the DUT" + - label: "Step 7: TH reads LastNetworkID attribute from the DUT" PICS: CNET.S.A0006 verification: | ./chip-tool networkcommissioning read last-network-id 1 0 - Verify "LastNetworkID" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify that the LastNetworkID has PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID. [1657197861.497831][5737:5742] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0006 DataVersion: 2494552649 [1657197861.497897][5737:5742] CHIP:TOO: LastNetworkID: 47524C50726976617465 disabled: true - label: - "TH reads Breadcrumb attribute from the General Commissioning cluster - of the DUT" + "Step 8: TH reads Breadcrumb attribute from the General Commissioning + cluster of the DUT" PICS: CNET.S.C04.Rsp verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 - Verify "Breadcrumb: 1" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 1. [1657197903.686316][5745:5750] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2805642043 [1657197903.686428][5745:5750] CHIP:TOO: Breadcrumb: 1 disabled: true - label: - "TH sends ConnectNetwork command to the DUT with NetworkID field set - to PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and Breadcrumb field set to - 2" + "Step 9: TH sends ConnectNetwork command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and Breadcrumb field + set to 2" PICS: CNET.S.C04.Rsp verification: | ./chip-tool networkcommissioning connect-network hex: 1 0 @@ -238,7 +241,7 @@ tests: ./chip-tool networkcommissioning connect-network hex:47524C50726976617465 1 0 --Breadcrumb 2 - Verify "ConnectNetworkResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the ConnectNetworkResponse that contains networkingStatus value as 3(NetworkIdNotFound). [1657288261.892249][2347:2352] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0007 [1657288261.892304][2347:2352] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0007 @@ -249,27 +252,25 @@ tests: disabled: true - label: - "TH reads Breadcrumb attribute from the General Commissioning cluster - of the DUT" + "Step 10: TH reads Breadcrumb attribute from the General Commissioning + cluster of the DUT" PICS: CNET.S.C04.Rsp verification: | ./chip-tool generalcommissioning read breadcrumb 1 0 - Verify "Breadcrumb: 1" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the Breadcumb attribute that contains value as 1. [1657288331.671111][2360:2365] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 3470734109 [1657288331.671207][2360:2365] CHIP:TOO: Breadcrumb: 1 disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 0" + "Step 11: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 0" verification: | - Mark as not applicable and proceed to next step - ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 0 secs to the TH. [1657288382.006035][2369:2374] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1657288382.006094][2369:2374] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -279,28 +280,31 @@ tests: [1657288382.006263][2369:2374] CHIP:TOO: } disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "Step 10: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | - Mark as not applicable and proceed to next step - ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: - - [1657288403.226567][2376:2381] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 1420716065 - [1657288403.226663][2376:2381] CHIP:TOO: Networks: 0 entries + Via the TH (chip-tool), Verify: + -the Networks attribute has NetworkID that contains value as PIXIT.CNET.WIFI_1ST_ ACCESSPOINT_SSID. + -that the connected status should be the type of bool value as TRUE. + + 1684494160.580218][15306:15308] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 130057616 + [1684494160.580248][15306:15308] CHIP:TOO: Networks: 1 entries + [1684494160.580273][15306:15308] CHIP:TOO: [1]: { + [1684494160.580288][15306:15308] CHIP:TOO: NetworkID: 47524C50726976617465 + [1684494160.580298][15306:15308] CHIP:TOO: Connected: TRUE + [1684494160.580307][15306:15308] CHIP:TOO: } + [1684494160.580360][15306:15308] CHIP:EM: <<< [E:26231i S:16056 M:263765151 (Ack:216379970)] (S) Msg TX to 1:0000000000000001 [4DB7] --- Type 0000:10 (SecureChannel:StandaloneAck) disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 90" + "Step 11: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 900" verification: | - Mark as not applicable and proceed to next step - ./chip-tool generalcommissioning arm-fail-safe 90 1 1 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 90 secs to the TH. [1657288428.409103][2382:2388] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1657288428.409191][2382:2388] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -311,32 +315,32 @@ tests: disabled: true - label: - "TH sends RemoveNetwork Command to the DUT with NetworkID field set to - PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and Breadcrumb field set to 1" + "Step 12: TH sends RemoveNetwork Command to the DUT with NetworkID + field set to PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and Breadcrumb field + set to 1" PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx verification: | - Mark as not applicable and proceed to next step - ./chip-tool networkcommissioning remove-network hex: 1 0 Below is an example: ./chip-tool networkcommissioning remove-network hex:47524C50726976617465 1 0 --Breadcrumb 1 - Verify "NetworkConfigResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the NetworkConfigResponse that contains Networking Status value as 0 (success). - [1657288459.534546][2390:2395] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005 - [1657288459.534622][2390:2395] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 - [1657288459.534720][2390:2395] CHIP:TOO: NetworkConfigResponse: { - [1657288459.534779][2390:2395] CHIP:TOO: networkingStatus: 3 - [1657288459.534824][2390:2395] CHIP:TOO: } + [1687240172.756582][17509:17511] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0031 Command=0x0000_0005 + [1687240172.756684][17509:17511] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Command 0x0000_0005 + [1687240172.756847][17509:17511] CHIP:TOO: NetworkConfigResponse: { + [1687240172.756951][17509:17511] CHIP:TOO: networkingStatus: 0 + [1687240172.757011][17509:17511] CHIP:TOO: networkIndex: 0 + [1687240172.757062][17509:17511] CHIP:TOO: } disabled: true - - label: "TH sends the CommissioningCo mplete command to the DUT" + - label: "Step 13: TH sends the CommissioningComplete command to the DUT" PICS: CNET.S.C04.Rsp verification: | ./chip-tool generalcommissioning commissioning-complete 1 0 - Verify "CommissioningCompleteResponse and its arguments" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends CommissioningComplete command and the errorCode field is 0(OK). [1657288504.905001][2397:2402] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 [1657288504.905050][2397:2402] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0005 @@ -347,14 +351,14 @@ tests: disabled: true - label: - "TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set - to 0 to ensure the CommissioningCo mplete call properly persisted the - failsafe context. This call should have no effect if Commissionining - Complete call is handled correctly" + "Step 14: TH sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 0 to ensure the CommissioningComplete call + properly persisted the failsafe context. This call should have no + effect if Commissioning Complete call is handled correctly" verification: | ./chip-tool generalcommissioning arm-fail-safe 0 0 1 0 - Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify the DUT sends ArmFailSafe with timeout as 0 secs to the TH. [1657288529.987350][2404:2409] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 [1657288529.987514][2404:2409] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001 @@ -364,12 +368,12 @@ tests: [1657288529.987772][2404:2409] CHIP:TOO: } disabled: true - - label: "TH reads Networks attribute from the DUT" + - label: "Step 15: TH reads Networks attribute from the DUT" PICS: CNET.S.A0001 verification: | ./chip-tool networkcommissioning read networks 1 0 - Verify "Networks entiries and its status" on the TH(Chip-tool) Log: + Via the TH (chip-tool), Verify that the Networks attribute list has empty(0 entries). [1657288549.446752][2412:2417] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 1420716065 [1657288549.446852][2412:2417] CHIP:TOO: Networks: 0 entries diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_4.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_4.yaml index 9441e7ecef1933..f192bc0d11dd7f 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_4.yaml @@ -31,7 +31,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends LaunchContent command to TH" + - label: "Step 1: DUT sends LaunchContent command to TH" PICS: CONTENTLAUNCHER.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -39,8 +39,7 @@ tests: ./chip-tool contentlauncher launch-content '{"parameterList": []}' 1 1 1 ./chip-tv-casting-app contentlauncher launch-content '{"parameterList": []}' 1 1 1 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the launch content command is received successfully. [1658531449325] [21924:325733] CHIP: [DMG] InvokeRequestMessage = [1658531449325] [21924:325733] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_6.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_6.yaml index 58758107316431..bc46f1a21393f9 100644 --- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_10_6.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends LaunchURL command to TH" + - label: "Step 1: DUT sends LaunchURL command to TH" PICS: CONTENTLAUNCHER.C.C01.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -37,9 +37,7 @@ tests: ./chip-tool contentlauncher launch-url 'https://www.foo.com' '{"providerName": "provider"}' 1 1 ./chip-tv-casting-app contentlauncher launch-url 'https://www.foo.com' '{"providerName": "provider"}' 1 1 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): - + On TH (tv-app), Verify the launch url command is received successfully. [1658531502040] [21924:325733] CHIP: [DMG] InvokeRequestMessage = [1658531502040] [21924:325733] CHIP: [DMG] { [1658531502040] [21924:325733] CHIP: [DMG] suppressResponse = false, diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_1.yaml index a506ce442ecf49..9d878e914a7792 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_1.yaml @@ -26,9 +26,9 @@ config: endpoint: 0 tests: - - label: "Commission DUT to TH1s Fabric" + - label: "Step 1: Commission DUT to TH1s Fabric" verification: | - execute the below mentioned command to put DUT into a commissionable state, Pls use equivalent command on the respective DUT + Execute the below mentioned command to put DUT into a commissionable state, Pls use equivalent command on the respective DUT ./chip-all-clusters-app Once DUT reach the commissionable state pls send below mentioned command on TH2. Pls use equivalent command on the respective DUT @@ -39,12 +39,12 @@ tests: disabled: true - label: - "TH1 does a non-fabric filtered read of the NOCs attribute from the - Node Operational Credentials cluster and saves the returned list as - noc_th1" + "Step 2a: TH1 does a non-fabric filtered read of the NOCs attribute + from the Node Operational Credentials cluster and saves the returned + list as noc_th1" verification: | + TH1(Chip-tool) does a non-fabric filtered read of the NOCs attribute from the Node Operational Credentials cluster and saves the returned list as noc_th1 AND Verify that there is a single entry in the list ./chip-tool operationalcredentials read nocs 1 0 --fabric-filtered 0 - On TH1, Verify that there is a single entry in the list [1662389708.822977][17489:17494] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 4085201480 [1662389708.823012][17489:17494] CHIP:TOO: NOCs: 1 entries [1662389708.823044][17489:17494] CHIP:TOO: [1]: { @@ -56,8 +56,8 @@ tests: disabled: true - label: - "TH1 does a non-fabric-filtered read of the Fabrics attribute from the - Node Operational Credentials cluster" + "Step 2b: TH1 does a non-fabric-filtered read of the Fabrics attribute + from the Node Operational Credentials cluster" verification: | ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 @@ -76,8 +76,8 @@ tests: disabled: true - label: - "Factory reset DUT and perform the necessary actions to put the DUT - into a commissionable state" + "Step 3: Factory reset DUT and perform the necessary actions to put + the DUT into a commissionable state" PICS: MCORE.UI.FACTORYRESET verification: | To perform Factory reset on DUT follow the below commands in RPI, And use equivalent command on the respective DUT @@ -91,7 +91,7 @@ tests: ./chip-all-clusters-app disabled: true - - label: "Commission DUT to TH2s Fabric" + - label: "Step 4: Commission DUT to TH2s Fabric" verification: | Once DUT reach the commissionable state as explaiend in step 3, send below mentioned command on TH2 to commission the DUT. And use equivalent command on the respective DUT (Refer step 3) @@ -101,8 +101,8 @@ tests: disabled: true - label: - "TH2 does a non-fabric-filtered read of Fabrics attribute list from - DUT" + "Step 5: TH2 does a non-fabric-filtered read of Fabrics attribute list + from DUT" verification: | ./chip-tool operationalcredentials read fabrics 2 0 --commissioner-name beta --fabric-filtered 0 @@ -123,7 +123,8 @@ tests: disabled: true - label: - "TH2 does a non-fabric-filtered read of NOCs attribute list from DUT" + "Step 6: TH2 does a non-fabric-filtered read of NOCs attribute list + from DUT" verification: | ./chip-tool operationalcredentials read nocs 2 0 --commissioner-name beta --fabric-filtered 0 diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml index 9480811840e699..b184b2b1384fa9 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_3.yaml @@ -38,7 +38,7 @@ tests: 3. TH1 should be known about Commissioner based error condition/warning disabled: true - - label: "Start the commissioning process of TH1 on DUT" + - label: "Step 1: Start the commissioning process of TH1 on DUT" verification: | sudo ./chip-all-clusters-app --wifi --trace_decode 1 @@ -46,7 +46,7 @@ tests: ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3840 --trace_decode 1 disabled: true - - label: "DUT generates 32-byte AttestationNonce" + - label: "Step 2: DUT generates 32-byte AttestationNonce" verification: | During provision, DUT sends AttestationRequest Command with AttestationNonce @@ -56,8 +56,8 @@ tests: disabled: true - label: - "DUT sends AttestationRequest Command with AttestationNonce as field - to the TH1." + "Step 3: DUT sends AttestationRequest Command with AttestationNonce as + field to the TH1." verification: | During provision, DUT sends AttestationRequest Command with AttestationNonce as field to the TH. verify the below log in TH(all-clusters-app). As the current TH ref app (all-clusters-app) doesnot decode the received request message, nonce value has been shown from the TH ref app response message , as TH ref app use the same nonce value in the response message @@ -136,8 +136,8 @@ tests: disabled: true - label: - "TH1 records the AttestationNonce received in AttestationRequest as - Nonce_1" + "Step 4: TH1 records the AttestationNonce received in + AttestationRequest as Nonce_1" verification: | During provision, TH1(all-clusters-app) records the AttestationNonce received in AttestationRequest as Nonce_1 for usage in later steps. @@ -147,7 +147,8 @@ tests: [1659763321.702332][2548:2548] CHIP:DMG: Timestamp = 0 disabled: true - - label: "TH1 responds with a well-formed AttestationResponse Command" + - label: + "Step 5: TH1 responds with a well-formed AttestationResponse Command" verification: | During provision, On TH(all-clusters-app) Verify that DUT responds with a well-formed AttestationResponse Command. @@ -205,20 +206,20 @@ tests: [1655979694.072547][22876:22881] CHIP:TOO: Device commissioning completed with success disabled: true - - label: "Factory Reset TH1 so that it is commissionable again" + - label: "Step 7: Factory Reset TH1 so that it is commissionable again" verification: | On Raspi platform below commands are used to perform factory_reset operation. sudo rm -rf /tmp/chip_* disabled: true - - label: "Start the commissioning process of TH1 on DUT again" + - label: "Step 8: Start the commissioning process of TH1 on DUT again" verification: | sudo ./chip-all-clusters-app --wifi --trace_decode 1 --discriminator 3841 ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1 disabled: true - - label: "DUT generates 32-byte AttestationNonce" + - label: "Step 9: DUT generates 32-byte AttestationNonce" verification: | During provision, DUT sends AttestationRequest Command with AttestationNonce To TH1(all-clusters-app) @@ -232,8 +233,8 @@ tests: disabled: true - label: - "DUT sends AttestationRequest Command with AttestationNonce as field - to the TH1." + "Step 10: DUT sends AttestationRequest Command with AttestationNonce + as field to the TH1." verification: | During provision, DUT(chip-tool) sends AttestationRequest Command with AttestationNonce as field to the TH1(all-clusters-app) verify the below log in TH1(all-clusters-app). As the current TH1 ref app (all-clusters-app) doesnot decode the received request message, nonce value has been shown from the TH1 ref app response message , as TH1 ref app use the same nonce value in the response message @@ -295,8 +296,8 @@ tests: disabled: true - label: - "TH1 records the AttestationNonce received in AttestationRequest as - Nonce_2" + "Step 11: TH1 records the AttestationNonce received in + AttestationRequest as Nonce_2" verification: | During provision, TH1(all-clusters-app) records the AttestationNonce received in AttestationRequest as Nonce_2 [1663223294.633013][55752:55752] CHIP:DMG: Certification Type = 0 diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml index 3b83eaf4e81e87..7795144645bc41 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml @@ -38,7 +38,7 @@ tests: 3. TH1 should be known about Commissioner based error condition/warning disabled: true - - label: "Start the commissioning process of TH1 on DUT" + - label: "Step 1: Start the commissioning process of TH1 on DUT" verification: | To perform Factory reset on TH1(all-clusters-app) follow the below commands in RPI platform , Pls use equivalent command on the respective platform sudo rm -rf /tmp/chip_* @@ -51,7 +51,7 @@ tests: ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 disabled: true - - label: "DUT generates 32-byte AttestationNonce" + - label: "Step 2: DUT generates 32-byte AttestationNonce" verification: | During provision, DUT sends AttestationRequest Command with AttestationNonce @@ -71,8 +71,8 @@ tests: disabled: true - label: - "DUT sends AttestationRequest Command with AttestationNonce as field - to the TH1." + "Step 3: DUT sends AttestationRequest Command with AttestationNonce as + field to the TH1." verification: | During provision, DUT sends AttestationRequest Command with AttestationNonce as field to the TH. verify the below log in TH(all-clusters-app). As the current TH ref app (all-clusters-app) doesnot decode the received request message, nonce value has been shown from the TH ref app response message , as TH ref app use the same nonce value in the response message @@ -147,13 +147,13 @@ tests: disabled: true - label: - "TH1 responds to the DUT with an invalid AttestationResponse Command - by setting the following error condition: Commissionee is not yet - certified" + "Step 4: TH1 responds to the DUT with an invalid AttestationResponse + Command by setting the following error condition: Commissionee is not + yet certified" verification: | "The all-cluster-app in the sample application is not a certified commissionee (Certification Declaration has certification_type 0). Launch all-cluster-app on TH raspi and provision the app using the DUT " - disabled: true + disabled: true\ - label: "Verify that DUT notifies a warning stating that Commissionee is not a @@ -166,19 +166,19 @@ tests: Verify if DUT reports any warning stating that the commissionee is not a fully trusted device. However per Matter spec, Commissioners SHOULD warn the user (its not a SHALL requirement) and commissioners choose their implementation and May give the user a choice to authorize or deny commissioning disabled: true - - label: "Factory Reset TH1 so that it is commissionable again" + - label: "Step 6: Factory Reset TH1 so that it is commissionable again" verification: | To perform Factory reset on TH1(all-clusters-app) follow the below step in RPI platform , Pls use equivalent command on the respective platform sudo rm -rf /tmp/chip_* disabled: true - label: - "Repeat step 1 to step 7 and for step 5 set different error condition - as below: Commissionees PAA is not in the Commissioners trusted set. - Commissionee provides an invalid DAC and PAI chain as validated by TH - against the RFC5280 certificate Basic path validation algorithm - Commissionee provides DAC with validity period that is not in range of - PAA/PAI" + "Step 7: Repeat step 1 to step 7 and for step 5 set different error + condition as below: Commissionees PAA is not in the Commissioners + trusted set. Commissionee provides an invalid DAC and PAI chain as + validated by TH against the RFC5280 certificate Basic path validation + algorithm Commissionee provides DAC with validity period that is not + in range of PAA/PAI" verification: | For each error scenario Factory reset on TH1(all-clusters-app) as explained in step 6 @@ -188,7 +188,7 @@ tests: ./chip-all-clusters-app --trace_decode 1 Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform - ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 --paa-trust-store-path ~/connectedhomeip/credentials/development/attestation + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 --paa-trust-store-path ~/connectedhomeip/credentials/development/attestation If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): [1662455580.725445][31980:31985] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 @@ -214,10 +214,10 @@ tests: execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json + ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform - ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): [1684494307.862989][176412:176414] CHIP:CTL: Commissioning stage next step: 'SendAttestationRequest' -> 'AttestationVerification' @@ -240,16 +240,16 @@ tests: 3. Similarly for condition 3 Commissionee provides DAC with validity period that is not in range of PAA/PAI follow below steps Commissionee provides DAC with validity period that is not in range of PAA/PAI - Use the folder - connectedhomeip/credentials/development/commissioner_dut/struct_dac_valid_in_past & use the sample json test_case_vector.json + Use the folder - connectedhomeip/credentials/development/commissioner_dut/struct_dac_valid_in_past & use the sample json test_case_vector.json Commission TH to DUT by using --dac_provider parameter execute the below mentioned command to put TH(all-cluster-app) into a commissionable state, Pls use equivalent command on the respective Platform - ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_dac_valid_in_past/test_case_vector.json + ./chip-all-clusters-app --trace_decode 1 --dac_provider ~/connectedhomeip/credentials/development/commissioner_dut/struct_dac_valid_in_past/test_case_vector.json Once TH(all-clusters-app) reach the commissionable state pls send below mentioned command on DUT(chip-tool). Pls use equivalent command on the respective platform - ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 If the DUT(chip-tool) has to provision to verify the logs:- verify the below mentioned same behaviour log on the DUT (chip-tool): @@ -268,14 +268,14 @@ tests: disabled: true - label: - "Repeat step 1 to step 7 and for step 5 set different error condition: - Certification Declaration has only one of the following fields - dac_origin_vendor_id dac_origin_product_id vendor_id field in the - Certification Declaration does not match with the VendorID attribute - found in the Basic Information cluster The Vendor ID in the DAC does - not match the vendor_id field in the Certification Declaration. The - Product ID (PID) the DAC is not present in the product_id_array field - in the Certification Declaration" + "Step 8: Repeat step 1 to step 7 and for step 5 set different error + condition: Certification Declaration has only one of the following + fields dac_origin_vendor_id dac_origin_product_id vendor_id field in + the Certification Declaration does not match with the VendorID + attribute found in the Basic Information cluster The Vendor ID in the + DAC does not match the vendor_id field in the Certification + Declaration. The Product ID (PID) the DAC is not present in the + product_id_array field in the Certification Declaration" verification: | For each error scenario Factory reset on TH1(all-clusters-app) as explained in step 6 diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml index 718cb13488a939..3bc8e4558864c7 100644 --- a/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml @@ -36,7 +36,7 @@ tests: 3. Operations happen within the Fail-Safe Context disabled: true - - label: "DUT completes the attestation procedure" + - label: "Step 1: DUT completes the attestation procedure" verification: | Veriy attestation request is sent on TH(all-clusters-app) @@ -279,8 +279,8 @@ tests: disabled: true - label: - "DUT generates 32-byte CSRNonce and is sent to TH1 through CSRRequest - Command" + "Step 2: DUT generates 32-byte CSRNonce and is sent to TH1 through + CSRRequest Command" verification: | Send the below command 2 times to create CSR NONCE value in TH @@ -310,13 +310,13 @@ tests: disabled: true - label: - "TH1 generates Invalid NOCSR Information and sends the CSRResponse - Command. Refer Steps 6.1 to 6.8" + "Step 3: TH1 generates Invalid NOCSR Information and sends the + CSRResponse Command. Refer Steps 6.1 to 6.8" verification: | disabled: true - - label: "Factory Reset DUT so that it is commissionable again" + - label: "Step 5: Factory Reset DUT so that it is commissionable again" verification: | sudo rm -rf /tmp/chip_* @@ -329,25 +329,25 @@ tests: disabled: true - label: - "Repeat Step1 to Step 4 multiple times. For each time in Step 3 TH1 - generates the following error:" + "Step 6: Repeat Step1 to Step 4 multiple times. For each time in Step + 3 TH1 generates the following error:" verification: | disabled: true - - label: "CSRNonce is OCTET string of length > 32" + - label: "Step 6.1: CSRNonce is OCTET string of length > 32" verification: | disabled: true - label: - "CSRNonce value does not match the value CSR Nonce field in the - corresponding CSRRequest Command" + "Step 6.2: CSRNonce value does not match the value CSR Nonce field in + the corresponding CSRRequest Command" verification: | disabled: true - - label: "NOCSRElement size is greater than RESP_MAX" + - label: "Step 6.3: NOCSRElement size is greater than RESP_MAX" verification: | disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_10.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_10.yaml index 3fb2cc1c67a8ee..49fec00be2893f 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_10.yaml @@ -58,10 +58,11 @@ tests: disabled: true - label: - "Power up the TH Device and put the TH Device in commissioning mode" + "Step 1: Power up the TH Device and put the TH Device in commissioning + mode" verification: | 1. Launch TH that has NFC tag - ./chip-all-clusters-app + ./chip-all-clusters-app ... [1646286638.375844][11651:11651] CHIP:DL: Device Configuration: [1646286638.375960][11651:11651] CHIP:DL: Serial Number: TEST_SN @@ -79,7 +80,7 @@ tests: [1646286638.378089][11651:11651] CHIP:SVR: Long manual pairing code: [749701123365521327694] disabled: true - - label: "Bring the DUT close to the NFC tag for the TH Device" + - label: "Step 2: Bring the DUT close to the NFC tag for the TH Device" verification: | Vendor specific field testcase as chip-all-clusters-app does not have an NFC tag to scan disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_11.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_11.yaml index 8f19eff7491c13..28a4651736acba 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_11.yaml @@ -33,11 +33,11 @@ tests: disabled: true - label: - "Scan QR code using concatenation (which supports the commissioning of - all the TH devices)" + "Step 1: Scan QR code using concatenation (which supports the + commissioning of all the TH devices)" PICS: MCORE.DD.CTRL_CONCATENATED_QR_CODE_1 verification: | - Out of Scope for V1.0 as Concatenated QR codes are not supported yet + Out of Scope, as Concatenated QR codes are not supported yet https://github.com/project-chip/connectedhomeip/issues/5331 1. Lauch TH chip-all-clusters-app @@ -65,8 +65,8 @@ tests: disabled: true - label: - "Verify the DUT follows the correct order of onboarding the TH devices - which must be from first to last starting from left to right." + "Step 2: Verify the DUT follows the correct order of onboarding the TH + devices which must be from first to last starting from left to right." PICS: MCORE.DD.CTRL_CONCATENATED_QR_CODE_1_INORDER verification: | Out of Scope for V1.0 as Concatenated QR codes are not supported yet @@ -75,8 +75,8 @@ tests: disabled: true - label: - "Verify the DUT indicates to the user the need to commission TH - devices one by one by scanning their individual QR codes." + "Step 3: Verify the DUT indicates to the user the need to commission + TH devices one by one by scanning their individual QR codes." PICS: "!(MCORE.DD.CTRL_CONCATENATED_QR_CODE_1) && MCORE.DD.CTRL_CONCATENATED_QR_CODE_2" @@ -87,10 +87,10 @@ tests: disabled: true - label: - "Verify the DUT does NOT indicate to the user the need to commission - TH devices one by one by scanning their individual QR codes, but - instead warns the user (in a way described by the provider of the DUT) - that the QR code cannot be processed." + "Step 4: Verify the DUT does NOT indicate to the user the need to + commission TH devices one by one by scanning their individual QR + codes, but instead warns the user (in a way described by the provider + of the DUT) that the QR code cannot be processed." PICS: "!(MCORE.DD.CTRL_CONCATENATED_QR_CODE_1) && !(MCORE.DD.CTRL_CONCATENATED_QR_CODE_2)" @@ -101,10 +101,10 @@ tests: disabled: true - label: - "Scan QR code using concatenation (which supports the commissioning of - all the TH devices)" + "Step 5: Scan QR code using concatenation (which supports the + commissioning of all the TH devices)" verification: | - Out of Scope for V1.0 as Concatenated QR codes are not supported yet + Out of Scope, as Concatenated QR codes are not supported yet https://github.com/project-chip/connectedhomeip/issues/5331 Vendor specific field testcase disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml index b43bc99d093692..5f1705c8ffe4c8 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml @@ -33,7 +33,7 @@ tests: QR Code/ Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - - label: "Scan the DUTs QR code using the TH." + - label: "Step 1: Scan the DUTs QR code using the TH." verification: | 1. Run DUT. Example for DUT=all-clusters-app ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021 @@ -66,13 +66,13 @@ tests: [1657214153060] [29000:16610528] CHIP: [SPL] Passcode: 20202021 disabled: true - - label: "Reboot the DUT device." + - label: "Step 2: Reboot the DUT device." verification: | 1. Verify DUT is advertising in commissioning mode. On DUT, verify through commissioning Verify in TH (CHIP-TOOL) - ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 + ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 ... [1657214364908] [29006:16612760] CHIP: [CTL] Starting commissioning discovery over DNS-SD diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml index 79002c585ce2e2..375e02d41c9faa 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml @@ -37,7 +37,7 @@ tests: otherwise if your DUT is advertising over BLE , pls use the '/chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1' command to discover and provision the device (BTW the SSID , passwd, descriminator ..etc are configurable parameters for your DUT) disabled: true - - label: "Power on the DUT device." + - label: "Step 1: Power on the DUT device." verification: | 1. Verify DUT is NOT advertising in commissioning mode. On DUT, the DUT should not show up @@ -53,7 +53,8 @@ tests: TH Commissioner should not discover the DUT here disabled: true - - label: "Scan the DUTs QR code from the previous step using the TH." + - label: + "Step 2: Scan the DUTs QR code from the previous step using the TH." verification: | 1. Run DUT. Example for DUT=all-clusters app ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021 @@ -73,8 +74,8 @@ tests: disabled: true - label: - "Follow any DUT-specific steps for putting the DUT Commissionee into - commissioning mode" + "Step 3: Follow any DUT-specific steps for putting the DUT + Commissionee into commissioning mode" verification: | 1. Follow vendor-specific steps from the pairing hint to put DUT into commissioning mode 2. Verify DUT is advertising in commissioning mode. On DUT, diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml index 8e2d1736cda97a..d2bd6422034ba7 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml @@ -33,7 +33,7 @@ tests: 1 - 5.1.3 - QR Code/ Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - - label: "Power on the DUT device." + - label: "Step 1: Power on the DUT device." verification: | 1. Verify DUT is NOT advertising in commissioning mode. On DUT, the DUT should not show up @@ -50,7 +50,8 @@ tests: TH Commissioner should not discover the DUT here disabled: true - - label: "Scan the DUTs QR code from the previous step using the TH." + - label: + "Step 2: Scan the DUTs QR code from the previous step using the TH." verification: | 1. Run DUT. Example for DUT=all-clusters app ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021 @@ -70,8 +71,8 @@ tests: disabled: true - label: - "Follow any DUT-specific steps, guided by a service provided by the - DUT's manufacturer for initial device setup, then place the DUT + "Step 3: Follow any DUT-specific steps, guided by a service provided + by the DUT's manufacturer for initial device setup, then place the DUT Commissionee into commissioning mode." verification: | 1. Follow DUT vendor-specific steps to put DUT into commissioning mode diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml index be91a20c477bac..3f79c3ffda08ef 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml @@ -31,8 +31,8 @@ tests: disabled: true - label: - "Using the TH Onboarding payload reader, scan or read the Onboarding - payload from DUT1" + "Step 1a: Using the TH Onboarding payload reader, scan or read the + Onboarding payload from DUT1" verification: | 1.Run DUT. Example for DUT=all-clusters app ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021 @@ -53,16 +53,17 @@ tests: disabled: true - label: - "Using the TH, parse the Onboarding payload from previous step and - verify that the Discriminator and Passcode for DUT1 are present." + "Step 1b: Using the TH, parse the Onboarding payload from previous + step and verify that the Discriminator and Passcode for DUT1 are + present." verification: | DUT1 Descriminator: 3840 DUT1 Passcode: 20202021 disabled: true - label: - "Using the TH Onboarding payload reader, scan or read the Onboarding - payload from DUT2" + "Step 2a: Using the TH Onboarding payload reader, scan or read the + Onboarding payload from DUT2" verification: | 1.Run DUT. Example for DUT=all-clusters app ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3841 --passcode 20202022 @@ -83,22 +84,24 @@ tests: disabled: true - label: - "Using the TH, parse the Onboarding payload from previous step and - verify that the Discriminator and Passcode for DUT2 are present." + "Step 2b: Using the TH, parse the Onboarding payload from previous + step and verify that the Discriminator and Passcode for DUT2 are + present." verification: | DUT2 Descriminator: 3841 DUT2 Passcode: 20212022 disabled: true - label: - "Compare the Discriminator values for DUT1 (Step 1.b) and DUT2 (Step - 2.b)" + "Step 3: Compare the Discriminator values for DUT1 (Step 1.b) and DUT2 + (Step 2b)" verification: | 1. Verify DUT1 Descriminator in Step 1.b is NOT equal to DUT2 Descriminator in Step 2.b disabled: true - label: - "Compare the Passcode values for DUT1 (Step 1.b) and DUT2 (Step 2.b)" + "Step 4: Compare the Passcode values for DUT1 (Step 1.b) and DUT2 + (Step 2b)" verification: | Verify DUT1 Passcode in step 1b is not equal DUT2 Passcode in step 2b disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_5.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_5.yaml index ea994916135bce..50106068b1e065 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_5.yaml @@ -37,39 +37,41 @@ tests: disabled: true - label: - "Keep the DUT in packaging and bring in TH NFC scanner close to the - DUT packaging." + "Step 1: Keep the DUT in packaging and bring in TH NFC scanner close + to the DUT packaging." verification: | - 1. Using an NFC Scanner, physically bring the scanner close to the DUT in it"s packaging. - 2. NFC Scanner should not be able to read the Onboarding Payload from the DUT"s NFC tag. + 1. Using an NFC Scanner, physically bring the scanner close to the DUT in it's packaging. + 2. NFC Scanner should not be able to read the Onboarding Payload from the DUT's NFC tag. Note: chip-tool does not support physically scanning an NFC tag disabled: true - label: - "Unpack DUT from its packaging, make sure DUT is not powered on and do - not put the DUT in pairing mode. Bring in TH NFC scanner close to the - DUTs NFC tag" + "Step 2a: Unpack DUT from its packaging, make sure DUT is not powered + on and do not put the DUT in pairing mode. Bring in TH NFC scanner + close to the DUTs NFC tag" verification: | - 1. Using an NFC Scanner, physically bring the scanner close to the DUT that is out of it"s packaging. - 2. NFC Scanner should not be able to read the Onboarding Payload from the DUT"s NFC tag. + 1. Using an NFC Scanner, physically bring the scanner close to the DUT that is out of it's packaging. + 2. NFC Scanner should not be able to read the Onboarding Payload from the DUT's NFC tag. Note: chip-tool does not support physically scanning an NFC tag disabled: true - label: - "Power on DUT and do not put the DUT in pairing mode. Bring in TH NFC - scanner close to the DUTs NFC tag" + "Step 2b: Power on DUT and do not put the DUT in pairing mode. Bring + in TH NFC scanner close to the DUTs NFC tag" PICS: MCORE.DD.PHYSICAL_TAMPERING verification: | 1. Power on the DUT. 2. Using an NFC Scanner, physically bring the scanner close to the DUT. - 3. NFC Scanner should not be able to read the Onboarding Payload from the DUT"s NFC tag. + 3. NFC Scanner should not be able to read the Onboarding Payload from the DUT's NFC tag. Note: chip-tool does not support physically scanning an NFC tag disabled: true - - label: "DUT must have an explicit trigger of the the NFC pairing mode" + - label: + "Step 2c: DUT must have an explicit trigger of the the NFC pairing + mode" PICS: MCORE.DD.PHYSICAL_TAMPERING verification: | 1. Manually verify that the DUT has an explicit trigger (a physical action that enables the NFC pairing flow). @@ -78,67 +80,69 @@ tests: disabled: true - label: - "Power on DUT and put the DUT in pairing mode. Bring in TH NFC scanner - close to NFC tag" + "Step 2d: Power on DUT and put the DUT in pairing mode. Bring in TH + NFC scanner close to NFC tag" PICS: MCORE.DD.PHYSICAL_TAMPERING verification: | 1. Power on the DUT. 2. Put the DUT into pairing mode. 2. Using an NFC Scanner, physically bring the scanner close to the DUT - 3. NFC Scanner should be able to read the Onboarding Payload from the DUT"s NFC tag. + 3. NFC Scanner should be able to read the Onboarding Payload from the DUT's NFC tag. Note: chip-tool does not support physically scanning an NFC tag disabled: true - - label: "Power on DUT. Bring in NFC scanner close to NFC tag" - PICS: "!MCORE.DD.PHYSICAL_TAMPERING" + - label: "Step 2e: Power on DUT. Bring in NFC scanner close to NFC tag" + PICS: MCORE.DD.PHYSICAL_TAMPERING verification: | 1. Power on the DUT. 2. Using an NFC Scanner, physically bring the scanner close to the DUT. - 3. NFC Scanner should be able to read the Onboarding Payload from the DUT"s NFC tag. + 3. NFC Scanner should be able to read the Onboarding Payload from the DUT's NFC tag. Note: chip-tool does not support physically scanning an NFC tag disabled: true - - label: "Wait for the pairing mode to expire on device" + - label: "Step 2f: Wait for the pairing mode to expire on device" verification: | 1. After pairing mode expires on the DUT, verify that the NFC Scanner cannot read advertisements from the DUT. Note: chip-tool does not support physically scanning an NFC tag disabled: true - - label: "For Read only Tags, try to write using NFC tool a payload to DUT" + - label: + "Step 3: For Read only Tags, try to write using NFC tool a payload to + DUT" verification: | - 1. Using an NFC-programmer tool, attempt to write a payload to the DUT"s NFC tag + 1. Using an NFC-programmer tool, attempt to write a payload to the DUT's NFC tag 2. DUT should reject the attempt and the NFC tag should not have been written to. Note: chip-tool does not support physically scanning an NFC tag disabled: true - label: - "For Programmable Tag, NFC tag must be read only OTA. Try to write a - payload to DUT using NFC tool" + "Step 4a: For Programmable Tag, NFC tag must be read only OTA. Try to + write a payload to DUT using NFC tool" verification: | - 1. Using an NFC-programmer tool, attempt to write a payload to the DUT"s NFC tag + 1. Using an NFC-programmer tool, attempt to write a payload to the DUT's NFC tag 2. DUT should reject the attempt and the NFC tag should not have been written to. Note: chip-tool does not support physically scanning an NFC tag disabled: true - label: - "Optional For Programmable Tag, NFC tag may be reconfigured using - wired means" + "Step 4b: Optional For Programmable Tag, NFC tag may be reconfigured + using wired means" verification: | - 1. This is vendor-specific, attempt to write a payload to the DUT"s NFC tag by way of a physical wired connection. - 2. DUT"s NFC tag should have been written to. + 1. This is vendor-specific, attempt to write a payload to the DUT's NFC tag by way of a physical wired connection. + 2. DUT's NFC tag should have been written to. Note: chip-tool does not support physically scanning an NFC tag disabled: true - - label: "Using TH NFC scanner - read NFC tag Reader type" + - label: "Step 5: Using TH NFC scanner - read NFC tag Reader type" verification: | 1. Using an NFC Scanner, physically bring the scanner close to the DUT - 2. DUT"s NFC tag should have a Reader type equal to 2 or greater + 2. DUT's NFC tag should have a Reader type equal to 2 or greater Note: chip-tool does not support physically scanning an NFC tag disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_6.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_6.yaml index 9e4d463d596a0b..263c9fd689e6c7 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_6.yaml @@ -30,13 +30,13 @@ tests: Final label of DUT is ready to be scanned disabled: true - - label: "Scan the DUTs QR code using the TH QR code reader" + - label: "Step 1: Scan the DUTs QR code using the TH QR code reader" verification: | 1. Scan the QR code with a QR Code scanning device. 2. Vendor specific field testcase that should be manually verified using the requirements in the Expected Outcome. disabled: true - - label: "Verify QR code version" + - label: "Step 2: Verify QR code version" verification: | 1. Manually verify the QR code version by referring to section 5.1.3.2 "QR Code Format" of the spec document to ensure it follows the ISO/IEC 18004:2015 (https://www.iso.org/standard/62021.html) specifications with accurate: - Module size diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml index 47e0c8ac8b0683..34d6396a670121 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml @@ -30,8 +30,10 @@ tests: Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual, companion app, web service). disabled: true - - label: "Verify using instruments" + - label: "Step 1: Verify using instruments" verification: | + Vendor specific field testcase that should be manually verified using the requirements in the Expected Outcome. + The Manual Pairing Code shall meet the following requirements: - Printed using a minimum font size of 6 points, typically producing a typeface height of 2.1 mm (6/72 inches) diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml index f7db55889fe58c..c185e024993d42 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml @@ -57,11 +57,11 @@ tests: - TLV Data=0x152C000A3132333435363738393018 included (as defined in section 5.1.3.1. "Payload", subsection "TLV Data") disabled: true - - label: "Scan the TH Devices QR code using DUT" + - label: "Step 1: Scan the TH Devices QR code using DUT" PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Get the QR code from the TH - ./chip-all-clusters-app --wifi + ./chip-all-clusters-app --wifi [13293:13293] CHIP:DL: Device Configuration: [1653306603.740569][13293:13293] CHIP:DL: Serial Number: TEST_SN @@ -99,8 +99,8 @@ tests: disabled: true - label: - "Using the DUT, parse the THs QR code to onboard the TH Device onto - the Matter network." + "Step 2: Using the DUT, parse the THs QR code to onboard the TH Device + onto the Matter network." verification: | ./chip-tool pairing code 1 MT:-24J042C00KA0648G00 No applicable TH logs. @@ -116,9 +116,9 @@ tests: disabled: true - label: - "Scan the TH Devices QR code (that includes the additional TLV data) - using DUT. Using the example provided above, the payload would be - 'MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40'." + "Step 3a: Scan the TH Devices QR code (that includes the additional + TLV data) using DUT. Using the example provided above, the payload + would be 'MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40'." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Launch the TH commissionee app and get QR code from TH side @@ -137,8 +137,8 @@ tests: disabled: true - label: - "Using the DUT, parse the THs QR code to onboard the TH Device onto - the Matter network." + "Step 3b: Using the DUT, parse the THs QR code to onboard the TH + Device onto the Matter network." verification: | ./chip-tool pairing code 1 MT:-24J042C00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40 @@ -152,9 +152,9 @@ tests: disabled: true - label: - "Scan the TH Devices QR code (that includes the additional large TLV - data) using DUT. For an example using 1000 bytes of data, the payload - would be + "Step 4a: Scan the TH Devices QR code (that includes the additional + large TLV data) using DUT. For an example using 1000 bytes of data, + the payload would be 'MT:-24J0AFN00KA064IJ3P0JFQB7TZZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1ZL15PKP1CD5T11UXS0'. Where the TLV payload was 0x15 0x2d 0x82 0xe8 0x03 <1000 bytes of data> 0x18 (using tag type 0x2d=''UTF-8 string, 2-octet length'', @@ -183,8 +183,8 @@ tests: disabled: true - label: - "Using the DUT, parse the THs QR code to onboard the TH Device onto - the Matter network." + "Step 4b: Using the DUT, parse the THs QR code to onboard the TH + Device onto the Matter network." verification: | ./chip-tool pairing code 1 MT:-24J042C00KA064IJ3P0JFQB7TZZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T11UXS0 diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml index 066402b7167fa6..e1d9ebc9e89afe 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_1_9.yaml @@ -38,8 +38,8 @@ tests: disabled: true - label: - "Provide the 11-digit/21-digit Manual Pairing Code from the TH Device - in text, speech or any format supported by DUT" + "Step 1: Provide the 11-digit/21-digit Manual Pairing Code from the TH + Device in text, speech or any format supported by DUT" verification: | 1. Launch all-clusters-app on the raspi , get the Manual Pairing code from the log @@ -67,7 +67,7 @@ tests: 2. Parse 11-digit Manual Pairing code - ./chip-tool payload parse-setup-payload 34970112332 + ./chip-tool payload parse-setup-payload 34970112332 Verify in DUT(CHIP-TOOL) [1667811737.160767][10335:10335] CHIP:SPL: Parsing decimalRepresentation: 34970112332 @@ -81,7 +81,7 @@ tests: 3. Parse 21-digit Manual Pairing code - ./chip-tool payload parse-setup-payload 749701123365521327694 + ./chip-tool payload parse-setup-payload 749701123365521327694 Verify in DUT as commissoiner side: CHIP:SPL: Parsing decimalRepresentation: 749701123365521327694 diff --git a/src/app/tests/suites/certification/Test_TC_DD_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DD_2_1.yaml index 0433e8bd778cd2..07533321325728 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_2_1.yaml @@ -35,8 +35,8 @@ tests: disabled: true - label: - "If TH is aware of the DUT's Discovery Capability Bitmask, it SHALL - initiate Device Discovery in any order of priority on all the + "Step 1: If TH is aware of the DUT's Discovery Capability Bitmask, it + SHALL initiate Device Discovery in any order of priority on all the networking technologies that are supported by both the TH and the DUT If TH is unaware of the DUT's Discovery Capability Bitmask, it SHALL initiate Device Discovery in any order on all the networking @@ -48,7 +48,7 @@ tests: disabled: true - label: - "If (MCORE.DD.CHIP_DEV) then If !(MCORE.DD.CHIP_DEV) then If + "Step 2: If (MCORE.DD.CHIP_DEV) then If !(MCORE.DD.CHIP_DEV) then If (MCORE.DD.DEV_LOCK) then If (MCORE.DD.DEV_BARRIER) then" PICS: MCORE.DD.CHIP_DEV || !(MCORE.DD.CHIP_DEV) || MCORE.DD.DEV_LOCK || @@ -83,8 +83,8 @@ tests: disabled: true - label: - "DUT begins sending ADVs. TH does not respond to these DUT ADVs so - that the DUT can keep sending ADVs" + "Step 3: DUT begins sending ADVs. TH does not respond to these DUT + ADVs so that the DUT can keep sending ADVs" PICS: MCORE.COM.BLE verification: | No applicable TH logs. @@ -103,7 +103,7 @@ tests: 0x00 = Additional Data Flag disabled: true - - label: "TH does not respond to DUT and DUT keeps sending ADVs" + - label: "Step 4: TH does not respond to DUT and DUT keeps sending ADVs" PICS: MCORE.COM.BLE verification: | No applicable TH logs. @@ -114,7 +114,7 @@ tests: HCIDump (https://ubuntu.com/core/docs/bluez/reference/commands)+++ disabled: true - - label: "TH does not respond to DUT and DUT keeps sending ADVs" + - label: "Step 5: TH does not respond to DUT and DUT keeps sending ADVs" PICS: MCORE.COM.BLE verification: | No applicable TH logs. @@ -127,7 +127,7 @@ tests: ->For 30s and 15mins we have to get advertisement range between 150ms to 1200ms disabled: true - - label: "TH does not respond to DUT. User power cycles the DUT" + - label: "Step 6: TH does not respond to DUT. User power cycles the DUT" PICS: MCORE.COM.BLE verification: | No applicable TH logs. @@ -136,8 +136,8 @@ tests: disabled: true - label: - "TH does not respond to DUT and DUT keeps sending ADVs. TH waits at - least 15 minutes" + "Step 7: TH does not respond to DUT and DUT keeps sending ADVs. TH + waits at least 15 minutes" PICS: MCORE.COM.BLE verification: | No applicable TH logs. @@ -150,36 +150,36 @@ tests: 3. After DUT has been advertising for 15min, check that the DUT has stopped advertising over BLE disabled: true - - label: "TH scans and finds the DUT SSID" + - label: "Step 8: TH scans and finds the DUT SSID" PICS: MCORE.COM.WIFI verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported on TH=chip-tool disabled: true - label: - "TH scans and finds the DUT SSID TH sends to DUT a 1st power cycle - command (or reset manually) TH sends to DUT a 2nd power cycle command - (or reset manually)" + "Step 9: TH scans and finds the DUT SSID TH sends to DUT a 1st power + cycle command (or reset manually) TH sends to DUT a 2nd power cycle + command (or reset manually)" PICS: MCORE.COM.WIFI verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported on TH=chip-tool disabled: true - - label: "TH scans and finds the DUT SSID" + - label: "Step 10: TH scans and finds the DUT SSID" PICS: MCORE.COM.WIFI && MCORE.DD.IE verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported on TH=chip-tool disabled: true - label: - "TH and DUT are connected to the same network through vendor-unique - means or by commissioning the DUT onto the Matter network and opening - a commissioning window. The DUT is sending mandatory Commissionable - Node Discovery service records over DNS-SD.|DUT is able to be - discovered over DNS-SD." + "Step 11: TH and DUT are connected to the same network through + vendor-unique means or by commissioning the DUT onto the Matter + network and opening a commissioning window. The DUT is sending + mandatory Commissionable Node Discovery service records over + DNS-SD.|DUT is able to be discovered over DNS-SD." verification: | ./chip-all-clusters-app ... @@ -197,7 +197,7 @@ tests: [1646286638.377915][11651:11651] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00 [1646286638.377986][11651:11651] CHIP:SVR: Manual pairing code: [34970112332] - ./chip-tool discover commissionables + ./chip-tool discover commissionables Verify in TH (CHIP-TOOL) Example output using all-clusters-app's advertisements: @@ -219,8 +219,9 @@ tests: disabled: true - label: - "TH and DUT are connected to the same network and the DUT is sending - optional Commissionable Node Discovery service records over DNS-SD." + "Step 12a: TH and DUT are connected to the same network and the DUT is + sending optional Commissionable Node Discovery service records over + DNS-SD." PICS: MCORE.DD.TXT_KEY_VP verification: | $ ./chip-tool discover commissionables @@ -253,15 +254,16 @@ tests: Example output using all-clusters-app's advertisements: = wlan0 IPv6 32635B3D67B32ABB _matterc._udp local - hostname = [010203040506.local] - address = [fe80::3d59:5ecc:1961:27b0] - port = [5540] - txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] + hostname = [010203040506.local] + address = [fe80::3d59:5ecc:1961:27b0] + port = [5540] + txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] disabled: true - label: - "TH and DUT are connected to the same network and the DUT is sending - optional Commissionable Node Discovery service records over DNS-SD." + "Step 12b: TH and DUT are connected to the same network and the DUT is + sending optional Commissionable Node Discovery service records over + DNS-SD." PICS: MCORE.DD.TXT_KEY_DT verification: | $ ./chip-tool discover commissionables @@ -294,15 +296,16 @@ tests: Example output using all-clusters-app's advertisements: = wlan0 IPv6 32635B3D67B32ABB _matterc._udp local - hostname = [010203040506.local] - address = [fe80::3d59:5ecc:1961:27b0] - port = [5540] - txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] + hostname = [010203040506.local] + address = [fe80::3d59:5ecc:1961:27b0] + port = [5540] + txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] disabled: true - label: - "TH and DUT are connected to the same network and the DUT is sending - optional Commissionable Node Discovery service records over DNS-SD." + "Step 12c: TH and DUT are connected to the same network and the DUT is + sending optional Commissionable Node Discovery service records over + DNS-SD." PICS: MCORE.DD.TXT_KEY_DN verification: | $ ./chip-tool discover commissionables @@ -335,15 +338,16 @@ tests: Example output using all-clusters-app's advertisements: = wlan0 IPv6 32635B3D67B32ABB _matterc._udp local - hostname = [010203040506.local] - address = [fe80::3d59:5ecc:1961:27b0] - port = [5540] - txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] + hostname = [010203040506.local] + address = [fe80::3d59:5ecc:1961:27b0] + port = [5540] + txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] disabled: true - label: - "TH and DUT are connected to the same network and the DUT is sending - optional Commissionable Node Discovery service records over DNS-SD." + "Step 12d: TH and DUT are connected to the same network and the DUT is + sending optional Commissionable Node Discovery service records over + DNS-SD." PICS: MCORE.DD.TXT_KEY_RI verification: | $ ./chip-tool discover commissionables @@ -376,15 +380,16 @@ tests: Example output using all-clusters-app's advertisements: = wlan0 IPv6 32635B3D67B32ABB _matterc._udp local - hostname = [010203040506.local] - address = [fe80::3d59:5ecc:1961:27b0] - port = [5540] - txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] + hostname = [010203040506.local] + address = [fe80::3d59:5ecc:1961:27b0] + port = [5540] + txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] disabled: true - label: - "TH and DUT are connected to the same network and the DUT is sending - optional Commissionable Node Discovery service records over DNS-SD." + "Step 12e: TH and DUT are connected to the same network and the DUT is + sending optional Commissionable Node Discovery service records over + DNS-SD." PICS: MCORE.DD.TXT_KEY_PH verification: | $ ./chip-tool discover commissionables @@ -424,8 +429,9 @@ tests: disabled: true - label: - "TH and DUT are connected to the same network and the DUT is sending - optional Commissionable Node Discovery service records over DNS-SD." + "Step 12f: TH and DUT are connected to the same network and the DUT is + sending optional Commissionable Node Discovery service records over + DNS-SD." PICS: MCORE.DD.TXT_KEY_PI verification: | $ ./chip-tool discover commissionables @@ -458,13 +464,13 @@ tests: Example output using all-clusters-app's advertisements: = wlan0 IPv6 32635B3D67B32ABB _matterc._udp local - hostname = [010203040506.local] - address = [fe80::3d59:5ecc:1961:27b0] - port = [5540] - txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] + hostname = [010203040506.local] + address = [fe80::3d59:5ecc:1961:27b0] + port = [5540] + txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"] disabled: true - - label: "Place the DUT device into a non-commissionable state" + - label: "Step 13: Place the DUT device into a non-commissionable state" PICS: MCORE.DD.EXTENDED_DISCOVERY verification: | 1. Vendor specific, take DUT out of commissioning mode @@ -477,8 +483,8 @@ tests: disabled: true - label: - "TH and DUT are connected to the same network and the DUT is sending a - Commissionable Node Discovery service record over DNS-SD." + "Step 14a: TH and DUT are connected to the same network and the DUT is + sending a Commissionable Node Discovery service record over DNS-SD." verification: | ./chip-tool discover commissionables Verify in TH (CHIP-TOOL) @@ -502,7 +508,7 @@ tests: disabled: true - label: - "Mandatory Commissioning Subtypes: Send a browse request for + "Step 14b: Mandatory Commissioning Subtypes: Send a browse request for '_services._dns-sd._udp' using a DNS-SD records command-line test tool (i.e. 'dns-sd -B _services._dns-sd._udp' or 'avahi-browse _services._dns-sd._udp -r')" @@ -517,20 +523,20 @@ tests: disabled: true - label: - "Optional Commissioning Subtypes: Send a browse request for + "Step 14c: Optional Commissioning Subtypes: Send a browse request for '_services._dns-sd._udp' using a DNS-SD records command-line test tool (i.e. 'dns-sd -B _services._dns-sd._udp' or 'avahi-browse _services._dns-sd._udp -r')" PICS: MCORE.DD.COMMISSIONING_SUBTYPE_V || MCORE.DD.COMMISSIONING_SUBTYPE_T verification: | Vendor specific, take DUT out of commissioning mode - dns-sd -B _services._dns-sd._udp + dns-sd -B _services._dns-sd._udp Example output using all-clusters-app's advertisements found on the TH commissioner: 11:56:29.770 Add 3 7 . _sub.local. _V65521 disabled: true - - label: "Place the DUT device into Commissioning mode" + - label: "Step 15a: Place the DUT device into Commissioning mode" verification: | $ ./chip-tool discover commissionables Verify in TH as commissioner side: @@ -554,8 +560,8 @@ tests: disabled: true - label: - "Send a browse request for '_matterc._udp' using a DNS-SD records - command-line test tool (i.e. 'dns-sd -B _matterc._udp' or + "Step 15b: Send a browse request for '_matterc._udp' using a DNS-SD + records command-line test tool (i.e. 'dns-sd -B _matterc._udp' or 'avahi-browse _matterc._udp -r')" verification: | Verify using the DNS-SD records command-line test tool: @@ -571,8 +577,8 @@ tests: $ avahi-browse _matterc._udp -r + eth0 IPv4 A043306EF9D2CB3F _matterc._udp local = eth0 IPv4 A043306EF9D2CB3F _matterc._udp local - hostname = [88665A0BE29E.local] - address = [17.112.82.171] - port = [5540] - txt = ["PI=" "PH=33" "CM=1" "D=3841" "T=1" "VP=65521+32769"] + hostname = [88665A0BE29E.local] + address = [17.112.82.171] + port = [5540] + txt = ["PI=" "PH=33" "CM=1" "D=3841" "T=1" "VP=65521+32769"] disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DD_2_2.yaml index 503a1731a29dfd..264478e788acab 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_2_2.yaml @@ -42,11 +42,12 @@ tests: otherwise if your DUT is advertising over BLE , pls use the "/chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1" command to discover and provision the device (BTW the SSID , passwd, descriminator ..etc are configurable parameters for your DUT) disabled: true - - label: "TH starts matter announcement procedure using BLE transport" + - label: + "Step 1a: TH starts matter announcement procedure using BLE transport" PICS: MCORE.DD.DISCOVERY_BLE verification: | ./chip-all-clusters-app --wifi --discriminator 3841 - Verify in DUT (ALL-CLUSTER-APP): + Verify in TH as commissionee side: [1657221603.350406][368108:368108] CHIP:DL: Device Configuration: [1657221603.350445][368108:368108] CHIP:DL: Serial Number: TEST_SN @@ -67,8 +68,8 @@ tests: disabled: true - label: - "DUT starts BLE scan across all three advertising channels with a - sufficient dwell time, interval, and overall duration of scan" + "Step 1b: DUT starts BLE scan across all three advertising channels + with a sufficient dwell time, interval, and overall duration of scan" PICS: MCORE.DD.DISCOVERY_BLE verification: | 1. Discover commissionables over BLE using DUT=chip-tool pairing @@ -78,7 +79,7 @@ tests: [1651743348.446962][5072:5072] CHIP:SVR: Commissioning completed session establishment step disabled: true - - label: "DUT starts scan in background using BLE transport" + - label: "Step 2a: DUT starts scan in background using BLE transport" PICS: MCORE.DD.DISCOVERY_BLE verification: | 1. Discover commissionables over BLE using DUT=chip-tool pairing command @@ -88,7 +89,7 @@ tests: [1651743348.446962][5072:5072] CHIP:SVR: Commissioning completed session establishment step disabled: true - - label: "TH starts matter announcement using BLE transport" + - label: "Step 2b: TH starts matter announcement using BLE transport" PICS: MCORE.DD.DISCOVERY_BLE verification: | $ ./out/all-clusters-app/chip-all-clusters-app --wifi --discriminator 3841 @@ -112,8 +113,9 @@ tests: disabled: true - label: - "DUT must find TH and provide onboarding data for validation.Pass - Criteria: DUT is able to report the Onboarding payload as set on TH" + "Step 2c: DUT must find TH and provide onboarding data for + validation.Pass Criteria: DUT is able to report the Onboarding payload + as set on TH" PICS: MCORE.DD.DISCOVERY_BLE verification: | 1. Discover commissionables over BLE using DUT=chip-tool pairing command @@ -164,48 +166,50 @@ tests: [1651743348.446962][5072:5072] CHIP:SVR: Commissioning completed session establishment step disabled: true - - label: "TH starts SoftAP and begin matter announcement procedure" + - label: "Step 3a: TH starts SoftAP and begin matter announcement procedure" PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope V1.0 + Out of Scope SoftAP commissioning not currently supported on TH=all-clusters-app disabled: true - label: - "DUT starts Wi-Fi scan of all 2.4 GHz Wi-Fi channels allowed per its - operational regulatory domain (channels 1, 6, and 11 are preferred)" + "Step 3b: DUT starts Wi-Fi scan of all 2.4 GHz Wi-Fi channels allowed + per its operational regulatory domain (channels 1, 6, and 11 are + preferred)" PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope V1.0 + Out of Scope SoftAP commissioning not currently supported on TH=all-clusters-app disabled: true - - label: "DUT scans using Wi-Fi in background" + - label: "Step 4a: DUT scans using Wi-Fi in background" PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope V1.0 + Out of Scope SoftAP commissioning not currently supported on TH=all-clusters-app disabled: true - - label: "TH starts SoftAP and begin matter announcement procedure" + - label: "Step 4b: TH starts SoftAP and begin matter announcement procedure" PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope V1.0 + Out of Scope SoftAP commissioning not currently supported on TH=all-clusters-app disabled: true - label: - "DUT must find TH and provide onboarding data for validation.Pass - Criteria: DUT is able to report the Onboarding payload as set on TH" + "Step 4c: DUT must find TH and provide onboarding data for + validation.Pass Criteria: DUT is able to report the Onboarding payload + as set on TH" PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope V1.0 + Out of Scope SoftAP commissioning not currently supported on TH=all-clusters-app disabled: true - label: - "With DUT and TH connected to the same network over IP, DUT performs - service discovery using DNS-SD" + "Step 5: With DUT and TH connected to the same network over IP, DUT + performs service discovery using DNS-SD" verification: | 1. TH is in commissioning mode and discoverable by DUT over IP through DNS-SD advertisements. This can also be verified using through the DUT's pairing command over IP. diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml index 0930b3b3c30dad..47def58fc08331 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml @@ -30,8 +30,8 @@ tests: disabled: true - label: - "Commissioner and Commissionee discover each other and connect via the - discovery mode applicable for the DUT." + "Step 1: Commissioner and Commissionee discover each other and connect + via the discovery mode applicable for the DUT." verification: | 1. Place the DUT commissionee into a commissioning mode For example DUT=chip-all-clusters-app: ./chip-all-clusters-app --wifi --discriminator 3841 @@ -49,7 +49,7 @@ tests: disabled: true - label: - "Establish encryption keys with Password Authenticated Session + "Step 2: Establish encryption keys with Password Authenticated Session Establishment on the commissioning channel" verification: | Verify that the responder receives the PBKDFParamRequest message @@ -61,8 +61,9 @@ tests: disabled: true - label: - "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s - (the autonomously Fail-safe timer length set by Commissionee)" + "Step 3: Commissioner SHALL re-arm Fail-safe timer on Commissionee + within 60s (the autonomously Fail-safe timer length set by + Commissionee)" verification: | Verify in TH as commissioner side @@ -72,7 +73,7 @@ tests: disabled: true - label: - "Commissioner SHALL configure regulatory information in the + "Step 4: Commissioner SHALL configure regulatory information in the Commissionee." PICS: MCORE.COM.WIRELESS verification: | @@ -83,7 +84,7 @@ tests: disabled: true - label: - "Commissioner requests operational CSR from Commissionee with + "Step 5: Commissioner requests operational CSR from Commissionee with OperationalCSRRequest command" verification: | Verify in TH as commissioner side after commissioning @@ -95,7 +96,7 @@ tests: disabled: true - label: - "Commissioner configures operational credentials on DUT if not + "Step 6: Commissioner configures operational credentials on DUT if not previously installed" verification: | Verify in TH as commissioner side @@ -106,8 +107,8 @@ tests: disabled: true - label: - "Commissioner configures itself as administrator in ACL on DUT if - needed" + "Step 7: Commissioner configures itself as administrator in ACL on DUT + if needed" verification: | Verify in TH as commissioner side after commissioning @@ -116,8 +117,8 @@ tests: disabled: true - label: - "Commissioner configures operational network on DUT if DUT both - supports and requires" + "Step 8: Commissioner configures operational network on DUT if DUT + both supports and requires" verification: | Verify in TH as commissioner side after commissioning @@ -128,8 +129,8 @@ tests: disabled: true - label: - "Commissioner instructs Commissionee to connect to operational network - if not already connected" + "Step 9: Commissioner instructs Commissionee to connect to operational + network if not already connected" verification: | Verify in TH as commissioner side after commissioning @@ -142,7 +143,9 @@ tests: [1674603453417] [70108:12435695] [CTL] Successfully finished commissioning step 'WiFiNetworkEnable' disabled: true - - label: "Commissioner starts discovery of DUT using Operational Discovery" + - label: + "Step 10: Commissioner starts discovery of DUT using Operational + Discovery" verification: | Verify in TH as commissioner side @@ -150,14 +153,15 @@ tests: disabled: true - label: - "Commissioner opens a CASE session with DUT over operational network" + "Step 11: Commissioner opens a CASE session with DUT over operational + network" verification: | Verify in TH as commissioner side [1674603448950] [70108:12435206] [TOO] CASE establishment successful disabled: true - - label: "Commissioner sends CommissioningComplete command" + - label: "Step 12: Commissioner sends CommissioningComplete command" verification: | Verify in TH as commissioner side @@ -167,8 +171,8 @@ tests: disabled: true - label: - "Commissioning channel between the Commissioner and Commissionee is - terminated." + "Step 13: Commissioning channel between the Commissioner and + Commissionee is terminated." verification: | Verify in TH as commissioner side diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml index f337c19e0e0bbe..5e17ef743f3a63 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml @@ -38,8 +38,8 @@ tests: disabled: true - label: - "DUT receives Onboarding Payload from the TH with Custom Flow field - set to value 2" + "Step 1: DUT receives Onboarding Payload from the TH with Custom Flow + field set to value 2" verification: | 1. Run TH. Example all-clusters app ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021 @@ -59,8 +59,8 @@ tests: disabled: true - label: - "User follows any TH-specific steps to place the TH Commissionee into - commissioning mode." + "Step 2: User follows any TH-specific steps to place the TH + Commissionee into commissioning mode." verification: | 1. Launch the TH commissionee all-clusters-app: ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021 @@ -72,7 +72,7 @@ tests: [1660152729.426123][648909:648909] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00 disabled: true - - label: "DUT commissions TH" + - label: "Step 3: DUT commissions TH" verification: | ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00 diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml index 3edd959864b175..5f03477f1a09fa 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml @@ -61,10 +61,10 @@ tests: disabled: true - label: - "Standard Commissioning Flow: Use a Commissionee with a QR code that - has the Custom Flow field set to 0 and supports BLE for its Discovery - Capability. Ensure the Version bit string follows the current Matter - spec. documentation." + "Step 1a: Standard Commissioning Flow: Use a Commissionee with a QR + code that has the Custom Flow field set to 0 and supports BLE for its + Discovery Capability. Ensure the Version bit string follows the + current Matter spec. documentation." PICS: MCORE.DD.DISCOVERY_BLE verification: | Verifiy on TH(ALL-CLUSTER-APP): @@ -88,7 +88,7 @@ tests: [1667888323.981832][3151:3153] CHIP:DL: TRACE: Bus acquired for name MATTER-3840 disabled: true - - label: "Scan the QR code from the previous step using the DUT." + - label: "Step 1b: Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT. @@ -96,9 +96,9 @@ tests: disabled: true - label: - "Using the DUT, parse the THs QR code and follow any steps needed for - the Commissioner/Commissionee to complete the commissioning process - using BLE" + "Step 1c: Using the DUT, parse the THs QR code and follow any steps + needed for the Commissioner/Commissionee to complete the commissioning + process using BLE" PICS: MCORE.DD.DISCOVERY_BLE verification: | Verify on the DUT (CHIP-TOOL): @@ -119,11 +119,11 @@ tests: disabled: true - label: - "Standard Commissioning Flow: Use a Commissionee with a QR code that - has the Custom Flow field set to 0, supports IP Network for its - Discovery Capability and is already on the same IP network as the DUT - commissioner. Ensure the Version bit string follows the current Matter - spec. documentation." + "Step 2a: Standard Commissioning Flow: Use a Commissionee with a QR + code that has the Custom Flow field set to 0, supports IP Network for + its Discovery Capability and is already on the same IP network as the + DUT commissioner. Ensure the Version bit string follows the current + Matter spec. documentation." PICS: MCORE.DD.DISCOVERY_IP verification: | ./chip-all-clusters-app --custom-flow 0 --capabilities 4 @@ -142,7 +142,7 @@ tests: [1651105420.610962][27312:27312] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] disabled: true - - label: "Scan the QR code from the previous step using the DUT." + - label: "Step 2b: Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT @@ -151,9 +151,9 @@ tests: disabled: true - label: - "Using the DUT, parse the THs QR code and follow any steps needed for - the Commissioner/Commissionee to complete the commissioning process - using IP Network" + "Step 2c: Using the DUT, parse the THs QR code and follow any steps + needed for the Commissioner/Commissionee to complete the commissioning + process using IP Network" PICS: MCORE.DD.DISCOVERY_IP verification: | Verify on the DUT (CHIP-TOOL): @@ -173,30 +173,30 @@ tests: disabled: true - label: - "Standard Commissioning Flow: Use a Commissionee with a QR code that - has the Custom Flow field set to 0 and supports SoftAP for its - Discovery Capability. Ensure the Version bit string follows the + "Step 3a: Standard Commissioning Flow: Use a Commissionee with a QR + code that has the Custom Flow field set to 0 and supports SoftAP for + its Discovery Capability. Ensure the Version bit string follows the current Matter spec. documentation." PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true - - label: "Scan the QR code from the previous step using the DUT." + - label: "Step 3b: Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes disabled: true - label: - "Using the DUT, parse the THs QR code and follow any steps needed for - the Commissioner/Commissionee to complete the commissioning process - using SoftAP" + "Step 3c: Using the DUT, parse the THs QR code and follow any steps + needed for the Commissioner/Commissionee to complete the commissioning + process using SoftAP" PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml index 3cee8442b562c6..3efb89b8e1db67 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml @@ -61,8 +61,8 @@ tests: disabled: true - label: - "User-Intent Commissioning Flow: Use a Commissionee with a QR code - that has the Custom Flow field set to 1 and supports BLE for its + "Step 1a: User-Intent Commissioning Flow: Use a Commissionee with a QR + code that has the Custom Flow field set to 1 and supports BLE for its Discovery Capability. Commissionee is NOT in commissioning mode. Ensure the Version bit string follows the current Matter spec. documentation." @@ -77,7 +77,7 @@ tests: [1657234110.765364][370717:370717] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 disabled: true - - label: "Scan the QR code from the previous step using the DUT." + - label: "Step 1b: Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT @@ -85,7 +85,7 @@ tests: Note: chip-tool does not support physically scanning QR codes disabled: true - - label: "DUT parses QR code." + - label: "Step 1c: DUT parses QR code." PICS: MCORE.DD.DISCOVERY_BLE verification: | 1. Parse the payload of the TH commissionee @@ -97,7 +97,7 @@ tests: disabled: true - label: - "User should follow any TH-specific steps for putting the TH + "Step 1d: User should follow any TH-specific steps for putting the TH Commissionee device into commissioning mode and to complete the commissioning process using BLE." PICS: MCORE.DD.DISCOVERY_BLE @@ -116,10 +116,10 @@ tests: disabled: true - label: - "User-Intent Commissioning Flow: Use a Commissionee with a QR code - that has the Custom Flow field set to 1 and supports IP Network for - its Discovery Capability. Commissionee is NOT in commissioning mode. - Ensure the Version bit string follows the current Matter spec. + "Step 2a: User-Intent Commissioning Flow: Use a Commissionee with a QR + code that has the Custom Flow field set to 1 and supports IP Network + for its Discovery Capability. Commissionee is NOT in commissioning + mode. Ensure the Version bit string follows the current Matter spec. documentation." PICS: MCORE.DD.DISCOVERY_IP verification: | @@ -131,7 +131,7 @@ tests: [1660353382.200173][249074:249074] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00 disabled: true - - label: "Scan the QR code from the previous step using the DUT." + - label: "Step 2b: Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT @@ -139,7 +139,7 @@ tests: Note: chip-tool does not support physically scanning QR codes disabled: true - - label: "DUT parses QR code." + - label: "Step 2c: DUT parses QR code." PICS: MCORE.DD.DISCOVERY_IP verification: | 1. Parse the payload of the TH commissionee @@ -151,7 +151,7 @@ tests: disabled: true - label: - "User should follow any TH-specific steps for putting the TH + "Step 2d: User should follow any TH-specific steps for putting the TH Commissionee device into commissioning mode and to complete the commissioning process using IP Network." PICS: MCORE.DD.DISCOVERY_IP @@ -170,37 +170,37 @@ tests: disabled: true - label: - "User-Intent Commissioning Flow: Use a Commissionee with a QR code - that has the Custom Flow field set to 1 and supports SoftAP for its - Discovery Capability. Commissionee is NOT in commissioning mode. + "Step 3a: User-Intent Commissioning Flow: Use a Commissionee with a QR + code that has the Custom Flow field set to 1 and supports SoftAP for + its Discovery Capability. Commissionee is NOT in commissioning mode. Ensure the Version bit string follows the current Matter spec. documentation." PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true - - label: "Scan the QR code from the previous step using the DUT." + - label: "Step 3b: Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true - - label: "DUT parses QR code." + - label: "Step 3c: DUT parses QR code." PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true - label: - "User should follow any TH-specific steps for putting the TH + "Step 3d: User should follow any TH-specific steps for putting the TH Commissionee device into commissioning mode and to complete the commissioning process using SoftAP." PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml index 292d6f8650dc97..e9defbde177b5e 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml @@ -61,10 +61,11 @@ tests: disabled: true - label: - "Custom Commissioning Flow: Use a Commissionee with a QR code that has - the Custom Flow field set to 2 and supports BLE for its Discovery - Capability. Commissionee is NOT in commissioning mode. Ensure the - Version bit string follows the current Matter spec. documentation." + "Step 1a: Custom Commissioning Flow: Use a Commissionee with a QR code + that has the Custom Flow field set to 2 and supports BLE for its + Discovery Capability. Commissionee is NOT in commissioning mode. + Ensure the Version bit string follows the current Matter spec. + documentation." PICS: MCORE.DD.DISCOVERY_BLE verification: | Verify on the TH (All-cluster-app) @@ -76,14 +77,14 @@ tests: [1657235055.253774][370941:370941] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00 disabled: true - - label: "Scan the QR code from the previous step using the DUT." + - label: "Step 1b: Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT Note: chip-tool does not support physically scanning QR codes disabled: true - - label: "DUT parses QR code." + - label: "Step 1c: DUT parses QR code." PICS: MCORE.DD.DISCOVERY_BLE verification: | 1. Parse the payload of the TH commissionee @@ -103,7 +104,7 @@ tests: disabled: true - label: - "User should follow any TH-specific steps, unless the DUT has + "Step 1d: User should follow any TH-specific steps, unless the DUT has alternative means to guide the user to successful commissioning, for putting the TH Commissionee into commissioning mode, for triggering the DUT Commissioner for commissioning, and for completing the @@ -121,9 +122,9 @@ tests: disabled: true - label: - "Custom Commissioning Flow: Use a Commissionee with a QR code that has - the Custom Flow field set to 2 and supports IP Network for its - Discovery Capability. Commissionee is NOT in commissioning mode. + "Step 2a: Custom Commissioning Flow: Use a Commissionee with a QR code + that has the Custom Flow field set to 2 and supports IP Network for + its Discovery Capability. Commissionee is NOT in commissioning mode. Ensure the Version bit string follows the current Matter spec. documentation." PICS: MCORE.DD.DISCOVERY_IP @@ -137,14 +138,14 @@ tests: [1657235141.663189][370963:370963] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00 disabled: true - - label: "Scan the QR code from the previous step using the DUT." + - label: "Step 2b: Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT Note: chip-tool does not support physically scanning QR codes disabled: true - - label: "DUT parses QR code." + - label: "Step 2c: DUT parses QR code." PICS: MCORE.DD.DISCOVERY_IP verification: | 1. Parse the payload of the TH commissionee @@ -164,7 +165,7 @@ tests: disabled: true - label: - "User should follow any TH-specific steps, unless the DUT has + "Step 2d: User should follow any TH-specific steps, unless the DUT has alternative means to guide the user to successful commissioning, for putting the TH Commissionee into commissioning mode, for triggering the DUT Commissioner for commissioning, and for completing the @@ -182,38 +183,39 @@ tests: disabled: true - label: - "Custom Commissioning Flow: Use a Commissionee with a QR code that has - the Custom Flow field set to 2 and supports SoftAP for its Discovery - Capability. Commissionee is NOT in commissioning mode. Ensure the - Version bit string follows the current Matter spec. documentation." + "Step 3a: Custom Commissioning Flow: Use a Commissionee with a QR code + that has the Custom Flow field set to 2 and supports SoftAP for its + Discovery Capability. Commissionee is NOT in commissioning mode. + Ensure the Version bit string follows the current Matter spec. + documentation." PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true - - label: "Scan the QR code from the previous step using the DUT." + - label: "Step 3b: Scan the QR code from the previous step using the DUT." PICS: MCORE.DD.SCAN_QR_CODE verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true - - label: "DUT parses QR code." + - label: "Step 3c: DUT parses QR code." PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true - label: - "User should follow any TH-specific steps, unless the DUT has + "Step 3d: User should follow any TH-specific steps, unless the DUT has alternative means to guide the user to successful commissioning, for putting the TH Commissionee into commissioning mode, for triggering the DUT Commissioner for commissioning, and for completing the commissioning process using SoftAP." PICS: MCORE.DD.DISCOVERY_SOFTAP verification: | - Out of Scope for V1.0 + Out of Scope SoftAP commissioning not currently supported disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml index 9f3933b56e83f3..fb72ab66d1bd7d 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml @@ -59,7 +59,7 @@ tests: - no variable-length TLV Data included (as defined in section 5.1.3.1. "Payload", subsection "TLV Data") disabled: true - - label: "Locate and scan/read the Commissionees QR code using DUT" + - label: "Step 1: Locate and scan/read the Commissionees QR code using DUT" verification: | Verify on the TH (All-cluster-app) ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021 @@ -80,9 +80,9 @@ tests: disabled: true - label: - "Version String: Using the QR code from Step 1, generate a new QR code - but substituting out the current Version String with an invalid - Version String (i.e. '010' or any non-zero 3-bit value)" + "Step 2a: Version String: Using the QR code from Step 1, generate a + new QR code but substituting out the current Version String with an + invalid Version String (i.e. '010' or any non-zero 3-bit value)" verification: | 1. Use chip-tool's "payload generate-qrcode" command to help generate the new, invalid QR code Verify on the TH (All-cluster-app) @@ -91,7 +91,8 @@ tests: disabled: true - label: - "Scan/read the QR code, generated in the previous step, using the DUT" + "Step 2b: Scan/read the QR code, generated in the previous step, using + the DUT" verification: | Verify on the DUT (Chip-tool): @@ -103,9 +104,9 @@ tests: disabled: true - label: - "Using the QR code from Step 1, ensure the THs Discovery Capability - bit string is NOT set to BLE for discovery (i.e. set to OnNetwork - discovery capability)" + "Step 3a: Using the QR code from Step 1, ensure the THs Discovery + Capability bit string is NOT set to BLE for discovery (i.e. set to + OnNetwork discovery capability)" PICS: MCORE.DD.DISCOVERY_BLE verification: | 1. Use chip-tool's "payload generate-qrcode" command to help generate the new, invalid QR code @@ -117,7 +118,7 @@ tests: No applicable logs on the DUT side disabled: true - - label: "Scan/read the QR code of the TH device using the DUT" + - label: "Step 3b: Scan/read the QR code of the TH device using the DUT" PICS: MCORE.DD.DISCOVERY_BLE verification: | Verify on the DUT (Chip-tool): @@ -128,13 +129,13 @@ tests: disabled: true - label: - "Passcode: Using the QR code from Step 1, generate a new QR code using - all the same Onboarding Payload components except for the Passcode. - For each passcode in the following list, set the Passcode component to - one of the invalid Passcodes and generate a new QR code using all the - same Onboarding Payload components and one Passcode from the list: - 00000000, 11111111, 22222222, 33333333, 44444444, 55555555, 66666666, - 77777777, 88888888, 99999999, 12345678, 87654321" + "Step 4a: Passcode: Using the QR code from Step 1, generate a new QR + code using all the same Onboarding Payload components except for the + Passcode. For each passcode in the following list, set the Passcode + component to one of the invalid Passcodes and generate a new QR code + using all the same Onboarding Payload components and one Passcode from + the list: 00000000, 11111111, 22222222, 33333333, 44444444, 55555555, + 66666666, 77777777, 88888888, 99999999, 12345678, 87654321" verification: | No applicable TH or DUT Logs "MT:-24J029Q00OC0000000" (00000000), @@ -152,7 +153,8 @@ tests: disabled: true - label: - "Scan each of the generated QR codes from the previous step using DUT" + "Step 4b: Scan each of the generated QR codes from the previous step + using DUT" verification: | Verify on the DUT (Chip-tool): No applicable TH Logs @@ -211,9 +213,9 @@ tests: disabled: true - label: - "Prefix: Using the QR code from Step 1, generate a new QR code but - substituting out the current Prefix with an invalid Prefix that is not - 'MT:' (i.e. Prefix='AB:')" + "Step 5a: Prefix: Using the QR code from Step 1, generate a new QR + code but substituting out the current Prefix with an invalid Prefix + that is not 'MT:' (i.e. Prefix='AB:')" verification: | AB:-24J029Q00KA0648G00 @@ -221,7 +223,8 @@ tests: disabled: true - label: - "Scan/read the QR code, generated in the previous step, using the DUT" + "Step 5b: Scan/read the QR code, generated in the previous step, using + the DUT" verification: | Verify on the DUT (Chip-tool): diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml index 77e900f73e04e1..35eb2a29c80a8a 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml @@ -57,9 +57,10 @@ tests: disabled: true - label: - "Verify the THs 11-digit Manual Pairing Code meets the following - criteria: - VERSION bit string string up to date with the current - Matter spec. documentation - VID_PID_PRESENT bit string set to 0" + "Step 1a: Verify the THs 11-digit Manual Pairing Code meets the + following criteria: - VERSION bit string string up to date with the + current Matter spec. documentation - VID_PID_PRESENT bit string set to + 0" PICS: MCORE.DD.11_MANUAL_PC verification: | Verify on the TH (All-cluster-app) @@ -81,9 +82,9 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT. Follow any steps needed - for the Commissioner/Commissionee to complete the commissioning + "Step 1b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT. Follow any steps + needed for the Commissioner/Commissionee to complete the commissioning process." PICS: MCORE.DD.11_MANUAL_PC verification: | @@ -103,12 +104,12 @@ tests: disabled: true - label: - "Verify the THs 21-digit Manual Pairing Code meets the following - criteria: - A VERSION bit string string up-to-date with the current - Matter spec. documentation - A VID_PID_PRESENT bit string set to 1 - A - VENDOR_ID present (as defined in section 2.5.2. 'Vendor Identifier') - - A PRODUCT_ID present (as defined in section 2.5.3. 'Product - Identifier')" + "Step 2a: Verify the THs 21-digit Manual Pairing Code meets the + following criteria: - A VERSION bit string string up-to-date with the + current Matter spec. documentation - A VID_PID_PRESENT bit string set + to 1 - A VENDOR_ID present (as defined in section 2.5.2. 'Vendor + Identifier') - A PRODUCT_ID present (as defined in section 2.5.3. + 'Product Identifier')" PICS: MCORE.DD.21_MANUAL_PC verification: | Verify on the TH (All-cluster-app) @@ -136,9 +137,9 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT. Follow any steps needed - for the Commissioner/Commissionee to complete the commissioning + "Step 2b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT. Follow any steps + needed for the Commissioner/Commissionee to complete the commissioning process." PICS: MCORE.DD.21_MANUAL_PC verification: | diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml index 00dccf424bfd47..19a684e47f50e7 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml @@ -55,8 +55,8 @@ tests: disabled: true - label: - "Provide the 11-digit Manual Pairing Code from the Commissionee to the - DUT in any format supported by DUT" + "Step 1: Provide the 11-digit Manual Pairing Code from the + Commissionee to the DUT in any format supported by DUT" verification: | Verify on the TH (All-cluster-app) ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021 @@ -78,9 +78,9 @@ tests: disabled: true - label: - "VERSION: Using the manual code from Step 1, generate a new manual - code but substituting out the current VERSION with an invalid VERSION: - 2" + "Step 2a: VERSION: Using the manual code from Step 1, generate a new + manual code but substituting out the current VERSION with an invalid + VERSION: 2" verification: | 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code Verify on the DUT (Chip-tool): @@ -93,8 +93,8 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT" + "Step 2b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT" verification: | ./chip-tool pairing code 1 84970112331 @@ -104,9 +104,9 @@ tests: disabled: true - label: - "VID_PID_PRESENT: Using the manual code from Step 1, generate a new - manual code but substituting out the current VID_PID_PRESENT with an - invalid VID_PID_PRESENT set to 1" + "Step 3a: VID_PID_PRESENT: Using the manual code from Step 1, generate + a new manual code but substituting out the current VID_PID_PRESENT + with an invalid VID_PID_PRESENT set to 1" verification: | 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code @@ -117,8 +117,8 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT" + "Step 3b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT" verification: | ./chip-tool pairing code 1 74970112334 @@ -129,13 +129,13 @@ tests: disabled: true - label: - "SHORT DISCRIMINATOR: Using the manual code from Step 1, generate a - new manual code but substituting out the current SHORT DISCRIMINATOR - string with a discriminator value that makes the generated manual code - differ from Step 1s manual code (i.e. Choose a discriminator value - that changes any of the 4 most-significant bits of Step 1s 12-bit - discriminator value and adheres to rules of section 5.1.1.5. - 'Discriminator value')" + "Step 4a: SHORT DISCRIMINATOR: Using the manual code from Step 1, + generate a new manual code but substituting out the current SHORT + DISCRIMINATOR string with a discriminator value that makes the + generated manual code differ from Step 1s manual code (i.e. Choose a + discriminator value that changes any of the 4 most-significant bits of + Step 1s 12-bit discriminator value and adheres to rules of section + 5.1.1.5. 'Discriminator value')" verification: | 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify on the DUT (Chip-tool): @@ -145,8 +145,8 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT" + "Step 4b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT" verification: | Verify on the DUT (Chip-tool): ./chip-tool pairing code 1 33331712336 @@ -157,13 +157,14 @@ tests: disabled: true - label: - "Passcode: Using the manual code from Step 1, generate a new manual - code using all the same Onboarding Payload components except for the - Passcode. For each Passcode in the following list, set the Passcode - component to one of the invalid Passcode and generate a new manual - code using all the same Onboarding Payload components and one Passcode - from the list: 00000000, 11111111, 22222222, 33333333, 44444444, - 55555555, 66666666, 77777777, 88888888, 99999999, 12345678, 87654321" + "Step 5a: Passcode: Using the manual code from Step 1, generate a new + manual code using all the same Onboarding Payload components except + for the Passcode. For each Passcode in the following list, set the + Passcode component to one of the invalid Passcode and generate a new + manual code using all the same Onboarding Payload components and one + Passcode from the list: 00000000, 11111111, 22222222, 33333333, + 44444444, 55555555, 66666666, 77777777, 88888888, 99999999, 12345678, + 87654321" verification: | 1. Use these as examples of how to generate manual codes with invalid passcodes Verify on the DUT (Chip-tool): @@ -218,8 +219,8 @@ tests: disabled: true - label: - "Provide each of the Manual Pairing Codes, generated in the previous - step, to the DUT in any format supported by the DUT" + "Step 5b: Provide each of the Manual Pairing Codes, generated in the + previous step, to the DUT in any format supported by the DUT" verification: | Verify on the DUT (Chip-tool): No applicable TH logs @@ -274,11 +275,11 @@ tests: disabled: true - label: - "CHECK_DIGIT: Using the manual code from Step 1, generate a new manual - code but substituting out the current CHECK_DIGIT with an invalid - CHECK_DIGIT (i.e. Any different CHECK_DIGIT than the commissionees - CHECK_DIGIT while following Table 38. Encoding Method without Vendor - and Product IDs (VID_PID_Present == 0))" + "Step 6a: CHECK_DIGIT: Using the manual code from Step 1, generate a + new manual code but substituting out the current CHECK_DIGIT with an + invalid CHECK_DIGIT (i.e. Any different CHECK_DIGIT than the + commissionees CHECK_DIGIT while following Table 38. Encoding Method + without Vendor and Product IDs (VID_PID_Present == 0))" verification: | 1. Manually change the last digit of the manual pairing code to a different digit No applicable DUT or TH logs @@ -287,8 +288,8 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT" + "Step 6b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT" verification: | Verify on the DUT (Chip-tool): ./chip-tool pairing code 1 34970112331 diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml index c00f141b770537..be58b082c7861b 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml @@ -57,8 +57,8 @@ tests: disabled: true - label: - "Provide the 21-digit Manual Pairing Code from the Commissionee to the - DUT in any format supported by DUT" + "Step 1: Provide the 21-digit Manual Pairing Code from the + Commissionee to the DUT in any format supported by DUT" verification: | Verify in TH (All-cluster-app): ./chip-all-clusters-app @@ -85,9 +85,9 @@ tests: disabled: true - label: - "VERSION: Using the manual code from Step 1, generate a new manual - code but substituting out the current VERSION with an invalid VERSION: - 2" + "Step 2a: VERSION: Using the manual code from Step 1, generate a new + manual code but substituting out the current VERSION with an invalid + VERSION: 2" verification: | 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code No applicable TH or DUT logs. @@ -101,8 +101,8 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT" + "Step 2b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT" verification: | ./chip-tool pairing code 1 849701123365521327693 @@ -111,9 +111,9 @@ tests: disabled: true - label: - "VID_PID_PRESENT: Using the manual code from Step 1, generate a new - manual code but substituting out the current VID_PID_PRESENT with an - invalid VID_PID_PRESENT set to 0" + "Step 3a: VID_PID_PRESENT: Using the manual code from Step 1, generate + a new manual code but substituting out the current VID_PID_PRESENT + with an invalid VID_PID_PRESENT set to 0" verification: | 1. Use chip-tool's "payload verhoeff-generate" command to help generate the new, invalid Manual code Verify in DUT (Chip-tool): @@ -127,8 +127,8 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT" + "Step 3b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT" verification: | ./chip-tool pairing code 1 349701123365521327696 @@ -139,13 +139,13 @@ tests: disabled: true - label: - "SHORT DISCRIMINATOR: Using the manual code from Step 1, generate a - new manual code but substituting out the current SHORT DISCRIMINATOR - string with a discriminator value that makes the generated manual code - differ from Step 1s manual code (i.e. Choose a discriminator value - that changes any of the 4 most-significant bits of Step 1s 12-bit - discriminator value and adheres to rules of section 5.1.1.5. - 'Discriminator value')" + "Step 4a: SHORT DISCRIMINATOR: Using the manual code from Step 1, + generate a new manual code but substituting out the current SHORT + DISCRIMINATOR string with a discriminator value that makes the + generated manual code differ from Step 1s manual code (i.e. Choose a + discriminator value that changes any of the 4 most-significant bits of + Step 1s 12-bit discriminator value and adheres to rules of section + 5.1.1.5. 'Discriminator value')" verification: | 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify in DUT (Chip-tool): @@ -155,8 +155,8 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT" + "Step 4b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT" verification: | ./chip-tool pairing code 1 733317123365521327692 @@ -169,13 +169,14 @@ tests: disabled: true - label: - "Passcode: Using the manual code from Step 1, generate a new manual - code using all the same Onboarding Payload components except for the - Passcode. For each Passcode in the following list, set the Passcode - component to one of the invalid Passcode and generate a new manual - code using all the same Onboarding Payload components and one Passcode - from the list: 00000000, 11111111, 22222222, 33333333, 44444444, - 55555555, 66666666, 77777777, 88888888, 99999999, 12345678, 87654321" + "Step 5a: Passcode: Using the manual code from Step 1, generate a new + manual code using all the same Onboarding Payload components except + for the Passcode. For each Passcode in the following list, set the + Passcode component to one of the invalid Passcode and generate a new + manual code using all the same Onboarding Payload components and one + Passcode from the list: 00000000, 11111111, 22222222, 33333333, + 44444444, 55555555, 66666666, 77777777, 88888888, 99999999, 12345678, + 87654321" verification: | 1. Use this as an example of how to generate a manual code with an invalid passcode. In this example the invalid passcode=00000000 Verify in DUT (Chip-tool): @@ -187,8 +188,8 @@ tests: disabled: true - label: - "Provide each of the Manual Pairing Codes, generated in the previous - step, to the DUT in any format supported by the DUT" + "Step 5b: Provide each of the Manual Pairing Codes, generated in the + previous step, to the DUT in any format supported by the DUT" verification: | Verify in DUT (Chip-tool): No applicable TH logs. @@ -253,12 +254,12 @@ tests: disabled: true - label: - "VENDOR_ID: Using the manual code from Step 1, generate a new manual - code using all the same Onboarding Payload components except for the - VENDOR_ID. For each VENDOR_ID in the following list, set the VENDOR_ID - component to one of the invalid Test VENDOR_IDs and generate a new - manual code using all the same Onboarding Payload components and one - Test VENDOR_ID from the list: 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4" + "Step 6a: VENDOR_ID: Using the manual code from Step 1, generate a new + manual code using all the same Onboarding Payload components except + for the VENDOR_ID. For each VENDOR_ID in the following list, set the + VENDOR_ID component to one of the invalid Test VENDOR_IDs and generate + a new manual code using all the same Onboarding Payload components and + one Test VENDOR_ID from the list: 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4" verification: | 1. Use this as an example of how to generate a manual code with an invalid vendor IDs Verify in DUT (Chip-tool): @@ -268,8 +269,8 @@ tests: disabled: true - label: - "Provide each of the Manual Pairing Codes, generated in the previous - step, to the DUT in any format supported by the DUT" + "Step 6b: Provide each of the Manual Pairing Codes, generated in the + previous step, to the DUT in any format supported by the DUT" verification: | 1. Run each of the following DUT commands below containing invalid Vendor IDs. 2. Verify that the TH commissionee=all-cluserters-app does not get commissioned -OR- the DUT Commissioner make the user fully aware of the security risks of providing an uncertified device with operational and networking credentials @@ -310,10 +311,10 @@ tests: disabled: true - label: - "PRODUCT_ID: Using the manual code from Step 1, generate a new manual - code but substituting out the current PRODUCT_ID with an invalid - PRODUCT_ID of 0x0000(i.e. While following section 2.5.3. 'Product - Identifier')" + "Step 7a: PRODUCT_ID: Using the manual code from Step 1, generate a + new manual code but substituting out the current PRODUCT_ID with an + invalid PRODUCT_ID of 0x0000(i.e. While following section 2.5.3. + 'Product Identifier')" verification: | 1. Use chip-tool's "payload generate-manualcode" command to help generate the new, invalid Manual code Verify in DUT (Chip-tool): @@ -323,8 +324,8 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT" + "Step 7b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT" verification: | Verify in DUT (Chip-tool): ./chip-tool pairing code 1 749701123365521000006 @@ -333,11 +334,11 @@ tests: disabled: true - label: - "Check Digit: Using the manual code from Step 1, generate a new manual - code but substituting out the current CHECK_DIGIT with an invalid - CHECK_DIGIT (i.e. Any different CHECK_DIGIT than the commissionees - CHECK_DIGIT while following Table 39. Encoding Method with Vendor and - Product IDs included (VID_PID_Present == 1))" + "Step 8a: Check Digit: Using the manual code from Step 1, generate a + new manual code but substituting out the current CHECK_DIGIT with an + invalid CHECK_DIGIT (i.e. Any different CHECK_DIGIT than the + commissionees CHECK_DIGIT while following Table 39. Encoding Method + with Vendor and Product IDs included (VID_PID_Present == 1))" verification: | 1. Use chip-tool's "payload verhoeff-verify" command to help verify that the check-digit is invalid Verify in DUT (Chip-tool): @@ -349,8 +350,8 @@ tests: disabled: true - label: - "Provide the Manual Pairing Code, generated in the previous step, to - the DUT in any format supported by the DUT" + "Step 8b: Provide the Manual Pairing Code, generated in the previous + step, to the DUT in any format supported by the DUT" verification: | ./chip-tool pairing code 1 749701123365521327693 diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml index 93fdd914db59cb..09d5f9efb09fa8 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml @@ -39,8 +39,8 @@ tests: disabled: true - label: - "Place TH1 into commissioning mode using the TH manufacturers means to - be discovered by a commissioner" + "Step 1a: Place TH1 into commissioning mode using the TH manufacturers + means to be discovered by a commissioner" verification: | 1. After launching all-clusters-app using discriminator 3841 using below command ./chip-all-clusters-app --wifi --discriminator 3841 @@ -55,8 +55,8 @@ tests: disabled: true - label: - "Place TH2 into commissioning mode using the TH manufacturers means to - be discovered by a commissioner" + "Step 1b: Place TH2 into commissioning mode using the TH manufacturers + means to be discovered by a commissioner" verification: | 1. After launching all-clusters-app using discriminator 3844 using below command ./chip-all-clusters-app --wifi --discriminator 3844 @@ -70,7 +70,7 @@ tests: 17:40:17.959 Add 2 7 local. _matterc._udp. 8F1FEB734CE46129 disabled: true - - label: "Scan TH1s QR code using the DUT Commissioner." + - label: "Step 2a: Scan TH1s QR code using the DUT Commissioner." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT @@ -78,7 +78,7 @@ tests: disabled: true - label: - "DUT parses TH1s QR code. Follow any steps needed for the + "Step 2b: DUT parses TH1s QR code. Follow any steps needed for the Commissioner/Commissionee to complete the commissioning process over the TH Commissionees method of device discovery" verification: | @@ -89,11 +89,11 @@ tests: Verify in DUT (Chip-tool): ./chip-tool pairing code 1 MT:-24J0IRV01KA0648G00 - [1657240914764] [32262:16895870] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657240914764] [32262:16895870] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657240914764] [32262:16895870] CHIP: [TOO] Device commissioning completed with success disabled: true - - label: "Scan TH2s QR code using the DUT Commissioner." + - label: "Step 3a: Scan TH2s QR code using the DUT Commissioner." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT @@ -101,7 +101,7 @@ tests: disabled: true - label: - "DUT parses TH2s QR code. Follow any steps needed for the + "Step 3b: DUT parses TH2s QR code. Follow any steps needed for the Commissioner/Commissionee to complete the commissioning process over the TH Commissionees method of device discovery" verification: | @@ -112,13 +112,13 @@ tests: Verify in DUT (Chip-tool): ./chip-tool pairing code 2 MT:-24J04QI14KA0648G00 - [1657240985682] [32264:16896797] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1657240985682] [32264:16896797] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1657240985682] [32264:16896797] CHIP: [TOO] Device commissioning completed with success disabled: true - label: - "Verify the Commissioner can still interact with TH1 (ex: Read any - clusters attribute from TH1)" + "Step 4a: Verify the Commissioner can still interact with TH1 (ex: + Read any clusters attribute from TH1)" verification: | ./chip-tool basicinformation read reachable 1 0 @@ -129,8 +129,8 @@ tests: disabled: true - label: - "Verify the Commissioner can still interact with TH2 (ex: Read any - clusters attribute from TH2)" + "Step 4b: Verify the Commissioner can still interact with TH2 (ex: + Read any clusters attribute from TH2)" verification: | ./chip-tool basicinformation read reachable 2 0 diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml index 9649d0456bb1fe..fabf285cd79f8e 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml @@ -38,8 +38,8 @@ tests: disabled: true - label: - "Place DUT into commissioning mode using the DUTs manufacturers means - to be discovered by the TH Commissioner" + "Step 1: Place DUT into commissioning mode using the DUTs + manufacturers means to be discovered by the TH Commissioner" verification: | Verify on DUT (All-cluster-app): ./chip-all-clusters-app --discriminator 3841 @@ -84,8 +84,8 @@ tests: disabled: true - label: - "Scan DUTs QR code using the TH Commissioner. Follow any steps needed - for the Commissioner/Commissionee to complete the commissioning + "Step 2: Scan DUTs QR code using the TH Commissioner. Follow any steps + needed for the Commissioner/Commissionee to complete the commissioning process over the DUT Commissionees method of device discovery" verification: | Verify on DUT (All-cluster-app): @@ -96,16 +96,16 @@ tests: ./chip-tool pairing code 1 MT:-24J0ALY01KA0648G00 [1651111335378] [95843:65675989] CHIP: [CTL] Received CommissioningComplete response - [1651111335378] [95843:65675989] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651111335378] [95843:65675989] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651111335378] [95843:65675989] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651111335378] [95843:65675989] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651111335378] [95843:65675989] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651111335378] [95843:65675989] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651111335378] [95843:65675989] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651111335378] [95843:65675989] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651111335378] [95843:65675989] CHIP: [TOO] Device commissioning completed with success disabled: true - label: - "Using TH Commissioner, unpair the DUT Commissionee from the Matter - network." + "Step 3: Using TH Commissioner, unpair the DUT Commissionee from the + Matter network." verification: | Verify on TH (Chip-tool): ./chip-tool operationalcredentials remove-fabric 1 1 0 @@ -120,8 +120,8 @@ tests: disabled: true - label: - "Place DUT Commissionee back into commissioning mode using the DUT - manufacturers means to be discovered by the TH Commissioner" + "Step 4: Place DUT Commissionee back into commissioning mode using the + DUT manufacturers means to be discovered by the TH Commissioner" verification: | 1. On RasPi DUT rm -rf /tmp/chip* 2. On RasPi DUT ./chip-all-clusters-app --discriminator 3841 @@ -154,8 +154,8 @@ tests: disabled: true - label: - "Scan DUTs QR code using the TH Commissioner. Follow any steps needed - for the Commissioner/Commissionee to complete the commissioning + "Step 5: Scan DUTs QR code using the TH Commissioner. Follow any steps + needed for the Commissioner/Commissionee to complete the commissioning process over the DUT Commissionees method of device discovery" verification: | Verify on DUT (All-cluster-app): @@ -166,9 +166,9 @@ tests: ./chip-tool pairing code 1 MT:-24J0ALY01KA0648G00 [1651111613912] [95856:65679504] CHIP: [CTL] Received CommissioningComplete response - [1651111613912] [95856:65679504] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651111613912] [95856:65679504] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651111613912] [95856:65679504] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651111613912] [95856:65679504] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651111613912] [95856:65679504] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651111613912] [95856:65679504] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651111613912] [95856:65679504] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651111613912] [95856:65679504] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651111613912] [95856:65679504] CHIP: [TOO] Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml index 00b066122aba99..58a43e7367e191 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml @@ -31,19 +31,18 @@ tests: disabled: true - label: - "Commissioner and Commissionee discover each other and connect via the - discovery mode applicable for the DUT." + "Step 1: Commissioner and Commissionee discover each other and connect + via the discovery mode applicable for the DUT." verification: | Verify in DUT(ALL-CLUSTER-APP) start BLE Advertising by specific DUT implementation Verify in TH (CHIP-TOOL) start commissioning process(need to obtain the Thread dataset first) ./chip-tool pairing ble-thread 1 hex:0e080000000000010000000300000f35060004001fffe0020811111111222222220708fd27e57b1b1e22d9051000112233445566778899aabbccddeeff030e4f70656e54687265616444656d6f01021234041061e1206d2c2b46e079eb775f41fc72190c0402a0fff8 20202021 3840 - ,, disabled: true - label: - "Establish encryption keys with Password Authenticated Session + "Step 2: Establish encryption keys with Password Authenticated Session Establishment on the commissioning channel" verification: | Verify in TH(CHIP-TOOL) @@ -52,8 +51,9 @@ tests: disabled: true - label: - "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s - (the autonomously Fail-safe timer length set by Commissionee)" + "Step 3: Commissioner SHALL re-arm Fail-safe timer on Commissionee + within 60s (the autonomously Fail-safe timer length set by + Commissionee)" verification: | Verify in TH(CHIP-TOOL) @@ -61,7 +61,7 @@ tests: disabled: true - label: - "Commissioner SHALL configure regulatory information in the + "Step 4: Commissioner SHALL configure regulatory information in the Commissionee." PICS: MCORE.COM.WIRELESS verification: | @@ -71,7 +71,7 @@ tests: disabled: true - label: - "Commissioner requests operational CSR from Commissionee with + "Step 5: Commissioner requests operational CSR from Commissionee with OperationalCSRRequest command" verification: | Verify in TH(CHIP-TOOL) @@ -135,7 +135,7 @@ tests: disabled: true - label: - "Commissioner configures operational credentials on DUT if not + "Step 6: Commissioner configures operational credentials on DUT if not previously installed" verification: | Verify in TH(CHIP-TOOL) @@ -189,8 +189,8 @@ tests: disabled: true - label: - "Commissioner configures itself as administrator in ACL on DUT if - needed" + "Step 7: Commissioner configures itself as administrator in ACL on DUT + if needed" verification: | Verify in TH(CHIP-TOOL) @@ -245,8 +245,8 @@ tests: disabled: true - label: - "Commissioner configures operational network on DUT if DUT both - supports and requires" + "Step 8: Commissioner configures operational network on DUT if DUT + both supports and requires" verification: | Verify in TH(CHIP-TOOL) @@ -297,8 +297,8 @@ tests: disabled: true - label: - "Commissioner instructs Commissionee to connect to operational network - if not already connected" + "Step 9: Commissioner instructs Commissionee to connect to operational + network if not already connected" verification: | Verify in TH(CHIP-TOOL) @@ -350,13 +350,15 @@ tests: disabled: true - label: - "Commissioning channel between the Commissioner and Commissionee is - terminated." + "Step 10: Commissioning channel between the Commissioner and + Commissionee is terminated." verification: | 1. Terminate the connection between the Commissionee and the Commissioner. (i.e. remove network access or terminate commissioning process) disabled: true - - label: "Commissioner starts discovery of DUT using Operational Discovery" + - label: + "Step 11: Commissioner starts discovery of DUT using Operational + Discovery" verification: | Verify in TH(CHIP-TOOL) @@ -367,7 +369,8 @@ tests: disabled: true - label: - "Commissioner opens a CASE session with DUT over operational network" + "Step 12: Commissioner opens a CASE session with DUT over operational + network" verification: | Verify in TH(CHIP-TOOL) @@ -406,7 +409,7 @@ tests: CHIP:IN: New secure session created for device 0x0000000000000001, LSID:2 PSID:2! disabled: true - - label: "Commissioner sends CommissioningComplete command" + - label: "Step 13: Commissioner sends CommissioningComplete command" verification: | Verify in TH(CHIP-TOOL) diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml index ab8d6be93b6b11..52d5b9ab7384b7 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml @@ -39,8 +39,8 @@ tests: disabled: true - label: - "Place TH into commissioning mode using the TH manufacturers means to - be discovered by the DUT Commissioner" + "Step 1: Place TH into commissioning mode using the TH manufacturers + means to be discovered by the DUT Commissioner" verification: | ./chip-all-clusters-app --discriminator 3840 Verify on TH (All-cluster-app): @@ -58,7 +58,7 @@ tests: [1651109580.413525][31207:31207] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] disabled: true - - label: "Scan THs QR code using the DUT Commissioner." + - label: "Step 2a: Scan THs QR code using the DUT Commissioner." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT @@ -66,7 +66,7 @@ tests: disabled: true - label: - "DUT parses THs QR code. Follow any steps needed for the + "Step 2b: DUT parses THs QR code. Follow any steps needed for the Commissioner/Commissionee to complete the commissioning process over the TH Commissionees method of device discovery" verification: | @@ -78,16 +78,16 @@ tests: ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 [1651109784376] [95553:65657838] CHIP: [CTL] Received CommissioningComplete response - [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651109784376] [95553:65657838] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651109784376] [95553:65657838] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651109784376] [95553:65657838] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651109784376] [95553:65657838] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651109784376] [95553:65657838] CHIP: [TOO] Device commissioning completed with success disabled: true - label: - "Using DUT Commissioner, unpair the TH Commissionee from the Matter - network." + "Step 3: Using DUT Commissioner, unpair the TH Commissionee from the + Matter network." verification: | ./chip-tool operationalcredentials remove-fabric 1 1 0 Verify on DUT (Chip-tool): @@ -102,8 +102,8 @@ tests: disabled: true - label: - "Place TH Commissionee back into commissioning mode using the TH - manufacturers means to be discovered by the DUT Commissioner" + "Step 4: Place TH Commissionee back into commissioning mode using the + TH manufacturers means to be discovered by the DUT Commissioner" verification: | 1. Place the TH into commissioning mode by launching the app again @@ -123,7 +123,7 @@ tests: [1651110721.112838][31791:31791] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] disabled: true - - label: "Scan THs QR code using the DUT Commissioner." + - label: "Step 5a: Scan THs QR code using the DUT Commissioner." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT @@ -131,7 +131,7 @@ tests: disabled: true - label: - "DUT parses THs QR code. Follow any steps needed for the + "Step 5b: DUT parses THs QR code. Follow any steps needed for the Commissioner/Commissionee to complete the commissioning process over the TH Commissionees method of device discovery" verification: | @@ -143,9 +143,9 @@ tests: ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 [1651110724689] [95810:65669790] CHIP: [CTL] Received CommissioningComplete response - [1651110724689] [95810:65669790] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651110724689] [95810:65669790] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651110724689] [95810:65669790] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651110724689] [95810:65669790] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651110724689] [95810:65669790] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651110724689] [95810:65669790] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651110724689] [95810:65669790] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651110724689] [95810:65669790] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651110724689] [95810:65669790] CHIP: [TOO] Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml index ff6c294248bd07..4b4919706f4a44 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml @@ -39,8 +39,8 @@ tests: disabled: true - label: - "Place TH into commissioning mode using the TH manufacturers means to - be discovered by the DUT Commissioner" + "Step 1: Place TH into commissioning mode using the TH manufacturers + means to be discovered by the DUT Commissioner" verification: | ./chip-all-clusters-app --discriminator 3840 @@ -58,7 +58,7 @@ tests: [1651109580.413525][31207:31207] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] disabled: true - - label: "Scan THs QR code using the DUT Commissioner." + - label: "Step 2a: Scan THs QR code using the DUT Commissioner." PICS: MCORE.DD.SCAN_QR_CODE verification: | 1. Verify the QR code is scanned by DUT @@ -66,7 +66,7 @@ tests: disabled: true - label: - "DUT parses THs QR code. Follow any steps needed for the + "Step 2b: DUT parses THs QR code. Follow any steps needed for the Commissioner/Commissionee to complete the commissioning process over the TH Commissionees method of device discovery" verification: | @@ -78,20 +78,20 @@ tests: ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 [1651109784376] [95553:65657838] CHIP: [CTL] Received CommissioningComplete response - [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651109784376] [95553:65657838] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651109784376] [95553:65657838] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651109784376] [95553:65657838] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651109784376] [95553:65657838] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651109784376] [95553:65657838] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651109784376] [95553:65657838] CHIP: [TOO] Device commissioning completed with success disabled: true - label: - "For each TH Endpoint that implements the On/Off light device, verify - that the DUT acknowledges the existence of the Endpoint through DUT - issuing an On command to the respective Endpoint (e.g. through some - user action to trigger such command)." + "Step 3: For each TH Endpoint that implements the On/Off light device, + verify that the DUT acknowledges the existence of the Endpoint through + DUT issuing an On command to the respective Endpoint (e.g. through + some user action to trigger such command)." verification: | - 1. Send "on" command from Commissioner to TH Endpoint 1 + 1. Send 'on' command from Commissioner to TH Endpoint 1 Verify on DUT (Chip-tool): ./chip-tool onoff on 1 1 [...] @@ -107,7 +107,7 @@ tests: [1657930715.432509][2911:2911] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to ce1d8e20 - 2. Send "on" command from Commissioner to TH Endpoint 2 + 2. Send 'on' command from Commissioner to TH Endpoint 2 Verify on DUT (Chip-tool): ./chip-tool onoff on 1 2 [...] diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml index 28fb4a1b6035b6..0c2722c4568009 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml @@ -26,21 +26,21 @@ config: endpoint: 0 tests: - - label: "" + - label: "Preconditions" verification: | - Preconditions 1 - User must indicate the intention for commissioning using a display or other UI elements. 2 - TH is not advertising Commissioner Discovery Service at start disabled: true - label: - "DUT start scanning for available commissioners using Commissioner - Discovery" + "Step 1: DUT start scanning for available commissioners using + Commissioner Discovery" verification: | DUT should make 4 retries with 100ms timeout disabled: true - - label: "TH is instructed to advertise Commissioner Discovery service" + - label: + "Step 2: TH is instructed to advertise Commissioner Discovery service" verification: | chip-tv-app is used as dut @@ -55,13 +55,13 @@ tests: [1667820688.782240][13245:13245] CHIP:DIS: Responding with E45F016961B10000.local [1667820688.782259][13245:13245] CHIP:DIS: Responding with E45F016961B10000.local [1667820688.782284][13245:13245] CHIP:DIS: Responding with _I43D06D09FCEEDF78._sub._matter._tcp.local - [1667820688.782301][13245:13245] CHIP:DIS: CHIP minimal mDNS configured as "Operational device"; instance name: 43D06D09FCEEDF78-FFFFFFEFFFFFFFFF. + [1667820688.782301][13245:13245] CHIP:DIS: CHIP minimal mDNS configured as 'Operational device'; instance name: 43D06D09FCEEDF78-FFFFFFEFFFFFFFFF. [1667820688.824041][13245:13245] CHIP:DIS: mDNS service published: _matter._tcp disabled: true - label: - "DUT start scanning for available commissioners using Commissioner - Discovery" + "Step 3: DUT start scanning for available commissioners using + Commissioner Discovery" verification: | In certification QA we are using chip-tv-casting-app as a reference app, In case of certification testing, DUT (app) vendor to provide instructions on how to scan for commissioners ./chip-tv-casting-app @@ -99,18 +99,18 @@ tests: disabled: true - label: - "DUT is instructed to start the commissioning procedure with the TH - found at Step 3" + "Step 4: DUT is instructed to start the commissioning procedure with + the TH found at Step 3" verification: | - Out of scope for V1.0 + Out of scope disabled: true - - label: "TH verifies the Identification Declaration message" + - label: "Step 5: TH verifies the Identification Declaration message" verification: | - Out of scope for V1.0 + Out of scope disabled: true - - label: "TH start the commissioning procedure with DUT" + - label: "Step 6: TH start the commissioning procedure with DUT" verification: | Into the shell, enter "cast request 0" to send a user-directed-commissioning request to the DUT on tv-casting-app side diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml index 2c135ce6a711c4..595b21d5351e93 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml @@ -36,7 +36,8 @@ tests: 1 - User must indicate the intention for commissioning using a display or other UI elements." disabled: true - - label: "DUT is instructed to advertise Commissioner Discovery service" + - label: + "Step 1: DUT is instructed to advertise Commissioner Discovery service" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -48,13 +49,13 @@ tests: CHIP:DL: Using wifi MAC for hostname CHIP:DIS: Advertise operational node DFC28FF9FE811EF2-FFFFFFEFFFFFFFFF - CHIP:DIS: CHIP minimal mDNS configured as "Operational device". + CHIP:DIS: CHIP minimal mDNS configured as 'Operational device'. CHIP:DIS: Broadcasting mDns reply for query from disabled: true - label: - "TH starts scanning for available commissioners using Commissioner - Discovery" + "Step 2: TH starts scanning for available commissioners using + Commissioner Discovery" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -118,18 +119,18 @@ tests: disabled: true - label: - "TH is instructed to start the commissioning procedure with the DUT - found at Step 2" + "Step 3: TH is instructed to start the commissioning procedure with + the DUT found at Step 2" verification: | - Out of scope for V1.0 + Out of scope disabled: true - - label: "DUT verifies the Identification Declaration message" + - label: "Step 4: DUT verifies the Identification Declaration message" verification: | - Out of scope for V1.0 + Out of scope disabled: true - - label: "By any means, DUT prompts user for onboarding payload" + - label: "Step 5: By any means, DUT prompts user for onboarding payload" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -138,7 +139,7 @@ tests: > cast request 1 [1653179218011] [47890:1899175] CHIP: [DL] request [1653179218011] [47890:1899175] CHIP: [SVR] ------- PrepareForCommissioning [1653179218011] [47890:1899175] CHIP: [SVR] Server initializing... disabled: true - - label: "DUT starts the commissioning procedure with TH" + - label: "Step 6: DUT starts the commissioning procedure with TH" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml index a19db994a592f4..ede6525bcb1d88 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml @@ -37,15 +37,15 @@ tests: disabled: true - label: - "Commissioner has regulatory and fabric information available and has - accurate date, time and timezone" + "Step 1: Commissioner has regulatory and fabric information available + and has accurate date, time and timezone" verification: | ./chip-all-clusters-app --wifi --discriminator 3841 Verify in TH (ALL-CLUSTER-APP) [1653471956.966855][10713:10713] CHIP:SPT: PASE PBKDF iterations set to 1000 - [1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn"t get a PASE salt, generating one. + [1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn't get a PASE salt, generating one. [1653471956.972152][10713:10713] CHIP:DL: Device Configuration: [1653471956.972270][10713:10713] CHIP:DL: Serial Number: TEST_SN [1653471956.972315][10713:10713] CHIP:DL: Vendor Id: 65521 (0xFFF1) @@ -76,14 +76,14 @@ tests: [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful - [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: "SecurePairing" -> "ReadCommissioningInfo" + [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: 'SecurePairing' -> 'ReadCommissioningInfo' disabled: true - label: - "Commissioner and Commissionee discover each other and connect via the - discovery mode applicable for the DUT. If (MCORE.DD.DT_IP), TH device - is advertising over IP Network using DNS-based Service Discovery - (DNS-SD)" + "Step 2: Commissioner and Commissionee discover each other and connect + via the discovery mode applicable for the DUT. If (MCORE.DD.DT_IP), TH + device is advertising over IP Network using DNS-based Service + Discovery (DNS-SD)" PICS: MCORE.DD.DISCOVERY_IP verification: | Verify in TH (ALL-CLUSTER-APP) @@ -102,11 +102,11 @@ tests: [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful - [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: "SecurePairing" -> "ReadCommissioningInfo" + [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: 'SecurePairing' -> 'ReadCommissioningInfo' disabled: true - label: - "Establish encryption keys with Password Authenticated Session + "Step 3: Establish encryption keys with Password Authenticated Session Establishment on the commissioning channel" verification: | Verify that the responder receives the PBKDFParamRequest message @@ -123,15 +123,16 @@ tests: disabled: true - label: - "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s - (the autonomously Fail-safe timer length set by Commissionee)" + "Step 4: Commissioner SHALL re-arm Fail-safe timer on Commissionee + within 60s (the autonomously Fail-safe timer length set by + Commissionee)" verification: | Verify in TH (ALL-CLUSTER-APP) [1661796620.258906][17861:17861] CHIP:FS: GeneralCommissioning: Received ArmFailSafe (60s) disabled: true - label: - "Commissioner SHALL configure regulatory information in the + "Step 5: Commissioner SHALL configure regulatory information in the Commissionee." PICS: MCORE.COM.WIRELESS verification: | @@ -140,7 +141,7 @@ tests: disabled: true - label: - "Commissioner requests operational CSR from Commissionee with + "Step 6: Commissioner requests operational CSR from Commissionee with OperationalCSRRequest command" verification: | 1. Verify the following on DUT after commissioning @@ -157,7 +158,7 @@ tests: disabled: true - label: - "Commissioner configures operational credentials on DUT if not + "Step 7: Commissioner configures operational credentials on DUT if not previously installed" verification: | Verify in TH (ALL-CLUSTER-APP) @@ -166,8 +167,8 @@ tests: disabled: true - label: - "Commissioner configures itself as administrator in ACL on TH if - needed" + "Step 8: Commissioner configures itself as administrator in ACL on TH + if needed" verification: | Verify in TH (ALL-CLUSTER-APP) @@ -181,23 +182,25 @@ tests: disabled: true - label: - "Commissioner configures operational network on TH if TH both supports - and requires" + "Step 9: Commissioner configures operational network on TH if TH both + supports and requires" verification: | Verify in TH (ALL-CLUSTER-APP) [1660151567834] [99153:10411339] CHIP: [CTL] Received certificate signing request from the device - [1660151567834] [99153:10411339] CHIP: [CTL] Successfully finished commissioning step "SendOpCertSigningRequest" + [1660151567834] [99153:10411339] CHIP: [CTL] Successfully finished commissioning step 'SendOpCertSigningRequest' disabled: true - label: - "Commissioner instructs Commissionee to connect to operational network - if not already connected" + "Step 10: Commissioner instructs Commissionee to connect to + operational network if not already connected" verification: | Verify in TH (ALL-CLUSTER-APP) [1660152735.835717][648909:648909] CHIP:ZCL: OpCreds: successfully created fabric index 0x1 via AddNOC disabled: true - - label: "Commissioner starts discovery of TH using Operational Discovery" + - label: + "Step 11: Commissioner starts discovery of TH using Operational + Discovery" verification: | Verify in TH (ALL-CLUSTER-APP) [1660152735.835315][648909:648909] CHIP:DIS: Broadcasting mDns reply for query from fe80::808c:7ff:fefd:3b1 @@ -207,7 +210,8 @@ tests: disabled: true - label: - "Commissioner opens a CASE session with TH over operational network" + "Step 12: Commissioner opens a CASE session with TH over operational + network" verification: | Verify in TH (ALL-CLUSTER-APP) @@ -218,18 +222,18 @@ tests: [1653471957.715456][10713:10713] CHIP:ZCL: GeneralDiagnosticsDelegate: OnDeviceRebooted disabled: true - - label: "Commissioner sends CommissioningComplete command" + - label: "Step 13: Commissioner sends CommissioningComplete command" verification: | Verify in TH (ALL-CLUSTER-APP) [1660154248.898113][7143:7143] CHIP:SVR: Commissioning completed successfully disabled: true - label: - "Commissioning channel between the Commissioner and Commissionee is - terminated." + "Step 14: Commissioning channel between the Commissioner and + Commissionee is terminated." verification: | Verify in TH (ALL-CLUSTER-APP) [1660154249.008047][7143:7143] CHIP:IN: Expiring all PASE sessions [1660154249.008069][7143:7143] CHIP:IN: SecureSession[0xaaab09155000]: MarkForEviction Type:1 LSID:5786 - [1660154249.008090][7143:7143] CHIP:SC: SecureSession[0xaaab09155000]: Moving from state "kActive" --> "kPendingEviction" + [1660154249.008090][7143:7143] CHIP:SC: SecureSession[0xaaab09155000]: Moving from state 'kActive' --> 'kPendingEviction' disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml index 2faf4952b9bcbd..674808bfabb520 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml @@ -38,15 +38,15 @@ tests: disabled: true - label: - "Commissioner has regulatory and fabric information available and has - accurate date, time and timezone" + "Step 1: Commissioner has regulatory and fabric information available + and has accurate date, time and timezone" verification: | 1. Manually verify that the time, date and timezone is accurate for the DUT Commissioner disabled: true - label: - "Commissioner and Commissionee discover each other and connect via the - discovery mode applicable for the DUT." + "Step 2: Commissioner and Commissionee discover each other and connect + via the discovery mode applicable for the DUT." verification: | Verify in TH (ALL-CLUSTER-APP) start BLE Advertising by specific DUT implementation @@ -56,7 +56,7 @@ tests: disabled: true - label: - "Establish encryption keys with Password Authenticated Session + "Step 3: Establish encryption keys with Password Authenticated Session Establishment on the commissioning channel" verification: | Verify in DUT as commissioner side @@ -65,8 +65,9 @@ tests: disabled: true - label: - "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s - (the autonomously Fail-safe timer length set by Commissionee)" + "Step 4: Commissioner SHALL re-arm Fail-safe timer on Commissionee + within 60s (the autonomously Fail-safe timer length set by + Commissionee)" verification: | Verify in DUT as commissioner side @@ -74,13 +75,13 @@ tests: disabled: true - label: - "Commissioner SHALL configure regulatory information in the + "Step 5: Commissioner SHALL configure regulatory information in the Commissionee." PICS: MCORE.COM.WIRELESS verification: | Verify in DUT as commissioner side - Performing next commissioning step "ConfigRegulatory" + Performing next commissioning step 'ConfigRegulatory' [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0) @@ -89,7 +90,7 @@ tests: disabled: true - label: - "Commissioner requests operational CSR from Commissionee with + "Step 6: Commissioner requests operational CSR from Commissionee with OperationalCSRRequest command" verification: | Verify in DUT as commissioner side @@ -153,7 +154,7 @@ tests: disabled: true - label: - "Commissioner configures operational credentials on DUT if not + "Step 7: Commissioner configures operational credentials on DUT if not previously installed" verification: | Verify in DUT as commissioner side @@ -207,8 +208,8 @@ tests: disabled: true - label: - "Commissioner configures itself as administrator in ACL on TH if - needed" + "Step 8: Commissioner configures itself as administrator in ACL on TH + if needed" verification: | Verify in DUT as commissioner side @@ -263,8 +264,8 @@ tests: disabled: true - label: - "Commissioner configures operational network on TH if TH both supports - and requires" + "Step 9: Commissioner configures operational network on TH if TH both + supports and requires" verification: | Verify in DUT as commissioner side @@ -315,8 +316,8 @@ tests: disabled: true - label: - "Commissioner instructs Commissionee to connect to operational network - if not already connected" + "Step 10: Commissioner instructs Commissionee to connect to + operational network if not already connected" verification: | Verify in DUT as commissioner side @@ -368,19 +369,21 @@ tests: disabled: true - label: - "Commissioning channel between the Commissioner and Commissionee is - terminated." + "Step 11: Commissioning channel between the Commissioner and + Commissionee is terminated." verification: | Verify the channel was terminated on DUT as commissioner side: [1651271753284] [23287:743790] CHIP: [CTL] Received CommissioningComplete response - [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651271753284] [23287:743790] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651271753284] [23287:743790] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651271753284] [23287:743790] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651271753284] [23287:743790] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651271753284] [23287:743790] CHIP: [TOO] Device commissioning completed with success disabled: true - - label: "Commissioner starts discovery of TH using Operational Discovery" + - label: + "Step 12: Commissioner starts discovery of TH using Operational + Discovery" verification: | Verify in DUT as commissioner side @@ -391,7 +394,8 @@ tests: disabled: true - label: - "Commissioner opens a CASE session with TH over operational network" + "Step 13: Commissioner opens a CASE session with TH over operational + network" verification: | Verify in DUT as commissioner side @@ -430,7 +434,7 @@ tests: CHIP:IN: New secure session created for device 0x0000000000000001, LSID:2 PSID:2! disabled: true - - label: "Commissioner sends CommissioningComplete command" + - label: "Step 14: Commissioner sends CommissioningComplete command" verification: | Verify in DUT as commissioner side diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml index a758cfc0156429..70c6f17f302dd0 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml @@ -38,14 +38,14 @@ tests: disabled: true - label: - "Commissioner has regulatory and fabric information available and has - accurate date, time and timezone" + "Step 1: Commissioner has regulatory and fabric information available + and has accurate date, time and timezone" verification: | Verify in TH as server side - ./chip-all-clusters-app --wifi --discriminator 3841 + sudo ./chip-all-clusters-app --wifi --discriminator 3841 [1653471956.966855][10713:10713] CHIP:SPT: PASE PBKDF iterations set to 1000 - [1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn"t get a PASE salt, generating one. + [1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn't get a PASE salt, generating one. [1653471956.972152][10713:10713] CHIP:DL: Device Configuration: [1653471956.972270][10713:10713] CHIP:DL: Serial Number: TEST_SN [1653471956.972315][10713:10713] CHIP:DL: Vendor Id: 65521 (0xFFF1) @@ -75,12 +75,12 @@ tests: [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful - [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: "SecurePairing" -> "ReadCommissioningInfo" + [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: 'SecurePairing' -> 'ReadCommissioningInfo' disabled: true - label: - "Commissioner and Commissionee discover each other and connect via the - discovery mode applicable for the DUT." + "Step 2: Commissioner and Commissionee discover each other and connect + via the discovery mode applicable for the DUT." verification: | Verify in DUT as client side ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00 @@ -91,7 +91,7 @@ tests: [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful - [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: "SecurePairing" -> "ReadCommissioningInfo" + [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: 'SecurePairing' -> 'ReadCommissioningInfo' Verify in TH as server side @@ -103,7 +103,7 @@ tests: disabled: true - label: - "Establish encryption keys with Password Authenticated Session + "Step 3: Establish encryption keys with Password Authenticated Session Establishment on the commissioning channel" verification: | Verify in DUT as client side @@ -120,22 +120,23 @@ tests: disabled: true - label: - "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s - (the autonomously Fail-safe timer length set by Commissionee)" + "Step 4: Commissioner SHALL re-arm Fail-safe timer on Commissionee + within 60s (the autonomously Fail-safe timer length set by + Commissionee)" verification: | Verify in DUT as client side - CHIP:CTL: Commissioning stage next step: "ReadCommissioningInfo" -> "ArmFailSafe" - CHIP:CTL: Performing next commissioning step "ArmFailSafe" + CHIP:CTL: Commissioning stage next step: 'ReadCommissioningInfo' -> 'ArmFailSafe' + CHIP:CTL: Performing next commissioning step 'ArmFailSafe' CHIP:CTL: Arming failsafe (60 seconds) disabled: true - - label: "Reboot TH and prepare for commissioning" + - label: "Step 5: Reboot TH and prepare for commissioning" verification: | 1. Using TH=all-clusters-app, exit the app, re-launch app disabled: true - - label: "Commissioner should return to step 2" + - label: "Step 6: Commissioner should return to step 2" verification: | Verify in DUT as client side @@ -284,7 +285,7 @@ tests: disabled: true - label: - "Establish encryption keys with Password Authenticated Session + "Step 7: Establish encryption keys with Password Authenticated Session Establishment on the commissioning channel" verification: | Verify in DUT as client side @@ -301,24 +302,25 @@ tests: disabled: true - label: - "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s - (the autonomously Fail-safe timer length set by Commissionee)" + "Step 8: Commissioner SHALL re-arm Fail-safe timer on Commissionee + within 60s (the autonomously Fail-safe timer length set by + Commissionee)" verification: | Verify in DUT as client side - CHIP:CTL: Commissioning stage next step: "ReadCommissioningInfo" -> "ArmFailSafe" - CHIP:CTL: Performing next commissioning step "ArmFailSafe" + CHIP:CTL: Commissioning stage next step: 'ReadCommissioningInfo' -> 'ArmFailSafe' + CHIP:CTL: Performing next commissioning step 'ArmFailSafe' CHIP:CTL: Arming failsafe (60 seconds) disabled: true - label: - "Commissioner SHALL configure regulatory information in the + "Step 9: Commissioner SHALL configure regulatory information in the Commissionee." PICS: MCORE.COM.WIRELESS verification: | Verify in DUT as client side - Performing next commissioning step "ConfigRegulatory" + Performing next commissioning step 'ConfigRegulatory' [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0) @@ -327,7 +329,7 @@ tests: disabled: true - label: - "Commissioner requests operational CSR from Commissionee with + "Step 10: Commissioner requests operational CSR from Commissionee with OperationalCSRRequest command" verification: | Verify in DUT as client side @@ -337,12 +339,12 @@ tests: disabled: true - label: - "Commissioner configures operational credentials on DUT if not - previously installed" + "Step 11: Commissioner configures operational credentials on DUT if + not previously installed" verification: | Verify in DUT as client side - CHIP:CTL: Performing next commissioning step "SendTrustedRootCert" + CHIP:CTL: Performing next commissioning step 'SendTrustedRootCert' CHIP:CTL: Sending root certificate to the device CHIP:DMG: ICR moving to [AddingComm] CHIP:DMG: ICR moving to [AddedComma] @@ -353,8 +355,8 @@ tests: disabled: true - label: - "Commissioner configures itself as administrator in ACL on TH if - needed" + "Step 12: Commissioner configures itself as administrator in ACL on TH + if needed" verification: | Verify in DUT as client side after commissioning @@ -419,8 +421,8 @@ tests: disabled: true - label: - "Commissioner configures operational network on TH if TH both supports - and requires" + "Step 13: Commissioner configures operational network on TH if TH both + supports and requires" verification: | Verify in DUT as client side @@ -429,25 +431,25 @@ tests: disabled: true - label: - "Commissioner instructs Commissionee to connect to operational network - if not already connected" + "Step 14: Commissioner instructs Commissionee to connect to + operational network if not already connected" verification: | Verify in DUT as client side - CHIP:CTL: Performing next commissioning step "FindOperational" + CHIP:CTL: Performing next commissioning step 'FindOperational' CHIP:CSM: FindOrEstablishSession: PeerId = BFCBED670D527591:000000000001B669 CHIP:CSM: FindOrEstablishSession: No existing OperationalDeviceProxy instance found disabled: true - - label: "Reboot TH" + - label: "Step 15: Reboot TH" verification: | 1. Using TH=all-clusters-app, exit the app, re-launch app disabled: true - label: - "Commissioner should return to the same state as step 13 to continue - commissioning (i.e. Commissioner configure operational network on TH - if TH both supports and requires)" + "Step 16: Commissioner should return to the same state as step 13 to + continue commissioning (i.e. Commissioner configure operational + network on TH if TH both supports and requires)" verification: | Verify in DUT as client side @@ -456,17 +458,19 @@ tests: disabled: true - label: - "Commissioner instructs Commissionee to connect to operational network - if not already connected" + "Step 17: Commissioner instructs Commissionee to connect to + operational network if not already connected" verification: | Verify in DUT as client side - CHIP:CTL: Performing next commissioning step "FindOperational" + CHIP:CTL: Performing next commissioning step 'FindOperational' CHIP:CSM: FindOrEstablishSession: PeerId = BFCBED670D527591:000000000001B669 CHIP:CSM: FindOrEstablishSession: No existing OperationalDeviceProxy instance found disabled: true - - label: "Commissioner starts discovery of TH using Operational Discovery" + - label: + "Step 18: Commissioner starts discovery of TH using Operational + Discovery" verification: | Verify in DUT as client side @@ -483,30 +487,31 @@ tests: disabled: true - label: - "Commissioner opens a CASE session with TH over operational network" + "Step 19: Commissioner opens a CASE session with TH over operational + network" verification: | Verify in DUT as client side CHIP:SC: Establishing CASE session disabled: true - - label: "Commissioner sends CommissioningComplete command" + - label: "Step 20: Commissioner sends CommissioningComplete command" verification: | Verify in DUT as client side CHIP:CTL: Received CommissioningComplete response - CHIP:CTL: Successfully finished commissioning step "SendComplete" + CHIP:CTL: Successfully finished commissioning step 'SendComplete' disabled: true - label: - "Commissioning channel between the Commissioner and Commissionee is - terminated." + "Step 21: Commissioning channel between the Commissioner and + Commissionee is terminated." verification: | Verify in DUT as client side - CHIP:CTL: Successfully finished commissioning step "SendComplete" - CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup" - CHIP:CTL: Performing next commissioning step "Cleanup" - CHIP:CTL: Successfully finished commissioning step "Cleanup" + CHIP:CTL: Successfully finished commissioning step 'SendComplete' + CHIP:CTL: Commissioning stage next step: 'SendComplete' -> 'Cleanup' + CHIP:CTL: Performing next commissioning step 'Cleanup' + CHIP:CTL: Successfully finished commissioning step 'Cleanup' CHIP:TOO: Device commissioning completed with success disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml index 28844d87cee3c2..8410f4c0aab5eb 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml @@ -38,15 +38,15 @@ tests: disabled: true - label: - "Commissioner has regulatory and fabric information available and has - accurate date, time and timezone" + "Step 1: Commissioner has regulatory and fabric information available + and has accurate date, time and timezone" verification: | 1. Manually verify that the time, date and timezone is accurate for the DUT Commissioner disabled: true - label: - "Commissioner and Commissionee discover each other and connect via the - discovery mode applicable for the DUT." + "Step 2: Commissioner and Commissionee discover each other and connect + via the discovery mode applicable for the DUT." verification: | Verify in TH as server side: start BLE Advertising by specific DUT implementation @@ -56,7 +56,7 @@ tests: disabled: true - label: - "Establish encryption keys with Password Authenticated Session + "Step 3: Establish encryption keys with Password Authenticated Session Establishment on the commissioning channel" verification: | Verify in DUT as client side @@ -65,8 +65,9 @@ tests: disabled: true - label: - "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s - (the autonomously Fail-safe timer length set by Commissionee)" + "Step 4: Commissioner SHALL re-arm Fail-safe timer on Commissionee + within 60s (the autonomously Fail-safe timer length set by + Commissionee)" verification: | Verify in DUT as client side @@ -74,13 +75,13 @@ tests: disabled: true - label: - "Commissioner SHALL configure regulatory information in the + "Step 5: Commissioner SHALL configure regulatory information in the Commissionee." PICS: MCORE.COM.WIRELESS verification: | Verify in DUT as client side - Performing next commissioning step "ConfigRegulatory" + Performing next commissioning step 'ConfigRegulatory' [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0) @@ -89,7 +90,7 @@ tests: disabled: true - label: - "Commissioner requests operational CSR from Commissionee with + "Step 6: Commissioner requests operational CSR from Commissionee with OperationalCSRRequest command" verification: | Verify in DUT as client side @@ -153,7 +154,7 @@ tests: disabled: true - label: - "Commissioner configures operational credentials on DUT if not + "Step 7: Commissioner configures operational credentials on DUT if not previously installed" verification: | Verify in DUT as client side @@ -207,8 +208,8 @@ tests: disabled: true - label: - "Commissioner configures itself as administrator in ACL on TH if - needed" + "Step 8: Commissioner configures itself as administrator in ACL on TH + if needed" verification: | Verify in DUT as client side @@ -263,8 +264,8 @@ tests: disabled: true - label: - "Commissioner configures operational network on TH if TH both supports - and requires" + "Step 9: Commissioner configures operational network on TH if TH both + supports and requires" verification: | Verify in DUT as client side @@ -315,8 +316,8 @@ tests: disabled: true - label: - "Commissioner instructs Commissionee to connect to operational network - if not already connected" + "Step 10: Commissioner instructs Commissionee to connect to + operational network if not already connected" verification: | Verify in DUT as client side @@ -368,26 +369,26 @@ tests: disabled: true - label: - "Commissioning channel between the Commissioner and Commissionee is - terminated." + "Step 11: Commissioning channel between the Commissioner and + Commissionee is terminated." verification: | 1. Verify the channel was terminated on DUT=chip-tool [1651271753284] [23287:743790] CHIP: [CTL] Received CommissioningComplete response - [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651271753284] [23287:743790] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651271753284] [23287:743790] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651271753284] [23287:743790] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651271753284] [23287:743790] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651271753284] [23287:743790] CHIP: [TOO] Device commissioning completed with success disabled: true - - label: "Reboot TH and prepare for commissioning" + - label: "Step 12: Reboot TH and prepare for commissioning" verification: | 1. Using TH=all-clusters-app, exit the app, re-launch app disabled: true - label: - "Establish encryption keys with Password Authenticated Session - Establishment on the commissioning channel" + "Step 13: Establish encryption keys with Password Authenticated + Session Establishment on the commissioning channel" verification: | Verify in DUT as client side @@ -395,8 +396,8 @@ tests: disabled: true - label: - "Commissioner re-arms Fail-safe timer on Commissionee within 60s (the - autonomously Fail-safe timer length set by Commissionee)" + "Step 14: Commissioner re-arms Fail-safe timer on Commissionee within + 60s (the autonomously Fail-safe timer length set by Commissionee)" verification: | Verify in DUT as client side @@ -404,14 +405,14 @@ tests: disabled: true - label: - "Commissioner SHALL configure regulatory information in the + "Step 15: Commissioner SHALL configure regulatory information in the Commissionee." PICS: MCORE.COM.WIRELESS verification: | Verify in DUT as client side - Performing next commissioning step "ConfigRegulatory" + Performing next commissioning step 'ConfigRegulatory' [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0) @@ -420,7 +421,7 @@ tests: disabled: true - label: - "Commissioner requests operational CSR from Commissionee with + "Step 16: Commissioner requests operational CSR from Commissionee with OperationalCSRRequest command" verification: | Verify in DUT as client side @@ -484,8 +485,8 @@ tests: disabled: true - label: - "Commissioner configures operational credentials on DUT if not - previously installed" + "Step 17: Commissioner configures operational credentials on DUT if + not previously installed" verification: | Verify in DUT as client side @@ -538,8 +539,8 @@ tests: disabled: true - label: - "Commissioner configures itself as administrator in ACL on TH if - needed" + "Step 18: Commissioner configures itself as administrator in ACL on TH + if needed" verification: | Verify in DUT as client side @@ -594,8 +595,8 @@ tests: disabled: true - label: - "Commissioner configures operational network on TH if TH both supports - and requires" + "Step 19: Commissioner configures operational network on TH if TH both + supports and requires" verification: | Verify in DUT as client side @@ -646,8 +647,8 @@ tests: disabled: true - label: - "Commissioner instructs Commissionee to connect to operational network - if not already connected" + "Step 20: Commissioner instructs Commissionee to connect to + operational network if not already connected" verification: | Verify in DUT as client side @@ -699,19 +700,21 @@ tests: disabled: true - label: - "Commissioning channel between the Commissioner and Commissionee is - terminated." + "Step 21: Commissioning channel between the Commissioner and + Commissionee is terminated." verification: | 1. Verify the channel was terminated on DUT=chip-tool [1651271753284] [23287:743790] CHIP: [CTL] Received CommissioningComplete response - [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step "SendComplete" - [1651271753284] [23287:743790] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup" - [1651271753284] [23287:743790] CHIP: [CTL] Performing next commissioning step "Cleanup" - [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step "Cleanup" + [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step 'SendComplete' + [1651271753284] [23287:743790] CHIP: [CTL] Commissioning stage next step: 'SendComplete' -> 'Cleanup' + [1651271753284] [23287:743790] CHIP: [CTL] Performing next commissioning step 'Cleanup' + [1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step 'Cleanup' [1651271753284] [23287:743790] CHIP: [TOO] Device commissioning completed with success disabled: true - - label: "Commissioner starts discovery of TH using Operational Discovery" + - label: + "Step 22: Commissioner starts discovery of TH using Operational + Discovery" verification: | Verify in DUT as client side @@ -722,7 +725,8 @@ tests: disabled: true - label: - "Commissioner opens a CASE session with TH over operational network" + "Step 23: Commissioner opens a CASE session with TH over operational + network" verification: | Verify in DUT as client side @@ -761,7 +765,7 @@ tests: CHIP:IN: New secure session created for device 0x0000000000000001, LSID:2 PSID:2! disabled: true - - label: "Commissioner sends CommissioningComplete command" + - label: "Step 24: Commissioner sends CommissioningComplete command" verification: | Verify in DUT as client side diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml index e7896871b1208b..24f263fdc450b5 100644 --- a/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml @@ -31,7 +31,7 @@ tests: 1 - Commissioner is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available. disabled: true - - label: "TH receives Onboarding Payload from the DUT" + - label: "Step 1: TH receives Onboarding Payload from the DUT" verification: | 1. Run DUT. Example for DUT=all-clusters app ./chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021 @@ -51,9 +51,9 @@ tests: disabled: true - label: - "Follow any custom steps, guided by a service provided by the DUTs - manufacturer for initial device setup, then place the DUT Commissionee - into commissioning mode." + "Step 2: Follow any custom steps, guided by a service provided by the + DUT's manufacturer for initial device setup, then place the DUT + Commissionee into commissioning mode." verification: | 1. Follow DUT vendor-specific steps to put DUT into commissioning mode @@ -85,7 +85,7 @@ tests: Observe the DUT advertising in a commissionable state disabled: true - - label: "DUT is commissioned by the TH" + - label: "Step 3: DUT is commissioned by the TH" verification: | 1. Pair the DUT commissionee using the TH=chip-tool commissioner on the applicable Discovery technology (IP, BLE, etc.) 2. Verify that the DUT is commissioned to the TH commissioner successfully diff --git a/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml index 821e7905d073eb..3e725d334c4b05 100644 --- a/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml @@ -37,8 +37,8 @@ tests: disabled: true - label: - "TH reads DeviceTypeList and PartsList attributes from DUT for - Endpoint 0" + "Step 1a: TH reads DeviceTypeList and PartsList attributes from DUT + for Endpoint 0" PICS: DESC.S.A0000 && DESC.S.A0003 verification: | Send a read request to the DUT using chip-tool to read the partsList attribute in the descriptor cluster on Endpoint 0. @@ -46,9 +46,8 @@ tests: ./chip-tool descriptor read parts-list 1 0 - Verify "PartsList" response is not empty (use this list of endpoints in step 1b) on the TH (Chip-tool) and below is the sample log provided for the raspi platform: + Verify "PartsList" attribute is not empty (use this list of endpoints in step 1b) on the TH (Chip-tool) and below is the sample log provided for the raspi platform: - } [1672919206.069327][33426:33428] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2847656117 [1672919206.069380][33426:33428] CHIP:TOO: PartsList: 2 entries [1672919206.069398][33426:33428] CHIP:TOO: [1]: 1 @@ -56,7 +55,9 @@ tests: ./chip-tool descriptor read device-type-list 1 0 - Verify "DeviceTypeList" response has at least one entry as Root Node Device Type and is not an Application Device Types on TH (Chip-tool) and below is the sample log provided for the raspi platform and Revision value is not less than 1: + on TH (Chip-tool) log, Verify "DeviceTypeList" count is at least one entry and + - The entry should contain one Root Node Device Type, here 22(In hex 0x0016) is a Root Node Device Type + - Revision value is not less than 1 and it should match the Revision of the DeviceType and below is the sample log provided for the raspi platform [1674552598.748946][21129:21131] CHIP:DMG: } [1674552598.749017][21129:21131] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2963153058 @@ -68,13 +69,12 @@ tests: disabled: true - label: - "TH reads DeviceTypeList and PartsList attributes from DUT for each - Endpoint supported by DUT (except Endpoint 0)." + "Step 1b: TH reads DeviceTypeList and PartsList attributes from DUT + for each Endpoint supported by DUT (except Endpoint 0)." PICS: DESC.S.A0000 && DESC.S.A0003 verification: | For all the Endpoint’s listed from the previous step run the following steps. The device type should correspond to the id value in the device_type.json - Chip tool outputs all values in integer, convert to hex before comparing. - + Chip tool outputs all values in integer, convert to hex before comparing. ./chip-tool descriptor read parts-list 1 1 @@ -85,8 +85,11 @@ tests: ./chip-tool descriptor read device-type-list 1 1 - Verify DeviceTypeList response contains 1 entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform: - + On TH (Chip-tool) log, Verify that + - If PartsLists count is 0 then, DeviceTypeList count is at least one. + - DeviceTypeList should contains exactly one Application Device Type [In below log 256(In hex 0x100) is a Application Device Type(On/OffLight)] or set of Application Device Types which are a subset of each other. + - DeviceTypeList may contain one or more Utility Device Types, but not Root Node Device Type. + - Revision value is not less than 1 and it should match the Revision of the DeviceType and below is the sample log provided for the raspi platform [1674552599.264189][21135:21137] CHIP:DMG: } [1674552599.264258][21135:21137] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2605122001 @@ -106,7 +109,12 @@ tests: ./chip-tool descriptor read device-type-list 1 2 - Verify DeviceTypeList response contains 1 entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform: + On TH (Chip-tool) log, Verify that + - If PartsLists count is 0 then, DeviceTypeList count is at least one. + - DeviceTypeList should contains exactly one Application Device Type [In below log 256(In hex 0x100) is a Application Device Type(On/OffLight)] or set of Application Device Types which are a subset of each other. + - DeviceTypeList may contain one or more Utility Device Types, but not Root Node Device Type. + - Revision value is not less than 1 and it should match the Revision of the DeviceType and below is the sample log provided for the raspi platform + [1674552599.786124][21141:21143] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4029338401 [1674552599.786141][21141:21143] CHIP:TOO: DeviceTypeList: 1 entries [1674552599.786155][21141:21143] CHIP:TOO: [1]: { @@ -115,86 +123,98 @@ tests: [1674552599.786171][21141:21143] CHIP:TOO: } disabled: true - - label: "TH reads 'ServerList' attribute." + - label: "Step 2: TH reads 'ServerList' attribute." PICS: DESC.S.A0001 verification: | For all the Endpoint id’s listed in step 1a run the following steps. For all the server list entries listed in the output - Convert them to Hex values. For example 29 is 0x001D. Verify that these are also present in the device_type.json. Every server cluster listed in the JSON should correspond to a number here in the output. ./chip-tool descriptor read server-list 1 1 - Verify server list on the TH (Chip-tool) and below is the sample log provided for the raspi platform: - - - [1676367247.572430][9790:9792] CHIP:DMG: } - [1676367247.572742][9790:9792] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 3336430903 - [1676367247.572770][9790:9792] CHIP:TOO: ServerList: 45 entries - [1676367247.572775][9790:9792] CHIP:TOO: [1]: 3 - [1676367247.572778][9790:9792] CHIP:TOO: [2]: 4 - [1676367247.572781][9790:9792] CHIP:TOO: [3]: 5 - [1676367247.572784][9790:9792] CHIP:TOO: [4]: 6 - [1676367247.572787][9790:9792] CHIP:TOO: [5]: 7 - [1676367247.572790][9790:9792] CHIP:TOO: [6]: 8 - [1676367247.572792][9790:9792] CHIP:TOO: [7]: 15 - [1676367247.572795][9790:9792] CHIP:TOO: [8]: 29 - [1676367247.572798][9790:9792] CHIP:TOO: [9]: 30 - [1676367247.572801][9790:9792] CHIP:TOO: [10]: 37 - [1676367247.572804][9790:9792] CHIP:TOO: [11]: 47 - [1676367247.572807][9790:9792] CHIP:TOO: [12]: 59 - [1676367247.572810][9790:9792] CHIP:TOO: [13]: 64 - [1676367247.572813][9790:9792] CHIP:TOO: [14]: 65 - [1676367247.572815][9790:9792] CHIP:TOO: [15]: 69 - [1676367247.572818][9790:9792] CHIP:TOO: [16]: 80 - [1676367247.572821][9790:9792] CHIP:TOO: [17]: 257 - [1676367247.572824][9790:9792] CHIP:TOO: [18]: 258 - [1676367247.572827][9790:9792] CHIP:TOO: [19]: 259 - [1676367247.572829][9790:9792] CHIP:TOO: [20]: 512 - [1676367247.572832][9790:9792] CHIP:TOO: [21]: 513 - [1676367247.572835][9790:9792] CHIP:TOO: [22]: 514 - [1676367247.572838][9790:9792] CHIP:TOO: [23]: 516 - [1676367247.572841][9790:9792] CHIP:TOO: [24]: 768 - [1676367247.572843][9790:9792] CHIP:TOO: [25]: 769 - [1676367247.572846][9790:9792] CHIP:TOO: [26]: 1024 - [1676367247.572849][9790:9792] CHIP:TOO: [27]: 1026 - [1676367247.572852][9790:9792] CHIP:TOO: [28]: 1027 - [1676367247.572855][9790:9792] CHIP:TOO: [29]: 1028 - [1676367247.572858][9790:9792] CHIP:TOO: [30]: 1029 - [1676367247.572860][9790:9792] CHIP:TOO: [31]: 1030 - [1676367247.572863][9790:9792] CHIP:TOO: [32]: 1283 - [1676367247.572866][9790:9792] CHIP:TOO: [33]: 1284 - [1676367247.572869][9790:9792] CHIP:TOO: [34]: 1285 - [1676367247.572872][9790:9792] CHIP:TOO: [35]: 1286 - [1676367247.572874][9790:9792] CHIP:TOO: [36]: 1287 - [1676367247.572877][9790:9792] CHIP:TOO: [37]: 1288 - [1676367247.572880][9790:9792] CHIP:TOO: [38]: 1289 - [1676367247.572883][9790:9792] CHIP:TOO: [39]: 1290 - [1676367247.572886][9790:9792] CHIP:TOO: [40]: 1291 - [1676367247.572889][9790:9792] CHIP:TOO: [41]: 1292 - [1676367247.572892][9790:9792] CHIP:TOO: [42]: 1293 - [1676367247.572894][9790:9792] CHIP:TOO: [43]: 1294 - [1676367247.572897][9790:9792] CHIP:TOO: [44]: 2820 - [1676367247.572900][9790:9792] CHIP:TOO: [45]: 4294048773 - - ./chip-tool descriptor read server-list 1 2 - - Verify server list entries on TH (Chip-tool) Log: - - [1660146145.982691][46811:46816] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1051414887 - [1660146145.982733][46811:46816] CHIP:TOO: server list: 5 entries - [1660146145.982744][46811:46816] CHIP:TOO: [1]: 4 - [1660146145.982752][46811:46816] CHIP:TOO: [2]: 6 - [1660146145.982759][46811:46816] CHIP:TOO: [3]: 29 - [1660146145.982771][46811:46816] CHIP:TOO: [4]: 47 - [1660146145.982778][46811:46816] CHIP:TOO: [5]: 1030 + Verify ServerList entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform, Here ServerList entries are 69. + + [1689762254.556272][4639:4641] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1164998279 + [1689762254.556406][4639:4641] CHIP:TOO: ServerList: 71 entries + [1689762254.556437][4639:4641] CHIP:TOO: [1]: 3 + [1689762254.556462][4639:4641] CHIP:TOO: [2]: 4 + [1689762254.556486][4639:4641] CHIP:TOO: [3]: 5 + [1689762254.556511][4639:4641] CHIP:TOO: [4]: 6 + [1689762254.556535][4639:4641] CHIP:TOO: [5]: 7 + [1689762254.556559][4639:4641] CHIP:TOO: [6]: 8 + [1689762254.556583][4639:4641] CHIP:TOO: [7]: 15 + [1689762254.556608][4639:4641] CHIP:TOO: [8]: 29 + [1689762254.556632][4639:4641] CHIP:TOO: [9]: 30 + [1689762254.556657][4639:4641] CHIP:TOO: [10]: 37 + [1689762254.556681][4639:4641] CHIP:TOO: [11]: 47 + [1689762254.556705][4639:4641] CHIP:TOO: [12]: 59 + [1689762254.556730][4639:4641] CHIP:TOO: [13]: 64 + [1689762254.556782][4639:4641] CHIP:TOO: [14]: 65 + [1689762254.556810][4639:4641] CHIP:TOO: [15]: 69 + [1689762254.556834][4639:4641] CHIP:TOO: [16]: 80 + [1689762254.556858][4639:4641] CHIP:TOO: [17]: 87 + [1689762254.556883][4639:4641] CHIP:TOO: [18]: 91 + [1689762254.556907][4639:4641] CHIP:TOO: [19]: 92 + [1689762254.556931][4639:4641] CHIP:TOO: [20]: 96 + [1689762254.556955][4639:4641] CHIP:TOO: [21]: 113 + [1689762254.556980][4639:4641] CHIP:TOO: [22]: 114 + [1689762254.557004][4639:4641] CHIP:TOO: [23]: 115 + [1689762254.557028][4639:4641] CHIP:TOO: [24]: 116 + [1689762254.557052][4639:4641] CHIP:TOO: [25]: 117 + [1689762254.557077][4639:4641] CHIP:TOO: [26]: 118 + [1689762254.557101][4639:4641] CHIP:TOO: [27]: 119 + [1689762254.557125][4639:4641] CHIP:TOO: [28]: 120 + [1689762254.557149][4639:4641] CHIP:TOO: [29]: 121 + [1689762254.557173][4639:4641] CHIP:TOO: [30]: 122 + [1689762254.557198][4639:4641] CHIP:TOO: [31]: 123 + [1689762254.557222][4639:4641] CHIP:TOO: [32]: 124 + [1689762254.557246][4639:4641] CHIP:TOO: [33]: 257 + [1689762254.557270][4639:4641] CHIP:TOO: [34]: 258 + [1689762254.557295][4639:4641] CHIP:TOO: [35]: 259 + [1689762254.557319][4639:4641] CHIP:TOO: [36]: 512 + [1689762254.557343][4639:4641] CHIP:TOO: [37]: 513 + [1689762254.557368][4639:4641] CHIP:TOO: [38]: 514 + [1689762254.557392][4639:4641] CHIP:TOO: [39]: 516 + [1689762254.557416][4639:4641] CHIP:TOO: [40]: 768 + [1689762254.557440][4639:4641] CHIP:TOO: [41]: 769 + [1689762254.557465][4639:4641] CHIP:TOO: [42]: 1024 + [1689762254.557489][4639:4641] CHIP:TOO: [43]: 1026 + [1689762254.557514][4639:4641] CHIP:TOO: [44]: 1027 + [1689762254.557538][4639:4641] CHIP:TOO: [45]: 1028 + [1689762254.557562][4639:4641] CHIP:TOO: [46]: 1029 + [1689762254.557587][4639:4641] CHIP:TOO: [47]: 1030 + [1689762254.557611][4639:4641] CHIP:TOO: [48]: 1036 + [1689762254.557635][4639:4641] CHIP:TOO: [49]: 1037 + [1689762254.557659][4639:4641] CHIP:TOO: [50]: 1043 + [1689762254.557684][4639:4641] CHIP:TOO: [51]: 1045 + [1689762254.557708][4639:4641] CHIP:TOO: [52]: 1066 + [1689762254.557732][4639:4641] CHIP:TOO: [53]: 1067 + [1689762254.557757][4639:4641] CHIP:TOO: [54]: 1068 + [1689762254.557781][4639:4641] CHIP:TOO: [55]: 1069 + [1689762254.557805][4639:4641] CHIP:TOO: [56]: 1070 + [1689762254.557829][4639:4641] CHIP:TOO: [57]: 1071 + [1689762254.557853][4639:4641] CHIP:TOO: [58]: 1283 + [1689762254.557878][4639:4641] CHIP:TOO: [59]: 1284 + [1689762254.557902][4639:4641] CHIP:TOO: [60]: 1285 + [1689762254.557926][4639:4641] CHIP:TOO: [61]: 1286 + [1689762254.557950][4639:4641] CHIP:TOO: [62]: 1287 + [1689762254.557975][4639:4641] CHIP:TOO: [63]: 1288 + [1689762254.557999][4639:4641] CHIP:TOO: [64]: 1289 + [1689762254.558024][4639:4641] CHIP:TOO: [65]: 1290 + [1689762254.558048][4639:4641] CHIP:TOO: [66]: 1291 + [1689762254.558072][4639:4641] CHIP:TOO: [67]: 1292 + [1689762254.558097][4639:4641] CHIP:TOO: [68]: 1293 + [1689762254.558121][4639:4641] CHIP:TOO: [69]: 1294 + [1689762254.558145][4639:4641] CHIP:TOO: [70]: 2820 + [1689762254.558170][4639:4641] CHIP:TOO: [71]: 4294048773 disabled: true - - label: "TH reads 'ClientList' attribute" + - label: "Step 3: TH reads 'ClientList' attribute" PICS: DESC.S.A0002 verification: | For all the Endpoint id’s listed in step 1a run the following steps. For all the client list entries listed in the output - Convert them to Hex values. For example 29 is 0x001D. Verify that these are also present in the device_type.json. Every server cluster listed in the JSON should correspond to a number here in the output. ./chip-tool descriptor read client-list 1 1 - Verify client list entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform: + Verify client list entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform, Here ClientList entries are 1. [1676367470.160199][9805:9807] CHIP:DMG: } [1676367470.160268][9805:9807] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0002 DataVersion: 3336430903 @@ -204,13 +224,13 @@ tests: ./chip-tool descriptor read client-list 1 2 - Verify client list entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform: + Verify client list entries on the TH (Chip-tool) and below is the sample log provided for the raspi platform, Here ClientList entries are 0. [1660146160.390200][46818:46823] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0002 DataVersion: 1051414887 - [1660146160.390211][46818:46823] CHIP:TOO: client list: 0 entries + [1660146160.390211][46818:46823] CHIP:TOO: ClientList: 0 entries disabled: true - - label: "TH reads 'PartsList' attribute." + - label: "Step 4: TH reads 'PartsList' attribute." PICS: DESC.S.A0003 verification: | ./chip-tool descriptor read parts-list 1 0 @@ -223,9 +243,14 @@ tests: [1672919326.178777][33468:33470] CHIP:TOO: [2]: 2 disabled: true + - label: "Step 5: TH reads from the DUT the 'TagList' attribute." + verification: | + Chip-tool has to implement the Taglist attribute + disabled: true + - label: - "The cluster tests applicable to each Device Type should be executed - to make sure all mandatory (and applicable optional) + "Step 6: The cluster tests applicable to each Device Type should be + executed to make sure all mandatory (and applicable optional) attributes/commands are implemented." verification: | This step is redundant as during certification the appropriate tests are being run diff --git a/src/app/tests/suites/certification/Test_TC_DESC_2_2_Simulated.yaml b/src/app/tests/suites/certification/Test_TC_DESC_2_2_Simulated.yaml index c9675237edaa55..6a5cc7c919395e 100644 --- a/src/app/tests/suites/certification/Test_TC_DESC_2_2_Simulated.yaml +++ b/src/app/tests/suites/certification/Test_TC_DESC_2_2_Simulated.yaml @@ -46,3 +46,16 @@ tests: PICS: DESC.C.A0003 wait: "readAttribute" attribute: "PartsList" + + - label: "DUT reads TagList from the TH" + PICS: PICS_USER_PROMPT + verification: | + Chip-tool has to implement the Taglist attribute + cluster: "LogCommands" + command: "UserPrompt" + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml index 01a43c0b146f90..93078217b6cac4 100644 --- a/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml @@ -66,8 +66,11 @@ tests: Verify the value of PacketRxCount is in range uint64 on TH(chip-tool) log - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0002 DataVersion: 3872576452 - [1649663623.009973][8103:8108] CHIP:TOO: PacketRxCount: 3322 + [1687347048.760521][160021:160023] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0002 DataVersion: 2942806365 + [1687347048.760567][160021:160023] CHIP:TOO: PacketRxCount: 286 + [1687347048.760621][160021:160023] CHIP:EM: <<< [E:20760i S:62442 M:2940871 (Ack:194995517)] (S) Msg TX to 1:0000000000000001 [096C] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1687347048.760632][160021:160023] CHIP:IN: (S) Sending msg 2940871 on secure session with LSID: 62442 + [1687347048.760681][160021:160023] CHIP:EM: Flushed pending ack for MessageCounter:194995517 on exchange 20760i cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && DGETH.S.A0002 @@ -94,8 +97,12 @@ tests: Verify the value of PacketTxCount is in range uint64 on TH(chip-tool) Log - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0003 DataVersion: 3872576452 - [1649663793.192934][8117:8122] CHIP:TOO: PacketTxCount: 3220 + [1687347066.917105][160026:160028] CHIP:DMG: } + [1687347066.917138][160026:160028] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0003 DataVersion: 2942806365 + [1687347066.917163][160026:160028] CHIP:TOO: PacketTxCount: 610 + [1687347066.917187][160026:160028] CHIP:EM: <<< [E:25784i S:60435 M:6319619 (Ack:183312357)] (S) Msg TX to 1:0000000000000001 [096C] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1687347066.917192][160026:160028] CHIP:IN: (S) Sending msg 6319619 on secure session with LSID: 60435 + [1687347066.917217][160026:160028] CHIP:EM: Flushed pending ack for MessageCounter:183312357 on exchange 25784i cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && DGETH.S.A0003 @@ -147,12 +154,14 @@ tests: indicates the number of collision occurred while transmitting packets on ethernet network interface" verification: | - ./chip-tool ethernetnetworkdiagnostics read collision-count 1 0 - - Verify the value of CollisionCount is in range uint64 on TH(chip-tool) Log + ./chip-tool ethernetnetworkdiagnostics read tx-err-count 1 0 - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0005 DataVersion: 3872576452 - [1649663870.221742][8133:8138] CHIP:TOO: CollisionCount: 0 + Verify the value of TxErrCount is in range uint64 on TH(chip-tool) Log + [1687347083.503598][160029:160031] CHIP:DMG: } + [1687347083.503668][160029:160031] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0004 DataVersion: 2942806365 + [1687347083.503714][160029:160031] CHIP:TOO: TxErrCount: 0 + [1687347083.503797][160029:160031] CHIP:EM: <<< [E:52218i S:59742 M:235974545 (Ack:86510465)] (S) Msg TX to 1:0000000000000001 [096C] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1687347083.503811][160029:160031] CHIP:IN: (S) Sending msg 235974545 on secure session with LSID: 59742 cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && DGETH.S.A0005 @@ -180,8 +189,12 @@ tests: Verify the value of OverrunCount is in range uint64 on TH(chip-tool) Log - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0006 DataVersion: 3872576452 - [1649663948.738274][8142:8147] CHIP:TOO: OverrunCount: 0 + [1687347120.446609][160039:160041] CHIP:DMG: } + [1687347120.446640][160039:160041] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0006 DataVersion: 2942806365 + [1687347120.446659][160039:160041] CHIP:TOO: OverrunCount: 0 + [1687347120.446682][160039:160041] CHIP:EM: <<< [E:16803i S:59128 M:141104124 (Ack:148139165)] (S) Msg TX to 1:0000000000000001 [096C] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1687347120.446686][160039:160041] CHIP:IN: (S) Sending msg 141104124 on secure session with LSID: 59128 + [1687347120.446707][160039:160041] CHIP:EM: Flushed pending ack for MessageCounter:148139165 on exchange 16803i cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && DGETH.S.A0006 @@ -209,8 +222,12 @@ tests: Verify the value of CarrierDetect is either bool or if the interface is not configured or operational, NULL should be read, this is optional attribute implemented in RPI, may vary based on DUT implementation on TH(chip-tool) Log: - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0007 DataVersion: 3872576452 - [1649663972.829304][8149:8154] CHIP:TOO: CarrierDetect: null + [1687347138.406057][160043:160045] CHIP:DMG: } + [1687347138.406124][160043:160045] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0007 DataVersion: 2942806365 + [1687347138.406151][160043:160045] CHIP:TOO: CarrierDetect: null + [1687347138.406212][160043:160045] CHIP:EM: <<< [E:63037i S:51494 M:51175683 (Ack:138099847)] (S) Msg TX to 1:0000000000000001 [096C] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1687347138.406225][160043:160045] CHIP:IN: (S) Sending msg 51175683 on secure session with LSID: 51494 + [1687347138.406267][160043:160045] CHIP:EM: Flushed pending ack for MessageCounter:138099847 on exchange 63037i cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && DGETH.S.A0007 @@ -237,8 +254,12 @@ tests: Verify the value of TimeSinceReset is in range uint64, If the interface is not configured or operational, NULL should be read, this is optional attribute implemented in RPI, may vary based on DUT implementation on TH(chip-tool) Log: - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0008 DataVersion: 3872576452 - [1649664046.010810][8158:8163] CHIP:TOO: TimeSinceReset: 5219 + [1687347156.459485][160053:160055] CHIP:DMG: } + [1687347156.459542][160053:160055] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0008 DataVersion: 2942806365 + [1687347156.459573][160053:160055] CHIP:TOO: TimeSinceReset: 228 + [1687347156.459644][160053:160055] CHIP:EM: <<< [E:9032i S:5312 M:202808493 (Ack:150717838)] (S) Msg TX to 1:0000000000000001 [096C] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1687347156.459656][160053:160055] CHIP:IN: (S) Sending msg 202808493 on secure session with LSID: 5312 + [1687347156.459701][160053:160055] CHIP:EM: Flushed pending ack for MessageCounter:150717838 on exchange 9032i cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && DGETH.S.A0008 diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml index 5873be3dd4670c..184b36a5531ea3 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml @@ -19,7 +19,7 @@ PICS: - DGGEN.S config: - nodeId: 0x12344321 + nodeId: "0x12344321" cluster: "Basic Information" endpoint: 0 @@ -37,23 +37,22 @@ tests: 5. Follow the Verification step below to generate the event in 2nd terminal of DUT " disabled: true - - label: "Commission DUT to TH" + - label: "Step 1: Commission DUT to TH" verification: | - + Commission DUT to TH disabled: true - label: - "Induce a DUT hardware failure two times as addressed in HardwareFault - ENUM table 11.11.6.1. (Ex. Pull the DUT power plug off causing power - source failure, and rejoin DUT back to previous TH fabric. Next, - repeat power plug off and rejoining DUT back to previous TH fabric one - more time.)" + "Step 2: Induce a DUT hardware failure two times as addressed in + HardwareFault ENUM table 11.11.6.1. (Ex. Pull the DUT power plug off + causing power source failure, and rejoin DUT back to previous TH + fabric. Next, repeat power plug off and rejoining DUT back to previous + TH fabric one more time.)" PICS: DGGEN.S.E00 verification: | Optional Event so its not compulsory to get the expected outcome - On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT - + To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) echo '{"Name":"HardwareFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) ./chip-tool generaldiagnostics read-event hardware-fault-change 1 0 @@ -81,22 +80,23 @@ tests: disabled: true - label: - "Induce a DUT radio failure two times as addressed in RadioFault ENUM - table 11.11.6.2. (Ex. Put the DUT under metallic cover causing WiFi - failure. Uncover DUT and make DUT rejoining DUT back to previous TH - fabric. Repeat the radio failure one more time and rejoin DUT back to - previous TH fabric." + "Step 3: Induce a DUT radio failure two times as addressed in + RadioFault ENUM table 11.11.6.2. (Ex. Put the DUT under metallic cover + causing WiFi failure. Uncover DUT and make DUT rejoining DUT back to + previous TH fabric. Repeat the radio failure one more time and rejoin + DUT back to previous TH fabric." PICS: DGGEN.S.E01 verification: | Optional Event so its not compulsory to get the expected outcome - On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT + + To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) echo '{"Name":"RadioFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) ./chip-tool generaldiagnostics read-event radio-fault-change 1 0 Verify that RadioFaultChange Event SHALL indicate a change in the set of radio faults currently detected - by the Node.TH receives RadioFaultChange event with current and previous data specified by RadioFault ENUM table 11.11.6.2 according to two repeated failures On TH(chip-tool) + by the Node.TH receives RadioFaultChange event with current and previous data specified by RadioFault ENUM table 11.11.6.2 according to two repeated failures On TH(chip-tool) v [1684144521.151145][50343:50345] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0001 [1684144521.151152][50343:50345] CHIP:TOO: Event number: 5 @@ -117,16 +117,16 @@ tests: disabled: true - label: - "Induce a DUT radio failure two times as addressed in NetworkFault - ENUM table 11.11.6.3. (Ex. Put the DUT under metallic cover causing - network failure. Uncover DUT and rejoin DUT back to previous TH - fabric. Pull the DUT power plug off causing power source failure. - rejoining DUT back to previous TH fabric.)" + "Step 4: Induce a DUT radio failure two times as addressed in + NetworkFault ENUM table 11.11.6.3. (Ex. Put the DUT under metallic + cover causing network failure. Uncover DUT and rejoin DUT back to + previous TH fabric. Pull the DUT power plug off causing power source + failure. rejoining DUT back to previous TH fabric.)" PICS: DGGEN.S.E02 verification: | Optional Event so its not compulsory to get the expected outcome - On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT + To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) echo '{"Name":"NetworkFaultChange"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) @@ -154,12 +154,13 @@ tests: disabled: true - label: - "Reboot DUT with a normal reboot process. Rejoin DUT back to previous - TH fabric." + "Step 5: Reboot DUT with a normal reboot process. Rejoin DUT back to + previous TH fabric." PICS: DGGEN.S.E03 verification: | - On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT - echo '{"Name":""}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) + To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) + + echo '{"Name":""}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app) ./chip-tool generaldiagnostics read-event boot-reason 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml index 4d815ff45e5ac9..18b3f0fc4e2eeb 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_3.yaml @@ -24,7 +24,7 @@ config: endpoint: 0 tests: - - label: "Commission DUT to TH" + - label: "Step 1: Commission DUT to TH" verification: | execute the below mentioned command to put DUT into a commissionable state, Pls use equivalent command on the respective DUT ./chip-all-clusters-app @@ -35,7 +35,7 @@ tests: [1650455358.501816][4366:4371] CHIP:TOO: Device commissioning completed with success disabled: true - - label: "TH reads TestEventTriggersEnabled attribute value" + - label: "Step 2: TH reads TestEventTriggersEnabled attribute value" verification: | ./chip-tool generaldiagnostics read test-event-triggers-enabled 1 0 Verify that the TestEventTriggersEnabled value is of bool type. If this value is set to True, then proceed with step 3, otherwise skip step 3 On TH(chip-tool) @@ -46,8 +46,8 @@ tests: disabled: true - label: - "Invoke the TestEventTrigger command with EnableKey field set to - PIXIT.DGGEN.ENABLEKEY and EventTrigger field set to 0." + "Step 3: Invoke the TestEventTrigger command with EnableKey field set + to PIXIT.DGGEN.ENABLEKEY and EventTrigger field set to 0." PICS: DGGEN.S.C00.Rsp verification: | Based on Spec, EnableKey value is to be provided by manufacturer @@ -56,8 +56,8 @@ tests: disabled: true - label: - "Invoke the TestEventTrigger command with EnableKey field set to 16 - bytes of all zeroes and EventTrigger field set to 0." + "Step 4: Invoke the TestEventTrigger command with EnableKey field set + to 16 bytes of all zeroes and EventTrigger field set to 0." PICS: DGGEN.S.C00.Rsp verification: | ./chip-tool generaldiagnostics test-event-trigger hex:0000000000000000 0 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml index b58804cbad13b0..4d9de778ecbee0 100644 --- a/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGGEN_3_1.yaml @@ -29,330 +29,836 @@ tests: For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command. disabled: true - - label: "Commission TH to DUT" + - label: "Step 1: Commission TH to DUT" verification: | + execute the below mentioned command to put TH into a commissionable state in RPI platform, Pls use equivalent command on the respective platform + step-1: create a file using touch command , something like touch mytest.txt + step-2: chmod 777 mytest.txt + step-3: launch the app ./chip-all-clusters-app --KVS ./mytest.txt --trace_decode 1 + + + + Once TH reach the commissionable state pls send below mentioned command on DUT in RPI platform. Pls use equivalent command on the respective platform + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + Verify the commissioning completed with success on TH(chip-tool) from DUT + [1650455358.501816][4366:4371] CHIP:TOO: Device commissioning completed with success disabled: true - - label: "DUT reads NetworkInterfaces structure attribute from TH." + - label: "Step 2: DUT reads NetworkInterfaces structure attribute from TH." PICS: DGGEN.C.A0000 verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generaldiagnostics read network-interfaces 1 0 - verify that list of supported NetworkInterfaces structures, Structure data includes Name, IsOperational, OffPremiseServicesReachableIPv4, OffPremiseServicesReachableIPv6, HardwareAddress, IPv4Addresses, IPv6Addresses and type on TH(all-clusters-app) - - - ReadRequestMessage = - [1661421334.265953][2362:2362] CHIP:DMG: { - [1661421334.266009][2362:2362] CHIP:DMG: AttributePathIBs = - [1661421334.266074][2362:2362] CHIP:DMG: [ - [1661421334.266135][2362:2362] CHIP:DMG: AttributePathIB = - [1661421334.266206][2362:2362] CHIP:DMG: { - [1661421334.266288][2362:2362] CHIP:DMG: Endpoint = 0x0, - [1661421334.266370][2362:2362] CHIP:DMG: Cluster = 0x33, - [1661421334.266450][2362:2362] CHIP:DMG: Attribute = 0x0000_0000, - [1661421334.266528][2362:2362] CHIP:DMG: } - [1661421334.266605][2362:2362] CHIP:DMG: - [1661421334.266675][2362:2362] CHIP:DMG: ], - [1661421334.266748][2362:2362] CHIP:DMG: - [1661421334.266814][2362:2362] CHIP:DMG: isFabricFiltered = true, - [1661421334.266884][2362:2362] CHIP:DMG: InteractionModelRevision = 1 - [1661421334.266944][2362:2362] CHIP:DMG: }, - [1661421334.267126][2362:2362] CHIP:DMG: IM RH moving to [GeneratingReports] - [1661421334.267365][2362:2362] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1661421334.267437][2362:2362] CHIP:DMG: Cluster 33, Attribute 0 is dirty - [1661421334.267491][2362:2362] CHIP:DMG: Reading attribute: Cluster=0x0000_0033 Endpoint=0 AttributeId=0x0000_0000 (expanded=0) - [1661421334.267558][2362:2362] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0033 e=0 p=v - [1661421334.267638][2362:2362] CHIP:DMG: AccessControl: allowed + On TH(all-clusters-app), Verify that The NetworkInterfaces attribute SHALL be a list of NetworkInterface structs, i.e The read data type( NetworkInterface struct) must match the value listed below + • Name(interface name) + • IsOperational (indicates the node is operational in the fabric) + • OffPremiseServicesReachableIPv4(Ability to reach off-premise services it uses by utilizing IPv4, if not NULL) + • OffPremiseServicesReachableIPv6(Ability to reach off-premise services it uses by utilizing IPv6, if not NULL) + • HardwareAddress(MAC-layer address for a 802.3 or IEEE 802.11-2020 network interface, or 802.15.4) + • IPv4Addresses and IPv6Addresses (a list of the unicast IPv6 addresses that are GUA and ULA) + • Type(Interface types). + + Below is the example log which is observed in the RPI platform : + + 06e45f010f19ff36051004c0a800641836061010fe80000000000000e65f01fffe0f19ff1824070218152c00026c6f290134023403300406000000000000360510047f000001183606101000000000000000000000000000000001182407001818181818290424ff0118 + [1686306559.824697][57013:57013] CHIP:DMG: } + [1686306559.824743][57013:57013] CHIP:DMG: + [1686306559.825340][57013:57013] CHIP:DMG: ReportDataMessage = + [1686306559.825522][57013:57013] CHIP:DMG: { + [1686306559.825576][57013:57013] CHIP:DMG: AttributeReportIBs = + [1686306559.825825][57013:57013] CHIP:DMG: [ + [1686306559.825887][57013:57013] CHIP:DMG: AttributeReportIB = + [1686306559.826121][57013:57013] CHIP:DMG: { + [1686306559.826183][57013:57013] CHIP:DMG: AttributeDataIB = + [1686306559.826249][57013:57013] CHIP:DMG: { + [1686306559.826324][57013:57013] CHIP:DMG: DataVersion = 0x280892f3, + [1686306559.826397][57013:57013] CHIP:DMG: AttributePathIB = + [1686306559.826472][57013:57013] CHIP:DMG: { + [1686306559.826549][57013:57013] CHIP:DMG: Endpoint = 0x0, + [1686306559.826631][57013:57013] CHIP:DMG: Cluster = 0x33, + [1686306559.826711][57013:57013] CHIP:DMG: Attribute = 0x0000_0000, + [1686306559.826788][57013:57013] CHIP:DMG: } + [1686306559.826867][57013:57013] CHIP:DMG: + [1686306559.826943][57013:57013] CHIP:DMG: Data = [ + [1686306559.827019][57013:57013] CHIP:DMG: + [1686306559.827100][57013:57013] CHIP:DMG: { + [1686306559.827190][57013:57013] CHIP:DMG: 0x0 = "veth272794b" (11 chars), + [1686306559.827279][57013:57013] CHIP:DMG: 0x1 = true, + [1686306559.827366][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.827452][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.827537][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.827623][57013:57013] CHIP:DMG: 0xa2, 0x2a, 0xce, 0x32, 0x00, 0x85, + [1686306559.827721][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.827804][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.827885][57013:57013] CHIP:DMG: + [1686306559.827973][57013:57013] CHIP:DMG: ], + [1686306559.828056][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.828141][57013:57013] CHIP:DMG: [ + [1686306559.828258][57013:57013] CHIP:DMG: 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x2a, 0xce, 0xff, 0xfe, 0x32, 0x00, 0x85, + [1686306559.828360][57013:57013] CHIP:DMG: ] (16 bytes) + [1686306559.828451][57013:57013] CHIP:DMG: ], + [1686306559.828537][57013:57013] CHIP:DMG: 0x7 = 0, + [1686306559.828622][57013:57013] CHIP:DMG: }, + [1686306559.828702][57013:57013] CHIP:DMG: { + [1686306559.828786][57013:57013] CHIP:DMG: 0x0 = "vethcfd3c36" (11 chars), + [1686306559.828875][57013:57013] CHIP:DMG: 0x1 = true, + [1686306559.828960][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.829041][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.829124][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.829209][57013:57013] CHIP:DMG: 0x2a, 0x59, 0xb8, 0x51, 0x27, 0xa9, + [1686306559.829303][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.829386][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.829467][57013:57013] CHIP:DMG: + [1686306559.829559][57013:57013] CHIP:DMG: ], + [1686306559.829642][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.829747][57013:57013] CHIP:DMG: [ + [1686306559.829856][57013:57013] CHIP:DMG: 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x59, 0xb8, 0xff, 0xfe, 0x51, 0x27, 0xa9, + [1686306559.829959][57013:57013] CHIP:DMG: ] (16 bytes) + [1686306559.830047][57013:57013] CHIP:DMG: ], + [1686306559.830133][57013:57013] CHIP:DMG: 0x7 = 0, + [1686306559.830217][57013:57013] CHIP:DMG: }, + [1686306559.830297][57013:57013] CHIP:DMG: { + [1686306559.830380][57013:57013] CHIP:DMG: 0x0 = "veth1237750" (11 chars), + [1686306559.830467][57013:57013] CHIP:DMG: 0x1 = true, + [1686306559.830554][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.830641][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.830724][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.830809][57013:57013] CHIP:DMG: 0x22, 0x0b, 0x8c, 0xe3, 0x7a, 0x60, + [1686306559.830902][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.830984][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.831066][57013:57013] CHIP:DMG: + [1686306559.831154][57013:57013] CHIP:DMG: ], + [1686306559.831236][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.831320][57013:57013] CHIP:DMG: [ + [1686306559.831430][57013:57013] CHIP:DMG: 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0b, 0x8c, 0xff, 0xfe, 0xe3, 0x7a, 0x60, + [1686306559.831532][57013:57013] CHIP:DMG: ] (16 bytes) + [1686306559.831615][57013:57013] CHIP:DMG: ], + [1686306559.831701][57013:57013] CHIP:DMG: 0x7 = 0, + [1686306559.831785][57013:57013] CHIP:DMG: }, + [1686306559.831865][57013:57013] CHIP:DMG: { + [1686306559.831949][57013:57013] CHIP:DMG: 0x0 = "veth9ebd7bf" (11 chars), + [1686306559.832037][57013:57013] CHIP:DMG: 0x1 = true, + [1686306559.832122][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.832208][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.832292][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.832378][57013:57013] CHIP:DMG: 0x26, 0xa7, 0x64, 0xaf, 0x5f, 0xfb, + [1686306559.832479][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.832562][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.832644][57013:57013] CHIP:DMG: + [1686306559.832733][57013:57013] CHIP:DMG: ], + [1686306559.832816][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.832900][57013:57013] CHIP:DMG: [ + [1686306559.833008][57013:57013] CHIP:DMG: 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xa7, 0x64, 0xff, 0xfe, 0xaf, 0x5f, 0xfb, + [1686306559.833109][57013:57013] CHIP:DMG: ] (16 bytes) + [1686306559.833198][57013:57013] CHIP:DMG: ], + [1686306559.833284][57013:57013] CHIP:DMG: 0x7 = 0, + [1686306559.833367][57013:57013] CHIP:DMG: }, + [1686306559.833463][57013:57013] CHIP:DMG: { + [1686306559.833577][57013:57013] CHIP:DMG: 0x0 = "veth82c835f" (11 chars), + [1686306559.833673][57013:57013] CHIP:DMG: 0x1 = true, + [1686306559.834130][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.834229][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.834315][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.834399][57013:57013] CHIP:DMG: 0xf6, 0x3b, 0x4e, 0x45, 0xb5, 0xea, + [1686306559.834498][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.834583][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.834879][57013:57013] CHIP:DMG: + [1686306559.834980][57013:57013] CHIP:DMG: ], + [1686306559.835064][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.835148][57013:57013] CHIP:DMG: [ + [1686306559.835256][57013:57013] CHIP:DMG: 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x3b, 0x4e, 0xff, 0xfe, 0x45, 0xb5, 0xea, + [1686306559.835540][57013:57013] CHIP:DMG: ] (16 bytes) + [1686306559.835638][57013:57013] CHIP:DMG: ], + [1686306559.835726][57013:57013] CHIP:DMG: 0x7 = 0, + [1686306559.835813][57013:57013] CHIP:DMG: }, + [1686306559.835894][57013:57013] CHIP:DMG: { + [1686306559.835980][57013:57013] CHIP:DMG: 0x0 = "docker0" (7 chars), + [1686306559.836068][57013:57013] CHIP:DMG: 0x1 = false, + [1686306559.836154][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.836240][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.836323][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.836410][57013:57013] CHIP:DMG: 0x02, 0x42, 0x83, 0xd0, 0x85, 0xc7, + [1686306559.836515][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.836598][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.836683][57013:57013] CHIP:DMG: [ + [1686306559.836780][57013:57013] CHIP:DMG: 0xac, 0x11, 0x00, 0x01, + [1686306559.836880][57013:57013] CHIP:DMG: ] (4 bytes) + [1686306559.836974][57013:57013] CHIP:DMG: ], + [1686306559.837057][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.837141][57013:57013] CHIP:DMG: [ + [1686306559.837243][57013:57013] CHIP:DMG: + [1686306559.837348][57013:57013] CHIP:DMG: ] (0 bytes) + [1686306559.837438][57013:57013] CHIP:DMG: ], + [1686306559.837523][57013:57013] CHIP:DMG: 0x7 = 0, + [1686306559.837609][57013:57013] CHIP:DMG: }, + [1686306559.837727][57013:57013] CHIP:DMG: { + [1686306559.837818][57013:57013] CHIP:DMG: 0x0 = "br-78aec9e78929" (15 chars), + [1686306559.837908][57013:57013] CHIP:DMG: 0x1 = true, + [1686306559.837994][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.838080][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.838164][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.838250][57013:57013] CHIP:DMG: 0x02, 0x42, 0xfc, 0xcb, 0x3f, 0xc9, + [1686306559.838339][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.838422][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.838508][57013:57013] CHIP:DMG: [ + [1686306559.838605][57013:57013] CHIP:DMG: 0xac, 0x13, 0x00, 0x01, + [1686306559.838699][57013:57013] CHIP:DMG: ] (4 bytes) + [1686306559.838794][57013:57013] CHIP:DMG: ], + [1686306559.838871][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.838956][57013:57013] CHIP:DMG: [ + [1686306559.839055][57013:57013] CHIP:DMG: 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xfc, 0xff, 0xfe, 0xcb, 0x3f, 0xc9, + [1686306559.839159][57013:57013] CHIP:DMG: ] (16 bytes) + [1686306559.839254][57013:57013] CHIP:DMG: ], + [1686306559.839342][57013:57013] CHIP:DMG: 0x7 = 0, + [1686306559.839426][57013:57013] CHIP:DMG: }, + [1686306559.839507][57013:57013] CHIP:DMG: { + [1686306559.839591][57013:57013] CHIP:DMG: 0x0 = "br-33eb65c97608" (15 chars), + [1686306559.839678][57013:57013] CHIP:DMG: 0x1 = true, + [1686306559.839759][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.839845][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.839923][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.840007][57013:57013] CHIP:DMG: 0x02, 0x42, 0x25, 0x3e, 0x90, 0xfe, + [1686306559.840097][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.840179][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.840263][57013:57013] CHIP:DMG: [ + [1686306559.840361][57013:57013] CHIP:DMG: 0xac, 0x12, 0x00, 0x01, + [1686306559.840455][57013:57013] CHIP:DMG: ] (4 bytes) + [1686306559.840546][57013:57013] CHIP:DMG: ], + [1686306559.840628][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.840713][57013:57013] CHIP:DMG: [ + [1686306559.840817][57013:57013] CHIP:DMG: 0xfd, 0x00, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + [1686306559.840922][57013:57013] CHIP:DMG: ] (16 bytes)[ + [1686306559.841023][57013:57013] CHIP:DMG: 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x25, 0xff, 0xfe, 0x3e, 0x90, 0xfe, + [1686306559.841126][57013:57013] CHIP:DMG: ] (16 bytes)[ + [1686306559.841234][57013:57013] CHIP:DMG: 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + [1686306559.841337][57013:57013] CHIP:DMG: ] (16 bytes) + [1686306559.841432][57013:57013] CHIP:DMG: ], + [1686306559.841519][57013:57013] CHIP:DMG: 0x7 = 0, + [1686306559.841604][57013:57013] CHIP:DMG: }, + [1686306559.841684][57013:57013] CHIP:DMG: { + [1686306559.841811][57013:57013] CHIP:DMG: 0x0 = "wlan0" (5 chars), + [1686306559.841900][57013:57013] CHIP:DMG: 0x1 = false, + [1686306559.841985][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.842072][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.842155][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.842241][57013:57013] CHIP:DMG: 0xe4, 0x5f, 0x01, 0x0f, 0x1a, 0x01, + [1686306559.842327][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.842408][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.842490][57013:57013] CHIP:DMG: + [1686306559.842579][57013:57013] CHIP:DMG: ], + [1686306559.842662][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.842743][57013:57013] CHIP:DMG: + [1686306559.842834][57013:57013] CHIP:DMG: ], + [1686306559.842922][57013:57013] CHIP:DMG: 0x7 = 1, + [1686306559.843006][57013:57013] CHIP:DMG: }, + [1686306559.843088][57013:57013] CHIP:DMG: { + [1686306559.843171][57013:57013] CHIP:DMG: 0x0 = "eth0" (4 chars), + [1686306559.843259][57013:57013] CHIP:DMG: 0x1 = true, + [1686306559.843346][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.843431][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.843516][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.843602][57013:57013] CHIP:DMG: 0xe4, 0x5f, 0x01, 0x0f, 0x19, 0xff, + [1686306559.843698][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.843775][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.843860][57013:57013] CHIP:DMG: [ + [1686306559.843950][57013:57013] CHIP:DMG: 0xc0, 0xa8, 0x00, 0x64, + [1686306559.844050][57013:57013] CHIP:DMG: ] (4 bytes) + [1686306559.844133][57013:57013] CHIP:DMG: ], + [1686306559.844215][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.844299][57013:57013] CHIP:DMG: [ + [1686306559.844407][57013:57013] CHIP:DMG: 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x5f, 0x01, 0xff, 0xfe, 0x0f, 0x19, 0xff, + [1686306559.844513][57013:57013] CHIP:DMG: ] (16 bytes) + [1686306559.844603][57013:57013] CHIP:DMG: ], + [1686306559.844690][57013:57013] CHIP:DMG: 0x7 = 2, + [1686306559.844774][57013:57013] CHIP:DMG: }, + [1686306559.844854][57013:57013] CHIP:DMG: { + [1686306559.844938][57013:57013] CHIP:DMG: 0x0 = "lo" (2 chars), + [1686306559.845025][57013:57013] CHIP:DMG: 0x1 = true, + [1686306559.845112][57013:57013] CHIP:DMG: 0x2 = NULL + [1686306559.845197][57013:57013] CHIP:DMG: 0x3 = NULL + [1686306559.845281][57013:57013] CHIP:DMG: 0x4 = [ + [1686306559.845367][57013:57013] CHIP:DMG: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + [1686306559.845463][57013:57013] CHIP:DMG: ] (6 bytes) + [1686306559.845546][57013:57013] CHIP:DMG: 0x5 = [ + [1686306559.845632][57013:57013] CHIP:DMG: [ + [1686306559.845753][57013:57013] CHIP:DMG: 0x7f, 0x00, 0x00, 0x01, + [1686306559.845856][57013:57013] CHIP:DMG: ] (4 bytes) + [1686306559.845948][57013:57013] CHIP:DMG: ], + [1686306559.846031][57013:57013] CHIP:DMG: 0x6 = [ + [1686306559.846116][57013:57013] CHIP:DMG: [ + [1686306559.846226][57013:57013] CHIP:DMG: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + [1686306559.846331][57013:57013] CHIP:DMG: ] (16 bytes) + [1686306559.846419][57013:57013] CHIP:DMG: ], + [1686306559.846504][57013:57013] CHIP:DMG: 0x7 = 0, + [1686306559.846587][57013:57013] CHIP:DMG: }, + [1686306559.846667][57013:57013] CHIP:DMG: ], + [1686306559.846737][57013:57013] CHIP:DMG: }, + [1686306559.846960][57013:57013] CHIP:DMG: + [1686306559.847020][57013:57013] CHIP:DMG: }, + [1686306559.847234][57013:57013] CHIP:DMG: + [1686306559.847290][57013:57013] CHIP:DMG: ], + [1686306559.847502][57013:57013] CHIP:DMG: + [1686306559.847560][57013:57013] CHIP:DMG: SuppressResponse = true, + [1686306559.847619][57013:57013] CHIP:DMG: InteractionModelRevision = 1 + [1686306559.847674][57013:57013] CHIP:DMG: } + [1686306559.847727][57013:57013] CHIP:DMG: + [1686306559.848154][57013:57013] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686306559.848223][57013:57013] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages disabled: true - label: - "DUT reads a RebootCount attribute value from TH. Then a TH (node) - gets rebooted more than 2 times." + "Step 3: DUT reads a RebootCount attribute value from TH. Then a TH + (node) gets rebooted more than 2 times." PICS: DGGEN.C.A0001 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool generaldiagnostics read reboot-count 1 0 + On TH(all-clusters-app), Verify that RebootCount attribute data type must be UINT16 + Below is the example log which is observed in the RPI platform : + + [1686307500.023849][57061:57061] CHIP:DMG: + [1686307500.023993][57061:57061] CHIP:DMG: ReportDataMessage = + [1686307500.024054][57061:57061] CHIP:DMG: { + [1686307500.024103][57061:57061] CHIP:DMG: AttributeReportIBs = + [1686307500.024175][57061:57061] CHIP:DMG: [ + [1686307500.024233][57061:57061] CHIP:DMG: AttributeReportIB = + [1686307500.024308][57061:57061] CHIP:DMG: { + [1686307500.024370][57061:57061] CHIP:DMG: AttributeDataIB = + [1686307500.024440][57061:57061] CHIP:DMG: { + [1686307500.024513][57061:57061] CHIP:DMG: DataVersion = 0x73550a54, + [1686307500.024586][57061:57061] CHIP:DMG: AttributePathIB = + [1686307500.024661][57061:57061] CHIP:DMG: { + [1686307500.024737][57061:57061] CHIP:DMG: Endpoint = 0x0, + [1686307500.024819][57061:57061] CHIP:DMG: Cluster = 0x33, + [1686307500.024899][57061:57061] CHIP:DMG: Attribute = 0x0000_0001, + [1686307500.024974][57061:57061] CHIP:DMG: } + [1686307500.025050][57061:57061] CHIP:DMG: + [1686307500.025129][57061:57061] CHIP:DMG: Data = 1, + [1686307500.025200][57061:57061] CHIP:DMG: }, + [1686307500.025279][57061:57061] CHIP:DMG: + [1686307500.025340][57061:57061] CHIP:DMG: }, + [1686307500.025411][57061:57061] CHIP:DMG: + [1686307500.025467][57061:57061] CHIP:DMG: ], + [1686307500.025539][57061:57061] CHIP:DMG: + [1686307500.025598][57061:57061] CHIP:DMG: SuppressResponse = true, + [1686307500.025658][57061:57061] CHIP:DMG: InteractionModelRevision = 1 + [1686307500.025745][57061:57061] CHIP:DMG: } + [1686307500.025800][57061:57061] CHIP:DMG: + [1686307500.026135][57061:57061] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686307500.026203][57061:57061] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1686307500.026252][57061:57061] CHIP:DMG: IM RH moving to [AwaitingDestruction] + [1686307500.026313][57061:57061] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet + + Below is the example value which is observed in the RPI platform the value may be differ based on the dut implementation. + + To reboot the TH(all-clusters-app) more than 2 times please follow the mentioned procedure and it's Only applicable on raspi, Pls use equivalent command to reboot on the respective DUT + + Kill DUT and launch again, without commission follow the next steps - verify that RebootCount attribute data type must be UINT16 and the count should match with the number of rebooted times on TH(all-clusters-app). - - Received Read request - [1661421488.051680][2362:2362] CHIP:DMG: ReadRequestMessage = - [1661421488.051755][2362:2362] CHIP:DMG: { - [1661421488.051811][2362:2362] CHIP:DMG: AttributePathIBs = - [1661421488.051876][2362:2362] CHIP:DMG: [ - [1661421488.051937][2362:2362] CHIP:DMG: AttributePathIB = - [1661421488.052025][2362:2362] CHIP:DMG: { - [1661421488.052098][2362:2362] CHIP:DMG: Endpoint = 0x0, - [1661421488.052185][2362:2362] CHIP:DMG: Cluster = 0x33, - [1661421488.052266][2362:2362] CHIP:DMG: Attribute = 0x0000_0001, - [1661421488.052355][2362:2362] CHIP:DMG: } - [1661421488.052430][2362:2362] CHIP:DMG: - [1661421488.052496][2362:2362] CHIP:DMG: ], - [1661421488.052570][2362:2362] CHIP:DMG: - [1661421488.052637][2362:2362] CHIP:DMG: isFabricFiltered = true, - [1661421488.052701][2362:2362] CHIP:DMG: InteractionModelRevision = 1 - [1661421488.052763][2362:2362] CHIP:DMG: }, - [1661421488.052936][2362:2362] CHIP:DMG: IM RH moving to [GeneratingReports] - [1661421488.053176][2362:2362] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1661421488.053301][2362:2362] CHIP:DMG: Cluster 33, Attribute 1 is dirty - [1661421488.053361][2362:2362] CHIP:DMG: Reading attribute: Cluster=0x0000_0033 Endpoint=0 AttributeId=0x0000_0001 (expanded=0) - [1661421488.053431][2362:2362] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0033 e=0 p=v - [1661421488.053510][2362:2362] CHIP:DMG: AccessControl: allowed + ./chip-tool generaldiagnostics read reboot-count 1 0 + The reboot-count count should match with the number of rebooted times + [1686307529.634007][57073:57073] CHIP:DMG: + [1686307529.634151][57073:57073] CHIP:DMG: ReportDataMessage = + [1686307529.634212][57073:57073] CHIP:DMG: { + [1686307529.634260][57073:57073] CHIP:DMG: AttributeReportIBs = + [1686307529.634332][57073:57073] CHIP:DMG: [ + [1686307529.634390][57073:57073] CHIP:DMG: AttributeReportIB = + [1686307529.634465][57073:57073] CHIP:DMG: { + [1686307529.634527][57073:57073] CHIP:DMG: AttributeDataIB = + [1686307529.634596][57073:57073] CHIP:DMG: { + [1686307529.634669][57073:57073] CHIP:DMG: DataVersion = 0xb1a9fc1e, + [1686307529.634737][57073:57073] CHIP:DMG: AttributePathIB = + [1686307529.634811][57073:57073] CHIP:DMG: { + [1686307529.634883][57073:57073] CHIP:DMG: Endpoint = 0x0, + [1686307529.634965][57073:57073] CHIP:DMG: Cluster = 0x33, + [1686307529.635046][57073:57073] CHIP:DMG: Attribute = 0x0000_0001, + [1686307529.635118][57073:57073] CHIP:DMG: } + [1686307529.635195][57073:57073] CHIP:DMG: + [1686307529.635273][57073:57073] CHIP:DMG: Data = 3, + [1686307529.635342][57073:57073] CHIP:DMG: }, + [1686307529.635419][57073:57073] CHIP:DMG: + [1686307529.635479][57073:57073] CHIP:DMG: }, + [1686307529.635549][57073:57073] CHIP:DMG: + [1686307529.635605][57073:57073] CHIP:DMG: ], + [1686307529.635674][57073:57073] CHIP:DMG: + [1686307529.635732][57073:57073] CHIP:DMG: SuppressResponse = true, + [1686307529.635792][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307529.635846][57073:57073] CHIP:DMG: } + [1686307529.635896][57073:57073] CHIP:DMG: + [1686307529.636229][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686307529.636296][57073:57073] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1686307529.636346][57073:57073] CHIP:DMG: IM RH moving to [AwaitingDestruction] + [1686307529.636411][57073:57073] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet disabled: true - label: - "TH reboots and DUT reads a UpTime attribute value of TH since some - arbitrary start time of TH rebooting." + "Step 4: TH reboots and DUT reads a UpTime attribute value of TH since + some arbitrary start time of TH rebooting." PICS: DGGEN.C.A0002 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + This is optional attribute implemented in RPI so its not compulsory to get the expected outcome ./chip-tool generaldiagnostics read up-time 1 0 - Verify that UpTime attribute data type must be UINT64 and the time duratoin should be represented in seconds since DUT (node) has been rebooted on TH(all-clusters-app). - - ReadRequestMessage = - [1661421563.809563][2362:2362] CHIP:DMG: { - [1661421563.809617][2362:2362] CHIP:DMG: AttributePathIBs = - [1661421563.809681][2362:2362] CHIP:DMG: [ - [1661421563.809741][2362:2362] CHIP:DMG: AttributePathIB = - [1661421563.809812][2362:2362] CHIP:DMG: { - [1661421563.809885][2362:2362] CHIP:DMG: Endpoint = 0x0, - [1661421563.809983][2362:2362] CHIP:DMG: Cluster = 0x33, - [1661421563.810076][2362:2362] CHIP:DMG: Attribute = 0x0000_0002, - [1661421563.810155][2362:2362] CHIP:DMG: } - [1661421563.810228][2362:2362] CHIP:DMG: - [1661421563.810293][2362:2362] CHIP:DMG: ], - [1661421563.810366][2362:2362] CHIP:DMG: - [1661421563.810433][2362:2362] CHIP:DMG: isFabricFiltered = true, - [1661421563.810497][2362:2362] CHIP:DMG: InteractionModelRevision = 1 - [1661421563.810557][2362:2362] CHIP:DMG: }, - [1661421563.810736][2362:2362] CHIP:DMG: IM RH moving to [GeneratingReports] - [1661421563.810990][2362:2362] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1661421563.811066][2362:2362] CHIP:DMG: Cluster 33, Attribute 2 is dirty - [1661421563.811120][2362:2362] CHIP:DMG: Reading attribute: Cluster=0x0000_0033 Endpoint=0 AttributeId=0x0000_0002 (expanded=0) - [1661421563.811190][2362:2362] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0033 e=0 p=v - [1661421563.811271][2362:2362] CHIP:DMG: AccessControl: allowed + On TH(all-clusters-app), Verify that UpTime attribute data type must be UINT64 and the time duratoin should be represented in seconds since TH (node) has been rebooted. + Below is the example log which is observed in the RPI platform : + + [1686307643.700814][57073:57073] CHIP:DMG: + [1686307643.700956][57073:57073] CHIP:DMG: ReportDataMessage = + [1686307643.701016][57073:57073] CHIP:DMG: { + [1686307643.701064][57073:57073] CHIP:DMG: AttributeReportIBs = + [1686307643.701136][57073:57073] CHIP:DMG: [ + [1686307643.701193][57073:57073] CHIP:DMG: AttributeReportIB = + [1686307643.701267][57073:57073] CHIP:DMG: { + [1686307643.701329][57073:57073] CHIP:DMG: AttributeDataIB = + [1686307643.701397][57073:57073] CHIP:DMG: { + [1686307643.701467][57073:57073] CHIP:DMG: DataVersion = 0xb1a9fc1e, + [1686307643.701538][57073:57073] CHIP:DMG: AttributePathIB = + [1686307643.701611][57073:57073] CHIP:DMG: { + [1686307643.701719][57073:57073] CHIP:DMG: Endpoint = 0x0, + [1686307643.701822][57073:57073] CHIP:DMG: Cluster = 0x33, + [1686307643.701902][57073:57073] CHIP:DMG: Attribute = 0x0000_0002, + [1686307643.701979][57073:57073] CHIP:DMG: } + [1686307643.702056][57073:57073] CHIP:DMG: + [1686307643.702135][57073:57073] CHIP:DMG: Data = 118, + [1686307643.702205][57073:57073] CHIP:DMG: }, + [1686307643.702287][57073:57073] CHIP:DMG: + [1686307643.702346][57073:57073] CHIP:DMG: }, + [1686307643.702415][57073:57073] CHIP:DMG: + [1686307643.702470][57073:57073] CHIP:DMG: ], + [1686307643.702539][57073:57073] CHIP:DMG: + [1686307643.702596][57073:57073] CHIP:DMG: SuppressResponse = true, + [1686307643.702654][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307643.702707][57073:57073] CHIP:DMG: } + [1686307643.702756][57073:57073] CHIP:DMG: + [1686307643.703091][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686307643.703157][57073:57073] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1686307643.703207][57073:57073] CHIP:DMG: IM RH moving to [AwaitingDestruction] + [1686307643.703273][57073:57073] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet disabled: true - - label: "DUT reads a TotalOperationalHours attribute value from TH." + - label: + "Step 5: DUT reads a TotalOperationalHours attribute value from TH." PICS: DGGEN.C.A0003 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + This is optional attribute implemented in RPI so its not compulsory to get the expected outcome ./chip-tool generaldiagnostics read total-operational-hours 1 0 - verify that TotalOperationalHours attribute data type must be UINT32 and the value indicates the number of hours the node has been operational since DUT (node) has been rebooted on TH(all-clusters-app). - - ReadRequestMessage = - [1661421632.317370][2362:2362] CHIP:DMG: { - [1661421632.317431][2362:2362] CHIP:DMG: AttributePathIBs = - [1661421632.317490][2362:2362] CHIP:DMG: [ - [1661421632.317551][2362:2362] CHIP:DMG: AttributePathIB = - [1661421632.317652][2362:2362] CHIP:DMG: { - [1661421632.317733][2362:2362] CHIP:DMG: Endpoint = 0x0, - [1661421632.317830][2362:2362] CHIP:DMG: Cluster = 0x33, - [1661421632.317923][2362:2362] CHIP:DMG: Attribute = 0x0000_0003, - [1661421632.318008][2362:2362] CHIP:DMG: } - [1661421632.318090][2362:2362] CHIP:DMG: - [1661421632.318163][2362:2362] CHIP:DMG: ], - [1661421632.318235][2362:2362] CHIP:DMG: - [1661421632.318304][2362:2362] CHIP:DMG: isFabricFiltered = true, - [1661421632.318368][2362:2362] CHIP:DMG: InteractionModelRevision = 1 - [1661421632.318428][2362:2362] CHIP:DMG: }, - [1661421632.318615][2362:2362] CHIP:DMG: IM RH moving to [GeneratingReports] - [1661421632.318881][2362:2362] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1661421632.318960][2362:2362] CHIP:DMG: Cluster 33, Attribute 3 is dirty - [1661421632.319014][2362:2362] CHIP:DMG: Reading attribute: Cluster=0x0000_0033 Endpoint=0 AttributeId=0x0000_0003 (expanded=0) - [1661421632.319081][2362:2362] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0033 e=0 p=v - [1661421632.319159][2362:2362] CHIP:DMG: AccessControl: allowed + On TH(all-clusters-app), Verify that TotalOperationalHours attribute data type must be UINT32 and the value indicates the number of hours the node has been operational since TH (node) has been rebooted, + + Below is the example log which is observed in the RPI platform : + + [1686307701.675949][57073:57073] CHIP:DMG: + [1686307701.676094][57073:57073] CHIP:DMG: ReportDataMessage = + [1686307701.676154][57073:57073] CHIP:DMG: { + [1686307701.676202][57073:57073] CHIP:DMG: AttributeReportIBs = + [1686307701.676273][57073:57073] CHIP:DMG: [ + [1686307701.676331][57073:57073] CHIP:DMG: AttributeReportIB = + [1686307701.676405][57073:57073] CHIP:DMG: { + [1686307701.676466][57073:57073] CHIP:DMG: AttributeDataIB = + [1686307701.676534][57073:57073] CHIP:DMG: { + [1686307701.676607][57073:57073] CHIP:DMG: DataVersion = 0xb1a9fc1e, + [1686307701.676679][57073:57073] CHIP:DMG: AttributePathIB = + [1686307701.676749][57073:57073] CHIP:DMG: { + [1686307701.676825][57073:57073] CHIP:DMG: Endpoint = 0x0, + [1686307701.676906][57073:57073] CHIP:DMG: Cluster = 0x33, + [1686307701.676986][57073:57073] CHIP:DMG: Attribute = 0x0000_0003, + [1686307701.677062][57073:57073] CHIP:DMG: } + [1686307701.677140][57073:57073] CHIP:DMG: + [1686307701.677219][57073:57073] CHIP:DMG: Data = 0, + [1686307701.677286][57073:57073] CHIP:DMG: }, + [1686307701.677363][57073:57073] CHIP:DMG: + [1686307701.677423][57073:57073] CHIP:DMG: }, + [1686307701.677493][57073:57073] CHIP:DMG: + [1686307701.677547][57073:57073] CHIP:DMG: ], + [1686307701.677616][57073:57073] CHIP:DMG: + [1686307701.677674][57073:57073] CHIP:DMG: SuppressResponse = true, + [1686307701.677865][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307701.677920][57073:57073] CHIP:DMG: } + [1686307701.677970][57073:57073] CHIP:DMG: + [1686307701.678326][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686307701.678393][57073:57073] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1686307701.678445][57073:57073] CHIP:DMG: IM RH moving to [AwaitingDestruction] disabled: true - label: - "TH undergoes a reboot process. DUT reads a attribute value from TH." + "Step 6: TH undergoes a reboot process. DUT reads a attribute value + from TH." PICS: DGGEN.C.A0004 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + This is optional attribute implemented in RPI so its not compulsory to get the expected outcome ./chip-tool generaldiagnostics read boot-reason 1 0 - verify that bootreason attribute data type must match the value listed in Table 105 BootReason ENUM table in spec on TH(all-clusters-app). - - - ReadRequestMessage = - [1661421678.360282][2362:2362] CHIP:DMG: { - [1661421678.360336][2362:2362] CHIP:DMG: AttributePathIBs = - [1661421678.360400][2362:2362] CHIP:DMG: [ - [1661421678.360461][2362:2362] CHIP:DMG: AttributePathIB = - [1661421678.360531][2362:2362] CHIP:DMG: { - [1661421678.360605][2362:2362] CHIP:DMG: Endpoint = 0x0, - [1661421678.360688][2362:2362] CHIP:DMG: Cluster = 0x33, - [1661421678.360767][2362:2362] CHIP:DMG: Attribute = 0x0000_0004, - [1661421678.360843][2362:2362] CHIP:DMG: } - [1661421678.360914][2362:2362] CHIP:DMG: - [1661421678.360978][2362:2362] CHIP:DMG: ], - [1661421678.361048][2362:2362] CHIP:DMG: - [1661421678.361114][2362:2362] CHIP:DMG: isFabricFiltered = true, - [1661421678.361178][2362:2362] CHIP:DMG: InteractionModelRevision = 1 - [1661421678.361322][2362:2362] CHIP:DMG: }, - [1661421678.361498][2362:2362] CHIP:DMG: IM RH moving to [GeneratingReports] - [1661421678.361719][2362:2362] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1661421678.361792][2362:2362] CHIP:DMG: Cluster 33, Attribute 4 is dirty - [1661421678.361847][2362:2362] CHIP:DMG: Reading attribute: Cluster=0x0000_0033 Endpoint=0 AttributeId=0x0000_0004 (expanded=0) - [1661421678.361912][2362:2362] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0033 e=0 p=v - [1661421678.361988][2362:2362] CHIP:DMG: AccessControl: allowed + On TH(all-clusters-app), Verify that bootreason attribute data type must match the value listed in Table 105 BootReason ENUM table in spec. + + Below is the example log which is observed in the RPI platform : + + [1686307743.025877][57073:57073] CHIP:DMG: ReportDataMessage = + [1686307743.025942][57073:57073] CHIP:DMG: { + [1686307743.025991][57073:57073] CHIP:DMG: AttributeReportIBs = + [1686307743.026063][57073:57073] CHIP:DMG: [ + [1686307743.026121][57073:57073] CHIP:DMG: AttributeReportIB = + [1686307743.026197][57073:57073] CHIP:DMG: { + [1686307743.026259][57073:57073] CHIP:DMG: AttributeDataIB = + [1686307743.026329][57073:57073] CHIP:DMG: { + [1686307743.026402][57073:57073] CHIP:DMG: DataVersion = 0xb1a9fc1e, + [1686307743.026475][57073:57073] CHIP:DMG: AttributePathIB = + [1686307743.026549][57073:57073] CHIP:DMG: { + [1686307743.026626][57073:57073] CHIP:DMG: Endpoint = 0x0, + [1686307743.026706][57073:57073] CHIP:DMG: Cluster = 0x33, + [1686307743.026786][57073:57073] CHIP:DMG: Attribute = 0x0000_0004, + [1686307743.026863][57073:57073] CHIP:DMG: } + [1686307743.026942][57073:57073] CHIP:DMG: + [1686307743.027017][57073:57073] CHIP:DMG: Data = 0, + [1686307743.027088][57073:57073] CHIP:DMG: }, + [1686307743.027165][57073:57073] CHIP:DMG: + [1686307743.027226][57073:57073] CHIP:DMG: }, + [1686307743.027297][57073:57073] CHIP:DMG: + [1686307743.027353][57073:57073] CHIP:DMG: ], + [1686307743.027422][57073:57073] CHIP:DMG: + [1686307743.027481][57073:57073] CHIP:DMG: SuppressResponse = true, + [1686307743.027617][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307743.027672][57073:57073] CHIP:DMG: } + [1686307743.027722][57073:57073] CHIP:DMG: + [1686307743.028065][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686307743.028132][57073:57073] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1686307743.028183][57073:57073] CHIP:DMG: IM RH moving to [AwaitingDestruction] disabled: true - label: - "DUT reads ActiveHardwareFaults attribute value from TH. Subscription - is possible option for this attribute." + "Step 7: DUT reads ActiveHardwareFaults attribute value from TH. + Subscription is possible option for this attribute." PICS: DGGEN.C.A0005 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + This is optional attribute implemented in RPI so its not compulsory to get the expected outcome ./chip-tool generaldiagnostics read active-hardware-faults 1 0 - verify that ActiveHardwareFaults attribute the attribute response should be empty. But when a hardware fault occurs, the return attribute value must match the value listed in the HardwareFault ENUM table 11.11.6.1 on TH(all-clusters-app). - - [1659773303.234177][17263:17263] CHIP:DMG: - [1659773303.234225][17263:17263] CHIP:DMG: ReportDataMessage = - [1659773303.234234][17263:17263] CHIP:DMG: { - [1659773303.234241][17263:17263] CHIP:DMG: AttributeReportIBs = - [1659773303.234256][17263:17263] CHIP:DMG: [ - [1659773303.234264][17263:17263] CHIP:DMG: AttributeReportIB = - [1659773303.234278][17263:17263] CHIP:DMG: { - [1659773303.234286][17263:17263] CHIP:DMG: AttributeDataIB = - [1659773303.234296][17263:17263] CHIP:DMG: { - [1659773303.234306][17263:17263] CHIP:DMG: DataVersion = 0x4dcd1218, - [1659773303.234316][17263:17263] CHIP:DMG: AttributePathIB = - [1659773303.234326][17263:17263] CHIP:DMG: { - [1659773303.234336][17263:17263] CHIP:DMG: Endpoint = 0x0, - [1659773303.234346][17263:17263] CHIP:DMG: Cluster = 0x33, - [1659773303.234357][17263:17263] CHIP:DMG: Attribute = 0x0000_0005, - [1659773303.234367][17263:17263] CHIP:DMG: } - [1659773303.234378][17263:17263] CHIP:DMG: - [1659773303.234388][17263:17263] CHIP:DMG: Data = [ - [1659773303.234401][17263:17263] CHIP:DMG: - [1659773303.234417][17263:17263] CHIP:DMG: ], - [1659773303.234428][17263:17263] CHIP:DMG: }, - [1659773303.234444][17263:17263] CHIP:DMG: - [1659773303.234457][17263:17263] CHIP:DMG: }, - [1659773303.234475][17263:17263] CHIP:DMG: - [1659773303.234485][17263:17263] CHIP:DMG: ], - [1659773303.234503][17263:17263] CHIP:DMG: - [1659773303.234512][17263:17263] CHIP:DMG: SuppressResponse = true, - [1659773303.234523][17263:17263] CHIP:DMG: InteractionModelRevision = 1 - [1659773303.234533][17263:17263] CHIP:DMG: } - [1659773303.234544][17263:17263] CHIP:DMG: + On TH(all-clusters-app), Verify that ActiveHardwareFaults attribute the attribute response should be empty. But when a hardware fault occurs, the return attribute value must match the value listed in the HardwareFault ENUM table 11.11.6.1. + + Below is the example log which is observed in the RPI platform : + + [1686307781.603898][57073:57073] CHIP:DMG: ReportDataMessage = + [1686307781.603957][57073:57073] CHIP:DMG: { + [1686307781.604008][57073:57073] CHIP:DMG: AttributeReportIBs = + [1686307781.604080][57073:57073] CHIP:DMG: [ + [1686307781.604138][57073:57073] CHIP:DMG: AttributeReportIB = + [1686307781.604214][57073:57073] CHIP:DMG: { + [1686307781.604276][57073:57073] CHIP:DMG: AttributeDataIB = + [1686307781.604344][57073:57073] CHIP:DMG: { + [1686307781.604417][57073:57073] CHIP:DMG: DataVersion = 0xb1a9fc1e, + [1686307781.604490][57073:57073] CHIP:DMG: AttributePathIB = + [1686307781.604563][57073:57073] CHIP:DMG: { + [1686307781.604639][57073:57073] CHIP:DMG: Endpoint = 0x0, + [1686307781.604715][57073:57073] CHIP:DMG: Cluster = 0x33, + [1686307781.604796][57073:57073] CHIP:DMG: Attribute = 0x0000_0005, + [1686307781.604872][57073:57073] CHIP:DMG: } + [1686307781.604950][57073:57073] CHIP:DMG: + [1686307781.605024][57073:57073] CHIP:DMG: Data = [ + [1686307781.605097][57073:57073] CHIP:DMG: + [1686307781.605177][57073:57073] CHIP:DMG: ], + [1686307781.605243][57073:57073] CHIP:DMG: }, + [1686307781.605320][57073:57073] CHIP:DMG: + [1686307781.605380][57073:57073] CHIP:DMG: }, + [1686307781.605451][57073:57073] CHIP:DMG: + [1686307781.605507][57073:57073] CHIP:DMG: ], + [1686307781.605577][57073:57073] CHIP:DMG: + [1686307781.605634][57073:57073] CHIP:DMG: SuppressResponse = true, + [1686307781.605730][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307781.605790][57073:57073] CHIP:DMG: } + [1686307781.605840][57073:57073] CHIP:DMG: + [1686307781.606181][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686307781.606249][57073:57073] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + + + + Please perform subscription in Interactive mode + Here the command to enter interactive mode:-- ./chip-tool interactive start + + generaldiagnostics subscribe active-hardware-faults 3 100 1 0 + + On TH(all-clusters-app), Verify that ActiveHardwareFaults attribute the attribute response should be empty. But when a hardware fault occurs, the return attribute value must match the value listed in the HardwareFault ENUM table 11.11.6.1. This value may be subscribed. + + Below is the example log which is observed in the RPI platform : + + [1686307843.510650][57073:57073] CHIP:EM: Rxd Ack; Removing MessageCounter:23103056 from Retrans Table on exchange 24036r + [1686307843.510781][57073:57073] CHIP:DMG: StatusResponseMessage = + [1686307843.510845][57073:57073] CHIP:DMG: { + [1686307843.510922][57073:57073] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686307843.510984][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307843.511038][57073:57073] CHIP:DMG: } + [1686307843.511116][57073:57073] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686307843.511216][57073:57073] CHIP:DMG: Refresh Subscribe Sync Timer with min 3 seconds and max 100 seconds + [1686307843.511770][57073:57073] CHIP:EM: <<< [E:24036r S:63322 M:23103057 (Ack:112203453)] (S) Msg TX to 1:000000000001B669 [A822] --- Type 0001:04 (IM:SubscribeResponse) + [1686307843.511859][57073:57073] CHIP:IN: (S) Sending msg 23103057 on secure session with LSID: 63322 + [1686307843.512510][57073:57073] CHIP:DMG: >> to UDP:[fe80::e9f6:2c08:2794:357d%eth0]:59421 | 23103057 | [Interaction Model (1) / Subscribe Response (0x04) / Session = 6810 / Exchange = 24036] + [1686307843.512597][57073:57073] CHIP:DMG: Header Flags = + [1686307843.512648][57073:57073] CHIP:DMG: { + [1686307843.512724][57073:57073] CHIP:DMG: Exchange (0x06) = + [1686307843.512775][57073:57073] CHIP:DMG: { + [1686307843.512826][57073:57073] CHIP:DMG: AckMsg = 112203453 + [1686307843.512898][57073:57073] CHIP:DMG: NeedsAck = true + [1686307843.512949][57073:57073] CHIP:DMG: } + [1686307843.513013][57073:57073] CHIP:DMG: } + [1686307843.513083][57073:57073] CHIP:DMG: + [1686307843.513145][57073:57073] CHIP:DMG: Encrypted Payload (48 bytes) = + [1686307843.513194][57073:57073] CHIP:DMG: { + [1686307843.513264][57073:57073] CHIP:DMG: data = 009a1a00518660011eb0619ea074318af4478c0426dc2e7e25cc783a1f14f0c1919836a77ef5e395bbdae42d05c30c31 + [1686307843.513316][57073:57073] CHIP:DMG: buffer_ptr = 187651312554688 + [1686307843.513363][57073:57073] CHIP:DMG: } + [1686307843.513408][57073:57073] CHIP:DMG: + [1686307843.513496][57073:57073] CHIP:DMG: Decrypted Payload (14 bytes) = + [1686307843.513548][57073:57073] CHIP:DMG: { + [1686307843.513595][57073:57073] CHIP:DMG: data = 15260084a6fd9624026424ff0118 + [1686307843.513667][57073:57073] CHIP:DMG: } + [1686307843.513826][57073:57073] CHIP:DMG: + [1686307843.513939][57073:57073] CHIP:DMG: SubscribeResponseMessage = + [1686307843.513998][57073:57073] CHIP:DMG: { + [1686307843.514073][57073:57073] CHIP:DMG: SubscriptionId = 0x96fda684, + [1686307843.514136][57073:57073] CHIP:DMG: MaxInterval = 0x64, + [1686307843.514196][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307843.514273][57073:57073] CHIP:DMG: } + [1686307843.514323][57073:57073] CHIP:DMG: + [1686307843.514684][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686307843.514768][57073:57073] CHIP:DMG: IM RH moving to [GeneratingReports] disabled: true - label: - "DUT reads ActiveRadioFaults attribute value from TH. Subscription is - possible option for this attribute." + "Step 8: DUT reads ActiveRadioFaults attribute value from TH. + Subscription is possible option for this attribute." PICS: DGGEN.C.A0006 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + This is optional attribute implemented in RPI so its not compulsory to get the expected outcome ./chip-tool generaldiagnostics read active-radio-faults 1 0 - - verify that the attribute response should be empty. But when a radio fault occurs, the return attribute value must match the value listed in the RadioFault ENUM table. 11.11.6.2 on TH(all-clusters-app). - - [1659971190.358722][3458:3458] CHIP:IM: Received Read request - [1659971190.358800][3458:3458] CHIP:DMG: ReadRequestMessage = - [1659971190.358827][3458:3458] CHIP:DMG: { - [1659971190.358848][3458:3458] CHIP:DMG: AttributePathIBs = - [1659971190.358874][3458:3458] CHIP:DMG: [ - [1659971190.358897][3458:3458] CHIP:DMG: AttributePathIB = - [1659971190.358924][3458:3458] CHIP:DMG: { - [1659971190.358952][3458:3458] CHIP:DMG: Endpoint = 0x0, - [1659971190.358988][3458:3458] CHIP:DMG: Cluster = 0x33, - [1659971190.359019][3458:3458] CHIP:DMG: Attribute = 0x0000_0006, - [1659971190.359049][3458:3458] CHIP:DMG: } - [1659971190.359077][3458:3458] CHIP:DMG: - [1659971190.359101][3458:3458] CHIP:DMG: ], - [1659971190.359129][3458:3458] CHIP:DMG: - [1659971190.359154][3458:3458] CHIP:DMG: isFabricFiltered = true, - [1659971190.359178][3458:3458] CHIP:DMG: InteractionModelRevision = 1 - [1659971190.359201][3458:3458] CHIP:DMG: }, - [1659971190.359274][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports] - [1659971190.359356][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1659971190.359385][3458:3458] CHIP:DMG: Cluster 33, Attribute 6 is dirty - [1659971190.359406][3458:3458] CHIP:DMG: Reading attribute: Cluster=0x0000_0033 Endpoint=0 AttributeId=0x0000_0006 (expanded=0) - [1659971190.359434][3458:3458] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0033 e=0 p=v - [1659971190.359466][3458:3458] CHIP:DMG: AccessControl: allowed + On TH(all-clusters-app), Verify that ActiveRadioFaults attribute response should be empty. But when a radio fault occurs, the return attribute value must match the value listed in the RadioFault ENUM table. 11.11.6.2. + Below is the example log which is observed in the RPI platform : + [1686308161.710734][57073:57073] CHIP:DMG: ReportDataMessage = + [1686308161.710792][57073:57073] CHIP:DMG: { + [1686308161.710840][57073:57073] CHIP:DMG: AttributeReportIBs = + [1686308161.710912][57073:57073] CHIP:DMG: [ + [1686308161.710969][57073:57073] CHIP:DMG: AttributeReportIB = + [1686308161.711044][57073:57073] CHIP:DMG: { + [1686308161.711105][57073:57073] CHIP:DMG: AttributeDataIB = + [1686308161.711175][57073:57073] CHIP:DMG: { + [1686308161.711245][57073:57073] CHIP:DMG: DataVersion = 0xb1a9fc1e, + [1686308161.711317][57073:57073] CHIP:DMG: AttributePathIB = + [1686308161.711392][57073:57073] CHIP:DMG: { + [1686308161.711466][57073:57073] CHIP:DMG: Endpoint = 0x0, + [1686308161.711546][57073:57073] CHIP:DMG: Cluster = 0x33, + [1686308161.711626][57073:57073] CHIP:DMG: Attribute = 0x0000_0006, + [1686308161.711702][57073:57073] CHIP:DMG: } + [1686308161.711780][57073:57073] CHIP:DMG: + [1686308161.711854][57073:57073] CHIP:DMG: Data = [ + [1686308161.711928][57073:57073] CHIP:DMG: + [1686308161.712008][57073:57073] CHIP:DMG: ], + [1686308161.712078][57073:57073] CHIP:DMG: }, + [1686308161.712161][57073:57073] CHIP:DMG: + [1686308161.712221][57073:57073] CHIP:DMG: }, + [1686308161.712292][57073:57073] CHIP:DMG: + [1686308161.712348][57073:57073] CHIP:DMG: ], + [1686308161.712418][57073:57073] CHIP:DMG: + [1686308161.712475][57073:57073] CHIP:DMG: SuppressResponse = true, + [1686308161.712533][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686308161.712587][57073:57073] CHIP:DMG: } + [1686308161.712637][57073:57073] CHIP:DMG: + [1686308161.712974][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686308161.713043][57073:57073] CHIP:DMG: ReportsInFlight = 0 with readHandler 1, RE has no more messages + [1686308161.713094][57073:57073] CHIP:DMG: IM RH moving to [AwaitingDestruction] + + + + Please perform subscription in Interactive mode + Here the command to enter interactive mode:-- ./chip-tool interactive start + + generaldiagnostics subscribe active-radio-faults 100 1000 1 0 + + On TH(all-clusters-app), Verify that ActiveRadioFaults attribute response should be empty. But when a radio fault occurs, the return attribute value must match the value listed in the RadioFault ENUM table. 11.11.6.2. . This value may be subscribed. + Below is the example log which is observed in the RPI platform : + + + [1686307919.469064][57073:57073] CHIP:DMG: StatusResponseMessage = + [1686307919.469149][57073:57073] CHIP:DMG: { + [1686307919.469207][57073:57073] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686307919.469267][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307919.469344][57073:57073] CHIP:DMG: } + [1686307919.469400][57073:57073] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686307919.469519][57073:57073] CHIP:DMG: Refresh Subscribe Sync Timer with min 100 seconds and max 1000 seconds + [1686307919.470080][57073:57073] CHIP:EM: <<< [E:24037r S:63322 M:23103059 (Ack:112203456)] (S) Msg TX to 1:000000000001B669 [A822] --- Type 0001:04 (IM:SubscribeResponse) + [1686307919.470170][57073:57073] CHIP:IN: (S) Sending msg 23103059 on secure session with LSID: 63322 + [1686307919.470842][57073:57073] CHIP:DMG: >> to UDP:[fe80::e9f6:2c08:2794:357d%eth0]:59421 | 23103059 | [Interaction Model (1) / Subscribe Response (0x04) / Session = 6810 / Exchange = 24037] + [1686307919.470931][57073:57073] CHIP:DMG: Header Flags = + [1686307919.470983][57073:57073] CHIP:DMG: { + [1686307919.471061][57073:57073] CHIP:DMG: Exchange (0x06) = + [1686307919.471112][57073:57073] CHIP:DMG: { + [1686307919.471164][57073:57073] CHIP:DMG: AckMsg = 112203456 + [1686307919.471237][57073:57073] CHIP:DMG: NeedsAck = true + [1686307919.471288][57073:57073] CHIP:DMG: } + [1686307919.471352][57073:57073] CHIP:DMG: } + [1686307919.471420][57073:57073] CHIP:DMG: + [1686307919.471484][57073:57073] CHIP:DMG: Encrypted Payload (49 bytes) = + [1686307919.471534][57073:57073] CHIP:DMG: { + [1686307919.471604][57073:57073] CHIP:DMG: data = 009a1a0053866001e6272a390623bd75fd74354aab79de80781818aa40a6d57a63027f9adb46fa0c80dbcbea6e887e7814 + [1686307919.471658][57073:57073] CHIP:DMG: buffer_ptr = 187651312554688 + [1686307919.471704][57073:57073] CHIP:DMG: } + [1686307919.471750][57073:57073] CHIP:DMG: + [1686307919.471839][57073:57073] CHIP:DMG: Decrypted Payload (15 bytes) = + [1686307919.471891][57073:57073] CHIP:DMG: { + [1686307919.471938][57073:57073] CHIP:DMG: data = 1526009ab98a6b2502e80324ff0118 + [1686307919.472007][57073:57073] CHIP:DMG: } + [1686307919.472054][57073:57073] CHIP:DMG: + [1686307919.472164][57073:57073] CHIP:DMG: SubscribeResponseMessage = + [1686307919.472223][57073:57073] CHIP:DMG: { + [1686307919.472276][57073:57073] CHIP:DMG: SubscriptionId = 0x6b8ab99a, + [1686307919.472362][57073:57073] CHIP:DMG: MaxInterval = 0x3e8, + [1686307919.472422][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307919.472477][57073:57073] CHIP:DMG: } + [1686307919.472547][57073:57073] CHIP:DMG: + [1686307919.472904][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686307919.472965][57073:57073] CHIP:DMG: IM RH moving to [GeneratingReports] disabled: true - label: - "DUT reads ActiveNetworkFaults attribute value from TH. Subscription - is possible option for this attribute." + "Step 9: DUT reads ActiveNetworkFaults attribute value from TH. + Subscription is possible option for this attribute." PICS: DGGEN.C.A0007 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - + This is optional attribute implemented in RPI so its not compulsory to get the expected outcome ./chip-tool generaldiagnostics read active-network-faults 1 0 - verify that ActiveNetworkFaults attribute value attribute response should be empty. But when a network fault occurs, the return attribute value must match the value listed in the NetworkFault ENUM on TH(all-clusters-app) - - ReadRequestMessage = - [1661422339.662496][2220:2220] CHIP:DMG: { - [1661422339.662554][2220:2220] CHIP:DMG: AttributePathIBs = - [1661422339.662619][2220:2220] CHIP:DMG: [ - [1661422339.662681][2220:2220] CHIP:DMG: AttributePathIB = - [1661422339.662752][2220:2220] CHIP:DMG: { - [1661422339.662825][2220:2220] CHIP:DMG: Endpoint = 0x0, - [1661422339.662926][2220:2220] CHIP:DMG: Cluster = 0x33, - [1661422339.663022][2220:2220] CHIP:DMG: Attribute = 0x0000_0007, - [1661422339.663110][2220:2220] CHIP:DMG: } - [1661422339.663184][2220:2220] CHIP:DMG: - [1661422339.663249][2220:2220] CHIP:DMG: ], - [1661422339.663321][2220:2220] CHIP:DMG: - [1661422339.663389][2220:2220] CHIP:DMG: isFabricFiltered = true, - [1661422339.663454][2220:2220] CHIP:DMG: InteractionModelRevision = 1 - [1661422339.663514][2220:2220] CHIP:DMG: }, - [1661422339.663697][2220:2220] CHIP:DMG: IM RH moving to [GeneratingReports] - [1661422339.663957][2220:2220] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1661422339.664032][2220:2220] CHIP:DMG: Cluster 33, Attribute 7 is dirty - [1661422339.664088][2220:2220] CHIP:DMG: Reading attribute: Cluster=0x0000_0033 Endpoint=0 AttributeId=0x0000_0007 (expanded=0) - [1661422339.664157][2220:2220] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0033 e=0 p=v - [1661422339.664234][2220:2220] CHIP:DMG: AccessControl: allowed + On TH(all-clusters-app), Verify that ActiveNetworkFaults attribute value attribute response should be empty. But when a network fault occurs, the return attribute value must match the value listed in the NetworkFault ENUM table 11.11.6.3 + + Below is the example log which is observed in the RPI platform : + [1686308088.267488][57073:57073] CHIP:DMG: + [1686308088.267658][57073:57073] CHIP:DMG: ReportDataMessage = + [1686308088.267719][57073:57073] CHIP:DMG: { + [1686308088.267790][57073:57073] CHIP:DMG: AttributeReportIBs = + [1686308088.267866][57073:57073] CHIP:DMG: [ + [1686308088.267923][57073:57073] CHIP:DMG: AttributeReportIB = + [1686308088.268026][57073:57073] CHIP:DMG: { + [1686308088.268088][57073:57073] CHIP:DMG: AttributeDataIB = + [1686308088.268179][57073:57073] CHIP:DMG: { + [1686308088.268254][57073:57073] CHIP:DMG: DataVersion = 0xb1a9fc1e, + [1686308088.268345][57073:57073] CHIP:DMG: AttributePathIB = + [1686308088.268421][57073:57073] CHIP:DMG: { + [1686308088.268519][57073:57073] CHIP:DMG: Endpoint = 0x0, + [1686308088.268602][57073:57073] CHIP:DMG: Cluster = 0x33, + [1686308088.268703][57073:57073] CHIP:DMG: Attribute = 0x0000_0007, + [1686308088.268781][57073:57073] CHIP:DMG: } + [1686308088.268881][57073:57073] CHIP:DMG: + [1686308088.268958][57073:57073] CHIP:DMG: Data = [ + [1686308088.269053][57073:57073] CHIP:DMG: + [1686308088.269136][57073:57073] CHIP:DMG: ], + [1686308088.269227][57073:57073] CHIP:DMG: }, + [1686308088.269307][57073:57073] CHIP:DMG: + [1686308088.269370][57073:57073] CHIP:DMG: }, + [1686308088.269464][57073:57073] CHIP:DMG: + [1686308088.269520][57073:57073] CHIP:DMG: ], + [1686308088.269618][57073:57073] CHIP:DMG: + [1686308088.269677][57073:57073] CHIP:DMG: SuppressResponse = true, + [1686308088.269803][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686308088.269860][57073:57073] CHIP:DMG: } + [1686308088.269910][57073:57073] CHIP:DMG: + [1686308088.270319][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686308088.270385][57073:57073] CHIP:DMG: ReportsInFlight = 0 with readHandler 1, RE has no more messages + [1686308088.270436][57073:57073] CHIP:DMG: IM RH moving to [AwaitingDestruction] + + + + Please perform subscription in Interactive mode + Here the command to enter interactive mode:-- ./chip-tool interactive start + + generaldiagnostics subscribe active-network-faults 100 1000 1 0 + + On TH(all-clusters-app), Verify that ActiveNetworkFaults attribute value attribute response should be empty. But when a network fault occurs, the return attribute value must match the value listed in the NetworkFault ENUM table 11.11.6.3. This value may be subscribed. + Below is the example log which is observed in the RPI platform : + + [1686307960.687673][57073:57073] CHIP:EM: Rxd Ack; Removing MessageCounter:30942835 from Retrans Table on exchange 24039r + [1686307960.687802][57073:57073] CHIP:DMG: StatusResponseMessage = + [1686307960.687864][57073:57073] CHIP:DMG: { + [1686307960.687942][57073:57073] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686307960.688003][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307960.688057][57073:57073] CHIP:DMG: } + [1686307960.688136][57073:57073] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686307960.688230][57073:57073] CHIP:DMG: Refresh Subscribe Sync Timer with min 100 seconds and max 1000 seconds + [1686307960.688774][57073:57073] CHIP:EM: <<< [E:24039r S:63323 M:30942836 (Ack:186563629)] (S) Msg TX to 1:000000000001B669 [A822] --- Type 0001:04 (IM:SubscribeResponse) + [1686307960.688863][57073:57073] CHIP:IN: (S) Sending msg 30942836 on secure session with LSID: 63323 + [1686307960.689504][57073:57073] CHIP:DMG: >> to UDP:[fe80::e9f6:2c08:2794:357d%eth0]:59421 | 30942836 | [Interaction Model (1) / Subscribe Response (0x04) / Session = 6811 / Exchange = 24039] + [1686307960.689591][57073:57073] CHIP:DMG: Header Flags = + [1686307960.689643][57073:57073] CHIP:DMG: { + [1686307960.689755][57073:57073] CHIP:DMG: Exchange (0x06) = + [1686307960.689810][57073:57073] CHIP:DMG: { + [1686307960.689862][57073:57073] CHIP:DMG: AckMsg = 186563629 + [1686307960.689911][57073:57073] CHIP:DMG: NeedsAck = true + [1686307960.689958][57073:57073] CHIP:DMG: } + [1686307960.690048][57073:57073] CHIP:DMG: } + [1686307960.690100][57073:57073] CHIP:DMG: + [1686307960.690161][57073:57073] CHIP:DMG: Encrypted Payload (49 bytes) = + [1686307960.690232][57073:57073] CHIP:DMG: { + [1686307960.690283][57073:57073] CHIP:DMG: data = 009b1a007426d801508f052c4f353e1e4f7f65e371e88ed11df4630e03e488f1f4acbf93785d02417643644ac79541c2d0 + [1686307960.690333][57073:57073] CHIP:DMG: buffer_ptr = 187651312560480 + [1686307960.690379][57073:57073] CHIP:DMG: } + [1686307960.690446][57073:57073] CHIP:DMG: + [1686307960.690514][57073:57073] CHIP:DMG: Decrypted Payload (15 bytes) = + [1686307960.690565][57073:57073] CHIP:DMG: { + [1686307960.690640][57073:57073] CHIP:DMG: data = 152600031dfc822502e80324ff0118 + [1686307960.690688][57073:57073] CHIP:DMG: } + [1686307960.690733][57073:57073] CHIP:DMG: + [1686307960.690837][57073:57073] CHIP:DMG: SubscribeResponseMessage = + [1686307960.690897][57073:57073] CHIP:DMG: { + [1686307960.690950][57073:57073] CHIP:DMG: SubscriptionId = 0x82fc1d03, + [1686307960.691035][57073:57073] CHIP:DMG: MaxInterval = 0x3e8, + [1686307960.691094][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686307960.691168][57073:57073] CHIP:DMG: } + [1686307960.691221][57073:57073] CHIP:DMG: + [1686307960.691577][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686307960.691640][57073:57073] CHIP:DMG: IM RH moving to [GeneratingReports] disabled: true - label: - "TH reads TestEventTriggersEnabled attribute value. If this value is - set True, then a certain test mode will be performed (or triggered) - according to pre-provisioned client and server test mode." + "Step 10: TH reads TestEventTriggersEnabled attribute value. If this + value is set True, then a certain test mode will be performed (or + triggered) according to pre-provisioned client and server test mode." PICS: DGGEN.C.A0008 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool generaldiagnostics read test-event-triggers-enabled 1 0 - verify that TestEventTriggersEnabled attribute value should be data type bool on TH(all-clusters-app) - - ReadRequestMessage = - [1661422384.680672][2220:2220] CHIP:DMG: { - [1661422384.680728][2220:2220] CHIP:DMG: AttributePathIBs = - [1661422384.680794][2220:2220] CHIP:DMG: [ - [1661422384.680856][2220:2220] CHIP:DMG: AttributePathIB = - [1661422384.680937][2220:2220] CHIP:DMG: { - [1661422384.681020][2220:2220] CHIP:DMG: Endpoint = 0x0, - [1661422384.681105][2220:2220] CHIP:DMG: Cluster = 0x33, - [1661422384.681189][2220:2220] CHIP:DMG: Attribute = 0x0000_0008, - [1661422384.681267][2220:2220] CHIP:DMG: } - [1661422384.681348][2220:2220] CHIP:DMG: - [1661422384.681421][2220:2220] CHIP:DMG: ], - [1661422384.681494][2220:2220] CHIP:DMG: - [1661422384.681562][2220:2220] CHIP:DMG: isFabricFiltered = true, - [1661422384.681627][2220:2220] CHIP:DMG: InteractionModelRevision = 1 - [1661422384.681688][2220:2220] CHIP:DMG: }, - [1661422384.681857][2220:2220] CHIP:DMG: IM RH moving to [GeneratingReports] - [1661422384.682101][2220:2220] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1661422384.682174][2220:2220] CHIP:DMG: Cluster 33, Attribute 8 is dirty - [1661422384.682229][2220:2220] CHIP:DMG: Reading attribute: Cluster=0x0000_0033 Endpoint=0 AttributeId=0x0000_0008 (expanded=0) - [1661422384.682297][2220:2220] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0033 e=0 p=v - [1661422384.682364][2220:2220] CHIP:DMG: AccessControl: allowed + On TH(all-clusters-app), Verify that TestEventTriggersEnabled attribute value should be data type bool + Below is the example log which is observed in the RPI platform : + + [1686308043.575660][57073:57073] CHIP:DMG: + [1686308043.575826][57073:57073] CHIP:DMG: ReportDataMessage = + [1686308043.575887][57073:57073] CHIP:DMG: { + [1686308043.575958][57073:57073] CHIP:DMG: AttributeReportIBs = + [1686308043.576032][57073:57073] CHIP:DMG: [ + [1686308043.576116][57073:57073] CHIP:DMG: AttributeReportIB = + [1686308043.576192][57073:57073] CHIP:DMG: { + [1686308043.576253][57073:57073] CHIP:DMG: AttributeDataIB = + [1686308043.576345][57073:57073] CHIP:DMG: { + [1686308043.576416][57073:57073] CHIP:DMG: DataVersion = 0xb1a9fc1e, + [1686308043.576501][57073:57073] CHIP:DMG: AttributePathIB = + [1686308043.576576][57073:57073] CHIP:DMG: { + [1686308043.576652][57073:57073] CHIP:DMG: Endpoint = 0x0, + [1686308043.576755][57073:57073] CHIP:DMG: Cluster = 0x33, + [1686308043.576837][57073:57073] CHIP:DMG: Attribute = 0x0000_0008, + [1686308043.576934][57073:57073] CHIP:DMG: } + [1686308043.577014][57073:57073] CHIP:DMG: + [1686308043.577114][57073:57073] CHIP:DMG: Data = false, + [1686308043.577188][57073:57073] CHIP:DMG: }, + [1686308043.577286][57073:57073] CHIP:DMG: + [1686308043.577348][57073:57073] CHIP:DMG: }, + [1686308043.577419][57073:57073] CHIP:DMG: + [1686308043.577495][57073:57073] CHIP:DMG: ], + [1686308043.577566][57073:57073] CHIP:DMG: + [1686308043.577645][57073:57073] CHIP:DMG: SuppressResponse = true, + [1686308043.577759][57073:57073] CHIP:DMG: InteractionModelRevision = 1 + [1686308043.577817][57073:57073] CHIP:DMG: } + [1686308043.577891][57073:57073] CHIP:DMG: + [1686308043.578276][57073:57073] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686308043.578344][57073:57073] CHIP:DMG: ReportsInFlight = 0 with readHandler 1, RE has no more messages + [1686308043.578395][57073:57073] CHIP:DMG: IM RH moving to [AwaitingDestruction] disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_2_1.yaml index 3a12444a95166e..884c1ea52f4653 100644 --- a/src/app/tests/suites/certification/Test_TC_DGSW_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGSW_2_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 43.2.1. [TC-DGSW-2.1] Attributes with server as DUT +name: 3.2.1. [TC-DGSW-2.1] Attributes [DUT_Sever] PICS: - DGSW.S @@ -29,15 +29,17 @@ tests: disabled: true - - label: "TH reads a list of ThreadMetrics struct attribute from DUT." + - label: + "Step 2: TH reads a list of ThreadMetrics struct attribute from DUT." PICS: DGSW.S.A0000 verification: | Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. ./chip-tool softwarediagnostics read thread-metrics 1 0 - Verify the thread-metrics attribute has entries with ThreadMetrics Struct. - Verify in TH(chip-tool) Log + Via the TH (chip-tool), verify: + -that ThreadMetrics attribute contains entries with ThreadMetrics Struct. + -that the entries Id is in the range of uint64 and name is in vendor specific string format. [1654697032.107109][7037:7042] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0000 DataVersion: 1044289564 [1654697032.107255][7037:7042] CHIP:TOO: ThreadMetrics: 6 entries @@ -67,41 +69,38 @@ tests: [1654697032.108154][7037:7042] CHIP:TOO: } disabled: true - - label: "TH reads an attribute value from DUT." + - label: "Step 3: TH reads an attribute value from DUT." PICS: DGSW.S.A0001 verification: | Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. ./chip-tool softwarediagnostics read current-heap-free 1 0 - Verify the value of CurrentHeapFree is in range uint64 - Verify in TH(chip-tool) Log + Via the TH (chip-tool), verify that CurrentHeapFree attribute contains value is in the range of uint64. CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0001 DataVersion: 3412237516 [1649662648.863327][8004:8009] CHIP:TOO: CurrentHeapFree: 590864 disabled: true - - label: "TH reads an attribute value from DUT." + - label: "Step 4: TH reads an attribute value from DUT." PICS: DGSW.S.A0002 verification: | Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE. Below is the log of RPI the result may be vary on the basis of dut implementation. ./chip-tool softwarediagnostics read current-heap-used 1 0 - Verify the value of CurrentHeapUsed is in range uint64 - Verify in TH(chip-tool) Log + Via the TH (chip-tool), verify that CurrentHeapUsed attribute contains value is in the range of uint64. CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0002 DataVersion: 3412237516 [1649662811.289909][8018:8023] CHIP:TOO: CurrentHeapUsed: 1098368 disabled: true - - label: "TH reads an attribute value from DUT." + - label: "Step 5: TH reads an attribute value from DUT." PICS: DGSW.S.A0003 verification: | ./chip-tool softwarediagnostics read current-heap-high-watermark 1 0 - Verify the value of CurrentHeapHighWatermark is in range uint64 - Verify in TH(chip-tool) Log + Via the TH (chip-tool), verify that CurrentHeapHighWatermark attribute contains value is in the range of uint64. CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0003 DataVersion: 3412237516 [1649662865.831203][8025:8030] CHIP:TOO: CurrentHeapHighWatermark: 1099312 diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_2_2.yaml index 001b88cdcd3d9b..51bed8bf861388 100644 --- a/src/app/tests/suites/certification/Test_TC_DGSW_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGSW_2_2.yaml @@ -36,28 +36,31 @@ tests: 5. Follow the Verification step below to generate the event in 2nd terminal of DUT disabled: true - - label: "Commission DUT to TH" + - label: "Step 1: Commission DUT to TH" verification: | disabled: true - label: - "DUT sends an event report to TH. TH reads a list of SoftwareFault - struct from DUT." + "Step 2: DUT sends an event report to TH. TH reads a list of + SoftwareFault struct from DUT." PICS: DGSW.S.E00 verification: | Provision DUT and TH. On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) - echo '{"Name":"SoftwareFault"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app by using command provided in note above) + echo '{"Name":"SoftwareFault"}' > /tmp/chip_all_clusters_fifo_ (PID of all-clusters-app by using command provided in note above) On TH Send the below command + ./chip-tool softwarediagnostics read-event software-fault 1 0 - 2. ./chip-tool softwarediagnostics read-event software-fault 1 0 - - Verify SoftwareFault Struct is listed that is Softwarefault, ID, Name, Fault recording should be present in struct and Priority should be Info in TH(chip-tool) Log + Via the TH (chip-tool), verify: + -that SoftwareFault event contains softwarefault with ID, Name, Fault recording. + -ID is in the type of uint64. + -Name is in the type of string with max 8 chars. + -FaultRecording is in the type of Octet string with max 1024 chars and Priority should be Info. [1655375196.291424][35133:35138] CHIP:DMG: SuppressResponse = true, [1655375196.291478][35133:35138] CHIP:DMG: InteractionModelRevision = 1 @@ -72,5 +75,4 @@ tests: [1655375196.292287][35133:35138] CHIP:TOO: Name: 2677 [1655375196.292341][35133:35138] CHIP:TOO: FaultRecording: 546875204A756E2031362031303A32363A313420323032320A [1655375196.292391][35133:35138] CHIP:TOO: } - [1655375196.292438][35133:35138] CHIP:TOO: } disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_2_3.yaml index e29732604d7e10..e66b9f09900c00 100644 --- a/src/app/tests/suites/certification/Test_TC_DGSW_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGSW_2_3.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 43.2.3. [TC-DGSW-2.3] Command received functionality with server as DUT +name: 3.2.3. [TC-DGSW-2.3] Command Received [DUT Sever] PICS: - DGSW.S @@ -29,12 +29,12 @@ tests: disabled: true - - label: "TH sends ResetWatermarks to DUT." + - label: "Step 2a: TH sends ResetWatermarks to DUT." PICS: DGSW.S.C00.Rsp verification: | ./chip-tool softwarediagnostics reset-watermarks 1 0 - Verify the success response in TH(chip-tool) Log + Via the TH (chip-tool), verify the success response for sending ResetWatermarks command. [1657022305.316864][7266:7271] CHIP:DMG: InvokeResponseMessage = [1657022305.316900][7266:7271] CHIP:DMG: { @@ -69,13 +69,15 @@ tests: [1657022305.318359][7266:7271] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - - label: "TH reads a list of ThreadMetrics struct attributes from DUT." + - label: + "Step 2b: TH reads a list of ThreadMetrics struct attributes from DUT." PICS: DGSW.S.A0000 verification: | ./chip-tool softwarediagnostics read thread-metrics 1 0 - Verify the thread-metrics attribute has entries with ThreadMetrics Struct in TH(chip-tool) Log - + Via the TH (chip-tool), verify: + -that ThreadMetrics attribute contains entries with ThreadMetrics Struct. + -that the entries are matched with StackFreeMinimum and StackFreeCurrent values of ThreadMetrics. [1654697032.107109][7037:7042] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0000 DataVersion: 1044289564 [1654697032.107255][7037:7042] CHIP:TOO: ThreadMetrics: 6 entries @@ -105,29 +107,33 @@ tests: [1654697032.108154][7037:7042] CHIP:TOO: } disabled: true - - label: "TH reads CurrentHeapHighWatermark attribute from DUT." + - label: "Step 2c: TH reads CurrentHeapHighWatermark attribute from DUT." PICS: DGSW.S.A0003 verification: | ./chip-tool softwarediagnostics read current-heap-used 1 0 + Via the TH (chip-tool), verify that CurrentHeapUsed attribute value with in the range of uint64. + [1663066847.710531][4064:4069] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0002 DataVersion: 2808275719 [1663066847.714122][4064:4069] CHIP:TOO: CurrentHeapUsed: 1389168 ./chip-tool softwarediagnostics read current-heap-high-watermark 1 0 - Verify the value of CurrentHeapHighWatermark is in range uint64 and the CurrentHeapUsed is less than or equal to the CurrentHeapHighWatermark in TH(chip-tool) Log + Via the TH (chip-tool), verify: + -that CurrentHeapHighWatermark attribute value with in the range of uint64. + -that the value is higher than or equal to CurrentHeapUsed. [1663066925.496916][4072:4077] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0003 DataVersion: 2808275719 [1663066925.496999][4072:4077] CHIP:TOO: CurrentHeapHighWatermark: 1389328 disabled: true - - label: "TH reads a CurrentHeapUsed attribute value from DUT." + - label: "Step 2d: TH reads a CurrentHeapUsed attribute value from DUT." PICS: DGSW.S.A0002 verification: | ./chip-tool softwarediagnostics read current-heap-used 1 0 - Verify the value of CurrentHeapUsed is in range uint64 in TH(chip-tool) Log + Via the TH (chip-tool), verify that CurrentHeapUsed attribute value with in the range of uint64. [1663066954.656376][4079:4084] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0002 DataVersion: 2808275719 [1663066954.656505][4079:4084] CHIP:TOO: CurrentHeapUsed: 1389360 diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_5.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_5.yaml index 8615b130026d6b..d41d3a7631da96 100644 --- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_5.yaml @@ -14,8 +14,8 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 50.2.5. [TC-DGTHREAD-2.5] Thread Network Diagnostics Cluster - Events[DUT-Server] + 50.2.5. [TC-DGTHREAD-2.5] Thread Network Diagnostics Cluster Events [DUT- + Server] PICS: - DGTHREAD.S @@ -31,56 +31,56 @@ tests: Commission TH to DUT disabled: true - - label: "Induce a DUT by an Unspecified failure" + - label: "Step 1: Induce a DUT by an Unspecified failure" PICS: DGTHREAD.S.E01 verification: | There is no implementation in TH (chip-tool) to read these optional events. Pls mark as Not Applicable disabled: true - - label: "Induce a DUT by LinkDown failure" + - label: "Step 2: Induce a DUT by LinkDown failure" PICS: DGTHREAD.S.E01 verification: | There is no implementation in TH (chip-tool) to read these optional events. Pls mark as Not Applicable disabled: true - - label: "Induce a DUT by HardwareFailure" + - label: "Step 3: Induce a DUT by HardwareFailure" PICS: DGTHREAD.S.E01 verification: | There is no implementation in TH (chip-tool) to read these optional events. Pls mark as Not Applicable disabled: true - - label: "Induce a DUT by NetworkJammed Failure" + - label: "Step 4: Induce a DUT by NetworkJammed Failure" PICS: DGTHREAD.S.E01 verification: | There is no implementation in TH (chip-tool) to read these optional events. Pls mark as Not Applicable disabled: true - - label: "Induce a DUT by an Unspecified failure" + - label: "Step 5: Induce a DUT by an Unspecified failure" PICS: DGTHREAD.S.E01 verification: | There is no implementation in TH (chip-tool) to read these optional events. Pls mark as Not Applicable disabled: true - - label: "Induce a DUT by LinkDown failure" + - label: "Step 6: Induce a DUT by LinkDown failure" PICS: DGTHREAD.S.E01 verification: | There is no implementation in TH (chip-tool) to read these optional events. Pls mark as Not Applicable disabled: true - - label: "Induce a DUT by HardwareFailure" + - label: "Step 7: Induce a DUT by HardwareFailure" PICS: DGTHREAD.S.E01 verification: | There is no implementation in TH (chip-tool) to read these optional events. Pls mark as Not Applicable disabled: true - - label: "Induce a DUT by NetworkJammed Failure" + - label: "Step 8: Induce a DUT by NetworkJammed Failure" PICS: DGTHREAD.S.E01 verification: | There is no implementation in TH (chip-tool) to read these optional events. Pls mark as Not Applicable disabled: true - - label: "Disconnect and reconnect a node to a Thread network" + - label: "Step 9: Disconnect and reconnect a node to a Thread network" PICS: DGTHREAD.S.E00 verification: | - Optional Event so it is not mandatory to verify in v1.0. Pls mark as Not Applicable. + There is no implementation in TH (chip-tool) to read these optional events. Pls mark as Not Applicable disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_2_2.yaml index a82cf331f43b5a..8cf286891aed36 100644 --- a/src/app/tests/suites/certification/Test_TC_DGWIFI_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DGWIFI_2_2.yaml @@ -24,13 +24,13 @@ config: endpoint: 0 tests: - - label: "Commission DUT to TH" + - label: "Step 1: Commission DUT to TH" verification: | disabled: true - label: - "Disconnect node WiFi as a result of de-authentication or + "Step 2: Disconnect node WiFi as a result of de-authentication or dis-association." PICS: DGWIFI.S.E00 verification: | @@ -38,7 +38,7 @@ tests: ./chip-tool wifinetworkdiagnostics read-event disconnection 1 0 - Verify Disconnection event on the TH Log: + Via the TH (chip-tool), verify that the Disconnection event contains Reason code is in the type of uint16. [1655734228.476828][18708:18713] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0036 Event 0x0000_0000 [1655734228.476890][18708:18713] CHIP:TOO: Event number: 2 @@ -50,7 +50,7 @@ tests: disabled: true - label: - "Disconnect node WiFi as a result of de-authentication or + "Step 3: Disconnect node WiFi as a result of de-authentication or dis-association. DUT exhausts all internal retries." PICS: DGWIFI.S.E01 verification: | @@ -58,7 +58,10 @@ tests: ./chip-tool wifinetworkdiagnostics read-event association-failure 1 0 - VerifyAssociationFailure event on the TH Log: + Via the TH (chip-tool), verify: + -that the AssociationFailure event contains AssociationFailure cause and status field values. + -that AssociationFailure cause value is match with AssociationFailure cause(0 to 3) enum table. + -that Status field value is match with spec. CHIP:DMG: ReportDataMessage = [1651574380.297222][8941:8946] CHIP:DMG: { @@ -68,14 +71,16 @@ tests: [1651574380.297374][8941:8946] CHIP:EM: Sending Standalone Ack for MessageCounter:12534430 on exchange 15170i disabled: true - - label: "Disconnect and reconnect node WiFi." + - label: "Step 4: Disconnect and reconnect node WiFi." PICS: DGWIFI.S.E02 verification: | ConnectionStatus is an Optional event so its not compulsory to get the expected outcome, Below is the log of RPI the result may be vary on the basis of dut implementation. ./chip-tool wifinetworkdiagnostics read-event connection-status 1 0 - Verify ConnectionStatus event on the TH Log: + Via the TH (chip-tool), verify: + -that the ConnectionStatus event contains ConnectionStatus value. + -that value either 0 or 1 as per ConnectionStatus ENUM table. [1655734276.513474][18731:18736] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0036 Event 0x0000_0002 [1655734276.513504][18731:18736] CHIP:TOO: Event number: 3 diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_1_1.yaml new file mode 100644 index 00000000000000..38c949f960664c --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_1_1.yaml @@ -0,0 +1,100 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 198.1.1. [TC-DISHALM-1.1] Global attributes with DUT as Server + +PICS: + - DISHALM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute." + verification: | + Verify that the DUT response contains the ClusterRevision attribute and has the value 1. + disabled: true + + - label: "Step 3: TH reads from the DUT the FeatureMap attribute." + verification: | + Verify that the DUT response contains the FeatureMap attribute and have the following bit set: + - bit 0: SHALL be 1 if and only if DISHALM.S.F00(Reset) + + All remaining bits SHALL be 0 + disabled: true + + - label: "Step 4: TH reads from the DUT the AttributeList attribute." + verification: | + Verify that the DUT response contains the AttributeList attribute and have the list of supported attributes: + The list SHALL include all the mandatory entries: + 0x0000, 0x0002, 0x0003, 0xfff8, 0xfff9, 0xfffa, 0xfffb, 0xfffc & 0xfffd. + The list include entries based on feature support: + - 0x0001: SHALL be included if and only if DISHALM.S.F00(Reset). + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true + + - label: "Step 5: TH reads from the DUT the EventList attribute." + verification: | + Verify that the DUT response contains the EventList attribute and have the list of supported events: + The list SHALL include all the mandatory entries: + 0x00 + This cluster has no entries in the standard or scoped range. + + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true + + - label: "Step 6: TH reads from the DUT the AcceptedCommandList attribute." + verification: | + Verify that the DUT response contains the AcceptedCommandList attribute and have the list of Accepted Command: + The list MAY include these optional entries: + - 0x01: SHALL be included if and only if DISHALM.S.C01.Rsp(Modify) + + The list include entries based on feature support: + - 0x00: SHALL be included if and only if DISHALM.S.C00.Rsp(Reset) + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true + + - label: "Step 7: TH reads from the DUT the GeneratedCommandList attribute." + verification: | + Verify that the DUT response contains the GeneratedCommandList attribute and have the list of Generated Command: + This cluster has no entries in the standard or scoped range. + + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_2_1.yaml new file mode 100644 index 00000000000000..9a37dd811b1da6 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_2_1.yaml @@ -0,0 +1,54 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 198.2.1. [TC-DISHALM-2.1] Attributes with DUT as Server + +PICS: + - DISHALM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the Mask attribute" + PICS: DISHALM.S.A0000 + verification: | + Verify that the DUT response contains a 32-bit value. + disabled: true + + - label: "Step 3: TH reads from the DUT the Latch attribute" + PICS: DISHALM.S.A0001 + verification: | + Verify that the DUT response contains a 32-bit value. + disabled: true + + - label: "Step 4: TH reads from the DUT the State attribute" + PICS: DISHALM.S.A0002 + verification: | + Verify that the DUT response contains a 32-bit value. + disabled: true + + - label: "Step 4: TH reads from the DUT the Supported attribute" + PICS: DISHALM.S.A0003 + verification: | + Verify that the DUT response contains a 32-bit value. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_1.yaml new file mode 100644 index 00000000000000..150e60677d63e2 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_1.yaml @@ -0,0 +1,105 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 198.2.2. [TC-DISHALM-3.1] Inflow alarm functionality with DUT as Server + +PICS: + - DISHALM.S + - PIXIT.DISHALM.InflowAlarmSupported + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: + "Step 2a: Operate device to set State attribute bit 0 (Inflow) to 1" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 0 of response SHALL be 1 + disabled: true + + - label: + "Step 2c: Operate device to set State attribute bit 0 (Inflow) to 0" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2d: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 0 of response SHALL be 0 if bit 0 of DISHALM.S.A0001(Latch) is 0 + Bit 0 of response SHALL be 1 if bit 0 of DISHALM.S.A0001(Latch) is 1 + disabled: true + + - label: + "Step 3a: TH sends command Reset to DUT with bit 0 (Inflow) of Alarms + set to 1" + PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp + verification: | + + disabled: true + + - label: + "Step 3b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.F00 && DISHALM.S.A0002 + verification: | + Bit 0 of response SHALL be 0 + disabled: true + + - label: "Step 4a: Set up subscription to Notify event" + PICS: DISHALM.S.E00 + verification: | + + disabled: true + + - label: + "Step 4b: Operate device to set State attribute bit 0 (Inflow) to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.E00 + verification: | + Receive Notify event with State bit 0 set to TRUE. + disabled: true + + - label: "Step 4c: TH reads from the DUT the State attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 0 of response SHALL be 1. + disabled: true + + - label: + "Step 4d: Operate device to set State attribute bit 0 (Inflow) to 0 TH + sends command Reset to DUT with bit 0 (Inflow) of Alarms set to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.C00.Rsp + verification: | + Receive Notify event with State bit 0 set to FALSE. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_2.yaml new file mode 100644 index 00000000000000..ee3dbf2555d626 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_2.yaml @@ -0,0 +1,101 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 198.2.3. [TC-DISHALM-3.2] Drain alarm functionality with DUT as Server + +PICS: + - DISHALM.S + - PIXIT.DISHALM.DrainAlarmSupported + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2a: Operate device to set State attribute bit 1 (Drain) to 1" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 1 of response SHALL be 1 + disabled: true + + - label: "Step 2c: Operate device to set State attribute bit 1 (Drain) to 0" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2d: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 1 of response SHALL be 0 if bit 1 of DISHALM.S.A0001(Latch) is 0 + Bit 1 of response SHALL be 1 if bit 1 of DISHALM.S.A0001(Latch) is 1 + disabled: true + + - label: + "Step 3a: TH sends command Reset to DUT with bit 1 (Drain) of Alarms + set to 1" + PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp + verification: | + + disabled: true + + - label: + "Step 3b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.F00 && DISHALM.S.A0002 + verification: | + Bit 1 of response SHALL be 0 + disabled: true + + - label: "Step 4a: Set up subscription to Notify event" + PICS: DISHALM.S.E00 + verification: | + disabled: true + + - label: "Step 4b: Operate device to set State attribute bit 1 (Drain) to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.E00 + verification: | + Receive Notify event with State bit 1 set to TRUE. + disabled: true + + - label: "Step 4c: TH reads from the DUT the State attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 1 of response SHALL be 1. + disabled: true + + - label: + "Step 4d: Operate device to set State attribute bit 1 (Drain) to 0 TH + sends command Reset to DUT with bit 1 (Drain) of Alarms set to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.C00.Rsp + verification: | + Receive Notify event with State bit 1 set to FALSE. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_3.yaml new file mode 100644 index 00000000000000..b9b839e71d7041 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_3.yaml @@ -0,0 +1,102 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 198.2.4. [TC-DISHALM-3.3] Door alarm functionality with DUT as Server + +PICS: + - DISHALM.S + - PIXIT.DISHALM.DoorAlarmSupported + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2a: Operate device to set State attribute bit 2 (Door) to 1" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 2 of response SHALL be 1 + disabled: true + + - label: "Step 2c: Operate device to set State attribute bit 2 (Door) to 0" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2d: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 2 of response SHALL be 0 if bit 2 of DISHALM.S.A0001(Latch) is 0 + Bit 2 of response SHALL be 1 if bit 2 of DISHALM.S.A0001(Latch) is 1 + disabled: true + + - label: + "Step 3a: TH sends command Reset to DUT with bit 2 (Door) of Alarms + set to 1" + PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp + verification: | + + disabled: true + + - label: + "Step 3b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.F00 && DISHALM.S.A0002 + verification: | + Bit 2 of response SHALL be 0 + disabled: true + + - label: "Step 4a: Set up subscription to Notify event" + PICS: DISHALM.S.E00 + verification: | + + disabled: true + + - label: "Step 4b: Operate device to set State attribute bit 2 (Door) to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.E00 + verification: | + Receive Notify event with State bit 2 set to TRUE. + disabled: true + + - label: "Step 4c: TH reads from the DUT the State attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 2 of response SHALL be 1. + disabled: true + + - label: + "Step 4d: Operate device to set State attribute bit 2 (Door) to 0 TH + sends command Reset to DUT with bit 2 (Door) of Alarms set to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.C00.Rsp + verification: | + Receive Notify event with State bit 2 set to FALSE. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_4.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_4.yaml new file mode 100644 index 00000000000000..524ffba84ab4a7 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_4.yaml @@ -0,0 +1,107 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 198.2.5. [TC-DISHALM-3.4] Temperature Low alarm functionality with DUT as + Server + +PICS: + - DISHALM.S + - PIXIT.DISHALM.TempLowAlarmSupported + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: + "Step 2a: Operate device to set State attribute bit 3 (TempLow) to 1" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 3 of response SHALL be 1 + disabled: true + + - label: + "Step 2c: Operate device to set State attribute bit 3 (TempLow) to 0" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2d: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 3 of response SHALL be 0 if bit 3 of DISHALM.S.A0001(Latch) is 0 + Bit 3 of response SHALL be 1 if bit 3 of DISHALM.S.A0001(Latch) is 1 + disabled: true + + - label: + "Step 3a: TH sends command Reset to DUT with bit 3 (TempLow) of Alarms + set to 1" + PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp + verification: | + + disabled: true + + - label: + "Step 3b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.F00 && DISHALM.S.A0002 + verification: | + Bit 3 of response SHALL be 0 + disabled: true + + - label: "Step 4a: Set up subscription to Notify event" + PICS: DISHALM.S.E00 + verification: | + + disabled: true + + - label: + "Step 4b: Operate device to set State attribute bit 3 (TempLow) to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.E00 + verification: | + Receive Notify event with State bit 3 set to TRUE. + disabled: true + + - label: "Step 4c: TH reads from the DUT the State attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 3 of response SHALL be 1. + disabled: true + + - label: + "Step 4d: Operate device to set State attribute bit 3 (TempLow) to 0 + TH sends command Reset to DUT with bit 3 (TempLow) of Alarms set to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.C00.Rsp + verification: | + Receive Notify event with State bit 3 set to FALSE. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_5.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_5.yaml new file mode 100644 index 00000000000000..79534e46f7f2b7 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_5.yaml @@ -0,0 +1,107 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 198.2.6. [TC-DISHALM-3.5] Temperature High alarm functionality with DUT as + Server + +PICS: + - DISHALM.S + - PIXIT.DISHALM.TempHighAlarmSupported + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: + "Step 2a: Operate device to set State attribute bit 4 (TempHigh) to 1" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 4 of response SHALL be 1 + disabled: true + + - label: + "Step 2c: Operate device to set State attribute bit 4 (TempHigh) to 0" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2d: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 4 of response SHALL be 0 if bit 4 of DISHALM.S.A0001(Latch) is 0 + Bit 4 of response SHALL be 1 if bit 4 of DISHALM.S.A0001(Latch) is 1 + disabled: true + + - label: + "Step 3a: TH sends command Reset to DUT with bit 4 (TempHigh) of + Alarms set to 1" + PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp + verification: | + + disabled: true + + - label: + "Step 3b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.F00 && DISHALM.S.A0002 + verification: | + Bit 4 of response SHALL be 0 + disabled: true + + - label: "Step 4a: Set up subscription to Notify event" + PICS: DISHALM.S.E00 + verification: | + + disabled: true + + - label: + "Step 4b: Operate device to set State attribute bit 4 (TempHigh) to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.E00 + verification: | + Receive Notify event with State bit 4 set to TRUE. + disabled: true + + - label: "Step 4c: TH reads from the DUT the State attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 4 of response SHALL be 1. + disabled: true + + - label: + "Step 4d: Operate device to set State attribute bit 4 (TempHigh) to 0 + TH sends command Reset to DUT with bit 4 (TempHigh) of Alarms set to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.C00.Rsp + verification: | + Receive Notify event with State bit 4 set to FALSE. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHALM_3_6.yaml b/src/app/tests/suites/certification/Test_TC_DISHALM_3_6.yaml new file mode 100644 index 00000000000000..a894e3db5eba7c --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHALM_3_6.yaml @@ -0,0 +1,110 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 197.2.7. [TC-DISHALM-3.6] Water Level alarm functionality with DUT as Server + +PICS: + - DISHALM.S + - PIXIT.DISHALM.WaterLevelAlarmSupported + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: + "Step 2a: Operate device to set State attribute bit 5 (WaterLevel) to + 1" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 5 of response SHALL be 1 + disabled: true + + - label: + "Step 2c: Operate device to set State attribute bit 5 (WaterLevel) to + 0" + PICS: DISHALM.M.ManuallyControlled + verification: | + + disabled: true + + - label: + "Step 2d: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 5 of response SHALL be 0 if bit 5 of DISHALM.S.A0001(Latch) is 0 + Bit 5 of response SHALL be 1 if bit 5 of DISHALM.S.A0001(Latch) is 1 + disabled: true + + - label: + "Step 3a: TH sends command Reset to DUT with bit 5 (WaterLevel) of + Alarms set to 1" + PICS: DISHALM.S.F00 && DISHALM.S.C00.Rsp + verification: | + + disabled: true + + - label: + "Step 3b: After a few seconds, TH reads from the DUT the State + attribute" + PICS: DISHALM.S.F00 && DISHALM.S.A0002 + verification: | + Bit 5 of response SHALL be 0 + disabled: true + + - label: "Step 4a: Set up subscription to Notify event" + PICS: DISHALM.S.E00 + verification: | + + disabled: true + + - label: + "Step 4b: Operate device to set State attribute bit 5 (WaterLevel) to + 1" + PICS: DISHALM.S.A0002 && DISHALM.S.E00 + verification: | + Receive Notify event with State bit 5 set to TRUE. + disabled: true + + - label: "Step 4c: TH reads from the DUT the State attribute" + PICS: DISHALM.S.A0002 + verification: | + Bit 5 of response SHALL be 1. + disabled: true + + - label: + "Step 4d: Operate device to set State attribute bit 5 (WaterLevel) to + 0 TH sends command Reset to DUT with bit 5 (WaterLevel) of Alarms set + to 1" + PICS: DISHALM.S.A0002 && DISHALM.S.C00.Rsp + verification: | + Receive Notify event with State bit 5 set to FALSE. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DISHM_1_1.yaml new file mode 100644 index 00000000000000..b79bbbd590df01 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHM_1_1.yaml @@ -0,0 +1,102 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 263.1.1. [TC-DISHM-1.1] Global attributes with DUT as Server + +PICS: + - DISHM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute." + verification: | + ./chip-tool dishwashermodeselect read cluster-revision 1 1 + + Verify the "ClusterRevision" value is of unit16 and reflects the highest revision number 2 on the TH(chip-tool) and below is the sample log provided for the raspi platform: + + [1645775623.658997][3277:3282] CHIP:TOO: ClusterRevision: 1 + disabled: true + + - label: "Step 3: TH reads from the DUT the FeatureMap attribute." + verification: | + ./chip-tool dishwashermodeselect read feature-map 1 1 + + On the TH(chip-tool) Log, Verify featureMap value is 1, This value changes depending on DUT implementing the features and below is the sample log provided for the raspi platform: + + [1649052001.646939][8355:8360] CHIP:TOO: FeatureMap: 1 + disabled: true + + - label: "Step 4: TH reads from the DUT the AttributeList attribute." + verification: | + ./chip-tool dishwashermodeselect read attribute-list 1 1 + + Verify the "AttributeList " should include the mandatory attributes (values 0, 2, 3), + global attributes (value 65533, 65532, 65531, 65530, 65529 and 65528) and + list may include optional attribute(value 0x0004), if MOD.S.A0004(StartUpMode) supports, + list contains feature dependent attribute (values 0x0005), if MOD.S.F00(DEPONOFF) is true on the TH(chip-tool) Log and below is the sample log provided for the raspi platform: + + [1676288620.483812][4014:4016] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_FFFB DataVersion: 2649295313 + [1676288620.483850][4014:4016] CHIP:TOO: AttributeList: 13 entries + [1676288620.483861][4014:4016] CHIP:TOO: [1]: 0 + [1676288620.483870][4014:4016] CHIP:TOO: [2]: 1 + [1676288620.483878][4014:4016] CHIP:TOO: [3]: 65528 + [1676288620.483886][4014:4016] CHIP:TOO: [4]: 65529 + [1676288620.483892][4014:4016] CHIP:TOO: [5]: 65530 + [1676288620.483899][4014:4016] CHIP:TOO: [6]: 65531 + [1676288620.483906][4014:4016] CHIP:TOO: [7]: 4293984257 + [1676288620.483915][4014:4016] CHIP:TOO: [8]: 2 + [1676288620.483922][4014:4016] CHIP:TOO: [9]: 3 + [1676288620.483929][4014:4016] CHIP:TOO: [10]: 4 + [1676288620.483934][4014:4016] CHIP:TOO: [11]: 5 + [1676288620.483941][4014:4016] CHIP:TOO: [12]: 65532 + [1676288620.483947][4014:4016] CHIP:TOO: [13]: 65533 + [1676288620.484034][4014:4016] CHIP:EM: <<< [E:29816i M:167554497 (Ack:41020138)] (S) Msg TX to 1:000000000 + + + *NOTE* : This sample attribute list reflects the currently implemented attributes on the all-clusters-app. + disabled: true + + - label: "Step 5: TH reads from the DUT the AcceptedCommandList attribute." + verification: | + ./chip-tool dishwashermodeselect read accepted-command-list 1 1 + + Verify the "AcceptedCommandList" contains feature dependent commands + if !MOD.S.F02(DEPCTM) feature supports list includes(value 0x0000) and + if MOD.S.F01(EXT) feature supports list includes(value 0x0001) on the TH (chip-tool) and below is the sample log provided for the raspi platform: + + [1650274602.826352][8965:8970] CHIP:TOO: AcceptedCommandList: 1 entries + [1650274602.826442][8965:8970] CHIP:TOO: [1]: 0 + disabled: true + + - label: "Step 6: TH reads from the DUT the GeneratedCommandList attribute." + verification: | + ./chip-tool dishwashermodeselect read generated-command-list 1 1 + + Verify "GeneratedCommandList" contains feature dependent commands + if MOD.S.F01(EXT) feature supports list includes(value 0x0002), otherwise value is 0 on the TH(chip-tool) Log and below is the sample log provided for the raspi platform: + + [1650274662.075309][8972:8977] CHIP:TOO: GeneratedCommandList: 0 entries + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHM_1_2.yaml b/src/app/tests/suites/certification/Test_TC_DISHM_1_2.yaml new file mode 100644 index 00000000000000..a4304e3d1d715c --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHM_1_2.yaml @@ -0,0 +1,118 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 263.1.2. [TC-DISHM-1.2] Cluster attributes with DUT as Server + +PICS: + - DISHM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: DISHM.S.A0000 + verification: | + ./chip-tool dishwashermodeselect read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute should contains atleast two ModeOptionsStruct entries with unique mode field value and label field value below is the sample log provided for the raspi platform: + + [1687687925.438666][18054:18056] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0059 Attribute 0x0000_0002 DataVersion: 4148960394 + [1687687925.438838][18054:18056] CHIP:TOO: SupportedModes: 3 entries + [1687687925.444452][18054:18056] CHIP:TOO: [1]: { + [1687687925.444485][18054:18056] CHIP:TOO: Label: Normal + [1687687925.444506][18054:18056] CHIP:TOO: Mode: 0 + [1687687925.444532][18054:18056] CHIP:TOO: SemanticTags: 1 entries + [1687687925.444575][18054:18056] CHIP:TOO: [1]: { + [1687687925.444598][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444632][18054:18056] CHIP:TOO: Value: 16384 + [1687687925.444654][18054:18056] CHIP:TOO: } + [1687687925.444674][18054:18056] CHIP:TOO: } + [1687687925.444702][18054:18056] CHIP:TOO: [2]: { + [1687687925.444723][18054:18056] CHIP:TOO: Label: Heavy + [1687687925.444742][18054:18056] CHIP:TOO: Mode: 1 + [1687687925.444764][18054:18056] CHIP:TOO: SemanticTags: 2 entries + [1687687925.444787][18054:18056] CHIP:TOO: [1]: { + [1687687925.444808][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444828][18054:18056] CHIP:TOO: Value: 7 + [1687687925.444847][18054:18056] CHIP:TOO: } + [1687687925.444869][18054:18056] CHIP:TOO: [2]: { + [1687687925.444928][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444952][18054:18056] CHIP:TOO: Value: 16385 + [1687687925.444971][18054:18056] CHIP:TOO: } + [1687687925.444991][18054:18056] CHIP:TOO: } + [1687687925.445016][18054:18056] CHIP:TOO: [3]: { + [1687687925.445036][18054:18056] CHIP:TOO: Label: Light + [1687687925.445056][18054:18056] CHIP:TOO: Mode: 2 + [1687687925.445106][18054:18056] CHIP:TOO: SemanticTags: 3 entries + [1687687925.445133][18054:18056] CHIP:TOO: [1]: { + [1687687925.445154][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445174][18054:18056] CHIP:TOO: Value: 16386 + [1687687925.445194][18054:18056] CHIP:TOO: } + [1687687925.445216][18054:18056] CHIP:TOO: [2]: { + [1687687925.445236][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445256][18054:18056] CHIP:TOO: Value: 8 + [1687687925.445275][18054:18056] CHIP:TOO: } + [1687687925.445297][18054:18056] CHIP:TOO: [3]: { + [1687687925.445342][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445365][18054:18056] CHIP:TOO: Value: 2 + [1687687925.445385][18054:18056] CHIP:TOO: } + [1687687925.445405][18054:18056] CHIP:TOO: } + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + ./chip-tool dishwashermodeselect read current-mode 1 1 + + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer and the value is from supported_modes_dut, below is the sample log provided for the raspi platform: + + [1645776767.611140][4667:4672] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469718 + + [1645776767.611214][4667:4672] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: "Step 4: TH reads from the DUT the OnMode attribute." + PICS: DISHM.S.A0003 + verification: | + ./chip-tool dishwashermodeselect read on-mode 1 1 + + Verify on TH(chip-tool) logs, OnMode attribute value is an integer and the value is from supported_modes_dut (As per spec default value is null) , below is the sample log provided for the raspi platform: + + + [1649676072.465968][10754:10759] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4277065072 + + [1649676072.466094][10754:10759] CHIP:TOO: OnMode: null + disabled: true + + - label: "Step 5: TH reads from the DUT the StartUpMode attribute." + PICS: DISHM.S.A0002 + verification: | + ./chip-tool dishwashermodeselect read start-up-mode 1 1 + + Verify on TH(chip-tool) logs, StartUpMode attribute value is an integer and value is from supported_modes_dut, below is the sample log provided for the raspi platform: + + [1649677014.496348][10778:10784] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0004 DataVersion: 4277065072 + [1649677014.496469][10778:10784] CHIP:TOO: StartUpMode: 0 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DISHM_2_1.yaml new file mode 100644 index 00000000000000..57546907ea001a --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHM_2_1.yaml @@ -0,0 +1,185 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 263.3.1. [TC-DISHM-2.1] ChangeToModeWithStatus Verification DUT as Server + +PICS: + - DISHM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: DISHM.S.A0000 + verification: | + ./chip-tool dishwashermodeselect read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute should contains two or more ModeOptionsStruct entries and + Save the Mode field values as supported_modes_dut, below is the sample log provided for the raspi platform: + + [1687687925.438666][18054:18056] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0059 Attribute 0x0000_0002 DataVersion: 4148960394 + [1687687925.438838][18054:18056] CHIP:TOO: SupportedModes: 3 entries + [1687687925.444452][18054:18056] CHIP:TOO: [1]: { + [1687687925.444485][18054:18056] CHIP:TOO: Label: Normal + [1687687925.444506][18054:18056] CHIP:TOO: Mode: 0 + [1687687925.444532][18054:18056] CHIP:TOO: SemanticTags: 1 entries + [1687687925.444575][18054:18056] CHIP:TOO: [1]: { + [1687687925.444598][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444632][18054:18056] CHIP:TOO: Value: 16384 + [1687687925.444654][18054:18056] CHIP:TOO: } + [1687687925.444674][18054:18056] CHIP:TOO: } + [1687687925.444702][18054:18056] CHIP:TOO: [2]: { + [1687687925.444723][18054:18056] CHIP:TOO: Label: Heavy + [1687687925.444742][18054:18056] CHIP:TOO: Mode: 1 + [1687687925.444764][18054:18056] CHIP:TOO: SemanticTags: 2 entries + [1687687925.444787][18054:18056] CHIP:TOO: [1]: { + [1687687925.444808][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444828][18054:18056] CHIP:TOO: Value: 7 + [1687687925.444847][18054:18056] CHIP:TOO: } + [1687687925.444869][18054:18056] CHIP:TOO: [2]: { + [1687687925.444928][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444952][18054:18056] CHIP:TOO: Value: 16385 + [1687687925.444971][18054:18056] CHIP:TOO: } + [1687687925.444991][18054:18056] CHIP:TOO: } + [1687687925.445016][18054:18056] CHIP:TOO: [3]: { + [1687687925.445036][18054:18056] CHIP:TOO: Label: Light + [1687687925.445056][18054:18056] CHIP:TOO: Mode: 2 + [1687687925.445106][18054:18056] CHIP:TOO: SemanticTags: 3 entries + [1687687925.445133][18054:18056] CHIP:TOO: [1]: { + [1687687925.445154][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445174][18054:18056] CHIP:TOO: Value: 16386 + [1687687925.445194][18054:18056] CHIP:TOO: } + [1687687925.445216][18054:18056] CHIP:TOO: [2]: { + [1687687925.445236][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445256][18054:18056] CHIP:TOO: Value: 8 + [1687687925.445275][18054:18056] CHIP:TOO: } + [1687687925.445297][18054:18056] CHIP:TOO: [3]: { + [1687687925.445342][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445365][18054:18056] CHIP:TOO: Value: 2 + [1687687925.445385][18054:18056] CHIP:TOO: } + [1687687925.445405][18054:18056] CHIP:TOO: } + disabled: true + + - label: "Step 2: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + ./chip-tool dishwashermodeselect read current-mode 1 1 + + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer value + - Save the value as old_current_mode_dut + - Select a value from supported_modes_dut, different from old_current_mode_dut, and which corresponds to a mode the device can switch to, given its current state and save this value as new_mode_th + - Select a value which is NOT in supported_modes_dut and save it as invalid_mode_th, + below is the sample log provided for the raspi platform: + + [1685018283.726571][16418:16420] CHIP:DMG: SuppressResponse = true, + [1685018283.726581][16418:16420] CHIP:DMG: InteractionModelRevision = 1 + [1685018283.726589][16418:16420] CHIP:DMG: } + [1685018283.726667][16418:16420] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3898153349 + [1685018283.726680][16418:16420] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: + "Step 3: TH sends a ChangeToMode command to the DUT with NewMode set + to old_current_mode_dut" + PICS: DISHM.S.C00.Rsp + verification: | + ChangeToModeWithStatus Command is not impleented. + disabled: true + + - label: + "Step 4: Manually put the device in a state from which it will FAIL to + transition to PIXIT.DISHM.MODE_CHANGE_FAIL" + verification: | + ChangeToModeWithStatus Command is not implented. + disabled: true + + - label: "Step 5: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + ./chip-tool dishwashermodeselect read current-mode 1 1 + + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer value and equal to the new_mode_th, below is the sample log provided for the raspi platform: + + [1685018283.726571][16418:16420] CHIP:DMG: SuppressResponse = true, + [1685018283.726581][16418:16420] CHIP:DMG: InteractionModelRevision = 1 + [1685018283.726589][16418:16420] CHIP:DMG: } + [1685018283.726667][16418:16420] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3898153349 + [1685018283.726680][16418:16420] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: + "Step 6: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.DISHM.MODE_CHANGE_FAIL" + PICS: DISHM.S.C00.Rsp + verification: | + ChangeToModeWithStatus Command is not implented. + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + + disabled: true + + - label: + "Step 8: Manually put the device in a state from which it will + SUCCESSFULLY transition to PIXIT.DISHM.MODE_CHANGE_OK" + verification: | + + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + + disabled: true + + - label: + "Step 10: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.DISHM.MODE_CHANGE_OK" + PICS: DISHM.S.C00.Rsp + verification: | + + disabled: true + + - label: "Step 11: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + + disabled: true + + - label: + "Step 12: TH sends a ChangeToMode command to the DUT with NewMode set + to invalid_mode_th" + PICS: DISHM.S.C00.Rsp + verification: | + + disabled: true + + - label: "Step 13: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DISHM_3_1.yaml new file mode 100644 index 00000000000000..8836ca0ba9595f --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHM_3_1.yaml @@ -0,0 +1,162 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 263.4.1. [TC-DISHM-3.1] OnMode verification with DUT as Server + +PICS: + - DISHM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the OnMode attribute." + PICS: DISHM.S.A0003 && DISHM.S.F00 + verification: | + ./chip-tool dishwashermodeselect read on-mode 1 1 + + On TH(chip-tool), Verify OnMode attribute value is an integer. save the value as on_mode_dut and below is the sample log provided for the raspi platform: + + [1649678983.679893][10871:10876] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4277065073 + [1649678983.680002][10871:10876] CHIP:TOO: OnMode: 0 + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 && DISHM.S.F00 + verification: | + ./chip-tool dishwashermodeselect read current-mode 1 1 + + On TH(chip-tool), Verify CurrentMode attribute is an integer. save the value as old_current_mode_dut and below is the sample log provided for the raspi platform: + + NOTE: If startup_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. + + [1649679034.895848][10879:10884] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073 + [1649679034.895972][10879:10884] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: DISHM.S.A0000 && DISHM.S.F00 + verification: | + ./chip-tool dishwashermodeselect read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. + Save the Mode field values as supported_modes_dut. + Select a value from supported_modes_dut different from on_mode_dut and save the value as new_mode_th, below is the sample log provided for the raspi platform: + + [1687687925.438666][18054:18056] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0059 Attribute 0x0000_0002 DataVersion: 4148960394 + [1687687925.438838][18054:18056] CHIP:TOO: SupportedModes: 3 entries + [1687687925.444452][18054:18056] CHIP:TOO: [1]: { + [1687687925.444485][18054:18056] CHIP:TOO: Label: Normal + [1687687925.444506][18054:18056] CHIP:TOO: Mode: 0 + [1687687925.444532][18054:18056] CHIP:TOO: SemanticTags: 1 entries + [1687687925.444575][18054:18056] CHIP:TOO: [1]: { + [1687687925.444598][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444632][18054:18056] CHIP:TOO: Value: 16384 + [1687687925.444654][18054:18056] CHIP:TOO: } + [1687687925.444674][18054:18056] CHIP:TOO: } + [1687687925.444702][18054:18056] CHIP:TOO: [2]: { + [1687687925.444723][18054:18056] CHIP:TOO: Label: Heavy + [1687687925.444742][18054:18056] CHIP:TOO: Mode: 1 + [1687687925.444764][18054:18056] CHIP:TOO: SemanticTags: 2 entries + [1687687925.444787][18054:18056] CHIP:TOO: [1]: { + [1687687925.444808][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444828][18054:18056] CHIP:TOO: Value: 7 + [1687687925.444847][18054:18056] CHIP:TOO: } + [1687687925.444869][18054:18056] CHIP:TOO: [2]: { + [1687687925.444928][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444952][18054:18056] CHIP:TOO: Value: 16385 + [1687687925.444971][18054:18056] CHIP:TOO: } + [1687687925.444991][18054:18056] CHIP:TOO: } + [1687687925.445016][18054:18056] CHIP:TOO: [3]: { + [1687687925.445036][18054:18056] CHIP:TOO: Label: Light + [1687687925.445056][18054:18056] CHIP:TOO: Mode: 2 + [1687687925.445106][18054:18056] CHIP:TOO: SemanticTags: 3 entries + [1687687925.445133][18054:18056] CHIP:TOO: [1]: { + [1687687925.445154][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445174][18054:18056] CHIP:TOO: Value: 16386 + [1687687925.445194][18054:18056] CHIP:TOO: } + [1687687925.445216][18054:18056] CHIP:TOO: [2]: { + [1687687925.445236][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445256][18054:18056] CHIP:TOO: Value: 8 + [1687687925.445275][18054:18056] CHIP:TOO: } + [1687687925.445297][18054:18056] CHIP:TOO: [3]: { + [1687687925.445342][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445365][18054:18056] CHIP:TOO: Value: 2 + [1687687925.445385][18054:18056] CHIP:TOO: } + [1687687925.445405][18054:18056] CHIP:TOO: } + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: DISHM.S.C00.Rsp && DISHM.S.F00 + verification: | + ./chip-tool dishwashermodeselect change-to-mode 2 1 1 + + On TH(chip-tool) log, verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931013.571019][20667:20669] CHIP:DMG: + [1684931013.571021][20667:20669] CHIP:DMG: StatusIB = + [1684931013.571024][20667:20669] CHIP:DMG: { + [1684931013.571027][20667:20669] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931013.571030][20667:20669] CHIP:DMG: }, + [1684931013.571034][20667:20669] CHIP:DMG: + disabled: true + + - label: "Step 6: TH sends a Off command to the DUT" + PICS: OO.S.C00.Rsp && DISHM.S.F00 + verification: | + ./chip-tool onoff off 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931101.118656][20709:20711] CHIP:DMG: StatusIB = + [1684931101.118659][20709:20711] CHIP:DMG: { + [1684931101.118663][20709:20711] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931101.118665][20709:20711] CHIP:DMG: }, + disabled: true + + - label: "Step 7: TH sends a On command to the DUT" + PICS: OO.S.C01.Rsp && DISHM.S.F00 + verification: | + ./chip-tool onoff on 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931217.055514][20729:20731] CHIP:DMG: StatusIB = + [1684931217.055517][20729:20731] CHIP:DMG: { + [1684931217.055520][20729:20731] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931217.055523][20729:20731] CHIP:DMG: }, + disabled: true + + - label: "Step 8: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 && DISHM.S.F00 + verification: | + ./chip-tool dishwashermodeselect read current-mode 1 1 + + On TH(chip-tool), Verify that CurrentMode attribute value is an integer and value is equal to on_mode_dut. below is the sample log provided for the raspi platform: + + [1649679202.069163][10899:10904] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073 + [1649679202.069278][10899:10904] CHIP:TOO: CurrentMode: 2 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHM_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DISHM_3_2.yaml new file mode 100644 index 00000000000000..960e14a4046d90 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHM_3_2.yaml @@ -0,0 +1,141 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 263.4.2. [TC-DISHM-3.2] StartUpMode verification with DUT as Server + +PICS: + - DISHM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the StartUpMode attribute." + PICS: DISHM.S.A0002 + verification: | + ./chip-tool dishwashermodeselect read start-up-mode 1 1 + + On TH(chip-tool), Verify StartUpMode attribute value is an integer. save the value as startup_mode_dut and below is the sample log provided for the raspi platform: + + [1645777708.406864][4841:4846] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003DataVersion: 3781469721 + [1645777708.406933][4841:4846] CHIP:TOO: StartUpMode: 0 + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + ./chip-tool dishwashermodeselect read current-mode 1 1 + + On TH(chip-tool), Verify CurrentMode attribute value is an integer, + save the value as old_current_mode_dut and below is the sample log provided for the raspi platform: + + NOTE: If startup_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. + + [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 + [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: DISHM.S.A0000 + verification: | + ./chip-tool dishwashermodeselect read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. + Save the Mode field values as supported_modes_dut. + Select a value from supported_modes_dut different from on_mode_dut and save the value as new_mode_th, below is the sample log provided for the raspi platform: + + [1687687925.438666][18054:18056] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0059 Attribute 0x0000_0002 DataVersion: 4148960394 + [1687687925.438838][18054:18056] CHIP:TOO: SupportedModes: 3 entries + [1687687925.444452][18054:18056] CHIP:TOO: [1]: { + [1687687925.444485][18054:18056] CHIP:TOO: Label: Normal + [1687687925.444506][18054:18056] CHIP:TOO: Mode: 0 + [1687687925.444532][18054:18056] CHIP:TOO: SemanticTags: 1 entries + [1687687925.444575][18054:18056] CHIP:TOO: [1]: { + [1687687925.444598][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444632][18054:18056] CHIP:TOO: Value: 16384 + [1687687925.444654][18054:18056] CHIP:TOO: } + [1687687925.444674][18054:18056] CHIP:TOO: } + [1687687925.444702][18054:18056] CHIP:TOO: [2]: { + [1687687925.444723][18054:18056] CHIP:TOO: Label: Heavy + [1687687925.444742][18054:18056] CHIP:TOO: Mode: 1 + [1687687925.444764][18054:18056] CHIP:TOO: SemanticTags: 2 entries + [1687687925.444787][18054:18056] CHIP:TOO: [1]: { + [1687687925.444808][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444828][18054:18056] CHIP:TOO: Value: 7 + [1687687925.444847][18054:18056] CHIP:TOO: } + [1687687925.444869][18054:18056] CHIP:TOO: [2]: { + [1687687925.444928][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444952][18054:18056] CHIP:TOO: Value: 16385 + [1687687925.444971][18054:18056] CHIP:TOO: } + [1687687925.444991][18054:18056] CHIP:TOO: } + [1687687925.445016][18054:18056] CHIP:TOO: [3]: { + [1687687925.445036][18054:18056] CHIP:TOO: Label: Light + [1687687925.445056][18054:18056] CHIP:TOO: Mode: 2 + [1687687925.445106][18054:18056] CHIP:TOO: SemanticTags: 3 entries + [1687687925.445133][18054:18056] CHIP:TOO: [1]: { + [1687687925.445154][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445174][18054:18056] CHIP:TOO: Value: 16386 + [1687687925.445194][18054:18056] CHIP:TOO: } + [1687687925.445216][18054:18056] CHIP:TOO: [2]: { + [1687687925.445236][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445256][18054:18056] CHIP:TOO: Value: 8 + [1687687925.445275][18054:18056] CHIP:TOO: } + [1687687925.445297][18054:18056] CHIP:TOO: [3]: { + [1687687925.445342][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445365][18054:18056] CHIP:TOO: Value: 2 + [1687687925.445385][18054:18056] CHIP:TOO: } + [1687687925.445405][18054:18056] CHIP:TOO: } + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: DISHM.S.C00.Rsp + verification: | + ./chip-tool dishwashermodeselect change-to-mode 2 1 1 + + + On TH(chip-tool) , Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931419.768138][20792:20794] CHIP:DMG: StatusIB = + [1684931419.768143][20792:20794] CHIP:DMG: { + [1684931419.768148][20792:20794] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931419.768152][20792:20794] CHIP:DMG: }, + disabled: true + + - label: "Step 6: Physically power cycle the device" + verification: | + Physically power cycle the device. + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + ./chip-tool dishwashermodeselect read current-mode 1 1 + + on TH(chip-tool), Verify that CurrentMode attribute value is same as value recorded in step 1 and below is the sample log provided for the raspi platform: + + [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 + [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DISHM_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DISHM_3_3.yaml new file mode 100644 index 00000000000000..f2fec608881422 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_DISHM_3_3.yaml @@ -0,0 +1,206 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 189.3.3.[TC-DISHM-3.3] OnMode overwriting StartUpMode with DUT as Server + +PICS: + - DISHM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the StartUpMode attribute." + PICS: DISHM.S.A0002 + verification: | + ./chip-tool dishwashermodeselect read start-up-mode 1 1 + + On TH(chip-tool) log, Verify StartUpMode attribute value is an integer. save this value as startup_mode_dut and below is the sample log provided for the raspi platform: + + + [1651099663211] [82177:7560652] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0004 DataVersion: 2609052118 + [1651099663212] [82177:7560652] CHIP: [TOO] StartUpMode: 0 + disabled: true + + - label: "Step 3: TH reads from the DUT the OnMode attribute." + PICS: DISHM.S.A0003 && DISHM.S.A0002 + verification: | + ./chip-tool dishwashermodeselect read on-mode 1 1 + + On TH(chip-tool) log, Verify OnMode attribute value is an integer. save the value as old_on_mode_dut and below is the sample log provided for the raspi platform: + + + [1654780979.979743][61542:61547] CHIP:DMG: } + [1654780979.980040][61542:61547] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 235764160 + [1654780979.980202][61542:61547] CHIP:TOO: OnMode: 4 + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: DISHM.S.A0000 && DISHM.S.A0002 + verification: | + ./chip-tool dishwashermodeselect read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. + Save the Mode field values as supported_modes_dut. + Select a value from supported_modes_dut different from on_mode_dut and save the value as new_mode_th, below is the sample log provided for the raspi platform: + + [1687687925.438666][18054:18056] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0059 Attribute 0x0000_0002 DataVersion: 4148960394 + [1687687925.438838][18054:18056] CHIP:TOO: SupportedModes: 3 entries + [1687687925.444452][18054:18056] CHIP:TOO: [1]: { + [1687687925.444485][18054:18056] CHIP:TOO: Label: Normal + [1687687925.444506][18054:18056] CHIP:TOO: Mode: 0 + [1687687925.444532][18054:18056] CHIP:TOO: SemanticTags: 1 entries + [1687687925.444575][18054:18056] CHIP:TOO: [1]: { + [1687687925.444598][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444632][18054:18056] CHIP:TOO: Value: 16384 + [1687687925.444654][18054:18056] CHIP:TOO: } + [1687687925.444674][18054:18056] CHIP:TOO: } + [1687687925.444702][18054:18056] CHIP:TOO: [2]: { + [1687687925.444723][18054:18056] CHIP:TOO: Label: Heavy + [1687687925.444742][18054:18056] CHIP:TOO: Mode: 1 + [1687687925.444764][18054:18056] CHIP:TOO: SemanticTags: 2 entries + [1687687925.444787][18054:18056] CHIP:TOO: [1]: { + [1687687925.444808][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444828][18054:18056] CHIP:TOO: Value: 7 + [1687687925.444847][18054:18056] CHIP:TOO: } + [1687687925.444869][18054:18056] CHIP:TOO: [2]: { + [1687687925.444928][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.444952][18054:18056] CHIP:TOO: Value: 16385 + [1687687925.444971][18054:18056] CHIP:TOO: } + [1687687925.444991][18054:18056] CHIP:TOO: } + [1687687925.445016][18054:18056] CHIP:TOO: [3]: { + [1687687925.445036][18054:18056] CHIP:TOO: Label: Light + [1687687925.445056][18054:18056] CHIP:TOO: Mode: 2 + [1687687925.445106][18054:18056] CHIP:TOO: SemanticTags: 3 entries + [1687687925.445133][18054:18056] CHIP:TOO: [1]: { + [1687687925.445154][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445174][18054:18056] CHIP:TOO: Value: 16386 + [1687687925.445194][18054:18056] CHIP:TOO: } + [1687687925.445216][18054:18056] CHIP:TOO: [2]: { + [1687687925.445236][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445256][18054:18056] CHIP:TOO: Value: 8 + [1687687925.445275][18054:18056] CHIP:TOO: } + [1687687925.445297][18054:18056] CHIP:TOO: [3]: { + [1687687925.445342][18054:18056] CHIP:TOO: MfgCode: 0 + [1687687925.445365][18054:18056] CHIP:TOO: Value: 2 + [1687687925.445385][18054:18056] CHIP:TOO: } + [1687687925.445405][18054:18056] CHIP:TOO: } + disabled: true + + - label: + "Step 5: TH writes to the DUT the OnMode attribute with the + new_mode_th value" + PICS: DISHM.S.A0003 + verification: | + ./chip-tool dishwashermodeselect write on-mode 7 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1651099941884] [84269:7567211] CHIP: [DMG] WriteResponseMessage = + [1651099941884] [84269:7567211] CHIP: [DMG] { + [1651099941884] [84269:7567211] CHIP: [DMG] AttributeStatusIBs = + [1651099941884] [84269:7567211] CHIP: [DMG] [ + [1651099941884] [84269:7567211] CHIP: [DMG] AttributeStatusIB = + [1651099941884] [84269:7567211] CHIP: [DMG] { + [1651099941887] [84269:7567211] CHIP: [DMG] AttributePathIB = + [1651099941887] [84269:7567211] CHIP: [DMG] { + [1651099941887] [84269:7567211] CHIP: [DMG] Endpoint = 0x1, + [1651099941887] [84269:7567211] CHIP: [DMG] Cluster = 0x50, + [1651099941887] [84269:7567211] CHIP: [DMG] Attribute = 0x0000_0005, + [1651099941887] [84269:7567211] CHIP: [DMG] } + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] StatusIB = + [1651099941887] [84269:7567211] CHIP: [DMG] { + [1651099941887] [84269:7567211] CHIP: [DMG] status = 0x00 (SUCCESS), + [1651099941887] [84269:7567211] CHIP: [DMG] }, + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] }, + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] ], + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] InteractionModelRevision = 1 + [1651099941887] [84269:7567211] CHIP: [DMG] } + disabled: true + + - label: "Step 6: TH reads from the DUT the OnMode attribute." + PICS: DISHM.S.A0003 && DISHM.S.F00 + verification: | + ./chip-tool dishwashermodeselect read on-mode 1 1 + + On TH(chip-tool) log, Verify OnMode attribute value is an integer. save the value as new_on_mode_dut and below is the sample log provided for the raspi platform: + + [1669190858.739158][4187:4189] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4107771634 + [1669190858.739222][4187:4189] CHIP:TOO: OnMode: 7 + disabled: true + + - label: + "Step 7: TH writes to the DUT the StartUpOnOff attribute with the + value 1." + PICS: OO.S.A4003 + verification: | + ./chip-tool onoff write start-up-on-off 1 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1651101661959] [90832:7598169] CHIP: [DMG] WriteResponseMessage = + [1651101661959] [90832:7598169] CHIP: [DMG] { + [1651101661959] [90832:7598169] CHIP: [DMG] AttributeStatusIBs = + [1651101661959] [90832:7598169] CHIP: [DMG] [ + [1651101661959] [90832:7598169] CHIP: [DMG] AttributeStatusIB = + [1651101661959] [90832:7598169] CHIP: [DMG] { + [1651101661960] [90832:7598169] CHIP: [DMG] AttributePathIB = + [1651101661960] [90832:7598169] CHIP: [DMG] { + [1651101661960] [90832:7598169] CHIP: [DMG] Endpoint = 0x1, + [1651101661960] [90832:7598169] CHIP: [DMG] Cluster = 0x6, + [1651101661960] [90832:7598169] CHIP: [DMG] Attribute = 0x0000_4003, + [1651101661960] [90832:7598169] CHIP: [DMG] } + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] StatusIB = + [1651101661960] [90832:7598169] CHIP: [DMG] { + [1651101661960] [90832:7598169] CHIP: [DMG] status = 0x00 (SUCCESS), + [1651101661960] [90832:7598169] CHIP: [DMG] }, + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] }, + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] ], + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] InteractionModelRevision = 1 + [1651101661960] [90832:7598169] CHIP: [DMG] } + disabled: true + + - label: "Step 8: Physically power cycle the device" + verification: | + Physically power cycle the device. + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentMode attribute." + PICS: DISHM.S.A0001 + verification: | + ./chip-tool dishwashermodeselect read current-mode 1 1 + + On TH(chip-tool), Verify CurrentMode attribute value is same as the value recorded in step 3 and below is the sample log provided for the raspi platform: + + [1669190936.869804][4194:4196] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3908583538 + [1669190936.869875][4194:4196] CHIP:TOO: CurrentMode: 7 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DLOG_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DLOG_2_1.yaml index 7465fa3adb3163..8937b63fd15a22 100644 --- a/src/app/tests/suites/certification/Test_TC_DLOG_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DLOG_2_1.yaml @@ -31,18 +31,18 @@ tests: DUT supports BDX disabled: true - - label: "Reboot DUT" + - label: "Step 1: Reboot DUT" verification: | disabled: true - - label: "Commission DUT to TH" + - label: "Step 2: Commission DUT to TH" verification: | disabled: true - label: - "TH sends RetrieveLogsRequest Command (Intent = + "Step 3: TH sends RetrieveLogsRequest Command (Intent = EndUserSupport,TransferFileDesignator = 'test.txt', RequestedProtocol= BDX) to DUT" verification: | @@ -56,31 +56,34 @@ tests: disabled: true - label: - "Verify that the DUT initiates a BDX Transfer, sending a BDX SendInit - message with the File Designator field of the message set to the value - of the TransferFileDesignator field of the RetrieveLogsRequest" + "Step 4: Verify that the DUT initiates a BDX Transfer, sending a BDX + SendInit message with the File Designator field of the message set to + the value of the TransferFileDesignator field of the + RetrieveLogsRequest" verification: | Not Verifiable disabled: true - - label: "TH Sends BDX SendAccept message" + - label: "Step 5: TH Sends BDX SendAccept message" PICS: DLOG.S.C01.Tx verification: | Not Verifiable disabled: true - label: - "Verify that DUT sends RetrieveLogsResponse Command,Verify that the - Status field is set to Success,If LogContent size < 1024 octets,Verify - that the BDX transfer is not initiated from DUT Verify that DUT sends - RetrieveLogsResponse command with a Status field set to Exhausted - Note: In this case steps 5 and 6 does not hold good. else Verify that - the BDX transfer is initiated from DUT Verify that the LogContent - field of RetrieveLogsResponse is empty Verify that DUT sends - RetrieveLogsResponse command with a Status field set to Success Verify - that UTCTimeStamp is included in the RetrieveLogsResponse command - Verify that TimeSinceBoot is included in the RetrieveLogsResponse - command Note: In this case steps 5 and 6 holds good." + "Step 6: Verify that DUT sends RetrieveLogsResponse Command,Verify + that the Status field is set to Success,If LogContent size < 1024 + octets,Verify that the BDX transfer is not initiated from DUT Verify + that DUT sends RetrieveLogsResponse command with a Status field set to + Exhausted Note: In this case steps 5 and 6 does not hold good. else + Verify that the BDX transfer is initiated from DUT Verify that the + LogContent field of RetrieveLogsResponse is empty Verify that DUT + sends RetrieveLogsResponse command with a Status field set to Success + Verify that UTCTimeStamp is included in the RetrieveLogsResponse + command Verify that TimeSinceBoot is included in the + RetrieveLogsResponse command Note: In this case steps 5 and 6 holds + good." + PICS: DLOG.S.C01.Tx verification: | sudo ./chip-tool diagnosticlogs retrieve-logs-request 0 1 "test.txt" 1 0 @@ -91,7 +94,7 @@ tests: disabled: true - label: - "TH sends RetrieveLogsRequest Command (Intent = + "Step 7: TH sends RetrieveLogsRequest Command (Intent = EndUserSupport,TransferFileDesignator = 'test.txt', RequestedProtocol= BDX) to DUT" verification: | @@ -105,31 +108,32 @@ tests: disabled: true - label: - "Verify that the DUT initiates a BDX Transfer, sending a BDX SendInit - message with the File Designator field of the message set to the value - of the TransferFileDesignator field of the RetrieveLogsRequest" + "Step 8: Verify that the DUT initiates a BDX Transfer, sending a BDX + SendInit message with the File Designator field of the message set to + the value of the TransferFileDesignator field of the + RetrieveLogsRequest" PICS: DLOG.S.C01.Tx verification: | Not Verifiable disabled: true - label: - "TH Sends StatusReport(GeneralCode: FAILURE, ProtocolId: BDX, + "Step 9: TH Sends StatusReport(GeneralCode: FAILURE, ProtocolId: BDX, ProtocolCode: TRANSFER_METHOD_NOT_SUPPORTED)" verification: | Not Verifiable disabled: true - label: - "Verify that DUT sends RetrieveLogsResponse command with a Status - field set to Denied" + "Step 10: Verify that DUT sends RetrieveLogsResponse command with a + Status field set to Denied" verification: | Not Verifiable disabled: true - label: - "TH sends RetrieveLogsRequest Command (Intent = EndUserSupport, - RequestedProtocol = ResponsePayload) to DUT" + "Step 11: TH sends RetrieveLogsRequest Command (Intent = + EndUserSupport, RequestedProtocol = ResponsePayload) to DUT" verification: | sudo ./chip-tool diagnosticlogs retrieve-logs-request 0 0 "test.txt" 1 0 @@ -140,18 +144,18 @@ tests: disabled: true - label: - "Verify that the BDX transfer is not initiated from DUT, Verify that - the LogContent field of RetrieveLogsResponse has the size < = 1024 - octets" + "Step 12: Verify that the BDX transfer is not initiated from DUT, + Verify that the LogContent field of RetrieveLogsResponse has the size + < = 1024 octets" verification: | Not Verifiable disabled: true - label: - "Verify that DUT sends RetrieveLogsResponse command with a Status - field set to Success, Verify that UTCTimeStamp is included in the - RetrieveLogsResponse command,Verify that TimeSinceBoot is included in - the RetrieveLogsResponse command" + "Step 13: Verify that DUT sends RetrieveLogsResponse command with a + Status field set to Success, Verify that UTCTimeStamp is included in + the RetrieveLogsResponse command,Verify that TimeSinceBoot is included + in the RetrieveLogsResponse command" verification: | sudo ./chip-tool diagnosticlogs retrieve-logs-request 0 1 "test.txt" 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_DLOG_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DLOG_2_2.yaml index cb9568bd157b2f..800553226d6cf0 100644 --- a/src/app/tests/suites/certification/Test_TC_DLOG_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_DLOG_2_2.yaml @@ -31,13 +31,13 @@ tests: DUT does not support BDX disabled: true - - label: "Commission DUT to TH" + - label: "Step 1: Commission DUT to TH" verification: | disabled: true - label: - "TH sends RetrieveLogsRequest Command (Intent = + "Step 2: TH sends RetrieveLogsRequest Command (Intent = EndUserSupport,TransferFileDesignator = 'test.txt',RequestedProtocol= BDX) to DUT" verification: | @@ -76,8 +76,8 @@ tests: disabled: true - label: - "Verify that the BDX transfer is not initiated from DUT,Verify that - DUT sends RetrieveLogsResponse command,Verify that the LogContent + "Step 3: Verify that the BDX transfer is not initiated from DUT,Verify + that DUT sends RetrieveLogsResponse command,Verify that the LogContent field of RetrieveLogsResponse command has the DUT log entries up to < = 1024 octets,Verify that Status field is set to Exhausted" verification: | diff --git a/src/app/tests/suites/certification/Test_TC_DLOG_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DLOG_3_1.yaml index e240427a84e6aa..0cba5b0421fa35 100644 --- a/src/app/tests/suites/certification/Test_TC_DLOG_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_DLOG_3_1.yaml @@ -35,12 +35,12 @@ tests: TH supports BDX disabled: true - - label: "Commission DUT to TH" + - label: "Step 1: Commission DUT to TH" verification: | disabled: true - - label: "DUT sends RetrieveLogsRequest Command to TH" + - label: "Step 2: DUT sends RetrieveLogsRequest Command to TH" PICS: DLOG.C.C00.Tx verification: | ./chip-tool diagnosticlogs retrieve-logs-request 0 0 "test.txt" 1 0 @@ -63,7 +63,7 @@ tests: [1646215088532] [15387:2221674] CHIP: [DMG] Received Command Response Status for Endpoint=0 Cluster=0x0000_0032 Command=0x0000_0000 Status=0x0 disabled: true - - label: "In case TH initiates a BDX Transfer" + - label: "Step 3: In case TH initiates a BDX Transfer" verification: | grl_matter@GRL-Matters-MacBook-Air debug % sudo ./chip-tool diagnosticlogs retrieve-logs-request 0 1 "test.txt" 1 0 @@ -85,7 +85,7 @@ tests: [1646208340.192744][3171:3176] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0032 Command=0x0000_0000 Status=0x0 disabled: true - - label: "In case TH does not initiate BDX Transfer" + - label: "Step 4: In case TH does not initiate BDX Transfer" verification: | ./chip-tool diagnosticlogs retrieve-logs-request 0 0 "test.txt" 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml index d45ed6be8b4679..63c411486353eb 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml @@ -55,23 +55,25 @@ tests: disabled: true - label: - "Trigger the DUT to generate DoorLockAlarm Event (by LockJammed - scenario)" + "Step 1a: Trigger the DUT to generate DoorLockAlarm Event (by + LockJammed scenario)" PICS: DRLK.S.E00 && DRLK.S.DetectLockJammed verification: | To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in lock-app to generate the event, Vendor Dut should have capability to generate this event) echo '{"Cmd": "SendDoorLockAlarm", "Params": { "EndpointId": 1, "AlarmCode": 0 } }' > /tmp/chip_lock_app_fifo- (PID of lock-app) For example : + echo '{"Cmd": "SendDoorLockAlarm", "Params": { "EndpointId": 1, "AlarmCode": 0 } }' > /tmp/chip_lock_app_fifo-3940 (PID may vary based on the actual DUT) disabled: true - - label: "TH reads the DoorLockAlarm event from DUT" + - label: "Step 1b: TH reads the DoorLockAlarm event from DUT" PICS: DRLK.S.E00 verification: | ./chip-tool doorlock read-event door-lock-alarm 1 1 - Verify "TH receives the DoorLockAlarm event and AlarmCode is set to LockJammed " on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify TH receives the DoorLockAlarm event. + -In that event the AlarmCode is set to LockJammed(0) and priority is set to Critical. [1659521453.110272][4098:4103] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0000 [1659521453.110310][4098:4103] CHIP:TOO: Event number: 4 @@ -82,19 +84,20 @@ tests: [1659521453.110591][4098:4103] CHIP:TOO: } disabled: true - - label: "Trigger the DUT to generate DoorStateChange Event" + - label: "Step 2a: Trigger the DUT to generate DoorStateChange Event" PICS: DRLK.S.F05 && DRLK.S.E01 verification: | To trigger the event give the below command in another terminal of DUT echo '{"Cmd": "SetDoorState", "Params": { "EndpointId": 1, "DoorState": 1 } }' > /tmp/chip_lock_app_fifo-4055 (4055 - value changes) disabled: true - - label: "TH reads the DoorStateChange event from DUT" + - label: "Step 2b: TH reads the DoorStateChange event from DUT" PICS: DRLK.S.F05 && DRLK.S.E01 verification: | ./chip-tool doorlock read-event door-state-change 1 1 - Verify "TH recieve the DoorLockAlaram event and DoorState set to DoorClosed " on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify TH recieves the DoorLockAlaram event. + -In that event the DoorState set to DoorClosed(1) and priority is set to CRITICAL or INFO. [1659521576.156075][4109:4114] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0001 [1659521576.156118][4109:4114] CHIP:TOO: Event number: 1 @@ -106,19 +109,19 @@ tests: disabled: true - label: - "TH sends the Lock Door command (using Remote) to the DUT with valid - PINCode" + "Step 3a: TH sends the Lock Door command (using Remote) to the DUT + with valid PINCode" PICS: DRLK.S.C00.Rsp verification: | ./chip-tool doorlock set-user 0 1 xxx 6452 1 0 0 1 1 --timedInteractionTimeoutMs 1000 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for setting the Users details. [1656497453.684077][25847:25853] CHIP:DMG: status = 0x00 (SUCCESS), ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1 , "credentialIndex" : 2 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for setting the credential details. [1656497508.814196][25858:25863] CHIP:TOO: SetCredentialResponse: { [1656497508.814257][25858:25863] CHIP:TOO: status: 0 @@ -127,7 +130,7 @@ tests: ./chip-tool doorlock lock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for door lock operation with valid PINCode. [1654687870.020678][4246:4251] CHIP:DMG: [1654687870.020715][4246:4251] CHIP:DMG: StatusIB = @@ -145,12 +148,15 @@ tests: [1654687870.021160][4246:4251] CHIP:DMG: }," disabled: true - - label: "TH reads the LockOperation event from DUT" + - label: "Step 3b: TH reads the LockOperation event from DUT" PICS: DRLK.S.E02 verification: | ./chip-tool doorlock read-event lock-operation 1 1 - Verify " LockOperationType is set to Lock and Event priority is set to CRITICAL" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that the: + -LockOperationType value as 0(Lock). + -OperationSource value as 7(Remote). + -Priority as Critical or INFO. [1659777214.883129][3089:3094] CHIP:DMG: SuppressResponse = true, [1659777214.883159][3089:3094] CHIP:DMG: InteractionModelRevision = 1 @@ -174,13 +180,13 @@ tests: disabled: true - label: - "TH sends the Unlock Door command(using Remote) to the DUT with valid - PINCode" + "Step 3c: TH sends the Unlock Door command(using Remote) to the DUT + with valid PINCode" PICS: DRLK.S.C01.Rsp verification: | ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for door unlock operation with valid PINCode. [1659777464.384962][3157:3162] CHIP:DMG: StatusIB = [1659777464.384997][3157:3162] CHIP:DMG: { @@ -198,56 +204,135 @@ tests: [1659777464.385375][3157:3162] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0001 Status=0x0 disabled: true - - label: "TH reads the LockOperation event from DUT" - PICS: DRLK.S.E02 + - label: "Step 3d: TH reads the LockOperation event from DUT" + PICS: DRLK.S.E02&& DRLK.S.F0c verification: | ./chip-tool doorlock read-event lock-operation 1 1 - Verify " LockOperationType is set to Lock and Event priority is set to CRITICAL" on the TH(Chip-tool) Log: - - [1659777667.226139][3222:3227] CHIP:DMG: } - [1659777667.226318][3222:3227] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0002 - [1659777667.226343][3222:3227] CHIP:TOO: Event number: 5 - [1659777667.226363][3222:3227] CHIP:TOO: Priority: Critical - [1659777667.226383][3222:3227] CHIP:TOO: Timestamp: 3327279 - [1659777667.226482][3222:3227] CHIP:TOO: LockOperation: { - [1659777667.226522][3222:3227] CHIP:TOO: LockOperationType: 0 - [1659777667.226544][3222:3227] CHIP:TOO: OperationSource: 7 - [1659777667.226565][3222:3227] CHIP:TOO: UserIndex: 1 - [1659777667.226653][3222:3227] CHIP:TOO: FabricIndex: 1 - [1659777667.226677][3222:3227] CHIP:TOO: SourceNode: 112233 - [1659777667.226707][3222:3227] CHIP:TOO: Credentials: 1 entries - [1659777667.226758][3222:3227] CHIP:TOO: [1]: { - [1659777667.226780][3222:3227] CHIP:TOO: CredentialType: 1 - [1659777667.226800][3222:3227] CHIP:TOO: CredentialIndex: 2 - [1659777667.226820][3222:3227] CHIP:TOO: } - [1659777667.226841][3222:3227] CHIP:TOO: } - [1659777667.226944][3222:3227] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0002 - [1659777667.226965][3222:3227] CHIP:TOO: Event number: 6 - [1659777667.226984][3222:3227] CHIP:TOO: Priority: Critical - [1659777667.227003][3222:3227] CHIP:TOO: Timestamp: 3351552 - [1659777667.227039][3222:3227] CHIP:TOO: LockOperation: { - [1659777667.227061][3222:3227] CHIP:TOO: LockOperationType: 1 - [1659777667.227082][3222:3227] CHIP:TOO: OperationSource: 7 - [1659777667.227103][3222:3227] CHIP:TOO: UserIndex: 1 - [1659777667.227122][3222:3227] CHIP:TOO: FabricIndex: 1 - [1659777667.227143][3222:3227] CHIP:TOO: SourceNode: 112233 - [1659777667.227167][3222:3227] CHIP:TOO: Credentials: 1 entries - [1659777667.227193][3222:3227] CHIP:TOO: [1]: { - [1659777667.227213][3222:3227] CHIP:TOO: CredentialType: 1 - [1659777667.227232][3222:3227] CHIP:TOO: CredentialIndex: 2 - [1659777667.227251][3222:3227] CHIP:TOO: } - [1659777667.227325][3222:3227] CHIP:TOO: } + Via the TH (chip-tool), verify that the: + -LockOperationType value as 4(Unlatch). + -OperationSource value as 7 (Remote). + -Priority as Critical. + + + [1689767095.211849][2310:2312] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0002 + [1689767095.211888][2310:2312] CHIP:TOO: Event number: 7 + [1689767095.211918][2310:2312] CHIP:TOO: Priority: Critical + [1689767095.211947][2310:2312] CHIP:TOO: Timestamp: 1689767075579 + [1689767095.212076][2310:2312] CHIP:TOO: LockOperation: { + [1689767095.212136][2310:2312] CHIP:TOO: LockOperationType: 0 + [1689767095.212176][2310:2312] CHIP:TOO: OperationSource: 7 + [1689767095.212227][2310:2312] CHIP:TOO: UserIndex: 1 + [1689767095.212264][2310:2312] CHIP:TOO: FabricIndex: 1 + [1689767095.212302][2310:2312] CHIP:TOO: SourceNode: 112233 + [1689767095.212383][2310:2312] CHIP:TOO: Credentials: 1 entries + [1689767095.212455][2310:2312] CHIP:TOO: [1]: { + [1689767095.212494][2310:2312] CHIP:TOO: CredentialType: 1 + [1689767095.212531][2310:2312] CHIP:TOO: CredentialIndex: 2 + [1689767095.212566][2310:2312] CHIP:TOO: } + [1689767095.212603][2310:2312] CHIP:TOO: } + [1689767095.212819][2310:2312] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0002 + [1689767095.212858][2310:2312] CHIP:TOO: Event number: 8 + [1689767095.212888][2310:2312] CHIP:TOO: Priority: Critical + [1689767095.212917][2310:2312] CHIP:TOO: Timestamp: 1689767089876 + [1689767095.212971][2310:2312] CHIP:TOO: LockOperation: { + [1689767095.213010][2310:2312] CHIP:TOO: LockOperationType: 4 + [1689767095.213047][2310:2312] CHIP:TOO: OperationSource: 7 + [1689767095.213082][2310:2312] CHIP:TOO: UserIndex: 1 + [1689767095.213117][2310:2312] CHIP:TOO: FabricIndex: 1 + [1689767095.213153][2310:2312] CHIP:TOO: SourceNode: 112233 + [1689767095.213194][2310:2312] CHIP:TOO: Credentials: 1 entries + [1689767095.213239][2310:2312] CHIP:TOO: [1]: { + [1689767095.213277][2310:2312] CHIP:TOO: CredentialType: 1 + [1689767095.213313][2310:2312] CHIP:TOO: CredentialIndex: 2 + [1689767095.213347][2310:2312] CHIP:TOO: } + [1689767095.213385][2310:2312] CHIP:TOO: } + [1689767095.213581][2310:2312] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0002 + [1689767095.213617][2310:2312] CHIP:TOO: Event number: 9 + [1689767095.213646][2310:2312] CHIP:TOO: Priority: Critical + [1689767095.213674][2310:2312] CHIP:TOO: Timestamp: 1689767089876 + [1689767095.213727][2310:2312] CHIP:TOO: LockOperation: { + [1689767095.213767][2310:2312] CHIP:TOO: LockOperationType: 1 + [1689767095.213803][2310:2312] CHIP:TOO: OperationSource: 7 + [1689767095.213838][2310:2312] CHIP:TOO: UserIndex: 1 + [1689767095.213873][2310:2312] CHIP:TOO: FabricIndex: 1 + [1689767095.213908][2310:2312] CHIP:TOO: SourceNode: 112233 + [1689767095.213951][2310:2312] CHIP:TOO: Credentials: 1 entries + [1689767095.214021][2310:2312] CHIP:TOO: [1]: { + [1689767095.214072][2310:2312] CHIP:TOO: CredentialType: 1 + [1689767095.214109][2310:2312] CHIP:TOO: CredentialIndex: 2 + [1689767095.214144][2310:2312] CHIP:TOO: } + [1689767095.214196][2310:2312] CHIP:TOO: } + disabled: true + + - label: "Step 3e: TH reads the LockOperation event from DUT" + PICS: DRLK.S.E02 + verification: | + Note : This step can be validated in STEP 3d chip-tool log + + Via the TH (chip-tool), verify that the: + -LockOperationType value as 1(Unlock). + -OperationSource value as 7 (Remote). + -Priority as Critical. + + [1689767095.211849][2310:2312] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0002 + [1689767095.211888][2310:2312] CHIP:TOO: Event number: 7 + [1689767095.211918][2310:2312] CHIP:TOO: Priority: Critical + [1689767095.211947][2310:2312] CHIP:TOO: Timestamp: 1689767075579 + [1689767095.212076][2310:2312] CHIP:TOO: LockOperation: { + [1689767095.212136][2310:2312] CHIP:TOO: LockOperationType: 0 + [1689767095.212176][2310:2312] CHIP:TOO: OperationSource: 7 + [1689767095.212227][2310:2312] CHIP:TOO: UserIndex: 1 + [1689767095.212264][2310:2312] CHIP:TOO: FabricIndex: 1 + [1689767095.212302][2310:2312] CHIP:TOO: SourceNode: 112233 + [1689767095.212383][2310:2312] CHIP:TOO: Credentials: 1 entries + [1689767095.212455][2310:2312] CHIP:TOO: [1]: { + [1689767095.212494][2310:2312] CHIP:TOO: CredentialType: 1 + [1689767095.212531][2310:2312] CHIP:TOO: CredentialIndex: 2 + [1689767095.212566][2310:2312] CHIP:TOO: } + [1689767095.212603][2310:2312] CHIP:TOO: } + [1689767095.212819][2310:2312] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0002 + [1689767095.212858][2310:2312] CHIP:TOO: Event number: 8 + [1689767095.212888][2310:2312] CHIP:TOO: Priority: Critical + [1689767095.212917][2310:2312] CHIP:TOO: Timestamp: 1689767089876 + [1689767095.212971][2310:2312] CHIP:TOO: LockOperation: { + [1689767095.213010][2310:2312] CHIP:TOO: LockOperationType: 4 + [1689767095.213047][2310:2312] CHIP:TOO: OperationSource: 7 + [1689767095.213082][2310:2312] CHIP:TOO: UserIndex: 1 + [1689767095.213117][2310:2312] CHIP:TOO: FabricIndex: 1 + [1689767095.213153][2310:2312] CHIP:TOO: SourceNode: 112233 + [1689767095.213194][2310:2312] CHIP:TOO: Credentials: 1 entries + [1689767095.213239][2310:2312] CHIP:TOO: [1]: { + [1689767095.213277][2310:2312] CHIP:TOO: CredentialType: 1 + [1689767095.213313][2310:2312] CHIP:TOO: CredentialIndex: 2 + [1689767095.213347][2310:2312] CHIP:TOO: } + [1689767095.213385][2310:2312] CHIP:TOO: } + [1689767095.213581][2310:2312] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0002 + [1689767095.213617][2310:2312] CHIP:TOO: Event number: 9 + [1689767095.213646][2310:2312] CHIP:TOO: Priority: Critical + [1689767095.213674][2310:2312] CHIP:TOO: Timestamp: 1689767089876 + [1689767095.213727][2310:2312] CHIP:TOO: LockOperation: { + [1689767095.213767][2310:2312] CHIP:TOO: LockOperationType: 1 + [1689767095.213803][2310:2312] CHIP:TOO: OperationSource: 7 + [1689767095.213838][2310:2312] CHIP:TOO: UserIndex: 1 + [1689767095.213873][2310:2312] CHIP:TOO: FabricIndex: 1 + [1689767095.213908][2310:2312] CHIP:TOO: SourceNode: 112233 + [1689767095.213951][2310:2312] CHIP:TOO: Credentials: 1 entries + [1689767095.214021][2310:2312] CHIP:TOO: [1]: { + [1689767095.214072][2310:2312] CHIP:TOO: CredentialType: 1 + [1689767095.214109][2310:2312] CHIP:TOO: CredentialIndex: 2 + [1689767095.214144][2310:2312] CHIP:TOO: } + [1689767095.214196][2310:2312] CHIP:TOO: } disabled: true - label: - "TH sends the Lock Door command( using Remote) to the DUT with invalid - PINCode" + "Step 4a: TH sends the Lock Door command( using Remote) to the DUT + with invalid PINCode" PICS: DRLK.S.C00.Rsp verification: | ./chip-tool doorlock lock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 12345678 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the FAILURE response for door unlock operation with invalid PINCode. [1659777735.863811][3232:3237] CHIP:DMG: StatusIB = [1659777735.863849][3232:3237] CHIP:DMG: { @@ -266,12 +351,16 @@ tests: [1659777735.864317][3232:3237] CHIP:TOO: Error: IM Error 0x00000501: General error: 0x01 (FAILURE) disabled: true - - label: "TH reads the LockOperationError event from DUT" + - label: "Step 4b: TH reads the LockOperationError event from DUT" PICS: DRLK.S.E03 verification: | ./chip-tool doorlock read-event lock-operation-error 1 1 - Verify " LockOperationType is set to Unlock and Event priority is set to CRITICAL" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that the: + -LockOperationType value as 0(Lock). + -OperationSource value as 7(Remote). + -OperationError is set to 1(InvalidCredential). + -Priority is set to Critical. [1659777833.226970][3243:3248] CHIP:DMG: } [1659777833.227194][3243:3248] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0003 @@ -289,12 +378,13 @@ tests: [1659777833.227696][3243:3248] CHIP:TOO: } disabled: true - - label: "TH sends Unlock Door Command to the DUT with InvalidPINCode." + - label: + "Step 4c: TH sends Unlock Door Command to the DUT with InvalidPINCode." PICS: DRLK.S.C01.Rsp verification: | ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 12345678 - Verify "DUT sends failure response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the FAILURE response for door unlock operation with invalid PINCode. [1659777885.573854][3251:3256] CHIP:DMG: StatusIB = [1659777885.573896][3251:3256] CHIP:DMG: { @@ -313,12 +403,16 @@ tests: [1659777885.574405][3251:3256] CHIP:TOO: Error: IM Error 0x00000501: General error: 0x01 (FAILURE) disabled: true - - label: "TH reads the LockOperationError event from DUT" + - label: "Step 4d: TH reads the LockOperationError event from DUT" PICS: DRLK.S.E03 verification: | ./chip-tool doorlock read-event lock-operation-error 1 1 - Verify " LockOperationType is set to Lock and Event priority is set to info" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that the: + -LockOperationType is set to Unlock. + -OperationSource is set to Remote. + -OperationError is set to InvalidCredential. + -Priority is set to Critical. [1659777937.333613][3260:3265] CHIP:DMG: } [1659777937.333844][3260:3265] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0003 @@ -349,8 +443,8 @@ tests: disabled: true - label: - "TH sends Set User Command to DUT with the following values: - OperationType as 0-Add UserIndex as 4( Different from an existing + "Step 5a: TH sends Set User Command to DUT with the following values: + OperationType as 0-Add UserIndex as 2( Different from an existing UserIndex) UserName as xxx UserUniqueID as 6452 UserStatus as 1-OccupiedEnabled UserType as 0-UnrestrictedUser CredentialRule as 0-Single" @@ -358,7 +452,7 @@ tests: verification: | ./chip-tool doorlock set-user 0 4 xxx 6452 3 0 0 1 1 --timedInteractionTimeoutMs 1000 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for setting the users details. [1658994912.123831][4290:4295] CHIP:DMG: StatusIB = [1658994912.123871][4290:4295] CHIP:DMG: { @@ -376,12 +470,16 @@ tests: [1658994912.124341][4290:4295] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_001A Status=0x0 disabled: true - - label: "TH reads the LockUserChange event from DUT" + - label: "Step 5b: TH reads the LockUserChange event from DUT" PICS: DRLK.S.E04 verification: | ./chip-tool doorlock read-event lock-user-change 1 1 - Verify " LockDataType is set to UserIndex and Event priority is set to INFO" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that the: + -LockDataType is set to 2 (UserIndex). + -DataOperationType is set to Add. + -OperationSource is set to Remote. + -Priority is set to INFO. [1659778039.468487][3278:3283] CHIP:DMG: } [1659778039.468725][3278:3283] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0004 @@ -426,14 +524,14 @@ tests: disabled: true - label: - "TH send Set Week Day Schedule Command to DUT with the following - values: WeekDayIndex as 1 UserIndex as 1 DaysMaskMap as 2 StartHour as - 15 StartMinute as 45 EndHour as 16 EndMinute as 55" + "Step 5c: TH send Set Week Day Schedule Command to DUT with the + following values: WeekDayIndex as 1 UserIndex as 1 DaysMaskMap as 2 + StartHour as 15 StartMinute as 45 EndHour as 16 EndMinute as 55" PICS: DRLK.S.F04 && DRLK.S.C0b.Rsp verification: | ./chip-tool doorlock set-week-day-schedule 1 1 2 15 45 16 55 1 1 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for setting the Week Day Schedule. [1658142169.347859][2900:2905] CHIP:DMG: StatusIB = [1658142169.347900][2900:2905] CHIP:DMG: { @@ -450,12 +548,16 @@ tests: [1658142169.348331][2900:2905] CHIP:DMG: }, disabled: true - - label: "TH reads the LockUserChange event from DUT" + - label: "Step 5d: TH reads the LockUserChange event from DUT" PICS: DRLK.S.E04 verification: | ./chip-tool doorlock read-event lock-user-change 1 1 - Verify " LockDataType is set to WeekDaySchedule and Event priority is set to INFO" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that the: + -LockDataType is set to 3 (WeekDaySchedule). + -DataOperationType is set to Add. + -OperationSource is set to Remote. + -Priority is set to INFO. [1659778136.032613][3293:3298] CHIP:DMG: } [1659778136.032856][3293:3298] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0004 @@ -513,14 +615,14 @@ tests: disabled: true - label: - "TH sends Set Credential Command to DUT with the following fields: - OperationType as 0-Add Credential as 1 1- PIN, Index CredentialData as - 123456 UserIndex as 1 UserStatus as 0 UserType as 0" + "Step 5e: TH sends Set Credential Command to DUT with the following + fields: OperationType as 0-Add Credential as 1 1- PIN, Index + CredentialData as 123456 UserIndex as 1 UserStatus as 0 UserType as 0" PICS: DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx verification: | ./chip-tool doorlock clear-credential '{ "credentialType" : 1 , "credentialIndex" : 2 }' 1 1 --timedInteractionTimeoutMs 1000 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for clearing the credential details. [1658995364.177998][4383:4388] CHIP:DMG: StatusIB = @@ -528,9 +630,10 @@ tests: [1658995364.178137][4383:4388] CHIP:DMG: status = 0x00 (SUCCESS), [1658995364.178185][4383:4388] CHIP:DMG: }, + ./chip-tool doorlock set-user 0 1 xxx 6452 3 0 0 1 1 --timedInteractionTimeoutMs 1000 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for setting the users details. [1659778601.601596][3414:3419] CHIP:DMG: StatusIB = [1659778601.601636][3414:3419] CHIP:DMG: { @@ -542,7 +645,7 @@ tests: ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1 , "credentialIndex" : 1 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 - Verify "DUT sends Set Credential Response command with status as SUCCESS" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for setting the credential details. [1658142472.351596][2966:2971] CHIP:DMG: }, @@ -555,12 +658,16 @@ tests: [1658142472.352012][2966:2971] CHIP:TOO: } disabled: true - - label: "TH reads the LockUserChange event from DUT" + - label: "Step 5f: TH reads the LockUserChange event from DUT" PICS: DRLK.S.E04 verification: | ./chip-tool doorlock read-event lock-user-change 1 1 - Verify "LockDataType is set to PIN and LockUserChange event has priority set as INFO " on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify that the: + -LockDataType is set to 6(PIN). + -DataOperationType is set to Add. + -OperationSource is set to Remote. + -Priority is set to INFO. [1658223096.124315][4517:4522] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0004 [1658223096.124350][4517:4522] CHIP:TOO: Event number: 3 @@ -590,12 +697,12 @@ tests: [1658223096.125372][4517:4522] CHIP:TOO: } disabled: true - - label: "TH sends Clear Credential Command to DUT" + - label: "Step 5g: TH sends Clear Credential Command to DUT" PICS: DRLK.S.C26.Rsp verification: | ./chip-tool doorlock clear-credential '{ "credentialType" : 1 , "credentialIndex" : 1 }' 1 1 --timedInteractionTimeoutMs 1000 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for clearing the credential details. [1658142697.890014][2985:2990] CHIP:DMG: StatusIB = [1658142697.890058][2985:2990] CHIP:DMG: { @@ -614,12 +721,12 @@ tests: [1658142697.890616][2985:2990] CHIP:DMG: ICR moving to [AwaitingDe] disabled: true - - label: "TH sends Clear User Command to DUT" + - label: "Step 5h: TH sends Clear User Command to DUT" PICS: DRLK.S.C1d.Rsp verification: | ./chip-tool doorlock clear-user 1 1 1 --timedInteractionTimeoutMs 1000 - Verify "DUT sends SUCCESS response" on the TH(Chip-tool) Log: + Via the TH (chip-tool), verify the SUCCESS response for clearing the users details. [1658142762.492854][2993:2998] CHIP:DMG: [1658142762.492888][2993:2998] CHIP:DMG: StatusIB = diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml index c2a3f26a82d510..561ed8fa37149f 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml @@ -58,7 +58,8 @@ tests: " disabled: true - - label: "TH will initiate DoorLockAlarm Event (LockJammed scenario)" + - label: + "Step 1: TH will initiate DoorLockAlarm Event (LockJammed scenario)" PICS: DRLK.C.E00 verification: | To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in lock-app to generate the event, Vendor Dut should have capability to generate this event) @@ -69,1630 +70,926 @@ tests: To generate the event give below command echo '{"Cmd": "SendDoorLockAlarm", "Params": { "EndpointId": 1, "AlarmCode": 0 } }' > /tmp/chip_lock_app_fifo- (PID of lock app) - ./chip-tool doorlock read-event door-lock-alarm 1 1 - - Verify "DUT receives the DoorLockAlarm event " on the TH(Lock-app) Log: - - [1667212903.691682][14571:14571] CHIP:EM: Handling via exchange: 64458r, Delegate: 0xaaaae921d988 - [1667212903.691776][14571:14571] CHIP:IM: Received Read request - [1667212903.691948][14571:14571] CHIP:DMG: ReadRequestMessage = - [1667212903.692014][14571:14571] CHIP:DMG: { - [1667212903.692069][14571:14571] CHIP:DMG: EventPathIBs = - [1667212903.692134][14571:14571] CHIP:DMG: [ - [1667212903.692194][14571:14571] CHIP:DMG: EventPath = - [1667212903.692273][14571:14571] CHIP:DMG: { - [1667212903.692349][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212903.692438][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212903.692524][14571:14571] CHIP:DMG: Event = 0x0, - [1667212903.692605][14571:14571] CHIP:DMG: }, - [1667212903.692682][14571:14571] CHIP:DMG: - [1667212903.692742][14571:14571] CHIP:DMG: ], - [1667212903.692812][14571:14571] CHIP:DMG: - [1667212903.692875][14571:14571] CHIP:DMG: isFabricFiltered = true, - [1667212903.692939][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667212903.692999][14571:14571] CHIP:DMG: }, - [1667212903.693152][14571:14571] CHIP:DMG: IM RH moving to [GeneratingReports] - [1667212903.693365][14571:14571] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1667212903.693602][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212903.693685][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212903.695145][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212903.695221][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212903.695349][14571:14571] CHIP:DMG: Fetched 1 events - [1667212903.695418][14571:14571] CHIP:DMG: Sending report (payload has 46 bytes)... - [1667212903.696119][14571:14571] CHIP:EM: <<< [E:64458r M:245645836 (Ack:124517844)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:05 (IM:ReportData) - [1667212903.696219][14571:14571] CHIP:IN: (S) Sending msg 245645836 on secure session with LSID: 42493 - [1667212903.696894][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:56504 | 245645836 | [Interaction Model (1) / Report Data (0x05) / Session = 2457 / Exchange = 64458] - [1667212903.696993][14571:14571] CHIP:DMG: Header Flags = - [1667212903.697043][14571:14571] CHIP:DMG: { - [1667212903.697119][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667212903.697175][14571:14571] CHIP:DMG: { - [1667212903.697235][14571:14571] CHIP:DMG: AckMsg = 124517844 - [1667212903.697291][14571:14571] CHIP:DMG: NeedsAck = true - [1667212903.697346][14571:14571] CHIP:DMG: } - [1667212903.697417][14571:14571] CHIP:DMG: } - [1667212903.697472][14571:14571] CHIP:DMG: - [1667212903.697541][14571:14571] CHIP:DMG: Encrypted Payload (80 bytes) = - [1667212903.697596][14571:14571] CHIP:DMG: { - [1667212903.697651][14571:14571] CHIP:DMG: data = 009909000c42a40e4f2f234428df2a0988446ed90d2276636fe98e0f0f364944a965130d58e35ceec58aea33c2a23b814e45f8869432562b8a71973e4bd1e7b88dbce86db4779a676d08ead189d07983 - [1667212903.697710][14571:14571] CHIP:DMG: buffer_ptr = 187651867783392 - [1667212903.697763][14571:14571] CHIP:DMG: } - [1667212903.697815][14571:14571] CHIP:DMG: - [1667212903.697890][14571:14571] CHIP:DMG: Decrypted Payload (46 bytes) = - [1667212903.697946][14571:14571] CHIP:DMG: { - [1667212903.697999][14571:14571] CHIP:DMG: data = 1536021535013700240101250201012403001824011524020226044f5f3a01350724000018181818290424ff0118 - [1667212903.698055][14571:14571] CHIP:DMG: } - [1667212903.698107][14571:14571] CHIP:DMG: - [1667212903.698248][14571:14571] CHIP:DMG: ReportDataMessage = - [1667212903.698311][14571:14571] CHIP:DMG: { - [1667212903.698365][14571:14571] CHIP:DMG: EventReportIBs = - [1667212903.698452][14571:14571] CHIP:DMG: [ - [1667212903.698579][14571:14571] CHIP:DMG: EventReportIB = - [1667212903.698675][14571:14571] CHIP:DMG: { - [1667212903.698747][14571:14571] CHIP:DMG: EventDataIB = - [1667212903.698835][14571:14571] CHIP:DMG: { - [1667212903.698918][14571:14571] CHIP:DMG: EventPath = - [1667212903.699011][14571:14571] CHIP:DMG: { - [1667212903.699105][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212903.699204][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212903.699291][14571:14571] CHIP:DMG: Event = 0x0, - [1667212903.699370][14571:14571] CHIP:DMG: }, - [1667212903.699456][14571:14571] CHIP:DMG: - [1667212903.699537][14571:14571] CHIP:DMG: EventNumber = 0x15, - [1667212903.699623][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212903.699717][14571:14571] CHIP:DMG: SystemTimestamp = 0x13a5f4f, - [1667212903.699799][14571:14571] CHIP:DMG: EventData = - [1667212903.699891][14571:14571] CHIP:DMG: { - [1667212903.699986][14571:14571] CHIP:DMG: 0x0 = 0, - [1667212903.700075][14571:14571] CHIP:DMG: }, - [1667212903.700149][14571:14571] CHIP:DMG: }, + ./chip-tool doorlock read-event door-lock-alarm 1 1 --trace_decode 1 + + Verify DoorLockAlarm event response on TH(Lock-app) log: + + [1685673738.170024][2702:2704] CHIP:DMG: ReportDataMessage = + [1685673738.170087][2702:2704] CHIP:DMG: { + [1685673738.170137][2702:2704] CHIP:DMG: EventReportIBs = + [1685673738.170234][2702:2704] CHIP:DMG: [ + [1685673738.170292][2702:2704] CHIP:DMG: EventReportIB = + [1685673738.170404][2702:2704] CHIP:DMG: { + [1685673738.170467][2702:2704] CHIP:DMG: EventDataIB = + [1685673738.170538][2702:2704] CHIP:DMG: { + [1685673738.170627][2702:2704] CHIP:DMG: EventPath = + [1685673738.170701][2702:2704] CHIP:DMG: { + [1685673738.170799][2702:2704] CHIP:DMG: Endpoint = 0x1, + [1685673738.170878][2702:2704] CHIP:DMG: Cluster = 0x101, + [1685673738.170978][2702:2704] CHIP:DMG: Event = 0x0, + [1685673738.171054][2702:2704] CHIP:DMG: }, + [1685673738.171152][2702:2704] CHIP:DMG: + [1685673738.171225][2702:2704] CHIP:DMG: EventNumber = 0x10, + [1685673738.171332][2702:2704] CHIP:DMG: PriorityLevel = 0x2, + [1685673738.171407][2702:2704] CHIP:DMG: EpochTimestamp = 0x18879fbdff3, + [1685673738.171505][2702:2704] CHIP:DMG: EventData = + [1685673738.171581][2702:2704] CHIP:DMG: { + [1685673738.171681][2702:2704] CHIP:DMG: 0x0 = 0, + [1685673738.171762][2702:2704] CHIP:DMG: }, + [1685673738.171853][2702:2704] CHIP:DMG: }, + [1685673738.171934][2702:2704] CHIP:DMG: + [1685673738.172017][2702:2704] CHIP:DMG: }, + [1685673738.172095][2702:2704] CHIP:DMG: + [1685673738.172170][2702:2704] CHIP:DMG: ], + [1685673738.172246][2702:2704] CHIP:DMG: + [1685673738.172303][2702:2704] CHIP:DMG: SuppressResponse = true, + [1685673738.172382][2702:2704] CHIP:DMG: InteractionModelRevision = 1 + [1685673738.172437][2702:2704] CHIP:DMG: } disabled: true - - label: "DUT sends the Unlock Door command to the TH with valid PINCode" + - label: + "Step 2: DUT sends the Unlock Door command to the TH with valid + PINCode" PICS: DRLK.C.C01.Tx verification: | - ./chip-tool doorlock set-user 0 1 xxx 6452 1 0 0 1 1 --timedInteractionTimeoutMs 1000 - - Verify "DUT receives the set-user response " on the TH(Lock-app) Log: - - [1667212365.328102][14571:14571] CHIP:DMG: Handing timed invoke to IM engine: handler 0xaaab1aeba770 exchange 17749r - [1667212365.328212][14571:14571] CHIP:DMG: InvokeRequestMessage = - [1667212365.328275][14571:14571] CHIP:DMG: { - [1667212365.328333][14571:14571] CHIP:DMG: suppressResponse = false, - [1667212365.328400][14571:14571] CHIP:DMG: timedRequest = true, - [1667212365.328462][14571:14571] CHIP:DMG: InvokeRequests = - [1667212365.328546][14571:14571] CHIP:DMG: [ - [1667212365.328609][14571:14571] CHIP:DMG: CommandDataIB = - [1667212365.328692][14571:14571] CHIP:DMG: { - [1667212365.328763][14571:14571] CHIP:DMG: CommandPathIB = - [1667212365.328851][14571:14571] CHIP:DMG: { - [1667212365.328936][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667212365.329029][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667212365.329114][14571:14571] CHIP:DMG: CommandId = 0x1a, - [1667212365.329194][14571:14571] CHIP:DMG: }, - [1667212365.329279][14571:14571] CHIP:DMG: - [1667212365.329352][14571:14571] CHIP:DMG: CommandFields = - [1667212365.329432][14571:14571] CHIP:DMG: { - [1667212365.329522][14571:14571] CHIP:DMG: 0x0 = 0, - [1667212365.329617][14571:14571] CHIP:DMG: 0x1 = 1, - [1667212365.329707][14571:14571] CHIP:DMG: 0x2 = "xxx" (3 chars), - [1667212365.329794][14571:14571] CHIP:DMG: 0x3 = 6452, - [1667212365.329880][14571:14571] CHIP:DMG: 0x4 = 1, - [1667212365.329966][14571:14571] CHIP:DMG: 0x5 = 0, - [1667212365.330052][14571:14571] CHIP:DMG: 0x6 = 0, - [1667212365.330135][14571:14571] CHIP:DMG: }, - [1667212365.330203][14571:14571] CHIP:DMG: }, - [1667212365.330278][14571:14571] CHIP:DMG: - [1667212365.330329][14571:14571] CHIP:DMG: ], - [1667212365.330412][14571:14571] CHIP:DMG: - [1667212365.330505][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667212365.330567][14571:14571] CHIP:DMG: }, - [1667212365.330727][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=a - [1667212365.330808][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212365.330879][14571:14571] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_001A - [1667212365.330990][14571:14571] CHIP:ZCL: [SetUser] Incoming command [endpointId=1,userIndex=1] - [1667212365.331088][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=1] - [1667212365.331146][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=0] - [1667212365.331204][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::SetUser [endpoint=1,userIndex=1,creator=1,modifier=1,userName="xxx",uniqueId=1934,userStatus=1,userType=0,credentialRule=0,credentials=(nil),totalCredentials=0] - [1667212365.331271][14571:14571] CHIP:ZCL: Successfully set the user [mEndpointId=1,index=1,adjustedIndex=0] - [1667212365.331325][14571:14571] CHIP:ZCL: [createUser] User created [endpointId=1,creatorFabricId=1,userIndex=1,userName="xxx",userUniqueId=0x1934,userStatus=1,userType=0,credentialRule=0,totalCredentials=0] - [1667212365.331592][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 1 - [1667212365.331711][14571:14571] CHIP:EVL: LogEvent event number: 0x0000000000000011 priority: 1, endpoint id: 0x1 cluster id: 0x0000_0101 event id: 0x4 Sys timestamp: 0x00000000013259CC - [1667212365.331782][14571:14571] CHIP:ZCL: [RemoteLockUserChange] Sent lock user change event [endpointId=1,eventNumber=17,dataType=2,operation=0,nodeId=112233,fabricIndex=1] - [1667212365.331861][14571:14571] CHIP:DMG: Command handler moving to [ Preparing] - [1667212365.331930][14571:14571] CHIP:DMG: Command handler moving to [AddingComm] - [1667212365.331996][14571:14571] CHIP:DMG: Command handler moving to [AddedComma] - [1667212365.332105][14571:14571] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1667212365.332608][14571:14571] CHIP:EM: <<< [E:17749r M:158518861 (Ack:6131454)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:09 (IM:InvokeCommandResponse) - [1667212365.332708][14571:14571] CHIP:IN: (S) Sending msg 158518861 on secure session with LSID: 42488 - [1667212365.333364][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:40912 | 158518861 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 22372 / Exchange = 17749] - [1667212365.333462][14571:14571] CHIP:DMG: Header Flags = - [1667212365.333520][14571:14571] CHIP:DMG: { - [1667212365.333606][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667212365.333663][14571:14571] CHIP:DMG: { - [1667212365.333722][14571:14571] CHIP:DMG: AckMsg = 6131454 - [1667212365.333778][14571:14571] CHIP:DMG: NeedsAck = true - [1667212365.333832][14571:14571] CHIP:DMG: } - [1667212365.333903][14571:14571] CHIP:DMG: } - [1667212365.333958][14571:14571] CHIP:DMG: - [1667212365.334027][14571:14571] CHIP:DMG: Encrypted Payload (68 bytes) = - [1667212365.334083][14571:14571] CHIP:DMG: { - [1667212365.334137][14571:14571] CHIP:DMG: data = 006457004dce720972b6edbcfc25397da0b462091c6a77f965c77b496ff8623203b76965c8b071825d99bd2e5fcc2962d6bc8bea24c5b1a0106ac76f5841476f791dfe9f - [1667212365.334195][14571:14571] CHIP:DMG: buffer_ptr = 187651867795824 - [1667212365.334249][14571:14571] CHIP:DMG: } - [1667212365.334302][14571:14571] CHIP:DMG: - [1667212365.334376][14571:14571] CHIP:DMG: Decrypted Payload (34 bytes) = - [1667212365.334432][14571:14571] CHIP:DMG: { - [1667212365.334560][14571:14571] CHIP:DMG: data = 152800360115350137002400012501010124021a1835012400001818181824ff0118 - [1667212365.334619][14571:14571] CHIP:DMG: } - [1667212365.334672][14571:14571] CHIP:DMG: - [1667212365.334806][14571:14571] CHIP:DMG: InvokeResponseMessage = - [1667212365.334870][14571:14571] CHIP:DMG: { - [1667212365.334929][14571:14571] CHIP:DMG: suppressResponse = false, - [1667212365.334991][14571:14571] CHIP:DMG: InvokeResponseIBs = - [1667212365.335068][14571:14571] CHIP:DMG: [ - [1667212365.335131][14571:14571] CHIP:DMG: InvokeResponseIB = - [1667212365.335220][14571:14571] CHIP:DMG: { - [1667212365.335291][14571:14571] CHIP:DMG: CommandStatusIB = - [1667212365.335382][14571:14571] CHIP:DMG: { - [1667212365.335454][14571:14571] CHIP:DMG: CommandPathIB = - [1667212365.335540][14571:14571] CHIP:DMG: { - [1667212365.335628][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667212365.335725][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667212365.335821][14571:14571] CHIP:DMG: CommandId = 0x1a, - [1667212365.335906][14571:14571] CHIP:DMG: }, - [1667212365.336001][14571:14571] CHIP:DMG: - [1667212365.336084][14571:14571] CHIP:DMG: StatusIB = - [1667212365.336169][14571:14571] CHIP:DMG: { - [1667212365.336255][14571:14571] CHIP:DMG: status = 0x00 (SUCCESS), - [1667212365.336347][14571:14571] CHIP:DMG: }, - [1667212365.336440][14571:14571] CHIP:DMG: - [1667212365.336517][14571:14571] CHIP:DMG: }, - [1667212365.336610][14571:14571] CHIP:DMG: - [1667212365.336681][14571:14571] CHIP:DMG: }, - - - ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1 , "credentialIndex" : 1 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 - - Verify "DUT receives the set-credential response " on the TH(Lock-app) Log: - - [1667212430.070636][14571:14571] CHIP:DMG: Handing timed invoke to IM engine: handler 0xaaab1aeb7ed0 exchange 360r - [1667212430.070756][14571:14571] CHIP:DMG: InvokeRequestMessage = - [1667212430.070821][14571:14571] CHIP:DMG: { - [1667212430.070880][14571:14571] CHIP:DMG: suppressResponse = false, - [1667212430.070950][14571:14571] CHIP:DMG: timedRequest = true, - [1667212430.071013][14571:14571] CHIP:DMG: InvokeRequests = - [1667212430.071100][14571:14571] CHIP:DMG: [ - [1667212430.071163][14571:14571] CHIP:DMG: CommandDataIB = - [1667212430.071233][14571:14571] CHIP:DMG: { - [1667212430.071299][14571:14571] CHIP:DMG: CommandPathIB = - [1667212430.071386][14571:14571] CHIP:DMG: { - [1667212430.071471][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667212430.071560][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667212430.071645][14571:14571] CHIP:DMG: CommandId = 0x22, - [1667212430.071727][14571:14571] CHIP:DMG: }, - [1667212430.071814][14571:14571] CHIP:DMG: - [1667212430.071890][14571:14571] CHIP:DMG: CommandFields = - [1667212430.071974][14571:14571] CHIP:DMG: { - [1667212430.072059][14571:14571] CHIP:DMG: 0x0 = 0, - [1667212430.072134][14571:14571] CHIP:DMG: 0x1 = - [1667212430.072217][14571:14571] CHIP:DMG: { - [1667212430.072308][14571:14571] CHIP:DMG: 0x0 = 1, - [1667212430.072390][14571:14571] CHIP:DMG: 0x1 = 1, - [1667212430.072480][14571:14571] CHIP:DMG: }, - [1667212430.072567][14571:14571] CHIP:DMG: 0x2 = [ - [1667212430.072654][14571:14571] CHIP:DMG: 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - [1667212430.072748][14571:14571] CHIP:DMG: ] (6 bytes) - [1667212430.072828][14571:14571] CHIP:DMG: 0x3 = 1, - [1667212430.072914][14571:14571] CHIP:DMG: 0x4 = NULL - [1667212430.073002][14571:14571] CHIP:DMG: 0x5 = NULL - [1667212430.073087][14571:14571] CHIP:DMG: }, - [1667212430.073163][14571:14571] CHIP:DMG: }, - [1667212430.073249][14571:14571] CHIP:DMG: - [1667212430.073310][14571:14571] CHIP:DMG: ], - [1667212430.073394][14571:14571] CHIP:DMG: - [1667212430.073455][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667212430.073515][14571:14571] CHIP:DMG: }, - [1667212430.073684][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=a - [1667212430.073767][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212430.073838][14571:14571] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0022 - [1667212430.073946][14571:14571] CHIP:ZCL: [SetCredential] Incoming command [endpointId=1] - [1667212430.074037][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=2,credentialType=1] - [1667212430.074099][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=2] - [1667212430.074165][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=1,credentialType=1] - [1667212430.074222][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=1] - [1667212430.074276][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=2,credentialType=1] - [1667212430.074331][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=2] - [1667212430.074384][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=3,credentialType=1] - [1667212430.074439][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=3] - [1667212430.074543][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=4,credentialType=1] - [1667212430.074601][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=4] - [1667212430.074654][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=5,credentialType=1] - [1667212430.074709][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=5] - [1667212430.074762][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=6,credentialType=1] - [1667212430.074815][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=6] - [1667212430.074869][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=7,credentialType=1] - [1667212430.074924][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=7] - [1667212430.074977][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=8,credentialType=1] - [1667212430.075031][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=8] - [1667212430.075084][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=9,credentialType=1] - [1667212430.075142][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=9] - [1667212430.075195][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=10,credentialType=1] - [1667212430.075250][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=10] - [1667212430.075303][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=1,credentialType=1] - [1667212430.075358][14571:14571] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=1] - [1667212430.075425][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=1] - [1667212430.075484][14571:14571] CHIP:ZCL: Found occupied user [endpoint=1,adjustedIndex=0,name="xxx",credentialsCount=0,uniqueId=1934,type=0,credentialRule=0,createdBy=1,lastModifiedBy=1] - [1667212430.075546][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=1] - [1667212430.075601][14571:14571] CHIP:ZCL: Found occupied user [endpoint=1,adjustedIndex=0,name="xxx",credentialsCount=0,uniqueId=1934,type=0,credentialRule=0,createdBy=1,lastModifiedBy=1] - [1667212430.075671][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::SetUser [endpoint=1,userIndex=1,creator=1,modifier=1,userName="xxx",uniqueId=1934,userStatus=1,userType=0,credentialRule=0,credentials=0xaaab1aeaf2a0,totalCredentials=1] - [1667212430.075738][14571:14571] CHIP:ZCL: Successfully set the user [mEndpointId=1,index=1,adjustedIndex=0] - [1667212430.075794][14571:14571] CHIP:ZCL: [AddCredentialToUser] Credential added to user [endpointId=1,userIndex=1,credentialType=1,credentialIndex=1,userTotalCredentials=1] - [1667212430.075855][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::SetCredential [endpoint=1,credentialIndex=1,credentialStatus=1,credentialType=1,credentialDataSize=6,creator=1,modifier=1] - [1667212430.075915][14571:14571] CHIP:ZCL: Successfully set the credential [mEndpointId=1,index=1,credentialType=1,creator=1,modifier=1] - [1667212430.076187][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 1 - [1667212430.076467][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 2 - [1667212430.076669][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 1 - [1667212430.076787][14571:14571] CHIP:EVL: LogEvent event number: 0x0000000000000012 priority: 1, endpoint id: 0x1 cluster id: 0x0000_0101 event id: 0x4 Sys timestamp: 0x00000000013356B5 - [1667212430.076861][14571:14571] CHIP:ZCL: [RemoteLockUserChange] Sent lock user change event [endpointId=1,eventNumber=18,dataType=6,operation=0,nodeId=112233,fabricIndex=1] - [1667212430.076945][14571:14571] CHIP:DMG: Command handler moving to [ Preparing] - [1667212430.077019][14571:14571] CHIP:DMG: Command handler moving to [AddingComm] - [1667212430.077090][14571:14571] CHIP:DMG: Command handler moving to [AddedComma] - [1667212430.077208][14571:14571] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1667212430.077776][14571:14571] CHIP:EM: <<< [E:360r M:34891597 (Ack:70866396)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:09 (IM:InvokeCommandResponse) - [1667212430.077889][14571:14571] CHIP:IN: (S) Sending msg 34891597 on secure session with LSID: 42489 - [1667212430.078657][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:47641 | 34891597 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 55036 / Exchange = 360] - [1667212430.078768][14571:14571] CHIP:DMG: Header Flags = - [1667212430.078827][14571:14571] CHIP:DMG: { - [1667212430.078914][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667212430.078971][14571:14571] CHIP:DMG: { - [1667212430.079040][14571:14571] CHIP:DMG: AckMsg = 70866396 - [1667212430.079097][14571:14571] CHIP:DMG: NeedsAck = true - [1667212430.079152][14571:14571] CHIP:DMG: } - [1667212430.079225][14571:14571] CHIP:DMG: } - [1667212430.079281][14571:14571] CHIP:DMG: - [1667212430.079352][14571:14571] CHIP:DMG: Encrypted Payload (73 bytes) = - [1667212430.079408][14571:14571] CHIP:DMG: { - [1667212430.079464][14571:14571] CHIP:DMG: data = 00fcd6004d6714022e20afabbfe9d6e0216e6197c088f75e8666116aba5af25e3bebe35f32967dae83f4b3a1ce17e479091a56822ac3b2046b66858e01f103c81fa073910b5525b797 - [1667212430.079524][14571:14571] CHIP:DMG: buffer_ptr = 187651867796608 - [1667212430.079578][14571:14571] CHIP:DMG: } - [1667212430.079631][14571:14571] CHIP:DMG: - [1667212430.079706][14571:14571] CHIP:DMG: Decrypted Payload (39 bytes) = - [1667212430.079763][14571:14571] CHIP:DMG: { - [1667212430.079817][14571:14571] CHIP:DMG: data = 152800360115350037002400012501010124022318350124000034012402021818181824ff0118 - [1667212430.079873][14571:14571] CHIP:DMG: } - [1667212430.079927][14571:14571] CHIP:DMG: - [1667212430.080082][14571:14571] CHIP:DMG: InvokeResponseMessage = - [1667212430.080149][14571:14571] CHIP:DMG: { - [1667212430.080208][14571:14571] CHIP:DMG: suppressResponse = false, - [1667212430.080279][14571:14571] CHIP:DMG: InvokeResponseIBs = - [1667212430.080361][14571:14571] CHIP:DMG: [ - [1667212430.080424][14571:14571] CHIP:DMG: InvokeResponseIB = - [1667212430.080517][14571:14571] CHIP:DMG: { - [1667212430.080592][14571:14571] CHIP:DMG: CommandDataIB = - [1667212430.080674][14571:14571] CHIP:DMG: { - [1667212430.080754][14571:14571] CHIP:DMG: CommandPathIB = - [1667212430.080840][14571:14571] CHIP:DMG: { - [1667212430.080929][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667212430.081011][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667212430.081101][14571:14571] CHIP:DMG: CommandId = 0x23, - [1667212430.081185][14571:14571] CHIP:DMG: }, - [1667212430.081275][14571:14571] CHIP:DMG: - [1667212430.081355][14571:14571] CHIP:DMG: CommandFields = - [1667212430.081436][14571:14571] CHIP:DMG: { - [1667212430.081527][14571:14571] CHIP:DMG: 0x0 = 0, - [1667212430.081618][14571:14571] CHIP:DMG: 0x1 = NULL - [1667212430.081709][14571:14571] CHIP:DMG: 0x2 = 2, - [1667212430.081798][14571:14571] CHIP:DMG: }, - [1667212430.081880][14571:14571] CHIP:DMG: }, - [1667212430.081971][14571:14571] CHIP:DMG: - [1667212430.082043][14571:14571] CHIP:DMG: }, - [1667212430.082131][14571:14571] CHIP:DMG: - - - - - ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 - - Verify "DUT receives the unlock-door response " on the TH(Lock-app) Log: - - [1667212464.510236][14571:14571] CHIP:DMG: Handing timed invoke to IM engine: handler 0xaaab1aebdc20 exchange 12795r - [1667212464.510342][14571:14571] CHIP:DMG: InvokeRequestMessage = - [1667212464.510406][14571:14571] CHIP:DMG: { - [1667212464.510519][14571:14571] CHIP:DMG: suppressResponse = false, - [1667212464.510592][14571:14571] CHIP:DMG: timedRequest = true, - [1667212464.510655][14571:14571] CHIP:DMG: InvokeRequests = - [1667212464.510741][14571:14571] CHIP:DMG: [ - [1667212464.510804][14571:14571] CHIP:DMG: CommandDataIB = - [1667212464.510885][14571:14571] CHIP:DMG: { - [1667212464.510956][14571:14571] CHIP:DMG: CommandPathIB = - [1667212464.511045][14571:14571] CHIP:DMG: { - [1667212464.511136][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667212464.511225][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667212464.511470][14571:14571] CHIP:DMG: CommandId = 0x1, - [1667212464.511562][14571:14571] CHIP:DMG: }, - [1667212464.511654][14571:14571] CHIP:DMG: - [1667212464.511730][14571:14571] CHIP:DMG: CommandFields = - [1667212464.511815][14571:14571] CHIP:DMG: { - [1667212464.511904][14571:14571] CHIP:DMG: 0x0 = [ - [1667212464.511990][14571:14571] CHIP:DMG: 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - [1667212464.512086][14571:14571] CHIP:DMG: ] (6 bytes) - [1667212464.512170][14571:14571] CHIP:DMG: }, - [1667212464.512246][14571:14571] CHIP:DMG: }, - [1667212464.512329][14571:14571] CHIP:DMG: - [1667212464.512396][14571:14571] CHIP:DMG: ], - [1667212464.512478][14571:14571] CHIP:DMG: - [1667212464.512538][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667212464.512602][14571:14571] CHIP:DMG: }, - [1667212464.512750][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=o - [1667212464.512831][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212464.512899][14571:14571] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0001 - [1667212464.512980][14571:14571] CHIP:ZCL: Received command: UnlockDoor - [1667212464.513082][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=1] - [1667212464.513143][14571:14571] CHIP:ZCL: Found occupied user [endpoint=1,adjustedIndex=0,name="xxx",credentialsCount=1,uniqueId=1934,type=0,credentialRule=0,createdBy=1,lastModifiedBy=1] - [1667212464.513208][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=1,credentialType=1] - [1667212464.513265][14571:14571] CHIP:ZCL: Found occupied credential [endpoint=1,index=1,type=1,dataSize=6,createdBy=1,modifiedBy=1] - [1667212464.513342][14571:14571] CHIP:ZCL: Lock App: specified PIN code was found in the database, setting door lock state to "Unlocked" [endpointId=1,userIndex=0] - [1667212464.513756][14571:14571] CHIP:DL: writing settings to file (/tmp/chip_kvs-yqY5YM) - [1667212464.515612][14571:14571] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1667212464.515762][14571:14571] CHIP:DMG: Endpoint 1, Cluster 0x0000_0101 update version to b353ec56 - [1667212464.515830][14571:14571] CHIP:ZCL: Door Lock attribute changed - [1667212464.515916][14571:14571] CHIP:DMG: Command handler moving to [ Preparing] - [1667212464.515990][14571:14571] CHIP:DMG: Command handler moving to [AddingComm] - [1667212464.516249][14571:14571] CHIP:DMG: Command handler moving to [AddedComma] - [1667212464.516609][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 2 - [1667212464.516789][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 2 - [1667212464.516979][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 1 - [1667212464.517092][14571:14571] CHIP:EVL: LogEvent event number: 0x0000000000000013 priority: 2, endpoint id: 0x1 cluster id: 0x0000_0101 event id: 0x2 Sys timestamp: 0x000000000133DD3D - [1667212464.517233][14571:14571] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1667212464.517805][14571:14571] CHIP:EM: <<< [E:12795r M:107038128 (Ack:214336998)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:09 (IM:InvokeCommandResponse) - [1667212464.517912][14571:14571] CHIP:IN: (S) Sending msg 107038128 on secure session with LSID: 42490 - [1667212464.518683][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:48312 | 107038128 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 2999 / Exchange = 12795] - [1667212464.518782][14571:14571] CHIP:DMG: Header Flags = - [1667212464.518840][14571:14571] CHIP:DMG: { - [1667212464.518925][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667212464.518981][14571:14571] CHIP:DMG: { - [1667212464.519040][14571:14571] CHIP:DMG: AckMsg = 214336998 - [1667212464.519096][14571:14571] CHIP:DMG: NeedsAck = true - [1667212464.519150][14571:14571] CHIP:DMG: } - [1667212464.519221][14571:14571] CHIP:DMG: } - [1667212464.519276][14571:14571] CHIP:DMG: - [1667212464.519345][14571:14571] CHIP:DMG: Encrypted Payload (68 bytes) = - [1667212464.519401][14571:14571] CHIP:DMG: { - [1667212464.519456][14571:14571] CHIP:DMG: data = 00b70b00b045610604e9744f44f9cf05413cd952a8d72d9e5188de7c50555f86afd3e60f34239a506837d9a128945e521a5e6a25f895ca8fde3588ef010e3edb1d2d5cbc - [1667212464.519514][14571:14571] CHIP:DMG: buffer_ptr = 187651867797152 - [1667212464.519567][14571:14571] CHIP:DMG: } - [1667212464.519627][14571:14571] CHIP:DMG: - [1667212464.519702][14571:14571] CHIP:DMG: Decrypted Payload (34 bytes) = - [1667212464.519760][14571:14571] CHIP:DMG: { - [1667212464.519813][14571:14571] CHIP:DMG: data = 15280036011535013700240001250101012402011835012400001818181824ff0118 - [1667212464.519868][14571:14571] CHIP:DMG: } - [1667212464.519921][14571:14571] CHIP:DMG: - [1667212464.520057][14571:14571] CHIP:DMG: InvokeResponseMessage = - [1667212464.520120][14571:14571] CHIP:DMG: { - [1667212464.520180][14571:14571] CHIP:DMG: suppressResponse = false, - [1667212464.520252][14571:14571] CHIP:DMG: InvokeResponseIBs = - [1667212464.520329][14571:14571] CHIP:DMG: [ - [1667212464.520397][14571:14571] CHIP:DMG: InvokeResponseIB = - [1667212464.520494][14571:14571] CHIP:DMG: { - [1667212464.520575][14571:14571] CHIP:DMG: CommandStatusIB = - [1667212464.520658][14571:14571] CHIP:DMG: { - [1667212464.520742][14571:14571] CHIP:DMG: CommandPathIB = - [1667212464.520828][14571:14571] CHIP:DMG: { - [1667212464.520923][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667212464.521018][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667212464.521108][14571:14571] CHIP:DMG: CommandId = 0x1, - [1667212464.521206][14571:14571] CHIP:DMG: }, - [1667212464.521307][14571:14571] CHIP:DMG: - [1667212464.521394][14571:14571] CHIP:DMG: StatusIB = - [1667212464.521488][14571:14571] CHIP:DMG: { - [1667212464.521570][14571:14571] CHIP:DMG: status = 0x00 (SUCCESS), - [1667212464.521665][14571:14571] CHIP:DMG: }, - [1667212464.521761][14571:14571] CHIP:DMG: - [1667212464.521844][14571:14571] CHIP:DMG: }, - [1667212464.521932][14571:14571] CHIP:DMG: - [1667212464.522044][14571:14571] CHIP:DMG: }, - [1667212464.522131][14571:14571] CHIP:DMG: + ./chip-tool doorlock set-user 0 1 xxx 6452 1 0 0 1 1 --timedInteractionTimeoutMs 1000 --trace_decode 1 + + Verify TH receives Set user command with SUCCESS response on TH(lock-app) log: + + [1685673762.886102][2706:2708] CHIP:DMG: InvokeResponseMessage = + [1685673762.886157][2706:2708] CHIP:DMG: { + [1685673762.886210][2706:2708] CHIP:DMG: suppressResponse = false, + [1685673762.886267][2706:2708] CHIP:DMG: InvokeResponseIBs = + [1685673762.886340][2706:2708] CHIP:DMG: [ + [1685673762.886397][2706:2708] CHIP:DMG: InvokeResponseIB = + [1685673762.886473][2706:2708] CHIP:DMG: { + [1685673762.886533][2706:2708] CHIP:DMG: CommandStatusIB = + [1685673762.886613][2706:2708] CHIP:DMG: { + [1685673762.886680][2706:2708] CHIP:DMG: CommandPathIB = + [1685673762.886755][2706:2708] CHIP:DMG: { + [1685673762.886830][2706:2708] CHIP:DMG: EndpointId = 0x1, + [1685673762.886911][2706:2708] CHIP:DMG: ClusterId = 0x101, + [1685673762.886985][2706:2708] CHIP:DMG: CommandId = 0x1a, + [1685673762.887060][2706:2708] CHIP:DMG: }, + [1685673762.887144][2706:2708] CHIP:DMG: + [1685673762.887212][2706:2708] CHIP:DMG: StatusIB = + [1685673762.887291][2706:2708] CHIP:DMG: { + [1685673762.887367][2706:2708] CHIP:DMG: status = 0x00 (SUCCESS), + [1685673762.887444][2706:2708] CHIP:DMG: }, + [1685673762.887516][2706:2708] CHIP:DMG: + [1685673762.887582][2706:2708] CHIP:DMG: }, + [1685673762.887659][2706:2708] CHIP:DMG: + [1685673762.887719][2706:2708] CHIP:DMG: }, + [1685673762.887790][2706:2708] CHIP:DMG: + [1685673762.887845][2706:2708] CHIP:DMG: ], + [1685673762.887915][2706:2708] CHIP:DMG: + [1685673762.887971][2706:2708] CHIP:DMG: InteractionModelRevision = 1 + [1685673762.888027][2706:2708] CHIP:DMG: }, + + + + ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1 , "credentialIndex" : 1 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000 --trace_decode 1 + + Verify TH receives Set credential command response on TH(lock-app) log: + + [1685673784.984804][2711:2713] CHIP:DMG: InvokeResponseMessage = + [1685673784.984861][2711:2713] CHIP:DMG: { + [1685673784.984941][2711:2713] CHIP:DMG: suppressResponse = false, + [1685673784.984998][2711:2713] CHIP:DMG: InvokeResponseIBs = + [1685673784.985092][2711:2713] CHIP:DMG: [ + [1685673784.985151][2711:2713] CHIP:DMG: InvokeResponseIB = + [1685673784.985249][2711:2713] CHIP:DMG: { + [1685673784.985311][2711:2713] CHIP:DMG: CommandDataIB = + [1685673784.985384][2711:2713] CHIP:DMG: { + [1685673784.985472][2711:2713] CHIP:DMG: CommandPathIB = + [1685673784.985548][2711:2713] CHIP:DMG: { + [1685673784.985647][2711:2713] CHIP:DMG: EndpointId = 0x1, + [1685673784.985728][2711:2713] CHIP:DMG: ClusterId = 0x101, + [1685673784.985852][2711:2713] CHIP:DMG: CommandId = 0x23, + [1685673784.985953][2711:2713] CHIP:DMG: }, + [1685673784.986034][2711:2713] CHIP:DMG: + [1685673784.986123][2711:2713] CHIP:DMG: CommandFields = + [1685673784.986198][2711:2713] CHIP:DMG: { + [1685673784.986295][2711:2713] CHIP:DMG: 0x0 = 0, + [1685673784.986375][2711:2713] CHIP:DMG: 0x1 = NULL + [1685673784.986478][2711:2713] CHIP:DMG: 0x2 = 2, + [1685673784.986558][2711:2713] CHIP:DMG: }, + [1685673784.986649][2711:2713] CHIP:DMG: }, + [1685673784.986728][2711:2713] CHIP:DMG: + [1685673784.986788][2711:2713] CHIP:DMG: }, + [1685673784.986892][2711:2713] CHIP:DMG: + [1685673784.986948][2711:2713] CHIP:DMG: ], + [1685673784.987044][2711:2713] CHIP:DMG: + [1685673784.987102][2711:2713] CHIP:DMG: InteractionModelRevision = 1 + [1685673784.987157][2711:2713] CHIP:DMG: }, + + + + + + ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 --trace_decode 1 + + Verify TH receives Unlock Door command with SUCCESS response on TH(lock-app) log: + + [1685673812.339507][2715:2717] CHIP:DMG: InvokeResponseMessage = + [1685673812.339564][2715:2717] CHIP:DMG: { + [1685673812.339617][2715:2717] CHIP:DMG: suppressResponse = false, + [1685673812.339674][2715:2717] CHIP:DMG: InvokeResponseIBs = + [1685673812.339745][2715:2717] CHIP:DMG: [ + [1685673812.339801][2715:2717] CHIP:DMG: InvokeResponseIB = + [1685673812.339893][2715:2717] CHIP:DMG: { + [1685673812.339964][2715:2717] CHIP:DMG: CommandStatusIB = + [1685673812.340053][2715:2717] CHIP:DMG: { + [1685673812.340135][2715:2717] CHIP:DMG: CommandPathIB = + [1685673812.340226][2715:2717] CHIP:DMG: { + [1685673812.340320][2715:2717] CHIP:DMG: EndpointId = 0x1, + [1685673812.340415][2715:2717] CHIP:DMG: ClusterId = 0x101, + [1685673812.340510][2715:2717] CHIP:DMG: CommandId = 0x1, + [1685673812.340600][2715:2717] CHIP:DMG: }, + [1685673812.340699][2715:2717] CHIP:DMG: + [1685673812.340782][2715:2717] CHIP:DMG: StatusIB = + [1685673812.340864][2715:2717] CHIP:DMG: { + [1685673812.340947][2715:2717] CHIP:DMG: status = 0x00 (SUCCESS), + [1685673812.341028][2715:2717] CHIP:DMG: }, + [1685673812.341111][2715:2717] CHIP:DMG: + [1685673812.341185][2715:2717] CHIP:DMG: }, + [1685673812.341270][2715:2717] CHIP:DMG: + [1685673812.341341][2715:2717] CHIP:DMG: }, + [1685673812.341422][2715:2717] CHIP:DMG: + [1685673812.341479][2715:2717] CHIP:DMG: ], + [1685673812.341551][2715:2717] CHIP:DMG: + [1685673812.341606][2715:2717] CHIP:DMG: InteractionModelRevision = 1 + [1685673812.341661][2715:2717] CHIP:DMG: }, disabled: true - - label: "TH initiates DoorStateChange event with Doorstate set to DoorOpen" + - label: + "Step 3: TH initiates DoorStateChange event with DoorState set to + DoorOpen" PICS: DRLK.C.F05 && DRLK.C.E01 verification: | To trigger the event give below command in another terminal of DUT echo '{"Cmd": "SetDoorState", "Params": { "EndpointId": 1, "DoorState": 1 } }' > /tmp/chip_lock_app_fifo- (PID of lock-app) - ./chip-tool doorlock read-event door-state-change 1 1 - - Verify "DUT receives DoorStateChange Event" on the TH(Lock-app) Log: - - [1667212766.570915][14571:14571] CHIP:EM: Handling via exchange: 6593r, Delegate: 0xaaaae921d988 - [1667212766.571014][14571:14571] CHIP:IM: Received Read request - [1667212766.571186][14571:14571] CHIP:DMG: ReadRequestMessage = - [1667212766.571253][14571:14571] CHIP:DMG: { - [1667212766.571307][14571:14571] CHIP:DMG: EventPathIBs = - [1667212766.571373][14571:14571] CHIP:DMG: [ - [1667212766.571434][14571:14571] CHIP:DMG: EventPath = - [1667212766.571510][14571:14571] CHIP:DMG: { - [1667212766.571587][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212766.571668][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212766.571755][14571:14571] CHIP:DMG: Event = 0x1, - [1667212766.571837][14571:14571] CHIP:DMG: }, - [1667212766.571913][14571:14571] CHIP:DMG: - [1667212766.571975][14571:14571] CHIP:DMG: ], - [1667212766.572044][14571:14571] CHIP:DMG: - [1667212766.572107][14571:14571] CHIP:DMG: isFabricFiltered = true, - [1667212766.572172][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667212766.572233][14571:14571] CHIP:DMG: }, - [1667212766.572387][14571:14571] CHIP:DMG: IM RH moving to [GeneratingReports] - [1667212766.572605][14571:14571] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1667212766.572695][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212766.572775][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212766.572960][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212766.573030][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212766.574386][14571:14571] CHIP:DMG: Fetched 1 events - [1667212766.574503][14571:14571] CHIP:DMG: Sending report (payload has 46 bytes)... - [1667212766.575051][14571:14571] CHIP:EM: <<< [E:6593r M:8415234 (Ack:120770608)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:05 (IM:ReportData) - [1667212766.575154][14571:14571] CHIP:IN: (S) Sending msg 8415234 on secure session with LSID: 42491 - [1667212766.575827][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:49871 | 8415234 | [Interaction Model (1) / Report Data (0x05) / Session = 60369 / Exchange = 6593] - [1667212766.575925][14571:14571] CHIP:DMG: Header Flags = - [1667212766.575984][14571:14571] CHIP:DMG: { - [1667212766.576071][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667212766.576127][14571:14571] CHIP:DMG: { - [1667212766.576187][14571:14571] CHIP:DMG: AckMsg = 120770608 - [1667212766.576243][14571:14571] CHIP:DMG: NeedsAck = true - [1667212766.576296][14571:14571] CHIP:DMG: } - [1667212766.576367][14571:14571] CHIP:DMG: } - [1667212766.576424][14571:14571] CHIP:DMG: - [1667212766.576497][14571:14571] CHIP:DMG: Encrypted Payload (80 bytes) = - [1667212766.576554][14571:14571] CHIP:DMG: { - [1667212766.576609][14571:14571] CHIP:DMG: data = 00d1eb0002688000e58723a7a21404db30fdddb6d56e6d74245cbe730b2e6b7caf945c72d2b053042993d7dc00eb1a5fa89432020b713b83ba898302c2d5c421fe79be57586dfd1bb4c1c5d5f39284dd - [1667212766.576665][14571:14571] CHIP:DMG: buffer_ptr = 187651867798128 - [1667212766.576718][14571:14571] CHIP:DMG: } - [1667212766.576770][14571:14571] CHIP:DMG: - [1667212766.576846][14571:14571] CHIP:DMG: Decrypted Payload (46 bytes) = - [1667212766.576902][14571:14571] CHIP:DMG: { - [1667212766.576955][14571:14571] CHIP:DMG: data = 153602153501370024010125020101240301182401012402022604d2cf1b01350724000118181818290424ff0118 - [1667212766.577012][14571:14571] CHIP:DMG: } - [1667212766.577067][14571:14571] CHIP:DMG: - [1667212766.577212][14571:14571] CHIP:DMG: ReportDataMessage = - [1667212766.577276][14571:14571] CHIP:DMG: { - [1667212766.577330][14571:14571] CHIP:DMG: EventReportIBs = - [1667212766.577410][14571:14571] CHIP:DMG: [ - [1667212766.577472][14571:14571] CHIP:DMG: EventReportIB = - [1667212766.577562][14571:14571] CHIP:DMG: { - [1667212766.577628][14571:14571] CHIP:DMG: EventDataIB = - [1667212766.577715][14571:14571] CHIP:DMG: { - [1667212766.577785][14571:14571] CHIP:DMG: EventPath = - [1667212766.577877][14571:14571] CHIP:DMG: { - [1667212766.577971][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212766.578066][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212766.578156][14571:14571] CHIP:DMG: Event = 0x1, - [1667212766.578241][14571:14571] CHIP:DMG: }, - [1667212766.578331][14571:14571] CHIP:DMG: - [1667212766.578410][14571:14571] CHIP:DMG: EventNumber = 0x1, - [1667212766.578544][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212766.578631][14571:14571] CHIP:DMG: SystemTimestamp = 0x11bcfd2, - [1667212766.578714][14571:14571] CHIP:DMG: EventData = - [1667212766.578805][14571:14571] CHIP:DMG: { - [1667212766.578912][14571:14571] CHIP:DMG: 0x0 = 1, - [1667212766.579035][14571:14571] CHIP:DMG: }, - [1667212766.579122][14571:14571] CHIP:DMG: }, - [1667212766.579222][14571:14571] CHIP:DMG: - [1667212766.579292][14571:14571] CHIP:DMG: }, + ./chip-tool doorlock read-event door-state-change 1 1 --trace_decode 1 + + Verify DoorStateChange event response on TH(Lock-app) log: + + [1685673847.500892][2722:2724] CHIP:DMG: ReportDataMessage = + [1685673847.500955][2722:2724] CHIP:DMG: { + [1685673847.501030][2722:2724] CHIP:DMG: EventReportIBs = + [1685673847.501110][2722:2724] CHIP:DMG: [ + [1685673847.501166][2722:2724] CHIP:DMG: EventReportIB = + [1685673847.501272][2722:2724] CHIP:DMG: { + [1685673847.501334][2722:2724] CHIP:DMG: EventDataIB = + [1685673847.501428][2722:2724] CHIP:DMG: { + [1685673847.501497][2722:2724] CHIP:DMG: EventPath = + [1685673847.501592][2722:2724] CHIP:DMG: { + [1685673847.501672][2722:2724] CHIP:DMG: Endpoint = 0x1, + [1685673847.501823][2722:2724] CHIP:DMG: Cluster = 0x101, + [1685673847.501905][2722:2724] CHIP:DMG: Event = 0x1, + [1685673847.501999][2722:2724] CHIP:DMG: }, + [1685673847.502081][2722:2724] CHIP:DMG: + [1685673847.502175][2722:2724] CHIP:DMG: EventNumber = 0x1, + [1685673847.502250][2722:2724] CHIP:DMG: PriorityLevel = 0x2, + [1685673847.502345][2722:2724] CHIP:DMG: EpochTimestamp = 0x18879f130f2, + [1685673847.502419][2722:2724] CHIP:DMG: EventData = + [1685673847.502514][2722:2724] CHIP:DMG: { + [1685673847.502594][2722:2724] CHIP:DMG: 0x0 = 1, + [1685673847.502695][2722:2724] CHIP:DMG: }, + [1685673847.502767][2722:2724] CHIP:DMG: }, + [1685673847.502867][2722:2724] CHIP:DMG: + [1685673847.502930][2722:2724] CHIP:DMG: }, + [1685673847.503007][2722:2724] CHIP:DMG: + [1685673847.503085][2722:2724] CHIP:DMG: ], + [1685673847.503160][2722:2724] CHIP:DMG: + [1685673847.503249][2722:2724] CHIP:DMG: SuppressResponse = true, + [1685673847.503313][2722:2724] CHIP:DMG: InteractionModelRevision = 1 + [1685673847.503368][2722:2724] CHIP:DMG: } disabled: true - - label: "DUT sends the Lock Door command to the TH with valid PINCode" + - label: + "Step 4: DUT sends the Lock Door command to the TH with valid PINCode" PICS: DRLK.C.C00.Tx verification: | - ./chip-tool doorlock lock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 - - Verify "DUT receives lock Door response" on the TH(Lock-app) Log: - - [1667212950.673688][14571:14571] CHIP:DMG: Handing timed invoke to IM engine: handler 0xaaab1aebb880 exchange 65395r - [1667212950.673797][14571:14571] CHIP:DMG: InvokeRequestMessage = - [1667212950.673863][14571:14571] CHIP:DMG: { - [1667212950.673921][14571:14571] CHIP:DMG: suppressResponse = false, - [1667212950.673989][14571:14571] CHIP:DMG: timedRequest = true, - [1667212950.674052][14571:14571] CHIP:DMG: InvokeRequests = - [1667212950.674130][14571:14571] CHIP:DMG: [ - [1667212950.674193][14571:14571] CHIP:DMG: CommandDataIB = - [1667212950.674279][14571:14571] CHIP:DMG: { - [1667212950.674354][14571:14571] CHIP:DMG: CommandPathIB = - [1667212950.674447][14571:14571] CHIP:DMG: { - [1667212950.674708][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667212950.674811][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667212950.674907][14571:14571] CHIP:DMG: CommandId = 0x0, - [1667212950.674996][14571:14571] CHIP:DMG: }, - [1667212950.675092][14571:14571] CHIP:DMG: - [1667212950.675168][14571:14571] CHIP:DMG: CommandFields = - [1667212950.675258][14571:14571] CHIP:DMG: { - [1667212950.675351][14571:14571] CHIP:DMG: 0x0 = [ - [1667212950.675448][14571:14571] CHIP:DMG: 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - [1667212950.675554][14571:14571] CHIP:DMG: ] (6 bytes) - [1667212950.675650][14571:14571] CHIP:DMG: }, - [1667212950.675736][14571:14571] CHIP:DMG: }, - [1667212950.675820][14571:14571] CHIP:DMG: - [1667212950.675882][14571:14571] CHIP:DMG: ], - [1667212950.675960][14571:14571] CHIP:DMG: - [1667212950.676022][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667212950.676083][14571:14571] CHIP:DMG: }, - [1667212950.676227][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=o - [1667212950.676310][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212950.676373][14571:14571] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0000 - [1667212950.676455][14571:14571] CHIP:ZCL: Received command: LockDoor - [1667212950.676557][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=1] - [1667212950.676619][14571:14571] CHIP:ZCL: Found occupied user [endpoint=1,adjustedIndex=0,name="xxx",credentialsCount=1,uniqueId=1934,type=0,credentialRule=0,createdBy=1,lastModifiedBy=1] - [1667212950.676684][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=1,credentialType=1] - [1667212950.676741][14571:14571] CHIP:ZCL: Found occupied credential [endpoint=1,index=1,type=1,dataSize=6,createdBy=1,modifiedBy=1] - [1667212950.676819][14571:14571] CHIP:ZCL: Lock App: specified PIN code was found in the database, setting door lock state to "Locked" [endpointId=1,userIndex=0] - [1667212950.677220][14571:14571] CHIP:DL: writing settings to file (/tmp/chip_kvs-1rz1ja) - [1667212950.679102][14571:14571] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1667212950.679268][14571:14571] CHIP:DMG: Endpoint 1, Cluster 0x0000_0101 update version to b353ec58 - [1667212950.679337][14571:14571] CHIP:ZCL: Door Lock attribute changed - [1667212950.679427][14571:14571] CHIP:DMG: Command handler moving to [ Preparing] - [1667212950.679712][14571:14571] CHIP:DMG: Command handler moving to [AddingComm] - [1667212950.679800][14571:14571] CHIP:DMG: Command handler moving to [AddedComma] - [1667212950.680182][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 2 - [1667212950.680393][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 1 - [1667212950.680506][14571:14571] CHIP:EVL: LogEvent event number: 0x0000000000000016 priority: 2, endpoint id: 0x1 cluster id: 0x0000_0101 event id: 0x2 Sys timestamp: 0x00000000013B4851 - [1667212950.680628][14571:14571] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1667212950.681229][14571:14571] CHIP:EM: <<< [E:65395r M:196266597 (Ack:191601854)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:09 (IM:InvokeCommandResponse) - [1667212950.681439][14571:14571] CHIP:IN: (S) Sending msg 196266597 on secure session with LSID: 42494 - [1667212950.682200][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:47460 | 196266597 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 26681 / Exchange = 65395] - [1667212950.682325][14571:14571] CHIP:DMG: Header Flags = - [1667212950.682376][14571:14571] CHIP:DMG: { - [1667212950.682454][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667212950.682542][14571:14571] CHIP:DMG: { - [1667212950.682595][14571:14571] CHIP:DMG: AckMsg = 191601854 - [1667212950.682643][14571:14571] CHIP:DMG: NeedsAck = true - [1667212950.682689][14571:14571] CHIP:DMG: } - [1667212950.682754][14571:14571] CHIP:DMG: } - [1667212950.682800][14571:14571] CHIP:DMG: - [1667212950.682867][14571:14571] CHIP:DMG: Encrypted Payload (68 bytes) = - [1667212950.682914][14571:14571] CHIP:DMG: { - [1667212950.682961][14571:14571] CHIP:DMG: data = 0039680065cab20b92b1da6e682afa8046fad28447b821f0ae1b49599d439bf10147f2f79fbe9eb4c6be40ce47a2de6b6da7d57f825ab0ff06306c059fa5eb8404735bbf - [1667212950.683011][14571:14571] CHIP:DMG: buffer_ptr = 187651867800416 - [1667212950.683055][14571:14571] CHIP:DMG: } - [1667212950.683098][14571:14571] CHIP:DMG: - [1667212950.683167][14571:14571] CHIP:DMG: Decrypted Payload (34 bytes) = - [1667212950.683215][14571:14571] CHIP:DMG: { - [1667212950.683261][14571:14571] CHIP:DMG: data = 15280036011535013700240001250101012402001835012400001818181824ff0118 - [1667212950.683309][14571:14571] CHIP:DMG: } - [1667212950.683353][14571:14571] CHIP:DMG: - [1667212950.683494][14571:14571] CHIP:DMG: InvokeResponseMessage = - [1667212950.683551][14571:14571] CHIP:DMG: { - [1667212950.683601][14571:14571] CHIP:DMG: suppressResponse = false, - [1667212950.683655][14571:14571] CHIP:DMG: InvokeResponseIBs = - [1667212950.683724][14571:14571] CHIP:DMG: [ - [1667212950.683779][14571:14571] CHIP:DMG: InvokeResponseIB = - [1667212950.683853][14571:14571] CHIP:DMG: { - [1667212950.683910][14571:14571] CHIP:DMG: CommandStatusIB = - [1667212950.684012][14571:14571] CHIP:DMG: { - [1667212950.684099][14571:14571] CHIP:DMG: CommandPathIB = - [1667212950.684196][14571:14571] CHIP:DMG: { - [1667212950.684286][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667212950.684378][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667212950.684468][14571:14571] CHIP:DMG: CommandId = 0x0, - [1667212950.684555][14571:14571] CHIP:DMG: }, - [1667212950.684655][14571:14571] CHIP:DMG: - [1667212950.684738][14571:14571] CHIP:DMG: StatusIB = - [1667212950.684827][14571:14571] CHIP:DMG: { - [1667212950.684918][14571:14571] CHIP:DMG: status = 0x00 (SUCCESS), - [1667212950.685005][14571:14571] CHIP:DMG: }, - [1667212950.685094][14571:14571] CHIP:DMG: - [1667212950.685174][14571:14571] CHIP:DMG: }, + ./chip-tool doorlock lock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 --trace_decode 1 + + Verify TH receives Lock Door command with SUCCESS response on TH(lock-app) log: + + [1685673873.420811][2727:2729] CHIP:DMG: InvokeResponseMessage = + [1685673873.420869][2727:2729] CHIP:DMG: { + [1685673873.420923][2727:2729] CHIP:DMG: suppressResponse = false, + [1685673873.420980][2727:2729] CHIP:DMG: InvokeResponseIBs = + [1685673873.421052][2727:2729] CHIP:DMG: [ + [1685673873.421110][2727:2729] CHIP:DMG: InvokeResponseIB = + [1685673873.421192][2727:2729] CHIP:DMG: { + [1685673873.421255][2727:2729] CHIP:DMG: CommandStatusIB = + [1685673873.421325][2727:2729] CHIP:DMG: { + [1685673873.421392][2727:2729] CHIP:DMG: CommandPathIB = + [1685673873.421468][2727:2729] CHIP:DMG: { + [1685673873.421545][2727:2729] CHIP:DMG: EndpointId = 0x1, + [1685673873.421623][2727:2729] CHIP:DMG: ClusterId = 0x101, + [1685673873.421697][2727:2729] CHIP:DMG: CommandId = 0x0, + [1685673873.421805][2727:2729] CHIP:DMG: }, + [1685673873.421896][2727:2729] CHIP:DMG: + [1685673873.421963][2727:2729] CHIP:DMG: StatusIB = + [1685673873.422039][2727:2729] CHIP:DMG: { + [1685673873.422116][2727:2729] CHIP:DMG: status = 0x00 (SUCCESS), + [1685673873.422194][2727:2729] CHIP:DMG: }, + [1685673873.422271][2727:2729] CHIP:DMG: + [1685673873.422339][2727:2729] CHIP:DMG: }, + [1685673873.422416][2727:2729] CHIP:DMG: + [1685673873.422475][2727:2729] CHIP:DMG: }, + [1685673873.422546][2727:2729] CHIP:DMG: + [1685673873.422601][2727:2729] CHIP:DMG: ], + [1685673873.422671][2727:2729] CHIP:DMG: + [1685673873.422726][2727:2729] CHIP:DMG: InteractionModelRevision = 1 + [1685673873.422780][2727:2729] CHIP:DMG: }, disabled: true - label: - "TH will initiate LockOperation event with LockOperationType to Lock" + "Step 5: TH will initiate LockOperation event with LockOperationType + to Lock" PICS: DRLK.C.E02 verification: | - ./chip-tool doorlock read-event lock-operation 1 1 - - - Verify "DUT receives LockOperation event response" on the TH(Lock-app) Log: - - - [1667212998.260957][14571:14571] CHIP:EM: Handling via exchange: 59972r, Delegate: 0xaaaae921d988 - [1667212998.261061][14571:14571] CHIP:IM: Received Read request - [1667212998.261236][14571:14571] CHIP:DMG: ReadRequestMessage = - [1667212998.261304][14571:14571] CHIP:DMG: { - [1667212998.261358][14571:14571] CHIP:DMG: EventPathIBs = - [1667212998.261440][14571:14571] CHIP:DMG: [ - [1667212998.261508][14571:14571] CHIP:DMG: EventPath = - [1667212998.261600][14571:14571] CHIP:DMG: { - [1667212998.261679][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212998.261975][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212998.262079][14571:14571] CHIP:DMG: Event = 0x2, - [1667212998.262165][14571:14571] CHIP:DMG: }, - [1667212998.262245][14571:14571] CHIP:DMG: - [1667212998.262307][14571:14571] CHIP:DMG: ], - [1667212998.262379][14571:14571] CHIP:DMG: - [1667212998.262443][14571:14571] CHIP:DMG: isFabricFiltered = true, - [1667212998.262563][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667212998.262631][14571:14571] CHIP:DMG: }, - [1667212998.262794][14571:14571] CHIP:DMG: IM RH moving to [GeneratingReports] - [1667212998.263134][14571:14571] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1667212998.263478][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212998.263559][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212998.263867][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212998.263941][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212998.264211][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212998.264290][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212998.264469][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212998.264537][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212998.264710][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212998.264778][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212998.265019][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212998.265088][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212998.265857][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212998.265926][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212998.266115][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212998.266183][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212998.266414][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667212998.266519][14571:14571] CHIP:DMG: AccessControl: allowed - [1667212998.266669][14571:14571] CHIP:DMG: Fetched 8 events - [1667212998.266738][14571:14571] CHIP:DMG: Sending report (payload has 424 bytes)... - [1667212998.267484][14571:14571] CHIP:EM: <<< [E:59972r M:71236657 (Ack:70479114)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:05 (IM:ReportData) - [1667212998.267597][14571:14571] CHIP:IN: (S) Sending msg 71236657 on secure session with LSID: 42495 - [1667212998.268415][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:57774 | 71236657 | [Interaction Model (1) / Report Data (0x05) / Session = 21154 / Exchange = 59972] - [1667212998.268519][14571:14571] CHIP:DMG: Header Flags = - [1667212998.268577][14571:14571] CHIP:DMG: { - [1667212998.268665][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667212998.268722][14571:14571] CHIP:DMG: { - [1667212998.268782][14571:14571] CHIP:DMG: AckMsg = 70479114 - [1667212998.268838][14571:14571] CHIP:DMG: NeedsAck = true - [1667212998.268893][14571:14571] CHIP:DMG: } - [1667212998.268966][14571:14571] CHIP:DMG: } - [1667212998.269021][14571:14571] CHIP:DMG: - [1667212998.269093][14571:14571] CHIP:DMG: Encrypted Payload (458 bytes) = - [1667212998.269148][14571:14571] CHIP:DMG: { - [1667212998.269204][14571:14571] CHIP:DMG: data = 00a2520031fc3e04115c499465c1cd208e2e32927edc63413acabf4a43897864db050a4d3ae72bb5cd01ada66903eb1c782e21fad83efc535c582d490b190bae3ae14075de5f410c2f36a73d0f702af497b69630ac60f396aa24145878b7dfd891a7f967501dd8633687a64970cb4626e21cb78a34a25142b8ef2dfdb184269392d2ea0f975c8ab626f337b21c26f31f7a2e71413c04c6682195a0df1cf7f284f23990b4d5554d6c03d9e49a9e2584d0248b3778135222c219e02df8b7d66738c06d53c0645fffec7406a3607c18a14f9e10a01aed088633d3f6de1311ce3d2c1d88582a7c780ded3acc332b4486700d54bec4ad9eb4662d71b5ac7f34933f62b8aa10fc3af5698141e863a91868e6016942731fd184c33cc8b322410a867975d0b8a4c8171dac26fde922717585df8246e500ccf8e0ffc2647cf91257bbaca3d44e98c9d12ac7883e4a7cff5cfce0bd2ddd08ea93e55ca5c68ad736a43cf4f88ad9b2a0207aae49476026d17953ad182415ec7d5af810d20d069bfdc8f123a3081ac7bea8d1add2720cbba088b3a6f58bc1edc77e352f1e6e2557446aafcf10260a1e0506f083d3952d87da205cbd36b2cb8625630fc13be40013fdafbdb0640f9c2348204ff6be6e84 - [1667212998.269285][14571:14571] CHIP:DMG: buffer_ptr = 187651867800624 - [1667212998.269339][14571:14571] CHIP:DMG: } - [1667212998.269392][14571:14571] CHIP:DMG: - [1667212998.269469][14571:14571] CHIP:DMG: Decrypted Payload (424 bytes) = - [1667212998.269528][14571:14571] CHIP:DMG: { - [1667212998.269583][14571:14571] CHIP:DMG: data = 153602153501370024010125020101240302182401042402022604a51720013507240000240107240200240301260469b601003405181818153501370024010125020101240302182401052402022506a2a43507240001240107240200240301260469b60100340518181815350137002401012502010124030218240106240202250668ea35072400002401043402340334043405181818153501370024010125020101240302182401072402022506e2223507240001240107240200240301260469b6010034051818181535013700240101250201012403021824010924020225067eea350724000024010434023403340434051818181535013700240101250201012403021824011324020226062e2911003507240001240107240201240301260469b601003605152400012401011818181818153501370024010125020101240302182401142402022506a0ea35072400002401043402340334043405181818153501370024010125020101240302182401162402022606748006003507240000240107240201240301260469b60100360515240001240101181818181818290424ff0118 - [1667212998.269658][14571:14571] CHIP:DMG: } - [1667212998.269710][14571:14571] CHIP:DMG: - [1667212998.270178][14571:14571] CHIP:DMG: ReportDataMessage = - [1667212998.270245][14571:14571] CHIP:DMG: { - [1667212998.270299][14571:14571] CHIP:DMG: EventReportIBs = - [1667212998.270384][14571:14571] CHIP:DMG: [ - [1667212998.270447][14571:14571] CHIP:DMG: EventReportIB = - [1667212998.270588][14571:14571] CHIP:DMG: { - [1667212998.270656][14571:14571] CHIP:DMG: EventDataIB = - [1667212998.270744][14571:14571] CHIP:DMG: { - [1667212998.270822][14571:14571] CHIP:DMG: EventPath = - [1667212998.270910][14571:14571] CHIP:DMG: { - [1667212998.270998][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212998.271090][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212998.271344][14571:14571] CHIP:DMG: Event = 0x2, - [1667212998.271434][14571:14571] CHIP:DMG: }, - [1667212998.271526][14571:14571] CHIP:DMG: - [1667212998.271610][14571:14571] CHIP:DMG: EventNumber = 0x4, - [1667212998.271697][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212998.271785][14571:14571] CHIP:DMG: SystemTimestamp = 0x12017a5, - [1667212998.271869][14571:14571] CHIP:DMG: EventData = - [1667212998.271954][14571:14571] CHIP:DMG: { - [1667212998.272043][14571:14571] CHIP:DMG: 0x0 = 0, - [1667212998.272134][14571:14571] CHIP:DMG: 0x1 = 7, - [1667212998.272224][14571:14571] CHIP:DMG: 0x2 = 0, - [1667212998.272315][14571:14571] CHIP:DMG: 0x3 = 1, - [1667212998.272406][14571:14571] CHIP:DMG: 0x4 = 112233, - [1667212998.272496][14571:14571] CHIP:DMG: 0x5 = NULL - [1667212998.272585][14571:14571] CHIP:DMG: }, - [1667212998.272668][14571:14571] CHIP:DMG: }, - [1667212998.272766][14571:14571] CHIP:DMG: - [1667212998.272840][14571:14571] CHIP:DMG: }, - [1667212998.273203][14571:14571] CHIP:DMG: - [1667212998.273374][14571:14571] CHIP:DMG: EventReportIB = - [1667212998.273468][14571:14571] CHIP:DMG: { - [1667212998.273543][14571:14571] CHIP:DMG: EventDataIB = - [1667212998.273789][14571:14571] CHIP:DMG: { - [1667212998.273870][14571:14571] CHIP:DMG: EventPath = - [1667212998.273958][14571:14571] CHIP:DMG: { - [1667212998.274046][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212998.274137][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212998.274227][14571:14571] CHIP:DMG: Event = 0x2, - [1667212998.274312][14571:14571] CHIP:DMG: }, - [1667212998.274402][14571:14571] CHIP:DMG: - [1667212998.274628][14571:14571] CHIP:DMG: EventNumber = 0x5, - [1667212998.274720][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212998.274806][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0xa4a2, - [1667212998.274955][14571:14571] CHIP:DMG: EventData = - [1667212998.275044][14571:14571] CHIP:DMG: { - [1667212998.275133][14571:14571] CHIP:DMG: 0x0 = 1, - [1667212998.275225][14571:14571] CHIP:DMG: 0x1 = 7, - [1667212998.275316][14571:14571] CHIP:DMG: 0x2 = 0, - [1667212998.275489][14571:14571] CHIP:DMG: 0x3 = 1, - [1667212998.275585][14571:14571] CHIP:DMG: 0x4 = 112233, - [1667212998.275676][14571:14571] CHIP:DMG: 0x5 = NULL - [1667212998.275766][14571:14571] CHIP:DMG: }, - [1667212998.275924][14571:14571] CHIP:DMG: }, - [1667212998.276021][14571:14571] CHIP:DMG: - [1667212998.276095][14571:14571] CHIP:DMG: }, - [1667212998.276209][14571:14571] CHIP:DMG: - [1667212998.276280][14571:14571] CHIP:DMG: EventReportIB = - [1667212998.276380][14571:14571] CHIP:DMG: { - [1667212998.276457][14571:14571] CHIP:DMG: EventDataIB = - [1667212998.276538][14571:14571] CHIP:DMG: { - [1667212998.276618][14571:14571] CHIP:DMG: EventPath = - [1667212998.276703][14571:14571] CHIP:DMG: { - [1667212998.276790][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212998.276879][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212998.276968][14571:14571] CHIP:DMG: Event = 0x2, - [1667212998.277052][14571:14571] CHIP:DMG: }, - [1667212998.277141][14571:14571] CHIP:DMG: - [1667212998.277224][14571:14571] CHIP:DMG: EventNumber = 0x6, - [1667212998.277310][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212998.277396][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0xea68, - [1667212998.277479][14571:14571] CHIP:DMG: EventData = - [1667212998.277563][14571:14571] CHIP:DMG: { - [1667212998.277650][14571:14571] CHIP:DMG: 0x0 = 0, - [1667212998.277741][14571:14571] CHIP:DMG: 0x1 = 4, - [1667212998.277831][14571:14571] CHIP:DMG: 0x2 = NULL - [1667212998.277921][14571:14571] CHIP:DMG: 0x3 = NULL - [1667212998.278012][14571:14571] CHIP:DMG: 0x4 = NULL - [1667212998.278102][14571:14571] CHIP:DMG: 0x5 = NULL - [1667212998.278190][14571:14571] CHIP:DMG: }, - [1667212998.278270][14571:14571] CHIP:DMG: }, - [1667212998.278367][14571:14571] CHIP:DMG: - [1667212998.278441][14571:14571] CHIP:DMG: }, - [1667212998.278590][14571:14571] CHIP:DMG: - [1667212998.278654][14571:14571] CHIP:DMG: EventReportIB = - [1667212998.278752][14571:14571] CHIP:DMG: { - [1667212998.278826][14571:14571] CHIP:DMG: EventDataIB = - [1667212998.278908][14571:14571] CHIP:DMG: { - [1667212998.278986][14571:14571] CHIP:DMG: EventPath = - [1667212998.279071][14571:14571] CHIP:DMG: { - [1667212998.279157][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212998.279247][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212998.279337][14571:14571] CHIP:DMG: Event = 0x2, - [1667212998.279421][14571:14571] CHIP:DMG: }, - [1667212998.279510][14571:14571] CHIP:DMG: - [1667212998.279595][14571:14571] CHIP:DMG: EventNumber = 0x7, - [1667212998.279681][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212998.279765][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x22e2, - [1667212998.279847][14571:14571] CHIP:DMG: EventData = - [1667212998.279931][14571:14571] CHIP:DMG: { - [1667212998.280019][14571:14571] CHIP:DMG: 0x0 = 1, - [1667212998.280110][14571:14571] CHIP:DMG: 0x1 = 7, - [1667212998.280201][14571:14571] CHIP:DMG: 0x2 = 0, - [1667212998.280291][14571:14571] CHIP:DMG: 0x3 = 1, - [1667212998.280383][14571:14571] CHIP:DMG: 0x4 = 112233, - [1667212998.280473][14571:14571] CHIP:DMG: 0x5 = NULL - [1667212998.280561][14571:14571] CHIP:DMG: }, - [1667212998.280643][14571:14571] CHIP:DMG: }, - [1667212998.280741][14571:14571] CHIP:DMG: - [1667212998.280815][14571:14571] CHIP:DMG: }, - [1667212998.280930][14571:14571] CHIP:DMG: - [1667212998.281000][14571:14571] CHIP:DMG: EventReportIB = - [1667212998.281098][14571:14571] CHIP:DMG: { - [1667212998.281171][14571:14571] CHIP:DMG: EventDataIB = - [1667212998.281252][14571:14571] CHIP:DMG: { - [1667212998.281331][14571:14571] CHIP:DMG: EventPath = - [1667212998.281415][14571:14571] CHIP:DMG: { - [1667212998.281502][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212998.281592][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212998.281772][14571:14571] CHIP:DMG: Event = 0x2, - [1667212998.281859][14571:14571] CHIP:DMG: }, - [1667212998.281949][14571:14571] CHIP:DMG: - [1667212998.282033][14571:14571] CHIP:DMG: EventNumber = 0x9, - [1667212998.282118][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212998.282203][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0xea7e, - [1667212998.282284][14571:14571] CHIP:DMG: EventData = - [1667212998.282369][14571:14571] CHIP:DMG: { - [1667212998.282482][14571:14571] CHIP:DMG: 0x0 = 0, - [1667212998.282582][14571:14571] CHIP:DMG: 0x1 = 4, - [1667212998.282672][14571:14571] CHIP:DMG: 0x2 = NULL - [1667212998.282764][14571:14571] CHIP:DMG: 0x3 = NULL - [1667212998.282854][14571:14571] CHIP:DMG: 0x4 = NULL - [1667212998.282943][14571:14571] CHIP:DMG: 0x5 = NULL - [1667212998.283030][14571:14571] CHIP:DMG: }, - [1667212998.283111][14571:14571] CHIP:DMG: }, - [1667212998.283209][14571:14571] CHIP:DMG: - [1667212998.283280][14571:14571] CHIP:DMG: }, - [1667212998.283398][14571:14571] CHIP:DMG: - [1667212998.283461][14571:14571] CHIP:DMG: EventReportIB = - [1667212998.283565][14571:14571] CHIP:DMG: { - [1667212998.283638][14571:14571] CHIP:DMG: EventDataIB = - [1667212998.283719][14571:14571] CHIP:DMG: { - [1667212998.283798][14571:14571] CHIP:DMG: EventPath = - [1667212998.283883][14571:14571] CHIP:DMG: { - [1667212998.283969][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212998.284058][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212998.284147][14571:14571] CHIP:DMG: Event = 0x2, - [1667212998.284231][14571:14571] CHIP:DMG: }, - [1667212998.284319][14571:14571] CHIP:DMG: - [1667212998.284402][14571:14571] CHIP:DMG: EventNumber = 0x13, - [1667212998.284488][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212998.284573][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x11292e, - [1667212998.284655][14571:14571] CHIP:DMG: EventData = - [1667212998.284738][14571:14571] CHIP:DMG: { - [1667212998.284826][14571:14571] CHIP:DMG: 0x0 = 1, - [1667212998.284916][14571:14571] CHIP:DMG: 0x1 = 7, - [1667212998.285008][14571:14571] CHIP:DMG: 0x2 = 1, - [1667212998.285098][14571:14571] CHIP:DMG: 0x3 = 1, - [1667212998.285188][14571:14571] CHIP:DMG: 0x4 = 112233, - [1667212998.285274][14571:14571] CHIP:DMG: 0x5 = [ - [1667212998.285362][14571:14571] CHIP:DMG: - [1667212998.285456][14571:14571] CHIP:DMG: { - [1667212998.285552][14571:14571] CHIP:DMG: 0x0 = 1, - [1667212998.285652][14571:14571] CHIP:DMG: 0x1 = 1, - [1667212998.285748][14571:14571] CHIP:DMG: }, - [1667212998.285841][14571:14571] CHIP:DMG: ], - [1667212998.285929][14571:14571] CHIP:DMG: }, - [1667212998.286009][14571:14571] CHIP:DMG: }, - [1667212998.286109][14571:14571] CHIP:DMG: - [1667212998.286181][14571:14571] CHIP:DMG: }, - [1667212998.286299][14571:14571] CHIP:DMG: - [1667212998.286362][14571:14571] CHIP:DMG: EventReportIB = - [1667212998.286488][14571:14571] CHIP:DMG: { - [1667212998.286559][14571:14571] CHIP:DMG: EventDataIB = - [1667212998.286642][14571:14571] CHIP:DMG: { - [1667212998.286720][14571:14571] CHIP:DMG: EventPath = - [1667212998.286806][14571:14571] CHIP:DMG: { - [1667212998.286893][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212998.286983][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212998.287071][14571:14571] CHIP:DMG: Event = 0x2, - [1667212998.287155][14571:14571] CHIP:DMG: }, - [1667212998.287244][14571:14571] CHIP:DMG: - [1667212998.287327][14571:14571] CHIP:DMG: EventNumber = 0x14, - [1667212998.287413][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212998.287498][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0xeaa0, - [1667212998.287579][14571:14571] CHIP:DMG: EventData = - [1667212998.287663][14571:14571] CHIP:DMG: { - [1667212998.287750][14571:14571] CHIP:DMG: 0x0 = 0, - [1667212998.287840][14571:14571] CHIP:DMG: 0x1 = 4, - [1667212998.288362][14571:14571] CHIP:DMG: 0x2 = NULL - [1667212998.288452][14571:14571] CHIP:DMG: 0x3 = NULL - [1667212998.288544][14571:14571] CHIP:DMG: 0x4 = NULL - [1667212998.288634][14571:14571] CHIP:DMG: 0x5 = NULL - [1667212998.288723][14571:14571] CHIP:DMG: }, - [1667212998.288804][14571:14571] CHIP:DMG: }, - [1667212998.288902][14571:14571] CHIP:DMG: - [1667212998.288975][14571:14571] CHIP:DMG: }, - [1667212998.289094][14571:14571] CHIP:DMG: - [1667212998.289165][14571:14571] CHIP:DMG: EventReportIB = - [1667212998.289270][14571:14571] CHIP:DMG: { - [1667212998.289343][14571:14571] CHIP:DMG: EventDataIB = - [1667212998.289425][14571:14571] CHIP:DMG: { - [1667212998.289503][14571:14571] CHIP:DMG: EventPath = - [1667212998.289662][14571:14571] CHIP:DMG: { - [1667212998.289753][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667212998.289842][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667212998.289930][14571:14571] CHIP:DMG: Event = 0x2, - [1667212998.290013][14571:14571] CHIP:DMG: }, - [1667212998.290104][14571:14571] CHIP:DMG: - [1667212998.290189][14571:14571] CHIP:DMG: EventNumber = 0x16, - [1667212998.290275][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667212998.290360][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x68074, - [1667212998.290441][14571:14571] CHIP:DMG: EventData = - [1667212998.290606][14571:14571] CHIP:DMG: { - [1667212998.290697][14571:14571] CHIP:DMG: 0x0 = 0, - [1667212998.290789][14571:14571] CHIP:DMG: 0x1 = 7, - [1667212998.290879][14571:14571] CHIP:DMG: 0x2 = 1, - [1667212998.290972][14571:14571] CHIP:DMG: 0x3 = 1, - [1667212998.291064][14571:14571] CHIP:DMG: 0x4 = 112233, - [1667212998.291154][14571:14571] CHIP:DMG: 0x5 = [ - [1667212998.291242][14571:14571] CHIP:DMG: - [1667212998.291336][14571:14571] CHIP:DMG: { - [1667212998.291433][14571:14571] CHIP:DMG: 0x0 = 1, - [1667212998.291532][14571:14571] CHIP:DMG: 0x1 = 1, - [1667212998.291629][14571:14571] CHIP:DMG: }, - [1667212998.291723][14571:14571] CHIP:DMG: ], - [1667212998.291812][14571:14571] CHIP:DMG: }, - [1667212998.291892][14571:14571] CHIP:DMG: }, - [1667212998.291992][14571:14571] CHIP:DMG: - [1667212998.292066][14571:14571] CHIP:DMG: }, + ./chip-tool doorlock read-event lock-operation 1 1 --trace_decode 1 + + Verify LockOperation event response on TH(Lock-app) log: + + [1685673894.510509][2730:2732] CHIP:DMG: ReportDataMessage = + [1685673894.510571][2730:2732] CHIP:DMG: { + [1685673894.510620][2730:2732] CHIP:DMG: EventReportIBs = + [1685673894.510700][2730:2732] CHIP:DMG: [ + [1685673894.510756][2730:2732] CHIP:DMG: EventReportIB = + [1685673894.510839][2730:2732] CHIP:DMG: { + [1685673894.510899][2730:2732] CHIP:DMG: EventDataIB = + [1685673894.510974][2730:2732] CHIP:DMG: { + [1685673894.511041][2730:2732] CHIP:DMG: EventPath = + [1685673894.511119][2730:2732] CHIP:DMG: { + [1685673894.511194][2730:2732] CHIP:DMG: Endpoint = 0x1, + [1685673894.511274][2730:2732] CHIP:DMG: Cluster = 0x101, + [1685673894.511352][2730:2732] CHIP:DMG: Event = 0x2, + [1685673894.511428][2730:2732] CHIP:DMG: }, + [1685673894.511507][2730:2732] CHIP:DMG: + [1685673894.511578][2730:2732] CHIP:DMG: EventNumber = 0x4, + [1685673894.511654][2730:2732] CHIP:DMG: PriorityLevel = 0x2, + [1685673894.511728][2730:2732] CHIP:DMG: EpochTimestamp = 0x18879f18196, + [1685673894.511802][2730:2732] CHIP:DMG: EventData = + [1685673894.511875][2730:2732] CHIP:DMG: { + [1685673894.511959][2730:2732] CHIP:DMG: 0x0 = 0, + [1685673894.512040][2730:2732] CHIP:DMG: 0x1 = 7, + [1685673894.512120][2730:2732] CHIP:DMG: 0x2 = NULL + [1685673894.512199][2730:2732] CHIP:DMG: 0x3 = 1, + [1685673894.512281][2730:2732] CHIP:DMG: 0x4 = 112233, + [1685673894.512360][2730:2732] CHIP:DMG: 0x5 = NULL + [1685673894.512439][2730:2732] CHIP:DMG: }, + [1685673894.512509][2730:2732] CHIP:DMG: }, + [1685673894.512594][2730:2732] CHIP:DMG: + [1685673894.512653][2730:2732] CHIP:DMG: }, + [1685673894.512754][2730:2732] CHIP:DMG: + [1685673894.512810][2730:2732] CHIP:DMG: EventReportIB = + [1685673894.512894][2730:2732] CHIP:DMG: { + [1685673894.512955][2730:2732] CHIP:DMG: EventDataIB = + [1685673894.513022][2730:2732] CHIP:DMG: { + [1685673894.513089][2730:2732] CHIP:DMG: EventPath = + [1685673894.513161][2730:2732] CHIP:DMG: { + [1685673894.513236][2730:2732] CHIP:DMG: Endpoint = 0x1, + [1685673894.513315][2730:2732] CHIP:DMG: Cluster = 0x101, + [1685673894.513393][2730:2732] CHIP:DMG: Event = 0x2, + [1685673894.513467][2730:2732] CHIP:DMG: }, + [1685673894.513545][2730:2732] CHIP:DMG: + [1685673894.513615][2730:2732] CHIP:DMG: EventNumber = 0x5, + [1685673894.513689][2730:2732] CHIP:DMG: PriorityLevel = 0x2, + [1685673894.513804][2730:2732] CHIP:DMG: EpochTimestamp = 0x18879f20277, + [1685673894.513884][2730:2732] CHIP:DMG: EventData = + [1685673894.513969][2730:2732] CHIP:DMG: { + [1685673894.514047][2730:2732] CHIP:DMG: 0x0 = 1, + [1685673894.514127][2730:2732] CHIP:DMG: 0x1 = 7, + [1685673894.514206][2730:2732] CHIP:DMG: 0x2 = NULL + [1685673894.514287][2730:2732] CHIP:DMG: 0x3 = 1, + [1685673894.514368][2730:2732] CHIP:DMG: 0x4 = 112233, + [1685673894.514447][2730:2732] CHIP:DMG: 0x5 = NULL + [1685673894.514525][2730:2732] CHIP:DMG: }, + [1685673894.514594][2730:2732] CHIP:DMG: }, + [1685673894.514676][2730:2732] CHIP:DMG: + [1685673894.514736][2730:2732] CHIP:DMG: }, + [1685673894.514837][2730:2732] CHIP:DMG: + [1685673894.514894][2730:2732] CHIP:DMG: EventReportIB = + [1685673894.514978][2730:2732] CHIP:DMG: { + [1685673894.515038][2730:2732] CHIP:DMG: EventDataIB = + [1685673894.515106][2730:2732] CHIP:DMG: { + [1685673894.515171][2730:2732] CHIP:DMG: EventPath = + [1685673894.515243][2730:2732] CHIP:DMG: { + [1685673894.515317][2730:2732] CHIP:DMG: Endpoint = 0x1, + [1685673894.515395][2730:2732] CHIP:DMG: Cluster = 0x101, + [1685673894.515468][2730:2732] CHIP:DMG: Event = 0x2, + [1685673894.515534][2730:2732] CHIP:DMG: }, + [1685673894.515609][2730:2732] CHIP:DMG: + [1685673894.515680][2730:2732] CHIP:DMG: EventNumber = 0x6, + [1685673894.515754][2730:2732] CHIP:DMG: PriorityLevel = 0x2, + [1685673894.515827][2730:2732] CHIP:DMG: EpochTimestamp = 0x18879f24737, + [1685673894.515898][2730:2732] CHIP:DMG: EventData = + [1685673894.515970][2730:2732] CHIP:DMG: { + [1685673894.516046][2730:2732] CHIP:DMG: 0x0 = 1, + [1685673894.516124][2730:2732] CHIP:DMG: 0x1 = 7, + [1685673894.516202][2730:2732] CHIP:DMG: 0x2 = NULL + [1685673894.516282][2730:2732] CHIP:DMG: 0x3 = 1, + [1685673894.516362][2730:2732] CHIP:DMG: 0x4 = 112233, + [1685673894.516441][2730:2732] CHIP:DMG: 0x5 = NULL + [1685673894.516519][2730:2732] CHIP:DMG: }, + [1685673894.516589][2730:2732] CHIP:DMG: }, + [1685673894.516672][2730:2732] CHIP:DMG: + [1685673894.516731][2730:2732] CHIP:DMG: }, + [1685673894.516830][2730:2732] CHIP:DMG: + [1685673894.516886][2730:2732] CHIP:DMG: EventReportIB = + [1685673894.516970][2730:2732] CHIP:DMG: { + [1685673894.517030][2730:2732] CHIP:DMG: EventDataIB = + [1685673894.517097][2730:2732] CHIP:DMG: { + [1685673894.517162][2730:2732] CHIP:DMG: EventPath = + [1685673894.517234][2730:2732] CHIP:DMG: { + [1685673894.517308][2730:2732] CHIP:DMG: Endpoint = 0x1, + [1685673894.517386][2730:2732] CHIP:DMG: Cluster = 0x101, + [1685673894.517456][2730:2732] CHIP:DMG: Event = 0x2, + [1685673894.517528][2730:2732] CHIP:DMG: }, + [1685673894.517604][2730:2732] CHIP:DMG: + [1685673894.517674][2730:2732] CHIP:DMG: EventNumber = 0x9, + [1685673894.517747][2730:2732] CHIP:DMG: PriorityLevel = 0x2, + [1685673894.517981][2730:2732] CHIP:DMG: EpochTimestamp = 0x18879f331a0, + [1685673894.518056][2730:2732] CHIP:DMG: EventData = + [1685673894.518127][2730:2732] CHIP:DMG: { + [1685673894.518204][2730:2732] CHIP:DMG: 0x0 = 0, + [1685673894.518284][2730:2732] CHIP:DMG: 0x1 = 4, + [1685673894.518363][2730:2732] CHIP:DMG: 0x2 = NULL + [1685673894.518443][2730:2732] CHIP:DMG: 0x3 = NULL + [1685673894.518535][2730:2732] CHIP:DMG: 0x4 = NULL + [1685673894.518625][2730:2732] CHIP:DMG: 0x5 = NULL + [1685673894.518704][2730:2732] CHIP:DMG: }, + [1685673894.518774][2730:2732] CHIP:DMG: }, + [1685673894.518859][2730:2732] CHIP:DMG: + [1685673894.518918][2730:2732] CHIP:DMG: }, + [1685673894.519023][2730:2732] CHIP:DMG: + [1685673894.519080][2730:2732] CHIP:DMG: EventReportIB = + [1685673894.519167][2730:2732] CHIP:DMG: { + [1685673894.519228][2730:2732] CHIP:DMG: EventDataIB = + [1685673894.519295][2730:2732] CHIP:DMG: { + [1685673894.519361][2730:2732] CHIP:DMG: EventPath = + [1685673894.519434][2730:2732] CHIP:DMG: { + [1685673894.519509][2730:2732] CHIP:DMG: Endpoint = 0x1, + [1685673894.519588][2730:2732] CHIP:DMG: Cluster = 0x101, + [1685673894.519666][2730:2732] CHIP:DMG: Event = 0x2, + [1685673894.519740][2730:2732] CHIP:DMG: }, + [1685673894.519816][2730:2732] CHIP:DMG: + [1685673894.519888][2730:2732] CHIP:DMG: EventNumber = 0x13, + [1685673894.519962][2730:2732] CHIP:DMG: PriorityLevel = 0x2, + [1685673894.520036][2730:2732] CHIP:DMG: EpochTimestamp = 0x18879fd2160, + [1685673894.520108][2730:2732] CHIP:DMG: EventData = + [1685673894.520181][2730:2732] CHIP:DMG: { + [1685673894.520256][2730:2732] CHIP:DMG: 0x0 = 1, + [1685673894.520338][2730:2732] CHIP:DMG: 0x1 = 7, + [1685673894.520420][2730:2732] CHIP:DMG: 0x2 = 1, + [1685673894.520503][2730:2732] CHIP:DMG: 0x3 = 1, + [1685673894.520584][2730:2732] CHIP:DMG: 0x4 = 112233, + [1685673894.520661][2730:2732] CHIP:DMG: 0x5 = [ + [1685673894.520740][2730:2732] CHIP:DMG: + [1685673894.520827][2730:2732] CHIP:DMG: { + [1685673894.520916][2730:2732] CHIP:DMG: 0x0 = 1, + [1685673894.521014][2730:2732] CHIP:DMG: 0x1 = 1, + [1685673894.521114][2730:2732] CHIP:DMG: }, + [1685673894.521199][2730:2732] CHIP:DMG: ], + [1685673894.521280][2730:2732] CHIP:DMG: }, + [1685673894.521350][2730:2732] CHIP:DMG: }, + [1685673894.521437][2730:2732] CHIP:DMG: + [1685673894.521498][2730:2732] CHIP:DMG: }, + [1685673894.521600][2730:2732] CHIP:DMG: + [1685673894.521656][2730:2732] CHIP:DMG: EventReportIB = + [1685673894.521740][2730:2732] CHIP:DMG: { + [1685673894.521832][2730:2732] CHIP:DMG: EventDataIB = + [1685673894.521904][2730:2732] CHIP:DMG: { + [1685673894.521971][2730:2732] CHIP:DMG: EventPath = + [1685673894.522044][2730:2732] CHIP:DMG: { + [1685673894.522119][2730:2732] CHIP:DMG: Endpoint = 0x1, + [1685673894.522198][2730:2732] CHIP:DMG: Cluster = 0x101, + [1685673894.522275][2730:2732] CHIP:DMG: Event = 0x2, + [1685673894.522350][2730:2732] CHIP:DMG: }, + [1685673894.522426][2730:2732] CHIP:DMG: + [1685673894.522496][2730:2732] CHIP:DMG: EventNumber = 0x14, + [1685673894.522570][2730:2732] CHIP:DMG: PriorityLevel = 0x2, + [1685673894.522646][2730:2732] CHIP:DMG: EpochTimestamp = 0x18879fe0bcf, + [1685673894.522718][2730:2732] CHIP:DMG: EventData = + [1685673894.522790][2730:2732] CHIP:DMG: { + [1685673894.522868][2730:2732] CHIP:DMG: 0x0 = 0, + [1685673894.522948][2730:2732] CHIP:DMG: 0x1 = 4, + [1685673894.523026][2730:2732] CHIP:DMG: 0x2 = NULL + [1685673894.523105][2730:2732] CHIP:DMG: 0x3 = NULL + [1685673894.523184][2730:2732] CHIP:DMG: 0x4 = NULL + [1685673894.523262][2730:2732] CHIP:DMG: 0x5 = NULL + [1685673894.523341][2730:2732] CHIP:DMG: }, + [1685673894.523409][2730:2732] CHIP:DMG: }, + [1685673894.523491][2730:2732] CHIP:DMG: + [1685673894.523551][2730:2732] CHIP:DMG: }, + [1685673894.523654][2730:2732] CHIP:DMG: + [1685673894.523710][2730:2732] CHIP:DMG: EventReportIB = + [1685673894.523798][2730:2732] CHIP:DMG: { + [1685673894.523858][2730:2732] CHIP:DMG: EventDataIB = + [1685673894.523925][2730:2732] CHIP:DMG: { + [1685673894.523995][2730:2732] CHIP:DMG: EventPath = + [1685673894.524067][2730:2732] CHIP:DMG: { + [1685673894.524142][2730:2732] CHIP:DMG: Endpoint = 0x1, + [1685673894.524221][2730:2732] CHIP:DMG: Cluster = 0x101, + [1685673894.524298][2730:2732] CHIP:DMG: Event = 0x2, + [1685673894.524372][2730:2732] CHIP:DMG: }, + [1685673894.524449][2730:2732] CHIP:DMG: + [1685673894.524518][2730:2732] CHIP:DMG: EventNumber = 0x15, + [1685673894.524593][2730:2732] CHIP:DMG: PriorityLevel = 0x2, + [1685673894.524666][2730:2732] CHIP:DMG: EpochTimestamp = 0x18879fe0fff, + [1685673894.524739][2730:2732] CHIP:DMG: EventData = + [1685673894.524810][2730:2732] CHIP:DMG: { + [1685673894.524887][2730:2732] CHIP:DMG: 0x0 = 0, + [1685673894.524966][2730:2732] CHIP:DMG: 0x1 = 7, + [1685673894.525048][2730:2732] CHIP:DMG: 0x2 = 1, + [1685673894.525128][2730:2732] CHIP:DMG: 0x3 = 1, + [1685673894.525210][2730:2732] CHIP:DMG: 0x4 = 112233, + [1685673894.525287][2730:2732] CHIP:DMG: 0x5 = [ + [1685673894.525360][2730:2732] CHIP:DMG: + [1685673894.525446][2730:2732] CHIP:DMG: { + [1685673894.525534][2730:2732] CHIP:DMG: 0x0 = 1, + [1685673894.525618][2730:2732] CHIP:DMG: 0x1 = 1, + [1685673894.525707][2730:2732] CHIP:DMG: }, + [1685673894.525808][2730:2732] CHIP:DMG: ], + [1685673894.525888][2730:2732] CHIP:DMG: }, + [1685673894.525958][2730:2732] CHIP:DMG: }, + [1685673894.526045][2730:2732] CHIP:DMG: + [1685673894.526106][2730:2732] CHIP:DMG: }, + [1685673894.526187][2730:2732] CHIP:DMG: + [1685673894.526243][2730:2732] CHIP:DMG: ], + [1685673894.526435][2730:2732] CHIP:DMG: + [1685673894.526494][2730:2732] CHIP:DMG: SuppressResponse = true, + [1685673894.526552][2730:2732] CHIP:DMG: InteractionModelRevision = 1 + [1685673894.526606][2730:2732] CHIP:DMG: } disabled: true - - label: "DUT sends the Unlock Door command to the TH with Invalid PINCode" + - label: + "Step 6: DUT sends the Unlock Door command to the TH with Invalid + PINCode" PICS: DRLK.C.C01.Tx verification: | - ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 12345678 - - Verify "DUT receives Unlock Door command response" on the TH(Lock-app) Log: - - - [1667215267.105416][14571:14571] CHIP:DMG: Handing timed invoke to IM engine: handler 0xaaab1aebee00 exchange 36245r - [1667215267.105521][14571:14571] CHIP:DMG: InvokeRequestMessage = - [1667215267.105585][14571:14571] CHIP:DMG: { - [1667215267.105643][14571:14571] CHIP:DMG: suppressResponse = false, - [1667215267.105711][14571:14571] CHIP:DMG: timedRequest = true, - [1667215267.105773][14571:14571] CHIP:DMG: InvokeRequests = - [1667215267.105851][14571:14571] CHIP:DMG: [ - [1667215267.105914][14571:14571] CHIP:DMG: CommandDataIB = - [1667215267.105992][14571:14571] CHIP:DMG: { - [1667215267.106062][14571:14571] CHIP:DMG: CommandPathIB = - [1667215267.106150][14571:14571] CHIP:DMG: { - [1667215267.106239][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667215267.106328][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667215267.106420][14571:14571] CHIP:DMG: CommandId = 0x1, - [1667215267.106563][14571:14571] CHIP:DMG: }, - [1667215267.106651][14571:14571] CHIP:DMG: - [1667215267.106724][14571:14571] CHIP:DMG: CommandFields = - [1667215267.106795][14571:14571] CHIP:DMG: { - [1667215267.106874][14571:14571] CHIP:DMG: 0x0 = [ - [1667215267.106969][14571:14571] CHIP:DMG: 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - [1667215267.107064][14571:14571] CHIP:DMG: ] (8 bytes) - [1667215267.107155][14571:14571] CHIP:DMG: }, - [1667215267.107238][14571:14571] CHIP:DMG: }, - [1667215267.107316][14571:14571] CHIP:DMG: - [1667215267.107377][14571:14571] CHIP:DMG: ], - [1667215267.107454][14571:14571] CHIP:DMG: - [1667215267.107661][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667215267.107725][14571:14571] CHIP:DMG: }, - [1667215267.107874][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=o - [1667215267.107957][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215267.108027][14571:14571] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0001 - [1667215267.108107][14571:14571] CHIP:ZCL: Received command: UnlockDoor - [1667215267.108207][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=1] - [1667215267.108267][14571:14571] CHIP:ZCL: Found occupied user [endpoint=1,adjustedIndex=0,name="xxx",credentialsCount=1,uniqueId=1934,type=0,credentialRule=0,createdBy=1,lastModifiedBy=1] - [1667215267.108332][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=1,credentialType=1] - [1667215267.108387][14571:14571] CHIP:ZCL: Found occupied credential [endpoint=1,index=1,type=1,dataSize=6,createdBy=1,modifiedBy=1] - [1667215267.108444][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=2] - [1667215267.108498][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=1] - [1667215267.108552][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=3] - [1667215267.108604][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=2] - [1667215267.108657][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=4] - [1667215267.108709][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=3] - [1667215267.108762][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=5] - [1667215267.108814][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=4] - [1667215267.108867][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=6] - [1667215267.108918][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=5] - [1667215267.108971][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=7] - [1667215267.109023][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=6] - [1667215267.109075][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=8] - [1667215267.109127][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=7] - [1667215267.109184][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=9] - [1667215267.109236][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=8] - [1667215267.109290][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=10] - [1667215267.109343][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=9] - [1667215267.109411][14571:14571] CHIP:ZCL: Lock App: specified PIN code was not found in the database, ignoring command to set lock state to "Unlocked" [endpointId=1] - [1667215267.109509][14571:14571] CHIP:DMG: Command handler moving to [ Preparing] - [1667215267.109584][14571:14571] CHIP:DMG: Command handler moving to [AddingComm] - [1667215267.109650][14571:14571] CHIP:DMG: Command handler moving to [AddedComma] - [1667215267.110004][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 2 - [1667215267.110370][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 1 - [1667215267.110517][14571:14571] CHIP:EVL: LogEvent event number: 0x0000000000000017 priority: 2, endpoint id: 0x1 cluster id: 0x0000_0101 event id: 0x3 Sys timestamp: 0x00000000015EA0DF - [1667215267.110636][14571:14571] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1667215267.111150][14571:14571] CHIP:EM: <<< [E:36245r M:261136447 (Ack:106346658)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:09 (IM:InvokeCommandResponse) - [1667215267.111247][14571:14571] CHIP:IN: (S) Sending msg 261136447 on secure session with LSID: 42496 - [1667215267.111913][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:38328 | 261136447 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 60832 / Exchange = 36245] - [1667215267.112011][14571:14571] CHIP:DMG: Header Flags = - [1667215267.112069][14571:14571] CHIP:DMG: { - [1667215267.112156][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667215267.112212][14571:14571] CHIP:DMG: { - [1667215267.112273][14571:14571] CHIP:DMG: AckMsg = 106346658 - [1667215267.112329][14571:14571] CHIP:DMG: NeedsAck = true - [1667215267.112382][14571:14571] CHIP:DMG: } - [1667215267.112454][14571:14571] CHIP:DMG: } - [1667215267.112509][14571:14571] CHIP:DMG: - [1667215267.112578][14571:14571] CHIP:DMG: Encrypted Payload (68 bytes) = - [1667215267.112633][14571:14571] CHIP:DMG: { - [1667215267.112687][14571:14571] CHIP:DMG: data = 00a0ed003fa0900fbf387771b4a3b12d07474edd7655f6bcafc1b4717d2c347729609406630451b06c06d214eda38f9d282ca793f637ad4fedc7049643610beca8622b46 - [1667215267.112747][14571:14571] CHIP:DMG: buffer_ptr = 187651867797616 - [1667215267.112801][14571:14571] CHIP:DMG: } - [1667215267.112853][14571:14571] CHIP:DMG: - [1667215267.112928][14571:14571] CHIP:DMG: Decrypted Payload (34 bytes) = - [1667215267.112984][14571:14571] CHIP:DMG: { - [1667215267.113037][14571:14571] CHIP:DMG: data = 15280036011535013700240001250101012402011835012400011818181824ff0118 - [1667215267.113093][14571:14571] CHIP:DMG: } - [1667215267.113144][14571:14571] CHIP:DMG: - [1667215267.113275][14571:14571] CHIP:DMG: InvokeResponseMessage = - [1667215267.113337][14571:14571] CHIP:DMG: { - [1667215267.113396][14571:14571] CHIP:DMG: suppressResponse = false, - [1667215267.113458][14571:14571] CHIP:DMG: InvokeResponseIBs = - [1667215267.113535][14571:14571] CHIP:DMG: [ - [1667215267.113605][14571:14571] CHIP:DMG: InvokeResponseIB = - [1667215267.113693][14571:14571] CHIP:DMG: { - [1667215267.113764][14571:14571] CHIP:DMG: CommandStatusIB = - [1667215267.113845][14571:14571] CHIP:DMG: { - [1667215267.113929][14571:14571] CHIP:DMG: CommandPathIB = - [1667215267.114014][14571:14571] CHIP:DMG: { - [1667215267.114108][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667215267.114199][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667215267.114288][14571:14571] CHIP:DMG: CommandId = 0x1, - [1667215267.114382][14571:14571] CHIP:DMG: }, - [1667215267.114530][14571:14571] CHIP:DMG: - [1667215267.114619][14571:14571] CHIP:DMG: StatusIB = - [1667215267.114712][14571:14571] CHIP:DMG: { - [1667215267.114804][14571:14571] CHIP:DMG: status = 0x01 (FAILURE), - [1667215267.114888][14571:14571] CHIP:DMG: }, - [1667215267.114973][14571:14571] CHIP:DMG: + ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 12345678 --trace_decode 1 + + Verify TH receives Unlock Door command with FAILURE response on TH(lock-app) log: + + [1685673944.179783][2739:2741] CHIP:DMG: InvokeResponseMessage = + [1685673944.179842][2739:2741] CHIP:DMG: { + [1685673944.179896][2739:2741] CHIP:DMG: suppressResponse = false, + [1685673944.179954][2739:2741] CHIP:DMG: InvokeResponseIBs = + [1685673944.180049][2739:2741] CHIP:DMG: [ + [1685673944.180108][2739:2741] CHIP:DMG: InvokeResponseIB = + [1685673944.180185][2739:2741] CHIP:DMG: { + [1685673944.180267][2739:2741] CHIP:DMG: CommandStatusIB = + [1685673944.180332][2739:2741] CHIP:DMG: { + [1685673944.180420][2739:2741] CHIP:DMG: CommandPathIB = + [1685673944.180497][2739:2741] CHIP:DMG: { + [1685673944.180594][2739:2741] CHIP:DMG: EndpointId = 0x1, + [1685673944.180676][2739:2741] CHIP:DMG: ClusterId = 0x101, + [1685673944.180776][2739:2741] CHIP:DMG: CommandId = 0x1, + [1685673944.180853][2739:2741] CHIP:DMG: }, + [1685673944.180960][2739:2741] CHIP:DMG: + [1685673944.181030][2739:2741] CHIP:DMG: StatusIB = + [1685673944.181105][2739:2741] CHIP:DMG: { + [1685673944.181180][2739:2741] CHIP:DMG: status = 0x01 (FAILURE), + [1685673944.181280][2739:2741] CHIP:DMG: }, + [1685673944.181355][2739:2741] CHIP:DMG: + [1685673944.181446][2739:2741] CHIP:DMG: }, + [1685673944.181524][2739:2741] CHIP:DMG: + [1685673944.181584][2739:2741] CHIP:DMG: }, + [1685673944.181686][2739:2741] CHIP:DMG: + [1685673944.181743][2739:2741] CHIP:DMG: ], + [1685673944.181884][2739:2741] CHIP:DMG: + [1685673944.181943][2739:2741] CHIP:DMG: InteractionModelRevision = 1 + [1685673944.181998][2739:2741] CHIP:DMG: }, disabled: true - label: - "TH will initiate LockOperationError event by causing Lock error using - invalid PIN" + "Step 7: TH will initiate LockOperationError event by causing Lock + error using invalid PIN" PICS: DRLK.C.E03 verification: | - ./chip-tool doorlock read-event lock-operation-error 1 1 - - Verify "DUT receives LockOperationError event response" on the TH(Lock-app) Log: - - [1667215309.086203][14571:14571] CHIP:EM: Handling via exchange: 32821r, Delegate: 0xaaaae921d988 - [1667215309.086300][14571:14571] CHIP:IM: Received Read request - [1667215309.086530][14571:14571] CHIP:DMG: ReadRequestMessage = - [1667215309.086599][14571:14571] CHIP:DMG: { - [1667215309.086653][14571:14571] CHIP:DMG: EventPathIBs = - [1667215309.086718][14571:14571] CHIP:DMG: [ - [1667215309.086779][14571:14571] CHIP:DMG: EventPath = - [1667215309.086864][14571:14571] CHIP:DMG: { - [1667215309.086936][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215309.087016][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215309.087097][14571:14571] CHIP:DMG: Event = 0x3, - [1667215309.087180][14571:14571] CHIP:DMG: }, - [1667215309.087257][14571:14571] CHIP:DMG: - [1667215309.087318][14571:14571] CHIP:DMG: ], - [1667215309.087388][14571:14571] CHIP:DMG: - [1667215309.087451][14571:14571] CHIP:DMG: isFabricFiltered = true, - [1667215309.087517][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667215309.087577][14571:14571] CHIP:DMG: }, - [1667215309.087734][14571:14571] CHIP:DMG: IM RH moving to [GeneratingReports] - [1667215309.087947][14571:14571] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1667215309.088037][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215309.088115][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215309.089673][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215309.089742][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215309.089897][14571:14571] CHIP:DMG: Fetched 1 events - [1667215309.089966][14571:14571] CHIP:DMG: Sending report (payload has 75 bytes)... - [1667215309.090564][14571:14571] CHIP:EM: <<< [E:32821r M:164504730 (Ack:106105423)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:05 (IM:ReportData) - [1667215309.090670][14571:14571] CHIP:IN: (S) Sending msg 164504730 on secure session with LSID: 42497 - [1667215309.091357][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:48090 | 164504730 | [Interaction Model (1) / Report Data (0x05) / Session = 44278 / Exchange = 32821] - [1667215309.091453][14571:14571] CHIP:DMG: Header Flags = - [1667215309.091511][14571:14571] CHIP:DMG: { - [1667215309.091596][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667215309.091652][14571:14571] CHIP:DMG: { - [1667215309.091712][14571:14571] CHIP:DMG: AckMsg = 106105423 - [1667215309.091769][14571:14571] CHIP:DMG: NeedsAck = true - [1667215309.091822][14571:14571] CHIP:DMG: } - [1667215309.091894][14571:14571] CHIP:DMG: } - [1667215309.091949][14571:14571] CHIP:DMG: - [1667215309.092018][14571:14571] CHIP:DMG: Encrypted Payload (109 bytes) = - [1667215309.092074][14571:14571] CHIP:DMG: { - [1667215309.092128][14571:14571] CHIP:DMG: data = 00f6ac009a24ce099bf4d1d908cacfd6383bc919db87a589176cb5f55f70af236c1ee3423bddc87f2b0421e46a7e0da143e119f8c05bbc8bc3295a3c7dd9bf4bd7e7e3f9461f80fa69109faef6b1e36d5434d727b3b808c03f478b60c936def5354f2034a1854c9f32054eb67d - [1667215309.092191][14571:14571] CHIP:DMG: buffer_ptr = 187651867797632 - [1667215309.092244][14571:14571] CHIP:DMG: } - [1667215309.092296][14571:14571] CHIP:DMG: - [1667215309.092371][14571:14571] CHIP:DMG: Decrypted Payload (75 bytes) = - [1667215309.092428][14571:14571] CHIP:DMG: { - [1667215309.092482][14571:14571] CHIP:DMG: data = 153602153501370024010125020101240303182401172402022604dfa05e013507240001240107240201240300240401260569b60100360615240001240100181818181818290424ff0118 - [1667215309.092539][14571:14571] CHIP:DMG: } - [1667215309.092591][14571:14571] CHIP:DMG: - [1667215309.092906][14571:14571] CHIP:DMG: ReportDataMessage = - [1667215309.092975][14571:14571] CHIP:DMG: { - [1667215309.093029][14571:14571] CHIP:DMG: EventReportIBs = - [1667215309.093119][14571:14571] CHIP:DMG: [ - [1667215309.093181][14571:14571] CHIP:DMG: EventReportIB = - [1667215309.093285][14571:14571] CHIP:DMG: { - [1667215309.093366][14571:14571] CHIP:DMG: EventDataIB = - [1667215309.093454][14571:14571] CHIP:DMG: { - [1667215309.093539][14571:14571] CHIP:DMG: EventPath = - [1667215309.093616][14571:14571] CHIP:DMG: { - [1667215309.093709][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215309.093802][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215309.093891][14571:14571] CHIP:DMG: Event = 0x3, - [1667215309.093982][14571:14571] CHIP:DMG: }, - [1667215309.094079][14571:14571] CHIP:DMG: - [1667215309.094168][14571:14571] CHIP:DMG: EventNumber = 0x17, - [1667215309.094262][14571:14571] CHIP:DMG: PriorityLevel = 0x2, - [1667215309.094355][14571:14571] CHIP:DMG: SystemTimestamp = 0x15ea0df, - [1667215309.094438][14571:14571] CHIP:DMG: EventData = - [1667215309.094565][14571:14571] CHIP:DMG: { - [1667215309.094661][14571:14571] CHIP:DMG: 0x0 = 1, - [1667215309.094754][14571:14571] CHIP:DMG: 0x1 = 7, - [1667215309.094853][14571:14571] CHIP:DMG: 0x2 = 1, - [1667215309.094943][14571:14571] CHIP:DMG: 0x3 = 0, - [1667215309.095191][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215309.095293][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215309.095386][14571:14571] CHIP:DMG: 0x6 = [ - [1667215309.095482][14571:14571] CHIP:DMG: - [1667215309.095586][14571:14571] CHIP:DMG: { - [1667215309.095674][14571:14571] CHIP:DMG: 0x0 = 1, - [1667215309.095799][14571:14571] CHIP:DMG: 0x1 = 0, - [1667215309.095908][14571:14571] CHIP:DMG: }, - [1667215309.096010][14571:14571] CHIP:DMG: ], - [1667215309.096097][14571:14571] CHIP:DMG: }, - [1667215309.096177][14571:14571] CHIP:DMG: }, - [1667215309.096284][14571:14571] CHIP:DMG: - [1667215309.096355][14571:14571] CHIP:DMG: }, + ./chip-tool doorlock read-event lock-operation-error 1 1 --trace_decode 1 + + Verify LockOperationError event response on TH(Lock-app) log: + + [1685673961.918640][2743:2745] CHIP:DMG: ReportDataMessage = + [1685673961.918701][2743:2745] CHIP:DMG: { + [1685673961.918750][2743:2745] CHIP:DMG: EventReportIBs = + [1685673961.918831][2743:2745] CHIP:DMG: [ + [1685673961.918888][2743:2745] CHIP:DMG: EventReportIB = + [1685673961.918974][2743:2745] CHIP:DMG: { + [1685673961.919034][2743:2745] CHIP:DMG: EventDataIB = + [1685673961.919105][2743:2745] CHIP:DMG: { + [1685673961.919172][2743:2745] CHIP:DMG: EventPath = + [1685673961.919246][2743:2745] CHIP:DMG: { + [1685673961.919321][2743:2745] CHIP:DMG: Endpoint = 0x1, + [1685673961.919401][2743:2745] CHIP:DMG: Cluster = 0x101, + [1685673961.919479][2743:2745] CHIP:DMG: Event = 0x3, + [1685673961.919555][2743:2745] CHIP:DMG: }, + [1685673961.919634][2743:2745] CHIP:DMG: + [1685673961.919705][2743:2745] CHIP:DMG: EventNumber = 0x16, + [1685673961.919780][2743:2745] CHIP:DMG: PriorityLevel = 0x2, + [1685673961.919856][2743:2745] CHIP:DMG: EpochTimestamp = 0x18879ff2466, + [1685673961.919931][2743:2745] CHIP:DMG: EventData = + [1685673961.920006][2743:2745] CHIP:DMG: { + [1685673961.920084][2743:2745] CHIP:DMG: 0x0 = 1, + [1685673961.920166][2743:2745] CHIP:DMG: 0x1 = 7, + [1685673961.920241][2743:2745] CHIP:DMG: 0x2 = 1, + [1685673961.920335][2743:2745] CHIP:DMG: 0x3 = NULL + [1685673961.920416][2743:2745] CHIP:DMG: 0x4 = 1, + [1685673961.920499][2743:2745] CHIP:DMG: 0x5 = 112233, + [1685673961.920580][2743:2745] CHIP:DMG: 0x6 = NULL + [1685673961.920659][2743:2745] CHIP:DMG: }, + [1685673961.920730][2743:2745] CHIP:DMG: }, + [1685673961.920815][2743:2745] CHIP:DMG: + [1685673961.920878][2743:2745] CHIP:DMG: }, + [1685673961.920958][2743:2745] CHIP:DMG: + [1685673961.921013][2743:2745] CHIP:DMG: ], + [1685673961.921092][2743:2745] CHIP:DMG: + [1685673961.921150][2743:2745] CHIP:DMG: SuppressResponse = true, + [1685673961.921209][2743:2745] CHIP:DMG: InteractionModelRevision = 1 + [1685673961.921263][2743:2745] CHIP:DMG: } disabled: true - - label: "DUT sends Set User command to TH" + - label: "Step 8: DUT sends Set User command to TH" PICS: DRLK.C.F08 && DRLK.C.C1a.Tx verification: | - ./chip-tool doorlock set-user 0 3 xxx 6452 1 0 0 1 1 --timedInteractionTimeoutMs 1000 - - Verify "DUT receives Set User command response" on the TH(Lock-app) Log: - - [1667215343.626313][14571:14571] CHIP:DMG: Handing timed invoke to IM engine: handler 0xaaab1aea1e50 exchange 62569r - [1667215343.626425][14571:14571] CHIP:DMG: InvokeRequestMessage = - [1667215343.626536][14571:14571] CHIP:DMG: { - [1667215343.626597][14571:14571] CHIP:DMG: suppressResponse = false, - [1667215343.626665][14571:14571] CHIP:DMG: timedRequest = true, - [1667215343.626726][14571:14571] CHIP:DMG: InvokeRequests = - [1667215343.626813][14571:14571] CHIP:DMG: [ - [1667215343.626876][14571:14571] CHIP:DMG: CommandDataIB = - [1667215343.626961][14571:14571] CHIP:DMG: { - [1667215343.627033][14571:14571] CHIP:DMG: CommandPathIB = - [1667215343.627120][14571:14571] CHIP:DMG: { - [1667215343.627210][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667215343.627297][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667215343.627381][14571:14571] CHIP:DMG: CommandId = 0x1a, - [1667215343.627460][14571:14571] CHIP:DMG: }, - [1667215343.627550][14571:14571] CHIP:DMG: - [1667215343.627623][14571:14571] CHIP:DMG: CommandFields = - [1667215343.627709][14571:14571] CHIP:DMG: { - [1667215343.627800][14571:14571] CHIP:DMG: 0x0 = 0, - [1667215343.627893][14571:14571] CHIP:DMG: 0x1 = 3, - [1667215343.627983][14571:14571] CHIP:DMG: 0x2 = "xxx" (3 chars), - [1667215343.628071][14571:14571] CHIP:DMG: 0x3 = 6452, - [1667215343.628157][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215343.628242][14571:14571] CHIP:DMG: 0x5 = 0, - [1667215343.628327][14571:14571] CHIP:DMG: 0x6 = 0, - [1667215343.628410][14571:14571] CHIP:DMG: }, - [1667215343.628493][14571:14571] CHIP:DMG: }, - [1667215343.628584][14571:14571] CHIP:DMG: - [1667215343.628646][14571:14571] CHIP:DMG: ], - [1667215343.628730][14571:14571] CHIP:DMG: - [1667215343.628792][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667215343.628851][14571:14571] CHIP:DMG: }, - [1667215343.629010][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=a - [1667215343.629090][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215343.629160][14571:14571] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_001A - [1667215343.629273][14571:14571] CHIP:ZCL: [SetUser] Incoming command [endpointId=1,userIndex=3] - [1667215343.629371][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=3] - [1667215343.629429][14571:14571] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=2] - [1667215343.629487][14571:14571] CHIP:ZCL: Lock App: LockEndpoint::SetUser [endpoint=1,userIndex=3,creator=1,modifier=1,userName="xxx",uniqueId=1934,userStatus=1,userType=0,credentialRule=0,credentials=(nil),totalCredentials=0] - [1667215343.629553][14571:14571] CHIP:ZCL: Successfully set the user [mEndpointId=1,index=3,adjustedIndex=2] - [1667215343.629608][14571:14571] CHIP:ZCL: [createUser] User created [endpointId=1,creatorFabricId=1,userIndex=3,userName="xxx",userUniqueId=0x1934,userStatus=1,userType=0,credentialRule=0,totalCredentials=0] - [1667215343.629955][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 2 - [1667215343.630156][14571:14571] CHIP:EVL: Copy Event to next buffer with priority 1 - [1667215343.630266][14571:14571] CHIP:EVL: LogEvent event number: 0x0000000000000018 priority: 1, endpoint id: 0x1 cluster id: 0x0000_0101 event id: 0x4 Sys timestamp: 0x00000000015FCBC7 - [1667215343.630337][14571:14571] CHIP:ZCL: [RemoteLockUserChange] Sent lock user change event [endpointId=1,eventNumber=24,dataType=2,operation=0,nodeId=112233,fabricIndex=1] - [1667215343.630424][14571:14571] CHIP:DMG: Command handler moving to [ Preparing] - [1667215343.630541][14571:14571] CHIP:DMG: Command handler moving to [AddingComm] - [1667215343.630610][14571:14571] CHIP:DMG: Command handler moving to [AddedComma] - [1667215343.630722][14571:14571] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1667215343.631234][14571:14571] CHIP:EM: <<< [E:62569r M:236898903 (Ack:33683114)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:09 (IM:InvokeCommandResponse) - [1667215343.631332][14571:14571] CHIP:IN: (S) Sending msg 236898903 on secure session with LSID: 42498 - [1667215343.631985][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:47391 | 236898903 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 1652 / Exchange = 62569] - [1667215343.632081][14571:14571] CHIP:DMG: Header Flags = - [1667215343.632138][14571:14571] CHIP:DMG: { - [1667215343.632223][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667215343.632280][14571:14571] CHIP:DMG: { - [1667215343.632340][14571:14571] CHIP:DMG: AckMsg = 33683114 - [1667215343.632395][14571:14571] CHIP:DMG: NeedsAck = true - [1667215343.632449][14571:14571] CHIP:DMG: } - [1667215343.632519][14571:14571] CHIP:DMG: } - [1667215343.632575][14571:14571] CHIP:DMG: - [1667215343.632644][14571:14571] CHIP:DMG: Encrypted Payload (68 bytes) = - [1667215343.632698][14571:14571] CHIP:DMG: { - [1667215343.632752][14571:14571] CHIP:DMG: data = 0074060057ca1e0ef633c3d81bcd21e8b41f1b6236f8d3a3d6508aa4efa6d6b0bf5a61b6a5645308a5d884cb42bfa2adddae75f427ce0be23cad981c074f53094a76c515 - [1667215343.632811][14571:14571] CHIP:DMG: buffer_ptr = 187651867797088 - [1667215343.633058][14571:14571] CHIP:DMG: } - [1667215343.633112][14571:14571] CHIP:DMG: - [1667215343.633192][14571:14571] CHIP:DMG: Decrypted Payload (34 bytes) = - [1667215343.633249][14571:14571] CHIP:DMG: { - [1667215343.633304][14571:14571] CHIP:DMG: data = 152800360115350137002400012501010124021a1835012400001818181824ff0118 - [1667215343.633360][14571:14571] CHIP:DMG: } - [1667215343.633412][14571:14571] CHIP:DMG: - [1667215343.633543][14571:14571] CHIP:DMG: InvokeResponseMessage = - [1667215343.634057][14571:14571] CHIP:DMG: { - [1667215343.634124][14571:14571] CHIP:DMG: suppressResponse = false, - [1667215343.634188][14571:14571] CHIP:DMG: InvokeResponseIBs = - [1667215343.634413][14571:14571] CHIP:DMG: [ - [1667215343.634525][14571:14571] CHIP:DMG: InvokeResponseIB = - [1667215343.634618][14571:14571] CHIP:DMG: { - [1667215343.634690][14571:14571] CHIP:DMG: CommandStatusIB = - [1667215343.634777][14571:14571] CHIP:DMG: { - [1667215343.634861][14571:14571] CHIP:DMG: CommandPathIB = - [1667215343.634947][14571:14571] CHIP:DMG: { - [1667215343.635041][14571:14571] CHIP:DMG: EndpointId = 0x1, - [1667215343.635139][14571:14571] CHIP:DMG: ClusterId = 0x101, - [1667215343.635235][14571:14571] CHIP:DMG: CommandId = 0x1a, - [1667215343.635318][14571:14571] CHIP:DMG: }, - [1667215343.635420][14571:14571] CHIP:DMG: - [1667215343.635498][14571:14571] CHIP:DMG: StatusIB = - [1667215343.635583][14571:14571] CHIP:DMG: { - [1667215343.635678][14571:14571] CHIP:DMG: status = 0x00 (SUCCESS), - [1667215343.635761][14571:14571] CHIP:DMG: }, - [1667215343.635853][14571:14571] CHIP:DMG: - [1667215343.635930][14571:14571] CHIP:DMG: }, - [1667215343.636023][14571:14571] CHIP:DMG: - [1667215343.636330][14571:14571] CHIP:DMG: }, + ./chip-tool doorlock set-user 0 3 xxx 6452 1 0 0 1 1 --timedInteractionTimeoutMs 1000 --trace_decode 1 + + Verify TH receives Set User command with SUCCESS response on TH(lock-app) log: + + [1685673982.319643][2748:2750] CHIP:DMG: InvokeResponseMessage = + [1685673982.319698][2748:2750] CHIP:DMG: { + [1685673982.319752][2748:2750] CHIP:DMG: suppressResponse = false, + [1685673982.319808][2748:2750] CHIP:DMG: InvokeResponseIBs = + [1685673982.319881][2748:2750] CHIP:DMG: [ + [1685673982.319938][2748:2750] CHIP:DMG: InvokeResponseIB = + [1685673982.320016][2748:2750] CHIP:DMG: { + [1685673982.320072][2748:2750] CHIP:DMG: CommandStatusIB = + [1685673982.320148][2748:2750] CHIP:DMG: { + [1685673982.320211][2748:2750] CHIP:DMG: CommandPathIB = + [1685673982.320285][2748:2750] CHIP:DMG: { + [1685673982.320361][2748:2750] CHIP:DMG: EndpointId = 0x1, + [1685673982.320441][2748:2750] CHIP:DMG: ClusterId = 0x101, + [1685673982.320519][2748:2750] CHIP:DMG: CommandId = 0x1a, + [1685673982.320613][2748:2750] CHIP:DMG: }, + [1685673982.320719][2748:2750] CHIP:DMG: + [1685673982.320789][2748:2750] CHIP:DMG: StatusIB = + [1685673982.320863][2748:2750] CHIP:DMG: { + [1685673982.320937][2748:2750] CHIP:DMG: status = 0x00 (SUCCESS), + [1685673982.321009][2748:2750] CHIP:DMG: }, + [1685673982.321084][2748:2750] CHIP:DMG: + [1685673982.321153][2748:2750] CHIP:DMG: }, + [1685673982.321228][2748:2750] CHIP:DMG: + [1685673982.321291][2748:2750] CHIP:DMG: }, + [1685673982.321361][2748:2750] CHIP:DMG: + [1685673982.321417][2748:2750] CHIP:DMG: ], + [1685673982.321486][2748:2750] CHIP:DMG: + [1685673982.321542][2748:2750] CHIP:DMG: InteractionModelRevision = 1 + [1685673982.321598][2748:2750] CHIP:DMG: }, disabled: true - label: - "TH initiates LockUserChange event by adding the UserIndex using Set - User command" + "Step 9: TH initiates LockUserChange event by adding the UserIndex + using Set User command" PICS: DRLK.C.E04 verification: | - ./chip-tool doorlock read-event lock-user-change 1 1 - - Verify "DUT receives read-event lock-user-change response" on the TH(Lock-app) Log: + ./chip-tool doorlock read-event lock-user-change 1 1 --trace_decode 1 + + Verify LockUserChange event response on TH(Lock-app) log: + + [1685674004.671171][2752:2754] CHIP:DMG: ReportDataMessage = + [1685674004.671235][2752:2754] CHIP:DMG: { + [1685674004.671283][2752:2754] CHIP:DMG: EventReportIBs = + [1685674004.671364][2752:2754] CHIP:DMG: [ + [1685674004.671421][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.671517][2752:2754] CHIP:DMG: { + [1685674004.671578][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.671654][2752:2754] CHIP:DMG: { + [1685674004.671722][2752:2754] CHIP:DMG: EventPath = + [1685674004.671799][2752:2754] CHIP:DMG: { + [1685674004.671876][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.671956][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.672035][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.672111][2752:2754] CHIP:DMG: }, + [1685674004.672191][2752:2754] CHIP:DMG: + [1685674004.672262][2752:2754] CHIP:DMG: EventNumber = 0x8, + [1685674004.672336][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.672412][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879f2ec55, + [1685674004.672486][2752:2754] CHIP:DMG: EventData = + [1685674004.672559][2752:2754] CHIP:DMG: { + [1685674004.672637][2752:2754] CHIP:DMG: 0x0 = 3, + [1685674004.672718][2752:2754] CHIP:DMG: 0x1 = 0, + [1685674004.672800][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.672880][2752:2754] CHIP:DMG: 0x3 = 1, + [1685674004.672961][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.673043][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.673125][2752:2754] CHIP:DMG: 0x6 = 1, + [1685674004.673204][2752:2754] CHIP:DMG: }, + [1685674004.673274][2752:2754] CHIP:DMG: }, + [1685674004.673361][2752:2754] CHIP:DMG: + [1685674004.673420][2752:2754] CHIP:DMG: }, + [1685674004.673523][2752:2754] CHIP:DMG: + [1685674004.673580][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.673667][2752:2754] CHIP:DMG: { + [1685674004.673729][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.673851][2752:2754] CHIP:DMG: { + [1685674004.673925][2752:2754] CHIP:DMG: EventPath = + [1685674004.673995][2752:2754] CHIP:DMG: { + [1685674004.674069][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.674149][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.674229][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.674304][2752:2754] CHIP:DMG: }, + [1685674004.674377][2752:2754] CHIP:DMG: + [1685674004.674448][2752:2754] CHIP:DMG: EventNumber = 0xa, + [1685674004.674523][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.674593][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879f3ba0b, + [1685674004.674665][2752:2754] CHIP:DMG: EventData = + [1685674004.674738][2752:2754] CHIP:DMG: { + [1685674004.674813][2752:2754] CHIP:DMG: 0x0 = 3, + [1685674004.674894][2752:2754] CHIP:DMG: 0x1 = 1, + [1685674004.674974][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.675054][2752:2754] CHIP:DMG: 0x3 = 1, + [1685674004.675134][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.675215][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.675293][2752:2754] CHIP:DMG: 0x6 = 1, + [1685674004.675371][2752:2754] CHIP:DMG: }, + [1685674004.675439][2752:2754] CHIP:DMG: }, + [1685674004.675521][2752:2754] CHIP:DMG: + [1685674004.675580][2752:2754] CHIP:DMG: }, + [1685674004.675683][2752:2754] CHIP:DMG: + [1685674004.675739][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.675826][2752:2754] CHIP:DMG: { + [1685674004.675887][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.675955][2752:2754] CHIP:DMG: { + [1685674004.676021][2752:2754] CHIP:DMG: EventPath = + [1685674004.676094][2752:2754] CHIP:DMG: { + [1685674004.676168][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.676247][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.676324][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.676398][2752:2754] CHIP:DMG: }, + [1685674004.676474][2752:2754] CHIP:DMG: + [1685674004.676545][2752:2754] CHIP:DMG: EventNumber = 0xb, + [1685674004.676620][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.676686][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879f3faa3, + [1685674004.676750][2752:2754] CHIP:DMG: EventData = + [1685674004.676824][2752:2754] CHIP:DMG: { + [1685674004.676898][2752:2754] CHIP:DMG: 0x0 = 4, + [1685674004.676979][2752:2754] CHIP:DMG: 0x1 = 0, + [1685674004.677059][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.677140][2752:2754] CHIP:DMG: 0x3 = 1, + [1685674004.677220][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.677299][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.677379][2752:2754] CHIP:DMG: 0x6 = 1, + [1685674004.677457][2752:2754] CHIP:DMG: }, + [1685674004.677526][2752:2754] CHIP:DMG: }, + [1685674004.677611][2752:2754] CHIP:DMG: + [1685674004.677671][2752:2754] CHIP:DMG: }, + [1685674004.677808][2752:2754] CHIP:DMG: + [1685674004.677872][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.677957][2752:2754] CHIP:DMG: { + [1685674004.678017][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.678085][2752:2754] CHIP:DMG: { + [1685674004.678151][2752:2754] CHIP:DMG: EventPath = + [1685674004.678225][2752:2754] CHIP:DMG: { + [1685674004.678299][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.678379][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.678458][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.678532][2752:2754] CHIP:DMG: }, + [1685674004.678610][2752:2754] CHIP:DMG: + [1685674004.678681][2752:2754] CHIP:DMG: EventNumber = 0xc, + [1685674004.678755][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.678829][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879f48d3b, + [1685674004.678900][2752:2754] CHIP:DMG: EventData = + [1685674004.678972][2752:2754] CHIP:DMG: { + [1685674004.679047][2752:2754] CHIP:DMG: 0x0 = 4, + [1685674004.679129][2752:2754] CHIP:DMG: 0x1 = 1, + [1685674004.679210][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.679290][2752:2754] CHIP:DMG: 0x3 = 1, + [1685674004.679371][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.679452][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.679532][2752:2754] CHIP:DMG: 0x6 = 1, + [1685674004.679610][2752:2754] CHIP:DMG: }, + [1685674004.679681][2752:2754] CHIP:DMG: }, + [1685674004.679763][2752:2754] CHIP:DMG: + [1685674004.679823][2752:2754] CHIP:DMG: }, + [1685674004.679926][2752:2754] CHIP:DMG: + [1685674004.679982][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.680067][2752:2754] CHIP:DMG: { + [1685674004.680127][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.680197][2752:2754] CHIP:DMG: { + [1685674004.680264][2752:2754] CHIP:DMG: EventPath = + [1685674004.680336][2752:2754] CHIP:DMG: { + [1685674004.680411][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.680489][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.680568][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.680642][2752:2754] CHIP:DMG: }, + [1685674004.680720][2752:2754] CHIP:DMG: + [1685674004.680788][2752:2754] CHIP:DMG: EventNumber = 0xd, + [1685674004.680862][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.680936][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879f5cf3e, + [1685674004.681008][2752:2754] CHIP:DMG: EventData = + [1685674004.681081][2752:2754] CHIP:DMG: { + [1685674004.681158][2752:2754] CHIP:DMG: 0x0 = 2, + [1685674004.681257][2752:2754] CHIP:DMG: 0x1 = 0, + [1685674004.681344][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.681424][2752:2754] CHIP:DMG: 0x3 = 2, + [1685674004.681505][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.681585][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.681664][2752:2754] CHIP:DMG: 0x6 = 2, + [1685674004.681742][2752:2754] CHIP:DMG: }, + [1685674004.681887][2752:2754] CHIP:DMG: }, + [1685674004.681980][2752:2754] CHIP:DMG: + [1685674004.682039][2752:2754] CHIP:DMG: }, + [1685674004.682140][2752:2754] CHIP:DMG: + [1685674004.682196][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.682281][2752:2754] CHIP:DMG: { + [1685674004.682341][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.682407][2752:2754] CHIP:DMG: { + [1685674004.682470][2752:2754] CHIP:DMG: EventPath = + [1685674004.682543][2752:2754] CHIP:DMG: { + [1685674004.682617][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.682697][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.682773][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.682847][2752:2754] CHIP:DMG: }, + [1685674004.682923][2752:2754] CHIP:DMG: + [1685674004.682994][2752:2754] CHIP:DMG: EventNumber = 0xe, + [1685674004.683068][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.683142][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879f67e3f, + [1685674004.683213][2752:2754] CHIP:DMG: EventData = + [1685674004.683287][2752:2754] CHIP:DMG: { + [1685674004.683359][2752:2754] CHIP:DMG: 0x0 = 2, + [1685674004.683438][2752:2754] CHIP:DMG: 0x1 = 1, + [1685674004.683518][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.683599][2752:2754] CHIP:DMG: 0x3 = 2, + [1685674004.683680][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.683761][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.683842][2752:2754] CHIP:DMG: 0x6 = 2, + [1685674004.683920][2752:2754] CHIP:DMG: }, + [1685674004.683990][2752:2754] CHIP:DMG: }, + [1685674004.684075][2752:2754] CHIP:DMG: + [1685674004.684134][2752:2754] CHIP:DMG: }, + [1685674004.684235][2752:2754] CHIP:DMG: + [1685674004.684291][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.684376][2752:2754] CHIP:DMG: { + [1685674004.684436][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.684504][2752:2754] CHIP:DMG: { + [1685674004.684570][2752:2754] CHIP:DMG: EventPath = + [1685674004.684641][2752:2754] CHIP:DMG: { + [1685674004.684716][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.684791][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.684868][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.684942][2752:2754] CHIP:DMG: }, + [1685674004.685026][2752:2754] CHIP:DMG: + [1685674004.685096][2752:2754] CHIP:DMG: EventNumber = 0xf, + [1685674004.685171][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.685246][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879f7dd82, + [1685674004.685317][2752:2754] CHIP:DMG: EventData = + [1685674004.685391][2752:2754] CHIP:DMG: { + [1685674004.685467][2752:2754] CHIP:DMG: 0x0 = 2, + [1685674004.685548][2752:2754] CHIP:DMG: 0x1 = 1, + [1685674004.685630][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.685710][2752:2754] CHIP:DMG: 0x3 = 1, + [1685674004.685831][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.685913][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.685991][2752:2754] CHIP:DMG: 0x6 = 1, + [1685674004.686069][2752:2754] CHIP:DMG: }, + [1685674004.686140][2752:2754] CHIP:DMG: }, + [1685674004.686222][2752:2754] CHIP:DMG: + [1685674004.686281][2752:2754] CHIP:DMG: }, + [1685674004.686383][2752:2754] CHIP:DMG: + [1685674004.686439][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.686524][2752:2754] CHIP:DMG: { + [1685674004.686585][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.686652][2752:2754] CHIP:DMG: { + [1685674004.686718][2752:2754] CHIP:DMG: EventPath = + [1685674004.686791][2752:2754] CHIP:DMG: { + [1685674004.686865][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.686945][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.687023][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.687097][2752:2754] CHIP:DMG: }, + [1685674004.687174][2752:2754] CHIP:DMG: + [1685674004.687241][2752:2754] CHIP:DMG: EventNumber = 0x11, + [1685674004.687315][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.687388][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879fc602b, + [1685674004.687459][2752:2754] CHIP:DMG: EventData = + [1685674004.687531][2752:2754] CHIP:DMG: { + [1685674004.687607][2752:2754] CHIP:DMG: 0x0 = 2, + [1685674004.687687][2752:2754] CHIP:DMG: 0x1 = 0, + [1685674004.687767][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.687848][2752:2754] CHIP:DMG: 0x3 = 1, + [1685674004.687928][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.688008][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.688089][2752:2754] CHIP:DMG: 0x6 = 1, + [1685674004.688162][2752:2754] CHIP:DMG: }, + [1685674004.688232][2752:2754] CHIP:DMG: }, + [1685674004.688316][2752:2754] CHIP:DMG: + [1685674004.688375][2752:2754] CHIP:DMG: }, + [1685674004.688477][2752:2754] CHIP:DMG: + [1685674004.688533][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.688617][2752:2754] CHIP:DMG: { + [1685674004.688677][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.688745][2752:2754] CHIP:DMG: { + [1685674004.688811][2752:2754] CHIP:DMG: EventPath = + [1685674004.688880][2752:2754] CHIP:DMG: { + [1685674004.688954][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.689033][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.689111][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.689185][2752:2754] CHIP:DMG: }, + [1685674004.689262][2752:2754] CHIP:DMG: + [1685674004.689332][2752:2754] CHIP:DMG: EventNumber = 0x12, + [1685674004.689403][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.689473][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879fcb681, + [1685674004.689545][2752:2754] CHIP:DMG: EventData = + [1685674004.689617][2752:2754] CHIP:DMG: { + [1685674004.689693][2752:2754] CHIP:DMG: 0x0 = 6, + [1685674004.689882][2752:2754] CHIP:DMG: 0x1 = 0, + [1685674004.689965][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.690046][2752:2754] CHIP:DMG: 0x3 = 1, + [1685674004.690126][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.690205][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.690285][2752:2754] CHIP:DMG: 0x6 = 1, + [1685674004.690362][2752:2754] CHIP:DMG: }, + [1685674004.690433][2752:2754] CHIP:DMG: }, + [1685674004.690515][2752:2754] CHIP:DMG: + [1685674004.690574][2752:2754] CHIP:DMG: }, + [1685674004.690677][2752:2754] CHIP:DMG: + [1685674004.690733][2752:2754] CHIP:DMG: EventReportIB = + [1685674004.690819][2752:2754] CHIP:DMG: { + [1685674004.690879][2752:2754] CHIP:DMG: EventDataIB = + [1685674004.690948][2752:2754] CHIP:DMG: { + [1685674004.691015][2752:2754] CHIP:DMG: EventPath = + [1685674004.691095][2752:2754] CHIP:DMG: { + [1685674004.691171][2752:2754] CHIP:DMG: Endpoint = 0x1, + [1685674004.691249][2752:2754] CHIP:DMG: Cluster = 0x101, + [1685674004.691328][2752:2754] CHIP:DMG: Event = 0x4, + [1685674004.691403][2752:2754] CHIP:DMG: }, + [1685674004.691481][2752:2754] CHIP:DMG: + [1685674004.691551][2752:2754] CHIP:DMG: EventNumber = 0x17, + [1685674004.691626][2752:2754] CHIP:DMG: PriorityLevel = 0x1, + [1685674004.691701][2752:2754] CHIP:DMG: EpochTimestamp = 0x18879ffb961, + [1685674004.691772][2752:2754] CHIP:DMG: EventData = + [1685674004.691845][2752:2754] CHIP:DMG: { + [1685674004.691921][2752:2754] CHIP:DMG: 0x0 = 2, + [1685674004.692002][2752:2754] CHIP:DMG: 0x1 = 0, + [1685674004.692082][2752:2754] CHIP:DMG: 0x2 = 7, + [1685674004.692163][2752:2754] CHIP:DMG: 0x3 = 3, + [1685674004.692245][2752:2754] CHIP:DMG: 0x4 = 1, + [1685674004.692326][2752:2754] CHIP:DMG: 0x5 = 112233, + [1685674004.692407][2752:2754] CHIP:DMG: 0x6 = 3, + [1685674004.692486][2752:2754] CHIP:DMG: }, + [1685674004.692555][2752:2754] CHIP:DMG: }, + [1685674004.692641][2752:2754] CHIP:DMG: + [1685674004.692700][2752:2754] CHIP:DMG: }, + [1685674004.692779][2752:2754] CHIP:DMG: + [1685674004.692835][2752:2754] CHIP:DMG: ], + [1685674004.693080][2752:2754] CHIP:DMG: + [1685674004.693138][2752:2754] CHIP:DMG: SuppressResponse = true, + [1685674004.693195][2752:2754] CHIP:DMG: InteractionModelRevision = 1 + [1685674004.693249][2752:2754] CHIP:DMG: } + disabled: true - [1667215381.519551][14571:14571] CHIP:EM: Handling via exchange: 17082r, Delegate: 0xaaaae921d988 - [1667215381.519649][14571:14571] CHIP:IM: Received Read request - [1667215381.519824][14571:14571] CHIP:DMG: ReadRequestMessage = - [1667215381.519891][14571:14571] CHIP:DMG: { - [1667215381.519944][14571:14571] CHIP:DMG: EventPathIBs = - [1667215381.520009][14571:14571] CHIP:DMG: [ - [1667215381.520071][14571:14571] CHIP:DMG: EventPath = - [1667215381.520154][14571:14571] CHIP:DMG: { - [1667215381.520226][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.520310][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.520389][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.520471][14571:14571] CHIP:DMG: }, - [1667215381.520548][14571:14571] CHIP:DMG: - [1667215381.520609][14571:14571] CHIP:DMG: ], - [1667215381.520680][14571:14571] CHIP:DMG: - [1667215381.520742][14571:14571] CHIP:DMG: isFabricFiltered = true, - [1667215381.520807][14571:14571] CHIP:DMG: InteractionModelRevision = 1 - [1667215381.520866][14571:14571] CHIP:DMG: }, - [1667215381.521021][14571:14571] CHIP:DMG: IM RH moving to [GeneratingReports] - [1667215381.521248][14571:14571] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1667215381.521337][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.521416][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.521970][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.522040][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.522292][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.522359][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.522576][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.522646][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.522828][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.522894][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.523069][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.523136][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.523313][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.523379][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.523554][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.523619][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.523795][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.523861][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.524036][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.524102][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.524283][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.524349][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.524862][14571:14571] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=v - [1667215381.524928][14571:14571] CHIP:DMG: AccessControl: allowed - [1667215381.525059][14571:14571] CHIP:DMG: Fetched 11 events - [1667215381.525125][14571:14571] CHIP:DMG: Sending report (payload has 631 bytes)... - [1667215381.525872][14571:14571] CHIP:EM: <<< [E:17082r M:265557999 (Ack:110761060)] (S) Msg TX to 1:000000000001B669 [673E] --- Type 0001:05 (IM:ReportData) - [1667215381.525973][14571:14571] CHIP:IN: (S) Sending msg 265557999 on secure session with LSID: 42499 - [1667215381.527172][14571:14571] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:49574 | 265557999 | [Interaction Model (1) / Report Data (0x05) / Session = 8112 / Exchange = 17082] - [1667215381.527272][14571:14571] CHIP:DMG: Header Flags = - [1667215381.527330][14571:14571] CHIP:DMG: { - [1667215381.527416][14571:14571] CHIP:DMG: Exchange (0x06) = - [1667215381.527473][14571:14571] CHIP:DMG: { - [1667215381.527533][14571:14571] CHIP:DMG: AckMsg = 110761060 - [1667215381.527645][14571:14571] CHIP:DMG: NeedsAck = true - [1667215381.527700][14571:14571] CHIP:DMG: } - [1667215381.527774][14571:14571] CHIP:DMG: } - [1667215381.527830][14571:14571] CHIP:DMG: - [1667215381.527904][14571:14571] CHIP:DMG: Encrypted Payload (665 bytes) = - [1667215381.527961][14571:14571] CHIP:DMG: { - [1667215381.528016][14571:14571] CHIP:DMG: data = 00b01f00ef17d40fba2ce9d50e1fe1bf3262948a9e36f61bd023f244e7bb0679def72d108f27ac12cc1afbb32f4cdd8a0eaaa839b4c1d2553072651d5bf478d1afccd25a3a5fec7f155124f75d2c4e4347376b68014548b08c066271090bcca34169120f7046ecd6ef78dc6ede11daf9f87957061c5365a177b910e7df7aa7aa661f1b8545a8bca606bdd12df647cf21e1f77afc733cda7fa4c730384f09e98ecda70fa1c52efc4853843d936378098ada61127e632bee94332fe27cb8f861e8c1af2dcc289bba0cf713fec5cbf8706a0955c9c8e17239a8be3ccf2a5822f71f98542efb94afddffb74220356bd6fbf7b527af7b632a1bc135b547a8972d389a3a0959c26c897b04e6e2767a950b21957b2d2d16ca7cc9f0d2f455f6030cee10e3e6a06de7fdfecf8dc5fcd9f6fd09fac36012eef5673579613dafb6227b14ea398ac6225ec84d30b6f29a4ee96787ef010e26e1c28dcdf30d19497d9eb13bceabd0378ea5ac68be632806f09a862a53fbfc731c55e92328fbb5b0d0dda9344a62bdc6819393f5a9dc5bd6ba3ea2691d9865c3fa8f6bc94b06af3d82ce1aae1aa97c28ccf410b23be54d19a526ed4184e26ffeff73c6ea7b5bd12cf192359534698817426f830c7b9bb0793a6fec35a0e11e2c3a339df0110e9fb9521467dea9a3c906cfb0f1f3c6de34b93073cb6cb75a34ee2b3c28e6502d44cc909162c6d7e9798046d2e156041615a089e490f0d8790e36ab01c8316224dcbbd5cb858b1dbc51f1f8eccce64fb493edf9c00298719036dac0de698eb8486831538d15eb0f2b9f0d4965485d89530d31e9a2cef92db2a74cec8faddbf1ccf8abd78e1b31a2b23c63c604594125da85e02292f83dc1da279d35d419bae4ee27bf1b6facfdb98aaa5a17938d60cb19046e56bd26c6f76e1f75f54620345756 - [1667215381.528139][14571:14571] CHIP:DMG: buffer_ptr = 187651867797088 - [1667215381.528195][14571:14571] CHIP:DMG: } - [1667215381.528248][14571:14571] CHIP:DMG: - [1667215381.528327][14571:14571] CHIP:DMG: Decrypted Payload (631 bytes) = - [1667215381.528384][14571:14571] CHIP:DMG: { - [1667215381.528439][14571:14571] CHIP:DMG: data = 1536021535013700240101250201012403041824010824020126049d4d22013507240002240100240207240301240401260569b601002406011818181535013700240101250201012403041824010a24020125069fac3507240003240100240207240301240401260569b601002406011818181535013700240101250201012403041824010b2402012606e86301003507240003240101240207240301240401260569b601002406011818181535013700240101250201012403041824010c2402012506f0b13507240004240100240207240301240401260569b601002406011818181535013700240101250201012403041824010d2402012606c22e02003507240004240101240207240301240401260569b601002406011818181535013700240101250201012403041824010e240201260665e902003507240002240100240207240302240401260569b601002406021818181535013700240101250201012403041824010f2402012606a74e01003507240002240101240207240302240401260569b60100240602181818153501370024010125020101240304182401102402012606e5d803003507240002240101240207240301240401260569b60100240601181818153501370024010125020101240304182401112402012606050a03003507240002240100240207240301240401260569b60100240601181818153501370024010125020101240304182401122402012506e9fc3507240006240100240207240301240401260569b6010024060118181815350137002401012502010124030418240118240201260612752c003507240002240100240207240303240401260569b6010024060318181818290424ff0118 - [1667215381.528554][14571:14571] CHIP:DMG: } - [1667215381.528607][14571:14571] CHIP:DMG: - [1667215381.529222][14571:14571] CHIP:DMG: ReportDataMessage = - [1667215381.529357][14571:14571] CHIP:DMG: { - [1667215381.529414][14571:14571] CHIP:DMG: EventReportIBs = - [1667215381.529501][14571:14571] CHIP:DMG: [ - [1667215381.529563][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.529663][14571:14571] CHIP:DMG: { - [1667215381.529734][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.529822][14571:14571] CHIP:DMG: { - [1667215381.529906][14571:14571] CHIP:DMG: EventPath = - [1667215381.529992][14571:14571] CHIP:DMG: { - [1667215381.530079][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.530177][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.530269][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.530353][14571:14571] CHIP:DMG: }, - [1667215381.530448][14571:14571] CHIP:DMG: - [1667215381.530683][14571:14571] CHIP:DMG: EventNumber = 0x8, - [1667215381.530769][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.530855][14571:14571] CHIP:DMG: SystemTimestamp = 0x1224d9d, - [1667215381.530937][14571:14571] CHIP:DMG: EventData = - [1667215381.531028][14571:14571] CHIP:DMG: { - [1667215381.531125][14571:14571] CHIP:DMG: 0x0 = 2, - [1667215381.531222][14571:14571] CHIP:DMG: 0x1 = 0, - [1667215381.531320][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.531411][14571:14571] CHIP:DMG: 0x3 = 1, - [1667215381.531503][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.531593][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.531692][14571:14571] CHIP:DMG: 0x6 = 1, - [1667215381.531780][14571:14571] CHIP:DMG: }, - [1667215381.531864][14571:14571] CHIP:DMG: }, - [1667215381.531971][14571:14571] CHIP:DMG: - [1667215381.532042][14571:14571] CHIP:DMG: }, - [1667215381.532165][14571:14571] CHIP:DMG: - [1667215381.532233][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.532329][14571:14571] CHIP:DMG: { - [1667215381.532409][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.532495][14571:14571] CHIP:DMG: { - [1667215381.532573][14571:14571] CHIP:DMG: EventPath = - [1667215381.532657][14571:14571] CHIP:DMG: { - [1667215381.532753][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.532851][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.532940][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.533023][14571:14571] CHIP:DMG: }, - [1667215381.533120][14571:14571] CHIP:DMG: - [1667215381.533202][14571:14571] CHIP:DMG: EventNumber = 0xa, - [1667215381.533287][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.533379][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0xac9f, - [1667215381.533461][14571:14571] CHIP:DMG: EventData = - [1667215381.533545][14571:14571] CHIP:DMG: { - [1667215381.533639][14571:14571] CHIP:DMG: 0x0 = 3, - [1667215381.533730][14571:14571] CHIP:DMG: 0x1 = 0, - [1667215381.533829][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.533920][14571:14571] CHIP:DMG: 0x3 = 1, - [1667215381.534018][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.534119][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.534214][14571:14571] CHIP:DMG: 0x6 = 1, - [1667215381.534301][14571:14571] CHIP:DMG: }, - [1667215381.534389][14571:14571] CHIP:DMG: }, - [1667215381.534520][14571:14571] CHIP:DMG: - [1667215381.534588][14571:14571] CHIP:DMG: }, - [1667215381.534702][14571:14571] CHIP:DMG: - [1667215381.534770][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.534866][14571:14571] CHIP:DMG: { - [1667215381.534936][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.535024][14571:14571] CHIP:DMG: { - [1667215381.535107][14571:14571] CHIP:DMG: EventPath = - [1667215381.535198][14571:14571] CHIP:DMG: { - [1667215381.535286][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.535386][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.535475][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.535566][14571:14571] CHIP:DMG: }, - [1667215381.535654][14571:14571] CHIP:DMG: - [1667215381.535744][14571:14571] CHIP:DMG: EventNumber = 0xb, - [1667215381.535829][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.535914][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x163e8, - [1667215381.536002][14571:14571] CHIP:DMG: EventData = - [1667215381.536092][14571:14571] CHIP:DMG: { - [1667215381.536179][14571:14571] CHIP:DMG: 0x0 = 3, - [1667215381.536270][14571:14571] CHIP:DMG: 0x1 = 1, - [1667215381.536361][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.536452][14571:14571] CHIP:DMG: 0x3 = 1, - [1667215381.536544][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.536642][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.536819][14571:14571] CHIP:DMG: 0x6 = 1, - [1667215381.536910][14571:14571] CHIP:DMG: }, - [1667215381.536999][14571:14571] CHIP:DMG: }, - [1667215381.537097][14571:14571] CHIP:DMG: - [1667215381.537168][14571:14571] CHIP:DMG: }, - [1667215381.537285][14571:14571] CHIP:DMG: - [1667215381.537353][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.537450][14571:14571] CHIP:DMG: { - [1667215381.537529][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.537609][14571:14571] CHIP:DMG: { - [1667215381.537992][14571:14571] CHIP:DMG: EventPath = - [1667215381.538084][14571:14571] CHIP:DMG: { - [1667215381.538221][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.538322][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.538422][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.538559][14571:14571] CHIP:DMG: }, - [1667215381.538648][14571:14571] CHIP:DMG: - [1667215381.538737][14571:14571] CHIP:DMG: EventNumber = 0xc, - [1667215381.538832][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.538917][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0xb1f0, - [1667215381.538998][14571:14571] CHIP:DMG: EventData = - [1667215381.539082][14571:14571] CHIP:DMG: { - [1667215381.539177][14571:14571] CHIP:DMG: 0x0 = 4, - [1667215381.539277][14571:14571] CHIP:DMG: 0x1 = 0, - [1667215381.539367][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.539465][14571:14571] CHIP:DMG: 0x3 = 1, - [1667215381.539556][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.539647][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.539744][14571:14571] CHIP:DMG: 0x6 = 1, - [1667215381.539833][14571:14571] CHIP:DMG: }, - [1667215381.539912][14571:14571] CHIP:DMG: }, - [1667215381.540008][14571:14571] CHIP:DMG: - [1667215381.540078][14571:14571] CHIP:DMG: }, - [1667215381.540198][14571:14571] CHIP:DMG: - [1667215381.540261][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.540367][14571:14571] CHIP:DMG: { - [1667215381.540440][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.540521][14571:14571] CHIP:DMG: { - [1667215381.540599][14571:14571] CHIP:DMG: EventPath = - [1667215381.540692][14571:14571] CHIP:DMG: { - [1667215381.540785][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.540875][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.540972][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.541066][14571:14571] CHIP:DMG: }, - [1667215381.541155][14571:14571] CHIP:DMG: - [1667215381.541245][14571:14571] CHIP:DMG: EventNumber = 0xd, - [1667215381.541329][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.541413][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x22ec2, - [1667215381.541493][14571:14571] CHIP:DMG: EventData = - [1667215381.541576][14571:14571] CHIP:DMG: { - [1667215381.541671][14571:14571] CHIP:DMG: 0x0 = 4, - [1667215381.541762][14571:14571] CHIP:DMG: 0x1 = 1, - [1667215381.541861][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.541961][14571:14571] CHIP:DMG: 0x3 = 1, - [1667215381.542052][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.542143][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.542233][14571:14571] CHIP:DMG: 0x6 = 1, - [1667215381.542321][14571:14571] CHIP:DMG: }, - [1667215381.542401][14571:14571] CHIP:DMG: }, - [1667215381.542524][14571:14571] CHIP:DMG: - [1667215381.542591][14571:14571] CHIP:DMG: }, - [1667215381.542704][14571:14571] CHIP:DMG: - [1667215381.542767][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.542861][14571:14571] CHIP:DMG: { - [1667215381.542932][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.543013][14571:14571] CHIP:DMG: { - [1667215381.543090][14571:14571] CHIP:DMG: EventPath = - [1667215381.543173][14571:14571] CHIP:DMG: { - [1667215381.543260][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.543357][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.543445][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.543529][14571:14571] CHIP:DMG: }, - [1667215381.543624][14571:14571] CHIP:DMG: - [1667215381.543706][14571:14571] CHIP:DMG: EventNumber = 0xe, - [1667215381.543791][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.543875][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x2e965, - [1667215381.543965][14571:14571] CHIP:DMG: EventData = - [1667215381.544048][14571:14571] CHIP:DMG: { - [1667215381.544143][14571:14571] CHIP:DMG: 0x0 = 2, - [1667215381.544233][14571:14571] CHIP:DMG: 0x1 = 0, - [1667215381.544331][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.544421][14571:14571] CHIP:DMG: 0x3 = 2, - [1667215381.544511][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.544599][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.544690][14571:14571] CHIP:DMG: 0x6 = 2, - [1667215381.544777][14571:14571] CHIP:DMG: }, - [1667215381.544856][14571:14571] CHIP:DMG: }, - [1667215381.544961][14571:14571] CHIP:DMG: - [1667215381.545031][14571:14571] CHIP:DMG: }, - [1667215381.545146][14571:14571] CHIP:DMG: - [1667215381.545208][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.545302][14571:14571] CHIP:DMG: { - [1667215381.545373][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.545460][14571:14571] CHIP:DMG: { - [1667215381.545543][14571:14571] CHIP:DMG: EventPath = - [1667215381.545627][14571:14571] CHIP:DMG: { - [1667215381.545711][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.545808][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.545903][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.545987][14571:14571] CHIP:DMG: }, - [1667215381.546074][14571:14571] CHIP:DMG: - [1667215381.546157][14571:14571] CHIP:DMG: EventNumber = 0xf, - [1667215381.546242][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.546326][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x14ea7, - [1667215381.546408][14571:14571] CHIP:DMG: EventData = - [1667215381.546529][14571:14571] CHIP:DMG: { - [1667215381.546627][14571:14571] CHIP:DMG: 0x0 = 2, - [1667215381.546719][14571:14571] CHIP:DMG: 0x1 = 1, - [1667215381.546816][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.546906][14571:14571] CHIP:DMG: 0x3 = 2, - [1667215381.547005][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.547095][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.547192][14571:14571] CHIP:DMG: 0x6 = 2, - [1667215381.547288][14571:14571] CHIP:DMG: }, - [1667215381.547375][14571:14571] CHIP:DMG: }, - [1667215381.547481][14571:14571] CHIP:DMG: - [1667215381.547551][14571:14571] CHIP:DMG: }, - [1667215381.547664][14571:14571] CHIP:DMG: - [1667215381.547726][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.547822][14571:14571] CHIP:DMG: { - [1667215381.547893][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.547979][14571:14571] CHIP:DMG: { - [1667215381.548063][14571:14571] CHIP:DMG: EventPath = - [1667215381.548154][14571:14571] CHIP:DMG: { - [1667215381.548248][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.548703][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.548810][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.548898][14571:14571] CHIP:DMG: }, - [1667215381.548988][14571:14571] CHIP:DMG: - [1667215381.549077][14571:14571] CHIP:DMG: EventNumber = 0x10, - [1667215381.549161][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.549245][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x3d8e5, - [1667215381.549328][14571:14571] CHIP:DMG: EventData = - [1667215381.549411][14571:14571] CHIP:DMG: { - [1667215381.549498][14571:14571] CHIP:DMG: 0x0 = 2, - [1667215381.549588][14571:14571] CHIP:DMG: 0x1 = 1, - [1667215381.549678][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.549776][14571:14571] CHIP:DMG: 0x3 = 1, - [1667215381.549874][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.549963][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.550060][14571:14571] CHIP:DMG: 0x6 = 1, - [1667215381.550156][14571:14571] CHIP:DMG: }, - [1667215381.550236][14571:14571] CHIP:DMG: }, - [1667215381.550338][14571:14571] CHIP:DMG: - [1667215381.550409][14571:14571] CHIP:DMG: }, - [1667215381.550551][14571:14571] CHIP:DMG: - [1667215381.550730][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.550840][14571:14571] CHIP:DMG: { - [1667215381.550912][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.550993][14571:14571] CHIP:DMG: { - [1667215381.551071][14571:14571] CHIP:DMG: EventPath = - [1667215381.551155][14571:14571] CHIP:DMG: { - [1667215381.551248][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.551336][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.551490][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.551590][14571:14571] CHIP:DMG: }, - [1667215381.551688][14571:14571] CHIP:DMG: - [1667215381.551777][14571:14571] CHIP:DMG: EventNumber = 0x11, - [1667215381.551862][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.551948][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x30a05, - [1667215381.552029][14571:14571] CHIP:DMG: EventData = - [1667215381.552113][14571:14571] CHIP:DMG: { - [1667215381.552209][14571:14571] CHIP:DMG: 0x0 = 2, - [1667215381.552299][14571:14571] CHIP:DMG: 0x1 = 0, - [1667215381.552397][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.552533][14571:14571] CHIP:DMG: 0x3 = 1, - [1667215381.552626][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.552717][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.552807][14571:14571] CHIP:DMG: 0x6 = 1, - [1667215381.552893][14571:14571] CHIP:DMG: }, - [1667215381.552973][14571:14571] CHIP:DMG: }, - [1667215381.553076][14571:14571] CHIP:DMG: - [1667215381.553146][14571:14571] CHIP:DMG: }, - [1667215381.553263][14571:14571] CHIP:DMG: - [1667215381.553325][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.553421][14571:14571] CHIP:DMG: { - [1667215381.553493][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.553579][14571:14571] CHIP:DMG: { - [1667215381.553657][14571:14571] CHIP:DMG: EventPath = - [1667215381.553742][14571:14571] CHIP:DMG: { - [1667215381.553835][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.553923][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.554011][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.554093][14571:14571] CHIP:DMG: }, - [1667215381.554189][14571:14571] CHIP:DMG: - [1667215381.554270][14571:14571] CHIP:DMG: EventNumber = 0x12, - [1667215381.554355][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.554439][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0xfce9, - [1667215381.554555][14571:14571] CHIP:DMG: EventData = - [1667215381.554640][14571:14571] CHIP:DMG: { - [1667215381.554733][14571:14571] CHIP:DMG: 0x0 = 6, - [1667215381.554833][14571:14571] CHIP:DMG: 0x1 = 0, - [1667215381.554923][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.555022][14571:14571] CHIP:DMG: 0x3 = 1, - [1667215381.555120][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.555217][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.555307][14571:14571] CHIP:DMG: 0x6 = 1, - [1667215381.555394][14571:14571] CHIP:DMG: }, - [1667215381.555481][14571:14571] CHIP:DMG: }, - [1667215381.555577][14571:14571] CHIP:DMG: - [1667215381.555647][14571:14571] CHIP:DMG: }, - [1667215381.555763][14571:14571] CHIP:DMG: - [1667215381.555830][14571:14571] CHIP:DMG: EventReportIB = - [1667215381.555927][14571:14571] CHIP:DMG: { - [1667215381.556007][14571:14571] CHIP:DMG: EventDataIB = - [1667215381.556087][14571:14571] CHIP:DMG: { - [1667215381.556172][14571:14571] CHIP:DMG: EventPath = - [1667215381.556265][14571:14571] CHIP:DMG: { - [1667215381.556357][14571:14571] CHIP:DMG: Endpoint = 0x1, - [1667215381.556446][14571:14571] CHIP:DMG: Cluster = 0x101, - [1667215381.556535][14571:14571] CHIP:DMG: Event = 0x4, - [1667215381.556619][14571:14571] CHIP:DMG: }, - [1667215381.556708][14571:14571] CHIP:DMG: - [1667215381.556790][14571:14571] CHIP:DMG: EventNumber = 0x18, - [1667215381.556875][14571:14571] CHIP:DMG: PriorityLevel = 0x1, - [1667215381.556959][14571:14571] CHIP:DMG: DeltaSystemTimestamp = 0x2c7512, - [1667215381.557040][14571:14571] CHIP:DMG: EventData = - [1667215381.557124][14571:14571] CHIP:DMG: { - [1667215381.557209][14571:14571] CHIP:DMG: 0x0 = 2, - [1667215381.557308][14571:14571] CHIP:DMG: 0x1 = 0, - [1667215381.557397][14571:14571] CHIP:DMG: 0x2 = 7, - [1667215381.557486][14571:14571] CHIP:DMG: 0x3 = 3, - [1667215381.557588][14571:14571] CHIP:DMG: 0x4 = 1, - [1667215381.557757][14571:14571] CHIP:DMG: 0x5 = 112233, - [1667215381.557850][14571:14571] CHIP:DMG: 0x6 = 3, - [1667215381.557939][14571:14571] CHIP:DMG: }, - [1667215381.558026][14571:14571] CHIP:DMG: }, - [1667215381.558121][14571:14571] CHIP:DMG: - [1667215381.558191][14571:14571] CHIP:DMG: }, + - label: + "Step 10: DUT sends the Unbolt Door command to the TH with valid + PINCode" + PICS: DRLK.C.C27.Tx + verification: | + ./chip-tool doorlock unbolt-door 1 1 --timedInteractionTimeoutMs 1000 --PINCode 123456 --trace_decode 1 + + Verify TH receives Unbolt Door command with SUCCESS response on TH(lock-app) log: + + [1689767521.623730][2330:2332] CHIP:DMG: ICR moving to [ResponseRe] + [1689767521.623822][2330:2332] CHIP:DMG: InvokeResponseMessage = + [1689767521.623877][2330:2332] CHIP:DMG: { + [1689767521.623929][2330:2332] CHIP:DMG: suppressResponse = false, + [1689767521.623983][2330:2332] CHIP:DMG: InvokeResponseIBs = + [1689767521.624054][2330:2332] CHIP:DMG: [ + [1689767521.624109][2330:2332] CHIP:DMG: InvokeResponseIB = + [1689767521.624184][2330:2332] CHIP:DMG: { + [1689767521.624243][2330:2332] CHIP:DMG: CommandStatusIB = + [1689767521.624312][2330:2332] CHIP:DMG: { + [1689767521.624375][2330:2332] CHIP:DMG: CommandPathIB = + [1689767521.624459][2330:2332] CHIP:DMG: { + [1689767521.624537][2330:2332] CHIP:DMG: EndpointId = 0x1, + [1689767521.624616][2330:2332] CHIP:DMG: ClusterId = 0x101, + [1689767521.624761][2330:2332] CHIP:DMG: CommandId = 0x27, + [1689767521.624838][2330:2332] CHIP:DMG: }, + [1689767521.624921][2330:2332] CHIP:DMG: + [1689767521.624986][2330:2332] CHIP:DMG: StatusIB = + [1689767521.625059][2330:2332] CHIP:DMG: { + [1689767521.625135][2330:2332] CHIP:DMG: status = 0x00 (SUCCESS), + [1689767521.625209][2330:2332] CHIP:DMG: }, + [1689767521.625283][2330:2332] CHIP:DMG: + [1689767521.625346][2330:2332] CHIP:DMG: }, + [1689767521.625418][2330:2332] CHIP:DMG: + [1689767521.625476][2330:2332] CHIP:DMG: }, + [1689767521.625547][2330:2332] CHIP:DMG: + [1689767521.625601][2330:2332] CHIP:DMG: ], + [1689767521.625671][2330:2332] CHIP:DMG: + [1689767521.625725][2330:2332] CHIP:DMG: InteractionModelRevision = 1 + [1689767521.625779][2330:2332] CHIP:DMG: }, disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_FAN_3_3.yaml b/src/app/tests/suites/certification/Test_TC_FAN_3_3.yaml new file mode 100644 index 00000000000000..091d097bfa0c7f --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_FAN_3_3.yaml @@ -0,0 +1,175 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 263.2.8. [TC-FAN-3.3] Optional rock functionality with DUT as Server + +PICS: + - FAN.S + - FAN.S.F03 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the RockSupport attribute and store" + PICS: FAN.S.A0007 + verification: | + ./chip-tool fancontrol read rock-support 1 1 + + On TH(chip-tool), Verify the RockSupport attribute value is in the range of 1 to 7. + + [1689757789.384816][23225:23227] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0007 DataVersion: 1958137194 + [1689757789.384890][23225:23227] CHIP:TOO: RockSupport: 3 + disabled: true + + - label: + "Step 3: If the RockSupport attribute read above has bit 0 set, then + TH writes to the DUT the RockSetting attribute with 0x01" + PICS: FAN.S.A0008( + verification: | + ./chip-tool fancontrol write rock-setting 1 1 1 + + On TH(chip-tool), Verify the SUCCESS response for RockSetting attribute write function + + [1685104690.737557][30753:30755] CHIP:DMG: Endpoint = 0x1, + [1685104690.737632][30753:30755] CHIP:DMG: Cluster = 0x202, + [1685104690.737707][30753:30755] CHIP:DMG: Attribute = 0x0000_0008, + [1685104690.737825][30753:30755] CHIP:DMG: } + [1685104690.737911][30753:30755] CHIP:DMG: + [1685104690.737980][30753:30755] CHIP:DMG: StatusIB = + [1685104690.738051][30753:30755] CHIP:DMG: { + [1685104690.738122][30753:30755] CHIP:DMG: status = 0x00 (SUCCESS), + [1685104690.738199][30753:30755] CHIP:DMG: }, + [1685104690.738270][30753:30755] CHIP:DMG: + [1685104690.738330][30753:30755] CHIP:DMG: }, + [1685104690.738400][30753:30755] CHIP:DMG: + [1685104690.738455][30753:30755] CHIP:DMG: ], + [1685104690.738524][30753:30755] CHIP:DMG: + [1685104690.738579][30753:30755] CHIP:DMG: InteractionModelRevision = 1 + [1685104690.738632][30753:30755] CHIP:DMG: } + [1685104690.738790][30753:30755] CHIP:DMG: WriteClient moving to [AwaitingDe] + disabled: true + + - label: + "Step 4: If the previous step is written, after a few seconds, TH + reads from the DUT the RockSetting attribute" + PICS: FAN.S.A0008 + verification: | + ./chip-tool fancontrol read rock-setting 1 1 + + On TH(chip-tool), Verify the RockSetting attribute value as 1. + + [1689757942.179085][23325:23327] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0008 DataVersion: 1958137195 + [1689757942.179162][23325:23327] CHIP:TOO: RockSetting: 1 + disabled: true + + - label: + "Step 5: If the RockSupport attribute read above has bit 1 set, then + TH writes to the DUT the RockSetting attribute with 0x02" + PICS: FAN.S.A0008 + verification: | + ./chip-tool fancontrol write rock-setting 2 1 1 + + On TH(chip-tool), Verify the SUCCESS response for RockSetting attribute write function + + [1685104690.737408][30753:30755] CHIP:DMG: AttributePathIB = + [1685104690.737488][30753:30755] CHIP:DMG: { + [1685104690.737557][30753:30755] CHIP:DMG: Endpoint = 0x1, + [1685104690.737632][30753:30755] CHIP:DMG: Cluster = 0x202, + [1685104690.737707][30753:30755] CHIP:DMG: Attribute = 0x0000_0008, + [1685104690.737825][30753:30755] CHIP:DMG: } + [1685104690.737911][30753:30755] CHIP:DMG: + [1685104690.737980][30753:30755] CHIP:DMG: StatusIB = + [1685104690.738051][30753:30755] CHIP:DMG: { + [1685104690.738122][30753:30755] CHIP:DMG: status = 0x00 (SUCCESS), + [1685104690.738199][30753:30755] CHIP:DMG: }, + [1685104690.738270][30753:30755] CHIP:DMG: + [1685104690.738330][30753:30755] CHIP:DMG: }, + [1685104690.738400][30753:30755] CHIP:DMG: + [1685104690.738455][30753:30755] CHIP:DMG: ], + [1685104690.738524][30753:30755] CHIP:DMG: + [1685104690.738579][30753:30755] CHIP:DMG: InteractionModelRevision = 1 + [1685104690.738632][30753:30755] CHIP:DMG: } + [1685104690.738790][30753:30755] CHIP:DMG: WriteClient moving to [AwaitingDe] + disabled: true + + - label: + "Step 6: If the previous step is written, after a few seconds, TH + reads from the DUT the RockSetting attribute" + PICS: FAN.S.A0008 + verification: | + ./chip-tool fancontrol read rock-setting 1 1 + + On TH(chip-tool), Verify the RockSetting attribute value as 2. + + [1689757942.179085][23325:23327] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0008 DataVersion: 1958137195 + [1689757942.179162][23325:23327] CHIP:TOO: RockSetting: 2 + disabled: true + + - label: + "Step 7: If the RockSupport attribute read above has bit 2 set, then + TH writes to the DUT the RockSetting attribute with 0x04" + PICS: FAN.S.A0008 + verification: | + ./chip-tool fancontrol write rock-setting 4 1 1 + + On TH(chip-tool), Verify the SUCCESS response for RockSetting attribute write function + + Current sample apps do not have RockSupport attribute bit 2 . However, if the vendor has implemented it, the below response will be displayed. + + [1685104690.737408][30753:30755] CHIP:DMG: AttributePathIB = + [1685104690.737488][30753:30755] CHIP:DMG: { + [1685104690.737557][30753:30755] CHIP:DMG: Endpoint = 0x1, + [1685104690.737632][30753:30755] CHIP:DMG: Cluster = 0x202, + [1685104690.737707][30753:30755] CHIP:DMG: Attribute = 0x0000_0008, + [1685104690.737825][30753:30755] CHIP:DMG: } + [1685104690.737911][30753:30755] CHIP:DMG: + [1685104690.737980][30753:30755] CHIP:DMG: StatusIB = + [1685104690.738051][30753:30755] CHIP:DMG: { + [1685104690.738122][30753:30755] CHIP:DMG: status = 0x00 (SUCCESS), + [1685104690.738199][30753:30755] CHIP:DMG: }, + [1685104690.738270][30753:30755] CHIP:DMG: + [1685104690.738330][30753:30755] CHIP:DMG: }, + [1685104690.738400][30753:30755] CHIP:DMG: + [1685104690.738455][30753:30755] CHIP:DMG: ], + [1685104690.738524][30753:30755] CHIP:DMG: + [1685104690.738579][30753:30755] CHIP:DMG: InteractionModelRevision = 1 + [1685104690.738632][30753:30755] CHIP:DMG: } + [1685104690.738790][30753:30755] CHIP:DMG: WriteClient moving to [AwaitingDe] + disabled: true + + - label: + "Step 8: If the previous step is written, after a few seconds, TH + reads from the DUT the RockSetting attribute" + PICS: FAN.S.A0008 + verification: | + Note : Execute only if STEP 7 resulted with SUCCESS + + ./chip-tool fancontrol read rock-setting 1 1 + + On TH(chip-tool), Verify the RockSetting attribute value as 4. + + Current sample apps do not have RockSupport attribute bit 2 . However, if the vendor has implemented it, the below response will be displayed. + + [1689757942.179085][23325:23327] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0008 DataVersion: 1958137195 + [1689757942.179162][23325:23327] CHIP:TOO: RockSetting: 4 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_FAN_3_5.yaml b/src/app/tests/suites/certification/Test_TC_FAN_3_5.yaml new file mode 100644 index 00000000000000..ec221dec3c2fd3 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_FAN_3_5.yaml @@ -0,0 +1,592 @@ +# Copyright (c) 2021 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 263.2.10. [TC-FAN-3.5] Optional step functionality with DUT as Server + +PICS: + - FAN.S + - FAN.S.F04 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: + "Step 2a: TH writes to the DUT the PercentSetting attribute with 50" + PICS: FAN.S.A0002 + verification: | + ./chip-tool fancontrol write percent-setting 50 1 1 + + On TH(chip-tool), Verify the SUCCESS response for FanMode attribute successful write. + + [1689758735.697705][23402:23404] CHIP:DMG: AttributePathIB = + [1689758735.697729][23402:23404] CHIP:DMG: { + [1689758735.697755][23402:23404] CHIP:DMG: Endpoint = 0x1, + [1689758735.697780][23402:23404] CHIP:DMG: Cluster = 0x202, + [1689758735.697805][23402:23404] CHIP:DMG: Attribute = 0x0000_0002, + [1689758735.697829][23402:23404] CHIP:DMG: } + [1689758735.697856][23402:23404] CHIP:DMG: + [1689758735.697879][23402:23404] CHIP:DMG: StatusIB = + [1689758735.697903][23402:23404] CHIP:DMG: { + [1689758735.697928][23402:23404] CHIP:DMG: status = 0x00 (SUCCESS), + [1689758735.697953][23402:23404] CHIP:DMG: }, + [1689758735.697976][23402:23404] CHIP:DMG: + [1689758735.697997][23402:23404] CHIP:DMG: }, + disabled: true + + - label: + "Step 2b: after a few seconds, TH reads from the DUT the + PercentCurrent attribute" + PICS: FAN.S.A0003 + verification: | + ./chip-tool fancontrol read percent-current 1 1 + + On TH(chip-tool), Verify the PercentCurrent attribute value is in the range of 0 to 100. + + [1685105264.946295][30821:30823] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0003 DataVersion: 3398333304 + [1685105264.946447][30821:30823] CHIP:TOO: PercentCurrent: 50 + disabled: true + + - label: + "Step 2c: TH sends Step command to DUT with Direction set to Increase" + PICS: FAN.S.C00.Rsp + verification: | + ./chip-tool fancontrol step 0 1 1 + + On TH(chip-tool), Verify the SUCCESS response for sending Step command. + + [1688369238.200998][44233:44235] CHIP:DMG: StatusIB = + [1688369238.201073][44233:44235] CHIP:DMG: { + [1688369238.201149][44233:44235] CHIP:DMG: status = 0x00 (SUCCESS), + [1688369238.201226][44233:44235] CHIP:DMG: }, + disabled: true + + - label: + "Step 2d: after a few seconds, TH reads from the DUT the + PercentCurrent attribute" + PICS: FAN.S.A0003 + verification: | + ./chip-tool fancontrol read percent-current 1 1 + + On TH(chip-tool), Verify the PercentCurrent attribute value is higher than step 2b. + + [1685105264.946295][30821:30823] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0003 DataVersion: 3398333304 + [1685105264.946447][30821:30823] CHIP:TOO: PercentCurrent: 50 + disabled: true + + - label: + "Step 3a: TH writes to the DUT the PercentSetting attribute with 50" + PICS: FAN.S.A0002 + verification: | + ./chip-tool fancontrol write percent-setting 50 1 1 + + On TH(chip-tool), Verify the SUCCESS response for FanMode attribute successful write. + + [1689758735.697705][23402:23404] CHIP:DMG: AttributePathIB = + [1689758735.697729][23402:23404] CHIP:DMG: { + [1689758735.697755][23402:23404] CHIP:DMG: Endpoint = 0x1, + [1689758735.697780][23402:23404] CHIP:DMG: Cluster = 0x202, + [1689758735.697805][23402:23404] CHIP:DMG: Attribute = 0x0000_0002, + [1689758735.697829][23402:23404] CHIP:DMG: } + [1689758735.697856][23402:23404] CHIP:DMG: + [1689758735.697879][23402:23404] CHIP:DMG: StatusIB = + [1689758735.697903][23402:23404] CHIP:DMG: { + [1689758735.697928][23402:23404] CHIP:DMG: status = 0x00 (SUCCESS), + [1689758735.697953][23402:23404] CHIP:DMG: }, + [1689758735.697976][23402:23404] CHIP:DMG: + [1689758735.697997][23402:23404] CHIP:DMG: }, + disabled: true + + - label: + "Step 3b: after a few seconds, TH reads from the DUT the + PercentCurrent attribute" + PICS: FAN.S.A0003 + verification: | + ./chip-tool fancontrol read percent-current 1 1 + + On TH(chip-tool), Verify the PercentCurrent attribute value is in the range of 0 to 100. + + [1685105264.946295][30821:30823] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0003 DataVersion: 3398333304 + [1685105264.946447][30821:30823] CHIP:TOO: PercentCurrent: 50 + disabled: true + + - label: + "Step 3c: TH sends Step command to DUT with Direction set to Decrease" + PICS: FAN.S.C00.Rsp + verification: | + ./chip-tool fancontrol step 1 1 1 + + On TH(chip-tool), Verify the SUCCESS response for sending Step command. + + [1688369238.200998][44233:44235] CHIP:DMG: StatusIB = + [1688369238.201073][44233:44235] CHIP:DMG: { + [1688369238.201149][44233:44235] CHIP:DMG: status = 0x00 (SUCCESS), + [1688369238.201226][44233:44235] CHIP:DMG: }, + disabled: true + + - label: + "Step 3d: after a few seconds, TH reads from the DUT the + PercentCurrent attribute" + PICS: FAN.S.A0003 + verification: | + ./chip-tool fancontrol read percent-current 1 1 + + On TH(chip-tool), Verify the PercentCurrent attribute value is lower than step 3b. + + [1685105264.946295][30821:30823] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0003 DataVersion: 3398333304 + [1685105264.946447][30821:30823] CHIP:TOO: PercentCurrent: 50 + disabled: true + + - label: "Step 4a: TH reads from the DUT the SpeedMax attribute" + PICS: FAN.S.A0004 + verification: | + ./chip-tool fancontrol read speed-max 1 1 + + On TH(chip-tool), Verify the SpeedMax attribute value is in the range of 1 to 100. + + [1688647242.182652][7491:7493] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0004 DataVersion: 2333446701 + [1688647242.182906][7491:7493] CHIP:TOO: SpeedMax: 100 + [1688647242.183197][7491:7493] CHIP:EM: <<< [E:6958i S:20670 M:246576408 (Ack:49619178)] (S) Msg TX to 1:0000000000000001 [08DD] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: + "Step 4b: TH writes to the DUT the SpeedSetting attribute with value + read from step 4a" + PICS: FAN.S.A0005 + verification: | + ./chip-tool fancontrol write speed-setting 100 1 1 + + On TH(chip-tool), Verify the SUCCESS response for SpeedSetting attribute successful write. + + [1685104349.577491][30723:30725] CHIP:DMG: WriteClient moving to [ResponseRe] + [1685104349.577594][30723:30725] CHIP:DMG: WriteResponseMessage = + [1685104349.577653][30723:30725] CHIP:DMG: { + [1685104349.577728][30723:30725] CHIP:DMG: AttributeStatusIBs = + [1685104349.577838][30723:30725] CHIP:DMG: [ + [1685104349.577897][30723:30725] CHIP:DMG: AttributeStatusIB = + [1685104349.577988][30723:30725] CHIP:DMG: { + [1685104349.578122][30723:30725] CHIP:DMG: AttributePathIB = + [1685104349.578201][30723:30725] CHIP:DMG: { + [1685104349.578276][30723:30725] CHIP:DMG: Endpoint = 0x1, + [1685104349.578371][30723:30725] CHIP:DMG: Cluster = 0x202, + [1685104349.578448][30723:30725] CHIP:DMG: Attribute = 0x0000_0005, + [1685104349.578544][30723:30725] CHIP:DMG: } + [1685104349.578625][30723:30725] CHIP:DMG: + [1685104349.578720][30723:30725] CHIP:DMG: StatusIB = + [1685104349.578793][30723:30725] CHIP:DMG: { + [1685104349.578893][30723:30725] CHIP:DMG: status = 0x00 (SUCCESS), + [1685104349.578967][30723:30725] CHIP:DMG: }, + [1685104349.579062][30723:30725] CHIP:DMG: + [1685104349.579125][30723:30725] CHIP:DMG: }, + [1685104349.579214][30723:30725] CHIP:DMG: + [1685104349.579270][30723:30725] CHIP:DMG: ], + [1685104349.579340][30723:30725] CHIP:DMG: + [1685104349.579420][30723:30725] CHIP:DMG: InteractionModelRevision = 1 + [1685104349.579474][30723:30725] CHIP:DMG: } + [1685104349.579657][30723:30725] CHIP:DMG: WriteClient moving to [AwaitingDe] + disabled: true + + - label: + "Step 4c: after a few seconds, TH sends Step command to DUT with + Direction set to Increase and Wrap set to false" + PICS: FAN.S.C00.Rsp + verification: | + ./chip-tool fancontrol step 0 1 1 --Wrap false + + On TH(chip-tool), Verify the SUCCESS response for sending Step command. + + [1688369238.200998][44233:44235] CHIP:DMG: StatusIB = + [1688369238.201073][44233:44235] CHIP:DMG: { + [1688369238.201149][44233:44235] CHIP:DMG: status = 0x00 (SUCCESS), + [1688369238.201226][44233:44235] CHIP:DMG: }, + disabled: true + + - label: + "Step 4d: after a few seconds, TH reads from the DUT the SpeedCurrent + attribute" + PICS: FAN.S.A0006 + verification: | + ./chip-tool fancontrol read speed-current 1 1 + + On TH(chip-tool), Verify the SpeedCurrent attribute value is lower than step 4a. + + [1688649821.674949][7869:7871] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0006 DataVersion: 2333446701 + [1688649821.675124][7869:7871] CHIP:TOO: SpeedCurrent: 100 + [1688649821.675408][7869:7871] CHIP:EM: <<< [E:46324i S:9042 M:257483571 (Ack:231043875)] (S) Msg TX to 1:0000000000000001 [08DD] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: + "Step 5a: TH writes to the DUT the SpeedSetting attribute with value + read from step 4a" + PICS: FAN.S.A0005 + verification: | + ./chip-tool fancontrol write speed-setting 100 1 1 + + On TH(chip-tool), Verify the SUCCESS response for SpeedSetting attribute successful write. + + [1685104349.577491][30723:30725] CHIP:DMG: WriteClient moving to [ResponseRe] + [1685104349.577594][30723:30725] CHIP:DMG: WriteResponseMessage = + [1685104349.577653][30723:30725] CHIP:DMG: { + [1685104349.577728][30723:30725] CHIP:DMG: AttributeStatusIBs = + [1685104349.577838][30723:30725] CHIP:DMG: [ + [1685104349.577897][30723:30725] CHIP:DMG: AttributeStatusIB = + [1685104349.577988][30723:30725] CHIP:DMG: { + [1685104349.578122][30723:30725] CHIP:DMG: AttributePathIB = + [1685104349.578201][30723:30725] CHIP:DMG: { + [1685104349.578276][30723:30725] CHIP:DMG: Endpoint = 0x1, + [1685104349.578371][30723:30725] CHIP:DMG: Cluster = 0x202, + [1685104349.578448][30723:30725] CHIP:DMG: Attribute = 0x0000_0005, + [1685104349.578544][30723:30725] CHIP:DMG: } + [1685104349.578625][30723:30725] CHIP:DMG: + [1685104349.578720][30723:30725] CHIP:DMG: StatusIB = + [1685104349.578793][30723:30725] CHIP:DMG: { + [1685104349.578893][30723:30725] CHIP:DMG: status = 0x00 (SUCCESS), + [1685104349.578967][30723:30725] CHIP:DMG: }, + [1685104349.579062][30723:30725] CHIP:DMG: + [1685104349.579125][30723:30725] CHIP:DMG: }, + [1685104349.579214][30723:30725] CHIP:DMG: + [1685104349.579270][30723:30725] CHIP:DMG: ], + [1685104349.579340][30723:30725] CHIP:DMG: + [1685104349.579420][30723:30725] CHIP:DMG: InteractionModelRevision = 1 + [1685104349.579474][30723:30725] CHIP:DMG: } + [1685104349.579657][30723:30725] CHIP:DMG: WriteClient moving to [AwaitingDe] + disabled: true + + - label: + "Step 5b: after a few seconds, TH sends Step command to DUT with + Direction set to Increase, Wrap set to true, and LowestOff set to + false" + PICS: FAN.S.C00.Rsp + verification: | + ./chip-tool fancontrol step 0 1 1 --Wrap true --LowestOff false + + On TH(chip-tool), Verify the SUCCESS response for sending Step command. + + [1688369238.200998][44233:44235] CHIP:DMG: StatusIB = + [1688369238.201073][44233:44235] CHIP:DMG: { + [1688369238.201149][44233:44235] CHIP:DMG: status = 0x00 (SUCCESS), + [1688369238.201226][44233:44235] CHIP:DMG: }, + disabled: true + + - label: + "Step 5c: after a few seconds, TH reads from the DUT the SpeedCurrent + attribute" + PICS: FAN.S.A0006 + verification: | + ./chip-tool fancontrol read speed-current 1 1 + + On TH(chip-tool), Verify the SpeedCurrent attribute value is 1. + + [1688649821.674949][7869:7871] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0006 DataVersion: 2333446701 + [1688649821.675124][7869:7871] CHIP:TOO: SpeedCurrent: 100 + [1688649821.675408][7869:7871] CHIP:EM: <<< [E:46324i S:9042 M:257483571 (Ack:231043875)] (S) Msg TX to 1:0000000000000001 [08DD] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: + "Step 6a: TH writes to the DUT the SpeedSetting attribute with value + read from step 4a" + PICS: FAN.S.A0005 + verification: | + ./chip-tool fancontrol write speed-setting 100 1 1 + + On TH(chip-tool), Verify the SUCCESS response for SpeedSetting attribute successful write. + + [1685104349.577491][30723:30725] CHIP:DMG: WriteClient moving to [ResponseRe] + [1685104349.577594][30723:30725] CHIP:DMG: WriteResponseMessage = + [1685104349.577653][30723:30725] CHIP:DMG: { + [1685104349.577728][30723:30725] CHIP:DMG: AttributeStatusIBs = + [1685104349.577838][30723:30725] CHIP:DMG: [ + [1685104349.577897][30723:30725] CHIP:DMG: AttributeStatusIB = + [1685104349.577988][30723:30725] CHIP:DMG: { + [1685104349.578122][30723:30725] CHIP:DMG: AttributePathIB = + [1685104349.578201][30723:30725] CHIP:DMG: { + [1685104349.578276][30723:30725] CHIP:DMG: Endpoint = 0x1, + [1685104349.578371][30723:30725] CHIP:DMG: Cluster = 0x202, + [1685104349.578448][30723:30725] CHIP:DMG: Attribute = 0x0000_0005, + [1685104349.578544][30723:30725] CHIP:DMG: } + [1685104349.578625][30723:30725] CHIP:DMG: + [1685104349.578720][30723:30725] CHIP:DMG: StatusIB = + [1685104349.578793][30723:30725] CHIP:DMG: { + [1685104349.578893][30723:30725] CHIP:DMG: status = 0x00 (SUCCESS), + [1685104349.578967][30723:30725] CHIP:DMG: }, + [1685104349.579062][30723:30725] CHIP:DMG: + [1685104349.579125][30723:30725] CHIP:DMG: }, + [1685104349.579214][30723:30725] CHIP:DMG: + [1685104349.579270][30723:30725] CHIP:DMG: ], + [1685104349.579340][30723:30725] CHIP:DMG: + [1685104349.579420][30723:30725] CHIP:DMG: InteractionModelRevision = 1 + [1685104349.579474][30723:30725] CHIP:DMG: } + [1685104349.579657][30723:30725] CHIP:DMG: WriteClient moving to [AwaitingDe] + disabled: true + + - label: + "Step 6b: after a few seconds, TH sends Step command to DUT with + Direction set to Increase, Wrap set to true, and LowestOff set to true" + PICS: FAN.S.C00.Rsp + verification: | + ./chip-tool fancontrol step 0 1 1 --Wrap true --LowestOff true + + On TH(chip-tool), Verify the SUCCESS response for sending Step command. + + [1688369238.200998][44233:44235] CHIP:DMG: StatusIB = + [1688369238.201073][44233:44235] CHIP:DMG: { + [1688369238.201149][44233:44235] CHIP:DMG: status = 0x00 (SUCCESS), + [1688369238.201226][44233:44235] CHIP:DMG: }, + disabled: true + + - label: + "Step 6c: after a few seconds, TH reads from the DUT the SpeedCurrent + attribute" + PICS: FAN.S.A0006 + verification: | + ./chip-tool fancontrol read speed-current 1 1 + + On TH(chip-tool), Verify the SpeedCurrent attribute value is 0. + + [1688649821.674949][7869:7871] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0006 DataVersion: 2333446701 + [1688649821.675124][7869:7871] CHIP:TOO: SpeedCurrent: 100 + [1688649821.675408][7869:7871] CHIP:EM: <<< [E:46324i S:9042 M:257483571 (Ack:231043875)] (S) Msg TX to 1:0000000000000001 [08DD] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: + "Step 7a: TH writes to the DUT the SpeedSetting attribute with a value + of 1" + PICS: FAN.S.A0005 + verification: | + ./chip-tool fancontrol write speed-setting 1 1 1 + + On TH(chip-tool), Verify the SUCCESS response for SpeedSetting attribute successful write. + + [1685104349.577491][30723:30725] CHIP:DMG: WriteClient moving to [ResponseRe] + [1685104349.577594][30723:30725] CHIP:DMG: WriteResponseMessage = + [1685104349.577653][30723:30725] CHIP:DMG: { + [1685104349.577728][30723:30725] CHIP:DMG: AttributeStatusIBs = + [1685104349.577838][30723:30725] CHIP:DMG: [ + [1685104349.577897][30723:30725] CHIP:DMG: AttributeStatusIB = + [1685104349.577988][30723:30725] CHIP:DMG: { + [1685104349.578122][30723:30725] CHIP:DMG: AttributePathIB = + [1685104349.578201][30723:30725] CHIP:DMG: { + [1685104349.578276][30723:30725] CHIP:DMG: Endpoint = 0x1, + [1685104349.578371][30723:30725] CHIP:DMG: Cluster = 0x202, + [1685104349.578448][30723:30725] CHIP:DMG: Attribute = 0x0000_0005, + [1685104349.578544][30723:30725] CHIP:DMG: } + [1685104349.578625][30723:30725] CHIP:DMG: + [1685104349.578720][30723:30725] CHIP:DMG: StatusIB = + [1685104349.578793][30723:30725] CHIP:DMG: { + [1685104349.578893][30723:30725] CHIP:DMG: status = 0x00 (SUCCESS), + [1685104349.578967][30723:30725] CHIP:DMG: }, + [1685104349.579062][30723:30725] CHIP:DMG: + [1685104349.579125][30723:30725] CHIP:DMG: }, + [1685104349.579214][30723:30725] CHIP:DMG: + [1685104349.579270][30723:30725] CHIP:DMG: ], + [1685104349.579340][30723:30725] CHIP:DMG: + [1685104349.579420][30723:30725] CHIP:DMG: InteractionModelRevision = 1 + [1685104349.579474][30723:30725] CHIP:DMG: } + [1685104349.579657][30723:30725] CHIP:DMG: WriteClient moving to [AwaitingDe] + disabled: true + + - label: + "Step 7b: after a few seconds, TH sends Step command to DUT with + Direction set to Decrease and Wrap set to false and LowestOff set to + false" + PICS: FAN.S.C00.Rsp + verification: | + ./chip-tool fancontrol step 1 1 1 --Wrap false --LowestOff false + + On TH(chip-tool), Verify the SUCCESS response for sending Step command. + + [1688369238.200998][44233:44235] CHIP:DMG: StatusIB = + [1688369238.201073][44233:44235] CHIP:DMG: { + [1688369238.201149][44233:44235] CHIP:DMG: status = 0x00 (SUCCESS), + [1688369238.201226][44233:44235] CHIP:DMG: }, + disabled: true + + - label: + "Step 7c: after a few seconds, TH reads from the DUT the SpeedCurrent + attribute" + PICS: FAN.S.A0006 + verification: | + ./chip-tool fancontrol read speed-current 1 1 + + On TH(chip-tool), Verify the SpeedCurrent attribute value is 1. + + [1688649821.674949][7869:7871] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0006 DataVersion: 2333446701 + [1688649821.675124][7869:7871] CHIP:TOO: SpeedCurrent: 1 + [1688649821.675408][7869:7871] CHIP:EM: <<< [E:46324i S:9042 M:257483571 (Ack:231043875)] (S) Msg TX to 1:0000000000000001 [08DD] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: "Step 8a: TH reads from the DUT the SpeedMax attribute" + PICS: FAN.S.A0004 + verification: | + ./chip-tool fancontrol read speed-max 1 1 + + On TH(chip-tool), Verify the SpeedMax attribute value is in the range of 1 to 100. + + [1688647242.182652][7491:7493] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0004 DataVersion: 2333446701 + [1688647242.182906][7491:7493] CHIP:TOO: SpeedMax: 100 + [1688647242.183197][7491:7493] CHIP:EM: <<< [E:6958i S:20670 M:246576408 (Ack:49619178)] (S) Msg TX to 1:0000000000000001 [08DD] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: + "Step 8b: TH writes to the DUT the SpeedSetting attribute with a value + of 1" + PICS: FAN.S.A0005 + verification: | + ./chip-tool fancontrol write speed-setting 1 1 1 + + On TH(chip-tool), Verify the SUCCESS response for SpeedSetting attribute successful write. + + [1685104349.577491][30723:30725] CHIP:DMG: WriteClient moving to [ResponseRe] + [1685104349.577594][30723:30725] CHIP:DMG: WriteResponseMessage = + [1685104349.577653][30723:30725] CHIP:DMG: { + [1685104349.577728][30723:30725] CHIP:DMG: AttributeStatusIBs = + [1685104349.577838][30723:30725] CHIP:DMG: [ + [1685104349.577897][30723:30725] CHIP:DMG: AttributeStatusIB = + [1685104349.577988][30723:30725] CHIP:DMG: { + [1685104349.578122][30723:30725] CHIP:DMG: AttributePathIB = + [1685104349.578201][30723:30725] CHIP:DMG: { + [1685104349.578276][30723:30725] CHIP:DMG: Endpoint = 0x1, + [1685104349.578371][30723:30725] CHIP:DMG: Cluster = 0x202, + [1685104349.578448][30723:30725] CHIP:DMG: Attribute = 0x0000_0005, + [1685104349.578544][30723:30725] CHIP:DMG: } + [1685104349.578625][30723:30725] CHIP:DMG: + [1685104349.578720][30723:30725] CHIP:DMG: StatusIB = + [1685104349.578793][30723:30725] CHIP:DMG: { + [1685104349.578893][30723:30725] CHIP:DMG: status = 0x00 (SUCCESS), + [1685104349.578967][30723:30725] CHIP:DMG: }, + [1685104349.579062][30723:30725] CHIP:DMG: + [1685104349.579125][30723:30725] CHIP:DMG: }, + [1685104349.579214][30723:30725] CHIP:DMG: + [1685104349.579270][30723:30725] CHIP:DMG: ], + [1685104349.579340][30723:30725] CHIP:DMG: + [1685104349.579420][30723:30725] CHIP:DMG: InteractionModelRevision = 1 + [1685104349.579474][30723:30725] CHIP:DMG: } + [1685104349.579657][30723:30725] CHIP:DMG: WriteClient moving to [AwaitingDe] + disabled: true + + - label: + "Step 8c: after a few seconds, TH sends Step command to DUT with + Direction set to Decrease, Wrap set to true, and LowestOff set to + false" + PICS: FAN.S.C00.Rsp + verification: | + ./chip-tool fancontrol step 1 1 1 --Wrap true --LowestOff false + + On TH(chip-tool), Verify the SUCCESS response for sending Step command. + + [1688369238.200998][44233:44235] CHIP:DMG: StatusIB = + [1688369238.201073][44233:44235] CHIP:DMG: { + [1688369238.201149][44233:44235] CHIP:DMG: status = 0x00 (SUCCESS), + [1688369238.201226][44233:44235] CHIP:DMG: }, + disabled: true + + - label: + "Step 8d: after a few seconds, TH reads from the DUT the SpeedCurrent + attribute" + PICS: FAN.S.A0006 + verification: | + ./chip-tool fancontrol read speed-current 1 1 + + On TH(chip-tool), Verify the SpeedCurrent attribute value is same as step 8a. + + [1688649821.674949][7869:7871] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0006 DataVersion: 2333446701 + [1688649821.675124][7869:7871] CHIP:TOO: SpeedCurrent: 1 + [1688649821.675408][7869:7871] CHIP:EM: <<< [E:46324i S:9042 M:257483571 (Ack:231043875)] (S) Msg TX to 1:0000000000000001 [08DD] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: "Step 9a: TH reads from the DUT the SpeedMax attribute" + PICS: FAN.S.A0004 + verification: | + ./chip-tool fancontrol read speed-max 1 1 + + On TH(chip-tool), Verify the SpeedMax attribute value is in the range of 1 to 100. + + [1688647242.182652][7491:7493] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0004 DataVersion: 2333446701 + [1688647242.182906][7491:7493] CHIP:TOO: SpeedMax: 100 + [1688647242.183197][7491:7493] CHIP:EM: <<< [E:6958i S:20670 M:246576408 (Ack:49619178)] (S) Msg TX to 1:0000000000000001 [08DD] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: + "Step 9b: TH writes to the DUT the SpeedSetting attribute with value + of zero" + PICS: FAN.S.A0005 + verification: | + ./chip-tool fancontrol write speed-setting 0 1 1 + + On TH(chip-tool), Verify the SUCCESS response for SpeedSetting attribute successful write. + + [1685104349.577491][30723:30725] CHIP:DMG: WriteClient moving to [ResponseRe] + [1685104349.577594][30723:30725] CHIP:DMG: WriteResponseMessage = + [1685104349.577653][30723:30725] CHIP:DMG: { + [1685104349.577728][30723:30725] CHIP:DMG: AttributeStatusIBs = + [1685104349.577838][30723:30725] CHIP:DMG: [ + [1685104349.577897][30723:30725] CHIP:DMG: AttributeStatusIB = + [1685104349.577988][30723:30725] CHIP:DMG: { + [1685104349.578122][30723:30725] CHIP:DMG: AttributePathIB = + [1685104349.578201][30723:30725] CHIP:DMG: { + [1685104349.578276][30723:30725] CHIP:DMG: Endpoint = 0x1, + [1685104349.578371][30723:30725] CHIP:DMG: Cluster = 0x202, + [1685104349.578448][30723:30725] CHIP:DMG: Attribute = 0x0000_0005, + [1685104349.578544][30723:30725] CHIP:DMG: } + [1685104349.578625][30723:30725] CHIP:DMG: + [1685104349.578720][30723:30725] CHIP:DMG: StatusIB = + [1685104349.578793][30723:30725] CHIP:DMG: { + [1685104349.578893][30723:30725] CHIP:DMG: status = 0x00 (SUCCESS), + [1685104349.578967][30723:30725] CHIP:DMG: }, + [1685104349.579062][30723:30725] CHIP:DMG: + [1685104349.579125][30723:30725] CHIP:DMG: }, + [1685104349.579214][30723:30725] CHIP:DMG: + [1685104349.579270][30723:30725] CHIP:DMG: ], + [1685104349.579340][30723:30725] CHIP:DMG: + [1685104349.579420][30723:30725] CHIP:DMG: InteractionModelRevision = 1 + [1685104349.579474][30723:30725] CHIP:DMG: } + [1685104349.579657][30723:30725] CHIP:DMG: WriteClient moving to [AwaitingDe] + disabled: true + + - label: + "Step 9c: after a few seconds, TH sends Step command to DUT with + Direction set to Decrease, Wrap set to true, and LowestOff set to true" + PICS: FAN.S.C00.Rsp + verification: | + ./chip-tool fancontrol step 1 1 1 --Wrap true --LowestOff true + + On TH(chip-tool), Verify the SUCCESS response for sending Step command. + + [1688369238.200998][44233:44235] CHIP:DMG: StatusIB = + [1688369238.201073][44233:44235] CHIP:DMG: { + [1688369238.201149][44233:44235] CHIP:DMG: status = 0x00 (SUCCESS), + [1688369238.201226][44233:44235] CHIP:DMG: }, + disabled: true + + - label: + "Step 9d: after a few seconds, TH reads from the DUT the SpeedCurrent + attribute" + PICS: FAN.S.A0006 + verification: | + ./chip-tool fancontrol read speed-current 1 1 + + On TH(chip-tool), Verify the SpeedCurrent attribute value is same as step 9a. + + [1688649821.674949][7869:7871] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0202 Attribute 0x0000_0006 DataVersion: 2333446701 + [1688649821.675124][7869:7871] CHIP:TOO: SpeedCurrent: 0 + [1688649821.675408][7869:7871] CHIP:EM: <<< [E:46324i S:9042 M:257483571 (Ack:231043875)] (S) Msg TX to 1:0000000000000001 [08DD] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_FAN_3_6.yaml b/src/app/tests/suites/certification/Test_TC_FAN_3_6.yaml index 8c296d2977f663..e80d49196cb3a8 100644 --- a/src/app/tests/suites/certification/Test_TC_FAN_3_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_FAN_3_6.yaml @@ -11,8 +11,9 @@ # 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 263.2.7. [TC-FAN-3.2] Optional direction functionality with DUT as Server +name: 263.2.11. [TC-FAN-3.6] Optional direction functionality with DUT as Server PICS: - FAN.S diff --git a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml index 5439cb91d10bd8..5764f51594be54 100644 --- a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml @@ -29,306 +29,301 @@ tests: - label: "Precondition" verification: | TH is commissioned with DUT - disabled: true - - label: - "Precondition: TH reads the MaxGroupsPerFabric from Group key - Management Cluster and saves it as maxgroups" - verification: | + TH reads the MaxGroupsPerFabric from Group key Management Cluster and saves it as maxgroups + ./chip-tool groupkeymanagement read max-groups-per-fabric 1 0 - Verify the "MaxGroupsPerFabric value" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + Verify the "MaxGroupsPerFabric" value is 12 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1683797307.084182][38841:38843] CHIP:DMG: } [1683797307.084220][38841:38843] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0002 DataVersion: 366443848 [1683797307.084237][38841:38843] CHIP:TOO: MaxGroupsPerFabric: 12 disabled: true - - label: | - Precondition: If maxgroups>1, proceed with the following steps, - - TH generates fabric-unique GroupID, GroupName, random key, EpochKey0 - and GroupKeySetID. - - TH generates an EpochKey and saves as epoch_key_set1_epoch0 - - TH sends a KeySetWriteCommand to the Group Key Management cluster with - the following fields set in the GroupKeySet struct: + - label: + "Step 1a: TH sends KeySetWrite command in the GroupKeyManagement + cluster to DUT on EP0 using a key that is pre-installed on the TH. + GroupKeySet fields are as follows: GroupKeySetID: 1 + GroupKeySecurityPolicy: TrustFirst (0) EpochKey0: + 0d0d1d2d3d4d5d6d7d8d9dadbdcdddedf EpochStartTime0: 2220000 EpochKey1: + 0d1d1d2d3d4d5d6d7d8d9dadbdcdddedf EpochStartTime1: 2220001 EpochKey2: + 0d2d1d2d3d4d5d6d7d8d9dadbdcdddedf EpochStartTime2: 2220002" + verification: | + ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, "groupKeySecurityPolicy": 0, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": + "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 - GroupKeySetId is 1 + Verify DUT responds with SUCCESS status response on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - EpochKey0 is epoch_key_set0_epoch0 + [1658316948.574526][4039:4044] CHIP:DMG: StatusIB = + [1658316948.574561][4039:4044] CHIP:DMG: { + [1658316948.574597][4039:4044] CHIP:DMG: status = 0x00 (SUCCESS), + [1658316948.574632][4039:4044] CHIP:DMG: }, + disabled: true - GroupKeySecurityPolicy = TrustFirst (1) + - label: + "Step 1b: TH writes the GroupKeyMap attribute in the + GroupKeyManagement cluster on EP0 with maxgroups entries binding + GroupId(0x0001 to (maxgroups)) with GroupKeySetID 1" + verification: | + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":4, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 5, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":8, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 9, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":10, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 11, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":12, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 + + Verify DUT responds with SUCCESS status response on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683797474.814392][38909:38911] CHIP:DMG: WriteResponseMessage = + [1683797474.814395][38909:38911] CHIP:DMG: { + [1683797474.814398][38909:38911] CHIP:DMG: AttributeStatusIBs = + [1683797474.814403][38909:38911] CHIP:DMG: [ + [1683797474.814405][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814410][38909:38911] CHIP:DMG: { + [1683797474.814414][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814419][38909:38911] CHIP:DMG: { + [1683797474.814424][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814429][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814435][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814441][38909:38911] CHIP:DMG: } + [1683797474.814447][38909:38911] CHIP:DMG: + [1683797474.814451][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814456][38909:38911] CHIP:DMG: { + [1683797474.814466][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814471][38909:38911] CHIP:DMG: }, + [1683797474.814476][38909:38911] CHIP:DMG: + [1683797474.814480][38909:38911] CHIP:DMG: }, + [1683797474.814489][38909:38911] CHIP:DMG: + [1683797474.814493][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814498][38909:38911] CHIP:DMG: { + [1683797474.814501][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814506][38909:38911] CHIP:DMG: { + [1683797474.814510][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814515][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814520][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814527][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814530][38909:38911] CHIP:DMG: } + [1683797474.814541][38909:38911] CHIP:DMG: + [1683797474.814546][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814551][38909:38911] CHIP:DMG: { + [1683797474.814555][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814560][38909:38911] CHIP:DMG: }, + [1683797474.814564][38909:38911] CHIP:DMG: + [1683797474.814567][38909:38911] CHIP:DMG: }, + [1683797474.814576][38909:38911] CHIP:DMG: + [1683797474.814579][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814583][38909:38911] CHIP:DMG: { + [1683797474.814586][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814591][38909:38911] CHIP:DMG: { + [1683797474.814595][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814599][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814604][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814609][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814615][38909:38911] CHIP:DMG: } + [1683797474.814622][38909:38911] CHIP:DMG: + [1683797474.814626][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814630][38909:38911] CHIP:DMG: { + [1683797474.814634][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814639][38909:38911] CHIP:DMG: }, + [1683797474.814644][38909:38911] CHIP:DMG: + [1683797474.814647][38909:38911] CHIP:DMG: }, + [1683797474.814657][38909:38911] CHIP:DMG: + [1683797474.814660][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814665][38909:38911] CHIP:DMG: { + [1683797474.814668][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814675][38909:38911] CHIP:DMG: { + [1683797474.814680][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814683][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814688][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814692][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814696][38909:38911] CHIP:DMG: } + [1683797474.814702][38909:38911] CHIP:DMG: + [1683797474.814706][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814710][38909:38911] CHIP:DMG: { + [1683797474.814715][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814720][38909:38911] CHIP:DMG: }, + [1683797474.814724][38909:38911] CHIP:DMG: + [1683797474.814728][38909:38911] CHIP:DMG: }, + [1683797474.814737][38909:38911] CHIP:DMG: + [1683797474.814741][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814745][38909:38911] CHIP:DMG: { + [1683797474.814748][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814752][38909:38911] CHIP:DMG: { + [1683797474.814757][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814761][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814767][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814771][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814776][38909:38911] CHIP:DMG: } + [1683797474.814782][38909:38911] CHIP:DMG: + [1683797474.814786][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814791][38909:38911] CHIP:DMG: { + [1683797474.814795][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814799][38909:38911] CHIP:DMG: }, + [1683797474.814803][38909:38911] CHIP:DMG: + [1683797474.814808][38909:38911] CHIP:DMG: }, + [1683797474.814817][38909:38911] CHIP:DMG: + [1683797474.814821][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814825][38909:38911] CHIP:DMG: { + [1683797474.814828][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814835][38909:38911] CHIP:DMG: { + [1683797474.814839][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814844][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814868][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814872][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814876][38909:38911] CHIP:DMG: } + [1683797474.814882][38909:38911] CHIP:DMG: + [1683797474.814886][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814892][38909:38911] CHIP:DMG: { + [1683797474.814896][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814901][38909:38911] CHIP:DMG: }, + [1683797474.814906][38909:38911] CHIP:DMG: + [1683797474.814910][38909:38911] CHIP:DMG: }, + [1683797474.814919][38909:38911] CHIP:DMG: + [1683797474.814922][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.814927][38909:38911] CHIP:DMG: { + [1683797474.814931][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.814935][38909:38911] CHIP:DMG: { + [1683797474.814939][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.814944][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.814950][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.814954][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.814958][38909:38911] CHIP:DMG: } + [1683797474.814965][38909:38911] CHIP:DMG: + [1683797474.814969][38909:38911] CHIP:DMG: StatusIB = + [1683797474.814973][38909:38911] CHIP:DMG: { + [1683797474.814978][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.814982][38909:38911] CHIP:DMG: }, + [1683797474.814987][38909:38911] CHIP:DMG: + [1683797474.814991][38909:38911] CHIP:DMG: }, + [1683797474.815000][38909:38911] CHIP:DMG: + [1683797474.815003][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815007][38909:38911] CHIP:DMG: { + [1683797474.815011][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815015][38909:38911] CHIP:DMG: { + [1683797474.815019][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815024][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815029][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815033][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815038][38909:38911] CHIP:DMG: } + [1683797474.815045][38909:38911] CHIP:DMG: + [1683797474.815048][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815054][38909:38911] CHIP:DMG: { + [1683797474.815058][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815062][38909:38911] CHIP:DMG: }, + [1683797474.815067][38909:38911] CHIP:DMG: + [1683797474.815071][38909:38911] CHIP:DMG: }, + [1683797474.815080][38909:38911] CHIP:DMG: + [1683797474.815084][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815088][38909:38911] CHIP:DMG: { + [1683797474.815091][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815096][38909:38911] CHIP:DMG: { + [1683797474.815100][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815107][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815112][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815117][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815121][38909:38911] CHIP:DMG: } + [1683797474.815127][38909:38911] CHIP:DMG: + [1683797474.815131][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815135][38909:38911] CHIP:DMG: { + [1683797474.815139][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815143][38909:38911] CHIP:DMG: }, + [1683797474.815148][38909:38911] CHIP:DMG: + [1683797474.815151][38909:38911] CHIP:DMG: }, + [1683797474.815160][38909:38911] CHIP:DMG: + [1683797474.815164][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815168][38909:38911] CHIP:DMG: { + [1683797474.815171][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815177][38909:38911] CHIP:DMG: { + [1683797474.815181][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815186][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815190][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815198][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815202][38909:38911] CHIP:DMG: } + [1683797474.815207][38909:38911] CHIP:DMG: + [1683797474.815211][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815216][38909:38911] CHIP:DMG: { + [1683797474.815220][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815224][38909:38911] CHIP:DMG: }, + [1683797474.815230][38909:38911] CHIP:DMG: + [1683797474.815233][38909:38911] CHIP:DMG: }, + [1683797474.815242][38909:38911] CHIP:DMG: + [1683797474.815245][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815249][38909:38911] CHIP:DMG: { + [1683797474.815252][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815257][38909:38911] CHIP:DMG: { + [1683797474.815262][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815266][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815271][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815275][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815278][38909:38911] CHIP:DMG: } + [1683797474.815285][38909:38911] CHIP:DMG: + [1683797474.815289][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815293][38909:38911] CHIP:DMG: { + [1683797474.815297][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815300][38909:38911] CHIP:DMG: }, + [1683797474.815305][38909:38911] CHIP:DMG: + [1683797474.815308][38909:38911] CHIP:DMG: }, + [1683797474.815317][38909:38911] CHIP:DMG: + [1683797474.815321][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815325][38909:38911] CHIP:DMG: { + [1683797474.815329][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815333][38909:38911] CHIP:DMG: { + [1683797474.815337][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815342][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815346][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815352][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815356][38909:38911] CHIP:DMG: } + [1683797474.815363][38909:38911] CHIP:DMG: + [1683797474.815366][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815370][38909:38911] CHIP:DMG: { + [1683797474.815375][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815379][38909:38911] CHIP:DMG: }, + [1683797474.815383][38909:38911] CHIP:DMG: + [1683797474.815387][38909:38911] CHIP:DMG: }, + [1683797474.815396][38909:38911] CHIP:DMG: + [1683797474.815400][38909:38911] CHIP:DMG: AttributeStatusIB = + [1683797474.815404][38909:38911] CHIP:DMG: { + [1683797474.815407][38909:38911] CHIP:DMG: AttributePathIB = + [1683797474.815411][38909:38911] CHIP:DMG: { + [1683797474.815415][38909:38911] CHIP:DMG: Endpoint = 0x0, + [1683797474.815419][38909:38911] CHIP:DMG: Cluster = 0x3f, + [1683797474.815424][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, + [1683797474.815428][38909:38911] CHIP:DMG: ListIndex = Null, + [1683797474.815432][38909:38911] CHIP:DMG: } + [1683797474.815439][38909:38911] CHIP:DMG: + [1683797474.815443][38909:38911] CHIP:DMG: StatusIB = + [1683797474.815448][38909:38911] CHIP:DMG: { + [1683797474.815452][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), + [1683797474.815455][38909:38911] CHIP:DMG: }, + [1683797474.815460][38909:38911] CHIP:DMG: + [1683797474.815463][38909:38911] CHIP:DMG: }, + [1683797474.815469][38909:38911] CHIP:DMG: + [1683797474.815473][38909:38911] CHIP:DMG: ], + [1683797474.815508][38909:38911] CHIP:DMG: + [1683797474.815512][38909:38911] CHIP:DMG: InteractionModelRevision = 1 + [1683797474.815515][38909:38911] CHIP:DMG: } + disabled: true - GroupKeyMulticastPolicy = PerGroupID (0) + - label: + "Step 1c: TH cleans up the groups by sending the RemoveAllGroups + command to the DUT on PIXIT.MOD.ENDPOINT" + verification: | + ./chip-tool groups remove-all-groups 1 0 - EpochStartTime0 = 0 + Verify DUT responds with SUCCESS status response on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - TH binds GroupId(0x0001 to (maxgroups+1)) with GroupKeySetID in the - GroupKeyMap attribute list on GroupKeyManagement cluster with the - values provided in the above steps - verification: | - Execute the following command in TH to generate the pre-condition to execute this test case: - - ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, - "groupKeySecurityPolicy": 1, "epochKey0": - "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": - "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": - "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1658316948.574526][4039:4044] CHIP:DMG: StatusIB = - [1658316948.574561][4039:4044] CHIP:DMG: { - [1658316948.574597][4039:4044] CHIP:DMG: status = 0x00 (SUCCESS), - [1658316948.574632][4039:4044] CHIP:DMG: }, - - Before adding the Groups(0x0001 to Maxgroup) execute below command to bind the GroupId with GroupKeySetId . - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":4, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 5, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":8, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 9, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":10, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 11, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":12, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1683797474.814392][38909:38911] CHIP:DMG: WriteResponseMessage = - [1683797474.814395][38909:38911] CHIP:DMG: { - [1683797474.814398][38909:38911] CHIP:DMG: AttributeStatusIBs = - [1683797474.814403][38909:38911] CHIP:DMG: [ - [1683797474.814405][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.814410][38909:38911] CHIP:DMG: { - [1683797474.814414][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.814419][38909:38911] CHIP:DMG: { - [1683797474.814424][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.814429][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.814435][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.814441][38909:38911] CHIP:DMG: } - [1683797474.814447][38909:38911] CHIP:DMG: - [1683797474.814451][38909:38911] CHIP:DMG: StatusIB = - [1683797474.814456][38909:38911] CHIP:DMG: { - [1683797474.814466][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.814471][38909:38911] CHIP:DMG: }, - [1683797474.814476][38909:38911] CHIP:DMG: - [1683797474.814480][38909:38911] CHIP:DMG: }, - [1683797474.814489][38909:38911] CHIP:DMG: - [1683797474.814493][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.814498][38909:38911] CHIP:DMG: { - [1683797474.814501][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.814506][38909:38911] CHIP:DMG: { - [1683797474.814510][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.814515][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.814520][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.814527][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.814530][38909:38911] CHIP:DMG: } - [1683797474.814541][38909:38911] CHIP:DMG: - [1683797474.814546][38909:38911] CHIP:DMG: StatusIB = - [1683797474.814551][38909:38911] CHIP:DMG: { - [1683797474.814555][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.814560][38909:38911] CHIP:DMG: }, - [1683797474.814564][38909:38911] CHIP:DMG: - [1683797474.814567][38909:38911] CHIP:DMG: }, - [1683797474.814576][38909:38911] CHIP:DMG: - [1683797474.814579][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.814583][38909:38911] CHIP:DMG: { - [1683797474.814586][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.814591][38909:38911] CHIP:DMG: { - [1683797474.814595][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.814599][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.814604][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.814609][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.814615][38909:38911] CHIP:DMG: } - [1683797474.814622][38909:38911] CHIP:DMG: - [1683797474.814626][38909:38911] CHIP:DMG: StatusIB = - [1683797474.814630][38909:38911] CHIP:DMG: { - [1683797474.814634][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.814639][38909:38911] CHIP:DMG: }, - [1683797474.814644][38909:38911] CHIP:DMG: - [1683797474.814647][38909:38911] CHIP:DMG: }, - [1683797474.814657][38909:38911] CHIP:DMG: - [1683797474.814660][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.814665][38909:38911] CHIP:DMG: { - [1683797474.814668][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.814675][38909:38911] CHIP:DMG: { - [1683797474.814680][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.814683][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.814688][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.814692][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.814696][38909:38911] CHIP:DMG: } - [1683797474.814702][38909:38911] CHIP:DMG: - [1683797474.814706][38909:38911] CHIP:DMG: StatusIB = - [1683797474.814710][38909:38911] CHIP:DMG: { - [1683797474.814715][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.814720][38909:38911] CHIP:DMG: }, - [1683797474.814724][38909:38911] CHIP:DMG: - [1683797474.814728][38909:38911] CHIP:DMG: }, - [1683797474.814737][38909:38911] CHIP:DMG: - [1683797474.814741][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.814745][38909:38911] CHIP:DMG: { - [1683797474.814748][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.814752][38909:38911] CHIP:DMG: { - [1683797474.814757][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.814761][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.814767][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.814771][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.814776][38909:38911] CHIP:DMG: } - [1683797474.814782][38909:38911] CHIP:DMG: - [1683797474.814786][38909:38911] CHIP:DMG: StatusIB = - [1683797474.814791][38909:38911] CHIP:DMG: { - [1683797474.814795][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.814799][38909:38911] CHIP:DMG: }, - [1683797474.814803][38909:38911] CHIP:DMG: - [1683797474.814808][38909:38911] CHIP:DMG: }, - [1683797474.814817][38909:38911] CHIP:DMG: - [1683797474.814821][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.814825][38909:38911] CHIP:DMG: { - [1683797474.814828][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.814835][38909:38911] CHIP:DMG: { - [1683797474.814839][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.814844][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.814868][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.814872][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.814876][38909:38911] CHIP:DMG: } - [1683797474.814882][38909:38911] CHIP:DMG: - [1683797474.814886][38909:38911] CHIP:DMG: StatusIB = - [1683797474.814892][38909:38911] CHIP:DMG: { - [1683797474.814896][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.814901][38909:38911] CHIP:DMG: }, - [1683797474.814906][38909:38911] CHIP:DMG: - [1683797474.814910][38909:38911] CHIP:DMG: }, - [1683797474.814919][38909:38911] CHIP:DMG: - [1683797474.814922][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.814927][38909:38911] CHIP:DMG: { - [1683797474.814931][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.814935][38909:38911] CHIP:DMG: { - [1683797474.814939][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.814944][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.814950][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.814954][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.814958][38909:38911] CHIP:DMG: } - [1683797474.814965][38909:38911] CHIP:DMG: - [1683797474.814969][38909:38911] CHIP:DMG: StatusIB = - [1683797474.814973][38909:38911] CHIP:DMG: { - [1683797474.814978][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.814982][38909:38911] CHIP:DMG: }, - [1683797474.814987][38909:38911] CHIP:DMG: - [1683797474.814991][38909:38911] CHIP:DMG: }, - [1683797474.815000][38909:38911] CHIP:DMG: - [1683797474.815003][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.815007][38909:38911] CHIP:DMG: { - [1683797474.815011][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.815015][38909:38911] CHIP:DMG: { - [1683797474.815019][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.815024][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.815029][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.815033][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.815038][38909:38911] CHIP:DMG: } - [1683797474.815045][38909:38911] CHIP:DMG: - [1683797474.815048][38909:38911] CHIP:DMG: StatusIB = - [1683797474.815054][38909:38911] CHIP:DMG: { - [1683797474.815058][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.815062][38909:38911] CHIP:DMG: }, - [1683797474.815067][38909:38911] CHIP:DMG: - [1683797474.815071][38909:38911] CHIP:DMG: }, - [1683797474.815080][38909:38911] CHIP:DMG: - [1683797474.815084][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.815088][38909:38911] CHIP:DMG: { - [1683797474.815091][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.815096][38909:38911] CHIP:DMG: { - [1683797474.815100][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.815107][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.815112][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.815117][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.815121][38909:38911] CHIP:DMG: } - [1683797474.815127][38909:38911] CHIP:DMG: - [1683797474.815131][38909:38911] CHIP:DMG: StatusIB = - [1683797474.815135][38909:38911] CHIP:DMG: { - [1683797474.815139][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.815143][38909:38911] CHIP:DMG: }, - [1683797474.815148][38909:38911] CHIP:DMG: - [1683797474.815151][38909:38911] CHIP:DMG: }, - [1683797474.815160][38909:38911] CHIP:DMG: - [1683797474.815164][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.815168][38909:38911] CHIP:DMG: { - [1683797474.815171][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.815177][38909:38911] CHIP:DMG: { - [1683797474.815181][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.815186][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.815190][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.815198][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.815202][38909:38911] CHIP:DMG: } - [1683797474.815207][38909:38911] CHIP:DMG: - [1683797474.815211][38909:38911] CHIP:DMG: StatusIB = - [1683797474.815216][38909:38911] CHIP:DMG: { - [1683797474.815220][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.815224][38909:38911] CHIP:DMG: }, - [1683797474.815230][38909:38911] CHIP:DMG: - [1683797474.815233][38909:38911] CHIP:DMG: }, - [1683797474.815242][38909:38911] CHIP:DMG: - [1683797474.815245][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.815249][38909:38911] CHIP:DMG: { - [1683797474.815252][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.815257][38909:38911] CHIP:DMG: { - [1683797474.815262][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.815266][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.815271][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.815275][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.815278][38909:38911] CHIP:DMG: } - [1683797474.815285][38909:38911] CHIP:DMG: - [1683797474.815289][38909:38911] CHIP:DMG: StatusIB = - [1683797474.815293][38909:38911] CHIP:DMG: { - [1683797474.815297][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.815300][38909:38911] CHIP:DMG: }, - [1683797474.815305][38909:38911] CHIP:DMG: - [1683797474.815308][38909:38911] CHIP:DMG: }, - [1683797474.815317][38909:38911] CHIP:DMG: - [1683797474.815321][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.815325][38909:38911] CHIP:DMG: { - [1683797474.815329][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.815333][38909:38911] CHIP:DMG: { - [1683797474.815337][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.815342][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.815346][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.815352][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.815356][38909:38911] CHIP:DMG: } - [1683797474.815363][38909:38911] CHIP:DMG: - [1683797474.815366][38909:38911] CHIP:DMG: StatusIB = - [1683797474.815370][38909:38911] CHIP:DMG: { - [1683797474.815375][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.815379][38909:38911] CHIP:DMG: }, - [1683797474.815383][38909:38911] CHIP:DMG: - [1683797474.815387][38909:38911] CHIP:DMG: }, - [1683797474.815396][38909:38911] CHIP:DMG: - [1683797474.815400][38909:38911] CHIP:DMG: AttributeStatusIB = - [1683797474.815404][38909:38911] CHIP:DMG: { - [1683797474.815407][38909:38911] CHIP:DMG: AttributePathIB = - [1683797474.815411][38909:38911] CHIP:DMG: { - [1683797474.815415][38909:38911] CHIP:DMG: Endpoint = 0x0, - [1683797474.815419][38909:38911] CHIP:DMG: Cluster = 0x3f, - [1683797474.815424][38909:38911] CHIP:DMG: Attribute = 0x0000_0000, - [1683797474.815428][38909:38911] CHIP:DMG: ListIndex = Null, - [1683797474.815432][38909:38911] CHIP:DMG: } - [1683797474.815439][38909:38911] CHIP:DMG: - [1683797474.815443][38909:38911] CHIP:DMG: StatusIB = - [1683797474.815448][38909:38911] CHIP:DMG: { - [1683797474.815452][38909:38911] CHIP:DMG: status = 0x00 (SUCCESS), - [1683797474.815455][38909:38911] CHIP:DMG: }, - [1683797474.815460][38909:38911] CHIP:DMG: - [1683797474.815463][38909:38911] CHIP:DMG: }, - [1683797474.815469][38909:38911] CHIP:DMG: - [1683797474.815473][38909:38911] CHIP:DMG: ], - [1683797474.815508][38909:38911] CHIP:DMG: - [1683797474.815512][38909:38911] CHIP:DMG: InteractionModelRevision = 1 - [1683797474.815515][38909:38911] CHIP:DMG: } + [1653485455.344097][11508:11513] CHIP:DMG: StatusIB = + [1653485455.344141][11508:11513] CHIP:DMG: { + [1653485455.344190][11508:11513] CHIP:DMG: status = 0x00 (SUCCESS), + [1653485455.344236][11508:11513] CHIP:DMG: }, disabled: true - label: - "If maxgroups>0, TH sends AddGroup command to DUT as unicast with the - following fields : GroupID as 0x0001 GroupName as Gp1" + "Step 1d: TH sends AddGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following fields : GroupID as 0x0001 GroupName as Gp1" PICS: G.S.C00.Rsp && G.S.C00.Tx verification: | - ./chip-tool groups add-group 0x0001 grp1 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and Group ID is in the inclusive range of 0x0001 to 0xffff ,below is the sample log provided for the raspi platform: + ./chip-tool groups add-group 0x0001 Gp1 1 0 + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x0001 and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1651218084.427102][2526:2531] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1651218084.427203][2526:2531] CHIP:TOO: AddGroupResponse: { @@ -338,14 +333,17 @@ tests: disabled: true - label: - "If maxgroups > 0, TH reads GroupTable attribute from the - GroupKeyManagement cluster from DUT on PIXIT.G.ENDPOINT" - PICS: GRPKEY.S.A0001 + "Step 2a & 2b: TH reads GroupTable attribute from the + GroupKeyManagement cluster from DUT on EP0. Verify that the GroupTable + contains an entry with the GroupName as Gp1" + PICS: GRPKEY.S.A0001 && G.S.F00 verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log ,GroupId as 0x0001 and below is the sample log provided for the raspi platform: - + Verify the "GroupTable entries" with following fields: + GroupId is 0x0001 + Endpoint is 0 + If G.S.F00(GN) is true then GroupName is Gp1, Otherwise empty on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: 1674543470.475997][19273:19275] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3217277217 [1674543470.476009][19273:19275] CHIP:TOO: GroupTable: 1 entries @@ -353,20 +351,21 @@ tests: [1674543470.476026][19273:19275] CHIP:TOO: GroupId: 1 [1674543470.476029][19273:19275] CHIP:TOO: Endpoints: 1 entries [1674543470.476033][19273:19275] CHIP:TOO: [1]: 0 - [1674543470.476037][19273:19275] CHIP:TOO: GroupName: grp1 + [1674543470.476037][19273:19275] CHIP:TOO: GroupName: Gp1 [1674543470.476039][19273:19275] CHIP:TOO: FabricIndex: 1 [1674543470.476042][19273:19275] CHIP:TOO: } disabled: true - label: - "If maxgroups>1, TH sends AddGroup command to DUT as unicast with the - following fields : GroupID as 0x0002 GroupName as Gp2" + "Step 3: TH sends AddGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following fields : GroupID as 0x0002 GroupName as Gp2" PICS: G.S.C00.Rsp && G.S.C00.Tx verification: | - ./chip-tool groups add-group 0x0002 grp2 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + ./chip-tool groups add-group 0x0002 Gp2 1 0 + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x0002 and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1653484028.897698][11275:11280] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1653484028.897804][11275:11280] CHIP:TOO: AddGroupResponse: { @@ -376,14 +375,17 @@ tests: disabled: true - label: - "If maxgroups > 1 TH reads GroupTable attribute from the - GroupKeyManagement cluster from DUT on PIXIT.G.ENDPOINT" - PICS: GRPKEY.S.A0001 + "Step 4a & 4b: TH reads GroupTable attribute from the + GroupKeyManagement cluster from DUT on Ep0. Verify that the GroupTable + contains an entry with the GroupName as Gp2" + PICS: GRPKEY.S.A0001 && G.S.F00 verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log and GroupId as 0x0002, below is the sample log provided for the raspi platform: - + Verify the "GroupTable entries" with following fields: + GroupId is 0x0002 + Endpoint is 0 + If G.S.F00(GN) is true then GroupName is Gp2, Otherwise empty on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: 1674543470.993207][19279:19281] CHIP:DMG: } [1674543470.993358][19279:19281] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3217277217 @@ -392,26 +394,29 @@ tests: [1674543470.993400][19279:19281] CHIP:TOO: GroupId: 1 [1674543470.993404][19279:19281] CHIP:TOO: Endpoints: 1 entries [1674543470.993408][19279:19281] CHIP:TOO: [1]: 0 - [1674543470.993411][19279:19281] CHIP:TOO: GroupName: grp1 + [1674543470.993411][19279:19281] CHIP:TOO: GroupName: Gp1 [1674543470.993414][19279:19281] CHIP:TOO: FabricIndex: 1 [1674543470.993417][19279:19281] CHIP:TOO: } [1674543470.993423][19279:19281] CHIP:TOO: [2]: { [1674543470.993426][19279:19281] CHIP:TOO: GroupId: 2 [1674543470.993429][19279:19281] CHIP:TOO: Endpoints: 1 entries [1674543470.993432][19279:19281] CHIP:TOO: [1]: 0 - [1674543470.993435][19279:19281] CHIP:TOO: GroupName: grp2 + [1674543470.993435][19279:19281] CHIP:TOO: GroupName: Gp2 [1674543470.993437][19279:19281] CHIP:TOO: FabricIndex: 1 [1674543470.993439][19279:19281] CHIP:TOO: } disabled: true - label: - "If maxgroups>2, TH sends AddGroup command to DUT (n-2) more times, - starting with GroupID 0x0003 and incrementing by 1 each time." + "Step 5: TH sends AddGroup command to DUT on PIXIT.G.ENDPOINT + (maxgroups-2) more times, starting with GroupID 0x0003 and + incrementing by 1 each time." PICS: G.S.C00.Rsp && G.S.C00.Tx verification: | - ./chip-tool groups add-group 0x0003 grp3 1 0 + ./chip-tool groups add-group 0x0003 Gp3 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x0003 and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1653484116.857523][11289:11294] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1653484116.857675][11289:11294] CHIP:TOO: AddGroupResponse: { @@ -419,9 +424,11 @@ tests: [1653484116.857787][11289:11294] CHIP:TOO: groupId: 3 [1653484116.857834][11289:11294] CHIP:TOO: } - ./chip-tool groups add-group 0x0004 grp4 1 0 + ./chip-tool groups add-group 0x0004 Gp4 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x0004 and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1674546345.099915][19986:19988] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000 [1674546345.099956][19986:19988] CHIP:TOO: AddGroupResponse: { @@ -429,9 +436,11 @@ tests: [1674546345.099983][19986:19988] CHIP:TOO: groupID: 4 [1674546345.099991][19986:19988] CHIP:TOO: } - ./chip-tool groups add-group 0x0005 grp5 1 0 + ./chip-tool groups add-group 0x0005 Gp5 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x0005 and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1683797532.820818][38963:38965] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1683797532.820829][38963:38965] CHIP:TOO: AddGroupResponse: { @@ -439,9 +448,11 @@ tests: [1683797532.820836][38963:38965] CHIP:TOO: groupID: 5 [1683797532.820839][38963:38965] CHIP:TOO: } - ./chip-tool groups add-group 0x0006 grp6 1 0 + ./chip-tool groups add-group 0x0006 Gp6 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x0006 and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1683798249.880860][39235:39237] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1683798249.880880][39235:39237] CHIP:TOO: AddGroupResponse: { @@ -449,9 +460,11 @@ tests: [1683798249.880889][39235:39237] CHIP:TOO: groupID: 6 [1683798249.880894][39235:39237] CHIP:TOO: } - ./chip-tool groups add-group 0x0007 grp7 1 0 + ./chip-tool groups add-group 0x0007 Gp7 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x0007 and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1683798272.917114][39258:39260] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1683798272.917127][39258:39260] CHIP:TOO: AddGroupResponse: { @@ -459,9 +472,11 @@ tests: [1683798272.917134][39258:39260] CHIP:TOO: groupID: 7 [1683798272.917137][39258:39260] CHIP:TOO: } - ./chip-tool groups add-group 0x0008 grp8 1 0 + ./chip-tool groups add-group 0x0008 Gp8 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x0008 and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1683798280.635111][39261:39263] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1683798280.635124][39261:39263] CHIP:TOO: AddGroupResponse: { @@ -469,9 +484,11 @@ tests: [1683798280.635132][39261:39263] CHIP:TOO: groupID: 8 [1683798280.635134][39261:39263] CHIP:TOO: } - ./chip-tool groups add-group 0x0009 grp9 1 0 + ./chip-tool groups add-group 0x0009 Gp9 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x0009 and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1683798286.442492][39265:39267] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1683798286.442506][39265:39267] CHIP:TOO: AddGroupResponse: { @@ -479,9 +496,11 @@ tests: [1683798286.442515][39265:39267] CHIP:TOO: groupID: 9 [1683798286.442519][39265:39267] CHIP:TOO: } - ./chip-tool groups add-group 0x000a grp10 1 0 + ./chip-tool groups add-group 0x000a Gp10 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x000a(In decimal 10) and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1683798294.910019][39276:39278] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1683798294.910031][39276:39278] CHIP:TOO: AddGroupResponse: { @@ -489,9 +508,11 @@ tests: [1683798294.910041][39276:39278] CHIP:TOO: groupID: 10 [1683798294.910044][39276:39278] CHIP:TOO: } - ./chip-tool groups add-group 0x000b grp11 1 0 + ./chip-tool groups add-group 0x000b Gp11 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x000b(In decimal 11) and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1683798300.856661][39279:39281] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1683798300.856672][39279:39281] CHIP:TOO: AddGroupResponse: { @@ -499,9 +520,11 @@ tests: [1683798300.856679][39279:39281] CHIP:TOO: groupID: 11 [1683798300.856681][39279:39281] CHIP:TOO: } - ./chip-tool groups add-group 0x000c grp12 1 0 + ./chip-tool groups add-group 0x000c Gp12 1 0 - Verify the "status is success" on the TH(Chip-tool) and Group ID is in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with following fields: + Status is SUCCESS + Group ID is 0x000c(In decimal 12) and same as the one which is sent in AddGroup command on the TH(Chip-tool) log and below is the sample log provided for the raspi platform: [1683798309.207611][39284:39286] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1683798309.207625][39284:39286] CHIP:TOO: AddGroupResponse: { @@ -511,13 +534,13 @@ tests: disabled: true - label: - "If maxgroups>2, TH reads GroupTable attribute from the - GroupKeyManagement cluster from DUT on PIXIT.G.ENDPOINT" + "Step 6: TH reads GroupTable attribute from the GroupKeyManagement + cluster from DUT on Ep0" PICS: GRPKEY.S.A0001 verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + Verify the "GroupTable entries" are same as GroupId's added in step 5 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1683799060.033379][39543:39545] CHIP:DMG: } [1683799060.033604][39543:39545] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443861 @@ -526,147 +549,145 @@ tests: [1683799060.033670][39543:39545] CHIP:TOO: GroupId: 1 [1683799060.033674][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033678][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033682][39543:39545] CHIP:TOO: GroupName: grp1 + [1683799060.033682][39543:39545] CHIP:TOO: GroupName: Gp1 [1683799060.033685][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033688][39543:39545] CHIP:TOO: } [1683799060.033693][39543:39545] CHIP:TOO: [2]: { [1683799060.033696][39543:39545] CHIP:TOO: GroupId: 2 [1683799060.033700][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033704][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033707][39543:39545] CHIP:TOO: GroupName: grp2 + [1683799060.033707][39543:39545] CHIP:TOO: GroupName: Gp2 [1683799060.033710][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033711][39543:39545] CHIP:TOO: } [1683799060.033717][39543:39545] CHIP:TOO: [3]: { [1683799060.033719][39543:39545] CHIP:TOO: GroupId: 3 [1683799060.033722][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033726][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033728][39543:39545] CHIP:TOO: GroupName: grp3 + [1683799060.033728][39543:39545] CHIP:TOO: GroupName: Gp3 [1683799060.033730][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033733][39543:39545] CHIP:TOO: } [1683799060.033737][39543:39545] CHIP:TOO: [4]: { [1683799060.033740][39543:39545] CHIP:TOO: GroupId: 4 [1683799060.033743][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033746][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033749][39543:39545] CHIP:TOO: GroupName: grp4 + [1683799060.033749][39543:39545] CHIP:TOO: GroupName: Gp4 [1683799060.033752][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033754][39543:39545] CHIP:TOO: } [1683799060.033759][39543:39545] CHIP:TOO: [5]: { [1683799060.033762][39543:39545] CHIP:TOO: GroupId: 5 [1683799060.033765][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033769][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033771][39543:39545] CHIP:TOO: GroupName: grp5 + [1683799060.033771][39543:39545] CHIP:TOO: GroupName: Gp5 [1683799060.033774][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033777][39543:39545] CHIP:TOO: } [1683799060.033783][39543:39545] CHIP:TOO: [6]: { [1683799060.033785][39543:39545] CHIP:TOO: GroupId: 6 [1683799060.033788][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033792][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033795][39543:39545] CHIP:TOO: GroupName: grp6 + [1683799060.033795][39543:39545] CHIP:TOO: GroupName: Gp6 [1683799060.033798][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033801][39543:39545] CHIP:TOO: } [1683799060.033806][39543:39545] CHIP:TOO: [7]: { [1683799060.033809][39543:39545] CHIP:TOO: GroupId: 7 [1683799060.033813][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033816][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033819][39543:39545] CHIP:TOO: GroupName: grp7 + [1683799060.033819][39543:39545] CHIP:TOO: GroupName: Gp7 [1683799060.033822][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033824][39543:39545] CHIP:TOO: } [1683799060.033830][39543:39545] CHIP:TOO: [8]: { [1683799060.033832][39543:39545] CHIP:TOO: GroupId: 8 [1683799060.033835][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033839][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033841][39543:39545] CHIP:TOO: GroupName: grp8 + [1683799060.033841][39543:39545] CHIP:TOO: GroupName: Gp8 [1683799060.033843][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033845][39543:39545] CHIP:TOO: } [1683799060.033850][39543:39545] CHIP:TOO: [9]: { [1683799060.033853][39543:39545] CHIP:TOO: GroupId: 9 [1683799060.033855][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033858][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033861][39543:39545] CHIP:TOO: GroupName: grp9 + [1683799060.033861][39543:39545] CHIP:TOO: GroupName: Gp9 [1683799060.033863][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033866][39543:39545] CHIP:TOO: } [1683799060.033871][39543:39545] CHIP:TOO: [10]: { [1683799060.033874][39543:39545] CHIP:TOO: GroupId: 10 [1683799060.033877][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033881][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033884][39543:39545] CHIP:TOO: GroupName: grp10 + [1683799060.033884][39543:39545] CHIP:TOO: GroupName: Gp10 [1683799060.033886][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033889][39543:39545] CHIP:TOO: } [1683799060.033894][39543:39545] CHIP:TOO: [11]: { [1683799060.033897][39543:39545] CHIP:TOO: GroupId: 11 [1683799060.033900][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033903][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033905][39543:39545] CHIP:TOO: GroupName: grp11 + [1683799060.033905][39543:39545] CHIP:TOO: GroupName: Gp11 [1683799060.033907][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033910][39543:39545] CHIP:TOO: } [1683799060.033915][39543:39545] CHIP:TOO: [12]: { [1683799060.033918][39543:39545] CHIP:TOO: GroupId: 12 [1683799060.033922][39543:39545] CHIP:TOO: Endpoints: 1 entries [1683799060.033925][39543:39545] CHIP:TOO: [1]: 0 - [1683799060.033928][39543:39545] CHIP:TOO: GroupName: grp12 + [1683799060.033928][39543:39545] CHIP:TOO: GroupName: Gp12 [1683799060.033930][39543:39545] CHIP:TOO: FabricIndex: 1 [1683799060.033932][39543:39545] CHIP:TOO: } disabled: true - - label: "TH binds GroupId (maxgroups+1) with GroupKeySetID 1" + - label: "Step 7a: TH binds GroupId (maxgroups+1) with GroupKeySetID 1" verification: | - Before adding the Groups(MaxGroup+1) execute below command which is used to check the Resource_Exhausted Condition - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 13, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 - - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1683799348.785746][39651:39653] CHIP:DMG: WriteResponseMessage = - [1683799348.785751][39651:39653] CHIP:DMG: { - [1683799348.785755][39651:39653] CHIP:DMG: AttributeStatusIBs = - [1683799348.785763][39651:39653] CHIP:DMG: [ - [1683799348.785767][39651:39653] CHIP:DMG: AttributeStatusIB = - [1683799348.785771][39651:39653] CHIP:DMG: { - [1683799348.785775][39651:39653] CHIP:DMG: AttributePathIB = - [1683799348.785780][39651:39653] CHIP:DMG: { - [1683799348.785785][39651:39653] CHIP:DMG: Endpoint = 0x0, - [1683799348.785789][39651:39653] CHIP:DMG: Cluster = 0x3f, - [1683799348.785794][39651:39653] CHIP:DMG: Attribute = 0x0000_0000, - [1683799348.785798][39651:39653] CHIP:DMG: } - [1683799348.785804][39651:39653] CHIP:DMG: - [1683799348.785811][39651:39653] CHIP:DMG: StatusIB = - [1683799348.785816][39651:39653] CHIP:DMG: { - [1683799348.785821][39651:39653] CHIP:DMG: status = 0x00 (SUCCESS), - [1683799348.785825][39651:39653] CHIP:DMG: }, - [1683799348.785831][39651:39653] CHIP:DMG: - [1683799348.785835][39651:39653] CHIP:DMG: }, - [1683799348.785844][39651:39653] CHIP:DMG: - [1683799348.785848][39651:39653] CHIP:DMG: AttributeStatusIB = - [1683799348.785852][39651:39653] CHIP:DMG: { - [1683799348.785856][39651:39653] CHIP:DMG: AttributePathIB = - [1683799348.785860][39651:39653] CHIP:DMG: { - [1683799348.785865][39651:39653] CHIP:DMG: Endpoint = 0x0, - [1683799348.785869][39651:39653] CHIP:DMG: Cluster = 0x3f, - [1683799348.785874][39651:39653] CHIP:DMG: Attribute = 0x0000_0000, - [1683799348.785878][39651:39653] CHIP:DMG: ListIndex = Null, - [1683799348.785882][39651:39653] CHIP:DMG: } - [1683799348.785889][39651:39653] CHIP:DMG: - [1683799348.785894][39651:39653] CHIP:DMG: StatusIB = - [1683799348.785898][39651:39653] CHIP:DMG: { - [1683799348.785904][39651:39653] CHIP:DMG: status = 0x00 (SUCCESS), - [1683799348.785909][39651:39653] CHIP:DMG: }, - [1683799348.785914][39651:39653] CHIP:DMG: - [1683799348.785918][39651:39653] CHIP:DMG: }, - [1683799348.785924][39651:39653] CHIP:DMG: - [1683799348.785927][39651:39653] CHIP:DMG: ], - [1683799348.785936][39651:39653] CHIP:DMG: - [1683799348.785940][39651:39653] CHIP:DMG: InteractionModelRevision = 1 - [1683799348.785943][39651:39653] CHIP:DMG: } + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 13, "groupKeySetID": 1, "fabricIndex": 1} ]' 1 0 + + Verify DUT responds with SUCCESS status response on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1683799348.785746][39651:39653] CHIP:DMG: WriteResponseMessage = + [1683799348.785751][39651:39653] CHIP:DMG: { + [1683799348.785755][39651:39653] CHIP:DMG: AttributeStatusIBs = + [1683799348.785763][39651:39653] CHIP:DMG: [ + [1683799348.785767][39651:39653] CHIP:DMG: AttributeStatusIB = + [1683799348.785771][39651:39653] CHIP:DMG: { + [1683799348.785775][39651:39653] CHIP:DMG: AttributePathIB = + [1683799348.785780][39651:39653] CHIP:DMG: { + [1683799348.785785][39651:39653] CHIP:DMG: Endpoint = 0x0, + [1683799348.785789][39651:39653] CHIP:DMG: Cluster = 0x3f, + [1683799348.785794][39651:39653] CHIP:DMG: Attribute = 0x0000_0000, + [1683799348.785798][39651:39653] CHIP:DMG: } + [1683799348.785804][39651:39653] CHIP:DMG: + [1683799348.785811][39651:39653] CHIP:DMG: StatusIB = + [1683799348.785816][39651:39653] CHIP:DMG: { + [1683799348.785821][39651:39653] CHIP:DMG: status = 0x00 (SUCCESS), + [1683799348.785825][39651:39653] CHIP:DMG: }, + [1683799348.785831][39651:39653] CHIP:DMG: + [1683799348.785835][39651:39653] CHIP:DMG: }, + [1683799348.785844][39651:39653] CHIP:DMG: + [1683799348.785848][39651:39653] CHIP:DMG: AttributeStatusIB = + [1683799348.785852][39651:39653] CHIP:DMG: { + [1683799348.785856][39651:39653] CHIP:DMG: AttributePathIB = + [1683799348.785860][39651:39653] CHIP:DMG: { + [1683799348.785865][39651:39653] CHIP:DMG: Endpoint = 0x0, + [1683799348.785869][39651:39653] CHIP:DMG: Cluster = 0x3f, + [1683799348.785874][39651:39653] CHIP:DMG: Attribute = 0x0000_0000, + [1683799348.785878][39651:39653] CHIP:DMG: ListIndex = Null, + [1683799348.785882][39651:39653] CHIP:DMG: } + [1683799348.785889][39651:39653] CHIP:DMG: + [1683799348.785894][39651:39653] CHIP:DMG: StatusIB = + [1683799348.785898][39651:39653] CHIP:DMG: { + [1683799348.785904][39651:39653] CHIP:DMG: status = 0x00 (SUCCESS), + [1683799348.785909][39651:39653] CHIP:DMG: }, + [1683799348.785914][39651:39653] CHIP:DMG: + [1683799348.785918][39651:39653] CHIP:DMG: }, + [1683799348.785924][39651:39653] CHIP:DMG: + [1683799348.785927][39651:39653] CHIP:DMG: ], + [1683799348.785936][39651:39653] CHIP:DMG: + [1683799348.785940][39651:39653] CHIP:DMG: InteractionModelRevision = 1 + [1683799348.785943][39651:39653] CHIP:DMG: } disabled: true - label: - "TH sends AddGroup command to DUT as unicast with the GroupID set to - (maxgroups+1)" + "Step 7b: TH sends AddGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the GroupID set to (maxgroups+1)" PICS: G.S.C00.Rsp verification: | ./chip-tool groups add-group 0x000d grp13 1 0 - Verify the "status is RESOURCE_EXHAUSTED" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with status as RESOURCE_EXHAUSTED on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1683799371.472148][39657:39659] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1683799371.472159][39657:39659] CHIP:TOO: AddGroupResponse: { @@ -676,110 +697,110 @@ tests: disabled: true - label: - "TH reads GroupTable attribute from the GroupKeyManagement cluster - from DUT on PIXIT.G.ENDPOINT" + "Step 8: TH reads GroupTable attribute from the GroupKeyManagement + cluster from DUT on EP0" PICS: GRPKEY.S.A0001 verification: | ./chip-tool groupkeymanagement read group-table 1 0 Verify the GroupTable does not include an entry for GroupId (maxgroups+1) on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - [1683799439.271618][39702:39704] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443863 - [1683799439.271671][39702:39704] CHIP:TOO: GroupTable: 12 entries - [1683799439.271688][39702:39704] CHIP:TOO: [1]: { - [1683799439.271692][39702:39704] CHIP:TOO: GroupId: 1 - [1683799439.271698][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.271704][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.271709][39702:39704] CHIP:TOO: GroupName: grp1 - [1683799439.271714][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.271718][39702:39704] CHIP:TOO: } - [1683799439.271727][39702:39704] CHIP:TOO: [2]: { - [1683799439.271732][39702:39704] CHIP:TOO: GroupId: 2 - [1683799439.271737][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.271742][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.271746][39702:39704] CHIP:TOO: GroupName: grp2 - [1683799439.271750][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.271754][39702:39704] CHIP:TOO: } - [1683799439.271762][39702:39704] CHIP:TOO: [3]: { - [1683799439.271765][39702:39704] CHIP:TOO: GroupId: 3 - [1683799439.271770][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.271775][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.271779][39702:39704] CHIP:TOO: GroupName: grp3 - [1683799439.271782][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.271786][39702:39704] CHIP:TOO: } - [1683799439.271794][39702:39704] CHIP:TOO: [4]: { - [1683799439.271798][39702:39704] CHIP:TOO: GroupId: 4 - [1683799439.271803][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.271808][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.271812][39702:39704] CHIP:TOO: GroupName: grp4 - [1683799439.271816][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.271820][39702:39704] CHIP:TOO: } - [1683799439.271827][39702:39704] CHIP:TOO: [5]: { - [1683799439.271831][39702:39704] CHIP:TOO: GroupId: 5 - [1683799439.271836][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.271841][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.271845][39702:39704] CHIP:TOO: GroupName: grp5 - [1683799439.271849][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.271853][39702:39704] CHIP:TOO: } - [1683799439.271861][39702:39704] CHIP:TOO: [6]: { - [1683799439.271865][39702:39704] CHIP:TOO: GroupId: 6 - [1683799439.271870][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.271874][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.271878][39702:39704] CHIP:TOO: GroupName: grp6 - [1683799439.271882][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.271886][39702:39704] CHIP:TOO: } - [1683799439.271893][39702:39704] CHIP:TOO: [7]: { - [1683799439.271897][39702:39704] CHIP:TOO: GroupId: 7 - [1683799439.271902][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.271907][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.271911][39702:39704] CHIP:TOO: GroupName: grp7 - [1683799439.271915][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.271919][39702:39704] CHIP:TOO: } - [1683799439.271927][39702:39704] CHIP:TOO: [8]: { - [1683799439.271930][39702:39704] CHIP:TOO: GroupId: 8 - [1683799439.271935][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.271940][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.271945][39702:39704] CHIP:TOO: GroupName: grp8 - [1683799439.271949][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.271952][39702:39704] CHIP:TOO: } - [1683799439.271960][39702:39704] CHIP:TOO: [9]: { - [1683799439.271964][39702:39704] CHIP:TOO: GroupId: 9 - [1683799439.271969][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.271974][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.271978][39702:39704] CHIP:TOO: GroupName: grp9 - [1683799439.271982][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.271985][39702:39704] CHIP:TOO: } - [1683799439.271993][39702:39704] CHIP:TOO: [10]: { - [1683799439.271997][39702:39704] CHIP:TOO: GroupId: 10 - [1683799439.272002][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.272007][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.272011][39702:39704] CHIP:TOO: GroupName: grp10 - [1683799439.272016][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.272019][39702:39704] CHIP:TOO: } - [1683799439.272026][39702:39704] CHIP:TOO: [11]: { - [1683799439.272030][39702:39704] CHIP:TOO: GroupId: 11 - [1683799439.272035][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.272040][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.272044][39702:39704] CHIP:TOO: GroupName: grp11 - [1683799439.272048][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.272051][39702:39704] CHIP:TOO: } - [1683799439.272059][39702:39704] CHIP:TOO: [12]: { - [1683799439.272063][39702:39704] CHIP:TOO: GroupId: 12 - [1683799439.272067][39702:39704] CHIP:TOO: Endpoints: 1 entries - [1683799439.272072][39702:39704] CHIP:TOO: [1]: 0 - [1683799439.272076][39702:39704] CHIP:TOO: GroupName: grp12 - [1683799439.272080][39702:39704] CHIP:TOO: FabricIndex: 1 - [1683799439.272083][39702:39704] CHIP:TOO: } + [1686811968.833227][9943:9945] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3227568185 + [1686811968.833276][9943:9945] CHIP:TOO: GroupTable: 12 entries + [1686811968.833291][9943:9945] CHIP:TOO: [1]: { + [1686811968.833297][9943:9945] CHIP:TOO: GroupId: 1 + [1686811968.833304][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833308][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833312][9943:9945] CHIP:TOO: GroupName: Grp1 + [1686811968.833315][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833318][9943:9945] CHIP:TOO: } + [1686811968.833323][9943:9945] CHIP:TOO: [2]: { + [1686811968.833326][9943:9945] CHIP:TOO: GroupId: 2 + [1686811968.833329][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833332][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833335][9943:9945] CHIP:TOO: GroupName: Gp2 + [1686811968.833338][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833340][9943:9945] CHIP:TOO: } + [1686811968.833345][9943:9945] CHIP:TOO: [3]: { + [1686811968.833347][9943:9945] CHIP:TOO: GroupId: 3 + [1686811968.833351][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833354][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833357][9943:9945] CHIP:TOO: GroupName: Gp3 + [1686811968.833359][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833362][9943:9945] CHIP:TOO: } + [1686811968.833367][9943:9945] CHIP:TOO: [4]: { + [1686811968.833369][9943:9945] CHIP:TOO: GroupId: 4 + [1686811968.833372][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833376][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833378][9943:9945] CHIP:TOO: GroupName: Gp4 + [1686811968.833381][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833383][9943:9945] CHIP:TOO: } + [1686811968.833387][9943:9945] CHIP:TOO: [5]: { + [1686811968.833390][9943:9945] CHIP:TOO: GroupId: 5 + [1686811968.833392][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833395][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833398][9943:9945] CHIP:TOO: GroupName: Gp5 + [1686811968.833401][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833403][9943:9945] CHIP:TOO: } + [1686811968.833408][9943:9945] CHIP:TOO: [6]: { + [1686811968.833410][9943:9945] CHIP:TOO: GroupId: 6 + [1686811968.833413][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833416][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833419][9943:9945] CHIP:TOO: GroupName: Gp6 + [1686811968.833421][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833423][9943:9945] CHIP:TOO: } + [1686811968.833428][9943:9945] CHIP:TOO: [7]: { + [1686811968.833430][9943:9945] CHIP:TOO: GroupId: 7 + [1686811968.833433][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833436][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833438][9943:9945] CHIP:TOO: GroupName: Gp7 + [1686811968.833441][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833443][9943:9945] CHIP:TOO: } + [1686811968.833447][9943:9945] CHIP:TOO: [8]: { + [1686811968.833450][9943:9945] CHIP:TOO: GroupId: 8 + [1686811968.833452][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833455][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833459][9943:9945] CHIP:TOO: GroupName: Gp8 + [1686811968.833461][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833463][9943:9945] CHIP:TOO: } + [1686811968.833468][9943:9945] CHIP:TOO: [9]: { + [1686811968.833471][9943:9945] CHIP:TOO: GroupId: 9 + [1686811968.833473][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833477][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833480][9943:9945] CHIP:TOO: GroupName: Gp9 + [1686811968.833482][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833484][9943:9945] CHIP:TOO: } + [1686811968.833489][9943:9945] CHIP:TOO: [10]: { + [1686811968.833492][9943:9945] CHIP:TOO: GroupId: 10 + [1686811968.833495][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833498][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833500][9943:9945] CHIP:TOO: GroupName: Gp10 + [1686811968.833503][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833505][9943:9945] CHIP:TOO: } + [1686811968.833510][9943:9945] CHIP:TOO: [11]: { + [1686811968.833512][9943:9945] CHIP:TOO: GroupId: 11 + [1686811968.833515][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833518][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833520][9943:9945] CHIP:TOO: GroupName: Gp11 + [1686811968.833523][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833525][9943:9945] CHIP:TOO: } + [1686811968.833531][9943:9945] CHIP:TOO: [12]: { + [1686811968.833533][9943:9945] CHIP:TOO: GroupId: 12 + [1686811968.833536][9943:9945] CHIP:TOO: Endpoints: 1 entries + [1686811968.833539][9943:9945] CHIP:TOO: [1]: 0 + [1686811968.833542][9943:9945] CHIP:TOO: GroupName: Gp12 + [1686811968.833545][9943:9945] CHIP:TOO: FabricIndex: 1 + [1686811968.833547][9943:9945] CHIP:TOO: } disabled: true - label: - "TH sends AddGroup command to DUT as unicast with the following fields - : GroupID as 0x0000 GroupName as Gp6" + "Step 9: TH sends AddGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following fields : GroupID as 0x0000 GroupName as Gp0" PICS: G.S.C00.Rsp && G.S.C00.Tx verification: | - ./chip-tool groups add-group 0x0000 grp6 1 0 + ./chip-tool groups add-group 0x0000 Gp0 1 0 - Verify the "status is CONSTRAINT_ERROR" on the TH(Chip-tool) Log and GroupID is not in the inclusive range of 0x0001 to 0xffff,below is the sample log provided for the raspi platform: + Verify the AddGroupResponse with status as CONSTRAINT_ERROR and GroupID is not in the inclusive range of 0x0001 to 0xffff on the TH(Chip-tool) Log, below is the sample log provided for the raspi platform: [1653484439.884144][11341:11346] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000 [1653484439.884258][11341:11346] CHIP:TOO: AddGroupResponse: { @@ -789,14 +810,14 @@ tests: disabled: true - label: - "TH sends AddGroup command to DUT as unicast with the following fields - : GroupID as 0x0005 GroupName as Gp5" + "Step 10: TH sends AddGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following fields : GroupID as maxgroups+0x0005 + GroupName as Gp5" PICS: G.S.C00.Rsp && G.S.C00.Tx verification: | - ./chip-tool groups add-group 0x0005 grp5 1 0 - - Verify the "status is UNSUPPORTED_ACCESS" on the TH(Chip-tool) Log and ,below is the sample log provided for the raspi platform: + ./chip-tool groups add-group 0x0005 Gp5 1 0 + Verify the AddGroupResponse with status as UNSUPPORTED_ACCESS and GroupID in the AddGroup command does not have the security key on the TH(Chip-tool) Log and, below is the sample log provided for the raspi platform: [1658302176.951047][2747:2752] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000 [1658302176.951103][2747:2752] CHIP:TOO: AddGroupResponse: { @@ -806,30 +827,36 @@ tests: disabled: true - label: - "If maxgroups > 0, TH sends ViewGroup command to DUT as unicast with - the following fields: GroupID as 0x0001" - PICS: G.S.C01.Rsp && G.S.C01.Tx + "Step 11 & 12: TH sends ViewGroup command to DUT on PIXIT.G.ENDPOINT + as unicast with the following fields: GroupID as 0x0001. Verify that + the ViewGroupResponse contains GroupName belongs to the GroupID in the + ViewGroup command" + PICS: G.S.C01.Rsp && G.S.C01.Tx && G.S.F00 verification: | ./chip-tool groups view-group 0x0001 1 0 - Verify the "status is success" on the TH(Chip-tool) Log and GroupID is in the inclusive range of 0x0001 to 0xffff,below is the sample log provided for the raspi platform: + Verify the ViewGroupResponse with following fields : + Status is SUCCESS + GroupID is 0x0001 and same as the one which is sent in ViewGroup command + If G.S.F00(GN) is true then GroupName is Gp1, Otherwise empty + on TH(Chip-tool) Log , below is the sample log provided for the raspi platform: 1653484504.667714][11349:11354] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0001 [1653484504.667841][11349:11354] CHIP:TOO: ViewGroupResponse: { [1653484504.667927][11349:11354] CHIP:TOO: status: 0 [1653484504.667974][11349:11354] CHIP:TOO: groupId: 1 - [1653484504.668018][11349:11354] CHIP:TOO: groupName: grp1 + [1653484504.668018][11349:11354] CHIP:TOO: groupName: Gp1 [1653484504.668064][11349:11354] CHIP:TOO: } disabled: true - label: - "TH sends ViewGroup command to DUT as unicast with the following - fields: GroupID as 0x0000" + "Step 13: TH sends ViewGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following fields: GroupID as 0x0000" PICS: G.S.C01.Rsp && G.S.C01.Tx verification: | ./chip-tool groups view-group 0x0000 1 0 - Verify the "status is CONSTRAINT_ERROR" on the TH(Chip-tool) Log and GroupID is not in the inclusive range of 0x0001 to 0xffff, below is the sample log provided for the raspi platform: + Verify the ViewGroupResponse with status as CONSTRAINT_ERROR and GroupID is not in the inclusive range of 0x0001 to 0xffff on the TH(Chip-tool) Log, below is the sample log provided for the raspi platform: [1653484611.595344][11412:11417] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0001 [1653484611.595454][11412:11417] CHIP:TOO: ViewGroupResponse: { @@ -840,13 +867,13 @@ tests: disabled: true - label: - "If maxgroups > 0, TH sends RemoveGroup command to DUT as unicast with - the following field : GroupID as 0x0001" + "Step 14: TH sends RemoveGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following field : GroupID as 0x0001" PICS: G.S.C03.Rsp && G.S.C03.Tx verification: | ./chip-tool groups remove-group 0x0001 1 0 - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + Verify the RemoveGroupResponse with Status as SUCCESS and GroupID is 0x0001 on the TH(Chip-tool) Log, below is the sample log provided for the raspi platform: [1653484876.432744][11451:11456] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0003 [1653484876.432915][11451:11456] CHIP:TOO: RemoveGroupResponse: { @@ -856,14 +883,13 @@ tests: disabled: true - label: - "If maxgroups > 0, TH sends ViewGroup command to DUT as unicast with - the following field : GroupID as 0x0001" + "Step 15: TH sends ViewGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following field : GroupID as 0x0001" PICS: G.S.C01.Rsp && G.S.C01.Tx verification: | ./chip-tool groups view-group 0x0001 1 0 - Verify the "status is NOT_FOUND" on the TH(Chip-tool) Log below is the sample log provided for the raspi platform: - + Verify the ViewGroupResponse with status as NOT_FOUND on the TH(Chip-tool) Log below is the sample log provided for the raspi platform: [1653484952.142387][11458:11463] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0001 [1653484952.142476][11458:11463] CHIP:TOO: ViewGroupResponse: { @@ -873,103 +899,106 @@ tests: [1653484952.142592][11458:11463] CHIP:TOO: } disabled: true - - label: "TH reads GroupTable attribute from the GroupKeyManagement cluster" + - label: + "Step 16: TH reads GroupTable attribute from the GroupKeyManagement + cluster from DUT on EP0" PICS: GRPKEY.S.A0001 verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify that Grouptable not contains GroupId 0X0001 entry on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1683800704.469297][40300:40302] CHIP:DMG: } - [1683800704.469495][40300:40302] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443863 - [1683800704.469940][40300:40302] CHIP:TOO: GroupTable: 11 entries - [1683800704.469966][40300:40302] CHIP:TOO: [1]: { - [1683800704.469973][40300:40302] CHIP:TOO: GroupId: 2 - [1683800704.469977][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.469986][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.469993][40300:40302] CHIP:TOO: GroupName: grp2 - [1683800704.469996][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.469998][40300:40302] CHIP:TOO: } - [1683800704.470004][40300:40302] CHIP:TOO: [2]: { - [1683800704.470007][40300:40302] CHIP:TOO: GroupId: 3 - [1683800704.470010][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470013][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470016][40300:40302] CHIP:TOO: GroupName: grp3 - [1683800704.470018][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470021][40300:40302] CHIP:TOO: } - [1683800704.470026][40300:40302] CHIP:TOO: [3]: { - [1683800704.470028][40300:40302] CHIP:TOO: GroupId: 4 - [1683800704.470031][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470035][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470038][40300:40302] CHIP:TOO: GroupName: grp4 - [1683800704.470040][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470042][40300:40302] CHIP:TOO: } - [1683800704.470047][40300:40302] CHIP:TOO: [4]: { - [1683800704.470050][40300:40302] CHIP:TOO: GroupId: 5 - [1683800704.470052][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470056][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470058][40300:40302] CHIP:TOO: GroupName: grp5 - [1683800704.470061][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470064][40300:40302] CHIP:TOO: } - [1683800704.470069][40300:40302] CHIP:TOO: [5]: { - [1683800704.470071][40300:40302] CHIP:TOO: GroupId: 6 - [1683800704.470075][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470078][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470081][40300:40302] CHIP:TOO: GroupName: grp6 - [1683800704.470083][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470085][40300:40302] CHIP:TOO: } - [1683800704.470091][40300:40302] CHIP:TOO: [6]: { - [1683800704.470094][40300:40302] CHIP:TOO: GroupId: 7 - [1683800704.470097][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470100][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470103][40300:40302] CHIP:TOO: GroupName: grp7 - [1683800704.470106][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470108][40300:40302] CHIP:TOO: } - [1683800704.470112][40300:40302] CHIP:TOO: [7]: { - [1683800704.470115][40300:40302] CHIP:TOO: GroupId: 8 - [1683800704.470117][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470121][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470123][40300:40302] CHIP:TOO: GroupName: grp8 - [1683800704.470126][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470128][40300:40302] CHIP:TOO: } - [1683800704.470134][40300:40302] CHIP:TOO: [8]: { - [1683800704.470136][40300:40302] CHIP:TOO: GroupId: 9 - [1683800704.470139][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470142][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470145][40300:40302] CHIP:TOO: GroupName: grp9 - [1683800704.470148][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470150][40300:40302] CHIP:TOO: } - [1683800704.470155][40300:40302] CHIP:TOO: [9]: { - [1683800704.470157][40300:40302] CHIP:TOO: GroupId: 10 - [1683800704.470161][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470164][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470168][40300:40302] CHIP:TOO: GroupName: grp10 - [1683800704.470170][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470172][40300:40302] CHIP:TOO: } - [1683800704.470177][40300:40302] CHIP:TOO: [10]: { - [1683800704.470180][40300:40302] CHIP:TOO: GroupId: 11 - [1683800704.470183][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470187][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470189][40300:40302] CHIP:TOO: GroupName: grp11 - [1683800704.470192][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470195][40300:40302] CHIP:TOO: } - [1683800704.470200][40300:40302] CHIP:TOO: [11]: { - [1683800704.470203][40300:40302] CHIP:TOO: GroupId: 12 - [1683800704.470206][40300:40302] CHIP:TOO: Endpoints: 1 entries - [1683800704.470210][40300:40302] CHIP:TOO: [1]: 0 - [1683800704.470212][40300:40302] CHIP:TOO: GroupName: grp12 - [1683800704.470214][40300:40302] CHIP:TOO: FabricIndex: 1 - [1683800704.470217][40300:40302] CHIP:TOO: } + Verify that Grouptable not contains GroupId 0x0001 entry on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1686812082.430943][10007:10009] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3227568185 + [1686812082.430995][10007:10009] CHIP:TOO: GroupTable: 11 entries + [1686812082.431012][10007:10009] CHIP:TOO: [1]: { + [1686812082.431015][10007:10009] CHIP:TOO: GroupId: 2 + [1686812082.431019][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431022][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431026][10007:10009] CHIP:TOO: GroupName: Gp2 + [1686812082.431029][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431031][10007:10009] CHIP:TOO: } + [1686812082.431037][10007:10009] CHIP:TOO: [2]: { + [1686812082.431039][10007:10009] CHIP:TOO: GroupId: 3 + [1686812082.431042][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431045][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431048][10007:10009] CHIP:TOO: GroupName: Gp3 + [1686812082.431050][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431053][10007:10009] CHIP:TOO: } + [1686812082.431057][10007:10009] CHIP:TOO: [3]: { + [1686812082.431060][10007:10009] CHIP:TOO: GroupId: 4 + [1686812082.431063][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431066][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431069][10007:10009] CHIP:TOO: GroupName: Gp4 + [1686812082.431071][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431073][10007:10009] CHIP:TOO: } + [1686812082.431078][10007:10009] CHIP:TOO: [4]: { + [1686812082.431080][10007:10009] CHIP:TOO: GroupId: 5 + [1686812082.431084][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431086][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431089][10007:10009] CHIP:TOO: GroupName: Gp5 + [1686812082.431091][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431093][10007:10009] CHIP:TOO: } + [1686812082.431098][10007:10009] CHIP:TOO: [5]: { + [1686812082.431101][10007:10009] CHIP:TOO: GroupId: 6 + [1686812082.431104][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431107][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431109][10007:10009] CHIP:TOO: GroupName: Gp6 + [1686812082.431112][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431114][10007:10009] CHIP:TOO: } + [1686812082.431119][10007:10009] CHIP:TOO: [6]: { + [1686812082.431122][10007:10009] CHIP:TOO: GroupId: 7 + [1686812082.431124][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431127][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431129][10007:10009] CHIP:TOO: GroupName: Gp7 + [1686812082.431132][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431134][10007:10009] CHIP:TOO: } + [1686812082.431139][10007:10009] CHIP:TOO: [7]: { + [1686812082.431141][10007:10009] CHIP:TOO: GroupId: 8 + [1686812082.431144][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431147][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431150][10007:10009] CHIP:TOO: GroupName: Gp8 + [1686812082.431153][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431154][10007:10009] CHIP:TOO: } + [1686812082.431159][10007:10009] CHIP:TOO: [8]: { + [1686812082.431162][10007:10009] CHIP:TOO: GroupId: 9 + [1686812082.431165][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431168][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431170][10007:10009] CHIP:TOO: GroupName: Gp9 + [1686812082.431172][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431175][10007:10009] CHIP:TOO: } + [1686812082.431179][10007:10009] CHIP:TOO: [9]: { + [1686812082.431182][10007:10009] CHIP:TOO: GroupId: 10 + [1686812082.431185][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431188][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431190][10007:10009] CHIP:TOO: GroupName: Gp10 + [1686812082.431193][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431195][10007:10009] CHIP:TOO: } + [1686812082.431200][10007:10009] CHIP:TOO: [10]: { + [1686812082.431202][10007:10009] CHIP:TOO: GroupId: 11 + [1686812082.431205][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431208][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431211][10007:10009] CHIP:TOO: GroupName: Gp11 + [1686812082.431214][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431216][10007:10009] CHIP:TOO: } + [1686812082.431221][10007:10009] CHIP:TOO: [11]: { + [1686812082.431223][10007:10009] CHIP:TOO: GroupId: 12 + [1686812082.431226][10007:10009] CHIP:TOO: Endpoints: 1 entries + [1686812082.431229][10007:10009] CHIP:TOO: [1]: 0 + [1686812082.431231][10007:10009] CHIP:TOO: GroupName: Gp12 + [1686812082.431234][10007:10009] CHIP:TOO: FabricIndex: 1 + [1686812082.431236][10007:10009] CHIP:TOO: } disabled: true - label: - "TH sends RemoveGroup command to DUT as unicast with the following - field : GroupID as 0x0000" + "Step 17: TH sends RemoveGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following field : GroupID as 0x0000" PICS: G.S.C03.Rsp && G.S.C03.Tx verification: | ./chip-tool groups remove-group 0x0000 1 0 - Verify the "status as CONSTRAINT_ERROR" on the TH(Chip-tool) Log and GroupID is not in the inclusive range of 0x0001 to 0xffff , below is the sample log provided for the raspi platform: + Verify the RemoveGroupResponse with following fields: + Status is CONSTRAINT_ERROR + GroupID is not in the inclusive range of 0x0001 to 0xffff on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1653485045.328766][11473:11478] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0003 [1653485045.328896][11473:11478] CHIP:TOO: RemoveGroupResponse: { @@ -979,14 +1008,13 @@ tests: disabled: true - label: - "TH sends RemoveGroup command to DUT as unicast with the following - field : GroupID as 0x0001" + "Step 18: TH sends RemoveGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following field : GroupID as 0x0001" PICS: G.S.C03.Rsp && G.S.C03.Tx verification: | ./chip-tool groups remove-group 0x0001 1 0 - Verify the "status is NOT_FOUND" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - : + Verify the RemoveGroupResponse with status as NOT_FOUND on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1653485126.672869][11483:11488] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0003 [1653485126.672969][11483:11488] CHIP:TOO: RemoveGroupResponse: { @@ -995,102 +1023,104 @@ tests: [1653485126.673075][11483:11488] CHIP:TOO: } disabled: true - - label: "TH reads GroupTable attribute from the GroupKeyManagement cluster" + - label: + "Step 19: TH reads GroupTable attribute from the GroupKeyManagement + cluster from DUT on EP0" PICS: GRPKEY.S.A0001 verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify that Grouptable not contains GroupId 0X0001 entry on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - - [1683800854.535383][40352:40354] CHIP:DMG: } - [1683800854.535580][40352:40354] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 366443863 - [1683800854.535627][40352:40354] CHIP:TOO: GroupTable: 11 entries - [1683800854.535654][40352:40354] CHIP:TOO: [1]: { - [1683800854.535662][40352:40354] CHIP:TOO: GroupId: 2 - [1683800854.535667][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535671][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535676][40352:40354] CHIP:TOO: GroupName: grp2 - [1683800854.535679][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535682][40352:40354] CHIP:TOO: } - [1683800854.535688][40352:40354] CHIP:TOO: [2]: { - [1683800854.535693][40352:40354] CHIP:TOO: GroupId: 3 - [1683800854.535695][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535698][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535701][40352:40354] CHIP:TOO: GroupName: grp3 - [1683800854.535704][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535706][40352:40354] CHIP:TOO: } - [1683800854.535711][40352:40354] CHIP:TOO: [3]: { - [1683800854.535714][40352:40354] CHIP:TOO: GroupId: 4 - [1683800854.535717][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535720][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535723][40352:40354] CHIP:TOO: GroupName: grp4 - [1683800854.535727][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535728][40352:40354] CHIP:TOO: } - [1683800854.535733][40352:40354] CHIP:TOO: [4]: { - [1683800854.535735][40352:40354] CHIP:TOO: GroupId: 5 - [1683800854.535738][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535741][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535744][40352:40354] CHIP:TOO: GroupName: grp5 - [1683800854.535747][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535750][40352:40354] CHIP:TOO: } - [1683800854.535755][40352:40354] CHIP:TOO: [5]: { - [1683800854.535757][40352:40354] CHIP:TOO: GroupId: 6 - [1683800854.535760][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535763][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535765][40352:40354] CHIP:TOO: GroupName: grp6 - [1683800854.535768][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535770][40352:40354] CHIP:TOO: } - [1683800854.535775][40352:40354] CHIP:TOO: [6]: { - [1683800854.535778][40352:40354] CHIP:TOO: GroupId: 7 - [1683800854.535781][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535785][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535788][40352:40354] CHIP:TOO: GroupName: grp7 - [1683800854.535790][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535793][40352:40354] CHIP:TOO: } - [1683800854.535798][40352:40354] CHIP:TOO: [7]: { - [1683800854.535801][40352:40354] CHIP:TOO: GroupId: 8 - [1683800854.535804][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535807][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535809][40352:40354] CHIP:TOO: GroupName: grp8 - [1683800854.535812][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535814][40352:40354] CHIP:TOO: } - [1683800854.535819][40352:40354] CHIP:TOO: [8]: { - [1683800854.535822][40352:40354] CHIP:TOO: GroupId: 9 - [1683800854.535825][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535828][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535831][40352:40354] CHIP:TOO: GroupName: grp9 - [1683800854.535834][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535835][40352:40354] CHIP:TOO: } - [1683800854.535841][40352:40354] CHIP:TOO: [9]: { - [1683800854.535843][40352:40354] CHIP:TOO: GroupId: 10 - [1683800854.535847][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535850][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535854][40352:40354] CHIP:TOO: GroupName: grp10 - [1683800854.535857][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535859][40352:40354] CHIP:TOO: } - [1683800854.535864][40352:40354] CHIP:TOO: [10]: { - [1683800854.535866][40352:40354] CHIP:TOO: GroupId: 11 - [1683800854.535870][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535873][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535876][40352:40354] CHIP:TOO: GroupName: grp11 - [1683800854.535879][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535881][40352:40354] CHIP:TOO: } - [1683800854.535886][40352:40354] CHIP:TOO: [11]: { - [1683800854.535889][40352:40354] CHIP:TOO: GroupId: 12 - [1683800854.535893][40352:40354] CHIP:TOO: Endpoints: 1 entries - [1683800854.535896][40352:40354] CHIP:TOO: [1]: 0 - [1683800854.535899][40352:40354] CHIP:TOO: GroupName: grp12 - [1683800854.535901][40352:40354] CHIP:TOO: FabricIndex: 1 - [1683800854.535903][40352:40354] CHIP:TOO: } + Verify that Grouptable not contains GroupId 0x0001 entry on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1686812152.471031][10019:10021] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3227568185 + [1686812152.471084][10019:10021] CHIP:TOO: GroupTable: 11 entries + [1686812152.471100][10019:10021] CHIP:TOO: [1]: { + [1686812152.471104][10019:10021] CHIP:TOO: GroupId: 2 + [1686812152.471108][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471112][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471115][10019:10021] CHIP:TOO: GroupName: Gp2 + [1686812152.471118][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471121][10019:10021] CHIP:TOO: } + [1686812152.471126][10019:10021] CHIP:TOO: [2]: { + [1686812152.471129][10019:10021] CHIP:TOO: GroupId: 3 + [1686812152.471132][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471135][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471138][10019:10021] CHIP:TOO: GroupName: Gp3 + [1686812152.471140][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471143][10019:10021] CHIP:TOO: } + [1686812152.471147][10019:10021] CHIP:TOO: [3]: { + [1686812152.471150][10019:10021] CHIP:TOO: GroupId: 4 + [1686812152.471153][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471156][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471158][10019:10021] CHIP:TOO: GroupName: Gp4 + [1686812152.471161][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471163][10019:10021] CHIP:TOO: } + [1686812152.471168][10019:10021] CHIP:TOO: [4]: { + [1686812152.471171][10019:10021] CHIP:TOO: GroupId: 5 + [1686812152.471175][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471178][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471180][10019:10021] CHIP:TOO: GroupName: Gp5 + [1686812152.471183][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471185][10019:10021] CHIP:TOO: } + [1686812152.471190][10019:10021] CHIP:TOO: [5]: { + [1686812152.471193][10019:10021] CHIP:TOO: GroupId: 6 + [1686812152.471196][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471199][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471201][10019:10021] CHIP:TOO: GroupName: Gp6 + [1686812152.471204][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471206][10019:10021] CHIP:TOO: } + [1686812152.471211][10019:10021] CHIP:TOO: [6]: { + [1686812152.471214][10019:10021] CHIP:TOO: GroupId: 7 + [1686812152.471217][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471220][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471223][10019:10021] CHIP:TOO: GroupName: Gp7 + [1686812152.471226][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471228][10019:10021] CHIP:TOO: } + [1686812152.471233][10019:10021] CHIP:TOO: [7]: { + [1686812152.471236][10019:10021] CHIP:TOO: GroupId: 8 + [1686812152.471239][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471242][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471245][10019:10021] CHIP:TOO: GroupName: Gp8 + [1686812152.471248][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471249][10019:10021] CHIP:TOO: } + [1686812152.471254][10019:10021] CHIP:TOO: [8]: { + [1686812152.471256][10019:10021] CHIP:TOO: GroupId: 9 + [1686812152.471260][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471263][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471266][10019:10021] CHIP:TOO: GroupName: Gp9 + [1686812152.471268][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471270][10019:10021] CHIP:TOO: } + [1686812152.471276][10019:10021] CHIP:TOO: [9]: { + [1686812152.471278][10019:10021] CHIP:TOO: GroupId: 10 + [1686812152.471281][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471284][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471286][10019:10021] CHIP:TOO: GroupName: Gp10 + [1686812152.471289][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471291][10019:10021] CHIP:TOO: } + [1686812152.471296][10019:10021] CHIP:TOO: [10]: { + [1686812152.471299][10019:10021] CHIP:TOO: GroupId: 11 + [1686812152.471302][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471305][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471308][10019:10021] CHIP:TOO: GroupName: Gp11 + [1686812152.471310][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471313][10019:10021] CHIP:TOO: } + [1686812152.471318][10019:10021] CHIP:TOO: [11]: { + [1686812152.471320][10019:10021] CHIP:TOO: GroupId: 12 + [1686812152.471323][10019:10021] CHIP:TOO: Endpoints: 1 entries + [1686812152.471326][10019:10021] CHIP:TOO: [1]: 0 + [1686812152.471329][10019:10021] CHIP:TOO: GroupName: Gp12 + [1686812152.471332][10019:10021] CHIP:TOO: FabricIndex: 1 + [1686812152.471334][10019:10021] CHIP:TOO: } disabled: true - - label: "TH sends RemoveAllGroups command to DUT as unicast method" + - label: + "Step 20: TH sends RemoveAllGroups command to DUT on PIXIT.G.ENDPOINT + as unicast method" PICS: G.S.C04.Rsp verification: | ./chip-tool groups remove-all-groups 1 0 - Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - + Verify DUT responds with SUCCESS status response on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1653485455.344097][11508:11513] CHIP:DMG: StatusIB = [1653485455.344141][11508:11513] CHIP:DMG: { @@ -1099,14 +1129,13 @@ tests: disabled: true - label: - "TH sends ViewGroup command to DUT as unicast with the following - fields: GroupID as 0x0001" + "Step 21: TH sends ViewGroup command to DUT on PIXIT.G.ENDPOINT as + unicast with the following fields: GroupID as 0x0002" PICS: G.S.C01.Rsp && G.S.C01.Tx verification: | ./chip-tool groups view-group 0x0001 1 0 - Verify the "status is NOT_FOUND" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: - + Verify the ViewGroupResponse with status as NOT_FOUND on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1653559917.259920][3227:3232] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0001 [1653559917.259993][3227:3232] CHIP:TOO: ViewGroupResponse: { @@ -1116,12 +1145,14 @@ tests: [1653559917.260138][3227:3232] CHIP:TOO: } disabled: true - - label: "TH reads GroupTable attribute from the GroupKeyManagement cluster" + - label: + "Step 22: TH reads GroupTable attribute from the GroupKeyManagement + cluster from DUT on EP0" PICS: GRPKEY.S.A0001 verification: | ./chip-tool groupkeymanagement read group-table 1 0 - Verify the "grouptable entries" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + Verify the GroupTable entries are 0 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: [1656332191.739327][27032:27037] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 3761602970 [1656332191.739391][27032:27037] CHIP:TOO: GroupTable: 0 entries diff --git a/src/app/tests/suites/certification/Test_TC_G_3_2.yaml b/src/app/tests/suites/certification/Test_TC_G_3_2.yaml index 51c53ad057bf3d..baecd65484d037 100644 --- a/src/app/tests/suites/certification/Test_TC_G_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_G_3_2.yaml @@ -45,150 +45,158 @@ tests: binds GroupId with GroupKeySetID in the GroupKeyMap attribute list on GroupKeyManagement cluster with the values provided in the above steps" verification: | - Execute the following command in TH to generate the pre-condition step : + Execute the below command in TH to generate the pre-condition step : ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, - "groupKeySecurityPolicy": 1, "epochKey0": + "groupKeySecurityPolicy": 0, "epochKey0": "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 - Verify the command response in TH (all-Clusters-app) log - - [1666939337.680982][8101:8101] CHIP:DMG: InvokeResponseMessage = - [1666939337.680984][8101:8101] CHIP:DMG: { - [1666939337.680986][8101:8101] CHIP:DMG: suppressResponse = false, - [1666939337.680988][8101:8101] CHIP:DMG: InvokeResponseIBs = - [1666939337.680991][8101:8101] CHIP:DMG: [ - [1666939337.680993][8101:8101] CHIP:DMG: InvokeResponseIB = - [1666939337.680997][8101:8101] CHIP:DMG: { - [1666939337.680999][8101:8101] CHIP:DMG: CommandStatusIB = - [1666939337.681001][8101:8101] CHIP:DMG: { - [1666939337.681003][8101:8101] CHIP:DMG: CommandPathIB = - [1666939337.681005][8101:8101] CHIP:DMG: { - [1666939337.681008][8101:8101] CHIP:DMG: EndpointId = 0x0, - [1666939337.681010][8101:8101] CHIP:DMG: ClusterId = 0x3f, - [1666939337.681013][8101:8101] CHIP:DMG: CommandId = 0x0, - [1666939337.681015][8101:8101] CHIP:DMG: }, - [1666939337.681018][8101:8101] CHIP:DMG: - [1666939337.681020][8101:8101] CHIP:DMG: StatusIB = - [1666939337.681023][8101:8101] CHIP:DMG: { - [1666939337.681025][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666939337.681027][8101:8101] CHIP:DMG: }, - [1666939337.681029][8101:8101] CHIP:DMG: - [1666939337.681031][8101:8101] CHIP:DMG: }, - [1666939337.681034][8101:8101] CHIP:DMG: - [1666939337.681036][8101:8101] CHIP:DMG: }, - [1666939337.681039][8101:8101] CHIP:DMG: - [1666939337.681041][8101:8101] CHIP:DMG: ], - [1666939337.681044][8101:8101] CHIP:DMG: - [1666939337.681046][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - [1666939337.681047][8101:8101] CHIP:DMG: }, - - - Before adding the Group 0x0002,0x0003, 0x0004 execute this command in DUT - - ./chip-tool groupkeymanagement write group-key-map '[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1},{"groupId": 4, "groupKeySetID": 1,"fabricIndex": 1} ]' 1 0 - - Verify the command response in TH (all-Clusters-app) log - - 666939386.530556][8101:8101] CHIP:DMG: WriteResponseMessage = - [1666939386.530558][8101:8101] CHIP:DMG: { - [1666939386.530560][8101:8101] CHIP:DMG: AttributeStatusIBs = - [1666939386.530565][8101:8101] CHIP:DMG: [ - [1666939386.530567][8101:8101] CHIP:DMG: AttributeStatusIB = - [1666939386.530570][8101:8101] CHIP:DMG: { - [1666939386.530573][8101:8101] CHIP:DMG: AttributePathIB = - [1666939386.530576][8101:8101] CHIP:DMG: { - [1666939386.530579][8101:8101] CHIP:DMG: Endpoint = 0x0, - [1666939386.530583][8101:8101] CHIP:DMG: Cluster = 0x3f, - [1666939386.530586][8101:8101] CHIP:DMG: Attribute = 0x0000_0000, - [1666939386.530589][8101:8101] CHIP:DMG: } - [1666939386.530593][8101:8101] CHIP:DMG: - [1666939386.530596][8101:8101] CHIP:DMG: StatusIB = - [1666939386.530600][8101:8101] CHIP:DMG: { - [1666939386.530603][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666939386.530606][8101:8101] CHIP:DMG: }, - [1666939386.530610][8101:8101] CHIP:DMG: - [1666939386.530612][8101:8101] CHIP:DMG: }, - [1666939386.530619][8101:8101] CHIP:DMG: - [1666939386.530622][8101:8101] CHIP:DMG: AttributeStatusIB = - [1666939386.530624][8101:8101] CHIP:DMG: { - [1666939386.530627][8101:8101] CHIP:DMG: AttributePathIB = - [1666939386.530630][8101:8101] CHIP:DMG: { - [1666939386.530633][8101:8101] CHIP:DMG: Endpoint = 0x0, - [1666939386.530636][8101:8101] CHIP:DMG: Cluster = 0x3f, - [1666939386.530639][8101:8101] CHIP:DMG: Attribute = 0x0000_0000, - [1666939386.530642][8101:8101] CHIP:DMG: ListIndex = Null, - [1666939386.530645][8101:8101] CHIP:DMG: } - [1666939386.530649][8101:8101] CHIP:DMG: - [1666939386.530652][8101:8101] CHIP:DMG: StatusIB = - [1666939386.530655][8101:8101] CHIP:DMG: { - [1666939386.530658][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666939386.530661][8101:8101] CHIP:DMG: }, - [1666939386.530664][8101:8101] CHIP:DMG: - [1666939386.530666][8101:8101] CHIP:DMG: }, - [1666939386.530672][8101:8101] CHIP:DMG: - [1666939386.530675][8101:8101] CHIP:DMG: AttributeStatusIB = - [1666939386.530678][8101:8101] CHIP:DMG: { - [1666939386.530680][8101:8101] CHIP:DMG: AttributePathIB = - [1666939386.530683][8101:8101] CHIP:DMG: { - [1666939386.530686][8101:8101] CHIP:DMG: Endpoint = 0x0, - [1666939386.530689][8101:8101] CHIP:DMG: Cluster = 0x3f, - [1666939386.530692][8101:8101] CHIP:DMG: Attribute = 0x0000_0000, - [1666939386.530696][8101:8101] CHIP:DMG: ListIndex = Null, - [1666939386.530698][8101:8101] CHIP:DMG: } - [1666939386.530702][8101:8101] CHIP:DMG: - [1666939386.530705][8101:8101] CHIP:DMG: StatusIB = - [1666939386.530708][8101:8101] CHIP:DMG: { - [1666939386.530711][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666939386.530714][8101:8101] CHIP:DMG: }, - [1666939386.530717][8101:8101] CHIP:DMG: - [1666939386.530719][8101:8101] CHIP:DMG: }, - [1666939386.530723][8101:8101] CHIP:DMG: - [1666939386.530726][8101:8101] CHIP:DMG: ], - [1666939386.530732][8101:8101] CHIP:DMG: - [1666939386.530735][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - [1666939386.530737][8101:8101] CHIP:DMG: } - + Verify the KeySetWrite attribute On TH (all-Clusters-app) log and below is the sample log provided for the raspi platform: + + [1686908179.975193][16775:16775] CHIP:DMG: InvokeRequestMessage = + [1686908179.975207][16775:16775] CHIP:DMG: { + [1686908179.975219][16775:16775] CHIP:DMG: suppressResponse = false, + [1686908179.975235][16775:16775] CHIP:DMG: timedRequest = false, + [1686908179.975247][16775:16775] CHIP:DMG: InvokeRequests = + [1686908179.975276][16775:16775] CHIP:DMG: [ + [1686908179.975286][16775:16775] CHIP:DMG: CommandDataIB = + [1686908179.975303][16775:16775] CHIP:DMG: { + [1686908179.975313][16775:16775] CHIP:DMG: CommandPathIB = + [1686908179.975327][16775:16775] CHIP:DMG: { + [1686908179.975342][16775:16775] CHIP:DMG: EndpointId = 0x0, + [1686908179.975359][16775:16775] CHIP:DMG: ClusterId = 0x3f, + [1686908179.975374][16775:16775] CHIP:DMG: CommandId = 0x0, + [1686908179.975391][16775:16775] CHIP:DMG: }, + [1686908179.975408][16775:16775] CHIP:DMG: + [1686908179.975423][16775:16775] CHIP:DMG: CommandFields = + [1686908179.975437][16775:16775] CHIP:DMG: { + [1686908179.975450][16775:16775] CHIP:DMG: 0x0 = + [1686908179.975466][16775:16775] CHIP:DMG: { + [1686908179.975483][16775:16775] CHIP:DMG: 0x0 = 1, + [1686908179.975499][16775:16775] CHIP:DMG: 0x1 = 0, + [1686908179.975512][16775:16775] CHIP:DMG: 0x2 = [ + [1686908179.975535][16775:16775] CHIP:DMG: 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + [1686908179.975553][16775:16775] CHIP:DMG: ] (16 bytes) + [1686908179.975572][16775:16775] CHIP:DMG: 0x3 = 2220000, + [1686908179.975586][16775:16775] CHIP:DMG: 0x4 = [ + [1686908179.975613][16775:16775] CHIP:DMG: 0xd1, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + [1686908179.975635][16775:16775] CHIP:DMG: ] (16 bytes) + [1686908179.975648][16775:16775] CHIP:DMG: 0x5 = 2220001, + [1686908179.975659][16775:16775] CHIP:DMG: 0x6 = [ + [1686908179.975673][16775:16775] CHIP:DMG: 0xd2, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + [1686908179.975694][16775:16775] CHIP:DMG: ] (16 bytes) + [1686908179.975697][16775:16775] CHIP:DMG: 0x7 = 2220002, + [1686908179.975700][16775:16775] CHIP:DMG: }, + [1686908179.975704][16775:16775] CHIP:DMG: }, + [1686908179.975706][16775:16775] CHIP:DMG: }, + [1686908179.975712][16775:16775] CHIP:DMG: + [1686908179.975714][16775:16775] CHIP:DMG: ], + [1686908179.975721][16775:16775] CHIP:DMG: + [1686908179.975723][16775:16775] CHIP:DMG: InteractionModelRevision = 1 + [1686908179.975726][16775:16775] CHIP:DMG: }, + + Before adding the Groups 0x0002, 0x0003 execute below command + + ./chip-tool groupkeymanagement write group-key-map '[{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1} ]' 1 0 + + Verify the GroupKeyMap attribute On TH (all-Clusters-app) log and below is the sample log provided for the raspi platform: + + [1686907301.834464][16351:16351] CHIP:DMG: WriteRequestMessage = + [1686907301.834469][16351:16351] CHIP:DMG: { + [1686907301.834472][16351:16351] CHIP:DMG: suppressResponse = false, + [1686907301.834476][16351:16351] CHIP:DMG: timedRequest = false, + [1686907301.834479][16351:16351] CHIP:DMG: AttributeDataIBs = + [1686907301.834486][16351:16351] CHIP:DMG: [ + [1686907301.834490][16351:16351] CHIP:DMG: AttributeDataIB = + [1686907301.834495][16351:16351] CHIP:DMG: { + [1686907301.834498][16351:16351] CHIP:DMG: AttributePathIB = + [1686907301.834503][16351:16351] CHIP:DMG: { + [1686907301.834507][16351:16351] CHIP:DMG: Endpoint = 0x0, + [1686907301.834513][16351:16351] CHIP:DMG: Cluster = 0x3f, + [1686907301.834517][16351:16351] CHIP:DMG: Attribute = 0x0000_0000, + [1686907301.834522][16351:16351] CHIP:DMG: } + [1686907301.834527][16351:16351] CHIP:DMG: + [1686907301.834531][16351:16351] CHIP:DMG: Data = [ + [1686907301.834535][16351:16351] CHIP:DMG: + [1686907301.834540][16351:16351] CHIP:DMG: ], + [1686907301.834544][16351:16351] CHIP:DMG: }, + [1686907301.834552][16351:16351] CHIP:DMG: + [1686907301.834555][16351:16351] CHIP:DMG: AttributeDataIB = + [1686907301.834559][16351:16351] CHIP:DMG: { + [1686907301.834562][16351:16351] CHIP:DMG: AttributePathIB = + [1686907301.834566][16351:16351] CHIP:DMG: { + [1686907301.834570][16351:16351] CHIP:DMG: Endpoint = 0x0, + [1686907301.834575][16351:16351] CHIP:DMG: Cluster = 0x3f, + [1686907301.834583][16351:16351] CHIP:DMG: Attribute = 0x0000_0000, + [1686907301.834587][16351:16351] CHIP:DMG: ListIndex = Null, + [1686907301.834592][16351:16351] CHIP:DMG: } + [1686907301.834597][16351:16351] CHIP:DMG: + [1686907301.834601][16351:16351] CHIP:DMG: Data = + [1686907301.834605][16351:16351] CHIP:DMG: { + [1686907301.834611][16351:16351] CHIP:DMG: 0x1 = 2, + [1686907301.834615][16351:16351] CHIP:DMG: 0x2 = 1, + [1686907301.834619][16351:16351] CHIP:DMG: }, + [1686907301.834623][16351:16351] CHIP:DMG: }, + [1686907301.834632][16351:16351] CHIP:DMG: + [1686907301.834635][16351:16351] CHIP:DMG: AttributeDataIB = + [1686907301.834639][16351:16351] CHIP:DMG: { + [1686907301.834643][16351:16351] CHIP:DMG: AttributePathIB = + [1686907301.834647][16351:16351] CHIP:DMG: { + [1686907301.834651][16351:16351] CHIP:DMG: Endpoint = 0x0, + [1686907301.834656][16351:16351] CHIP:DMG: Cluster = 0x3f, + [1686907301.834661][16351:16351] CHIP:DMG: Attribute = 0x0000_0000, + [1686907301.834664][16351:16351] CHIP:DMG: ListIndex = Null, + [1686907301.834669][16351:16351] CHIP:DMG: } + [1686907301.834675][16351:16351] CHIP:DMG: + [1686907301.834678][16351:16351] CHIP:DMG: Data = + [1686907301.834682][16351:16351] CHIP:DMG: { + [1686907301.834686][16351:16351] CHIP:DMG: 0x1 = 3, + [1686907301.834690][16351:16351] CHIP:DMG: 0x2 = 1, + [1686907301.834694][16351:16351] CHIP:DMG: }, + [1686907301.834697][16351:16351] CHIP:DMG: }, + [1686907301.834703][16351:16351] CHIP:DMG: + [1686907301.834706][16351:16351] CHIP:DMG: ], + [1686907301.834716][16351:16351] CHIP:DMG: + [1686907301.834720][16351:16351] CHIP:DMG: moreChunkedMessages = false, + [1686907301.834723][16351:16351] CHIP:DMG: InteractionModelRevision = 1 + [1686907301.834728][16351:16351] CHIP:DMG: }, ./chip-tool groups add-group 0x0002 gp2 1 1 - Verify the command response in TH (all-Clusters-app) log - - [1666939418.383346][8101:8101] CHIP:DMG: - [1666939418.383356][8101:8101] CHIP:DMG: InvokeResponseMessage = - [1666939418.383358][8101:8101] CHIP:DMG: { - [1666939418.383360][8101:8101] CHIP:DMG: suppressResponse = false, - [1666939418.383362][8101:8101] CHIP:DMG: InvokeResponseIBs = - [1666939418.383365][8101:8101] CHIP:DMG: [ - [1666939418.383367][8101:8101] CHIP:DMG: InvokeResponseIB = - [1666939418.383371][8101:8101] CHIP:DMG: { - [1666939418.383372][8101:8101] CHIP:DMG: CommandDataIB = - [1666939418.383374][8101:8101] CHIP:DMG: { - [1666939418.383376][8101:8101] CHIP:DMG: CommandPathIB = - [1666939418.383379][8101:8101] CHIP:DMG: { - [1666939418.383381][8101:8101] CHIP:DMG: EndpointId = 0x1, - [1666939418.383383][8101:8101] CHIP:DMG: ClusterId = 0x4, - [1666939418.383385][8101:8101] CHIP:DMG: CommandId = 0x0, - [1666939418.383387][8101:8101] CHIP:DMG: }, - [1666939418.383390][8101:8101] CHIP:DMG: - [1666939418.383392][8101:8101] CHIP:DMG: CommandFields = - [1666939418.383394][8101:8101] CHIP:DMG: { - [1666939418.383397][8101:8101] CHIP:DMG: 0x0 = 0, - [1666939418.383399][8101:8101] CHIP:DMG: 0x1 = 2, - [1666939418.383401][8101:8101] CHIP:DMG: }, - [1666939418.383403][8101:8101] CHIP:DMG: }, - [1666939418.383406][8101:8101] CHIP:DMG: - [1666939418.383408][8101:8101] CHIP:DMG: }, - [1666939418.383411][8101:8101] CHIP:DMG: - [1666939418.383413][8101:8101] CHIP:DMG: ], - [1666939418.383416][8101:8101] CHIP:DMG: - [1666939418.383418][8101:8101] CHIP:DMG: InteractionModelRevision = 1 + Verify the AddGroup Command on TH (all-Clusters-app) log and below is the sample log provided for the raspi platform: + + [1686907598.850173][16351:16351] CHIP:DMG: InvokeRequestMessage = + [1686907598.850178][16351:16351] CHIP:DMG: { + [1686907598.850181][16351:16351] CHIP:DMG: suppressResponse = false, + [1686907598.850186][16351:16351] CHIP:DMG: timedRequest = false, + [1686907598.850191][16351:16351] CHIP:DMG: InvokeRequests = + [1686907598.850198][16351:16351] CHIP:DMG: [ + [1686907598.850200][16351:16351] CHIP:DMG: CommandDataIB = + [1686907598.850204][16351:16351] CHIP:DMG: { + [1686907598.850206][16351:16351] CHIP:DMG: CommandPathIB = + [1686907598.850210][16351:16351] CHIP:DMG: { + [1686907598.850213][16351:16351] CHIP:DMG: EndpointId = 0x1, + [1686907598.850217][16351:16351] CHIP:DMG: ClusterId = 0x4, + [1686907598.850220][16351:16351] CHIP:DMG: CommandId = 0x0, + [1686907598.850224][16351:16351] CHIP:DMG: }, + [1686907598.850228][16351:16351] CHIP:DMG: + [1686907598.850231][16351:16351] CHIP:DMG: CommandFields = + [1686907598.850234][16351:16351] CHIP:DMG: { + [1686907598.850238][16351:16351] CHIP:DMG: 0x0 = 2, + [1686907598.850242][16351:16351] CHIP:DMG: 0x1 = "gp2" (3 chars), + [1686907598.850245][16351:16351] CHIP:DMG: }, + [1686907598.850248][16351:16351] CHIP:DMG: }, + [1686907598.850252][16351:16351] CHIP:DMG: + [1686907598.850255][16351:16351] CHIP:DMG: ], + [1686907598.850260][16351:16351] CHIP:DMG: + [1686907598.850263][16351:16351] CHIP:DMG: InteractionModelRevision = 1 + [1686907598.850265][16351:16351] CHIP:DMG: }, ./chip-tool groups add-group 0x0003 gp3 1 1 - Verify the command response in TH (all-Clusters-app) log + Verify the AddGroup Command in TH (all-Clusters-app) log and below is the sample log provided for the raspi platform: [1666939441.007758][8101:8101] CHIP:DMG: InvokeResponseMessage = [1666939441.007761][8101:8101] CHIP:DMG: { @@ -218,228 +226,172 @@ tests: [1666939441.007821][8101:8101] CHIP:DMG: ], [1666939441.007825][8101:8101] CHIP:DMG: [1666939441.007827][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - - ./chip-tool groups add-group 0x0004 gp4 1 1 - - Verify the command response in TH (all-Clusters-app) log - - [1663135947.996375][326599:326599] CHIP:DMG: InvokeRequestMessage = - [1663135947.996379][326599:326599] CHIP:DMG: { - [1663135947.996382][326599:326599] CHIP:DMG: suppressResponse = false, - [1663135947.996385][326599:326599] CHIP:DMG: timedRequest = false, - [1663135947.996388][326599:326599] CHIP:DMG: InvokeRequests = - [1663135947.996394][326599:326599] CHIP:DMG: [ - [1663135947.996397][326599:326599] CHIP:DMG: CommandDataIB = - [1663135947.996400][326599:326599] CHIP:DMG: { - [1663135947.996403][326599:326599] CHIP:DMG: CommandPathIB = - [1663135947.996407][326599:326599] CHIP:DMG: { - [1663135947.996411][326599:326599] CHIP:DMG: EndpointId = 0x1, - [1663135947.996414][326599:326599] CHIP:DMG: ClusterId = 0x4, - [1663135947.996418][326599:326599] CHIP:DMG: CommandId = 0x0, - [1663135947.996421][326599:326599] CHIP:DMG: }, - [1663135947.996425][326599:326599] CHIP:DMG: - [1663135947.996428][326599:326599] CHIP:DMG: CommandFields = - [1663135947.996432][326599:326599] CHIP:DMG: { - [1663135947.996436][326599:326599] CHIP:DMG: 0x0 = 4, - [1663135947.996440][326599:326599] CHIP:DMG: 0x1 = "gp4" (3 chars), - [1663135947.996444][326599:326599] CHIP:DMG: }, - [1663135947.996447][326599:326599] CHIP:DMG: }, - [1663135947.996451][326599:326599] CHIP:DMG: - [1663135947.996454][326599:326599] CHIP:DMG: ], - [1663135947.996459][326599:326599] CHIP:DMG: - [1663135947.996462][326599:326599] CHIP:DMG: InteractionModelRevision = 1 - [1663135947.996465][326599:326599] CHIP:DMG: }, - [1663135947.996481][326599:326599] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0004 e=1 p=m - [1663135947.996488][326599:326599] CHIP:DMG: AccessControl: allowed disabled: true - - label: "DUT sends GetGroupMembership command to TH" + - label: "Step 1: DUT sends GetGroupMembership command to TH" PICS: G.C.C02.Tx verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - ./chip-tool groups get-group-membership '[0002]' 1 1 - - Verify the "GetGroupMembership command response" on the TH(Allcluster-app) Log: - - - [1659[1666939580.918612][8101:8101] CHIP:DMG: InvokeResponseMessage = - [1666939580.918614][8101:8101] CHIP:DMG: { - [1666939580.918617][8101:8101] CHIP:DMG: suppressResponse = false, - [1666939580.918618][8101:8101] CHIP:DMG: InvokeResponseIBs = - [1666939580.918622][8101:8101] CHIP:DMG: [ - [1666939580.918624][8101:8101] CHIP:DMG: InvokeResponseIB = - [1666939580.918627][8101:8101] CHIP:DMG: { - [1666939580.918629][8101:8101] CHIP:DMG: CommandDataIB = - [1666939580.918631][8101:8101] CHIP:DMG: { - [1666939580.918633][8101:8101] CHIP:DMG: CommandPathIB = - [1666939580.918636][8101:8101] CHIP:DMG: { - [1666939580.918638][8101:8101] CHIP:DMG: EndpointId = 0x1, - [1666939580.918640][8101:8101] CHIP:DMG: ClusterId = 0x4, - [1666939580.918643][8101:8101] CHIP:DMG: CommandId = 0x2, - [1666939580.918645][8101:8101] CHIP:DMG: }, - [1666939580.918647][8101:8101] CHIP:DMG: - [1666939580.918649][8101:8101] CHIP:DMG: CommandFields = - [1666939580.918652][8101:8101] CHIP:DMG: { - [1666939580.918654][8101:8101] CHIP:DMG: 0x0 = NULL - [1666939580.918657][8101:8101] CHIP:DMG: 0x1 = [ - [1666939580.918663][8101:8101] CHIP:DMG: 2, - [1666939580.918665][8101:8101] CHIP:DMG: ], - [1666939580.918668][8101:8101] CHIP:DMG: }, - [1666939580.918670][8101:8101] CHIP:DMG: }, - [1666939580.918673][8101:8101] CHIP:DMG: - [1666939580.918674][8101:8101] CHIP:DMG: }, - [1666939580.918678][8101:8101] CHIP:DMG: - [1666939580.918680][8101:8101] CHIP:DMG: ], - [1666939580.918683][8101:8101] CHIP:DMG: - [1666939580.918685][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - 609064.738513][3355:3355] CHIP:DMG: }, - [1659609064.738580][3355:3355] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0004 e=1 p=o - [1659609064.738619][3355:3355] CHIP:DMG: AccessControl: allowed - [1659609064.738648][3355:3355] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0004 Command=0x0000_0002 - [1659609064.738825][3355:3355] CHIP:DMG: ICR moving to [ Preparing] + ./chip-tool groups get-group-membership '[]' 1 0 + + Verify TH receives "GetGroupMembership" command on the TH(Allcluster-app) Log and below is the sample log provided for the raspi platform: + + [1686907689.672726][16351:16351] CHIP:DMG: InvokeRequestMessage = + [1686907689.672741][16351:16351] CHIP:DMG: { + [1686907689.672752][16351:16351] CHIP:DMG: suppressResponse = false, + [1686907689.672769][16351:16351] CHIP:DMG: timedRequest = false, + [1686907689.672782][16351:16351] CHIP:DMG: InvokeRequests = + [1686907689.672808][16351:16351] CHIP:DMG: [ + [1686907689.672820][16351:16351] CHIP:DMG: CommandDataIB = + [1686907689.672843][16351:16351] CHIP:DMG: { + [1686907689.672856][16351:16351] CHIP:DMG: CommandPathIB = + [1686907689.672870][16351:16351] CHIP:DMG: { + [1686907689.672888][16351:16351] CHIP:DMG: EndpointId = 0x0, + [1686907689.672906][16351:16351] CHIP:DMG: ClusterId = 0x4, + [1686907689.672924][16351:16351] CHIP:DMG: CommandId = 0x2, + [1686907689.672939][16351:16351] CHIP:DMG: }, + [1686907689.672954][16351:16351] CHIP:DMG: + [1686907689.672965][16351:16351] CHIP:DMG: CommandFields = + [1686907689.672982][16351:16351] CHIP:DMG: { + [1686907689.672998][16351:16351] CHIP:DMG: 0x0 = [ + [1686907689.673012][16351:16351] CHIP:DMG: + [1686907689.673031][16351:16351] CHIP:DMG: ], + [1686907689.673047][16351:16351] CHIP:DMG: }, + [1686907689.673060][16351:16351] CHIP:DMG: }, + [1686907689.673084][16351:16351] CHIP:DMG: + [1686907689.673097][16351:16351] CHIP:DMG: ], + [1686907689.673125][16351:16351] CHIP:DMG: + [1686907689.673136][16351:16351] CHIP:DMG: InteractionModelRevision = 1 + [1686907689.673146][16351:16351] CHIP:DMG: }, disabled: true - - label: "DUT sends RemoveGroup command to TH" + - label: "Step 2: DUT sends RemoveGroup command to TH" PICS: G.C.C03.Tx verification: | - ./chip-tool groups remove-group 0x0002 1 1 - - Verify the "RemoveGroup command response" on the TH(Allcluster-app) Log: - - 1666940385.829986][8101:8101] CHIP:DMG: InvokeResponseMessage = - [1666940385.829988][8101:8101] CHIP:DMG: { - [1666940385.829990][8101:8101] CHIP:DMG: suppressResponse = false, - [1666940385.829992][8101:8101] CHIP:DMG: InvokeResponseIBs = - [1666940385.829995][8101:8101] CHIP:DMG: [ - [1666940385.829997][8101:8101] CHIP:DMG: InvokeResponseIB = - [1666940385.830001][8101:8101] CHIP:DMG: { - [1666940385.830002][8101:8101] CHIP:DMG: CommandDataIB = - [1666940385.830004][8101:8101] CHIP:DMG: { - [1666940385.830006][8101:8101] CHIP:DMG: CommandPathIB = - [1666940385.830009][8101:8101] CHIP:DMG: { - [1666940385.830011][8101:8101] CHIP:DMG: EndpointId = 0x1, - [1666940385.830013][8101:8101] CHIP:DMG: ClusterId = 0x4, - [1666940385.830015][8101:8101] CHIP:DMG: CommandId = 0x3, - [1666940385.830019][8101:8101] CHIP:DMG: }, - [1666940385.830022][8101:8101] CHIP:DMG: - [1666940385.830025][8101:8101] CHIP:DMG: CommandFields = - [1666940385.830028][8101:8101] CHIP:DMG: { - [1666940385.830030][8101:8101] CHIP:DMG: 0x0 = 0, - [1666940385.830032][8101:8101] CHIP:DMG: 0x1 = 2, - [1666940385.830034][8101:8101] CHIP:DMG: }, - [1666940385.830035][8101:8101] CHIP:DMG: }, - [1666940385.830037][8101:8101] CHIP:DMG: - [1666940385.830039][8101:8101] CHIP:DMG: }, - [1666940385.830041][8101:8101] CHIP:DMG: - [1666940385.830042][8101:8101] CHIP:DMG: ], - [1666940385.830044][8101:8101] CHIP:DMG: - [1666940385.830046][8101:8101] CHIP:DMG: InteractionModelRevision = 1 + ./chip-tool groups remove-group 0x0002 1 0 + + Verify TH rceives "RemoveGroup" command on the TH(Allcluster-app) Log and below is the sample log provided for the raspi platform: + + [1686907735.778184][16351:16351] CHIP:DMG: InvokeRequestMessage = + [1686907735.778197][16351:16351] CHIP:DMG: { + [1686907735.778204][16351:16351] CHIP:DMG: suppressResponse = false, + [1686907735.778220][16351:16351] CHIP:DMG: timedRequest = false, + [1686907735.778229][16351:16351] CHIP:DMG: InvokeRequests = + [1686907735.778248][16351:16351] CHIP:DMG: [ + [1686907735.778258][16351:16351] CHIP:DMG: CommandDataIB = + [1686907735.778270][16351:16351] CHIP:DMG: { + [1686907735.778287][16351:16351] CHIP:DMG: CommandPathIB = + [1686907735.778304][16351:16351] CHIP:DMG: { + [1686907735.778332][16351:16351] CHIP:DMG: EndpointId = 0x0, + [1686907735.778350][16351:16351] CHIP:DMG: ClusterId = 0x4, + [1686907735.778367][16351:16351] CHIP:DMG: CommandId = 0x3, + [1686907735.778404][16351:16351] CHIP:DMG: }, + [1686907735.778423][16351:16351] CHIP:DMG: + [1686907735.778440][16351:16351] CHIP:DMG: CommandFields = + [1686907735.778457][16351:16351] CHIP:DMG: { + [1686907735.778477][16351:16351] CHIP:DMG: 0x0 = 2, + [1686907735.778492][16351:16351] CHIP:DMG: }, + [1686907735.778506][16351:16351] CHIP:DMG: }, + [1686907735.778528][16351:16351] CHIP:DMG: + [1686907735.778540][16351:16351] CHIP:DMG: ], + [1686907735.778565][16351:16351] CHIP:DMG: + [1686907735.778578][16351:16351] CHIP:DMG: InteractionModelRevision = 1 + [1686907735.778592][16351:16351] CHIP:DMG: }, disabled: true - - label: "DUT sends RemoveAllGroups command to TH" + - label: "Step 3: DUT sends RemoveAllGroups command to TH" PICS: G.C.C04.Tx verification: | - ./chip-tool groups remove-all-groups 1 1 - - Verify the "RemoveAllGroups command response" on the TH(Allcluster-app) Log: - - [1666940426.392765][8101:8101] CHIP:DMG: InvokeResponseMessage = - [1666940426.392768][8101:8101] CHIP:DMG: { - [1666940426.392770][8101:8101] CHIP:DMG: suppressResponse = false, - [1666940426.392772][8101:8101] CHIP:DMG: InvokeResponseIBs = - [1666940426.392775][8101:8101] CHIP:DMG: [ - [1666940426.392777][8101:8101] CHIP:DMG: InvokeResponseIB = - [1666940426.392781][8101:8101] CHIP:DMG: { - [1666940426.392783][8101:8101] CHIP:DMG: CommandStatusIB = - [1666940426.392786][8101:8101] CHIP:DMG: { - [1666940426.392788][8101:8101] CHIP:DMG: CommandPathIB = - [1666940426.392791][8101:8101] CHIP:DMG: { - [1666940426.392793][8101:8101] CHIP:DMG: EndpointId = 0x1, - [1666940426.392795][8101:8101] CHIP:DMG: ClusterId = 0x4, - [1666940426.392798][8101:8101] CHIP:DMG: CommandId = 0x4, - [1666940426.392800][8101:8101] CHIP:DMG: }, - [1666940426.392803][8101:8101] CHIP:DMG: - [1666940426.392805][8101:8101] CHIP:DMG: StatusIB = - [1666940426.392808][8101:8101] CHIP:DMG: { - [1666940426.392810][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666940426.392813][8101:8101] CHIP:DMG: }, - [1666940426.392815][8101:8101] CHIP:DMG: - [1666940426.392817][8101:8101] CHIP:DMG: }, - [1666940426.392820][8101:8101] CHIP:DMG: - [1666940426.392822][8101:8101] CHIP:DMG: }, - [1666940426.392825][8101:8101] CHIP:DMG: - [1666940426.392826][8101:8101] CHIP:DMG: ], - [1666940426.392829][8101:8101] CHIP:DMG: - [1666940426.392831][8101:8101] CHIP:DMG: InteractionModelRevision = 1 + ./chip-tool groups remove-all-groups 1 0 + + Verify TH receives "RemoveAllGroups" command on the TH(Allcluster-app) Log and below is the sample log provided for the raspi platform: + + [1686907774.344915][16351:16351] CHIP:DMG: InvokeRequestMessage = + [1686907774.344930][16351:16351] CHIP:DMG: { + [1686907774.344938][16351:16351] CHIP:DMG: suppressResponse = false, + [1686907774.344949][16351:16351] CHIP:DMG: timedRequest = false, + [1686907774.344959][16351:16351] CHIP:DMG: InvokeRequests = + [1686907774.344976][16351:16351] CHIP:DMG: [ + [1686907774.344988][16351:16351] CHIP:DMG: CommandDataIB = + [1686907774.345007][16351:16351] CHIP:DMG: { + [1686907774.345021][16351:16351] CHIP:DMG: CommandPathIB = + [1686907774.345039][16351:16351] CHIP:DMG: { + [1686907774.345052][16351:16351] CHIP:DMG: EndpointId = 0x0, + [1686907774.345082][16351:16351] CHIP:DMG: ClusterId = 0x4, + [1686907774.345098][16351:16351] CHIP:DMG: CommandId = 0x4, + [1686907774.345115][16351:16351] CHIP:DMG: }, + [1686907774.345136][16351:16351] CHIP:DMG: + [1686907774.345150][16351:16351] CHIP:DMG: CommandFields = + [1686907774.345166][16351:16351] CHIP:DMG: { + [1686907774.345181][16351:16351] CHIP:DMG: }, + [1686907774.345198][16351:16351] CHIP:DMG: }, + [1686907774.345219][16351:16351] CHIP:DMG: + [1686907774.345233][16351:16351] CHIP:DMG: ], + [1686907774.345257][16351:16351] CHIP:DMG: + [1686907774.345270][16351:16351] CHIP:DMG: InteractionModelRevision = 1 + [1686907774.345284][16351:16351] CHIP:DMG: }, disabled: true - - label: "DUT sends AddGroupIfIdentifying command to TH" + - label: "Step 4: DUT sends AddGroupIfIdentifying command to TH" PICS: G.C.C05.Tx verification: | - ./chip-tool identify identify 0x0078 1 1 - - Verify the "status is SUCCESS" on the TH(Chip-tool) Log: - - [1666940447.677717][8101:8101] CHIP:DMG: InvokeResponseMessage = - [1666940447.677720][8101:8101] CHIP:DMG: { - [1666940447.677722][8101:8101] CHIP:DMG: suppressResponse = false, - [1666940447.677724][8101:8101] CHIP:DMG: InvokeResponseIBs = - [1666940447.677727][8101:8101] CHIP:DMG: [ - [1666940447.677729][8101:8101] CHIP:DMG: InvokeResponseIB = - [1666940447.677732][8101:8101] CHIP:DMG: { - [1666940447.677735][8101:8101] CHIP:DMG: CommandStatusIB = - [1666940447.677738][8101:8101] CHIP:DMG: { - [1666940447.677740][8101:8101] CHIP:DMG: CommandPathIB = - [1666940447.677742][8101:8101] CHIP:DMG: { - [1666940447.677744][8101:8101] CHIP:DMG: EndpointId = 0x1, - [1666940447.677749][8101:8101] CHIP:DMG: ClusterId = 0x3, - [1666940447.677751][8101:8101] CHIP:DMG: CommandId = 0x0, - [1666940447.677753][8101:8101] CHIP:DMG: }, - [1666940447.677756][8101:8101] CHIP:DMG: - [1666940447.677758][8101:8101] CHIP:DMG: StatusIB = - [1666940447.677761][8101:8101] CHIP:DMG: { - [1666940447.677763][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666940447.677765][8101:8101] CHIP:DMG: }, - [1666940447.677768][8101:8101] CHIP:DMG: - [1666940447.677770][8101:8101] CHIP:DMG: }, - [1666940447.677772][8101:8101] CHIP:DMG: - [1666940447.677774][8101:8101] CHIP:DMG: }, - [1666940447.677778][8101:8101] CHIP:DMG: - [1666940447.677780][8101:8101] CHIP:DMG: ], - [1666940447.677783][8101:8101] CHIP:DMG: - [1666940447.677785][8101:8101] CHIP:DMG: InteractionModelRevision = 1 - - - ./chip-tool groups add-group-if-identifying 0x0004 gp4 1 1 - - Verify the "AddGroupIfIdentifying command response" on the TH(Allcluster-app) Log: - [1666940541.321331][8101:8101] CHIP:DMG: InvokeResponseMessage = - [1666940541.321333][8101:8101] CHIP:DMG: { - [1666940541.321336][8101:8101] CHIP:DMG: suppressResponse = false, - [1666940541.321339][8101:8101] CHIP:DMG: InvokeResponseIBs = - [1666940541.321343][8101:8101] CHIP:DMG: [ - [1666940541.321346][8101:8101] CHIP:DMG: InvokeResponseIB = - [1666940541.321351][8101:8101] CHIP:DMG: { - [1666940541.321354][8101:8101] CHIP:DMG: CommandStatusIB = - [1666940541.321357][8101:8101] CHIP:DMG: { - [1666940541.321360][8101:8101] CHIP:DMG: CommandPathIB = - [1666940541.321363][8101:8101] CHIP:DMG: { - [1666940541.321367][8101:8101] CHIP:DMG: EndpointId = 0x0, - [1666940541.321371][8101:8101] CHIP:DMG: ClusterId = 0x4, - [1666940541.321374][8101:8101] CHIP:DMG: CommandId = 0x5, - [1666940541.321377][8101:8101] CHIP:DMG: }, - [1666940541.321381][8101:8101] CHIP:DMG: - [1666940541.321384][8101:8101] CHIP:DMG: StatusIB = - [1666940541.321388][8101:8101] CHIP:DMG: { - [1666940541.321391][8101:8101] CHIP:DMG: status = 0x00 (SUCCESS), - [1666940541.321394][8101:8101] CHIP:DMG: }, - [1666940541.321397][8101:8101] CHIP:DMG: - [1666940541.321400][8101:8101] CHIP:DMG: }, - [1666940541.321404][8101:8101] CHIP:DMG: - [1666940541.321407][8101:8101] CHIP:DMG: }, - [1666940541.321411][8101:8101] CHIP:DMG: - [1666940541.321413][8101:8101] CHIP:DMG: ], - [1666940541.321418][8101:8101] CHIP:DMG: - [1666940541.321420][8101:8101] CHIP:DMG: InteractionModelRevision = 1 + ./chip-tool identify identify 0x0078 1 0 + + Verify TH receives "Identify" command on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1686907811.636149][16351:16351] CHIP:DMG: InvokeRequestMessage = + [1686907811.636168][16351:16351] CHIP:DMG: { + [1686907811.636182][16351:16351] CHIP:DMG: suppressResponse = false, + [1686907811.636201][16351:16351] CHIP:DMG: timedRequest = false, + [1686907811.636213][16351:16351] CHIP:DMG: InvokeRequests = + [1686907811.636232][16351:16351] CHIP:DMG: [ + [1686907811.636242][16351:16351] CHIP:DMG: CommandDataIB = + [1686907811.636256][16351:16351] CHIP:DMG: { + [1686907811.636266][16351:16351] CHIP:DMG: CommandPathIB = + [1686907811.636283][16351:16351] CHIP:DMG: { + [1686907811.636301][16351:16351] CHIP:DMG: EndpointId = 0x0, + [1686907811.636313][16351:16351] CHIP:DMG: ClusterId = 0x3, + [1686907811.636329][16351:16351] CHIP:DMG: CommandId = 0x0, + [1686907811.636340][16351:16351] CHIP:DMG: }, + [1686907811.636356][16351:16351] CHIP:DMG: + [1686907811.636366][16351:16351] CHIP:DMG: CommandFields = + [1686907811.636378][16351:16351] CHIP:DMG: { + [1686907811.636392][16351:16351] CHIP:DMG: 0x0 = 120, + [1686907811.636407][16351:16351] CHIP:DMG: }, + [1686907811.636416][16351:16351] CHIP:DMG: }, + [1686907811.636432][16351:16351] CHIP:DMG: + [1686907811.636442][16351:16351] CHIP:DMG: ], + [1686907811.636457][16351:16351] CHIP:DMG: + [1686907811.636468][16351:16351] CHIP:DMG: InteractionModelRevision = 1 + [1686907811.636480][16351:16351] CHIP:DMG: }, + + ./chip-tool groups add-group-if-identifying 0x0003 gp3 1 0 + + Verify TH receives "AddGroupIfIdentifying" command on the TH(Allcluster-app) Log and below is the sample log provided for the raspi platform: + + [1686907865.814999][16351:16351] CHIP:DMG: InvokeRequestMessage = + [1686907865.815004][16351:16351] CHIP:DMG: { + [1686907865.815008][16351:16351] CHIP:DMG: suppressResponse = false, + [1686907865.815013][16351:16351] CHIP:DMG: timedRequest = false, + [1686907865.815018][16351:16351] CHIP:DMG: InvokeRequests = + [1686907865.815023][16351:16351] CHIP:DMG: [ + [1686907865.815026][16351:16351] CHIP:DMG: CommandDataIB = + [1686907865.815030][16351:16351] CHIP:DMG: { + [1686907865.815033][16351:16351] CHIP:DMG: CommandPathIB = + [1686907865.815036][16351:16351] CHIP:DMG: { + [1686907865.815039][16351:16351] CHIP:DMG: EndpointId = 0x0, + [1686907865.815042][16351:16351] CHIP:DMG: ClusterId = 0x4, + [1686907865.815045][16351:16351] CHIP:DMG: CommandId = 0x5, + [1686907865.815048][16351:16351] CHIP:DMG: }, + [1686907865.815052][16351:16351] CHIP:DMG: + [1686907865.815055][16351:16351] CHIP:DMG: CommandFields = + [1686907865.815057][16351:16351] CHIP:DMG: { + [1686907865.815061][16351:16351] CHIP:DMG: 0x0 = 3, + [1686907865.815065][16351:16351] CHIP:DMG: 0x1 = "gp3" (3 chars), + [1686907865.815071][16351:16351] CHIP:DMG: }, + [1686907865.815075][16351:16351] CHIP:DMG: }, + [1686907865.815079][16351:16351] CHIP:DMG: + [1686907865.815082][16351:16351] CHIP:DMG: ], + [1686907865.815086][16351:16351] CHIP:DMG: + [1686907865.815089][16351:16351] CHIP:DMG: InteractionModelRevision = 1 + [1686907865.815092][16351:16351] CHIP:DMG: }, disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ICDM_2_2.yaml b/src/app/tests/suites/certification/Test_TC_ICDM_2_2.yaml new file mode 100644 index 00000000000000..5b78ee21ece4ea --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_ICDM_2_2.yaml @@ -0,0 +1,269 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 214.2.2. [TC-ICDM-2.2] Primary functionality with DUT as Server + +PICS: + - ICDM.S + - ICDM.S.C00.Rsp + - ICDM.S.C02.Rsp + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: TH sends RegisterClient command. - CheckInNodeID: registering + clients node ID - MonitoredSubject: monitored subject ID - Key: shared + secret between the client and the ICD used in the encryption of the + check-in message payload." + PICS: ICDM.S.C00.Rsp + verification: | + ./chip-tool icdmanagement register-client 1 1 1234567890abcdef 1 0 + On TH(chip-tool) verify that DUT responds with status code as success + + [1687534883748] [49948:406768] [DMG] Received Command Response Data, Endpoint=0 Cluster=0x0000_0046 Command=0x0000_0001 + [1687534883748] [49948:406768] [TOO] Endpoint: 0 Cluster: 0x0000_0046 Command 0x0000_0001 + [1687534883748] [49948:406768] [TOO] RegisterClientResponse: { + [1687534883748] [49948:406768] [TOO] ICDCounter: 0 + [1687534883748] [49948:406768] [TOO] } + disabled: true + + - label: "Step 2: TH reads from the DUT the RegisteredClients attribute." + PICS: ICDM.S.A0003 + verification: | + ./chip-tool icdmanagement read registered-clients 1 0 + + On TH(Chip-tool), Verify that the DUT response contains a list of 1 registered client of given CheckInNodeID, MonitoredSubject, and Key + + [1689676816.943056][18202:18204] CHIP:DMG: } + [1689676816.943185][18202:18204] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0046 Attribute 0x0000_0003 DataVersion: 1824957093 + [1689676816.943237][18202:18204] CHIP:TOO: RegisteredClients: 2 entries + [1689676816.943266][18202:18204] CHIP:TOO: [1]: { + [1689676816.943273][18202:18204] CHIP:TOO: CheckInNodeID: 1 + [1689676816.943279][18202:18204] CHIP:TOO: MonitoredSubject: 1 + [1689676816.943288][18202:18204] CHIP:TOO: Key: 31323334353637383930616263646566 + [1689676816.943302][18202:18204] CHIP:TOO: FabricIndex: 1 + [1689676816.943309][18202:18204] CHIP:TOO: } + [1689676816.943411][18202:18204] CHIP:EM: <<< [E:57729i S:18360 M:263136445 (Ack:51562449)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689676816.943425][18202:18204] CHIP:IN: (S) Sending msg 263136445 on secure session with LSID: 18360 + disabled: true + + - label: + "Step 3a: TH reads from the DUT the + ICDM.S.A0005(ClientsSupportedPerFabric) attribute." + PICS: ICDM.S.A0005 + verification: | + ./chip-tool icdmanagement read clients-supported-per-fabric 1 0 + + [1689676851.025335][18210:18212] CHIP:DMG: } + [1689676851.025406][18210:18212] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0046 Attribute 0x0000_0005 DataVersion: 1824957093 + [1689676851.025433][18210:18212] CHIP:TOO: ClientsSupportedPerFabric: 2 + [1689676851.025500][18210:18212] CHIP:EM: <<< [E:302i S:21595 M:237990169 (Ack:268232015)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689676851.025513][18210:18212] CHIP:IN: (S) Sending msg 237990169 on secure session with LSID: 21595 + [1689676851.025540][18210:18212] CHIP:EM: Flushed pending ack for MessageCounter:268232015 on exchange 302i + disabled: true + + - label: + "Step 3b: If RegisteredClients is less than ClientsSupportedPerFabric, + TH repeats RegisterClient command with a different CheckInNodeID until + the number of RegisteredClients equals ClientsSupportedPerFabric." + PICS: ICDM.S.C00.Rsp + verification: | + ./chip-tool icdmanagement register-client 2 2 2234567890abcdef 1 0 + + On TH(chip-tool) verify that DUT responds with status code as success + + [1687535275413] [50580:413095] [DMG] Received Command Response Data, Endpoint=0 Cluster=0x0000_0046 Command=0x0000_0001 + [1687535275413] [50580:413095] [TOO] Endpoint: 0 Cluster: 0x0000_0046 Command 0x0000_0001 + [1687535275413] [50580:413095] [TOO] RegisterClientResponse: { + [1687535275413] [50580:413095] [TOO] ICDCounter: 0 + [1687535275413] [50580:413095] [TOO] } + disabled: true + + - label: + "Step 3c: TH sends RegisterClient command with a different + CheckInNodeID." + PICS: ICDM.S.C00.Rsp + verification: | + ./chip-tool icdmanagement register-client 10 20 abcdef1234567890 1 0 + + On TH(chip-tool) verify that DUT responds with status as RESOURCE_EXHAUSTED(0x89) + + [1687535364276] [50673:414417] [DMG] Received Command Response Status for Endpoint=0 Cluster=0x0000_0046 Command=0x0000_0000 Status=0x89 + [1687535364276] [50673:414417] [TOO] Error: IM Error 0x00000589: General error: 0x89 (RESOURCE_EXHAUSTED) + disabled: true + + - label: "Step 4: TH reads from the DUT the RegisteredClients attribute." + PICS: ICDM.S.A0003 + verification: | + ./chip-tool icdmanagement read registered-clients 1 0 + On TH(chip-tool), Verify that the DUT response contains a list of registered clients from Step 1 and 3b; each entry contains CheckInNodeID, MonitoredSubject, and Key. + + [1689676880.681118][18221:18223] CHIP:DMG: } + [1689676880.681246][18221:18223] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0046 Attribute 0x0000_0003 DataVersion: 1824957093 + [1689676880.681292][18221:18223] CHIP:TOO: RegisteredClients: 2 entries + [1689676880.681320][18221:18223] CHIP:TOO: [1]: { + [1689676880.681334][18221:18223] CHIP:TOO: CheckInNodeID: 1 + [1689676880.681341][18221:18223] CHIP:TOO: MonitoredSubject: 1 + [1689676880.681349][18221:18223] CHIP:TOO: Key: 31323334353637383930616263646566 + [1689676880.681357][18221:18223] CHIP:TOO: FabricIndex: 1 + [1689676880.681363][18221:18223] CHIP:TOO: } + [1689676880.681373][18221:18223] CHIP:TOO: [2]: { + [1689676880.681378][18221:18223] CHIP:TOO: CheckInNodeID: 2 + [1689676880.681384][18221:18223] CHIP:TOO: MonitoredSubject: 2 + [1689676880.681390][18221:18223] CHIP:TOO: Key: 32323334353637383930616263646566 + [1689676880.681396][18221:18223] CHIP:TOO: FabricIndex: 1 + [1689676880.681401][18221:18223] CHIP:TOO: } + [1689676880.681461][18221:18223] CHIP:EM: <<< [E:58454i S:61329 M:203963160 (Ack:146764558)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689676880.681475][18221:18223] CHIP:IN: (S) Sending msg 203963160 on secure session with LSID: 61329 + [1689676880.681506][18221:18223] CHIP:EM: Flushed pending ack for MessageCounter:146764558 on exchange 58454i + [1689676880.681697][18221:18221] CHIP:CTL: Shutting down the commissioner + disabled: true + + - label: + "Step 5a: TH sends UnregisterClient command with a CheckInNodeID which + is not in the list of RegisteredClients from Step 4." + PICS: ICDM.S.C02.Rsp + verification: | + ./chip-tool icdmanagement unregister-client 10 1 0 + On TH(chip-tool) verify that DUT responds with status as NOT_FOUND(0x8b). + [1687535473821] [50706:415574] [DMG] Received Command Response Status for Endpoint=0 Cluster=0x0000_0046 Command=0x0000_0002 Status=0x8b + [1687535473821] [50706:415574] [TOO] Error: IM Error 0x0000058B: General error: 0x8b (NOT_FOUND) + disabled: true + + - label: + "Step 5b: TH sends UnregisterClient command with the CheckInNodeID + from Step 1." + PICS: ICDM.S.C02.Rsp + verification: | + ./chip-tool icdmanagement unregister-client 1 1 0 + On TH(chip-tool) verify that DUT responds with status as SUCCESS(0x00). + [1689764286.310839][26236:26241] CHIP:DMG: InvokeResponseMessage = + [1689764286.310843][26236:26241] CHIP:DMG: { + [1689764286.310848][26236:26241] CHIP:DMG: suppressResponse = false, + [1689764286.310852][26236:26241] CHIP:DMG: InvokeResponseIBs = + [1689764286.310859][26236:26241] CHIP:DMG: [ + [1689764286.310863][26236:26241] CHIP:DMG: InvokeResponseIB = + [1689764286.310871][26236:26241] CHIP:DMG: { + [1689764286.310875][26236:26241] CHIP:DMG: CommandStatusIB = + [1689764286.310880][26236:26241] CHIP:DMG: { + [1689764286.310885][26236:26241] CHIP:DMG: CommandPathIB = + [1689764286.310891][26236:26241] CHIP:DMG: { + [1689764286.310896][26236:26241] CHIP:DMG: EndpointId = 0x0, + [1689764286.310901][26236:26241] CHIP:DMG: ClusterId = 0x46, + [1689764286.310906][26236:26241] CHIP:DMG: CommandId = 0x2, + [1689764286.310911][26236:26241] CHIP:DMG: }, + [1689764286.310919][26236:26241] CHIP:DMG: + [1689764286.310922][26236:26241] CHIP:DMG: StatusIB = + [1689764286.310928][26236:26241] CHIP:DMG: { + [1689764286.310932][26236:26241] CHIP:DMG: status = 0x00 (SUCCESS), + [1689764286.310936][26236:26241] CHIP:DMG: }, + [1689764286.310941][26236:26241] CHIP:DMG: + [1689764286.310945][26236:26241] CHIP:DMG: }, + [1689764286.310951][26236:26241] CHIP:DMG: + [1689764286.310955][26236:26241] CHIP:DMG: }, + [1689764286.310962][26236:26241] CHIP:DMG: + [1689764286.310966][26236:26241] CHIP:DMG: ], + [1689764286.310972][26236:26241] CHIP:DMG: + [1689764286.310976][26236:26241] CHIP:DMG: InteractionModelRevision = 1 + [1689764286.310980][26236:26241] CHIP:DMG: }, + [1689764286.311002][26236:26241] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0046 Command=0x0000_0002 Status=0x0 + [1689764286.311020][26236:26241] CHIP:DMG: ICR moving to [AwaitingDe] + [1689764286.311060][26236:26241] CHIP:EM: <<< [E:63413i S:31018 M:161228496 (Ack:98843769)] (S) Msg TX to 1:0000000000000001 [D397] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689764286.311069][26236:26241] CHIP:IN: (S) Sending msg 161228496 on secure session with LSID: 31018 + [1689764286.311093][26236:26241] CHIP:EM: Flushed pending ack for MessageCounter:98843769 on exchange 63413i + disabled: true + + - label: + "Step 5c: Repeat Step 5b with the rest of CheckInNodeIDs from the list + of RegisteredClients from Step 4, if any." + PICS: ICDM.S.C02.Rsp + verification: | + ./chip-tool icdmanagement unregister-client 2 1 0 + On TH(chip-tool) verify that DUT responds with status as SUCCESS(0x00). + + [1689764308.632783][26647:26650] CHIP:DMG: ICR moving to [ResponseRe] + [1689764308.632806][26647:26650] CHIP:DMG: InvokeResponseMessage = + [1689764308.632816][26647:26650] CHIP:DMG: { + [1689764308.632826][26647:26650] CHIP:DMG: suppressResponse = false, + [1689764308.632842][26647:26650] CHIP:DMG: InvokeResponseIBs = + [1689764308.632864][26647:26650] CHIP:DMG: [ + [1689764308.632878][26647:26650] CHIP:DMG: InvokeResponseIB = + [1689764308.632899][26647:26650] CHIP:DMG: { + [1689764308.632918][26647:26650] CHIP:DMG: CommandStatusIB = + [1689764308.632941][26647:26650] CHIP:DMG: { + [1689764308.632982][26647:26650] CHIP:DMG: CommandPathIB = + [1689764308.633008][26647:26650] CHIP:DMG: { + [1689764308.633028][26647:26650] CHIP:DMG: EndpointId = 0x0, + [1689764308.633056][26647:26650] CHIP:DMG: ClusterId = 0x46, + [1689764308.633080][26647:26650] CHIP:DMG: CommandId = 0x2, + [1689764308.633103][26647:26650] CHIP:DMG: }, + [1689764308.633129][26647:26650] CHIP:DMG: + [1689764308.633151][26647:26650] CHIP:DMG: StatusIB = + [1689764308.633176][26647:26650] CHIP:DMG: { + [1689764308.633201][26647:26650] CHIP:DMG: status = 0x00 (SUCCESS), + [1689764308.633228][26647:26650] CHIP:DMG: }, + [1689764308.633252][26647:26650] CHIP:DMG: + [1689764308.633273][26647:26650] CHIP:DMG: }, + [1689764308.633295][26647:26650] CHIP:DMG: + [1689764308.633311][26647:26650] CHIP:DMG: }, + [1689764308.633331][26647:26650] CHIP:DMG: + [1689764308.633345][26647:26650] CHIP:DMG: ], + [1689764308.633363][26647:26650] CHIP:DMG: + [1689764308.633383][26647:26650] CHIP:DMG: InteractionModelRevision = 1 + [1689764308.633413][26647:26650] CHIP:DMG: }, + [1689764308.633514][26647:26650] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0046 Command=0x0000_0002 Status=0x0 + [1689764308.633536][26647:26650] CHIP:DMG: ICR moving to [AwaitingDe] + disabled: true + + - label: "Step 6: TH reads from the DUT the RegisteredClients attribute." + PICS: ICDM.S.A0003 + verification: | + ./chip-tool icdmanagement read registered-clients 1 0 + On TH(chip-tool) Verify that the DUT response contains empty list of registered clients. + + [1689764322.761414][26808:26810] CHIP:DMG: } + [1689764322.761506][26808:26810] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0046 Attribute 0x0000_0003 DataVersion: 1750818309 + [1689764322.761629][26808:26810] CHIP:TOO: RegisteredClients: 0 entries + [1689764322.761723][26808:26810] CHIP:EM: <<< [E:36669i S:5946 M:161762028 (Ack:88110606)] (S) Msg TX to 1:0000000000000001 [D397] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689764322.761742][26808:26810] CHIP:IN: (S) Sending msg 161762028 on secure session with LSID: 5946 + [1689764322.761775][26808:26810] CHIP:EM: Flushed pending ack for MessageCounter:88110606 on exchange 36669i + disabled: true + + - label: + "Step 7: TH sends UnregisterClient command with the CheckInNodeID from + Step 1." + PICS: ICDM.S.C02.Rsp + verification: | + ./chip-tool icdmanagement unregister-client 1 1 0 + On TH(chip-tool) verify that DUT responds with status as NOT_FOUND(0x8b) + + [1689764335.957449][27077:27079] CHIP:DMG: }, + [1689764335.957456][27077:27079] CHIP:DMG: + [1689764335.957460][27077:27079] CHIP:DMG: ], + [1689764335.957468][27077:27079] CHIP:DMG: + [1689764335.957472][27077:27079] CHIP:DMG: InteractionModelRevision = 1 + [1689764335.957476][27077:27079] CHIP:DMG: }, + [1689764335.957497][27077:27079] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0046 Command=0x0000_0002 Status=0x8b + [1689764335.957513][27077:27079] CHIP:TOO: Error: IM Error 0x0000058B: General error: 0x8b (NOT_FOUND) + [1689764335.957525][27077:27079] CHIP:DMG: ICR moving to [AwaitingDe] + [1689764335.957567][27077:27079] CHIP:EM: <<< [E:17566i S:36201 M:3097260 (Ack:169314533)] (S) Msg TX to 1:0000000000000001 [D397] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689764335.957578][27077:27079] CHIP:IN: (S) Sending msg 3097260 on secure session with LSID: 36201 + [1689764335.957604][27077:27079] CHIP:EM: Flushed pending ack for MessageCounter:169314533 on exchange 17566i + [1689764335.957677][27077:27077] CHIP:CTL: Shutting down the commissioner + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ICDM_2_3.yaml b/src/app/tests/suites/certification/Test_TC_ICDM_2_3.yaml new file mode 100644 index 00000000000000..da710759d2c7ee --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_ICDM_2_3.yaml @@ -0,0 +1,48 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 214.2.3. [TC-ICDM-2.3] Secondary functionality with DUT as Server + +PICS: + - ICDM.S + - ICDM.S.C00.Rsp + - ICDM.S.C02.Rsp + - ICDM.S.C03.Rsp + +config: + nodeId: "0x12344321" + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: TH reads from the DUT the ActiveModeThreshold attribute." + PICS: ICDM.S.A0002 + verification: | + Verify that the DUT response contains an uint16; value is 300 or higher + disabled: true + + - label: "Step 2: TH sends StayActiveRequest command." + PICS: ICDM.S.C03.Rsp + verification: | + Verify DUT responds w/ status SUCCESS(0x00). + disabled: true + + - label: + "Step 3: Verify DUT increases the remaining time in active mode by one + ActiveModeThreshold" + PICS: ICDM.S.C03.Rsp + verification: | + Verify DUT increases the remaining time in active mode by one ActiveModeThreshold + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_1_1.yaml index 05994adbe5a87b..9994a19196a928 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_1_1.yaml @@ -30,118 +30,161 @@ tests: disabled: true - label: - "DUT sends the Invoke Request Message to the TH. The Message should - contain one valid CommandDataIB, which has the specific Endpoint, - Specific Cluster and Specific Command." + "Step 1: DUT sends the Invoke Request Message to the TH. The Message + should contain one valid CommandDataIB, which has the specific + Endpoint, Specific Cluster and Specific Command." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool onoff on 1 1 - On TH(all-clusters-app), Verify we are getting EndpointID, CommandID, ClusterID in the response data (as below) matching with the data sent in the above command - - [1655717373.046081][10909:10909] CHIP:DMG: InvokeRequestMessage = - [1655717373.046137][10909:10909] CHIP:DMG: { - [1655717373.046185][10909:10909] CHIP:DMG: suppressResponse = false, - [1655717373.046240][10909:10909] CHIP:DMG: timedRequest = false, - [1655717373.046291][10909:10909] CHIP:DMG: InvokeRequests = - [1655717373.046356][10909:10909] CHIP:DMG: [ - [1655717373.046407][10909:10909] CHIP:DMG: CommandDataIB = - [1655717373.046464][10909:10909] CHIP:DMG: { - [1655717373.046518][10909:10909] CHIP:DMG: CommandPathIB = - [1655717373.046583][10909:10909] CHIP:DMG: { - [1655717373.046649][10909:10909] CHIP:DMG: EndpointId = 0x1, - [1655717373.046720][10909:10909] CHIP:DMG: ClusterId = 0x6, - [1655717373.046782][10909:10909] CHIP:DMG: CommandId = 0x1, - [1655717373.046885][10909:10909] CHIP:DMG: }, - [1655717373.046961][10909:10909] CHIP:DMG: - [1655717373.047017][10909:10909] CHIP:DMG: CommandFields = - [1655717373.047080][10909:10909] CHIP:DMG: { - [1655717373.047143][10909:10909] CHIP:DMG: }, - [1655717373.047211][10909:10909] CHIP:DMG: }, - [1655717373.047272][10909:10909] CHIP:DMG: - [1655717373.047322][10909:10909] CHIP:DMG: ], - [1655717373.047383][10909:10909] CHIP:DMG: - [1655717373.047433][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655717373.047482][10909:10909] CHIP:DMG: }, - [1655717373.047599][10909:10909] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1655717373.047665][10909:10909] CHIP:DMG: AccessControl: allowed - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1657867897.521090][2728:2733] CHIP:DMG: }, - [1657867897.521162][2728:2733] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 - [1657867897.521212][2728:2733] CHIP:DMG: ICR moving to [AwaitingDe] - [1657867897.521275][2728:2733] CHIP:EM: Sending Standalone Ack for MessageCounter:30068876 on exchange 7104i + On TH(all-clusters-app), Verify that the EndpointID, CommandID, ClusterID in the InvokeRequestMessage (as below) matching with the data sent in the above command + + [1686223199.951436][92512:92512] CHIP:DMG: InvokeRequestMessage = + [1686223199.951445][92512:92512] CHIP:DMG: { + [1686223199.951454][92512:92512] CHIP:DMG: suppressResponse = false, + [1686223199.951464][92512:92512] CHIP:DMG: timedRequest = false, + [1686223199.951473][92512:92512] CHIP:DMG: InvokeRequests = + [1686223199.951489][92512:92512] CHIP:DMG: [ + [1686223199.951497][92512:92512] CHIP:DMG: CommandDataIB = + [1686223199.951509][92512:92512] CHIP:DMG: { + [1686223199.951518][92512:92512] CHIP:DMG: CommandPathIB = + [1686223199.951529][92512:92512] CHIP:DMG: { + [1686223199.951540][92512:92512] CHIP:DMG: EndpointId = 0x1, + [1686223199.951552][92512:92512] CHIP:DMG: ClusterId = 0x6, + [1686223199.951563][92512:92512] CHIP:DMG: CommandId = 0x1, + [1686223199.951572][92512:92512] CHIP:DMG: }, + [1686223199.951585][92512:92512] CHIP:DMG: + [1686223199.951595][92512:92512] CHIP:DMG: CommandFields = + [1686223199.951605][92512:92512] CHIP:DMG: { + [1686223199.951615][92512:92512] CHIP:DMG: }, + [1686223199.951624][92512:92512] CHIP:DMG: }, + [1686223199.951637][92512:92512] CHIP:DMG: + [1686223199.951644][92512:92512] CHIP:DMG: ], + [1686223199.951658][92512:92512] CHIP:DMG: + [1686223199.951666][92512:92512] CHIP:DMG: InteractionModelRevision = 1 + [1686223199.951673][92512:92512] CHIP:DMG: }, + [1686223199.951721][92512:92512] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o + [1686223199.951739][92512:92512] CHIP:DMG: AccessControl: allowed disabled: true - label: - "DUT sends the Invoke Request Message to the TH. The Message should - contain the wildcard for Endpoint, specific Cluster and Specific - Command in the CommandDataIB." + "Step 2: DUT sends the Invoke Request Message to the TH. The Message + should contain the wildcard for Endpoint, specific Cluster and + Specific Command in the CommandDataIB." verification: | - Out of Scope for V1.0 + Out of Scope disabled: true - label: - "DUT sends the Invoke Request Message to the TH. The Message should - contain multiple paths Path = [[ Endpoint = Endpoint1, Cluster = - ClusterID, Command = Command1 ], [ Endpoint = Endpoint1, Cluster = + "Step 3: DUT sends the Invoke Request Message to the TH. The Message + should contain multiple paths Path = [[ Endpoint = Endpoint1, Cluster + = ClusterID, Command = Command1 ], [ Endpoint = Endpoint1, Cluster = ClusterID, Command = Command2 ] ]" verification: | - Out of Scope for V1.0 + Out of Scope disabled: true - label: - "DUT sends the Invoke Request Message to the TH. The Message should - contain one valid CommandDataIB, which has the specific Endpoint, - Specific Cluster and Specific Command. Send 2 more Invoke Request - Messages to the TH." + "Step 4: DUT sends the Invoke Request Message to the TH. The Message + should contain one valid CommandDataIB, which has the specific + Endpoint, Specific Cluster and Specific Command. Send 2 more Invoke + Request Messages to the TH." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool onoff off 1 1 - - On TH all-clusters-app, verify that we are getting EndpointID, CommandID, ClusterID in the response data (as below) matching with the data sent in the above command - [1655717456.105815][10909:10909] CHIP:DMG: InvokeRequestMessage = - [1655717456.105853][10909:10909] CHIP:DMG: { - [1655717456.105887][10909:10909] CHIP:DMG: suppressResponse = false, - [1655717456.105933][10909:10909] CHIP:DMG: timedRequest = false, - [1655717456.105970][10909:10909] CHIP:DMG: InvokeRequests = - [1655717456.106015][10909:10909] CHIP:DMG: [ - [1655717456.106051][10909:10909] CHIP:DMG: CommandDataIB = - [1655717456.106091][10909:10909] CHIP:DMG: { - [1655717456.106129][10909:10909] CHIP:DMG: CommandPathIB = - [1655717456.106173][10909:10909] CHIP:DMG: { - [1655717456.106220][10909:10909] CHIP:DMG: EndpointId = 0x1, - [1655717456.106274][10909:10909] CHIP:DMG: ClusterId = 0x6, - [1655717456.106327][10909:10909] CHIP:DMG: CommandId = 0x0, - [1655717456.106373][10909:10909] CHIP:DMG: }, - [1655717456.106420][10909:10909] CHIP:DMG: - [1655717456.106462][10909:10909] CHIP:DMG: CommandFields = - [1655717456.106507][10909:10909] CHIP:DMG: { - [1655717456.106551][10909:10909] CHIP:DMG: }, - [1655717456.106594][10909:10909] CHIP:DMG: }, - [1655717456.106636][10909:10909] CHIP:DMG: - [1655717456.106671][10909:10909] CHIP:DMG: ], - [1655717456.106714][10909:10909] CHIP:DMG: - [1655717456.106749][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655717456.106783][10909:10909] CHIP:DMG: }, - [1655717456.106904][10909:10909] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - [1655717456.106954][10909:10909] CHIP:DMG: AccessControl: allowed - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - [1657868210.442226][2746:2751] CHIP:DMG: - [1657868210.442265][2746:2751] CHIP:DMG: InteractionModelRevision = 1 - [1657868210.442306][2746:2751] CHIP:DMG: }, - [1657868210.442398][2746:2751] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0000 Status=0x0 - [1657868210.442463][2746:2751] CHIP:DMG: ICR moving to [AwaitingDe] - [1657868210.442539][2746:2751] CHIP:EM: Sending Standalone Ack for MessageCounter:19470563 on exchange 18884i - - - - ./chip-tool onoff off 1 1 - Verify we are getting EndpointID, CommandID, ClusterID in the response data (as below) matching with the data sent in the above command - - ./chip-tool onoff off 1 1 - Verify we are getting EndpointID, CommandID, ClusterID in the response data (as below) matching with the data sent in the above command + The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + + #1 ./chip-tool onoff off 1 1 + + On TH(all-clusters-app), Verify that the EndpointID, CommandID, ClusterID in the InvokeRequestMessage (as below) matching with the data sent in the above command + [1686223361.917663][92512:92512] CHIP:EM: Handling via exchange: 54025r, Delegate: 0x559a0c929fc8 + [1686223361.917699][92512:92512] CHIP:DMG: InvokeRequestMessage = + [1686223361.917706][92512:92512] CHIP:DMG: { + [1686223361.917712][92512:92512] CHIP:DMG: suppressResponse = false, + [1686223361.917720][92512:92512] CHIP:DMG: timedRequest = false, + [1686223361.917730][92512:92512] CHIP:DMG: InvokeRequests = + [1686223361.917746][92512:92512] CHIP:DMG: [ + [1686223361.917754][92512:92512] CHIP:DMG: CommandDataIB = + [1686223361.917764][92512:92512] CHIP:DMG: { + [1686223361.917770][92512:92512] CHIP:DMG: CommandPathIB = + [1686223361.917778][92512:92512] CHIP:DMG: { + [1686223361.917786][92512:92512] CHIP:DMG: EndpointId = 0x1, + [1686223361.917793][92512:92512] CHIP:DMG: ClusterId = 0x6, + [1686223361.917800][92512:92512] CHIP:DMG: CommandId = 0x0, + [1686223361.917806][92512:92512] CHIP:DMG: }, + [1686223361.917815][92512:92512] CHIP:DMG: + [1686223361.917822][92512:92512] CHIP:DMG: CommandFields = + [1686223361.917829][92512:92512] CHIP:DMG: { + [1686223361.917836][92512:92512] CHIP:DMG: }, + [1686223361.917842][92512:92512] CHIP:DMG: }, + [1686223361.917851][92512:92512] CHIP:DMG: + [1686223361.917857][92512:92512] CHIP:DMG: ], + [1686223361.917866][92512:92512] CHIP:DMG: + [1686223361.917872][92512:92512] CHIP:DMG: InteractionModelRevision = 1 + [1686223361.917878][92512:92512] CHIP:DMG: }, + [1686223361.917910][92512:92512] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o + [1686223361.917924][92512:92512] CHIP:DMG: AccessControl: allowed + + + #2 ./chip-tool onoff off 1 1 + On TH(all-clusters-app), Verify that the EndpointID, CommandID, ClusterID in the InvokeRequestMessage (as below) matching with the data sent in the above command + [1686223661.425611][92512:92512] CHIP:EM: Handling via exchange: 47475r, Delegate: 0x559a0c929fc8 + [1686223661.425644][92512:92512] CHIP:DMG: InvokeRequestMessage = + [1686223661.425654][92512:92512] CHIP:DMG: { + [1686223661.425664][92512:92512] CHIP:DMG: suppressResponse = false, + [1686223661.425675][92512:92512] CHIP:DMG: timedRequest = false, + [1686223661.425683][92512:92512] CHIP:DMG: InvokeRequests = + [1686223661.425699][92512:92512] CHIP:DMG: [ + [1686223661.425706][92512:92512] CHIP:DMG: CommandDataIB = + [1686223661.425718][92512:92512] CHIP:DMG: { + [1686223661.425727][92512:92512] CHIP:DMG: CommandPathIB = + [1686223661.425739][92512:92512] CHIP:DMG: { + [1686223661.425749][92512:92512] CHIP:DMG: EndpointId = 0x1, + [1686223661.425760][92512:92512] CHIP:DMG: ClusterId = 0x6, + [1686223661.425771][92512:92512] CHIP:DMG: CommandId = 0x0, + [1686223661.425782][92512:92512] CHIP:DMG: }, + [1686223661.425795][92512:92512] CHIP:DMG: + [1686223661.425804][92512:92512] CHIP:DMG: CommandFields = + [1686223661.425815][92512:92512] CHIP:DMG: { + [1686223661.425825][92512:92512] CHIP:DMG: }, + [1686223661.425834][92512:92512] CHIP:DMG: }, + [1686223661.425848][92512:92512] CHIP:DMG: + [1686223661.425855][92512:92512] CHIP:DMG: ], + [1686223661.425870][92512:92512] CHIP:DMG: + [1686223661.425878][92512:92512] CHIP:DMG: InteractionModelRevision = 1 + [1686223661.425887][92512:92512] CHIP:DMG: }, + [1686223661.425923][92512:92512] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o + [1686223661.425939][92512:92512] CHIP:DMG: AccessControl: allowed + + + #3 ./chip-tool onoff off 1 1 + On TH(all-clusters-app), Verify that the EndpointID, CommandID, ClusterID in the InvokeRequestMessage (as below) matching with the data sent in the above command + [1686223661.425611][92512:92512] CHIP:EM: Handling via exchange: 47475r, Delegate: 0x559a0c929fc8 + [1686223661.425644][92512:92512] CHIP:DMG: InvokeRequestMessage = + [1686223661.425654][92512:92512] CHIP:DMG: { + [1686223661.425664][92512:92512] CHIP:DMG: suppressResponse = false, + [1686223661.425675][92512:92512] CHIP:DMG: timedRequest = false, + [1686223661.425683][92512:92512] CHIP:DMG: InvokeRequests = + [1686223661.425699][92512:92512] CHIP:DMG: [ + [1686223661.425706][92512:92512] CHIP:DMG: CommandDataIB = + [1686223661.425718][92512:92512] CHIP:DMG: { + [1686223661.425727][92512:92512] CHIP:DMG: CommandPathIB = + [1686223661.425739][92512:92512] CHIP:DMG: { + [1686223661.425749][92512:92512] CHIP:DMG: EndpointId = 0x1, + [1686223661.425760][92512:92512] CHIP:DMG: ClusterId = 0x6, + [1686223661.425771][92512:92512] CHIP:DMG: CommandId = 0x0, + [1686223661.425782][92512:92512] CHIP:DMG: }, + [1686223661.425795][92512:92512] CHIP:DMG: + [1686223661.425804][92512:92512] CHIP:DMG: CommandFields = + [1686223661.425815][92512:92512] CHIP:DMG: { + [1686223661.425825][92512:92512] CHIP:DMG: }, + [1686223661.425834][92512:92512] CHIP:DMG: }, + [1686223661.425848][92512:92512] CHIP:DMG: + [1686223661.425855][92512:92512] CHIP:DMG: ], + [1686223661.425870][92512:92512] CHIP:DMG: + [1686223661.425878][92512:92512] CHIP:DMG: InteractionModelRevision = 1 + [1686223661.425887][92512:92512] CHIP:DMG: }, + [1686223661.425923][92512:92512] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o + [1686223661.425939][92512:92512] CHIP:DMG: AccessControl: allowed disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml index a4b845438d9dd1..ca863787daa7b3 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_2_1.yaml @@ -31,559 +31,411 @@ tests: disabled: true - label: - "DUT sends the Read Request Message to the TH to read one attribute on - a given cluster and endpoint. AttributePath = [[Endpoint = Specific - Endpoint, Cluster = Specific ClusterID, Attribute = Specific - Attribute]] On receipt of this message, TH should send a report data - action with the attribute value to the DUT." + "Step 1: DUT sends the Read Request Message to the TH to read one + attribute on a given cluster and endpoint. AttributePath = [[Endpoint + = Specific Endpoint, Cluster = Specific ClusterID, Attribute = + Specific Attribute]] On receipt of this message, TH should send a + report data action with the attribute value to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool identify read identify-time 1 1 - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655720917.720293][10909:10909] CHIP:IM: Received Read request - [1655720917.720414][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655720917.720461][10909:10909] CHIP:DMG: { - [1655720917.720501][10909:10909] CHIP:DMG: AttributePathIBs = - [1655720917.720548][10909:10909] CHIP:DMG: [ - [1655720917.720592][10909:10909] CHIP:DMG: AttributePathIB = - [1655720917.720642][10909:10909] CHIP:DMG: { - [1655720917.720694][10909:10909] CHIP:DMG: Endpoint = 0x1, - [1655720917.720752][10909:10909] CHIP:DMG: Cluster = 0x3, - [1655720917.720805][10909:10909] CHIP:DMG: Attribute = 0x0000_0000, - [1655720917.720858][10909:10909] CHIP:DMG: } - [1655720917.720909][10909:10909] CHIP:DMG: - [1655720917.720956][10909:10909] CHIP:DMG: ], - [1655720917.721006][10909:10909] CHIP:DMG: - [1655720917.721055][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655720917.721101][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655720917.721144][10909:10909] CHIP:DMG: }, - [1655720917.721267][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1657881522.001890][2575:2580] CHIP:DMG: } - [1657881522.002053][2575:2580] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3999381333 - [1657881522.002133][2575:2580] CHIP:TOO: identify time: 0 - [1657881522.002227][2575:2580] CHIP:EM: Sending Standalone Ack for MessageCounter:54477998 on exchange 6586i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + + [1686225528.599132][92910:92910] CHIP:SC: Allocated SecureSession (0x5592c1144790) - waiting for Sigma1 msg + [1686225528.600604][92910:92910] CHIP:EM: >>> [E:4135r S:64880 M:267902204] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:02 (IM:ReadRequest) + [1686225528.600637][92910:92910] CHIP:EM: Handling via exchange: 4135r, Delegate: 0x5592c0755fc8 + [1686225528.600656][92910:92910] CHIP:IM: Received Read request + [1686225528.600677][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686225528.600684][92910:92910] CHIP:DMG: { + [1686225528.600690][92910:92910] CHIP:DMG: AttributePathIBs = + [1686225528.600698][92910:92910] CHIP:DMG: [ + [1686225528.600704][92910:92910] CHIP:DMG: AttributePathIB = + [1686225528.600712][92910:92910] CHIP:DMG: { + [1686225528.600719][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686225528.600726][92910:92910] CHIP:DMG: Cluster = 0x3, + [1686225528.600733][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686225528.600739][92910:92910] CHIP:DMG: } + [1686225528.600747][92910:92910] CHIP:DMG: + [1686225528.600753][92910:92910] CHIP:DMG: ], + [1686225528.600763][92910:92910] CHIP:DMG: + [1686225528.600770][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686225528.600776][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686225528.600782][92910:92910] CHIP:DMG: }, + [1686225528.600837][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686225528.600871][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686225528.600880][92910:92910] CHIP:DMG: Cluster 3, Attribute 0 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read all attributes - on a given cluster and Endpoint AttributePath = [[Endpoint = Specific - Endpoint, Cluster = Specific ClusterID]] On receipt of this message, - TH should send a report data action with the attribute value to the - DUT." + "Step 2: DUT sends the Read Request Message to the TH to read all + attributes on a given cluster and Endpoint AttributePath = [[Endpoint + = Specific Endpoint, Cluster = Specific ClusterID]] On receipt of this + message, TH should send a report data action with the attribute value + to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0x3 0xFFFFFFFF 1 0 - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - On TH - [1655721163.411757][10909:10909] CHIP:EM: Handling via exchange: 9428r, Delegate: 0xaaaac37ce418 - [1655721163.411801][10909:10909] CHIP:IM: Received Read request - [1655721163.411878][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655721163.411905][10909:10909] CHIP:DMG: { - [1655721163.411927][10909:10909] CHIP:DMG: AttributePathIBs = - [1655721163.411950][10909:10909] CHIP:DMG: [ - [1655721163.411970][10909:10909] CHIP:DMG: AttributePathIB = - [1655721163.411994][10909:10909] CHIP:DMG: { - [1655721163.412018][10909:10909] CHIP:DMG: Endpoint = 0x0, - [1655721163.412051][10909:10909] CHIP:DMG: Cluster = 0x3, - [1655721163.412078][10909:10909] CHIP:DMG: } - [1655721163.412107][10909:10909] CHIP:DMG: - [1655721163.412132][10909:10909] CHIP:DMG: ], - [1655721163.412160][10909:10909] CHIP:DMG: - [1655721163.412187][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655721163.412212][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655721163.412236][10909:10909] CHIP:DMG: }, - [1655721163.412312][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1657881584.166241][2584:2589] CHIP:DMG: } - [1657881584.166599][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 4079829024 - [1657881584.166672][2584:2589] CHIP:TOO: identify time: 0 - [1657881584.166734][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657881584.166761][2584:2589] CHIP:TOO: identify type: 2 - [1657881584.166817][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 4079829024 - [1657881584.166844][2584:2589] CHIP:TOO: FeatureMap: 0 - [1657881584.166900][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024 - [1657881584.166940][2584:2589] CHIP:TOO: ClusterRevision: 4 - [1657881584.167054][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 4079829024 - [1657881584.167101][2584:2589] CHIP:TOO: GeneratedCommandList: 0 entries - [1657881584.167276][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF9 DataVersion: 4079829024 - [1657881584.167309][2584:2589] CHIP:TOO: AcceptedCommandList: 2 entries - [1657881584.167337][2584:2589] CHIP:TOO: [1]: 0 - [1657881584.167362][2584:2589] CHIP:TOO: [2]: 64 - [1657881584.167690][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFB DataVersion: 4079829024 - [1657881584.167725][2584:2589] CHIP:TOO: AttributeList: 7 entries - [1657881584.167752][2584:2589] CHIP:TOO: [1]: 0 - [1657881584.167777][2584:2589] CHIP:TOO: [2]: 1 - [1657881584.167801][2584:2589] CHIP:TOO: [3]: 65528 - [1657881584.167825][2584:2589] CHIP:TOO: [4]: 65529 - [1657881584.167850][2584:2589] CHIP:TOO: [5]: 65531 - [1657881584.167874][2584:2589] CHIP:TOO: [6]: 65532 - [1657881584.167898][2584:2589] CHIP:TOO: [7]: 65533 - [1657881584.168029][2584:2589] CHIP:EM: Sending Standalone Ack for MessageCounter:84499870 on exchange 45190i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + + [1686225683.369605][92910:92910] CHIP:SC: Allocated SecureSession (0x5592c1148ef0) - waiting for Sigma1 msg + [1686225683.370856][92910:92910] CHIP:EM: >>> [E:54241r S:64882 M:235143934] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:02 (IM:ReadRequest) + [1686225683.370882][92910:92910] CHIP:EM: Handling via exchange: 54241r, Delegate: 0x5592c0755fc8 + [1686225683.370904][92910:92910] CHIP:IM: Received Read request + [1686225683.370926][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686225683.370935][92910:92910] CHIP:DMG: { + [1686225683.370942][92910:92910] CHIP:DMG: AttributePathIBs = + [1686225683.370952][92910:92910] CHIP:DMG: [ + [1686225683.370959][92910:92910] CHIP:DMG: AttributePathIB = + [1686225683.370970][92910:92910] CHIP:DMG: { + [1686225683.370980][92910:92910] CHIP:DMG: Endpoint = 0x0, + [1686225683.370989][92910:92910] CHIP:DMG: Cluster = 0x3, + [1686225683.370998][92910:92910] CHIP:DMG: } + [1686225683.371010][92910:92910] CHIP:DMG: + [1686225683.371016][92910:92910] CHIP:DMG: ], + [1686225683.371029][92910:92910] CHIP:DMG: + [1686225683.371037][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686225683.371046][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686225683.371053][92910:92910] CHIP:DMG: }, + [1686225683.371107][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686225683.371141][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686225683.371151][92910:92910] CHIP:DMG: Cluster 3, Attribute 0 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read all attributes - in all clusters and all endpoints Path = [[ ]] On receipt of this - message, TH should send a report data action with the attribute values - to the DUT." + "Step 3: DUT sends the Read Request Message to the TH to read all + attributes in all clusters and all endpoints Path = [[ ]] On receipt + of this message, TH should send a report data action with the + attribute values to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command and - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686225824.262856][92910:92910] CHIP:SC: Allocated SecureSession (0x5592c114b150) - waiting for Sigma1 msg + [1686225824.264205][92910:92910] CHIP:EM: >>> [E:34791r S:64883 M:91848948] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:02 (IM:ReadRequest) + [1686225824.264240][92910:92910] CHIP:EM: Handling via exchange: 34791r, Delegate: 0x5592c0755fc8 + [1686225824.264258][92910:92910] CHIP:IM: Received Read request + [1686225824.264276][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686225824.264284][92910:92910] CHIP:DMG: { + [1686225824.264289][92910:92910] CHIP:DMG: AttributePathIBs = + [1686225824.264295][92910:92910] CHIP:DMG: [ + [1686225824.264300][92910:92910] CHIP:DMG: AttributePathIB = + [1686225824.264307][92910:92910] CHIP:DMG: { + [1686225824.264313][92910:92910] CHIP:DMG: } + [1686225824.264318][92910:92910] CHIP:DMG: + [1686225824.264323][92910:92910] CHIP:DMG: ], + [1686225824.264335][92910:92910] CHIP:DMG: + [1686225824.264344][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686225824.264351][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686225824.264356][92910:92910] CHIP:DMG: }, + [1686225824.264400][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686225824.264432][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686225824.264440][92910:92910] CHIP:DMG: Cluster 3, Attribute 0 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read a specific - attribute from all endpoints and all clusters. AttributePath = [[ - Attribute = Specific Attribute]] On receipt of this message, TH should - send a report data action with the attribute value to the DUT." + "Step 4: DUT sends the Read Request Message to the TH to read a + specific attribute from all endpoints and all clusters. AttributePath + = [[ Attribute = Specific Attribute]] On receipt of this message, TH + should send a report data action with the attribute value to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFD 1 0xFFFF - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1684327544.654910][138835:138837] CHIP:DMG: ReportDataMessage = - [1684327544.654915][138835:138837] CHIP:DMG: { - [1684327544.654920][138835:138837] CHIP:DMG: AttributeReportIBs = - [1684327544.654926][138835:138837] CHIP:DMG: [ - [1684327544.654929][138835:138837] CHIP:DMG: AttributeReportIB = - [1684327544.654940][138835:138837] CHIP:DMG: { - [1684327544.654949][138835:138837] CHIP:DMG: AttributeDataIB = - [1684327544.654956][138835:138837] CHIP:DMG: { - [1684327544.654964][138835:138837] CHIP:DMG: DataVersion = 0x91861588, - [1684327544.654970][138835:138837] CHIP:DMG: AttributePathIB = - [1684327544.654978][138835:138837] CHIP:DMG: { - [1684327544.654995][138835:138837] CHIP:DMG: Attribute = 0x0000_FFFD, - [1684327544.655002][138835:138837] CHIP:DMG: } - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + + [1686225928.892595][92910:92910] CHIP:EM: >>> [E:30698r S:64884 M:221692686] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:02 (IM:ReadRequest) + [1686225928.892624][92910:92910] CHIP:EM: Handling via exchange: 30698r, Delegate: 0x5592c0755fc8 + [1686225928.892641][92910:92910] CHIP:IM: Received Read request + [1686225928.892661][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686225928.892668][92910:92910] CHIP:DMG: { + [1686225928.892674][92910:92910] CHIP:DMG: AttributePathIBs = + [1686225928.892681][92910:92910] CHIP:DMG: [ + [1686225928.892687][92910:92910] CHIP:DMG: AttributePathIB = + [1686225928.892695][92910:92910] CHIP:DMG: { + [1686225928.892703][92910:92910] CHIP:DMG: Attribute = 0x0000_FFFD, + [1686225928.892709][92910:92910] CHIP:DMG: } + [1686225928.892717][92910:92910] CHIP:DMG: + [1686225928.892722][92910:92910] CHIP:DMG: ], + [1686225928.892731][92910:92910] CHIP:DMG: + [1686225928.892738][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686225928.892745][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686225928.892750][92910:92910] CHIP:DMG: }, + [1686225928.892801][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686225928.892833][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686225928.892843][92910:92910] CHIP:DMG: Cluster 3, Attribute fffd is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read all attributes - from a specific cluster on all endpoints AttributePath = [[ Cluster = - Specific ClusterID]] On receipt of this message, TH should send a - report data action with the attribute value to the DUT." + "Step 5: DUT sends the Read Request Message to the TH to read all + attributes from a specific cluster on all endpoints AttributePath = [[ + Cluster = Specific ClusterID]] On receipt of this message, TH should + send a report data action with the attribute value to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0x03 0xFFFFFFFF 1 0xFFFF - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655721586.587649][10909:10909] CHIP:EM: Handling via exchange: 14559r, Delegate: 0xaaaac37ce418 - [1655721586.587708][10909:10909] CHIP:IM: Received Read request - [1655721586.587805][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655721586.587843][10909:10909] CHIP:DMG: { - [1655721586.587876][10909:10909] CHIP:DMG: AttributePathIBs = - [1655721586.587914][10909:10909] CHIP:DMG: [ - [1655721586.587949][10909:10909] CHIP:DMG: AttributePathIB = - [1655721586.587998][10909:10909] CHIP:DMG: { - [1655721586.588041][10909:10909] CHIP:DMG: Cluster = 0x3, - [1655721586.588085][10909:10909] CHIP:DMG: } - [1655721586.588125][10909:10909] CHIP:DMG: - [1655721586.588162][10909:10909] CHIP:DMG: ], - [1655721586.588201][10909:10909] CHIP:DMG: - [1655721586.588239][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655721586.588276][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655721586.588310][10909:10909] CHIP:DMG: }, - [1655721586.588403][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - [1655721586.588510][10909:10909] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657881729.900518][2608:2613] CHIP:DMG: } - [1657881729.901108][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 4079829024 - [1657881729.901182][2608:2613] CHIP:TOO: identify time: 0 - [1657881729.901245][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657881729.901273][2608:2613] CHIP:TOO: identify type: 2 - [1657881729.901331][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 4079829024 - [1657881729.901359][2608:2613] CHIP:TOO: FeatureMap: 0 - [1657881729.901431][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024 - [1657881729.901472][2608:2613] CHIP:TOO: ClusterRevision: 4 - [1657881729.901586][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 4079829024 - [1657881729.901632][2608:2613] CHIP:TOO: GeneratedCommandList: 0 entries - [1657881729.901806][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF9 DataVersion: 4079829024 - [1657881729.901840][2608:2613] CHIP:TOO: AcceptedCommandList: 2 entries - [1657881729.901868][2608:2613] CHIP:TOO: [1]: 0 - [1657881729.901893][2608:2613] CHIP:TOO: [2]: 64 - [1657881729.902242][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFB DataVersion: 4079829024 - [1657881729.902279][2608:2613] CHIP:TOO: AttributeList: 7 entries - [1657881729.902305][2608:2613] CHIP:TOO: [1]: 0 - [1657881729.902329][2608:2613] CHIP:TOO: [2]: 1 - [1657881729.902354][2608:2613] CHIP:TOO: [3]: 65528 - [1657881729.902378][2608:2613] CHIP:TOO: [4]: 65529 - [1657881729.902402][2608:2613] CHIP:TOO: [5]: 65531 - [1657881729.902426][2608:2613] CHIP:TOO: [6]: 65532 - [1657881729.902451][2608:2613] CHIP:TOO: [7]: 65533 - [1657881729.902474][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3999381333 - [1657881729.902500][2608:2613] CHIP:TOO: identify time: 0 - [1657881729.902556][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3999381333 - [1657881729.902583][2608:2613] CHIP:TOO: identify type: 2 - [1657881729.902640][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 3999381333 - [1657881729.902665][2608:2613] CHIP:TOO: FeatureMap: 0 - [1657881729.902721][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3999381333 - [1657881729.902746][2608:2613] CHIP:TOO: ClusterRevision: 4 - [1657881729.902843][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3999381333 - [1657881729.902872][2608:2613] CHIP:TOO: GeneratedCommandList: 0 entries - [1657881729.903021][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF9 DataVersion: 3999381333 - [1657881729.903053][2608:2613] CHIP:TOO: AcceptedCommandList: 2 entries - [1657881729.903079][2608:2613] CHIP:TOO: [1]: 0 - [1657881729.903104][2608:2613] CHIP:TOO: [2]: 64 - [1657881729.903427][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFB DataVersion: 3999381333 - [1657881729.903462][2608:2613] CHIP:TOO: AttributeList: 7 entries - [1657881729.903488][2608:2613] CHIP:TOO: [1]: 0 - [1657881729.903513][2608:2613] CHIP:TOO: [2]: 1 - [1657881729.903537][2608:2613] CHIP:TOO: [3]: 65528 - [1657881729.903561][2608:2613] CHIP:TOO: [4]: 65529 - [1657881729.903586][2608:2613] CHIP:TOO: [5]: 65531 - [1657881729.903610][2608:2613] CHIP:TOO: [6]: 65532 - [1657881729.903634][2608:2613] CHIP:TOO: [7]: 65533 - [1657881729.903843][2608:2613] CHIP:EM: Sending Standalone Ack for MessageCounter:174033086 on exchange 10540i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226185.511406][92910:92910] CHIP:EM: Handling via exchange: 42616r, Delegate: 0x5592c0755fc8 + [1686226185.511424][92910:92910] CHIP:IM: Received Read request + [1686226185.511444][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226185.511452][92910:92910] CHIP:DMG: { + [1686226185.511458][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226185.511467][92910:92910] CHIP:DMG: [ + [1686226185.511473][92910:92910] CHIP:DMG: AttributePathIB = + [1686226185.511482][92910:92910] CHIP:DMG: { + [1686226185.511489][92910:92910] CHIP:DMG: Cluster = 0x3, + [1686226185.511496][92910:92910] CHIP:DMG: } + [1686226185.511505][92910:92910] CHIP:DMG: + [1686226185.511511][92910:92910] CHIP:DMG: ], + [1686226185.511520][92910:92910] CHIP:DMG: + [1686226185.511527][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226185.511533][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226185.511539][92910:92910] CHIP:DMG: }, + [1686226185.511586][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226185.511617][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226185.511627][92910:92910] CHIP:DMG: Cluster 3, Attribute 0 is dirty + [1686226185.511633][92910:92910] CHIP:DMG: Reading attribute: Cluster=0x0000_0003 Endpoint=0 AttributeId=0x0000_0000 (expanded=1) disabled: true - label: - "DUT sends the Read Request Message to the TH to read a specific - attribute from a given cluster on all endpoints. AttributePath = [[ - Cluster = Specific Cluster, Attribute = specific attribute]] On - receipt of this message, TH should send a report data action with the - attribute value to the DUT." + "Step 6: DUT sends the Read Request Message to the TH to read a + specific attribute from a given cluster on all endpoints. + AttributePath = [[ Cluster = Specific Cluster, Attribute = specific + attribute]] On receipt of this message, TH should send a report data + action with the attribute value to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0x03 0x01 1 0xFFFF - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655721699.304979][10909:10909] CHIP:IM: Received Read request - [1655721699.305100][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655721699.305170][10909:10909] CHIP:DMG: { - [1655721699.305211][10909:10909] CHIP:DMG: AttributePathIBs = - [1655721699.305277][10909:10909] CHIP:DMG: [ - [1655721699.305322][10909:10909] CHIP:DMG: AttributePathIB = - [1655721699.305391][10909:10909] CHIP:DMG: { - [1655721699.305442][10909:10909] CHIP:DMG: Cluster = 0x3, - [1655721699.305516][10909:10909] CHIP:DMG: Attribute = 0x0000_0001, - [1655721699.305568][10909:10909] CHIP:DMG: } - [1655721699.305635][10909:10909] CHIP:DMG: - [1655721699.305682][10909:10909] CHIP:DMG: ], - [1655721699.305733][10909:10909] CHIP:DMG: - [1655721699.305780][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655721699.305827][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655721699.305870][10909:10909] CHIP:DMG: }, - [1655721699.305990][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657881792.350417][2616:2621] CHIP:DMG: } - [1657881792.350641][2616:2621] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657881792.350742][2616:2621] CHIP:TOO: identify type: 2 - [1657881792.350845][2616:2621] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3999381333 - [1657881792.350891][2616:2621] CHIP:TOO: identify type: 2 - [1657881792.351000][2616:2621] CHIP:EM: Sending Standalone Ack for MessageCounter:222990264 on exchange 23721i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226228.381581][92910:92910] CHIP:SC: Allocated SecureSession (0x5592c114a190) - waiting for Sigma1 msg + [1686226228.383047][92910:92910] CHIP:EM: >>> [E:14054r S:64886 M:240745911] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:02 (IM:ReadRequest) + [1686226228.383084][92910:92910] CHIP:EM: Handling via exchange: 14054r, Delegate: 0x5592c0755fc8 + [1686226228.383107][92910:92910] CHIP:IM: Received Read request + [1686226228.383139][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226228.383150][92910:92910] CHIP:DMG: { + [1686226228.383160][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226228.383170][92910:92910] CHIP:DMG: [ + [1686226228.383180][92910:92910] CHIP:DMG: AttributePathIB = + [1686226228.383191][92910:92910] CHIP:DMG: { + [1686226228.383202][92910:92910] CHIP:DMG: Cluster = 0x3, + [1686226228.383213][92910:92910] CHIP:DMG: Attribute = 0x0000_0001, + [1686226228.383224][92910:92910] CHIP:DMG: } + [1686226228.383234][92910:92910] CHIP:DMG: + [1686226228.383242][92910:92910] CHIP:DMG: ], + [1686226228.383253][92910:92910] CHIP:DMG: + [1686226228.383263][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226228.383271][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226228.383279][92910:92910] CHIP:DMG: }, + [1686226228.383378][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226228.383421][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226228.383431][92910:92910] CHIP:DMG: Cluster 3, Attribute 1 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read all attributes - from all clusters at a given endpoint. AttributePath = [[ Endpoint = - Specific Endpoint]] On receipt of this message, TH should send a - report data action with the attribute value to the DUT." + "Step 7: DUT sends the Read Request Message to the TH to read all + attributes from all clusters at a given endpoint. AttributePath = [[ + Endpoint = Specific Endpoint]] On receipt of this message, TH should + send a report data action with the attribute value to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 1 - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655721846.893983][10909:10909] CHIP:EM: Handling via exchange: 50021r, Delegate: 0xaaaac37ce418 - [1655721846.894041][10909:10909] CHIP:IM: Received Read request - [1655721846.894136][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655721846.894174][10909:10909] CHIP:DMG: { - [1655721846.894206][10909:10909] CHIP:DMG: AttributePathIBs = - [1655721846.894245][10909:10909] CHIP:DMG: [ - [1655721846.894280][10909:10909] CHIP:DMG: AttributePathIB = - [1655721846.894320][10909:10909] CHIP:DMG: { - [1655721846.894360][10909:10909] CHIP:DMG: Endpoint = 0x1, - [1655721846.894403][10909:10909] CHIP:DMG: } - [1655721846.894443][10909:10909] CHIP:DMG: - [1655721846.894479][10909:10909] CHIP:DMG: ], - [1655721846.894519][10909:10909] CHIP:DMG: - [1655721846.894557][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655721846.894594][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655721846.894628][10909:10909] CHIP:DMG: }, - [1655721846.894724][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226295.956172][92910:92910] CHIP:SC: Allocated SecureSession (0x5592c1141cd0) - waiting for Sigma1 msg + [1686226295.957552][92910:92910] CHIP:EM: >>> [E:39621r S:64888 M:136668914] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:02 (IM:ReadRequest) + [1686226295.957583][92910:92910] CHIP:EM: Handling via exchange: 39621r, Delegate: 0x5592c0755fc8 + [1686226295.957601][92910:92910] CHIP:IM: Received Read request + [1686226295.957620][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226295.957628][92910:92910] CHIP:DMG: { + [1686226295.957634][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226295.957642][92910:92910] CHIP:DMG: [ + [1686226295.957648][92910:92910] CHIP:DMG: AttributePathIB = + [1686226295.957659][92910:92910] CHIP:DMG: { + [1686226295.957666][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226295.957673][92910:92910] CHIP:DMG: } + [1686226295.957681][92910:92910] CHIP:DMG: + [1686226295.957686][92910:92910] CHIP:DMG: ], + [1686226295.957696][92910:92910] CHIP:DMG: + [1686226295.957703][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226295.957712][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226295.957718][92910:92910] CHIP:DMG: }, + [1686226295.957773][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226295.957806][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226295.957815][92910:92910] CHIP:DMG: Cluster 3, Attribute 0 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to a specific endpoint - to read a particular attribute from all the clusters at that endpoint - AttributePath = [[ Endpoint = Specific Endpoint, Attribute = specific - attribute]] On receipt of this message, TH should send a report data - action with the attribute value to the DUT." + "Step 8: DUT sends the Read Request Message to the TH to a specific + endpoint to read a particular attribute from all the clusters at that + endpoint AttributePath = [[ Endpoint = Specific Endpoint, Attribute = + specific attribute]] On receipt of this message, TH should send a + report data action with the attribute value to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFD 1 0 - - verify TH(reference app) receives the right Read Request Message for the data sent in the above command - - [1655721935.483404][10909:10909] CHIP:EM: Handling via exchange: 59853r, Delegate: 0xaaaac37ce418 - [1655721935.483474][10909:10909] CHIP:IM: Received Read request - [1655721935.483595][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655721935.483660][10909:10909] CHIP:DMG: { - [1655721935.483701][10909:10909] CHIP:DMG: AttributePathIBs = - [1655721935.483767][10909:10909] CHIP:DMG: [ - [1655721935.483813][10909:10909] CHIP:DMG: AttributePathIB = - [1655721935.483881][10909:10909] CHIP:DMG: { - [1655721935.483934][10909:10909] CHIP:DMG: Endpoint = 0x0, - [1655721935.484022][10909:10909] CHIP:DMG: Attribute = 0x0000_FFFD, - [1655721935.484095][10909:10909] CHIP:DMG: } - [1655721935.484156][10909:10909] CHIP:DMG: - [1655721935.484225][10909:10909] CHIP:DMG: ], - [1655721935.484279][10909:10909] CHIP:DMG: - [1655721935.484344][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655721935.484392][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655721935.484450][10909:10909] CHIP:DMG: }, - [1655721935.484595][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657881935.225146][2631:2636] CHIP:DMG: } - [1657881935.225620][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024 - [1657881935.225700][2631:2636] CHIP:TOO: ClusterRevision: 4 - [1657881935.225763][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Attribute 0x0000_FFFD DataVersion: 130355893 - [1657881935.225790][2631:2636] CHIP:TOO: ClusterRevision: 4 - [1657881935.225846][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_FFFD DataVersion: 2043826222 - [1657881935.225872][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.225928][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001E Attribute 0x0000_FFFD DataVersion: 539126375 - [1657881935.225954][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226010][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_FFFD DataVersion: 821022762 - [1657881935.226037][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226093][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_FFFD DataVersion: 745595402 - [1657881935.226120][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226175][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_FFFD DataVersion: 2914015802 - [1657881935.226201][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226258][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_FFFD DataVersion: 2733214794 - [1657881935.226284][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226340][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_FFFD DataVersion: 3273895737 - [1657881935.226365][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226420][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002D Attribute 0x0000_FFFD DataVersion: 2449855749 - [1657881935.226447][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226504][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002E Attribute 0x0000_FFFD DataVersion: 2597243070 - [1657881935.226530][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226586][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002F Attribute 0x0000_FFFD DataVersion: 714742425 - [1657881935.226611][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226667][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_FFFD DataVersion: 3643421834 - [1657881935.226693][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226747][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFD DataVersion: 3610511831 - [1657881935.226773][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226831][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0032 Attribute 0x0000_FFFD DataVersion: 3399712075 - [1657881935.226857][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226916][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Attribute 0x0000_FFFD DataVersion: 4165139953 - [1657881935.226941][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.226996][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_FFFD DataVersion: 3623073226 - [1657881935.227022][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.227077][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_FFFD DataVersion: 3137436487 - [1657881935.227103][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.227159][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0036 Attribute 0x0000_FFFD DataVersion: 1172053040 - [1657881935.227185][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.227241][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFFD DataVersion: 3832336232 - [1657881935.227267][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.227325][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_FFFD DataVersion: 4072501061 - [1657881935.227350][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.227407][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_FFFD DataVersion: 1112172817 - [1657881935.227433][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.227488][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_FFFD DataVersion: 2917149142 - [1657881935.227515][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.227572][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0040 Attribute 0x0000_FFFD DataVersion: 1676181270 - [1657881935.227611][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.227669][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0041 Attribute 0x0000_FFFD DataVersion: 4002139741 - [1657881935.227695][2631:2636] CHIP:TOO: ClusterRevision: 1 - [1657881935.227752][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0405 Attribute 0x0000_FFFD DataVersion: 2945088432 - [1657881935.227778][2631:2636] CHIP:TOO: ClusterRevision: 3 - [1657881935.227936][2631:2636] CHIP:EM: Sending Standalone Ack for MessageCounter:199380325 on exchange 6370i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226336.606276][92910:92910] CHIP:EM: >>> [E:29124r S:64889 M:25401402] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:02 (IM:ReadRequest) + [1686226336.606300][92910:92910] CHIP:EM: Handling via exchange: 29124r, Delegate: 0x5592c0755fc8 + [1686226336.606318][92910:92910] CHIP:IM: Received Read request + [1686226336.606344][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226336.606355][92910:92910] CHIP:DMG: { + [1686226336.606363][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226336.606374][92910:92910] CHIP:DMG: [ + [1686226336.606383][92910:92910] CHIP:DMG: AttributePathIB = + [1686226336.606394][92910:92910] CHIP:DMG: { + [1686226336.606405][92910:92910] CHIP:DMG: Endpoint = 0x0, + [1686226336.606417][92910:92910] CHIP:DMG: Attribute = 0x0000_FFFD, + [1686226336.606426][92910:92910] CHIP:DMG: } + [1686226336.606438][92910:92910] CHIP:DMG: + [1686226336.606447][92910:92910] CHIP:DMG: ], + [1686226336.606461][92910:92910] CHIP:DMG: + [1686226336.606471][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226336.606481][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226336.606489][92910:92910] CHIP:DMG: }, + [1686226336.606580][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226336.606617][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226336.606631][92910:92910] CHIP:DMG: Cluster 3, Attribute fffd is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type bool." + "Step 9: DUT sends the Read Request Message to the TH to read an + attribute of data type bool." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_Bool verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool onoff read on-off 1 1 - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655722298.458183][10909:10909] CHIP:EM: Handling via exchange: 9588r, Delegate: 0xaaaac37ce418 - [1655722298.458279][10909:10909] CHIP:IM: Received Read request - [1655722298.458481][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655722298.458544][10909:10909] CHIP:DMG: { - [1655722298.458617][10909:10909] CHIP:DMG: AttributePathIBs = - [1655722298.458680][10909:10909] CHIP:DMG: [ - [1655722298.458740][10909:10909] CHIP:DMG: AttributePathIB = - [1655722298.458827][10909:10909] CHIP:DMG: { - [1655722298.458936][10909:10909] CHIP:DMG: Endpoint = 0x1, - [1655722298.459034][10909:10909] CHIP:DMG: Cluster = 0x6, - [1655722298.459114][10909:10909] CHIP:DMG: Attribute = 0x0000_0000, - [1655722298.459208][10909:10909] CHIP:DMG: } - [1655722298.459283][10909:10909] CHIP:DMG: - [1655722298.459366][10909:10909] CHIP:DMG: ], - [1655722298.459435][10909:10909] CHIP:DMG: - [1655722298.459519][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655722298.459581][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655722298.459659][10909:10909] CHIP:DMG: }, - [1655722298.459820][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657881978.415828][2640:2645] CHIP:DMG: } - [1657881978.416014][2640:2645] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 4019194565 - [1657881978.416091][2640:2645] CHIP:TOO: OnOff: FALSE - [1657881978.416245][2640:2645] CHIP:EM: Sending Standalone Ack for MessageCounter:144208215 on exchange 38107i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226378.552745][92910:92910] CHIP:EM: Handling via exchange: 15302r, Delegate: 0x5592c0755fc8 + [1686226378.552758][92910:92910] CHIP:IM: Received Read request + [1686226378.552776][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226378.552782][92910:92910] CHIP:DMG: { + [1686226378.552788][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226378.552797][92910:92910] CHIP:DMG: [ + [1686226378.552803][92910:92910] CHIP:DMG: AttributePathIB = + [1686226378.552811][92910:92910] CHIP:DMG: { + [1686226378.552818][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226378.552825][92910:92910] CHIP:DMG: Cluster = 0x6, + [1686226378.552833][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686226378.552839][92910:92910] CHIP:DMG: } + [1686226378.552847][92910:92910] CHIP:DMG: + [1686226378.552853][92910:92910] CHIP:DMG: ], + [1686226378.552861][92910:92910] CHIP:DMG: + [1686226378.552868][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226378.552875][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226378.552881][92910:92910] CHIP:DMG: }, + [1686226378.552936][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226378.552963][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226378.552971][92910:92910] CHIP:DMG: Cluster 6, Attribute 0 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type string." + "Step 10: DUT sends the Read Request Message to the TH to read an + attribute of data type string." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_String verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool modeselect read description 1 1 - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655722750.452237][10909:10909] CHIP:EM: Handling via exchange: 31886r, Delegate: 0xaaaac37ce418 - [1655722750.452324][10909:10909] CHIP:IM: Received Read request - [1655722750.452462][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655722750.452515][10909:10909] CHIP:DMG: { - [1655722750.452560][10909:10909] CHIP:DMG: AttributePathIBs = - [1655722750.452614][10909:10909] CHIP:DMG: [ - [1655722750.452664][10909:10909] CHIP:DMG: AttributePathIB = - [1655722750.452729][10909:10909] CHIP:DMG: { - [1655722750.452789][10909:10909] CHIP:DMG: Endpoint = 0x1, - [1655722750.452854][10909:10909] CHIP:DMG: Cluster = 0x50, - [1655722750.452926][10909:10909] CHIP:DMG: Attribute = 0x0000_0000, - [1655722750.452986][10909:10909] CHIP:DMG: } - [1655722750.453049][10909:10909] CHIP:DMG: - [1655722750.453102][10909:10909] CHIP:DMG: ], - [1655722750.453160][10909:10909] CHIP:DMG: - [1655722750.453215][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655722750.453268][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655722750.453316][10909:10909] CHIP:DMG: }, - [1655722750.453457][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657882077.867099][2655:2660] CHIP:DMG: } - [1657882077.867278][2655:2660] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000 DataVersion: 321966114 - [1657882077.867352][2655:2660] CHIP:TOO: Description: Coffee - [1657882077.867466][2655:2660] CHIP:EM: Sending Standalone Ack for MessageCounter:62608362 on exchange 57811i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226406.253784][92910:92910] CHIP:EM: Handling via exchange: 31624r, Delegate: 0x5592c0755fc8 + [1686226406.253789][92910:92910] CHIP:IM: Received Read request + [1686226406.253796][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226406.253798][92910:92910] CHIP:DMG: { + [1686226406.253800][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226406.253802][92910:92910] CHIP:DMG: [ + [1686226406.253804][92910:92910] CHIP:DMG: AttributePathIB = + [1686226406.253806][92910:92910] CHIP:DMG: { + [1686226406.253809][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226406.253811][92910:92910] CHIP:DMG: Cluster = 0x50, + [1686226406.253813][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686226406.253815][92910:92910] CHIP:DMG: } + [1686226406.253817][92910:92910] CHIP:DMG: + [1686226406.253819][92910:92910] CHIP:DMG: ], + [1686226406.253822][92910:92910] CHIP:DMG: + [1686226406.253824][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226406.253826][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226406.253827][92910:92910] CHIP:DMG: }, + [1686226406.253847][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226406.253859][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226406.253861][92910:92910] CHIP:DMG: Cluster 50, Attribute 0 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type unsigned integer." + "Step 11: DUT sends the Read Request Message to the TH to read an + attribute of data type unsigned integer." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_UnsignedInteger verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0x3 0x1 1 0 - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655722980.956846][10909:10909] CHIP:IM: Received Read request - [1655722980.956933][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655722980.956978][10909:10909] CHIP:DMG: { - [1655722980.957006][10909:10909] CHIP:DMG: AttributePathIBs = - [1655722980.957037][10909:10909] CHIP:DMG: [ - [1655722980.957078][10909:10909] CHIP:DMG: AttributePathIB = - [1655722980.957112][10909:10909] CHIP:DMG: { - [1655722980.957157][10909:10909] CHIP:DMG: Endpoint = 0x0, - [1655722980.957207][10909:10909] CHIP:DMG: Cluster = 0x3, - [1655722980.957245][10909:10909] CHIP:DMG: Attribute = 0x0000_0001, - [1655722980.957282][10909:10909] CHIP:DMG: } - [1655722980.957328][10909:10909] CHIP:DMG: - [1655722980.957359][10909:10909] CHIP:DMG: ], - [1655722980.957404][10909:10909] CHIP:DMG: - [1655722980.957436][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655722980.957477][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655722980.957506][10909:10909] CHIP:DMG: }, - [1655722980.957605][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657882043.053353][2648:2653] CHIP:DMG: } - [1657882043.053561][2648:2653] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024 - [1657882043.053662][2648:2653] CHIP:TOO: identify type: 2 - [1657882043.053774][2648:2653] CHIP:EM: Sending Standalone Ack for MessageCounter:228608905 on exchange 11019i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + + [1686226432.788003][92910:92910] CHIP:EM: Handling via exchange: 43574r, Delegate: 0x5592c0755fc8 + [1686226432.788021][92910:92910] CHIP:IM: Received Read request + [1686226432.788041][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226432.788049][92910:92910] CHIP:DMG: { + [1686226432.788054][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226432.788062][92910:92910] CHIP:DMG: [ + [1686226432.788068][92910:92910] CHIP:DMG: AttributePathIB = + [1686226432.788076][92910:92910] CHIP:DMG: { + [1686226432.788083][92910:92910] CHIP:DMG: Endpoint = 0x0, + [1686226432.788090][92910:92910] CHIP:DMG: Cluster = 0x3, + [1686226432.788098][92910:92910] CHIP:DMG: Attribute = 0x0000_0001, + [1686226432.788104][92910:92910] CHIP:DMG: } + [1686226432.788113][92910:92910] CHIP:DMG: + [1686226432.788118][92910:92910] CHIP:DMG: ], + [1686226432.788127][92910:92910] CHIP:DMG: + [1686226432.788134][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226432.788141][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226432.788147][92910:92910] CHIP:DMG: }, + [1686226432.788200][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226432.788233][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226432.788242][92910:92910] CHIP:DMG: Cluster 3, Attribute 1 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type signed integer." + "Step 12: DUT sends the Read Request Message to the TH to read an + attribute of data type signed integer." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_SignedInteger verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool pressuremeasurement read measured-value 1 1 - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655723021.112808][10909:10909] CHIP:IM: Received Read request - [1655723021.112912][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655723021.112942][10909:10909] CHIP:DMG: { - [1655723021.112963][10909:10909] CHIP:DMG: AttributePathIBs = - [1655723021.112990][10909:10909] CHIP:DMG: [ - [1655723021.113013][10909:10909] CHIP:DMG: AttributePathIB = - [1655723021.113038][10909:10909] CHIP:DMG: { - [1655723021.113068][10909:10909] CHIP:DMG: Endpoint = 0x1, - [1655723021.113096][10909:10909] CHIP:DMG: Cluster = 0x403, - [1655723021.113125][10909:10909] CHIP:DMG: Attribute = 0x0000_0000, - [1655723021.113166][10909:10909] CHIP:DMG: } - [1655723021.113195][10909:10909] CHIP:DMG: - [1655723021.113228][10909:10909] CHIP:DMG: ], - [1655723021.113257][10909:10909] CHIP:DMG: - [1655723021.113292][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655723021.113318][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655723021.113349][10909:10909] CHIP:DMG: }, - [1655723021.113441][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657882152.821695][2665:2670] CHIP:DMG: } - [1657882152.821886][2665:2670] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0403 Attribute 0x0000_0000 DataVersion: 1184750328 - [1657882152.821981][2665:2670] CHIP:TOO: MeasuredValue: 0 - [1657882152.822099][2665:2670] CHIP:EM: Sending Standalone Ack for MessageCounter:178527554 on exchange 52092i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226460.249020][92910:92910] CHIP:EM: Handling via exchange: 37364r, Delegate: 0x5592c0755fc8 + [1686226460.249037][92910:92910] CHIP:IM: Received Read request + [1686226460.249056][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226460.249063][92910:92910] CHIP:DMG: { + [1686226460.249069][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226460.249076][92910:92910] CHIP:DMG: [ + [1686226460.249082][92910:92910] CHIP:DMG: AttributePathIB = + [1686226460.249089][92910:92910] CHIP:DMG: { + [1686226460.249096][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226460.249103][92910:92910] CHIP:DMG: Cluster = 0x403, + [1686226460.249110][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686226460.249116][92910:92910] CHIP:DMG: } + [1686226460.249124][92910:92910] CHIP:DMG: + [1686226460.249129][92910:92910] CHIP:DMG: ], + [1686226460.249136][92910:92910] CHIP:DMG: + [1686226460.249143][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226460.249149][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226460.249154][92910:92910] CHIP:DMG: }, + [1686226460.249205][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226460.249236][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226460.249244][92910:92910] CHIP:DMG: Cluster 403, Attribute 0 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type floating point." + "Step 13: DUT sends the Read Request Message to the TH to read an + attribute of data type floating point." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_FloatingPoint verification: | DUT implementation required to verify read an attribute of data type Float @@ -592,276 +444,254 @@ tests: disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type Octet String." + "Step 14: DUT sends the Read Request Message to the TH to read an + attribute of data type Octet String." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_OctetString verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool operationalcredentials read trusted-root-certificates 1 0 - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655723062.690255][10909:10909] CHIP:EM: Handling via exchange: 36548r, Delegate: 0xaaaac37ce418 - [1655723062.690334][10909:10909] CHIP:IM: Received Read request - [1655723062.690471][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655723062.690549][10909:10909] CHIP:DMG: { - [1655723062.690596][10909:10909] CHIP:DMG: AttributePathIBs = - [1655723062.690667][10909:10909] CHIP:DMG: [ - [1655723062.690719][10909:10909] CHIP:DMG: AttributePathIB = - [1655723062.690792][10909:10909] CHIP:DMG: { - [1655723062.690888][10909:10909] CHIP:DMG: Endpoint = 0x0, - [1655723062.690980][10909:10909] CHIP:DMG: Cluster = 0x3e, - [1655723062.691047][10909:10909] CHIP:DMG: Attribute = 0x0000_0004, - [1655723062.691123][10909:10909] CHIP:DMG: } - [1655723062.691186][10909:10909] CHIP:DMG: - [1655723062.691257][10909:10909] CHIP:DMG: ], - [1655723062.691317][10909:10909] CHIP:DMG: - [1655723062.691389][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655723062.691441][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655723062.691494][10909:10909] CHIP:DMG: }, - [1655723062.691635][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - If the DUT has to provision to verify the logs , verify that TH all-clusters-app sent success response with attribute values - [1657882197.831561][2673:2678] CHIP:DMG: } - [1657882197.831802][2673:2678] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 1112172817 - [1657882197.831892][2673:2678] CHIP:TOO: TrustedRootCertificates: 1 entries - [1657882197.831940][2673:2678] CHIP:TOO: [1]: 1530010100240201370324140018260480228127260580254D3A37062414001824070124080130094104EC98F1D5F8E4FF3B2B1B23B154C016A02843600C0D3073EFA38123BBFC62056CA4C90C591C80D1D66206DB31F3C0FA2E2A3B11377C28D1A2D5E3ED9C79B3DD75370A3501290118240260300414D3A7631B0D05BF3D059263A09502826A7E02768F300514D3A7631B0D05BF3D059263A09502826A7E02768F18300B401A2FD4DAE286A0C0E7F2A54014D19C3AA7F8A814664B14D4EDFE6D6366746B5EF86A677807BCCE30A71A1C112FF843B88044D4212197281859CED7D21D39A42418 - [1657882197.832044][2673:2678] CHIP:EM: Sending Standalone Ack for MessageCounter:182457329 on exchange 8706i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + + [1686226515.137562][92910:92910] CHIP:EM: Handling via exchange: 28684r, Delegate: 0x5592c0755fc8 + [1686226515.137581][92910:92910] CHIP:IM: Received Read request + [1686226515.137606][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226515.137617][92910:92910] CHIP:DMG: { + [1686226515.137625][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226515.137636][92910:92910] CHIP:DMG: [ + [1686226515.137642][92910:92910] CHIP:DMG: AttributePathIB = + [1686226515.137650][92910:92910] CHIP:DMG: { + [1686226515.137657][92910:92910] CHIP:DMG: Endpoint = 0x0, + [1686226515.137664][92910:92910] CHIP:DMG: Cluster = 0x3e, + [1686226515.137672][92910:92910] CHIP:DMG: Attribute = 0x0000_0004, + [1686226515.137678][92910:92910] CHIP:DMG: } + [1686226515.137686][92910:92910] CHIP:DMG: + [1686226515.137692][92910:92910] CHIP:DMG: ], + [1686226515.137701][92910:92910] CHIP:DMG: + [1686226515.137708][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226515.137714][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226515.137720][92910:92910] CHIP:DMG: }, + [1686226515.137778][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226515.137809][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226515.137818][92910:92910] CHIP:DMG: Cluster 3e, Attribute 4 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type Struct." + "Step 15: DUT sends the Read Request Message to the TH to read an + attribute of data type Struct." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_Struct verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool generalcommissioning read basic-commissioning-info 1 0 - - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655723112.901814][10909:10909] CHIP:EM: Handling via exchange: 47730r, Delegate: 0xaaaac37ce418 - [1655723112.901870][10909:10909] CHIP:IM: Received Read request - [1655723112.901972][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655723112.902025][10909:10909] CHIP:DMG: { - [1655723112.902057][10909:10909] CHIP:DMG: AttributePathIBs = - [1655723112.902106][10909:10909] CHIP:DMG: [ - [1655723112.902136][10909:10909] CHIP:DMG: AttributePathIB = - [1655723112.902187][10909:10909] CHIP:DMG: { - [1655723112.902229][10909:10909] CHIP:DMG: Endpoint = 0x0, - [1655723112.902291][10909:10909] CHIP:DMG: Cluster = 0x30, - [1655723112.902339][10909:10909] CHIP:DMG: Attribute = 0x0000_0001, - [1655723112.902395][10909:10909] CHIP:DMG: } - [1655723112.902437][10909:10909] CHIP:DMG: - [1655723112.902487][10909:10909] CHIP:DMG: ], - [1655723112.902529][10909:10909] CHIP:DMG: - [1655723112.902580][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655723112.902618][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655723112.902664][10909:10909] CHIP:DMG: }, - [1655723112.902782][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657882247.469521][2681:2686] CHIP:DMG: InteractionModelRevision = 1 - [1657882247.469553][2681:2686] CHIP:DMG: } - [1657882247.469732][2681:2686] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0001 DataVersion: 3643421834 - [1657882247.469825][2681:2686] CHIP:TOO: BasicCommissioningInfo: { - [1657882247.469886][2681:2686] CHIP:TOO: FailSafeExpiryLengthSeconds: 60 - [1657882247.469921][2681:2686] CHIP:TOO: MaxCumulativeFailsafeSeconds: 900 - [1657882247.469952][2681:2686] CHIP:TOO: } - [1657882247.470043][2681:2686] CHIP:EM: Sending Standalone Ack for MessageCounter:52322886 on exchange 1487i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226552.178768][92910:92910] CHIP:EM: Handling via exchange: 24439r, Delegate: 0x5592c0755fc8 + [1686226552.178784][92910:92910] CHIP:IM: Received Read request + [1686226552.178802][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226552.178810][92910:92910] CHIP:DMG: { + [1686226552.178815][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226552.178822][92910:92910] CHIP:DMG: [ + [1686226552.178828][92910:92910] CHIP:DMG: AttributePathIB = + [1686226552.178835][92910:92910] CHIP:DMG: { + [1686226552.178842][92910:92910] CHIP:DMG: Endpoint = 0x0, + [1686226552.178848][92910:92910] CHIP:DMG: Cluster = 0x30, + [1686226552.178855][92910:92910] CHIP:DMG: Attribute = 0x0000_0001, + [1686226552.178861][92910:92910] CHIP:DMG: } + [1686226552.178868][92910:92910] CHIP:DMG: + [1686226552.178874][92910:92910] CHIP:DMG: ], + [1686226552.178882][92910:92910] CHIP:DMG: + [1686226552.178888][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226552.178894][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226552.178899][92910:92910] CHIP:DMG: }, + [1686226552.178951][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226552.178983][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226552.178991][92910:92910] CHIP:DMG: Cluster 30, Attribute 1 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type List." + "Step 16: DUT sends the Read Request Message to the TH to read an + attribute of data type List." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_List verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool modeselect read supported-modes 1 1 - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655723151.159473][10909:10909] CHIP:EM: Handling via exchange: 9349r, Delegate: 0xaaaac37ce418 - [1655723151.159520][10909:10909] CHIP:IM: Received Read request - [1655723151.159615][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655723151.159646][10909:10909] CHIP:DMG: { - [1655723151.159670][10909:10909] CHIP:DMG: AttributePathIBs = - [1655723151.159697][10909:10909] CHIP:DMG: [ - [1655723151.159731][10909:10909] CHIP:DMG: AttributePathIB = - [1655723151.159764][10909:10909] CHIP:DMG: { - [1655723151.159808][10909:10909] CHIP:DMG: Endpoint = 0x1, - [1655723151.159847][10909:10909] CHIP:DMG: Cluster = 0x50, - [1655723151.159892][10909:10909] CHIP:DMG: Attribute = 0x0000_0002, - [1655723151.159934][10909:10909] CHIP:DMG: } - [1655723151.159967][10909:10909] CHIP:DMG: - [1655723151.160007][10909:10909] CHIP:DMG: ], - [1655723151.160039][10909:10909] CHIP:DMG: - [1655723151.160081][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655723151.160110][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655723151.160147][10909:10909] CHIP:DMG: }, - [1655723151.160243][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - - [1657882339.679133][2701:2706] CHIP:DMG: } - [1657882339.679605][2701:2706] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 321966114 - [1657882339.679722][2701:2706] CHIP:TOO: SupportedModes: 3 entries - [1657882339.679786][2701:2706] CHIP:TOO: [1]: { - [1657882339.679813][2701:2706] CHIP:TOO: Label: Black - [1657882339.679852][2701:2706] CHIP:TOO: Mode: 0 - [1657882339.679883][2701:2706] CHIP:TOO: SemanticTags: 1 entries - [1657882339.679918][2701:2706] CHIP:TOO: [1]: { - [1657882339.679943][2701:2706] CHIP:TOO: MfgCode: 0 - [1657882339.679966][2701:2706] CHIP:TOO: Value: 0 - [1657882339.679986][2701:2706] CHIP:TOO: } - [1657882339.680006][2701:2706] CHIP:TOO: } - [1657882339.680040][2701:2706] CHIP:TOO: [2]: { - [1657882339.680065][2701:2706] CHIP:TOO: Label: Cappuccino - [1657882339.680088][2701:2706] CHIP:TOO: Mode: 4 - [1657882339.680131][2701:2706] CHIP:TOO: SemanticTags: 1 entries - [1657882339.680163][2701:2706] CHIP:TOO: [1]: { - [1657882339.680188][2701:2706] CHIP:TOO: MfgCode: 0 - [1657882339.680212][2701:2706] CHIP:TOO: Value: 0 - [1657882339.680236][2701:2706] CHIP:TOO: } - [1657882339.680261][2701:2706] CHIP:TOO: } - [1657882339.680296][2701:2706] CHIP:TOO: [3]: { - [1657882339.680320][2701:2706] CHIP:TOO: Label: Espresso - [1657882339.680344][2701:2706] CHIP:TOO: Mode: 7 - [1657882339.680371][2701:2706] CHIP:TOO: SemanticTags: 1 entries - [1657882339.680402][2701:2706] CHIP:TOO: [1]: { - [1657882339.680427][2701:2706] CHIP:TOO: MfgCode: 0 - [1657882339.680451][2701:2706] CHIP:TOO: Value: 0 - [1657882339.680474][2701:2706] CHIP:TOO: } - [1657882339.680499][2701:2706] CHIP:TOO: } - [1657882339.680600][2701:2706] CHIP:EM: Sending Standalone Ack for MessageCounter:207994304 on exchange 48282i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + + [1686226583.374314][92910:92910] CHIP:EM: >>> [E:55450r S:64896 M:236034717] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:02 (IM:ReadRequest) + [1686226583.374344][92910:92910] CHIP:EM: Handling via exchange: 55450r, Delegate: 0x5592c0755fc8 + [1686226583.374362][92910:92910] CHIP:IM: Received Read request + [1686226583.374381][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226583.374389][92910:92910] CHIP:DMG: { + [1686226583.374395][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226583.374403][92910:92910] CHIP:DMG: [ + [1686226583.374409][92910:92910] CHIP:DMG: AttributePathIB = + [1686226583.374417][92910:92910] CHIP:DMG: { + [1686226583.374424][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226583.374431][92910:92910] CHIP:DMG: Cluster = 0x50, + [1686226583.374439][92910:92910] CHIP:DMG: Attribute = 0x0000_0002, + [1686226583.374445][92910:92910] CHIP:DMG: } + [1686226583.374453][92910:92910] CHIP:DMG: + [1686226583.374459][92910:92910] CHIP:DMG: ], + [1686226583.374467][92910:92910] CHIP:DMG: + [1686226583.374474][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226583.374481][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226583.374487][92910:92910] CHIP:DMG: }, + [1686226583.374543][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226583.374576][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226583.374584][92910:92910] CHIP:DMG: Cluster 50, Attribute 2 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type enum." + "Step 17: DUT sends the Read Request Message to the TH to read an + attribute of data type enum." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_Enum verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool occupancysensing read occupancy-sensor-type 1 1 - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655723234.547912][10909:10909] CHIP:EM: Handling via exchange: 21800r, Delegate: 0xaaaac37ce418 - [1655723234.547981][10909:10909] CHIP:IM: Received Read request - [1655723234.548103][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655723234.548168][10909:10909] CHIP:DMG: { - [1655723234.548209][10909:10909] CHIP:DMG: AttributePathIBs = - [1655723234.548270][10909:10909] CHIP:DMG: [ - [1655723234.548323][10909:10909] CHIP:DMG: AttributePathIB = - [1655723234.548387][10909:10909] CHIP:DMG: { - [1655723234.548439][10909:10909] CHIP:DMG: Endpoint = 0x1, - [1655723234.548510][10909:10909] CHIP:DMG: Cluster = 0x406, - [1655723234.548566][10909:10909] CHIP:DMG: Attribute = 0x0000_0001, - [1655723234.548634][10909:10909] CHIP:DMG: } - [1655723234.548687][10909:10909] CHIP:DMG: - [1655723234.548749][10909:10909] CHIP:DMG: ], - [1655723234.548800][10909:10909] CHIP:DMG: - [1655723234.548988][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655723234.549038][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655723234.549097][10909:10909] CHIP:DMG: }, - [1655723234.549241][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657882403.876372][2715:2720] CHIP:DMG: } - [1657882403.876514][2715:2720] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0406 Attribute 0x0000_0001 DataVersion: 737072536 - [1657882403.876595][2715:2720] CHIP:TOO: occupancy sensor type: 0 - [1657882403.876679][2715:2720] CHIP:EM: Sending Standalone Ack for MessageCounter:153370776 on exchange 37640i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226611.149856][92910:92910] CHIP:EM: Handling via exchange: 60503r, Delegate: 0x5592c0755fc8 + [1686226611.149867][92910:92910] CHIP:IM: Received Read request + [1686226611.149886][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226611.149894][92910:92910] CHIP:DMG: { + [1686226611.149900][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226611.149909][92910:92910] CHIP:DMG: [ + [1686226611.149916][92910:92910] CHIP:DMG: AttributePathIB = + [1686226611.149925][92910:92910] CHIP:DMG: { + [1686226611.149932][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226611.149942][92910:92910] CHIP:DMG: Cluster = 0x406, + [1686226611.149948][92910:92910] CHIP:DMG: Attribute = 0x0000_0001, + [1686226611.149953][92910:92910] CHIP:DMG: } + [1686226611.149959][92910:92910] CHIP:DMG: + [1686226611.149966][92910:92910] CHIP:DMG: ], + [1686226611.149975][92910:92910] CHIP:DMG: + [1686226611.149982][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226611.149988][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226611.149994][92910:92910] CHIP:DMG: }, + [1686226611.150038][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226611.150062][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226611.150069][92910:92910] CHIP:DMG: Cluster 406, Attribute 1 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute of - data type bitmap." + "Step 18: DUT sends the Read Request Message to the TH to read an + attribute of data type bitmap." PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_Bitmap verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool levelcontrol read options 1 1 - - verify TH(Reference app) receives the right Read Request Message for the data sent in the above command - - [1655723282.097665][10909:10909] CHIP:IM: Received Read request - [1655723282.097741][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655723282.097767][10909:10909] CHIP:DMG: { - [1655723282.097789][10909:10909] CHIP:DMG: AttributePathIBs = - [1655723282.097814][10909:10909] CHIP:DMG: [ - [1655723282.097838][10909:10909] CHIP:DMG: AttributePathIB = - [1655723282.097865][10909:10909] CHIP:DMG: { - [1655723282.097893][10909:10909] CHIP:DMG: Endpoint = 0x1, - [1655723282.097923][10909:10909] CHIP:DMG: Cluster = 0x8, - [1655723282.097954][10909:10909] CHIP:DMG: Attribute = 0x0000_000F, - [1655723282.097982][10909:10909] CHIP:DMG: } - [1655723282.098009][10909:10909] CHIP:DMG: - [1655723282.098034][10909:10909] CHIP:DMG: ], - [1655723282.098061][10909:10909] CHIP:DMG: - [1655723282.098087][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655723282.098112][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655723282.098134][10909:10909] CHIP:DMG: }, - [1655723282.098206][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values - [1657882440.996840][2725:2730] CHIP:DMG: InteractionModelRevision = 1 - [1657882440.996862][2725:2730] CHIP:DMG: } - [1657882440.997003][2725:2730] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_000F DataVersion: 3900213102 - [1657882440.997084][2725:2730] CHIP:TOO: options: 0 - [1657882440.997170][2725:2730] CHIP:EM: Sending Standalone Ack for MessageCounter:250919190 on exchange 53994i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + 02 (IM:ReadRequest) + [1686226637.039290][92910:92910] CHIP:EM: Handling via exchange: 26755r, Delegate: 0x5592c0755fc8 + [1686226637.039328][92910:92910] CHIP:IM: Received Read request + [1686226637.039353][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226637.039363][92910:92910] CHIP:DMG: { + [1686226637.039371][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226637.039383][92910:92910] CHIP:DMG: [ + [1686226637.039391][92910:92910] CHIP:DMG: AttributePathIB = + [1686226637.039403][92910:92910] CHIP:DMG: { + [1686226637.039414][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226637.039424][92910:92910] CHIP:DMG: Cluster = 0x8, + [1686226637.039436][92910:92910] CHIP:DMG: Attribute = 0x0000_000F, + [1686226637.039445][92910:92910] CHIP:DMG: } + [1686226637.039458][92910:92910] CHIP:DMG: + [1686226637.039466][92910:92910] CHIP:DMG: ], + [1686226637.039480][92910:92910] CHIP:DMG: + [1686226637.039489][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226637.039499][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226637.039507][92910:92910] CHIP:DMG: }, + [1686226637.039567][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226637.039606][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226637.039616][92910:92910] CHIP:DMG: Cluster 8, Attribute f is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read an attribute - Repeat the above steps 3 times." + "Step 19: DUT sends the Read Request Message to the TH to read an + attribute Repeat the above steps 3 times." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool occupancysensing read occupancy 1 1 - verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command - [1655723372.328144][10909:10909] CHIP:EM: Handling via exchange: 10813r, Delegate: 0xaaaac37ce418 - [1655723372.328201][10909:10909] CHIP:IM: Received Read request - [1655723372.328305][10909:10909] CHIP:DMG: ReadRequestMessage = - [1655723372.328360][10909:10909] CHIP:DMG: { - [1655723372.328392][10909:10909] CHIP:DMG: AttributePathIBs = - [1655723372.328431][10909:10909] CHIP:DMG: [ - [1655723372.328480][10909:10909] CHIP:DMG: AttributePathIB = - [1655723372.328530][10909:10909] CHIP:DMG: { - [1655723372.328588][10909:10909] CHIP:DMG: Endpoint = 0x1, - [1655723372.328644][10909:10909] CHIP:DMG: Cluster = 0x406, - [1655723372.328707][10909:10909] CHIP:DMG: Attribute = 0x0000_0000, - [1655723372.328763][10909:10909] CHIP:DMG: } - [1655723372.328808][10909:10909] CHIP:DMG: - [1655723372.328861][10909:10909] CHIP:DMG: ], - [1655723372.328903][10909:10909] CHIP:DMG: - [1655723372.328954][10909:10909] CHIP:DMG: isFabricFiltered = true, - [1655723372.328994][10909:10909] CHIP:DMG: InteractionModelRevision = 1 - [1655723372.329041][10909:10909] CHIP:DMG: }, - [1655723372.329162][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs verify that TH all-clusters-app sent success response with attribute values - [1657883628.582877][2780:2785] CHIP:DMG: InteractionModelRevision = 1 - [1657883628.582909][2780:2785] CHIP:DMG: } - [1657883628.583066][2780:2785] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0406 Attribute 0x0000_0000 DataVersion: 737072536 - [1657883628.583146][2780:2785] CHIP:TOO: occupancy: 0 - [1657883628.583225][2780:2785] CHIP:EM: Sending Standalone Ack for MessageCounter:68376422 on exchange 7437i + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226665.453133][92910:92910] CHIP:EM: Handling via exchange: 16385r, Delegate: 0x5592c0755fc8 + [1686226665.453147][92910:92910] CHIP:IM: Received Read request + [1686226665.453164][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226665.453172][92910:92910] CHIP:DMG: { + [1686226665.453177][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226665.453186][92910:92910] CHIP:DMG: [ + [1686226665.453195][92910:92910] CHIP:DMG: AttributePathIB = + [1686226665.453206][92910:92910] CHIP:DMG: { + [1686226665.453217][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226665.453228][92910:92910] CHIP:DMG: Cluster = 0x406, + [1686226665.453240][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686226665.453249][92910:92910] CHIP:DMG: } + [1686226665.453262][92910:92910] CHIP:DMG: + [1686226665.453270][92910:92910] CHIP:DMG: ], + [1686226665.453284][92910:92910] CHIP:DMG: + [1686226665.453293][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226665.453302][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226665.453310][92910:92910] CHIP:DMG: }, + [1686226665.453370][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226665.453402][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226665.453413][92910:92910] CHIP:DMG: Cluster 406, Attribute 0 is dirty ./chip-tool occupancysensing read occupancy 1 1 - verify TH receives the right Read Request Message for the data sent in the above command + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226666.412296][92910:92910] CHIP:EM: Handling via exchange: 46567r, Delegate: 0x5592c0755fc8 + [1686226666.412312][92910:92910] CHIP:IM: Received Read request + [1686226666.412331][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226666.412338][92910:92910] CHIP:DMG: { + [1686226666.412344][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226666.412351][92910:92910] CHIP:DMG: [ + [1686226666.412356][92910:92910] CHIP:DMG: AttributePathIB = + [1686226666.412363][92910:92910] CHIP:DMG: { + [1686226666.412370][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226666.412376][92910:92910] CHIP:DMG: Cluster = 0x406, + [1686226666.412383][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686226666.412389][92910:92910] CHIP:DMG: } + [1686226666.412396][92910:92910] CHIP:DMG: + [1686226666.412402][92910:92910] CHIP:DMG: ], + [1686226666.412410][92910:92910] CHIP:DMG: + [1686226666.412416][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226666.412422][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226666.412427][92910:92910] CHIP:DMG: }, + [1686226666.412478][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226666.412509][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226666.412517][92910:92910] CHIP:DMG: Cluster 406, Attribute 0 is dirty + + ./chip-tool occupancysensing read occupancy 1 1 - verify TH receives the right Read Request Message for the data sent in the above command + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226667.318600][92910:92910] CHIP:EM: Handling via exchange: 25390r, Delegate: 0x5592c0755fc8 + [1686226667.318616][92910:92910] CHIP:IM: Received Read request + [1686226667.318640][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226667.318647][92910:92910] CHIP:DMG: { + [1686226667.318657][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226667.318667][92910:92910] CHIP:DMG: [ + [1686226667.318675][92910:92910] CHIP:DMG: AttributePathIB = + [1686226667.318687][92910:92910] CHIP:DMG: { + [1686226667.318697][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686226667.318708][92910:92910] CHIP:DMG: Cluster = 0x406, + [1686226667.318720][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686226667.318729][92910:92910] CHIP:DMG: } + [1686226667.318742][92910:92910] CHIP:DMG: + [1686226667.318749][92910:92910] CHIP:DMG: ], + [1686226667.318764][92910:92910] CHIP:DMG: + [1686226667.318773][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226667.318783][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226667.318791][92910:92910] CHIP:DMG: }, + [1686226667.318851][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226667.318883][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226667.318892][92910:92910] CHIP:DMG: Cluster 406, Attribute 0 is dirty disabled: true - label: - "DUT sends the Read Request Message to the TH to read + "Step 20: DUT sends the Read Request Message to the TH to read something(Attribute) which is larger than 1 MTU(1280 bytes) and per spec can be chunked. For every chunked data message received, except the last one, DUT sends a status response." @@ -936,14 +766,37 @@ tests: disabled: true - label: - "DUT sends the Read Request Message to the TH with Manufacturer - specific clusters and attributes to read all attributes in all - clusters and all endpoints Path = [[ ]]. On receipt of this message, - TH should send a report data action with the attribute values to the - DUT." + "Step 21: DUT sends the Read Request Message to the TH with + Manufacturer specific clusters and attributes to read all attributes + in all clusters and all endpoints Path = [[ ]]. On receipt of this + message, TH should send a report data action with the attribute values + to the DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF --timeout 40 - On TH(Reference app) verify that Read Request Message received from DUT(chip-tool) + On TH(all-clusters-app), Verify that the TH(all-clusters-app) receives the right Read Request Message. + [1686226782.460404][92910:92910] CHIP:SC: Allocated SecureSession (0x5592c114f040) - waiting for Sigma1 msg + [1686226782.460986][92910:92910] CHIP:EM: >>> [E:22319r S:64903 M:14178699] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:02 (IM:ReadRequest) + [1686226782.460999][92910:92910] CHIP:EM: Handling via exchange: 22319r, Delegate: 0x5592c0755fc8 + [1686226782.461006][92910:92910] CHIP:IM: Received Read request + [1686226782.461016][92910:92910] CHIP:DMG: ReadRequestMessage = + [1686226782.461018][92910:92910] CHIP:DMG: { + [1686226782.461021][92910:92910] CHIP:DMG: AttributePathIBs = + [1686226782.461023][92910:92910] CHIP:DMG: [ + [1686226782.461025][92910:92910] CHIP:DMG: AttributePathIB = + [1686226782.461027][92910:92910] CHIP:DMG: { + [1686226782.461029][92910:92910] CHIP:DMG: } + [1686226782.461032][92910:92910] CHIP:DMG: + [1686226782.461034][92910:92910] CHIP:DMG: ], + [1686226782.461037][92910:92910] CHIP:DMG: + [1686226782.461039][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686226782.461041][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686226782.461043][92910:92910] CHIP:DMG: }, + [1686226782.461062][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686226782.461074][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686226782.461077][92910:92910] CHIP:DMG: Cluster 3, Attribute 0 is dirty + [1686226782.461079][92910:92910] CHIP:DMG: Reading attribute: Cluster=0x0000_0003 Endpoint=0 AttributeId=0x0000_0000 (expanded=1) + [1686226782.461083][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=0 p=v + [1686226782.461088][92910:92910] CHIP:DMG: AccessControl: allowed disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml index 4f0fb6b8245d4b..1b95d1b59aa9c4 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml @@ -25,15 +25,15 @@ config: tests: - label: - "TH sends the Read Request Message to the DUT to read one attribute on - a given cluster and endpoint. AttributePath = [[Endpoint = Specific - Endpoint, Cluster = Specific ClusterID, Attribute = Specific - Attribute]] On receipt of this message, DUT should send a report data - action with the attribute value to the DUT." + "Step 1: TH sends the Read Request Message to the DUT to read one + attribute on a given cluster and endpoint. AttributePath = [[Endpoint + = Specific Endpoint, Cluster = Specific ClusterID, Attribute = + Specific Attribute]] On receipt of this message, DUT should send a + report data action with the attribute value to the DUT." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - ./chip-tool identify read identify-time 1 1 + ./chip-tool identify read identify-time 1 1 On the TH(chip-tool) verify the received report data message has the right attribute value for above command @@ -69,11 +69,11 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read all attributes - on a given cluster and Endpoint AttributePath = [[Endpoint = Specific - Endpoint, Cluster = Specific ClusterID]] On receipt of this message, - DUT should send a report data action with the attribute value to the - DUT." + "Step 2: TH sends the Read Request Message to the DUT to read all + attributes on a given cluster and Endpoint AttributePath = [[Endpoint + = Specific Endpoint, Cluster = Specific ClusterID]] On receipt of this + message, DUT should send a report data action with the attribute value + to the DUT." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -111,11 +111,11 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute - from a cluster at all Endpoints AttributePath = [[Cluster = Specific - ClusterID, Attribute = Specific Attribute]] On receipt of this - message, DUT should send a report data action with the attribute value - from all the Endpoints to the DUT." + "Step 3: TH sends the Read Request Message to the DUT to read an + attribute from a cluster at all Endpoints AttributePath = [[Cluster = + Specific ClusterID, Attribute = Specific Attribute]] On receipt of + this message, DUT should send a report data action with the attribute + value from all the Endpoints to the DUT." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -175,7 +175,7 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read a global + "Step 4: TH sends the Read Request Message to the DUT to read a global attribute from all clusters at that Endpoint AttributePath = [[Endpoint = Specific Endpoint, Attribute = Specific Global Attribute]] On receipt of this message, DUT should send a report data @@ -247,17 +247,17 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read all attributes - from all clusters on all Endpoints AttributePath = [[]] On receipt of - this message, DUT should send a report data action with the attribute - value from all the clusters to the DUT." + "Step 5: TH sends the Read Request Message to the DUT to read all + attributes from all clusters on all Endpoints AttributePath = [[]] On + receipt of this message, DUT should send a report data action with the + attribute value from all the clusters to the DUT." verification: | ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF --timeout 40 On the TH(chip-tool) verify the received report data message has all the right attribute values. disabled: true - label: - "TH sends the Read Request Message to the DUT to read a global + "Step 6: TH sends the Read Request Message to the DUT to read a global attribute from all clusters at all Endpoints AttributePath = [[Attribute = Specific Global Attribute]] On receipt of this message, DUT should send a report data action with the attribute value from all @@ -272,10 +272,11 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read all attributes - from a cluster at all Endpoints AttributePath = [[Cluster = Specific - ClusterID]] On receipt of this message, DUT should send a report data - action with the attribute value from all the Endpoints to the DUT." + "Step 7: TH sends the Read Request Message to the DUT to read all + attributes from a cluster at all Endpoints AttributePath = [[Cluster = + Specific ClusterID]] On receipt of this message, DUT should send a + report data action with the attribute value from all the Endpoints to + the DUT." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -332,11 +333,11 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read all attributes - from all clusters at one Endpoint AttributePath = [[Endpoint = - Specific Endpoint]] On receipt of this message, DUT should send a - report data action with the attribute value from all the Endpoints to - the DUT." + "Step 8: TH sends the Read Request Message to the DUT to read all + attributes from all clusters at one Endpoint AttributePath = + [[Endpoint = Specific Endpoint]] On receipt of this message, DUT + should send a report data action with the attribute value from all the + Endpoints to the DUT." verification: | ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 1 @@ -345,9 +346,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type bool. DUT responds with the report data action with the - right attribute value." + "Step 9: TH sends the Read Request Message to the DUT to read an + attribute of data type bool. DUT responds with the report data action + with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_Bool verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -362,9 +363,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type string. DUT responds with the report data action with the - right attribute value." + "Step 10: TH sends the Read Request Message to the DUT to read an + attribute of data type string. DUT responds with the report data + action with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_String verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -379,9 +380,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type unsigned integer. DUT responds with the report data action - with the right attribute value." + "Step 11: TH sends the Read Request Message to the DUT to read an + attribute of data type unsigned integer. DUT responds with the report + data action with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_UnsignedInteger verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -396,9 +397,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type signed integer. DUT responds with the report data action - with the right attribute value." + "Step 12: TH sends the Read Request Message to the DUT to read an + attribute of data type signed integer. DUT responds with the report + data action with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_SignedInteger verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -412,9 +413,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type floating point. DUT responds with the report data action - with the right attribute value." + "Step 13: TH sends the Read Request Message to the DUT to read an + attribute of data type floating point. DUT responds with the report + data action with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_FloatingPoint verification: | DUT implementation required to verify read an attribute of data type Float @@ -423,9 +424,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type Octet String. DUT responds with the report data action with - the right attribute value." + "Step 14: TH sends the Read Request Message to the DUT to read an + attribute of data type Octet String. DUT responds with the report data + action with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_OctetString verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -442,9 +443,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type Struct. DUT responds with the report data action with the - right attribute value." + "Step 15: TH sends the Read Request Message to the DUT to read an + attribute of data type Struct. DUT responds with the report data + action with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_Struct verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -458,9 +459,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type List. DUT responds with the report data action with the - right attribute value." + "Step 16: TH sends the Read Request Message to the DUT to read an + attribute of data type List. DUT responds with the report data action + with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_List verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -487,9 +488,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type enum. DUT responds with the report data action with the - right attribute value." + "Step 17: TH sends the Read Request Message to the DUT to read an + attribute of data type enum. DUT responds with the report data action + with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_Enum verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -503,9 +504,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute of - data type bitmap. DUT responds with the report data action with the - right attribute value." + "Step 18: TH sends the Read Request Message to the DUT to read an + attribute of data type bitmap. DUT responds with the report data + action with the right attribute value." PICS: MCORE.IDM.S.Attribute.DataType_Bitmap verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -519,15 +520,17 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read any attribute to - an unsupported node. DUT responds with the report data action." + "Step 19: TH sends the Read Request Message to the DUT to read any + attribute to an unsupported node. DUT responds with the report data + action." verification: | - Out of Scope for V1.0 + Out of Scope disabled: true - label: - "TH sends the Read Request Message to the DUT to read any attribute to - an unsupported Endpoint. DUT responds with the report data action." + "Step 20: TH sends the Read Request Message to the DUT to read any + attribute to an unsupported Endpoint. DUT responds with the report + data action." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -543,8 +546,9 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read any attribute to - an unsupported cluster. DUT responds with the report data action." + "Step 21: TH sends the Read Request Message to the DUT to read any + attribute to an unsupported cluster. DUT responds with the report data + action." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -560,8 +564,8 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an unsupported - attribute DUT responds with the report data action." + "Step 22: TH sends the Read Request Message to the DUT to read an + unsupported attribute DUT responds with the report data action." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -577,24 +581,25 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute - which is not readable. DUT responds with the report data action." + "Step 23: TH sends the Read Request Message to the DUT to read an + attribute which is not readable. DUT responds with the report data + action." verification: | DUT implementation required to verify read an attribute which is not having a read access If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute in - the path that requires a privilege that is not granted for the cluster - in the path. DUT responds with the report data action." + "Step 24: TH sends the Read Request Message to the DUT to read an + attribute in the path that requires a privilege that is not granted + for the cluster in the path. DUT responds with the report data action." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command. Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except ACL cluster command if try to send any other command will get status as unsupported access - ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0 [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage = [1659419722.669657][1915:1920] CHIP:DMG: { @@ -660,8 +665,8 @@ tests: disabled: true - label: - "TH sends the Read Request Message to the DUT to read an attribute - Repeat the above steps 3 times." + "Step 25: TH sends the Read Request Message to the DUT to read an + attribute Repeat the above steps 3 times." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -684,11 +689,12 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read a particular - attribute with the DataVersionFilter Field not set. DUT sends back the - attribute value with the DataVersion of the cluster. TH sends a second - read request to the same cluster with the DataVersionFilter Field set - with the dataversion value received before." + "Step 26: TH sends a Read Request Message to the DUT to read a + particular attribute with the DataVersionFilter Field not set. DUT + sends back the attribute value with the DataVersion of the cluster. TH + sends a second read request to the same cluster with the + DataVersionFilter Field set with the dataversion value received + before." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -739,13 +745,13 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read a particular - attribute with the DataVersionFilter Field not set. DUT sends back the - attribute value with the DataVersion of the cluster. TH sends a write - request to the same cluster to write to any attribute. TH sends a - second read request to read an attribute from the same cluster with - the DataVersionFilter Field set with the dataversion value received - before." + "Step 27: TH sends a Read Request Message to the DUT to read a + particular attribute with the DataVersionFilter Field not set. DUT + sends back the attribute value with the DataVersion of the cluster. TH + sends a write request to the same cluster to write to any attribute. + TH sends a second read request to read an attribute from the same + cluster with the DataVersionFilter Field set with the dataversion + value received before." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -804,13 +810,13 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read all attributes on - a cluster with the DataVersionFilter Field not set. DUT sends back the - all the attribute values with the DataVersion of the cluster. TH sends - a write request to the same cluster to write to any attribute. TH - sends a second read request to read all the attributes from the same - cluster with the DataVersionFilter Field set with the dataversion - value received before." + "Step 28: TH sends a Read Request Message to the DUT to read all + attributes on a cluster with the DataVersionFilter Field not set. DUT + sends back the all the attribute values with the DataVersion of the + cluster. TH sends a write request to the same cluster to write to any + attribute. TH sends a second read request to read all the attributes + from the same cluster with the DataVersionFilter Field set with the + dataversion value received before." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -904,13 +910,13 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read a particular - attribute on a particular cluster with the DataVersionFilter Field not - set. DUT sends back the attribute value with the DataVersion of the - cluster. TH sends a read request to the same cluster to read any - attribute with the right DataVersion(received in the previous step) - and also an older DataVersion. The Read Request Message should have 2 - DataVersionIB filters." + "Step 29: TH sends a Read Request Message to the DUT to read a + particular attribute on a particular cluster with the + DataVersionFilter Field not set. DUT sends back the attribute value + with the DataVersion of the cluster. TH sends a read request to the + same cluster to read any attribute with the right DataVersion(received + in the previous step) and also an older DataVersion. The Read Request + Message should have 2 DataVersionIB filters." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -979,8 +985,8 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read any supported - attribute/wildcard on a particular cluster say A with the + "Step 30: TH sends a Read Request Message to the DUT to read any + supported attribute/wildcard on a particular cluster say A with the DataVersionFilter Field not set. DUT sends back the attribute value with the DataVersion of the cluster A. TH sends a Read Request Message to read any supported attribute/wildcard on cluster A and any @@ -1046,7 +1052,7 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read + "Step 31: TH sends a Read Request Message to the DUT to read something(Attribute) which is larger than 1 MTU(1280 bytes) and per spec can be chunked +" PICS: MCORE.IDM.S.LargeData @@ -1056,8 +1062,8 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read a non global - attribute from all clusters at that Endpoint AttributePath = + "Step 32: TH sends a Read Request Message to the DUT to read a non + global attribute from all clusters at that Endpoint AttributePath = [[Endpoint = Specific Endpoint, Attribute = Specific Non Global Attribute]]" verification: | @@ -1078,8 +1084,8 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read a non global - attribute from all clusters at all Endpoints AttributePath = + "Step 33: TH sends a Read Request Message to the DUT to read a non + global attribute from all clusters at all Endpoints AttributePath = [[Attribute = Specific Non Global Attribute]]" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -1098,10 +1104,10 @@ tests: disabled: true - label: - "TH should have access to only a single cluster at one Endpoint1. TH - sends a Read Request Message to the DUT to read all attributes from - all clusters at Endpoint1 AttributePath = [[Endpoint = Specific - Endpoint]]" + "Step 34: TH should have access to only a single cluster at one + Endpoint1. TH sends a Read Request Message to the DUT to read all + attributes from all clusters at Endpoint1 AttributePath = [[Endpoint = + Specific Endpoint]]" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -1109,7 +1115,7 @@ tests: To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except ACL cluster command if try to send any other command will get status as unsupported access - ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0 [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage = [1659419722.669657][1915:1920] CHIP:DMG: { @@ -1215,8 +1221,8 @@ tests: disabled: true - label: - "TH sends a Read Request Message to read all events and attributes - from the DUT." + "Step 35: TH sends a Read Request Message to read all events and + attributes from the DUT." verification: | In case of chip tool, here is an example command to use diff --git a/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml index f232c6a45a1106..96120d3615893d 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml @@ -30,8 +30,8 @@ tests: disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to modify one attribute - data" + "Step 1: DUT sends the WriteRequestMessage to the TH to modify one + attribute data" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -66,78 +66,19 @@ tests: [1655795552.552605][7331:7331] CHIP:DMG: moreChunkedMessages = false, [1655795552.552647][7331:7331] CHIP:DMG: InteractionModelRevision = 1 [1655795552.552686][7331:7331] CHIP:DMG: }, - - If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response - - [1657883782.721742][2796:2801] CHIP:DMG: WriteResponseMessage = - [1657883782.721783][2796:2801] CHIP:DMG: { - [1657883782.721819][2796:2801] CHIP:DMG: AttributeStatusIBs = - [1657883782.721874][2796:2801] CHIP:DMG: [ - [1657883782.721914][2796:2801] CHIP:DMG: AttributeStatusIB = - [1657883782.721959][2796:2801] CHIP:DMG: { - [1657883782.722002][2796:2801] CHIP:DMG: AttributePathIB = - [1657883782.722054][2796:2801] CHIP:DMG: { - [1657883782.722112][2796:2801] CHIP:DMG: Endpoint = 0x1, - [1657883782.722172][2796:2801] CHIP:DMG: Cluster = 0x8, - [1657883782.722227][2796:2801] CHIP:DMG: Attribute = 0x0000_0011, - [1657883782.722278][2796:2801] CHIP:DMG: } - [1657883782.722335][2796:2801] CHIP:DMG: - [1657883782.722384][2796:2801] CHIP:DMG: StatusIB = - [1657883782.722435][2796:2801] CHIP:DMG: { - [1657883782.722493][2796:2801] CHIP:DMG: status = 0x00 (SUCCESS), - [1657883782.722547][2796:2801] CHIP:DMG: }, - [1657883782.722605][2796:2801] CHIP:DMG: - [1657883782.722648][2796:2801] CHIP:DMG: }, - [1657883782.722697][2796:2801] CHIP:DMG: - [1657883782.722736][2796:2801] CHIP:DMG: ], - [1657883782.722783][2796:2801] CHIP:DMG: - [1657883782.722823][2796:2801] CHIP:DMG: InteractionModelRevision = 1 - [1657883782.722860][2796:2801] CHIP:DMG: } - [1657883782.722967][2796:2801] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1657883782.723047][2796:2801] CHIP:EM: Sending Standalone Ack for MessageCounter:76592104 on exchange 56753i - - - ./chip-tool levelcontrol read on-level 1 1 - - verify on TH(reference app) receives the right write Request Message for the data sent in the above command - - [1657883808.062792][2457:2457] CHIP:IM: Received Read request - [1657883808.062871][2457:2457] CHIP:DMG: ReadRequestMessage = - [1657883808.062900][2457:2457] CHIP:DMG: { - [1657883808.062922][2457:2457] CHIP:DMG: AttributePathIBs = - [1657883808.062949][2457:2457] CHIP:DMG: [ - [1657883808.062972][2457:2457] CHIP:DMG: AttributePathIB = - [1657883808.063000][2457:2457] CHIP:DMG: { - [1657883808.063028][2457:2457] CHIP:DMG: Endpoint = 0x1, - [1657883808.063068][2457:2457] CHIP:DMG: Cluster = 0x8, - [1657883808.063105][2457:2457] CHIP:DMG: Attribute = 0x0000_0011, - [1657883808.063138][2457:2457] CHIP:DMG: } - [1657883808.063167][2457:2457] CHIP:DMG: - [1657883808.063192][2457:2457] CHIP:DMG: ], - [1657883808.063221][2457:2457] CHIP:DMG: - [1657883808.063247][2457:2457] CHIP:DMG: isFabricFiltered = true, - [1657883808.063272][2457:2457] CHIP:DMG: InteractionModelRevision = 1 - [1657883808.063295][2457:2457] CHIP:DMG: }, - [1657883808.063369][2457:2457] CHIP:DMG: IM RH moving to [GeneratingReports] - - If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response - - [1655795604.755214][6880:6885] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 737039636 - [1655795604.755363][6880:6885] CHIP:TOO: on level: 2 - [1655795604.755460][6880:6885] CHIP:EM: Sending Standalone Ack for MessageCounter:83198098 on exchange 53763iOn TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to modify one attribute - on all Endpoints. On receipt of this message, TH should modify the - attribute and send a WriteResponseMessage to the DUT." + "Step 2: DUT sends the WriteRequestMessage to the TH to modify one + attribute on all Endpoints. On receipt of this message, TH should + modify the attribute and send a WriteResponseMessage to the DUT." verification: | Out of Scope for V1.0 disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type bool." + "Step 3: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type bool." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Bool verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -174,72 +115,11 @@ tests: [1655795795.035099][7331:7331] CHIP:DMG: InteractionModelRevision = 1 [1655795795.035138][7331:7331] CHIP:DMG: }, [1655795795.035259][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=m - - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1657883938.394965][2822:2827] CHIP:DMG: WriteResponseMessage = - [1657883938.394995][2822:2827] CHIP:DMG: { - [1657883938.395022][2822:2827] CHIP:DMG: AttributeStatusIBs = - [1657883938.395060][2822:2827] CHIP:DMG: [ - [1657883938.395090][2822:2827] CHIP:DMG: AttributeStatusIB = - [1657883938.395127][2822:2827] CHIP:DMG: { - [1657883938.395158][2822:2827] CHIP:DMG: AttributePathIB = - [1657883938.395196][2822:2827] CHIP:DMG: { - [1657883938.395241][2822:2827] CHIP:DMG: Endpoint = 0x0, - [1657883938.395283][2822:2827] CHIP:DMG: Cluster = 0x28, - [1657883938.395324][2822:2827] CHIP:DMG: Attribute = 0x0000_0010, - [1657883938.395363][2822:2827] CHIP:DMG: } - [1657883938.395406][2822:2827] CHIP:DMG: - [1657883938.395446][2822:2827] CHIP:DMG: StatusIB = - [1657883938.395485][2822:2827] CHIP:DMG: { - [1657883938.395522][2822:2827] CHIP:DMG: status = 0x00 (SUCCESS), - [1657883938.395561][2822:2827] CHIP:DMG: }, - [1657883938.395603][2822:2827] CHIP:DMG: - [1657883938.395636][2822:2827] CHIP:DMG: }, - [1657883938.395672][2822:2827] CHIP:DMG: - [1657883938.395700][2822:2827] CHIP:DMG: ], - [1657883938.395735][2822:2827] CHIP:DMG: - [1657883938.395765][2822:2827] CHIP:DMG: InteractionModelRevision = 1 - [1657883938.395794][2822:2827] CHIP:DMG: } - [1657883938.395875][2822:2827] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1657883938.395940][2822:2827] CHIP:EM: Sending Standalone Ack for MessageCounter:157043526 on exchange 18989i - - - ./chip-tool basicinformation read local-config-disabled 1 0 - - verify on TH(reference app) receives the right write Request Message for the data sent in the above command - - [1657884119.522809][2748:2748] CHIP:IM: Received Read request - [1657884119.522885][2748:2748] CHIP:DMG: ReadRequestMessage = - [1657884119.522911][2748:2748] CHIP:DMG: { - [1657884119.522933][2748:2748] CHIP:DMG: AttributePathIBs = - [1657884119.522959][2748:2748] CHIP:DMG: [ - [1657884119.522982][2748:2748] CHIP:DMG: AttributePathIB = - [1657884119.523009][2748:2748] CHIP:DMG: { - [1657884119.523037][2748:2748] CHIP:DMG: Endpoint = 0x0, - [1657884119.523067][2748:2748] CHIP:DMG: Cluster = 0x28, - [1657884119.523097][2748:2748] CHIP:DMG: Attribute = 0x0000_0010, - [1657884119.523126][2748:2748] CHIP:DMG: } - [1657884119.523153][2748:2748] CHIP:DMG: - [1657884119.523179][2748:2748] CHIP:DMG: ], - [1657884119.523207][2748:2748] CHIP:DMG: - [1657884119.523233][2748:2748] CHIP:DMG: isFabricFiltered = true, - [1657884119.523257][2748:2748] CHIP:DMG: InteractionModelRevision = 1 - [1657884119.523280][2748:2748] CHIP:DMG: }, - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1655795843.336042][6902:6907] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 1263909562 - [1655795843.336093][6902:6907] CHIP:TOO: LocalConfigDisabled: TRUE - [1655795843.336251][6902:6907] CHIP:EM: Sending Standalone Ack for MessageCounter:108030495 on exchange 43207i disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type string." + "Step 4: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type string." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_String verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -277,69 +157,11 @@ tests: [1655796035.023656][7331:7331] CHIP:DMG: }, [1655796035.023791][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=m [1655796035.023851][7331:7331] CHIP:DMG: AccessControl: allowed - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1657884155.221193][2865:2870] CHIP:DMG: WriteResponseMessage = - [1657884155.221246][2865:2870] CHIP:DMG: { - [1657884155.221292][2865:2870] CHIP:DMG: AttributeStatusIBs = - [1657884155.221356][2865:2870] CHIP:DMG: [ - [1657884155.221406][2865:2870] CHIP:DMG: AttributeStatusIB = - [1657884155.221464][2865:2870] CHIP:DMG: { - [1657884155.221518][2865:2870] CHIP:DMG: AttributePathIB = - [1657884155.221588][2865:2870] CHIP:DMG: { - [1657884155.221635][2865:2870] CHIP:DMG: Endpoint = 0x0, - [1657884155.221673][2865:2870] CHIP:DMG: Cluster = 0x28, - [1657884155.221710][2865:2870] CHIP:DMG: Attribute = 0x0000_0005, - [1657884155.221798][2865:2870] CHIP:DMG: } - [1657884155.221837][2865:2870] CHIP:DMG: - [1657884155.221868][2865:2870] CHIP:DMG: StatusIB = - [1657884155.221900][2865:2870] CHIP:DMG: { - [1657884155.221932][2865:2870] CHIP:DMG: status = 0x00 (SUCCESS), - [1657884155.221965][2865:2870] CHIP:DMG: }, - [1657884155.221996][2865:2870] CHIP:DMG: - [1657884155.222022][2865:2870] CHIP:DMG: }, - [1657884155.222052][2865:2870] CHIP:DMG: - [1657884155.222077][2865:2870] CHIP:DMG: ], - [1657884155.222108][2865:2870] CHIP:DMG: - [1657884155.222132][2865:2870] CHIP:DMG: InteractionModelRevision = 1 - [1657884155.222157][2865:2870] CHIP:DMG: } - [1657884155.222229][2865:2870] CHIP:DMG: WriteClient moving to [AwaitingDe] - - - ./chip-tool basicinformation read node-label 1 0 - - verify on TH(reference app) receives the right write Request Message for the data sent in the above command - - [1657884173.738798][2748:2748] CHIP:IM: Received Read request - [1657884173.738877][2748:2748] CHIP:DMG: ReadRequestMessage = - [1657884173.738904][2748:2748] CHIP:DMG: { - [1657884173.738926][2748:2748] CHIP:DMG: AttributePathIBs = - [1657884173.738952][2748:2748] CHIP:DMG: [ - [1657884173.738975][2748:2748] CHIP:DMG: AttributePathIB = - [1657884173.739009][2748:2748] CHIP:DMG: { - [1657884173.739041][2748:2748] CHIP:DMG: Endpoint = 0x0, - [1657884173.739073][2748:2748] CHIP:DMG: Cluster = 0x28, - [1657884173.739105][2748:2748] CHIP:DMG: Attribute = 0x0000_0005, - [1657884173.739134][2748:2748] CHIP:DMG: } - [1657884173.739162][2748:2748] CHIP:DMG: - [1657884173.739188][2748:2748] CHIP:DMG: ], - [1657884173.739215][2748:2748] CHIP:DMG: - [1657884173.739241][2748:2748] CHIP:DMG: isFabricFiltered = true, - [1657884173.739266][2748:2748] CHIP:DMG: InteractionModelRevision = 1 - [1657884173.739288][2748:2748] CHIP:DMG: }, - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1655796082.079468][6918:6923] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 1263909563 - [1655796082.079509][6918:6923] CHIP:TOO: NodeLabel: node - [1655796082.079608][6918:6923] CHIP:EM: Sending Standalone Ack for MessageCounter:256008218 on exchange 23185i disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type unsigned integer." + "Step 5: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type unsigned integer." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_UnsignedInteger verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -375,71 +197,11 @@ tests: [1655796141.168121][7331:7331] CHIP:DMG: }, [1655796141.168253][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0008 e=1 p=o [1655796141.168313][7331:7331] CHIP:DMG: AccessControl: allowed - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1657884204.951658][2878:2883] CHIP:DMG: WriteResponseMessage = - [1657884204.951700][2878:2883] CHIP:DMG: { - [1657884204.951736][2878:2883] CHIP:DMG: AttributeStatusIBs = - [1657884204.951786][2878:2883] CHIP:DMG: [ - [1657884204.951826][2878:2883] CHIP:DMG: AttributeStatusIB = - [1657884204.951871][2878:2883] CHIP:DMG: { - [1657884204.951913][2878:2883] CHIP:DMG: AttributePathIB = - [1657884204.951965][2878:2883] CHIP:DMG: { - [1657884204.952018][2878:2883] CHIP:DMG: Endpoint = 0x1, - [1657884204.952075][2878:2883] CHIP:DMG: Cluster = 0x8, - [1657884204.952173][2878:2883] CHIP:DMG: Attribute = 0x0000_0010, - [1657884204.952226][2878:2883] CHIP:DMG: } - [1657884204.952286][2878:2883] CHIP:DMG: - [1657884204.952340][2878:2883] CHIP:DMG: StatusIB = - [1657884204.952396][2878:2883] CHIP:DMG: { - [1657884204.952449][2878:2883] CHIP:DMG: status = 0x00 (SUCCESS), - [1657884204.952500][2878:2883] CHIP:DMG: }, - [1657884204.952552][2878:2883] CHIP:DMG: - [1657884204.952597][2878:2883] CHIP:DMG: }, - [1657884204.952645][2878:2883] CHIP:DMG: - [1657884204.952684][2878:2883] CHIP:DMG: ], - [1657884204.952731][2878:2883] CHIP:DMG: - [1657884204.952770][2878:2883] CHIP:DMG: InteractionModelRevision = 1 - [1657884204.952808][2878:2883] CHIP:DMG: } - [1657884204.952914][2878:2883] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1657884204.952998][2878:2883] CHIP:EM: Sending Standalone Ack for MessageCounter:264044678 - - - ./chip-tool any read-by-id 0x0008 0x0010 1 1 - - verify on TH(reference app) receives the read Request Message for the data sent in the above command - - [1657884227.859836][2748:2748] CHIP:IM: Received Read request - [1657884227.859916][2748:2748] CHIP:DMG: ReadRequestMessage = - [1657884227.859942][2748:2748] CHIP:DMG: { - [1657884227.859964][2748:2748] CHIP:DMG: AttributePathIBs = - [1657884227.859989][2748:2748] CHIP:DMG: [ - [1657884227.860012][2748:2748] CHIP:DMG: AttributePathIB = - [1657884227.860045][2748:2748] CHIP:DMG: { - [1657884227.860076][2748:2748] CHIP:DMG: Endpoint = 0x1, - [1657884227.860112][2748:2748] CHIP:DMG: Cluster = 0x8, - [1657884227.860147][2748:2748] CHIP:DMG: Attribute = 0x0000_0010, - [1657884227.860181][2748:2748] CHIP:DMG: } - [1657884227.860211][2748:2748] CHIP:DMG: - [1657884227.860239][2748:2748] CHIP:DMG: ], - [1657884227.860266][2748:2748] CHIP:DMG: - [1657884227.860292][2748:2748] CHIP:DMG: isFabricFiltered = true, - [1657884227.860316][2748:2748] CHIP:DMG: InteractionModelRevision = 1 - [1657884227.860339][2748:2748] CHIP:DMG: }, - [1657884227.860413][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports] - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1655796192.032715][6931:6936] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 737039637 - [1655796192.032807][6931:6936] CHIP:TOO: on off transition time: 1 - [1655796192.032908][6931:6936] CHIP:EM: Sending Standalone Ack for MessageCounter:249349258 on exchange 7433i disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type signed integer." + "Step 6: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type signed integer." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_SignedInteger verification: | DUT implementation required to verify write an attribute of data type signed integer. @@ -448,8 +210,8 @@ tests: disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type floating point." + "Step 7: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type floating point." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_FloatingPoint verification: | DUT implementation required to verify write an attribute of data type float @@ -458,8 +220,8 @@ tests: disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type Octet String." + "Step 8: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type Octet String." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_OctetString verification: | DUT implementation required to verify write an attribute of data type Octet String @@ -468,8 +230,8 @@ tests: disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type Struct." + "Step 9: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type Struct." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Struct verification: | DUT implementation required to verify write an attribute ofdata type Struct @@ -478,8 +240,8 @@ tests: disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type List." + "Step 10: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type List." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_List verification: | DUT implementation required to verify write an attribute of data type List @@ -488,8 +250,8 @@ tests: disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type enum." + "Step 11: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type enum." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Enum verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -527,61 +289,16 @@ tests: [1655796297.609214][7331:7331] CHIP:DMG: }, [1655796297.609342][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=o [1655796297.609403][7331:7331] CHIP:DMG: AccessControl: allowed - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1657884258.383116][2892:2897] CHIP:DMG: WriteResponseMessage = - [1657884258.383157][2892:2897] CHIP:DMG: { - [1657884258.383192][2892:2897] CHIP:DMG: AttributeStatusIBs = - [1657884258.383255][2892:2897] CHIP:DMG: [ - [1657884258.383295][2892:2897] CHIP:DMG: AttributeStatusIB = - [1657884258.383339][2892:2897] CHIP:DMG: { - [1657884258.383381][2892:2897] CHIP:DMG: AttributePathIB = - [1657884258.383431][2892:2897] CHIP:DMG: { - [1657884258.383482][2892:2897] CHIP:DMG: Endpoint = 0x1, - [1657884258.383538][2892:2897] CHIP:DMG: Cluster = 0x204, - [1657884258.383592][2892:2897] CHIP:DMG: Attribute = 0x0000_0000, - [1657884258.383647][2892:2897] CHIP:DMG: } - [1657884258.383703][2892:2897] CHIP:DMG: - [1657884258.383750][2892:2897] CHIP:DMG: StatusIB = - [1657884258.383800][2892:2897] CHIP:DMG: { - [1657884258.383851][2892:2897] CHIP:DMG: status = 0x00 (SUCCESS), - [1657884258.383905][2892:2897] CHIP:DMG: }, - [1657884258.383955][2892:2897] CHIP:DMG: - [1657884258.383996][2892:2897] CHIP:DMG: }, - [1657884258.384043][2892:2897] CHIP:DMG: - [1657884258.384081][2892:2897] CHIP:DMG: ], - [1657884258.384170][2892:2897] CHIP:DMG: - [1657884258.384212][2892:2897] CHIP:DMG: InteractionModelRevision = 1 - [1657884258.384249][2892:2897] CHIP:DMG: } - [1657884258.384358][2892:2897] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1657884258.384441][2892:2897] CHIP:EM: Sending Standalone Ack for MessageCounter:255796912 on exchange 26584i - - - ./chip-tool any read-by-id 0x0204 0 1 1 - - verify on TH (reference app) receives the right write Request Message for the data sent in the above command - - [1657884282.303557][2898:2903] CHIP:DMG: } - [1657884282.303695][2898:2903] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 2387607084 - [1657884282.303778][2898:2903] CHIP:TOO: temperature display mode: 1 - [1657884282.303862][2898:2903] CHIP:EM: Sending Standalone Ack for MessageCounter:147756485 on exchange 42871i - - If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response - - [1655796341.132655][6946:6951] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 3165945391 - [1655796341.132864][6946:6951] CHIP:TOO: temperature display mode: 1 - [1655796341.132973][6946:6951] CHIP:EM: Sending Standalone Ack for MessageCounter:245498041 on exchange 51992i disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write an attribute of - data type bitmap." + "Step 12: DUT sends the WriteRequestMessage to the TH to write an + attribute of data type bitmap." PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Bitmap verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool colorcontrol write-by-id 0x000f 1 1 1 + ./chip-tool colorcontrol write-by-id 0x000f 1 1 1 On TH(reference app) Verify that the correct WriteRequestMessage has been received for the data sent in the above command @@ -613,84 +330,24 @@ tests: [1655796429.698252][7331:7331] CHIP:DMG: }, [1655796429.698386][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0300 e=1 p=o [1655796429.698446][7331:7331] CHIP:DMG: AccessControl: allowed - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1657884309.994598][2907:2912] CHIP:DMG: WriteResponseMessage = - [1657884309.994627][2907:2912] CHIP:DMG: { - [1657884309.994652][2907:2912] CHIP:DMG: AttributeStatusIBs = - [1657884309.994688][2907:2912] CHIP:DMG: [ - [1657884309.994715][2907:2912] CHIP:DMG: AttributeStatusIB = - [1657884309.994754][2907:2912] CHIP:DMG: { - [1657884309.994787][2907:2912] CHIP:DMG: AttributePathIB = - [1657884309.994823][2907:2912] CHIP:DMG: { - [1657884309.994861][2907:2912] CHIP:DMG: Endpoint = 0x1, - [1657884309.994902][2907:2912] CHIP:DMG: Cluster = 0x300, - [1657884309.994941][2907:2912] CHIP:DMG: Attribute = 0x0000_000F, - [1657884309.994977][2907:2912] CHIP:DMG: } - [1657884309.995021][2907:2912] CHIP:DMG: - [1657884309.995057][2907:2912] CHIP:DMG: StatusIB = - [1657884309.995096][2907:2912] CHIP:DMG: { - [1657884309.995132][2907:2912] CHIP:DMG: status = 0x00 (SUCCESS), - [1657884309.995168][2907:2912] CHIP:DMG: }, - [1657884309.995203][2907:2912] CHIP:DMG: - [1657884309.995234][2907:2912] CHIP:DMG: }, - [1657884309.995268][2907:2912] CHIP:DMG: - [1657884309.995295][2907:2912] CHIP:DMG: ], - [1657884309.995329][2907:2912] CHIP:DMG: - [1657884309.995356][2907:2912] CHIP:DMG: InteractionModelRevision = 1 - [1657884309.995383][2907:2912] CHIP:DMG: } - [1657884309.995461][2907:2912] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1657884309.995524][2907:2912] CHIP:EM: Sending Standalone Ack for MessageCounter:243574725 on exchange 27981i - - - - ./chip-tool colorcontrol read-by-id 0x000f 1 1 - - verify on TH (reference app) receives the right write Request Message for the data sent in the above command - - [1657884334.613535][2748:2748] CHIP:IM: Received Read request - [1657884334.613615][2748:2748] CHIP:DMG: ReadRequestMessage = - [1657884334.613641][2748:2748] CHIP:DMG: { - [1657884334.613663][2748:2748] CHIP:DMG: AttributePathIBs = - [1657884334.613685][2748:2748] CHIP:DMG: [ - [1657884334.613746][2748:2748] CHIP:DMG: AttributePathIB = - [1657884334.613775][2748:2748] CHIP:DMG: { - [1657884334.613803][2748:2748] CHIP:DMG: Endpoint = 0x1, - [1657884334.613834][2748:2748] CHIP:DMG: Cluster = 0x300, - [1657884334.613869][2748:2748] CHIP:DMG: Attribute = 0x0000_000F, - [1657884334.613898][2748:2748] CHIP:DMG: } - [1657884334.613926][2748:2748] CHIP:DMG: - [1657884334.613952][2748:2748] CHIP:DMG: ], - [1657884334.613980][2748:2748] CHIP:DMG: - [1657884334.614005][2748:2748] CHIP:DMG: isFabricFiltered = true, - [1657884334.614030][2748:2748] CHIP:DMG: InteractionModelRevision = 1 - [1657884334.614053][2748:2748] CHIP:DMG: }, - [1657884334.614128][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports] - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1655796493.233673][6961:6966] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_000F DataVersion: 2788050502 - [1655796493.233761][6961:6966] CHIP:TOO: Options: 1 - [1655796493.233865][6961:6966] CHIP:EM: Sending Standalone Ack for MessageCounter:185730221 on exchange 37136i disabled: true - label: - "DUT sends a WriteRequestMessage to the TH with a large list of - attribute data, which is larger than 1 MTU(1280 bytes), that has to be - sent in multiple messages." + "Step 13: DUT sends a WriteRequestMessage to the TH with a large list + of attribute data, which is larger than 1 MTU(1280 bytes), that has to + be sent in multiple messages." verification: | DUT implementation required to verify write an attribute which is is larger than 1 MTU(1280 bytes) Here is an example command to verify the write functionality. User must choose an attribute which has large list of attribute data. ./chip-tool basicinformation write node-label node 1 0 - If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "DUT sends the WriteRequestMessage to the TH to write one attribute on - a given cluster and endpoint. Repeat the above steps 3 times." + "Step 14: DUT sends the WriteRequestMessage to the TH to write one + attribute on a given cluster and endpoint. Repeat the above steps 3 + times." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -726,79 +383,16 @@ tests: [1655796724.512195][7331:7331] CHIP:DMG: }, [1655796724.512344][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=o - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1657884369.932192][2923:2928] CHIP:DMG: WriteResponseMessage = - [1657884369.932226][2923:2928] CHIP:DMG: { - [1657884369.932255][2923:2928] CHIP:DMG: AttributeStatusIBs = - [1657884369.932297][2923:2928] CHIP:DMG: [ - [1657884369.932329][2923:2928] CHIP:DMG: AttributeStatusIB = - [1657884369.932366][2923:2928] CHIP:DMG: { - [1657884369.932400][2923:2928] CHIP:DMG: AttributePathIB = - [1657884369.932446][2923:2928] CHIP:DMG: { - [1657884369.932490][2923:2928] CHIP:DMG: Endpoint = 0x1, - [1657884369.932534][2923:2928] CHIP:DMG: Cluster = 0x204, - [1657884369.932579][2923:2928] CHIP:DMG: Attribute = 0x0000_0000, - [1657884369.932621][2923:2928] CHIP:DMG: } - [1657884369.932667][2923:2928] CHIP:DMG: - [1657884369.932711][2923:2928] CHIP:DMG: StatusIB = - [1657884369.932753][2923:2928] CHIP:DMG: { - [1657884369.932794][2923:2928] CHIP:DMG: status = 0x00 (SUCCESS), - [1657884369.932835][2923:2928] CHIP:DMG: }, - [1657884369.932876][2923:2928] CHIP:DMG: - [1657884369.932912][2923:2928] CHIP:DMG: }, - [1657884369.932952][2923:2928] CHIP:DMG: - [1657884369.932983][2923:2928] CHIP:DMG: ], - [1657884369.933022][2923:2928] CHIP:DMG: - [1657884369.933054][2923:2928] CHIP:DMG: InteractionModelRevision = 1 - [1657884369.933085][2923:2928] CHIP:DMG: } - [1657884369.933178][2923:2928] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1657884369.933244][2923:2928] CHIP:EM: Sending Standalone Ack for MessageCounter:101663641 on exchange 44315i - - - - - ./chip-tool any read-by-id 0x0204 0 1 1 - - verify on TH (reference app) receives the right write Request Message for the data sent in the above command - - [1657884399.502355][2748:2748] CHIP:IM: Received Read request - [1657884399.502442][2748:2748] CHIP:DMG: ReadRequestMessage = - [1657884399.502473][2748:2748] CHIP:DMG: { - [1657884399.502497][2748:2748] CHIP:DMG: AttributePathIBs = - [1657884399.502530][2748:2748] CHIP:DMG: [ - [1657884399.502558][2748:2748] CHIP:DMG: AttributePathIB = - [1657884399.502589][2748:2748] CHIP:DMG: { - [1657884399.502621][2748:2748] CHIP:DMG: Endpoint = 0x1, - [1657884399.502658][2748:2748] CHIP:DMG: Cluster = 0x204, - [1657884399.502693][2748:2748] CHIP:DMG: Attribute = 0x0000_0000, - [1657884399.502730][2748:2748] CHIP:DMG: } - [1657884399.502762][2748:2748] CHIP:DMG: - [1657884399.502791][2748:2748] CHIP:DMG: ], - [1657884399.502822][2748:2748] CHIP:DMG: - [1657884399.502852][2748:2748] CHIP:DMG: isFabricFiltered = true, - [1657884399.502881][2748:2748] CHIP:DMG: InteractionModelRevision = 1 - [1657884399.502907][2748:2748] CHIP:DMG: }, - [1657884399.502989][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports] - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response - - [1655796786.513406][6976:6981] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 3165945392 - [1655796786.513496][6976:6981] CHIP:TOO: temperature display mode: 1 - [1655796786.513593][6976:6981] CHIP:EM: Sending Standalone Ack for MessageCounter:190446058 on exchange 28240i - - - - Repeat the above steps 3 times. + Repeat the above steps 3 times. disabled: true - label: - "DUT sends a ReadRequest message to the TH to read any attribute on - two clusters. TH returns with a report data action with the attribute - values and the dataversions of the clusters. DUT sends a + "Step 15: DUT sends a ReadRequest message to the TH to read any + attribute on two clusters. TH returns with a report data action with + the attribute values and the dataversions of the clusters. DUT sends a WriteRequestMessage to the DUT to both the clusters with the appropriate dataversions(received in the previous step) to modify the value of an attribute" verification: | - Out of Scope for V1.0 + Out of Scope disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_3_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_3_2.yaml index f4eeed4e542c74..c1a6c376adf2a2 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_3_2.yaml @@ -25,62 +25,68 @@ config: tests: - label: - "TH sends the WriteRequestMessage to the DUT to write one attribute on - a given cluster and endpoint. On receipt of this message, DUT should - send a write response action." + "Step 1: TH sends the WriteRequestMessage to the DUT to write one + attribute on a given cluster and endpoint. On receipt of this message, + DUT should send a write response action." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool levelcontrol write on-level 2 1 1 - On TH(Reference app), verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. - - [1653026683.396666][6229:6234] CHIP:DMG: WriteResponseMessage = - [1653026683.396685][6229:6234] CHIP:DMG: { - [1653026683.396703][6229:6234] CHIP:DMG: AttributeStatusIBs = - [1653026683.396732][6229:6234] CHIP:DMG: [ - [1653026683.396749][6229:6234] CHIP:DMG: AttributeStatusIB = - [1653026683.396773][6229:6234] CHIP:DMG: { - [1653026683.396790][6229:6234] CHIP:DMG: AttributePathIB = - [1653026683.396813][6229:6234] CHIP:DMG: { - [1653026683.396835][6229:6234] CHIP:DMG: Endpoint = 0x1, - [1653026683.396858][6229:6234] CHIP:DMG: Cluster = 0x8, - [1653026683.396881][6229:6234] CHIP:DMG: Attribute = 0x0000_0011, - [1653026683.396900][6229:6234] CHIP:DMG: } - [1653026683.396929][6229:6234] CHIP:DMG: - [1653026683.396947][6229:6234] CHIP:DMG: StatusIB = - [1653026683.396970][6229:6234] CHIP:DMG: { - [1653026683.396991][6229:6234] CHIP:DMG: status = 0x00 (SUCCESS), - [1653026683.397011][6229:6234] CHIP:DMG: }, - [1653026683.397034][6229:6234] CHIP:DMG: - [1653026683.397052][6229:6234] CHIP:DMG: }, - [1653026683.397078][6229:6234] CHIP:DMG: - [1653026683.397093][6229:6234] CHIP:DMG: ], - [1653026683.397121][6229:6234] CHIP:DMG: - [1653026683.397138][6229:6234] CHIP:DMG: InteractionModelRevision = 1 - [1653026683.397155][6229:6234] CHIP:DMG: } + On TH(chip-tool), verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified + [1686227268.758171][93527:93529] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686227268.758192][93527:93529] CHIP:DMG: WriteResponseMessage = + [1686227268.758200][93527:93529] CHIP:DMG: { + [1686227268.758205][93527:93529] CHIP:DMG: AttributeStatusIBs = + [1686227268.758216][93527:93529] CHIP:DMG: [ + [1686227268.758222][93527:93529] CHIP:DMG: AttributeStatusIB = + [1686227268.758228][93527:93529] CHIP:DMG: { + [1686227268.758236][93527:93529] CHIP:DMG: AttributePathIB = + [1686227268.758245][93527:93529] CHIP:DMG: { + [1686227268.758253][93527:93529] CHIP:DMG: Endpoint = 0x1, + [1686227268.758261][93527:93529] CHIP:DMG: Cluster = 0x8, + [1686227268.758269][93527:93529] CHIP:DMG: Attribute = 0x0000_0011, + [1686227268.758276][93527:93529] CHIP:DMG: } + [1686227268.758287][93527:93529] CHIP:DMG: + [1686227268.758294][93527:93529] CHIP:DMG: StatusIB = + [1686227268.758307][93527:93529] CHIP:DMG: { + [1686227268.758315][93527:93529] CHIP:DMG: status = 0x00 (SUCCESS), + [1686227268.758322][93527:93529] CHIP:DMG: }, + [1686227268.758332][93527:93529] CHIP:DMG: + [1686227268.758337][93527:93529] CHIP:DMG: }, + [1686227268.758347][93527:93529] CHIP:DMG: + [1686227268.758353][93527:93529] CHIP:DMG: ], + [1686227268.758363][93527:93529] CHIP:DMG: + [1686227268.758369][93527:93529] CHIP:DMG: InteractionModelRevision = 1 + [1686227268.758375][93527:93529] CHIP:DMG: } + [1686227268.758410][93527:93529] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686227268.758462][93527:93529] CHIP:EM: <<< [E:46i S:53908 M:59594222 (Ack:246023482)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227268.758475][93527:93529] CHIP:IN: (S) Sending msg 59594222 on secure session with LSID: 53908 ./chip-tool levelcontrol read on-level 1 1 - On TH, verify the attribute value that was modified in above step + On TH(chip-tool), verify the attribute value that was modified in above step - [1655200943.824948][3523:3528] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3958539601 - [1655200943.825056][3523:3528] CHIP:TOO: on level: 2 - [1655200943.825157][3523:3528] CHIP:EM: Sending Standalone Ack for MessageCounter:244110098 on exchange 12829i + [1686227336.578590][93540:93542] CHIP:DMG: } + [1686227336.578662][93540:93542] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 2737039617 + [1686227336.578696][93540:93542] CHIP:TOO: OnLevel: 2 + [1686227336.578749][93540:93542] CHIP:EM: <<< [E:46452i S:27133 M:147974322 (Ack:150508079)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227336.578761][93540:93542] CHIP:IN: (S) Sending msg 147974322 on secure session with LSID: 27133 + [1686227336.578788][93540:93542] CHIP:EM: Flushed pending ack for MessageCounter:150508079 on exchange 46452i disabled: true - label: - "TH sends a WriteRequestMessage to the DUT to write to an attribute on - all endpoints. On receipt of this message, DUT should send a Write - Response action" + "Step 2: TH sends a WriteRequestMessage to the DUT to write to an + attribute on all endpoints. On receipt of this message, DUT should + send a Write Response action" verification: | - Out of Scope for V1.0 + Out of Scope disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type bool. +" + "Step 3: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type bool. +" PICS: MCORE.IDM.S.Attribute_W.DataType_Bool verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -88,48 +94,52 @@ tests: ./chip-tool basicinformation write local-config-disabled 1 1 0 - On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. - - - [1655201045.952849][3550:3555] CHIP:DMG: WriteResponseMessage = - [1655201045.952886][3550:3555] CHIP:DMG: { - [1655201045.952916][3550:3555] CHIP:DMG: AttributeStatusIBs = - [1655201045.952960][3550:3555] CHIP:DMG: [ - [1655201045.952996][3550:3555] CHIP:DMG: AttributeStatusIB = - [1655201045.953036][3550:3555] CHIP:DMG: { - [1655201045.953076][3550:3555] CHIP:DMG: AttributePathIB = - [1655201045.953122][3550:3555] CHIP:DMG: { - [1655201045.953170][3550:3555] CHIP:DMG: Endpoint = 0x0, - [1655201045.953217][3550:3555] CHIP:DMG: Cluster = 0x28, - [1655201045.953270][3550:3555] CHIP:DMG: Attribute = 0x0000_0010, - [1655201045.953315][3550:3555] CHIP:DMG: } - [1655201045.953365][3550:3555] CHIP:DMG: - [1655201045.953408][3550:3555] CHIP:DMG: StatusIB = - [1655201045.953458][3550:3555] CHIP:DMG: { - [1655201045.953503][3550:3555] CHIP:DMG: status = 0x00 (SUCCESS), - [1655201045.953553][3550:3555] CHIP:DMG: }, - [1655201045.953601][3550:3555] CHIP:DMG: - [1655201045.953663][3550:3555] CHIP:DMG: }, - [1655201045.953711][3550:3555] CHIP:DMG: - [1655201045.953745][3550:3555] CHIP:DMG: ], - [1655201045.953786][3550:3555] CHIP:DMG: - [1655201045.953821][3550:3555] CHIP:DMG: InteractionModelRevision = 1 - [1655201045.953857][3550:3555] CHIP:DMG: } - [1655201045.953951][3550:3555] CHIP:DMG: WriteClient moving to [AwaitingDe] + On TH(chip-tool), verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. + [1686227392.013866][93552:93554] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686227392.013876][93552:93554] CHIP:DMG: WriteResponseMessage = + [1686227392.013879][93552:93554] CHIP:DMG: { + [1686227392.013881][93552:93554] CHIP:DMG: AttributeStatusIBs = + [1686227392.013884][93552:93554] CHIP:DMG: [ + [1686227392.013886][93552:93554] CHIP:DMG: AttributeStatusIB = + [1686227392.013890][93552:93554] CHIP:DMG: { + [1686227392.013892][93552:93554] CHIP:DMG: AttributePathIB = + [1686227392.013894][93552:93554] CHIP:DMG: { + [1686227392.013897][93552:93554] CHIP:DMG: Endpoint = 0x0, + [1686227392.013900][93552:93554] CHIP:DMG: Cluster = 0x28, + [1686227392.013902][93552:93554] CHIP:DMG: Attribute = 0x0000_0010, + [1686227392.013904][93552:93554] CHIP:DMG: } + [1686227392.013908][93552:93554] CHIP:DMG: + [1686227392.013910][93552:93554] CHIP:DMG: StatusIB = + [1686227392.013913][93552:93554] CHIP:DMG: { + [1686227392.013915][93552:93554] CHIP:DMG: status = 0x00 (SUCCESS), + [1686227392.013918][93552:93554] CHIP:DMG: }, + [1686227392.013920][93552:93554] CHIP:DMG: + [1686227392.013922][93552:93554] CHIP:DMG: }, + [1686227392.013925][93552:93554] CHIP:DMG: + [1686227392.013927][93552:93554] CHIP:DMG: ], + [1686227392.013930][93552:93554] CHIP:DMG: + [1686227392.013932][93552:93554] CHIP:DMG: InteractionModelRevision = 1 + [1686227392.013934][93552:93554] CHIP:DMG: } + [1686227392.013946][93552:93554] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686227392.013969][93552:93554] CHIP:EM: <<< [E:21429i S:8881 M:20713259 (Ack:93935903)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227392.013973][93552:93554] CHIP:IN: (S) Sending msg 20713259 on secure session with LSID: 8881 ./chip-tool basicinformation read local-config-disabled 1 0 - On TH, verify the attribute value that was modified in above step + On TH(chip-tool), verify the attribute value that was modified in above step - [1655201064.564646][3556:3561] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 1458477847 - [1655201064.564696][3556:3561] CHIP:TOO: LocalConfigDisabled: TRUE - [1655201064.564812][3556:3561] CHIP:EM: Sending Standalone Ack for MessageCounter:57487809 on exchange 1016i + [1686227416.154356][93557:93559] CHIP:DMG: } + [1686227416.154438][93557:93559] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 185765148 + [1686227416.154462][93557:93559] CHIP:TOO: LocalConfigDisabled: TRUE + [1686227416.154533][93557:93559] CHIP:EM: <<< [E:14853i S:25729 M:226166445 (Ack:250146490)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227416.154546][93557:93559] CHIP:IN: (S) Sending msg 226166445 on secure session with LSID: 25729 + [1686227416.154585][93557:93559] CHIP:EM: Flushed pending ack for MessageCounter:250146490 on exchange 14853i disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type string. +" + "Step 4: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type string. +" PICS: MCORE.IDM.S.Attribute_W.DataType_String verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -137,46 +147,50 @@ tests: ./chip-tool basicinformation write node-label new 1 0 - On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and veriffy by sending a ReadRequestMessage to read the value that was modified. - - [1655806131.663097][7241:7246] CHIP:DMG: WriteClient moving to [ResponseRe] - [1655806131.663177][7241:7246] CHIP:DMG: WriteResponseMessage = - [1655806131.663215][7241:7246] CHIP:DMG: { - [1655806131.663259][7241:7246] CHIP:DMG: AttributeStatusIBs = - [1655806131.663305][7241:7246] CHIP:DMG: [ - [1655806131.663353][7241:7246] CHIP:DMG: AttributeStatusIB = - [1655806131.663402][7241:7246] CHIP:DMG: { - [1655806131.663453][7241:7246] CHIP:DMG: AttributePathIB = - [1655806131.663511][7241:7246] CHIP:DMG: { - [1655806131.663561][7241:7246] CHIP:DMG: Endpoint = 0x0, - [1655806131.663621][7241:7246] CHIP:DMG: Cluster = 0x28, - [1655806131.663672][7241:7246] CHIP:DMG: Attribute = 0x0000_0005, - [1655806131.663735][7241:7246] CHIP:DMG: } - [1655806131.663791][7241:7246] CHIP:DMG: - [1655806131.663839][7241:7246] CHIP:DMG: StatusIB = - [1655806131.663889][7241:7246] CHIP:DMG: { - [1655806131.663935][7241:7246] CHIP:DMG: status = 0x00 (SUCCESS), - [1655806131.663980][7241:7246] CHIP:DMG: }, - [1655806131.664024][7241:7246] CHIP:DMG: - [1655806131.664063][7241:7246] CHIP:DMG: }, - [1655806131.664106][7241:7246] CHIP:DMG: - [1655806131.664141][7241:7246] CHIP:DMG: ], - [1655806131.664208][7241:7246] CHIP:DMG: - [1655806131.664243][7241:7246] CHIP:DMG: InteractionModelRevision = 1 - [1655806131.664278][7241:7246] CHIP:DMG: } - [1655806131.664372][7241:7246] CHIP:DMG: WriteClient moving to [AwaitingDe] + On TH(chip-tool), verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and veriffy by sending a ReadRequestMessage to read the value that was modified. + + [1686227478.441576][93568:93570] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686227478.441597][93568:93570] CHIP:DMG: WriteResponseMessage = + [1686227478.441605][93568:93570] CHIP:DMG: { + [1686227478.441610][93568:93570] CHIP:DMG: AttributeStatusIBs = + [1686227478.441621][93568:93570] CHIP:DMG: [ + [1686227478.441627][93568:93570] CHIP:DMG: AttributeStatusIB = + [1686227478.441635][93568:93570] CHIP:DMG: { + [1686227478.441641][93568:93570] CHIP:DMG: AttributePathIB = + [1686227478.441649][93568:93570] CHIP:DMG: { + [1686227478.441657][93568:93570] CHIP:DMG: Endpoint = 0x0, + [1686227478.441665][93568:93570] CHIP:DMG: Cluster = 0x28, + [1686227478.441673][93568:93570] CHIP:DMG: Attribute = 0x0000_0005, + [1686227478.441679][93568:93570] CHIP:DMG: } + [1686227478.441689][93568:93570] CHIP:DMG: + [1686227478.441696][93568:93570] CHIP:DMG: StatusIB = + [1686227478.441704][93568:93570] CHIP:DMG: { + [1686227478.441711][93568:93570] CHIP:DMG: status = 0x00 (SUCCESS), + [1686227478.441718][93568:93570] CHIP:DMG: }, + [1686227478.441726][93568:93570] CHIP:DMG: + [1686227478.441731][93568:93570] CHIP:DMG: }, + [1686227478.441741][93568:93570] CHIP:DMG: + [1686227478.441746][93568:93570] CHIP:DMG: ], + [1686227478.441756][93568:93570] CHIP:DMG: + [1686227478.441762][93568:93570] CHIP:DMG: InteractionModelRevision = 1 + [1686227478.441768][93568:93570] CHIP:DMG: } + [1686227478.441802][93568:93570] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686227478.441862][93568:93570] CHIP:EM: <<< [E:32787i S:33395 M:47461941 (Ack:197806201)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227478.441876][93568:93570] CHIP:IN: (S) Sending msg 47461941 on secure session with LSID: 33395 ./chip-tool basicinformation read node-label 1 0 - On TH, verify the attribute value that was modified in above step - [1655806189.835517][7250:7255] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 1238808428 - [1655806189.835566][7250:7255] CHIP:TOO: NodeLabel: new - [1655806189.835689][7250:7255] CHIP:EM: Sending Standalone Ack for MessageCounter:194887570 on exchange 10216i + On TH(chip-tool), verify the attribute value that was modified in above step + [1686227501.978361][93574:93576] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 185765149 + [1686227501.978389][93574:93576] CHIP:TOO: NodeLabel: new + [1686227501.978455][93574:93576] CHIP:EM: <<< [E:29170i S:45558 M:74376250 (Ack:214954390)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227501.978468][93574:93576] CHIP:IN: (S) Sending msg 74376250 on secure session with LSID: 45558 + [1686227501.978499][93574:93576] CHIP:EM: Flushed pending ack for MessageCounter:214954390 on exchange 29170i disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type unsigned integer. +" + "Step 5: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type unsigned integer. +" PICS: MCORE.IDM.S.Attribute_W.DataType_UnsignedInteger verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -184,347 +198,396 @@ tests: ./chip-tool any write-by-id 0x0008 0x0010 1 1 1 - On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. - - [1649152567.635323][16212:16217] CHIP:DMG: WriteResponseMessage = - [1649152567.635361][16212:16217] CHIP:DMG: { - [1649152567.635394][16212:16217] CHIP:DMG: AttributeStatusIBs = - [1649152567.635441][16212:16217] CHIP:DMG: [ - [1649152567.635479][16212:16217] CHIP:DMG: AttributeStatusIB = - [1649152567.635524][16212:16217] CHIP:DMG: { - [1649152567.635565][16212:16217] CHIP:DMG: AttributePathIB = - [1649152567.635612][16212:16217] CHIP:DMG: { - [1649152567.635659][16212:16217] CHIP:DMG: Endpoint = 0x1, - [1649152567.635710][16212:16217] CHIP:DMG: Cluster = 0x8, - [1649152567.635761][16212:16217] CHIP:DMG: Attribute = 0x0000_0010, - [1649152567.635812][16212:16217] CHIP:DMG: } - [1649152567.635868][16212:16217] CHIP:DMG: - [1649152567.635911][16212:16217] CHIP:DMG: StatusIB = - [1649152567.635963][16212:16217] CHIP:DMG: { - [1649152567.636009][16212:16217] CHIP:DMG: status = 0x00 (SUCCESS), - [1649152567.636056][16212:16217] CHIP:DMG: }, - [1649152567.636103][16212:16217] CHIP:DMG: - [1649152567.636145][16212:16217] CHIP:DMG: }, - [1649152567.636193][16212:16217] CHIP:DMG: - [1649152567.636229][16212:16217] CHIP:DMG: ], - [1649152567.636274][16212:16217] CHIP:DMG: - [1649152567.636309][16212:16217] CHIP:DMG: InteractionModelRevision = 1 - [1649152567.636344][16212:16217] CHIP:DMG: } + On TH(chip-tool), verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified + . + [1686227533.524466][93582:93584] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686227533.524486][93582:93584] CHIP:DMG: WriteResponseMessage = + [1686227533.524494][93582:93584] CHIP:DMG: { + [1686227533.524499][93582:93584] CHIP:DMG: AttributeStatusIBs = + [1686227533.524511][93582:93584] CHIP:DMG: [ + [1686227533.524518][93582:93584] CHIP:DMG: AttributeStatusIB = + [1686227533.524526][93582:93584] CHIP:DMG: { + [1686227533.524532][93582:93584] CHIP:DMG: AttributePathIB = + [1686227533.524540][93582:93584] CHIP:DMG: { + [1686227533.524548][93582:93584] CHIP:DMG: Endpoint = 0x1, + [1686227533.524557][93582:93584] CHIP:DMG: Cluster = 0x8, + [1686227533.524569][93582:93584] CHIP:DMG: Attribute = 0x0000_0010, + [1686227533.524578][93582:93584] CHIP:DMG: } + [1686227533.524594][93582:93584] CHIP:DMG: + [1686227533.524602][93582:93584] CHIP:DMG: StatusIB = + [1686227533.524613][93582:93584] CHIP:DMG: { + [1686227533.524623][93582:93584] CHIP:DMG: status = 0x00 (SUCCESS), + [1686227533.524631][93582:93584] CHIP:DMG: }, + [1686227533.524642][93582:93584] CHIP:DMG: + [1686227533.524650][93582:93584] CHIP:DMG: }, + [1686227533.524663][93582:93584] CHIP:DMG: + [1686227533.524671][93582:93584] CHIP:DMG: ], + [1686227533.524687][93582:93584] CHIP:DMG: + [1686227533.524696][93582:93584] CHIP:DMG: InteractionModelRevision = 1 + [1686227533.524704][93582:93584] CHIP:DMG: } + [1686227533.524757][93582:93584] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686227533.524813][93582:93584] CHIP:EM: <<< [E:15629i S:6628 M:136377778 (Ack:209182191)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227533.524829][93582:93584] CHIP:IN: (S) Sending msg 136377778 on secure session with LSID: 6628 + [1686227533.524863][93582:93584] CHIP:EM: Flushed pending ack for MessageCounter:209182191 on exchange 15629i ./chip-tool any read-by-id 0x0008 0x0010 1 1 - On TH, verify the attribute value that was modified in above step + On TH(chip-tool), verify the attribute value that was modified in above step - [1655201286.054743][3608:3613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 3958539602 - [1655201286.054836][3608:3613] CHIP:TOO: on off transition time: 1 - [1655201286.054941][3608:3613] CHIP:EM: Sending Standalone Ack for MessageCounter:21225916 on exchange 58998i + [1686227548.116523][93586:93588] CHIP:DMG: SuppressResponse = true, + [1686227548.116529][93586:93588] CHIP:DMG: InteractionModelRevision = 1 + [1686227548.116535][93586:93588] CHIP:DMG: } + [1686227548.116609][93586:93588] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 2737039618 + [1686227548.116636][93586:93588] CHIP:TOO: OnOffTransitionTime: 1 + [1686227548.116703][93586:93588] CHIP:EM: <<< [E:64210i S:49851 M:254732060 (Ack:63722332)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227548.116717][93586:93588] CHIP:IN: (S) Sending msg 254732060 on secure session with LSID: 49851 + [1686227548.116762][93586:93588] CHIP:EM: Flushed pending ack for MessageCounter:63722332 on exchange 64210i disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type signed integer. +" + "Step 6: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type signed integer. +" PICS: MCORE.IDM.S.Attribute_W.DataType_SignedInteger verification: | DUT implementation required to verify write an attribute of data type signed integer. - If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type floating point. +" + "Step 7: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type floating point. +" PICS: MCORE.IDM.S.Attribute_W.DataType_FloatingPoint verification: | DUT implementation required to verify write an attribute of data type float - If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type Octet String. +" + "Step 8: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type Octet String. +" PICS: MCORE.IDM.S.Attribute_W.DataType_OctetString verification: | DUT implementation required to verify write an attribute of data type Octet String - If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type Struct. +" + "Step 9: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type Struct. +" PICS: MCORE.IDM.S.Attribute_W.DataType_Struct verification: | DUT implementation required to verify write an attribute ofdata type Struct - If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type List. +" + "Step 10: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type List. +" PICS: MCORE.IDM.S.Attribute_W.DataType_List verification: | DUT implementation required to verify write an attribute of data type List - If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type enum. +" + "Step 11: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type enum. +" PICS: MCORE.IDM.S.Attribute_W.DataType_Enum verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool any write-by-id 0x0204 0 1 1 1 - On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. - - [1649152707.514290][16226:16231] CHIP:DMG: WriteResponseMessage = - [1649152707.514324][16226:16231] CHIP:DMG: { - [1649152707.514354][16226:16231] CHIP:DMG: AttributeStatusIBs = - [1649152707.514396][16226:16231] CHIP:DMG: [ - [1649152707.514429][16226:16231] CHIP:DMG: AttributeStatusIB = - [1649152707.514476][16226:16231] CHIP:DMG: { - [1649152707.514511][16226:16231] CHIP:DMG: AttributePathIB = - [1649152707.514553][16226:16231] CHIP:DMG: { - [1649152707.514600][16226:16231] CHIP:DMG: Endpoint = 0x1, - [1649152707.514646][16226:16231] CHIP:DMG: Cluster = 0x204, - [1649152707.514691][16226:16231] CHIP:DMG: Attribute = 0x0000_0000, - [1649152707.514734][16226:16231] CHIP:DMG: } - [1649152707.514781][16226:16231] CHIP:DMG: - [1649152707.514820][16226:16231] CHIP:DMG: StatusIB = - [1649152707.514867][16226:16231] CHIP:DMG: { - [1649152707.514908][16226:16231] CHIP:DMG: status = 0x00 (SUCCESS), - [1649152707.514995][16226:16231] CHIP:DMG: }, - [1649152707.515038][16226:16231] CHIP:DMG: - [1649152707.515072][16226:16231] CHIP:DMG: }, - [1649152707.515113][16226:16231] CHIP:DMG: - [1649152707.515145][16226:16231] CHIP:DMG: ], - [1649152707.515186][16226:16231] CHIP:DMG: - [1649152707.515218][16226:16231] CHIP:DMG: InteractionModelRevision = 1 - [1649152707.515250][16226:16231] CHIP:DMG: } - [1649152707.515374][16226:16231] CHIP:DMG: WriteClient moving to [AwaitingDe] + On TH(chip-tool), verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. + + [1686227640.711454][93605:93607] CHIP:EM: Rxd Ack; Removing MessageCounter:162563726 from Retrans Table on exchange 60625i + [1686227640.711460][93605:93607] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686227640.711471][93605:93607] CHIP:DMG: WriteResponseMessage = + [1686227640.711475][93605:93607] CHIP:DMG: { + [1686227640.711477][93605:93607] CHIP:DMG: AttributeStatusIBs = + [1686227640.711483][93605:93607] CHIP:DMG: [ + [1686227640.711486][93605:93607] CHIP:DMG: AttributeStatusIB = + [1686227640.711491][93605:93607] CHIP:DMG: { + [1686227640.711494][93605:93607] CHIP:DMG: AttributePathIB = + [1686227640.711498][93605:93607] CHIP:DMG: { + [1686227640.711501][93605:93607] CHIP:DMG: Endpoint = 0x1, + [1686227640.711505][93605:93607] CHIP:DMG: Cluster = 0x204, + [1686227640.711509][93605:93607] CHIP:DMG: Attribute = 0x0000_0000, + [1686227640.711512][93605:93607] CHIP:DMG: } + [1686227640.711517][93605:93607] CHIP:DMG: + [1686227640.711521][93605:93607] CHIP:DMG: StatusIB = + [1686227640.711525][93605:93607] CHIP:DMG: { + [1686227640.711528][93605:93607] CHIP:DMG: status = 0x00 (SUCCESS), + [1686227640.711532][93605:93607] CHIP:DMG: }, + [1686227640.711535][93605:93607] CHIP:DMG: + [1686227640.711538][93605:93607] CHIP:DMG: }, + [1686227640.711542][93605:93607] CHIP:DMG: + [1686227640.711545][93605:93607] CHIP:DMG: ], + [1686227640.711550][93605:93607] CHIP:DMG: + [1686227640.711553][93605:93607] CHIP:DMG: InteractionModelRevision = 1 + [1686227640.711556][93605:93607] CHIP:DMG: } + [1686227640.711575][93605:93607] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686227640.711599][93605:93607] CHIP:EM: <<< [E:60625i S:30735 M:162563727 (Ack:54853584)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227640.711605][93605:93607] CHIP:IN: (S) Sending msg 162563727 on secure session with LSID: 30735 + ./chip-tool any read-by-id 0x0204 0 1 1 - [1655201353.941835][3634:3639] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 263686993 - [1655201353.941926][3634:3639] CHIP:TOO: temperature display mode: 1 - [1655201353.942030][3634:3639] CHIP:EM: Sending Standalone Ack for MessageCounter:58103180 on exchange 16578i + On TH(chip-tool), verify the attribute value that was modified in above step + [1686227658.643633][93610:93612] CHIP:DMG: SuppressResponse = true, + [1686227658.643643][93610:93612] CHIP:DMG: InteractionModelRevision = 1 + [1686227658.643651][93610:93612] CHIP:DMG: } + [1686227658.643729][93610:93612] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 1939013916 + [1686227658.643765][93610:93612] CHIP:TOO: TemperatureDisplayMode: 1 + [1686227658.643826][93610:93612] CHIP:EM: <<< [E:7325i S:64158 M:55416058 (Ack:52160854)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227658.643840][93610:93612] CHIP:IN: (S) Sending msg 55416058 on secure session with LSID: 64158 + [1686227658.643872][93610:93612] CHIP:EM: Flushed pending ack for MessageCounter:52160854 on exchange 7325i disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute of - data type bitmap. +" + "Step 12: TH sends the WriteRequestMessage to the DUT to write an + attribute of data type bitmap. +" PICS: MCORE.IDM.S.Attribute_W.DataType_Bitmap verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool colorcontrol write-by-id 0x000f 1 1 1 - On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. - - [1649152768.817940][16237:16242] CHIP:DMG: WriteResponseMessage = - [1649152768.817971][16237:16242] CHIP:DMG: { - [1649152768.817999][16237:16242] CHIP:DMG: AttributeStatusIBs = - [1649152768.818038][16237:16242] CHIP:DMG: [ - [1649152768.818068][16237:16242] CHIP:DMG: AttributeStatusIB = - [1649152768.818111][16237:16242] CHIP:DMG: { - [1649152768.818146][16237:16242] CHIP:DMG: AttributePathIB = - [1649152768.818188][16237:16242] CHIP:DMG: { - [1649152768.818230][16237:16242] CHIP:DMG: Endpoint = 0x1, - [1649152768.818275][16237:16242] CHIP:DMG: Cluster = 0x300, - [1649152768.818317][16237:16242] CHIP:DMG: Attribute = 0x0000_000F, - [1649152768.818358][16237:16242] CHIP:DMG: } - [1649152768.818405][16237:16242] CHIP:DMG: - [1649152768.818443][16237:16242] CHIP:DMG: StatusIB = - [1649152768.818485][16237:16242] CHIP:DMG: { - [1649152768.818521][16237:16242] CHIP:DMG: status = 0x00 (SUCCESS), - [1649152768.818559][16237:16242] CHIP:DMG: }, - [1649152768.818602][16237:16242] CHIP:DMG: - [1649152768.818640][16237:16242] CHIP:DMG: }, - [1649152768.818681][16237:16242] CHIP:DMG: - [1649152768.818710][16237:16242] CHIP:DMG: ], - [1649152768.818747][16237:16242] CHIP:DMG: - [1649152768.818777][16237:16242] CHIP:DMG: InteractionModelRevision = 1 - [1649152768.818806][16237:16242] CHIP:DMG: } - [1649152768.818890][16237:16242] CHIP:DMG: WriteClient moving to [AwaitingDe] + On TH(chip-tool), verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. + + [1686227690.827192][93615:93617] CHIP:EM: Rxd Ack; Removing MessageCounter:219304504 from Retrans Table on exchange 7166i + [1686227690.827209][93615:93617] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686227690.827238][93615:93617] CHIP:DMG: WriteResponseMessage = + [1686227690.827249][93615:93617] CHIP:DMG: { + [1686227690.827255][93615:93617] CHIP:DMG: AttributeStatusIBs = + [1686227690.827265][93615:93617] CHIP:DMG: [ + [1686227690.827271][93615:93617] CHIP:DMG: AttributeStatusIB = + [1686227690.827279][93615:93617] CHIP:DMG: { + [1686227690.827285][93615:93617] CHIP:DMG: AttributePathIB = + [1686227690.827293][93615:93617] CHIP:DMG: { + [1686227690.827301][93615:93617] CHIP:DMG: Endpoint = 0x1, + [1686227690.827308][93615:93617] CHIP:DMG: Cluster = 0x300, + [1686227690.827335][93615:93617] CHIP:DMG: Attribute = 0x0000_000F, + [1686227690.827343][93615:93617] CHIP:DMG: } + [1686227690.827353][93615:93617] CHIP:DMG: + [1686227690.827360][93615:93617] CHIP:DMG: StatusIB = + [1686227690.827367][93615:93617] CHIP:DMG: { + [1686227690.827374][93615:93617] CHIP:DMG: status = 0x00 (SUCCESS), + [1686227690.827381][93615:93617] CHIP:DMG: }, + [1686227690.827388][93615:93617] CHIP:DMG: + [1686227690.827394][93615:93617] CHIP:DMG: }, + [1686227690.827404][93615:93617] CHIP:DMG: + [1686227690.827409][93615:93617] CHIP:DMG: ], + [1686227690.827419][93615:93617] CHIP:DMG: + [1686227690.827425][93615:93617] CHIP:DMG: InteractionModelRevision = 1 + [1686227690.827430][93615:93617] CHIP:DMG: } + [1686227690.827466][93615:93617] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686227690.827512][93615:93617] CHIP:EM: <<< [E:7166i S:62042 M:219304505 (Ack:75613172)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227690.827524][93615:93617] CHIP:IN: (S) Sending msg 219304505 on secure session with LSID: 62042 + [1686227690.827552][93615:93617] CHIP:EM: Flushed pending ack for MessageCounter:75613172 on exchange 7166i + ./chip-tool colorcontrol read-by-id 0x000f 1 1 - On TH, verify the attribute value that was modified in above step + On TH(chip-tool), verify the attribute value that was modified in above step - [1655201495.606584][3665:3670] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_000F DataVersion: 1452005257 - [1655201495.606671][3665:3670] CHIP:TOO: Options: 1 - [1655201495.606772][3665:3670] CHIP:EM: Sending Standalone Ack for MessageCounter:247256099 on exchange 33946i + [1686227710.429709][93622:93624] CHIP:DMG: SuppressResponse = true, + [1686227710.429715][93622:93624] CHIP:DMG: InteractionModelRevision = 1 + [1686227710.429720][93622:93624] CHIP:DMG: } + [1686227710.429791][93622:93624] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_000F DataVersion: 861636757 + [1686227710.429832][93622:93624] CHIP:TOO: Options: 1 + [1686227710.429882][93622:93624] CHIP:EM: <<< [E:4989i S:43440 M:30144210 (Ack:113240090)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227710.429894][93622:93624] CHIP:IN: (S) Sending msg 30144210 on secure session with LSID: 43440 + [1686227710.429921][93622:93624] CHIP:EM: Flushed pending ack for MessageCounter:113240090 on exchange 4989i disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write any attribute on - an unsupported node. DUT responds with the Write Response action" + "Step 13: TH sends the WriteRequestMessage to the DUT to write any + attribute on an unsupported node. DUT responds with the Write Response + action" verification: | - Out of Scope for V1.0 + Out of Scope disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write any attribute on - an unsupported Endpoint. DUT responds with the Write Response action" + "Step 14: TH sends the WriteRequestMessage to the DUT to write any + attribute on an unsupported Endpoint. DUT responds with the Write + Response action" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool levelcontrol write on-level 2 1 20 - On TH, Verify that the DUT sends the status code UNSUPPORTED_ENDPOINT for the data sent in the above command - - 1649153009.582466][16268:16273] CHIP:DMG: WriteResponseMessage = - [1649153009.582507][16268:16273] CHIP:DMG: { - [1649153009.582557][16268:16273] CHIP:DMG: AttributeStatusIBs = - [1649153009.582610][16268:16273] CHIP:DMG: [ - [1649153009.582667][16268:16273] CHIP:DMG: AttributeStatusIB = - [1649153009.582723][16268:16273] CHIP:DMG: { - [1649153009.582779][16268:16273] CHIP:DMG: AttributePathIB = - [1649153009.582831][16268:16273] CHIP:DMG: { - [1649153009.582899][16268:16273] CHIP:DMG: Endpoint = 0x14, - [1649153009.582970][16268:16273] CHIP:DMG: Cluster = 0x8, - [1649153009.583031][16268:16273] CHIP:DMG: Attribute = 0x0000_0011, - [1649153009.583087][16268:16273] CHIP:DMG: } - [1649153009.583166][16268:16273] CHIP:DMG: - [1649153009.583221][16268:16273] CHIP:DMG: StatusIB = - [1649153009.583291][16268:16273] CHIP:DMG: { - [1649153009.583362][16268:16273] CHIP:DMG: status = 0x7f (UNSUPPORTED_ENDPOINT), - [1649153009.583415][16268:16273] CHIP:DMG: }, - [1649153009.583481][16268:16273] CHIP:DMG: - [1649153009.583527][16268:16273] CHIP:DMG: }, - [1649153009.583594][16268:16273] CHIP:DMG: - [1649153009.583634][16268:16273] CHIP:DMG: ], - [1649153009.583697][16268:16273] CHIP:DMG: - [1649153009.583751][16268:16273] CHIP:DMG: InteractionModelRevision = 1 - [1649153009.583790][16268:16273] CHIP:DMG: } - [1649153009.583903][16268:16273] CHIP:TOO: Response Failure: IM Error 0x0000057F: General error: 0x7f (UNSUPPORTED_ENDPOINT) - [1649152811.554055][16246:16251] CHIP:DMG: }, + On TH(chip-tool), Verify that the DUT sends the status code UNSUPPORTED_ENDPOINT for the data sent in the above command + + [1686227733.922184][93629:93631] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686227733.922210][93629:93631] CHIP:DMG: WriteResponseMessage = + [1686227733.922219][93629:93631] CHIP:DMG: { + [1686227733.922225][93629:93631] CHIP:DMG: AttributeStatusIBs = + [1686227733.922236][93629:93631] CHIP:DMG: [ + [1686227733.922242][93629:93631] CHIP:DMG: AttributeStatusIB = + [1686227733.922250][93629:93631] CHIP:DMG: { + [1686227733.922256][93629:93631] CHIP:DMG: AttributePathIB = + [1686227733.922264][93629:93631] CHIP:DMG: { + [1686227733.922272][93629:93631] CHIP:DMG: Endpoint = 0x14, + [1686227733.922279][93629:93631] CHIP:DMG: Cluster = 0x8, + [1686227733.922287][93629:93631] CHIP:DMG: Attribute = 0x0000_0011, + [1686227733.922293][93629:93631] CHIP:DMG: } + [1686227733.922304][93629:93631] CHIP:DMG: + [1686227733.922310][93629:93631] CHIP:DMG: StatusIB = + [1686227733.922318][93629:93631] CHIP:DMG: { + [1686227733.922325][93629:93631] CHIP:DMG: status = 0x7f (UNSUPPORTED_ENDPOINT), + [1686227733.922332][93629:93631] CHIP:DMG: }, + [1686227733.922339][93629:93631] CHIP:DMG: + [1686227733.922345][93629:93631] CHIP:DMG: }, + [1686227733.922354][93629:93631] CHIP:DMG: + [1686227733.922359][93629:93631] CHIP:DMG: ], + [1686227733.922369][93629:93631] CHIP:DMG: + [1686227733.922375][93629:93631] CHIP:DMG: InteractionModelRevision = 1 + [1686227733.922381][93629:93631] CHIP:DMG: } + [1686227733.922415][93629:93631] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686227733.922426][93629:93631] CHIP:TOO: Response Failure: IM Error 0x0000057F: General error: 0x7f (UNSUPPORTED_ENDPOINT) + [1686227733.922472][93629:93631] CHIP:EM: <<< [E:27399i S:27512 M:260380598 (Ack:50253556)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686227733.922485][93629:93631] CHIP:IN: (S) Sending msg 260380598 on secure session with LSID: 27512 disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write any attribute on - an unsupported cluster. DUT responds with the Write Response action" + "Step 15: TH sends the WriteRequestMessage to the DUT to write any + attribute on an unsupported cluster. DUT responds with the Write + Response action" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool thermostat write unoccupied-heating-setpoint 1200 1 0 - On TH, Verify that the DUT sends the status code UNSUPPORTED_CLUSTER for the data sent in the above command - - [1650618880.286103][2741:2746] CHIP:DMG: WriteResponseMessage = - [1650618880.286161][2741:2746] CHIP:DMG: { - [1650618880.286210][2741:2746] CHIP:DMG: AttributeStatusIBs = - [1650618880.286280][2741:2746] CHIP:DMG: [ - [1650618880.286334][2741:2746] CHIP:DMG: AttributeStatusIB = - [1650618880.286399][2741:2746] CHIP:DMG: { - [1650618880.286456][2741:2746] CHIP:DMG: AttributePathIB = - [1650618880.286540][2741:2746] CHIP:DMG: { - [1650618880.286598][2741:2746] CHIP:DMG: Endpoint = 0x0, - [1650618880.286670][2741:2746] CHIP:DMG: Cluster = 0x201, - [1650618880.286736][2741:2746] CHIP:DMG: Attribute = 0x0000_0014, - [1650618880.286809][2741:2746] CHIP:DMG: } - [1650618880.286892][2741:2746] CHIP:DMG: - [1650618880.286955][2741:2746] CHIP:DMG: StatusIB = - [1650618880.287015][2741:2746] CHIP:DMG: { - [1650618880.287080][2741:2746] CHIP:DMG: status = 0xc3 (UNSUPPORTED_CLUSTER), - [1650618880.287144][2741:2746] CHIP:DMG: }, - [1650618880.287208][2741:2746] CHIP:DMG: - [1650618880.287267][2741:2746] CHIP:DMG: }, - [1650618880.287328][2741:2746] CHIP:DMG: - [1650618880.287377][2741:2746] CHIP:DMG: ], - [1650618880.287440][2741:2746] CHIP:DMG: - [1650618880.287489][2741:2746] CHIP:DMG: InteractionModelRevision = 1 - [1650618880.287538][2741:2746] CHIP:DMG: } - [1650618880.287657][2741:2746] CHIP:TOO: Response Failure: IM Error 0x000005C3: General error: 0xc3 (UNSUPPORTED_CLUSTER) - [1650618880.287735][2741:2746] CHIP:DMG: WriteClient moving to [AwaitingDe] + On TH(chip-tool), Verify that the DUT sends the status code UNSUPPORTED_CLUSTER for the data sent in the above command + + + [1686229393.093998][94065:94067] CHIP:EM: Rxd Ack; Removing MessageCounter:56487501 from Retrans Table on exchange 60736i + [1686229393.094012][94065:94067] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686229393.094033][94065:94067] CHIP:DMG: WriteResponseMessage = + [1686229393.094041][94065:94067] CHIP:DMG: { + [1686229393.094047][94065:94067] CHIP:DMG: AttributeStatusIBs = + [1686229393.094058][94065:94067] CHIP:DMG: [ + [1686229393.094064][94065:94067] CHIP:DMG: AttributeStatusIB = + [1686229393.094072][94065:94067] CHIP:DMG: { + [1686229393.094079][94065:94067] CHIP:DMG: AttributePathIB = + [1686229393.094093][94065:94067] CHIP:DMG: { + [1686229393.094096][94065:94067] CHIP:DMG: Endpoint = 0x0, + [1686229393.094098][94065:94067] CHIP:DMG: Cluster = 0x201, + [1686229393.094101][94065:94067] CHIP:DMG: Attribute = 0x0000_0014, + [1686229393.094103][94065:94067] CHIP:DMG: } + [1686229393.094106][94065:94067] CHIP:DMG: + [1686229393.094108][94065:94067] CHIP:DMG: StatusIB = + [1686229393.094110][94065:94067] CHIP:DMG: { + [1686229393.094112][94065:94067] CHIP:DMG: status = 0xc3 (UNSUPPORTED_CLUSTER), + [1686229393.094114][94065:94067] CHIP:DMG: }, + [1686229393.094117][94065:94067] CHIP:DMG: + [1686229393.094118][94065:94067] CHIP:DMG: }, + [1686229393.094121][94065:94067] CHIP:DMG: + [1686229393.094123][94065:94067] CHIP:DMG: ], + [1686229393.094126][94065:94067] CHIP:DMG: + [1686229393.094128][94065:94067] CHIP:DMG: InteractionModelRevision = 1 + [1686229393.094129][94065:94067] CHIP:DMG: } + [1686229393.094140][94065:94067] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686229393.094144][94065:94067] CHIP:TOO: Response Failure: IM Error 0x000005C3: General error: 0xc3 (UNSUPPORTED_CLUSTER) + [1686229393.094163][94065:94067] CHIP:EM: <<< [E:60736i S:49727 M:56487502 (Ack:119439349)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229393.094167][94065:94067] CHIP:IN: (S) Sending msg 56487502 on secure session with LSID: 49727 disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an unsupported - attribute DUT responds with the Write Response action" + "Step 16: TH sends the WriteRequestMessage to the DUT to write an + unsupported attribute DUT responds with the Write Response action" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool thermostat write unoccupied-heating-setpoint 1200 1 1 - On TH, Verify that the DUT sends the status code UNSUPPORTED_ATTRIBUTE for the data sent in the above command - - [1650618819.921180][2730:2735] CHIP:DMG: WriteResponseMessage = - [1650618819.921212][2730:2735] CHIP:DMG: { - [1650618819.921237][2730:2735] CHIP:DMG: AttributeStatusIBs = - [1650618819.921273][2730:2735] CHIP:DMG: [ - [1650618819.921303][2730:2735] CHIP:DMG: AttributeStatusIB = - [1650618819.921334][2730:2735] CHIP:DMG: { - [1650618819.921364][2730:2735] CHIP:DMG: AttributePathIB = - [1650618819.921400][2730:2735] CHIP:DMG: { - [1650618819.921436][2730:2735] CHIP:DMG: Endpoint = 0x1, - [1650618819.921473][2730:2735] CHIP:DMG: Cluster = 0x201, - [1650618819.921508][2730:2735] CHIP:DMG: Attribute = 0x0000_0014, - [1650618819.921543][2730:2735] CHIP:DMG: } - [1650618819.921586][2730:2735] CHIP:DMG: - [1650618819.921619][2730:2735] CHIP:DMG: StatusIB = - [1650618819.921654][2730:2735] CHIP:DMG: { - [1650618819.921692][2730:2735] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), - [1650618819.921733][2730:2735] CHIP:DMG: }, - [1650618819.921773][2730:2735] CHIP:DMG: - [1650618819.921806][2730:2735] CHIP:DMG: }, - [1650618819.921843][2730:2735] CHIP:DMG: - [1650618819.921870][2730:2735] CHIP:DMG: ], - [1650618819.921905][2730:2735] CHIP:DMG: - [1650618819.921932][2730:2735] CHIP:DMG: InteractionModelRevision = 1 - [1650618819.921961][2730:2735] CHIP:DMG: } - [1650618819.922034][2730:2735] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) - [1650618819.922076][2730:2735] CHIP:DMG: WriteClient moving to [AwaitingDe] + On TH(chip-tool), Verify that the DUT sends the status code UNSUPPORTED_ATTRIBUTE for the data sent in the above command + + [1686228971.778055][93969:93971] CHIP:DMG: WriteResponseMessage = + [1686228971.778062][93969:93971] CHIP:DMG: { + [1686228971.778067][93969:93971] CHIP:DMG: AttributeStatusIBs = + [1686228971.778078][93969:93971] CHIP:DMG: [ + [1686228971.778084][93969:93971] CHIP:DMG: AttributeStatusIB = + [1686228971.778091][93969:93971] CHIP:DMG: { + [1686228971.778097][93969:93971] CHIP:DMG: AttributePathIB = + [1686228971.778107][93969:93971] CHIP:DMG: { + [1686228971.778116][93969:93971] CHIP:DMG: Endpoint = 0x1, + [1686228971.778125][93969:93971] CHIP:DMG: Cluster = 0x201, + [1686228971.778133][93969:93971] CHIP:DMG: Attribute = 0x0000_0014, + [1686228971.778140][93969:93971] CHIP:DMG: } + [1686228971.778150][93969:93971] CHIP:DMG: + [1686228971.778157][93969:93971] CHIP:DMG: StatusIB = + [1686228971.778167][93969:93971] CHIP:DMG: { + [1686228971.778175][93969:93971] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1686228971.778182][93969:93971] CHIP:DMG: }, + [1686228971.778193][93969:93971] CHIP:DMG: + [1686228971.778199][93969:93971] CHIP:DMG: }, + [1686228971.778210][93969:93971] CHIP:DMG: + [1686228971.778216][93969:93971] CHIP:DMG: ], + [1686228971.778227][93969:93971] CHIP:DMG: + [1686228971.778233][93969:93971] CHIP:DMG: InteractionModelRevision = 1 + [1686228971.778241][93969:93971] CHIP:DMG: } + [1686228971.778277][93969:93971] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686228971.778288][93969:93971] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) + [1686228971.778336][93969:93971] CHIP:EM: <<< [E:10343i S:64864 M:48035208 (Ack:227000243)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686228971.778349][93969:93971] CHIP:IN: (S) Sending msg 48035208 on secure session with LSID: 64864 disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write an attribute - which is not writable. DUT responds with the Write Response action" + "Step 17: TH sends the WriteRequestMessage to the DUT to write an + attribute which is not writable. DUT responds with the Write Response + action" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool basicinformation write-by-id 0x7 2 1 0 - On TH, Verify that the DUT sends the status code UNSUPPORTED_WRITE for the data sent in the above command - - [1655201693.989436][3767:3772] CHIP:DMG: WriteResponseMessage = - [1655201693.989472][3767:3772] CHIP:DMG: { - [1655201693.989504][3767:3772] CHIP:DMG: AttributeStatusIBs = - [1655201693.989548][3767:3772] CHIP:DMG: [ - [1655201693.989584][3767:3772] CHIP:DMG: AttributeStatusIB = - [1655201693.989673][3767:3772] CHIP:DMG: { - [1655201693.989715][3767:3772] CHIP:DMG: AttributePathIB = - [1655201693.989762][3767:3772] CHIP:DMG: { - [1655201693.989810][3767:3772] CHIP:DMG: Endpoint = 0x0, - [1655201693.989859][3767:3772] CHIP:DMG: Cluster = 0x28, - [1655201693.989912][3767:3772] CHIP:DMG: Attribute = 0x0000_0007, - [1655201693.989962][3767:3772] CHIP:DMG: } - [1655201693.990012][3767:3772] CHIP:DMG: - [1655201693.990058][3767:3772] CHIP:DMG: StatusIB = - [1655201693.990105][3767:3772] CHIP:DMG: { - [1655201693.990149][3767:3772] CHIP:DMG: status = 0x88 (UNSUPPORTED_WRITE), - [1655201693.990196][3767:3772] CHIP:DMG: }, - [1655201693.990240][3767:3772] CHIP:DMG: - [1655201693.990277][3767:3772] CHIP:DMG: }, - [1655201693.990320][3767:3772] CHIP:DMG: - [1655201693.990355][3767:3772] CHIP:DMG: ], - [1655201693.990398][3767:3772] CHIP:DMG: - [1655201693.990433][3767:3772] CHIP:DMG: InteractionModelRevision = 1 - [1655201693.990467][3767:3772] CHIP:DMG: } - [1655201693.990561][3767:3772] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1655201693.990608][3767:3772] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) - [1655201693.990677][3767:3772] CHIP:EM: Sending Standalone Ack for MessageCounter:106116162 on exchange 12372i + On TH(chip-tool), Verify that the DUT sends the status code UNSUPPORTED_WRITE for the data sent in the above command + [1686228740.233737][93918:93920] CHIP:EM: Rxd Ack; Removing MessageCounter:66123757 from Retrans Table on exchange 61024i + [1686228740.233753][93918:93920] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686228740.233781][93918:93920] CHIP:DMG: WriteResponseMessage = + [1686228740.233792][93918:93920] CHIP:DMG: { + [1686228740.233802][93918:93920] CHIP:DMG: AttributeStatusIBs = + [1686228740.233820][93918:93920] CHIP:DMG: [ + [1686228740.233828][93918:93920] CHIP:DMG: AttributeStatusIB = + [1686228740.233840][93918:93920] CHIP:DMG: { + [1686228740.233849][93918:93920] CHIP:DMG: AttributePathIB = + [1686228740.233861][93918:93920] CHIP:DMG: { + [1686228740.233872][93918:93920] CHIP:DMG: Endpoint = 0x0, + [1686228740.233884][93918:93920] CHIP:DMG: Cluster = 0x28, + [1686228740.233896][93918:93920] CHIP:DMG: Attribute = 0x0000_0007, + [1686228740.233905][93918:93920] CHIP:DMG: } + [1686228740.233921][93918:93920] CHIP:DMG: + [1686228740.233931][93918:93920] CHIP:DMG: StatusIB = + [1686228740.233943][93918:93920] CHIP:DMG: { + [1686228740.233954][93918:93920] CHIP:DMG: status = 0x88 (UNSUPPORTED_WRITE), + [1686228740.233964][93918:93920] CHIP:DMG: }, + [1686228740.233976][93918:93920] CHIP:DMG: + [1686228740.233984][93918:93920] CHIP:DMG: }, + [1686228740.233999][93918:93920] CHIP:DMG: + [1686228740.234007][93918:93920] CHIP:DMG: ], + [1686228740.234023][93918:93920] CHIP:DMG: + [1686228740.234031][93918:93920] CHIP:DMG: InteractionModelRevision = 1 + [1686228740.234039][93918:93920] CHIP:DMG: } + [1686228740.234097][93918:93920] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686228740.234112][93918:93920] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) + [1686228740.234163][93918:93920] CHIP:EM: <<< [E:61024i S:25919 M:66123758 (Ack:248380744)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686228740.234179][93918:93920] CHIP:IN: (S) Sending msg 66123758 on secure session with LSID: 25919 disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write to an attribute - in the path that requires a privilege that is not granted for the - cluster in the path. DUT responds with the Write Response action" + "Step 18: TH sends the WriteRequestMessage to the DUT to write to an + attribute in the path that requires a privilege that is not granted + for the cluster in the path. DUT responds with the Write Response + action" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. @@ -532,62 +595,92 @@ tests: To Setup the TH such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except identify cluster command if try to send any other command will get status as unsupported access. - ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0 - - [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage = - [1659419722.669657][1915:1920] CHIP:DMG: { - [1659419722.669687][1915:1920] CHIP:DMG: AttributeStatusIBs = - [1659419722.669727][1915:1920] CHIP:DMG: [ - [1659419722.669758][1915:1920] CHIP:DMG: AttributeStatusIB = - [1659419722.669796][1915:1920] CHIP:DMG: { - [1659419722.669833][1915:1920] CHIP:DMG: AttributePathIB = - [1659419722.669871][1915:1920] CHIP:DMG: { - [1659419722.669912][1915:1920] CHIP:DMG: Endpoint = 0x0, - [1659419722.669953][1915:1920] CHIP:DMG: Cluster = 0x1f, - [1659419722.669993][1915:1920] CHIP:DMG: Attribute = 0x0000_0000, - [1659419722.670034][1915:1920] CHIP:DMG: } - [1659419722.670077][1915:1920] CHIP:DMG: - [1659419722.670114][1915:1920] CHIP:DMG: StatusIB = - [1659419722.670153][1915:1920] CHIP:DMG: { - [1659419722.670191][1915:1920] CHIP:DMG: status = 0x00 (SUCCESS), - [1659419722.670229][1915:1920] CHIP:DMG: }, - [1659419722.670266][1915:1920] CHIP:DMG: - [1659419722.670300][1915:1920] CHIP:DMG: }, - [1659419722.670343][1915:1920] CHIP:DMG: - [1659419722.670373][1915:1920] CHIP:DMG: AttributeStatusIB = - [1659419722.670405][1915:1920] CHIP:DMG: { - [1659419722.670436][1915:1920] CHIP:DMG: AttributePathIB = - [1659419722.670471][1915:1920] CHIP:DMG: { - [1659419722.670510][1915:1920] CHIP:DMG: Endpoint = 0x0, - [1659419722.670550][1915:1920] CHIP:DMG: Cluster = 0x1f, - [1659419722.670590][1915:1920] CHIP:DMG: Attribute = 0x0000_0000, - [1659419722.670661][1915:1920] CHIP:DMG: ListIndex = Null, - [1659419722.670700][1915:1920] CHIP:DMG: } - [1659419722.670740][1915:1920] CHIP:DMG: - [1659419722.670776][1915:1920] CHIP:DMG: StatusIB = - [1659419722.670813][1915:1920] CHIP:DMG: { - [1659419722.670851][1915:1920] CHIP:DMG: status = 0x00 (SUCCESS), - [1659419722.670888][1915:1920] CHIP:DMG: }, - [1659419722.670925][1915:1920] CHIP:DMG: - [1659419722.670958][1915:1920] CHIP:DMG: }, - [1659419722.670994][1915:1920] CHIP:DMG: - [1659419722.671022][1915:1920] CHIP:DMG: ], - [1659419722.671062][1915:1920] CHIP:DMG: - [1659419722.671092][1915:1920] CHIP:DMG: InteractionModelRevision = 1 - [1659419722.671120][1915:1920] CHIP:DMG: } - [1659419722.671244][1915:1920] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1659419722.671314][1915:1920] CHIP:EM: Sending Standalone Ack for MessageCounter:153124628 on - + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0 + On TH(chip-tool), Verify that the DUT sends the status code SUCCESS for the data sent in the above command + + [1686228784.940429][93932:93934] CHIP:EM: Rxd Ack; Removing MessageCounter:76693936 from Retrans Table on exchange 64135i + [1686228784.940441][93932:93934] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686228784.940463][93932:93934] CHIP:DMG: WriteResponseMessage = + [1686228784.940471][93932:93934] CHIP:DMG: { + [1686228784.940477][93932:93934] CHIP:DMG: AttributeStatusIBs = + [1686228784.940489][93932:93934] CHIP:DMG: [ + [1686228784.940495][93932:93934] CHIP:DMG: AttributeStatusIB = + [1686228784.940505][93932:93934] CHIP:DMG: { + [1686228784.940511][93932:93934] CHIP:DMG: AttributePathIB = + [1686228784.940521][93932:93934] CHIP:DMG: { + [1686228784.940529][93932:93934] CHIP:DMG: Endpoint = 0x0, + [1686228784.940536][93932:93934] CHIP:DMG: Cluster = 0x1f, + [1686228784.940543][93932:93934] CHIP:DMG: Attribute = 0x0000_0000, + [1686228784.940550][93932:93934] CHIP:DMG: } + [1686228784.940559][93932:93934] CHIP:DMG: + [1686228784.940566][93932:93934] CHIP:DMG: StatusIB = + [1686228784.940574][93932:93934] CHIP:DMG: { + [1686228784.940581][93932:93934] CHIP:DMG: status = 0x00 (SUCCESS), + [1686228784.940588][93932:93934] CHIP:DMG: }, + [1686228784.940596][93932:93934] CHIP:DMG: + [1686228784.940602][93932:93934] CHIP:DMG: }, + [1686228784.940617][93932:93934] CHIP:DMG: + [1686228784.940622][93932:93934] CHIP:DMG: AttributeStatusIB = + [1686228784.940634][93932:93934] CHIP:DMG: { + [1686228784.940640][93932:93934] CHIP:DMG: AttributePathIB = + [1686228784.940649][93932:93934] CHIP:DMG: { + [1686228784.940656][93932:93934] CHIP:DMG: Endpoint = 0x0, + [1686228784.940663][93932:93934] CHIP:DMG: Cluster = 0x1f, + [1686228784.940671][93932:93934] CHIP:DMG: Attribute = 0x0000_0000, + [1686228784.940678][93932:93934] CHIP:DMG: ListIndex = Null, + [1686228784.940684][93932:93934] CHIP:DMG: } + [1686228784.940694][93932:93934] CHIP:DMG: + [1686228784.940700][93932:93934] CHIP:DMG: StatusIB = + [1686228784.940710][93932:93934] CHIP:DMG: { + [1686228784.940716][93932:93934] CHIP:DMG: status = 0x00 (SUCCESS), + [1686228784.940723][93932:93934] CHIP:DMG: }, + [1686228784.940731][93932:93934] CHIP:DMG: + [1686228784.940737][93932:93934] CHIP:DMG: }, + [1686228784.940745][93932:93934] CHIP:DMG: + [1686228784.940750][93932:93934] CHIP:DMG: ], + [1686228784.940764][93932:93934] CHIP:DMG: + [1686228784.940770][93932:93934] CHIP:DMG: InteractionModelRevision = 1 + [1686228784.940776][93932:93934] CHIP:DMG: } + [1686228784.940829][93932:93934] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686228784.940885][93932:93934] CHIP:EM: <<< [E:64135i S:62987 M:76693937 (Ack:102817138)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686228784.940898][93932:93934] CHIP:IN: (S) Sending msg 76693937 on secure session with LSID: 62987 ./chip-tool thermostatuserinterfaceconfiguration write temperature-display-mode 2 1 1 - On TH, verify DUT responds as UNSUPPORTED_ACCESS for the data sent in the above command + On TH(chip-tool), verify DUT responds as UNSUPPORTED_ACCESS for the data sent in the above command + + [1686228802.122972][93936:93938] CHIP:EM: Found matching exchange: 53939i, Delegate: 0x7f7c6800a110 + [1686228802.122988][93936:93938] CHIP:EM: Rxd Ack; Removing MessageCounter:122202978 from Retrans Table on exchange 53939i + [1686228802.123003][93936:93938] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686228802.123032][93936:93938] CHIP:DMG: WriteResponseMessage = + [1686228802.123042][93936:93938] CHIP:DMG: { + [1686228802.123051][93936:93938] CHIP:DMG: AttributeStatusIBs = + [1686228802.123062][93936:93938] CHIP:DMG: [ + [1686228802.123068][93936:93938] CHIP:DMG: AttributeStatusIB = + [1686228802.123076][93936:93938] CHIP:DMG: { + [1686228802.123082][93936:93938] CHIP:DMG: AttributePathIB = + [1686228802.123089][93936:93938] CHIP:DMG: { + [1686228802.123097][93936:93938] CHIP:DMG: Endpoint = 0x1, + [1686228802.123105][93936:93938] CHIP:DMG: Cluster = 0x204, + [1686228802.123112][93936:93938] CHIP:DMG: Attribute = 0x0000_0000, + [1686228802.123118][93936:93938] CHIP:DMG: } + [1686228802.123128][93936:93938] CHIP:DMG: + [1686228802.123135][93936:93938] CHIP:DMG: StatusIB = + [1686228802.123142][93936:93938] CHIP:DMG: { + [1686228802.123149][93936:93938] CHIP:DMG: status = 0x7e (UNSUPPORTED_ACCESS), + [1686228802.123156][93936:93938] CHIP:DMG: }, + [1686228802.123163][93936:93938] CHIP:DMG: + [1686228802.123169][93936:93938] CHIP:DMG: }, + [1686228802.123178][93936:93938] CHIP:DMG: + [1686228802.123184][93936:93938] CHIP:DMG: ], + [1686228802.123194][93936:93938] CHIP:DMG: + [1686228802.123200][93936:93938] CHIP:DMG: InteractionModelRevision = 1 + [1686228802.123206][93936:93938] CHIP:DMG: } + [1686228802.123240][93936:93938] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686228802.123252][93936:93938] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS) + [1686228802.123296][93936:93938] CHIP:EM: <<< [E:53939i S:28636 M:122202979 (Ack:226501783)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) - [1659422521.638063][2076:2081] CHIP:DMG: } - [1659422521.638147][2076:2081] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1659422521.638185][2076:2081] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS) - [1659422521.638246][2076:2081] CHIP:EM: Sending Standalone Ack for MessageCounter:223304501 on exchange 20701i With the above command, we are overwriting the default privilege that chip-tool has as an admin. After this test step you need to send below mentioned command to Grant access to all clusters again. @@ -596,179 +689,184 @@ tests: disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to write one attribute on - a given cluster and endpoint. Repeat the above steps 3 times." + "Step 19: TH sends the WriteRequestMessage to the DUT to write one + attribute on a given cluster and endpoint. Repeat the above steps 3 + times." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool levelcontrol write on-level 2 1 1 + On TH(chip-tool), verify that DUT sends a Write Response message with a success + [1686229097.486513][93998:94000] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686229097.486533][93998:94000] CHIP:DMG: WriteResponseMessage = + [1686229097.486541][93998:94000] CHIP:DMG: { + [1686229097.486547][93998:94000] CHIP:DMG: AttributeStatusIBs = + [1686229097.486558][93998:94000] CHIP:DMG: [ + [1686229097.486564][93998:94000] CHIP:DMG: AttributeStatusIB = + [1686229097.486572][93998:94000] CHIP:DMG: { + [1686229097.486578][93998:94000] CHIP:DMG: AttributePathIB = + [1686229097.486587][93998:94000] CHIP:DMG: { + [1686229097.486595][93998:94000] CHIP:DMG: Endpoint = 0x1, + [1686229097.486602][93998:94000] CHIP:DMG: Cluster = 0x8, + [1686229097.486610][93998:94000] CHIP:DMG: Attribute = 0x0000_0011, + [1686229097.486617][93998:94000] CHIP:DMG: } + [1686229097.486627][93998:94000] CHIP:DMG: + [1686229097.486633][93998:94000] CHIP:DMG: StatusIB = + [1686229097.486641][93998:94000] CHIP:DMG: { + [1686229097.486648][93998:94000] CHIP:DMG: status = 0x00 (SUCCESS), + [1686229097.486655][93998:94000] CHIP:DMG: }, + [1686229097.486663][93998:94000] CHIP:DMG: + [1686229097.486669][93998:94000] CHIP:DMG: }, + [1686229097.486678][93998:94000] CHIP:DMG: + [1686229097.486683][93998:94000] CHIP:DMG: ], + [1686229097.486693][93998:94000] CHIP:DMG: + [1686229097.486700][93998:94000] CHIP:DMG: InteractionModelRevision = 1 + [1686229097.486705][93998:94000] CHIP:DMG: } + [1686229097.486740][93998:94000] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686229097.486782][93998:94000] CHIP:EM: <<< [E:62650i S:36885 M:97128271 (Ack:174259114)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229097.486794][93998:94000] CHIP:IN: (S) Sending msg 97128271 on secure session with LSID: 36885 Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. - [1653028376.099679][6518:6523] CHIP:DMG: WriteResponseMessage = - [1653028376.099696][6518:6523] CHIP:DMG: { - [1653028376.099710][6518:6523] CHIP:DMG: AttributeStatusIBs = - [1653028376.099814][6518:6523] CHIP:DMG: [ - [1653028376.099831][6518:6523] CHIP:DMG: AttributeStatusIB = - [1653028376.099849][6518:6523] CHIP:DMG: { - [1653028376.099864][6518:6523] CHIP:DMG: AttributePathIB = - [1653028376.099882][6518:6523] CHIP:DMG: { - [1653028376.099900][6518:6523] CHIP:DMG: Endpoint = 0x1, - [1653028376.099917][6518:6523] CHIP:DMG: Cluster = 0x8, - [1653028376.099935][6518:6523] CHIP:DMG: Attribute = 0x0000_0011, - [1653028376.099952][6518:6523] CHIP:DMG: } - [1653028376.099983][6518:6523] CHIP:DMG: - [1653028376.099999][6518:6523] CHIP:DMG: StatusIB = - [1653028376.100014][6518:6523] CHIP:DMG: { - [1653028376.100031][6518:6523] CHIP:DMG: status = 0x00 (SUCCESS), - [1653028376.100047][6518:6523] CHIP:DMG: }, - [1653028376.100065][6518:6523] CHIP:DMG: - [1653028376.100080][6518:6523] CHIP:DMG: }, - [1653028376.100101][6518:6523] CHIP:DMG: - [1653028376.100115][6518:6523] CHIP:DMG: ], - [1653028376.100137][6518:6523] CHIP:DMG: - [1653028376.100152][6518:6523] CHIP:DMG: InteractionModelRevision = 1 - [1653028376.100167][6518:6523] CHIP:DMG: } - ./chip-tool levelcontrol read on-level 1 1 - - On TH, verify the attribute value that was modified in above step - - [1666869501.888524][36718:36723] CHIP:DMG: InteractionModelRevision = 1 - [1666869501.888527][36718:36723] CHIP:DMG: } - [1666869501.888551][36718:36723] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 675908054 - [1666869501.888558][36718:36723] CHIP:TOO: OnLevel: 2 - [1666869501.888582][36718:36723] CHIP:EM: <<< [E:18650i M:29255186 (Ack:60838531)] (S) Msg TX to 1:0000000000000001 [D8F1] --- Type 0000:10 (SecureChannel:StandaloneAck) - [1666869501.888587][36718:36723] CHIP:IN: (S) Sending msg 29255186 on secure session with LSID: 21445 - - - + On TH(chip-tool), verify the attribute value that was modified in above step. + [1686229128.655083][94004:94006] CHIP:DMG: } + [1686229128.655203][94004:94006] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 2737039619 + [1686229128.655240][94004:94006] CHIP:TOO: OnLevel: 2 + [1686229128.655340][94004:94006] CHIP:EM: <<< [E:43327i S:11132 M:58615041 (Ack:232232518)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229128.655358][94004:94006] CHIP:IN: (S) Sending msg 58615041 on secure session with LSID: 11132 + [1686229128.655391][94004:94006] CHIP:EM: Flushed pending ack for MessageCounter:232232518 on exchange 43327i ./chip-tool levelcontrol write on-level 3 1 1 + Verify on TH(chip-tool) receives WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. + [1686229150.157900][94008:94010] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686229150.157919][94008:94010] CHIP:DMG: WriteResponseMessage = + [1686229150.157927][94008:94010] CHIP:DMG: { + [1686229150.157933][94008:94010] CHIP:DMG: AttributeStatusIBs = + [1686229150.157944][94008:94010] CHIP:DMG: [ + [1686229150.157951][94008:94010] CHIP:DMG: AttributeStatusIB = + [1686229150.157963][94008:94010] CHIP:DMG: { + [1686229150.157970][94008:94010] CHIP:DMG: AttributePathIB = + [1686229150.157978][94008:94010] CHIP:DMG: { + [1686229150.157986][94008:94010] CHIP:DMG: Endpoint = 0x1, + [1686229150.157993][94008:94010] CHIP:DMG: Cluster = 0x8, + [1686229150.158001][94008:94010] CHIP:DMG: Attribute = 0x0000_0011, + [1686229150.158007][94008:94010] CHIP:DMG: } + [1686229150.158018][94008:94010] CHIP:DMG: + [1686229150.158024][94008:94010] CHIP:DMG: StatusIB = + [1686229150.158032][94008:94010] CHIP:DMG: { + [1686229150.158039][94008:94010] CHIP:DMG: status = 0x00 (SUCCESS), + [1686229150.158046][94008:94010] CHIP:DMG: }, + [1686229150.158053][94008:94010] CHIP:DMG: + [1686229150.158059][94008:94010] CHIP:DMG: }, + [1686229150.158068][94008:94010] CHIP:DMG: + [1686229150.158073][94008:94010] CHIP:DMG: ], + [1686229150.158083][94008:94010] CHIP:DMG: + [1686229150.158089][94008:94010] CHIP:DMG: InteractionModelRevision = 1 + [1686229150.158095][94008:94010] CHIP:DMG: } + [1686229150.158130][94008:94010] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686229150.158170][94008:94010] CHIP:EM: <<< [E:7024i S:27673 M:73840776 (Ack:50087010)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229150.158182][94008:94010] CHIP:IN: (S) Sending msg 73840776 on secure session with LSID: 27673 - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. - [1666869547.034233][36726:36731] CHIP:DMG: WriteResponseMessage = - [1666869547.034242][36726:36731] CHIP:DMG: { - [1666869547.034249][36726:36731] CHIP:DMG: AttributeStatusIBs = - [1666869547.034268][36726:36731] CHIP:DMG: [ - [1666869547.034275][36726:36731] CHIP:DMG: AttributeStatusIB = - [1666869547.034291][36726:36731] CHIP:DMG: { - [1666869547.034299][36726:36731] CHIP:DMG: AttributePathIB = - [1666869547.034312][36726:36731] CHIP:DMG: { - [1666869547.034324][36726:36731] CHIP:DMG: Endpoint = 0x1, - [1666869547.034341][36726:36731] CHIP:DMG: Cluster = 0x8, - [1666869547.034356][36726:36731] CHIP:DMG: Attribute = 0x0000_0011, - [1666869547.034369][36726:36731] CHIP:DMG: } - [1666869547.034388][36726:36731] CHIP:DMG: - [1666869547.034401][36726:36731] CHIP:DMG: StatusIB = - [1666869547.034413][36726:36731] CHIP:DMG: { - [1666869547.034425][36726:36731] CHIP:DMG: status = 0x00 (SUCCESS), - [1666869547.034437][36726:36731] CHIP:DMG: }, - [1666869547.034449][36726:36731] CHIP:DMG: - [1666869547.034461][36726:36731] CHIP:DMG: }, - [1666869547.034477][36726:36731] CHIP:DMG: - [1666869547.034485][36726:36731] CHIP:DMG: ], - [1666869547.034501][36726:36731] CHIP:DMG: - [1666869547.034512][36726:36731] CHIP:DMG: InteractionModelRevision = 1 - [1666869547.034520][36726:36731] CHIP:DMG: } - [1666869547.034566][36726:36731] CHIP:DMG: WriteClient moving to [AwaitingDe] ./chip-tool levelcontrol read on-level 1 1 - On TH, verify the attribute value that was modified in above step - - [1666869620.770718][36742:36747] CHIP:DMG: InteractionModelRevision = 1 - [1666869620.770726][36742:36747] CHIP:DMG: } - [1666869620.770797][36742:36747] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 675908055 - [1666869620.770823][36742:36747] CHIP:TOO: OnLevel: 3 - [1666869620.770891][36742:36747] CHIP:EM: <<< [E:14699i M:79319456 (Ack:188579584)] (S) Msg TX to 1:0000000000000001 [D8F1] --- Type 0000:10 (SecureChannel:StandaloneAck) + On TH(chip-tool), verify the attribute value that was modified in above step + [1686229175.161437][94014:94016] CHIP:DMG: InteractionModelRevision = 1 + [1686229175.161442][94014:94016] CHIP:DMG: } + [1686229175.161512][94014:94016] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 2737039620 + [1686229175.161543][94014:94016] CHIP:TOO: OnLevel: 3 + [1686229175.161602][94014:94016] CHIP:EM: <<< [E:55017i S:3877 M:100639983 (Ack:112317827)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229175.161614][94014:94016] CHIP:IN: (S) Sending msg 100639983 on secure session with LSID: 3877 ./chip-tool levelcontrol write on-level 1 1 1 - Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified. - - [1666869670.727210][36753:36758] CHIP:DMG: WriteClient moving to [ResponseRe] - [1666869670.727233][36753:36758] CHIP:DMG: WriteResponseMessage = - [1666869670.727241][36753:36758] CHIP:DMG: { - [1666869670.727250][36753:36758] CHIP:DMG: AttributeStatusIBs = - [1666869670.727267][36753:36758] CHIP:DMG: [ - [1666869670.727277][36753:36758] CHIP:DMG: AttributeStatusIB = - [1666869670.727288][36753:36758] CHIP:DMG: { - [1666869670.727298][36753:36758] CHIP:DMG: AttributePathIB = - [1666869670.727309][36753:36758] CHIP:DMG: { - [1666869670.727318][36753:36758] CHIP:DMG: Endpoint = 0x1, - [1666869670.727330][36753:36758] CHIP:DMG: Cluster = 0x8, - [1666869670.727343][36753:36758] CHIP:DMG: Attribute = 0x0000_0011, - [1666869670.727352][36753:36758] CHIP:DMG: } - [1666869670.727369][36753:36758] CHIP:DMG: - [1666869670.727378][36753:36758] CHIP:DMG: StatusIB = - [1666869670.727390][36753:36758] CHIP:DMG: { - [1666869670.727417][36753:36758] CHIP:DMG: status = 0x00 (SUCCESS), - [1666869670.727427][36753:36758] CHIP:DMG: }, - [1666869670.727438][36753:36758] CHIP:DMG: - [1666869670.727449][36753:36758] CHIP:DMG: }, - [1666869670.727463][36753:36758] CHIP:DMG: - [1666869670.727471][36753:36758] CHIP:DMG: ], - [1666869670.727486][36753:36758] CHIP:DMG: - [1666869670.727496][36753:36758] CHIP:DMG: InteractionModelRevision = 1 - [1666869670.727504][36753:36758] CHIP:DMG: } - [1666869670.727549][36753:36758] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1666869670.727595][36753:36758] CHIP:EM: <<< [E:47112i M:145295717 (Ack:122146940)] (S) Msg TX to 1:0000000000000001 [D8F1] --- Type 0000:10 (SecureChannel:StandaloneAck) + Verify on TH(chip-tool) receives WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified + [1686229199.082595][94020:94022] CHIP:EM: Rxd Ack; Removing MessageCounter:90418515 from Retrans Table on exchange 55893i + [1686229199.082606][94020:94022] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686229199.082625][94020:94022] CHIP:DMG: WriteResponseMessage = + [1686229199.082632][94020:94022] CHIP:DMG: { + [1686229199.082638][94020:94022] CHIP:DMG: AttributeStatusIBs = + [1686229199.082649][94020:94022] CHIP:DMG: [ + [1686229199.082655][94020:94022] CHIP:DMG: AttributeStatusIB = + [1686229199.082663][94020:94022] CHIP:DMG: { + [1686229199.082669][94020:94022] CHIP:DMG: AttributePathIB = + [1686229199.082677][94020:94022] CHIP:DMG: { + [1686229199.082685][94020:94022] CHIP:DMG: Endpoint = 0x1, + [1686229199.082692][94020:94022] CHIP:DMG: Cluster = 0x8, + [1686229199.082700][94020:94022] CHIP:DMG: Attribute = 0x0000_0011, + [1686229199.082706][94020:94022] CHIP:DMG: } + [1686229199.082716][94020:94022] CHIP:DMG: + [1686229199.082722][94020:94022] CHIP:DMG: StatusIB = + [1686229199.082730][94020:94022] CHIP:DMG: { + [1686229199.082737][94020:94022] CHIP:DMG: status = 0x00 (SUCCESS), + [1686229199.082744][94020:94022] CHIP:DMG: }, + [1686229199.082751][94020:94022] CHIP:DMG: + [1686229199.082757][94020:94022] CHIP:DMG: }, + [1686229199.082766][94020:94022] CHIP:DMG: + [1686229199.082772][94020:94022] CHIP:DMG: ], + [1686229199.082782][94020:94022] CHIP:DMG: + [1686229199.082788][94020:94022] CHIP:DMG: InteractionModelRevision = 1 + [1686229199.082794][94020:94022] CHIP:DMG: } + [1686229199.082829][94020:94022] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686229199.082868][94020:94022] CHIP:EM: <<< [E:55893i S:10912 M:90418516 (Ack:49430245)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229199.082880][94020:94022] CHIP:IN: (S) Sending msg 90418516 on secure session with LSID: 10912 ./chip-tool levelcontrol read on-level 1 1 - On TH, verify the attribute value that was modified in above step - - [1666869679.964919][36761:36766] CHIP:DMG: } - [1666869679.964987][36761:36766] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 675908056 - [1666869679.965005][36761:36766] CHIP:TOO: OnLevel: 1 - [1666869679.965070][36761:36766] CHIP:EM: <<< [E:38092i M:162624724 (Ack:53739985)] (S) Msg TX to 1:0000000000000001 [D8F1] --- Type 0000:10 (SecureChannel:StandaloneAck) + On TH(chip-tool), verify the attribute value that was modified in above step + [1686229224.244504][94026:94028] CHIP:DMG: } + [1686229224.244574][94026:94028] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 2737039621 + [1686229224.244614][94026:94028] CHIP:TOO: OnLevel: 1 + [1686229224.244664][94026:94028] CHIP:EM: <<< [E:32002i S:59097 M:150601391 (Ack:165357573)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229224.244676][94026:94028] CHIP:IN: (S) Sending msg 150601391 on secure session with LSID: 59097 + [1686229224.244703][94026:94028] CHIP:EM: Flushed pending ack for MessageCounter:165357573 on exchange 32002i disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to modify the value of - one attribute on a given cluster and endpoint to null. +" + "Step 20: TH sends the WriteRequestMessage to the DUT to modify the + value of one attribute on a given cluster and endpoint to null. +" verification: | - Out of Scope for V1.0 + Out of Scope https://github.com/project-chip/connectedhomeip/issues/8043 disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to append an attribute - value +" + "Step 21: TH sends the WriteRequestMessage to the DUT to append an + attribute value +" verification: | - Out of Scope for V1.0 + Out of Scope https://github.com/project-chip/connectedhomeip/issues/8043 disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to delete an attribute - value +" + "Step 22: TH sends the WriteRequestMessage to the DUT to delete an + attribute value +" verification: | - Out of Scope for V1.0 + Out of Scope https://github.com/project-chip/connectedhomeip/issues/8043 disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to modify the value of - one attribute and Set SuppressResponse to True. +" + "Step 23: TH sends the WriteRequestMessage to the DUT to modify the + value of one attribute and Set SuppressResponse to True. +" verification: | - Out of Scope for V1.0 + Out of Scope https://github.com/project-chip/connectedhomeip/issues/8043 disabled: true - label: - "TH sends a ReadRequest message to the DUT to read any attribute on - any cluster. DUT returns with a report data action with the attribute - values and the dataversion of the cluster. TH sends a + "Step 24: TH sends a ReadRequest message to the DUT to read any + attribute on any cluster. DUT returns with a report data action with + the attribute values and the dataversion of the cluster. TH sends a WriteRequestMessage to the DUT to modify the value of one attribute with the DataVersion field set to the one received in the prior step. +" @@ -778,81 +876,68 @@ tests: ./chip-tool levelcontrol read on-level 1 1 - On TH, Verify the attribute value which is received from DUT - - [1653028897.525838][6605:6611] CHIP:DMG: ReportDataMessage = - [1653028897.525863][6605:6611] CHIP:DMG: { - [1653028897.525885][6605:6611] CHIP:DMG: AttributeReportIBs = - [1653028897.525919][6605:6611] CHIP:DMG: [ - [1653028897.525940][6605:6611] CHIP:DMG: AttributeReportIB = - [1653028897.525975][6605:6611] CHIP:DMG: { - [1653028897.525997][6605:6611] CHIP:DMG: AttributeDataIB = - [1653028897.526025][6605:6611] CHIP:DMG: { - [1653028897.526051][6605:6611] CHIP:DMG: DataVersion = 0xc4c9d7ae, - [1653028897.526075][6605:6611] CHIP:DMG: AttributePathIB = - [1653028897.526102][6605:6611] CHIP:DMG: { - [1653028897.526128][6605:6611] CHIP:DMG: Endpoint = 0x1, - [1653028897.526153][6605:6611] CHIP:DMG: Cluster = 0x8, - [1653028897.526181][6605:6611] CHIP:DMG: Attribute = 0x0000_0011, - [1653028897.526211][6605:6611] CHIP:DMG: } - [1653028897.526239][6605:6611] CHIP:DMG: - [1653028897.526268][6605:6611] CHIP:DMG: Data = 2, - [1653028897.526295][6605:6611] CHIP:DMG: }, - [1653028897.526326][6605:6611] CHIP:DMG: - [1653028897.526347][6605:6611] CHIP:DMG: }, - [1653028897.526378][6605:6611] CHIP:DMG: - [1653028897.526397][6605:6611] CHIP:DMG: ], - [1653028897.526432][6605:6611] CHIP:DMG: - [1653028897.526459][6605:6611] CHIP:DMG: SuppressResponse = true, - [1653028897.526483][6605:6611] CHIP:DMG: InteractionModelRevision = 1 - [1653028897.526503][6605:6611] CHIP:DMG: } - [1653028897.526687][6605:6611] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3301562286 - [1653028897.526763][6605:6611] CHIP:TOO: on level: 2 + On TH(chip-tool), Verify the attribute value which is received from DUT + [1686229541.147770][94111:94113] CHIP:DMG: + [1686229541.147777][94111:94113] CHIP:DMG: SuppressResponse = true, + [1686229541.147784][94111:94113] CHIP:DMG: InteractionModelRevision = 1 + [1686229541.147789][94111:94113] CHIP:DMG: } + [1686229541.147862][94111:94113] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 2737039621 + [1686229541.147890][94111:94113] CHIP:TOO: OnLevel: 1 + [1686229541.147948][94111:94113] CHIP:EM: <<< [E:19153i S:22252 M:202945427 (Ack:256959089)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229541.147961][94111:94113] CHIP:IN: (S) Sending msg 202945427 on secure session with LSID: 22252 + + TH sends below mentioned WriteRequestMessage to the DUT to modify the value of one attribute with the DataVersion field set to the one received in the prior step. ./chip-tool levelcontrol write on-level 3 1 1 --data-version 0xc4c9d7ae - On TH, verify that DUT sends a Write Response message with a success - - [1653028938.426783][6617:6622] CHIP:DMG: WriteResponseMessage = - [1653028938.426797][6617:6622] CHIP:DMG: { - [1653028938.426806][6617:6622] CHIP:DMG: AttributeStatusIBs = - [1653028938.426821][6617:6622] CHIP:DMG: [ - [1653028938.426829][6617:6622] CHIP:DMG: AttributeStatusIB = - [1653028938.426840][6617:6622] CHIP:DMG: { - [1653028938.426849][6617:6622] CHIP:DMG: AttributePathIB = - [1653028938.426860][6617:6622] CHIP:DMG: { - [1653028938.426871][6617:6622] CHIP:DMG: Endpoint = 0x1, - [1653028938.426881][6617:6622] CHIP:DMG: Cluster = 0x8, - [1653028938.426893][6617:6622] CHIP:DMG: Attribute = 0x0000_0011, - [1653028938.426903][6617:6622] CHIP:DMG: } - [1653028938.426917][6617:6622] CHIP:DMG: - [1653028938.426925][6617:6622] CHIP:DMG: StatusIB = - [1653028938.426936][6617:6622] CHIP:DMG: { - [1653028938.426944][6617:6622] CHIP:DMG: status = 0x00 (SUCCESS), - [1653028938.426952][6617:6622] CHIP:DMG: }, - [1653028938.426961][6617:6622] CHIP:DMG: - [1653028938.426968][6617:6622] CHIP:DMG: }, - [1653028938.426978][6617:6622] CHIP:DMG: - [1653028938.426996][6617:6622] CHIP:DMG: ], - [1653028938.427009][6617:6622] CHIP:DMG: - [1653028938.427017][6617:6622] CHIP:DMG: InteractionModelRevision = 1 - [1653028938.427024][6617:6622] CHIP:DMG: } + On TH(chip-tool), verify that DUT sends a Write Response message with a success + [1686229590.858793][94124:94126] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686229590.858813][94124:94126] CHIP:DMG: WriteResponseMessage = + [1686229590.858821][94124:94126] CHIP:DMG: { + [1686229590.858827][94124:94126] CHIP:DMG: AttributeStatusIBs = + [1686229590.858841][94124:94126] CHIP:DMG: [ + [1686229590.858847][94124:94126] CHIP:DMG: AttributeStatusIB = + [1686229590.858855][94124:94126] CHIP:DMG: { + [1686229590.858862][94124:94126] CHIP:DMG: AttributePathIB = + [1686229590.858870][94124:94126] CHIP:DMG: { + [1686229590.858879][94124:94126] CHIP:DMG: Endpoint = 0x1, + [1686229590.858886][94124:94126] CHIP:DMG: Cluster = 0x8, + [1686229590.858894][94124:94126] CHIP:DMG: Attribute = 0x0000_0011, + [1686229590.858901][94124:94126] CHIP:DMG: } + [1686229590.858911][94124:94126] CHIP:DMG: + [1686229590.858918][94124:94126] CHIP:DMG: StatusIB = + [1686229590.858926][94124:94126] CHIP:DMG: { + [1686229590.858934][94124:94126] CHIP:DMG: status = 0x00 (SUCCESS), + [1686229590.858941][94124:94126] CHIP:DMG: }, + [1686229590.858948][94124:94126] CHIP:DMG: + [1686229590.858955][94124:94126] CHIP:DMG: }, + [1686229590.858964][94124:94126] CHIP:DMG: + [1686229590.858970][94124:94126] CHIP:DMG: ], + [1686229590.858981][94124:94126] CHIP:DMG: + [1686229590.858988][94124:94126] CHIP:DMG: InteractionModelRevision = 1 + [1686229590.858993][94124:94126] CHIP:DMG: } + [1686229590.859027][94124:94126] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686229590.859070][94124:94126] CHIP:EM: <<< [E:18131i S:14478 M:103762576 (Ack:226584667)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229590.859083][94124:94126] CHIP:IN: (S) Sending msg 103762576 on secure session with LSID: 14478 - ./chip-tool levelcontrol read on-level 1 1 - on TH verify that TH receives the WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. + ./chip-tool levelcontrol read on-level 1 1 - [1655201977.366318][3837:3842] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3958539604 - [1655201977.366411][3837:3842] CHIP:TOO: on level: 3 - [1655201977.366511][3837:3842] CHIP:EM: Sending Standalone Ack for MessageCounter:237652616 on exchange 15939i + On TH(chip-tool), verify that TH receives the WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified. + [1686229613.307472][94130:94132] CHIP:DMG: } + [1686229613.307596][94130:94132] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 2737039622 + [1686229613.307632][94130:94132] CHIP:TOO: OnLevel: 3 + [1686229613.307719][94130:94132] CHIP:EM: <<< [E:28271i S:6514 M:63187593 (Ack:74885751)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229613.307737][94130:94132] CHIP:IN: (S) Sending msg 63187593 on secure session with LSID: 6514 + [1686229613.307776][94130:94132] CHIP:EM: Flushed pending ack for MessageCounter:74885751 on exchange 28271i disabled: true - label: - "TH sends a ReadRequest message to the DUT to read any attribute on - any cluster. DUT returns with a report data action with the attribute - values and the dataversion of the cluster. TH sends a + "Step 25: TH sends a ReadRequest message to the DUT to read any + attribute on any cluster. DUT returns with a report data action with + the attribute values and the dataversion of the cluster. TH sends a WriteRequestMessage to the DUT to modify the value of one attribute no DataVersion indicated. TH sends a second WriteRequestMessage to the DUT to modify the value of an attribute with the dataversion field set @@ -864,62 +949,93 @@ tests: ./chip-tool levelcontrol read on-level 1 1 - On TH, Verify that DUT is responds with attribute value + On TH(chip-tool), Verify that DUT is responds with attribute value - [1653029048.535610][6634:6639] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3301562287 - [1653029048.535653][6634:6639] CHIP:TOO: on level: 3 + [1686229658.938062][94141:94143] CHIP:DMG: InteractionModelRevision = 1 + [1686229658.938067][94141:94143] CHIP:DMG: } + [1686229658.938140][94141:94143] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 2737039622 + [1686229658.938175][94141:94143] CHIP:TOO: OnLevel: 3 + [1686229658.938226][94141:94143] CHIP:EM: <<< [E:14766i S:48999 M:254860411 (Ack:194137529)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229658.938238][94141:94143] CHIP:IN: (S) Sending msg 254860411 on secure session with LSID: 48999 + [1686229658.938255][94141:94143] CHIP:EM: Flushed pending ack for MessageCounter:194137529 on exchange 14766i + [1686229658.938307][94141:94141] CHIP:CTL: Shutting down the commissioner ./chip-tool levelcontrol write on-level 4 1 1 + On TH(chip-tool), DUT send a Write Response message with status code as success + [1686229675.214378][94147:94149] CHIP:DMG: WriteResponseMessage = + [1686229675.214386][94147:94149] CHIP:DMG: { + [1686229675.214393][94147:94149] CHIP:DMG: AttributeStatusIBs = + [1686229675.214410][94147:94149] CHIP:DMG: [ + [1686229675.214418][94147:94149] CHIP:DMG: AttributeStatusIB = + [1686229675.214429][94147:94149] CHIP:DMG: { + [1686229675.214439][94147:94149] CHIP:DMG: AttributePathIB = + [1686229675.214451][94147:94149] CHIP:DMG: { + [1686229675.214462][94147:94149] CHIP:DMG: Endpoint = 0x1, + [1686229675.214473][94147:94149] CHIP:DMG: Cluster = 0x8, + [1686229675.214484][94147:94149] CHIP:DMG: Attribute = 0x0000_0011, + [1686229675.214494][94147:94149] CHIP:DMG: } + [1686229675.214509][94147:94149] CHIP:DMG: + [1686229675.214518][94147:94149] CHIP:DMG: StatusIB = + [1686229675.214530][94147:94149] CHIP:DMG: { + [1686229675.214540][94147:94149] CHIP:DMG: status = 0x00 (SUCCESS), + [1686229675.214550][94147:94149] CHIP:DMG: }, + [1686229675.214562][94147:94149] CHIP:DMG: + [1686229675.214570][94147:94149] CHIP:DMG: }, + [1686229675.214585][94147:94149] CHIP:DMG: + [1686229675.214592][94147:94149] CHIP:DMG: ], + [1686229675.214607][94147:94149] CHIP:DMG: + [1686229675.214615][94147:94149] CHIP:DMG: InteractionModelRevision = 1 + [1686229675.214623][94147:94149] CHIP:DMG: } + [1686229675.214664][94147:94149] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686229675.214705][94147:94149] CHIP:EM: <<< [E:50993i S:28788 M:7052880 (Ack:74458729)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229675.214719][94147:94149] CHIP:IN: (S) Sending msg 7052880 on secure session with LSID: 28788 + [1686229675.214749][94147:94149] CHIP:EM: Flushed pending ack for MessageCounter:74458729 on exchange 50993i - On TH, DUT send a Write Response message with status code as success - [1653029055.885156][6643:6648] CHIP:DMG: } - [1653029055.885169][6643:6648] CHIP:DMG: - [1653029055.885178][6643:6648] CHIP:DMG: StatusIB = - [1653029055.885189][6643:6648] CHIP:DMG: { - [1653029055.885199][6643:6648] CHIP:DMG: status = 0x00 (SUCCESS), - [1653029055.885209][6643:6648] CHIP:DMG: }, - [1653029055.885219][6643:6648] CHIP:DMG: TH sends below mentioned second WriteRequestMessage to the DUT to modify the value of an attribute with the dataversion field set to the value received earlier. ./chip-tool levelcontrol write on-level 4 1 1 --data-version 0xc4c9d7af - on TH, verify that DUT responds as DATA_VERSION_MISMATCH for the second Write request. - - [1653029088.401601][6655:6660] CHIP:DMG: WriteResponseMessage = - [1653029088.401614][6655:6660] CHIP:DMG: { - [1653029088.401623][6655:6660] CHIP:DMG: AttributeStatusIBs = - [1653029088.401638][6655:6660] CHIP:DMG: [ - [1653029088.401647][6655:6660] CHIP:DMG: AttributeStatusIB = - [1653029088.401657][6655:6660] CHIP:DMG: { - [1653029088.401668][6655:6660] CHIP:DMG: AttributePathIB = - [1653029088.401682][6655:6660] CHIP:DMG: { - [1653029088.401694][6655:6660] CHIP:DMG: Endpoint = 0x1, - [1653029088.401712][6655:6660] CHIP:DMG: Cluster = 0x8, - [1653029088.401823][6655:6660] CHIP:DMG: Attribute = 0x0000_0011, - [1653029088.401836][6655:6660] CHIP:DMG: } - [1653029088.401855][6655:6660] CHIP:DMG: - [1653029088.401869][6655:6660] CHIP:DMG: StatusIB = - [1653029088.401884][6655:6660] CHIP:DMG: { - [1653029088.401899][6655:6660] CHIP:DMG: status = 0x92 (DATA_VERSION_MISMATCH), - [1653029088.401912][6655:6660] CHIP:DMG: }, - [1653029088.401928][6655:6660] CHIP:DMG: - [1653029088.401940][6655:6660] CHIP:DMG: }, - [1653029088.401956][6655:6660] CHIP:DMG: - [1653029088.401967][6655:6660] CHIP:DMG: ], - [1653029088.401984][6655:6660] CHIP:DMG: - [1653029088.401997][6655:6660] CHIP:DMG: InteractionModelRevision = 1 - [1653029088.402009][6655:6660] CHIP:DMG: } - [1653029088.402059][6655:6660] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1653029088.402079][6655:6660] CHIP:TOO: Response Failure: IM Error 0x00000592: General error: 0x92 (DATA_VERSION_MISMATCH) + On TH(chip-tool), verify that DUT responds as DATA_VERSION_MISMATCH for the second Write request. + + [1686229718.873144][94160:94162] CHIP:EM: Rxd Ack; Removing MessageCounter:265995501 from Retrans Table on exchange 34809i + [1686229718.873148][94160:94162] CHIP:DMG: WriteClient moving to [ResponseRe] + [1686229718.873157][94160:94162] CHIP:DMG: WriteResponseMessage = + [1686229718.873160][94160:94162] CHIP:DMG: { + [1686229718.873162][94160:94162] CHIP:DMG: AttributeStatusIBs = + [1686229718.873165][94160:94162] CHIP:DMG: [ + [1686229718.873167][94160:94162] CHIP:DMG: AttributeStatusIB = + [1686229718.873170][94160:94162] CHIP:DMG: { + [1686229718.873172][94160:94162] CHIP:DMG: AttributePathIB = + [1686229718.873175][94160:94162] CHIP:DMG: { + [1686229718.873177][94160:94162] CHIP:DMG: Endpoint = 0x1, + [1686229718.873179][94160:94162] CHIP:DMG: Cluster = 0x8, + [1686229718.873182][94160:94162] CHIP:DMG: Attribute = 0x0000_0011, + [1686229718.873184][94160:94162] CHIP:DMG: } + [1686229718.873187][94160:94162] CHIP:DMG: + [1686229718.873189][94160:94162] CHIP:DMG: StatusIB = + [1686229718.873192][94160:94162] CHIP:DMG: { + [1686229718.873194][94160:94162] CHIP:DMG: status = 0x92 (DATA_VERSION_MISMATCH), + [1686229718.873196][94160:94162] CHIP:DMG: }, + [1686229718.873199][94160:94162] CHIP:DMG: + [1686229718.873201][94160:94162] CHIP:DMG: }, + [1686229718.873203][94160:94162] CHIP:DMG: + [1686229718.873205][94160:94162] CHIP:DMG: ], + [1686229718.873208][94160:94162] CHIP:DMG: + [1686229718.873210][94160:94162] CHIP:DMG: InteractionModelRevision = 1 + [1686229718.873212][94160:94162] CHIP:DMG: } + [1686229718.873223][94160:94162] CHIP:DMG: WriteClient moving to [AwaitingDe] + [1686229718.873227][94160:94162] CHIP:TOO: Response Failure: IM Error 0x00000592: General error: 0x92 (DATA_VERSION_MISMATCH) + [1686229718.873244][94160:94162] CHIP:EM: <<< [E:34809i S:30372 M:265995502 (Ack:261218993)] (S) Msg TX to 1:0000000000000001 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686229718.873248][94160:94162] CHIP:IN: (S) Sending msg 265995502 on secure session with LSID: 30372 disabled: true - label: - "TH sends the WriteRequestMessage to the DUT to modify the value of a - specific attribute data that needs Timed Write transaction to write - and this action is not part of a Timed Write transaction." + "Step 26: TH sends the WriteRequestMessage to the DUT to modify the + value of a specific attribute data that needs Timed Write transaction + to write and this action is not part of a Timed Write transaction." verification: | DUT implementation required to verify write an attribute which need NEEDS_TIMED_INTERACTION. diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml index cff33edcb3b48d..de62254f8cef45 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml @@ -33,18 +33,16 @@ tests: disabled: true - label: - "DUT sends a subscription request message to the target node/reference - device for a single attribute of any data type supported." + "Step 1: DUT sends a subscription request message to the target + node/reference device for a single attribute of any data type + supported." PICS: MCORE.IDM.C.SubscribeRequest verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start + onoff subscribe on-off 10 80 1 1 --keepSubscriptions true - onoff subscribe on-off 10 80 1 1 - - On the TH(reference app) verify the subscription message received has the following fields. KeepSubscriptions which is of type bool + On the TH(all-clusters-app) verify the subscription message received has the following fields. KeepSubscriptions which is of type bool MinIntervalFloor which is of type uint16 MaxIntervalCeiling which is of type uint16 [Optional]AttributeRequests which is of type list and contains the attribute paths @@ -52,439 +50,460 @@ tests: [Optional]EventFilters which is of type list [Optional]FabricFiltered which is of type bool - [1657446108.596676][11525:11525] CHIP:IM: Received Subscribe request - [1657446108.596832][11525:11525] CHIP:IM: Deleting previous subscription from NodeId: 000000000001B669, FabricIndex: 1 - [1657446108.596950][11525:11525] CHIP:DMG: SubscribeRequestMessage = - [1657446108.597015][11525:11525] CHIP:DMG: { - [1657446108.597075][11525:11525] CHIP:DMG: KeepSubscriptions = false, - [1657446108.597136][11525:11525] CHIP:DMG: MinIntervalFloorSeconds = 0xa, - [1657446108.597311][11525:11525] CHIP:DMG: MaxIntervalCeilingSeconds = 0x50,[1657446108.597377][11525:11525] CHIP:DMG: AttributePathIBs = - [1657446108.597441][11525:11525] CHIP:DMG: [ - [1657446108.597501][11525:11525] CHIP:DMG: AttributePathIB = - [1657446108.597567][11525:11525] CHIP:DMG: { - [1657446108.597635][11525:11525] CHIP:DMG: Endpoint = 0x1, - [1657446108.597710][11525:11525] CHIP:DMG: Cluster = 0x6, - [1657446108.597786][11525:11525] CHIP:DMG: Attribute = 0x0000_0000, - [1657446108.597860][11525:11525] CHIP:DMG: } - [1657446108.597929][11525:11525] CHIP:DMG: - [1657446108.597990][11525:11525] CHIP:DMG: ], - [1657446108.598058][11525:11525] CHIP:DMG: - [1657446108.598122][11525:11525] CHIP:DMG: isFabricFiltered = true, - [1657446108.598184][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657446108.598241][11525:11525] CHIP:DMG: }, - [1657446108.598388][11525:11525] CHIP:DMG: Final negotiated min/max parameters: Min = 10s, Max = 80s - [1657446108.598559][11525:11525] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID - [1657884469.617473][2938:2943] CHIP:DMG: ReportDataMessage = - [1657884469.617508][2938:2943] CHIP:DMG: { - [1657884469.617538][2938:2943] CHIP:DMG: SubscriptionId = 0x2d030a2b, - [1657884469.617572][2938:2943] CHIP:DMG: AttributeReportIBs = - [1657884469.617610][2938:2943] CHIP:DMG: [ - [1657884469.617641][2938:2943] CHIP:DMG: AttributeReportIB = - [1657884469.617680][2938:2943] CHIP:DMG: { - [1657884469.617712][2938:2943] CHIP:DMG: AttributeDataIB = - [1657884469.617749][2938:2943] CHIP:DMG: { - [1657884469.617790][2938:2943] CHIP:DMG: DataVersion = 0x42da0cab, - [1657884469.617830][2938:2943] CHIP:DMG: AttributePathIB = - [1657884469.617875][2938:2943] CHIP:DMG: { - [1657884469.617918][2938:2943] CHIP:DMG: Endpoint = 0x1, - [1657884469.617961][2938:2943] CHIP:DMG: Cluster = 0x6, - [1657884469.618006][2938:2943] CHIP:DMG: Attribute = 0x0000_0000, - [1657884469.618051][2938:2943] CHIP:DMG: } - [1657884469.618094][2938:2943] CHIP:DMG: - [1657884469.618137][2938:2943] CHIP:DMG: Data = false, - [1657884469.618176][2938:2943] CHIP:DMG: }, - [1657884469.618216][2938:2943] CHIP:DMG: - [1657884469.618250][2938:2943] CHIP:DMG: }, - [1657884469.618288][2938:2943] CHIP:DMG: - [1657884469.618317][2938:2943] CHIP:DMG: ], - [1657884469.618354][2938:2943] CHIP:DMG: - [1657884469.618384][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884469.618413][2938:2943] CHIP:DMG: } - [1657884469.618568][2938:2943] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 1121586347 - [1657884469.618632][2938:2943] CHIP:TOO: OnOff: FALSE - [1657884469.618690][2938:2943] CHIP:DMG: MoveToState ReadClient[0xffffa40091f0]: Moving to [AwaitingSu] - [1657884469.618749][2938:2943] CHIP:EM: Piggybacking Ack for MessageCounter:137911467 on exchange: 45823i - [1657884469.618817][2938:2943] CHIP:IN: Prepared secure message 0xffffa4000d48 to 0x0000000000000001 (1) of type 0x1 and protocolId (0, 1) on exchange 45823i with MessageCounter:83158075. - [1657884469.618860][2938:2943] CHIP:IN: Sending encrypted msg 0xffffa4000d48 with MessageCounter:83158075 to 0x0000000000000001 (1) at monotonic time: 00000000006D764A msec - [1657884469.620359][2938:2943] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:137911468 on exchange 45823i - [1657884469.620401][2938:2943] CHIP:EM: Found matching exchange: 45823i, Delegate: 0xffffa40091f0 - [1657884469.620439][2938:2943] CHIP:EM: Rxd Ack; Removing MessageCounter:83158075 from Retrans Table on exchange 45823i - [1657884469.620469][2938:2943] CHIP:EM: Removed CHIP MessageCounter:83158075 from RetransTable on exchange 45823i - [1657884469.620523][2938:2943] CHIP:DMG: SubscribeResponseMessage = - [1657884469.620557][2938:2943] CHIP:DMG: { - [1657884469.620587][2938:2943] CHIP:DMG: SubscriptionId = 0x2d030a2b, - [1657884469.620619][2938:2943] CHIP:DMG: MaxInterval = 0x50, - [1657884469.620650][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884469.620679][2938:2943] CHIP:DMG: } - [1657884469.620711][2938:2943] CHIP:DMG: Subscription established with SubscriptionID = 0x2d030a2b MinInterval = 10s MaxInterval = 80s Peer = 01:0000000000000001 + + [1686231339.679698][92910:92910] CHIP:EM: Handling via exchange: 59809r, Delegate: 0x5592c0755fc8 + [1686231339.679704][92910:92910] CHIP:IM: Received Subscribe request + [1686231339.679714][92910:92910] CHIP:DMG: SubscribeRequestMessage = + [1686231339.679717][92910:92910] CHIP:DMG: { + [1686231339.679720][92910:92910] CHIP:DMG: KeepSubscriptions = true, + [1686231339.679723][92910:92910] CHIP:DMG: MinIntervalFloorSeconds = 0xa, + [1686231339.679726][92910:92910] CHIP:DMG: MaxIntervalCeilingSeconds = 0x50, + [1686231339.679728][92910:92910] CHIP:DMG: AttributePathIBs = + [1686231339.679732][92910:92910] CHIP:DMG: [ + [1686231339.679735][92910:92910] CHIP:DMG: AttributePathIB = + [1686231339.679738][92910:92910] CHIP:DMG: { + [1686231339.679741][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686231339.679744][92910:92910] CHIP:DMG: Cluster = 0x6, + [1686231339.679748][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686231339.679751][92910:92910] CHIP:DMG: } + [1686231339.679755][92910:92910] CHIP:DMG: + [1686231339.679758][92910:92910] CHIP:DMG: ], + [1686231339.679762][92910:92910] CHIP:DMG: + [1686231339.679765][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686231339.679768][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686231339.679770][92910:92910] CHIP:DMG: }, + [1686231339.679782][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=v + [1686231339.679789][92910:92910] CHIP:DMG: AccessControl: allowed + [1686231339.679817][92910:92910] CHIP:DMG: Final negotiated min/max parameters: Min = 10s, Max = 80s + [1686231339.679827][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686231339.680273][92910:92910] CHIP:DL: writing settings to file (/tmp/chip_kvs-kWt5ZU) + [1686231339.680405][92910:92910] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686231339.680428][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686231339.680432][92910:92910] CHIP:DMG: Cluster 6, Attribute 0 is dirty + [1686231339.680435][92910:92910] CHIP:DMG: Reading attribute: Cluster=0x0000_0006 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) + [1686231339.680440][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=v + [1686231339.680444][92910:92910] CHIP:DMG: AccessControl: allowed + [1686231339.680456][92910:92910] CHIP:DMG: Sending report (payload has 39 bytes)... + [1686231339.680477][92910:92910] CHIP:EM: <<< [E:59809r S:64937 M:35251078 (Ack:87148762)] (S) Msg TX to 1:000000000001B669 [58B9] --- Type 0001:05 (IM:ReportData) + [1686231339.680483][92910:92910] CHIP:IN: (S) Sending msg 35251078 on secure session with LSID: 64937 + [1686231339.680506][92910:92910] CHIP:DMG: IM RH moving to [AwaitingReportResponse] + [1686231339.680510][92910:92910] CHIP:DMG: ReportsInFlight = 1 with readHandler 2, RE has no more messages + [1686231339.680513][92910:92910] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet + [1686231339.680527][92910:92910] CHIP:EM: >>> [E:59808r S:0 M:160352731 (Ack:203743848)] (U) Msg RX from 0:7C2C8A6314B06760 [0000] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686231339.680531][92910:92910] CHIP:EM: Found matching exchange: 59808r, Delegate: (nil) + [1686231339.680536][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:203743848 from Retrans Table on exchange 59808r + [1686231339.680703][92910:92910] CHIP:EM: >>> [E:59809r S:64937 M:87148763 (Ack:35251078)] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:01 (IM:StatusResponse) + [1686231339.680708][92910:92910] CHIP:EM: Found matching exchange: 59809r, Delegate: 0x5592c1154a68 + [1686231339.680713][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251078 from Retrans Table on exchange 59809r + [1686231339.680721][92910:92910] CHIP:DMG: StatusResponseMessage = + [1686231339.680725][92910:92910] CHIP:DMG: { + [1686231339.680728][92910:92910] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686231339.680732][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686231339.680734][92910:92910] CHIP:DMG: } + [1686231339.680737][92910:92910] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686231339.680744][92910:92910] CHIP:DMG: Refresh Subscribe Sync Timer with min 10 seconds and max 80 seconds disabled: true - label: - "DUT sends the subscription request message to TH TH sends a report - data DUT sends the status response back to TH" + "Step 2: DUT sends the subscription request message to TH TH sends a + report data DUT sends the status response back to TH" PICS: MCORE.IDM.C.SubscribeRequest verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - onoff subscribe on-off 10 80 1 1 + onoff subscribe on-off 10 80 1 1 --keepSubscriptions true Verify on the TH(reference-app) that the status response received from the DUT is "Success" - - [1657446108.604270][11525:11525] CHIP:EM: Removed CHIP MessageCounter:79424297 from RetransTable on exchange 24r - [1657446108.604371][11525:11525] CHIP:DMG: StatusResponseMessage = - [1657446108.604435][11525:11525] CHIP:DMG: { - [1657446108.604494][11525:11525] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657446108.604557][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657446108.604614][11525:11525] CHIP:DMG: } - [1657446108.604672][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS) - [1657446108.604755][11525:11525] CHIP:DMG: Refresh Subscribe Sync Timer with max 80 seconds - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID - [1657884569.751004][2938:2943] CHIP:DMG: ReportDataMessage = - [1657884569.751034][2938:2943] CHIP:DMG: { - [1657884569.751059][2938:2943] CHIP:DMG: SubscriptionId = 0x47cd6fdb, - [1657884569.751111][2938:2943] CHIP:DMG: AttributeReportIBs = - [1657884569.751147][2938:2943] CHIP:DMG: [ - [1657884569.751173][2938:2943] CHIP:DMG: AttributeReportIB = - [1657884569.751219][2938:2943] CHIP:DMG: { - [1657884569.751259][2938:2943] CHIP:DMG: AttributeDataIB = - [1657884569.751304][2938:2943] CHIP:DMG: { - [1657884569.751351][2938:2943] CHIP:DMG: DataVersion = 0x42da0cab, - [1657884569.751395][2938:2943] CHIP:DMG: AttributePathIB = - [1657884569.751441][2938:2943] CHIP:DMG: { - [1657884569.751493][2938:2943] CHIP:DMG: Endpoint = 0x1, - [1657884569.751544][2938:2943] CHIP:DMG: Cluster = 0x6, - [1657884569.751596][2938:2943] CHIP:DMG: Attribute = 0x0000_0000, - [1657884569.751645][2938:2943] CHIP:DMG: } - [1657884569.751696][2938:2943] CHIP:DMG: - [1657884569.751749][2938:2943] CHIP:DMG: Data = false, - [1657884569.751796][2938:2943] CHIP:DMG: }, - [1657884569.751843][2938:2943] CHIP:DMG: - [1657884569.751874][2938:2943] CHIP:DMG: }, - [1657884569.751915][2938:2943] CHIP:DMG: - [1657884569.751941][2938:2943] CHIP:DMG: ], - [1657884569.751971][2938:2943] CHIP:DMG: - [1657884569.751996][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884569.752022][2938:2943] CHIP:DMG: } - [1657884569.752174][2938:2943] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 1121586347 - [1657884569.752217][2938:2943] CHIP:TOO: OnOff: FALSE - [1657884569.752255][2938:2943] CHIP:DMG: MoveToState ReadClient[0xffffa40092e0]: Moving to [AwaitingSu] - [1657884569.752319][2938:2943] CHIP:EM: Piggybacking Ack for MessageCounter:137911471 on exchange: 45824i - [1657884569.752393][2938:2943] CHIP:IN: Prepared secure message 0xaaaafe09b548 to 0x0000000000000001 (1) of type 0x1 and protocolId (0, 1) on exchange 45824i with MessageCounter:83158079. - [1657884569.752435][2938:2943] CHIP:IN: Sending encrypted msg 0xaaaafe09b548 with MessageCounter:83158079 to 0x0000000000000001 (1) at monotonic time: 00000000006EFD70 msec - [1657884569.754254][2938:2943] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:137911472 on exchange 45824i - [1657884569.754333][2938:2943] CHIP:EM: Found matching exchange: 45824i, Delegate: 0xffffa40092e0 - [1657884569.754372][2938:2943] CHIP:EM: Rxd Ack; Removing MessageCounter:83158079 from Retrans Table on exchange 45824i - [1657884569.754397][2938:2943] CHIP:EM: Removed CHIP MessageCounter:83158079 from RetransTable on exchange 45824i - [1657884569.754449][2938:2943] CHIP:DMG: SubscribeResponseMessage = - [1657884569.754478][2938:2943] CHIP:DMG: { - [1657884569.754502][2938:2943] CHIP:DMG: SubscriptionId = 0x47cd6fdb, - [1657884569.754533][2938:2943] CHIP:DMG: MaxInterval = 0x50, - [1657884569.754559][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884569.754581][2938:2943] CHIP:DMG: } - [1657884569.754610][2938:2943] CHIP:DMG: Subscription established with SubscriptionID = 0x47cd6fdb MinInterval = 10s MaxInterval = 80s Peer = 01:0000000000000001 + [1686231385.233023][92910:92910] CHIP:EM: Handling via exchange: 59810r, Delegate: 0x5592c0755fc8 + [1686231385.233033][92910:92910] CHIP:IM: Received Subscribe request + [1686231385.233046][92910:92910] CHIP:DMG: SubscribeRequestMessage = + [1686231385.233050][92910:92910] CHIP:DMG: { + [1686231385.233053][92910:92910] CHIP:DMG: KeepSubscriptions = true, + [1686231385.233057][92910:92910] CHIP:DMG: MinIntervalFloorSeconds = 0xa, + [1686231385.233060][92910:92910] CHIP:DMG: MaxIntervalCeilingSeconds = 0x50, + [1686231385.233063][92910:92910] CHIP:DMG: AttributePathIBs = + [1686231385.233067][92910:92910] CHIP:DMG: [ + [1686231385.233069][92910:92910] CHIP:DMG: AttributePathIB = + [1686231385.233073][92910:92910] CHIP:DMG: { + [1686231385.233077][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686231385.233080][92910:92910] CHIP:DMG: Cluster = 0x6, + [1686231385.233084][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686231385.233087][92910:92910] CHIP:DMG: } + [1686231385.233091][92910:92910] CHIP:DMG: + [1686231385.233093][92910:92910] CHIP:DMG: ], + [1686231385.233097][92910:92910] CHIP:DMG: + [1686231385.233101][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686231385.233104][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686231385.233106][92910:92910] CHIP:DMG: }, + [1686231385.233120][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=v + [1686231385.233126][92910:92910] CHIP:DMG: AccessControl: allowed + [1686231385.233150][92910:92910] CHIP:DMG: Final negotiated min/max parameters: Min = 10s, Max = 80s + [1686231385.233164][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686231385.233474][92910:92910] CHIP:DL: writing settings to file (/tmp/chip_kvs-423vFD) + [1686231385.233611][92910:92910] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686231385.233635][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686231385.233639][92910:92910] CHIP:DMG: Cluster 6, Attribute 0 is dirty + [1686231385.233642][92910:92910] CHIP:DMG: Reading attribute: Cluster=0x0000_0006 Endpoint=1 AttributeId=0x0000_0000 (expanded=0) + [1686231385.233647][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=v + [1686231385.233667][92910:92910] CHIP:DMG: AccessControl: allowed + [1686231385.233680][92910:92910] CHIP:DMG: Sending report (payload has 39 bytes)... + [1686231385.233705][92910:92910] CHIP:EM: <<< [E:59810r S:64937 M:35251082 (Ack:87148766)] (S) Msg TX to 1:000000000001B669 [58B9] --- Type 0001:05 (IM:ReportData) + [1686231385.233713][92910:92910] CHIP:IN: (S) Sending msg 35251082 on secure session with LSID: 64937 + [1686231385.233744][92910:92910] CHIP:DMG: IM RH moving to [AwaitingReportResponse] + [1686231385.233748][92910:92910] CHIP:DMG: ReportsInFlight = 1 with readHandler 2, RE has no more messages + [1686231385.233751][92910:92910] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet + [1686231385.233958][92910:92910] CHIP:EM: >>> [E:59810r S:64937 M:87148767 (Ack:35251082)] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:01 (IM:StatusResponse) + [1686231385.233962][92910:92910] CHIP:EM: Found matching exchange: 59810r, Delegate: 0x5592c113ec58 + [1686231385.233967][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251082 from Retrans Table on exchange 59810r + [1686231385.233976][92910:92910] CHIP:DMG: StatusResponseMessage = + [1686231385.233980][92910:92910] CHIP:DMG: { + [1686231385.233983][92910:92910] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686231385.233986][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686231385.233989][92910:92910] CHIP:DMG: } + [1686231385.233992][92910:92910] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686231385.233999][92910:92910] CHIP:DMG: Refresh Subscribe Sync Timer with min 10 seconds and max 80 seconds + [1686231385.234010][92910:92910] CHIP:EM: <<< [E:59810r S:64937 M:35251083 (Ack:87148767)] (S) Msg TX to 1:000000000001B669 [58B9] --- Type 0001:04 (IM:SubscribeResponse) + [1686231385.234015][92910:92910] CHIP:IN: (S) Sending msg 35251083 on secure session with LSID: 64937 + [1686231385.234032][92910:92910] CHIP:DMG: OnReportConfirm: NumReports = 0 disabled: true - label: - "[OPTIONAL] Activate the subscription between the DUT and the TH for - an attribute of data type boolean. Modify that attribute on the TH. TH - should send the modified data to the DUT. Modify the attribute + "Step 3: [OPTIONAL] Activate the subscription between the DUT and the + TH for an attribute of data type boolean. Modify that attribute on the + TH. TH should send the modified data to the DUT. Modify the attribute multiple times (3 times)." PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_Bool verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - basicinformation subscribe local-config-disabled 10 100 1 0 + basicinformation subscribe local-config-disabled 10 100 1 0 --keepSubscriptions true On TH (On the reference app) Verify if DUT is responding with the below status response for the above command - [1657445852.161250][11525:11525] CHIP:DMG: StatusResponseMessage = - [1657445852.161278][11525:11525] CHIP:DMG: { - [1657445852.161301][11525:11525] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657445852.161326][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657445852.161348][11525:11525] CHIP:DMG: } - [1657445852.161372][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS) - [1657445852.161412][11525:11525] CHIP:DMG: Refresh Subscribe Sync Timer with max 100 seconds - - - - In the case of chip tool as a client, here is an example command the client can write an attribute in the basic cluster in the TH to change the value that the client subscribed in the above command. + [1686231800.052756][92910:92910] CHIP:EM: Handling via exchange: 59811r, Delegate: 0x5592c0755fc8 + [1686231800.052780][92910:92910] CHIP:IM: Received Subscribe request + [1686231800.052808][92910:92910] CHIP:DMG: SubscribeRequestMessage = + [1686231800.052817][92910:92910] CHIP:DMG: { + [1686231800.052826][92910:92910] CHIP:DMG: KeepSubscriptions = true, + [1686231800.052836][92910:92910] CHIP:DMG: MinIntervalFloorSeconds = 0xa, + [1686231800.052846][92910:92910] CHIP:DMG: MaxIntervalCeilingSeconds = 0x64, + [1686231800.052856][92910:92910] CHIP:DMG: AttributePathIBs = + [1686231800.052866][92910:92910] CHIP:DMG: [ + [1686231800.052874][92910:92910] CHIP:DMG: AttributePathIB = + [1686231800.052886][92910:92910] CHIP:DMG: { + [1686231800.052897][92910:92910] CHIP:DMG: Endpoint = 0x0, + [1686231800.052908][92910:92910] CHIP:DMG: Cluster = 0x28, + [1686231800.052919][92910:92910] CHIP:DMG: Attribute = 0x0000_0010, + [1686231800.052929][92910:92910] CHIP:DMG: } + [1686231800.052940][92910:92910] CHIP:DMG: + [1686231800.052953][92910:92910] CHIP:DMG: ], + [1686231800.052964][92910:92910] CHIP:DMG: + [1686231800.052971][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686231800.052978][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686231800.052983][92910:92910] CHIP:DMG: }, + [1686231800.053009][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=v + [1686231800.053022][92910:92910] CHIP:DMG: AccessControl: allowed + [1686231800.053072][92910:92910] CHIP:DMG: Final negotiated min/max parameters: Min = 10s, Max = 100s + [1686231800.053101][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686231800.053999][92910:92910] CHIP:DL: writing settings to file (/tmp/chip_kvs-NtcZsY) + [1686231800.054313][92910:92910] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686231800.054366][92910:92910] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686231800.054375][92910:92910] CHIP:DMG: Cluster 28, Attribute 10 is dirty + [1686231800.054381][92910:92910] CHIP:DMG: Reading attribute: Cluster=0x0000_0028 Endpoint=0 AttributeId=0x0000_0010 (expanded=0) + [1686231800.054392][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=v + [1686231800.054403][92910:92910] CHIP:DMG: AccessControl: allowed + [1686231800.054428][92910:92910] CHIP:DMG: Sending report (payload has 39 bytes)... + [1686231800.054478][92910:92910] CHIP:EM: <<< [E:59811r S:64937 M:35251106 (Ack:87148780)] (S) Msg TX to 1:000000000001B669 [58B9] --- Type 0001:05 (IM:ReportData) + [1686231800.054492][92910:92910] CHIP:IN: (S) Sending msg 35251106 on secure session with LSID: 64937 + [1686231800.054550][92910:92910] CHIP:DMG: IM RH moving to [AwaitingReportResponse] + [1686231800.054557][92910:92910] CHIP:DMG: ReportsInFlight = 1 with readHandler 2, RE has no more messages + [1686231800.054564][92910:92910] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet + [1686231800.055232][92910:92910] CHIP:EM: >>> [E:59811r S:64937 M:87148781 (Ack:35251106)] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:01 (IM:StatusResponse) + [1686231800.055243][92910:92910] CHIP:EM: Found matching exchange: 59811r, Delegate: 0x5592c1153038 + [1686231800.055258][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251106 from Retrans Table on exchange 59811r + [1686231800.055280][92910:92910] CHIP:DMG: StatusResponseMessage = + [1686231800.055290][92910:92910] CHIP:DMG: { + [1686231800.055299][92910:92910] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686231800.055334][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686231800.055343][92910:92910] CHIP:DMG: } + [1686231800.055352][92910:92910] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686231800.055372][92910:92910] CHIP:DMG: Refresh Subscribe Sync Timer with min 10 seconds and max 100 seconds + [1686231800.055404][92910:92910] CHIP:EM: <<< [E:59811r S:64937 M:35251107 (Ack:87148781)] (S) Msg TX to 1:000000000001B669 [58B9] --- Type 0001:04 (IM:SubscribeResponse) + [1686231800.055418][92910:92910] CHIP:IN: (S) Sending msg 35251107 on secure session with LSID: 64937 + + In the case of chip tool as a client, here is an example command the client can write an attribute in the basicinformation cluster in the TH to change the value that the client subscribed in the above command. + + basicinformation write local-config-disabled 0 1 0 + Verify on the TH(all-clusters-app) that the status response received from the DUT for every report data sent is a "Success" + [1686232216.410127][92910:92910] CHIP:EM: >>> [E:59813r S:64937 M:87148800] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:06 (IM:WriteRequest) + [1686232216.410143][92910:92910] CHIP:EM: Handling via exchange: 59813r, Delegate: 0x5592c0755fc8 + [1686232216.410152][92910:92910] CHIP:IM: Received Write request + [1686232216.410155][92910:92910] CHIP:DMG: IM WH moving to [Initialized] + [1686232216.410168][92910:92910] CHIP:DMG: WriteRequestMessage = + [1686232216.410170][92910:92910] CHIP:DMG: { + [1686232216.410172][92910:92910] CHIP:DMG: suppressResponse = false, + [1686232216.410175][92910:92910] CHIP:DMG: timedRequest = false, + [1686232216.410177][92910:92910] CHIP:DMG: AttributeDataIBs = + [1686232216.410180][92910:92910] CHIP:DMG: [ + [1686232216.410182][92910:92910] CHIP:DMG: AttributeDataIB = + [1686232216.410185][92910:92910] CHIP:DMG: { + [1686232216.410187][92910:92910] CHIP:DMG: AttributePathIB = + [1686232216.410190][92910:92910] CHIP:DMG: { + [1686232216.410193][92910:92910] CHIP:DMG: Endpoint = 0x0, + [1686232216.410195][92910:92910] CHIP:DMG: Cluster = 0x28, + [1686232216.410198][92910:92910] CHIP:DMG: Attribute = 0x0000_0010, + [1686232216.410200][92910:92910] CHIP:DMG: } + [1686232216.410203][92910:92910] CHIP:DMG: + [1686232216.410206][92910:92910] CHIP:DMG: Data = false, + [1686232216.410208][92910:92910] CHIP:DMG: }, + [1686232216.410211][92910:92910] CHIP:DMG: + [1686232216.410213][92910:92910] CHIP:DMG: ], + [1686232216.410217][92910:92910] CHIP:DMG: + [1686232216.410219][92910:92910] CHIP:DMG: moreChunkedMessages = false, + [1686232216.410221][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232216.410223][92910:92910] CHIP:DMG: }, + [1686232216.410241][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=m + [1686232216.410247][92910:92910] CHIP:DMG: AccessControl: allowed + [1686232216.410312][92910:92910] CHIP:DL: writing settings to file (/tmp/chip_kvs-PHYhm6) + + [1686232216.410860][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251139 from Retrans Table on exchange 12003i + [1686232216.410867][92910:92910] CHIP:DMG: StatusResponseMessage = + [1686232216.410870][92910:92910] CHIP:DMG: { + [1686232216.410872][92910:92910] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686232216.410876][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232216.410879][92910:92910] CHIP:DMG: } + [1686232216.410882][92910:92910] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686232216.410886][92910:92910] CHIP:DMG: OnReportConfirm: NumReports = 1 + [1686232216.410889][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686232216.410897][92910:92910] CHIP:EM: <<< [E:12003i S:64937 M:35251141 (Ack:87148802)] (S) Msg TX to 1:000000000001B669 [58B9] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686232216.410902][92910:92910] CHIP:IN: (S) Sending msg 35251141 on secure session with LSID: 64937 - basicinformation write local-config-disabled 1 1 0 - [1657445962.258847][11525:11525] CHIP:DMG: StatusResponseMessage = - [1657445962.258876][11525:11525] CHIP:DMG: { - [1657445962.258901][11525:11525] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657445962.258926][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657445962.258950][11525:11525] CHIP:DMG: } - [1657445962.258975][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS) - [1657445962.259002][11525:11525] CHIP:DMG: OnReportConfirm: NumReports = 0 - - - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID - [1657884643.152038][2938:2943] CHIP:DMG: ReportDataMessage = - [1657884643.152141][2938:2943] CHIP:DMG: { - [1657884643.152206][2938:2943] CHIP:DMG: SubscriptionId = 0x2e0592e3, - [1657884643.152276][2938:2943] CHIP:DMG: AttributeReportIBs = - [1657884643.152353][2938:2943] CHIP:DMG: [ - [1657884643.152414][2938:2943] CHIP:DMG: AttributeReportIB = - [1657884643.152497][2938:2943] CHIP:DMG: { - [1657884643.152565][2938:2943] CHIP:DMG: AttributeDataIB = - [1657884643.152640][2938:2943] CHIP:DMG: { - [1657884643.152722][2938:2943] CHIP:DMG: DataVersion = 0xe411d149, - [1657884643.152809][2938:2943] CHIP:DMG: AttributePathIB = - [1657884643.152898][2938:2943] CHIP:DMG: { - [1657884643.152989][2938:2943] CHIP:DMG: Endpoint = 0x0, - [1657884643.153069][2938:2943] CHIP:DMG: Cluster = 0x28, - [1657884643.153134][2938:2943] CHIP:DMG: Attribute = 0x0000_0010, - [1657884643.153282][2938:2943] CHIP:DMG: } - [1657884643.153349][2938:2943] CHIP:DMG: - [1657884643.153412][2938:2943] CHIP:DMG: Data = true, - [1657884643.153471][2938:2943] CHIP:DMG: }, - [1657884643.153529][2938:2943] CHIP:DMG: - [1657884643.153576][2938:2943] CHIP:DMG: }, - [1657884643.153631][2938:2943] CHIP:DMG: - [1657884643.153675][2938:2943] CHIP:DMG: ], - [1657884643.153731][2938:2943] CHIP:DMG: - [1657884643.153776][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884643.153821][2938:2943] CHIP:DMG: } - [1657884643.153988][2938:2943] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 3826372937 - [1657884643.154049][2938:2943] CHIP:TOO: LocalConfigDisabled: TRUE - [1657884643.154117][2938:2943] CHIP:DMG: MoveToState ReadClient[0xffffa40064f0]: Moving to [AwaitingSu] - [1657884643.154200][2938:2943] CHIP:EM: Piggybacking Ack for MessageCounter:137911473 on exchange: 45825i - [1657884643.154295][2938:2943] CHIP:IN: Prepared secure message 0xffffa4000d48 to 0x0000000000000001 (1) of type 0x1 and protocolId (0, 1) on exchange 45825i with MessageCounter:83158082. - [1657884643.154361][2938:2943] CHIP:IN: Sending encrypted msg 0xffffa4000d48 with MessageCounter:83158082 to 0x0000000000000001 (1) at monotonic time: 0000000000701C2A msec - [1657884643.155638][2938:2943] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:137911474 on exchange 45825i - [1657884643.155696][2938:2943] CHIP:EM: Found matching exchange: 45825i, Delegate: 0xffffa40064f0 - [1657884643.155750][2938:2943] CHIP:EM: Rxd Ack; Removing MessageCounter:83158082 from Retrans Table on exchange 45825i - [1657884643.155794][2938:2943] CHIP:EM: Removed CHIP MessageCounter:83158082 from RetransTable on exchange 45825i - [1657884643.155865][2938:2943] CHIP:DMG: SubscribeResponseMessage = - [1657884643.155913][2938:2943] CHIP:DMG: { - [1657884643.155957][2938:2943] CHIP:DMG: SubscriptionId = 0x2e0592e3, - [1657884643.156005][2938:2943] CHIP:DMG: MaxInterval = 0x64, - [1657884643.156051][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884643.156093][2938:2943] CHIP:DMG: } - [1657884643.156176][2938:2943] CHIP:DMG: Subscription established with SubscriptionID = 0x2e0592e3 MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 + Verify the above command multiple times by changing attribute value(3 times) disabled: true - label: - "[OPTIONAL] Activate the subscription between the DUT and the TH for - an attribute of data type string. Modify that attribute on the TH. TH - should send the modified data to the DUT. Modify the attribute + "Step 4: [OPTIONAL] Activate the subscription between the DUT and the + TH for an attribute of data type string. Modify that attribute on the + TH. TH should send the modified data to the DUT. Modify the attribute multiple times (3 times)." PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_String verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - In the case of chip tool as a client, here is an example command the client can write an attribute in the basic cluster in the TH to change the value that the client subscribed in the above command. - - - basicinformation subscribe node-label 30 200 1 0 - - On TH (On the reference app) Verify if DUT is responding with the below status response for the above command - - [1657446489.135811][11525:11525] CHIP:EM: Removed CHIP MessageCounter:79424307 from RetransTable on exchange 25r - [1657446489.135889][11525:11525] CHIP:DMG: StatusResponseMessage = - [1657446489.135938][11525:11525] CHIP:DMG: { - [1657446489.135982][11525:11525] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657446489.136036][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657446489.136080][11525:11525] CHIP:DMG: } - [1657446489.136123][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + In the case of chip tool as a client, here is an example command the client can write an attribute in the basic cluster in the TH to change the value that the client subscribed in the above command. + basicinformation subscribe node-label 30 200 1 0 --keepSubscriptions true + + On TH (all-clusters-app) Verify if DUT is responding with the below status response for the above command + [1686232456.706223][92910:92910] CHIP:EM: Handling via exchange: 59814r, Delegate: 0x5592c0755fc8 + [1686232456.706240][92910:92910] CHIP:IM: Received Subscribe request + [1686232456.706256][92910:92910] CHIP:DMG: SubscribeRequestMessage = + [1686232456.706260][92910:92910] CHIP:DMG: { + [1686232456.706263][92910:92910] CHIP:DMG: KeepSubscriptions = true, + [1686232456.706265][92910:92910] CHIP:DMG: MinIntervalFloorSeconds = 0x1e, + [1686232456.706270][92910:92910] CHIP:DMG: MaxIntervalCeilingSeconds = 0xc8, + [1686232456.706273][92910:92910] CHIP:DMG: AttributePathIBs = + [1686232456.706278][92910:92910] CHIP:DMG: [ + [1686232456.706281][92910:92910] CHIP:DMG: AttributePathIB = + [1686232456.706284][92910:92910] CHIP:DMG: { + [1686232456.706287][92910:92910] CHIP:DMG: Endpoint = 0x0, + [1686232456.706292][92910:92910] CHIP:DMG: Cluster = 0x28, + [1686232456.706294][92910:92910] CHIP:DMG: Attribute = 0x0000_0005, + [1686232456.706296][92910:92910] CHIP:DMG: } + [1686232456.706299][92910:92910] CHIP:DMG: + [1686232456.706301][92910:92910] CHIP:DMG: ], + [1686232456.706304][92910:92910] CHIP:DMG: + [1686232456.706307][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686232456.706310][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232456.706312][92910:92910] CHIP:DMG: }, + [1686232456.706335][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=v + [1686232456.706350][92910:92910] CHIP:DMG: AccessControl: allowed + + [1686232456.707036][92910:92910] CHIP:DMG: IM RH moving to [AwaitingReportResponse] + [1686232456.707039][92910:92910] CHIP:DMG: ReportsInFlight = 1 with readHandler 4, RE has no more messages + [1686232456.707041][92910:92910] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet + [1686232456.707231][92910:92910] CHIP:EM: >>> [E:59814r S:64937 M:87148815 (Ack:35251163)] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:01 (IM:StatusResponse) + [1686232456.707234][92910:92910] CHIP:EM: Found matching exchange: 59814r, Delegate: 0x5592c11544a8 + [1686232456.707238][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251163 from Retrans Table on exchange 59814r + [1686232456.707244][92910:92910] CHIP:DMG: StatusResponseMessage = + [1686232456.707246][92910:92910] CHIP:DMG: { + [1686232456.707248][92910:92910] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686232456.707251][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232456.707253][92910:92910] CHIP:DMG: } + [1686232456.707255][92910:92910] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686232456.707259][92910:92910] CHIP:DMG: Refresh Subscribe Sync Timer with min 30 seconds and max 200 seconds + + + In the case of chip tool as a client, here is an example command the client can write an attribute in the basicinformation cluster in the TH to change the value that the client subscribed in the above command. - In the case of chip tool as a client, here is an example command the client can write an attribute in the basic cluster in the TH to change the value that the client subscribed in the above command. + basicinformation write node-label label 1 0 + Verify on the TH that the status response received from the DUT for every report data sent is a "Success" + [1686232636.062711][92910:92910] CHIP:EM: >>> [E:59816r S:64937 M:87148829] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:06 (IM:WriteRequest) + [1686232636.062746][92910:92910] CHIP:EM: Handling via exchange: 59816r, Delegate: 0x5592c0755fc8 + [1686232636.062765][92910:92910] CHIP:IM: Received Write request + [1686232636.062771][92910:92910] CHIP:DMG: IM WH moving to [Initialized] + [1686232636.062800][92910:92910] CHIP:DMG: WriteRequestMessage = + [1686232636.062807][92910:92910] CHIP:DMG: { + [1686232636.062813][92910:92910] CHIP:DMG: suppressResponse = false, + [1686232636.062820][92910:92910] CHIP:DMG: timedRequest = false, + [1686232636.062827][92910:92910] CHIP:DMG: AttributeDataIBs = + [1686232636.062837][92910:92910] CHIP:DMG: [ + [1686232636.062843][92910:92910] CHIP:DMG: AttributeDataIB = + [1686232636.062851][92910:92910] CHIP:DMG: { + [1686232636.062857][92910:92910] CHIP:DMG: AttributePathIB = + [1686232636.062866][92910:92910] CHIP:DMG: { + [1686232636.062874][92910:92910] CHIP:DMG: Endpoint = 0x0, + [1686232636.062882][92910:92910] CHIP:DMG: Cluster = 0x28, + [1686232636.062890][92910:92910] CHIP:DMG: Attribute = 0x0000_0005, + [1686232636.062896][92910:92910] CHIP:DMG: } + [1686232636.062905][92910:92910] CHIP:DMG: + [1686232636.062915][92910:92910] CHIP:DMG: Data = "label" (5 chars), + [1686232636.062922][92910:92910] CHIP:DMG: }, + [1686232636.062932][92910:92910] CHIP:DMG: + [1686232636.062938][92910:92910] CHIP:DMG: ], + [1686232636.062947][92910:92910] CHIP:DMG: + [1686232636.062954][92910:92910] CHIP:DMG: moreChunkedMessages = false, + [1686232636.062960][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232636.062967][92910:92910] CHIP:DMG: }, + [1686232636.063008][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=m + [1686232636.063022][92910:92910] CHIP:DMG: AccessControl: allowed + + [1686232636.064517][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251186 from Retrans Table on exchange 59816r + [1686232636.065142][92910:92910] CHIP:EM: >>> [E:12025i S:64937 M:87148831 (Ack:35251187)] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:01 (IM:StatusResponse) + [1686232636.065165][92910:92910] CHIP:EM: Found matching exchange: 12025i, Delegate: 0x5592c11544a8 + [1686232636.065181][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251187 from Retrans Table on exchange 12025i + [1686232636.065204][92910:92910] CHIP:DMG: StatusResponseMessage = + [1686232636.065212][92910:92910] CHIP:DMG: { + [1686232636.065218][92910:92910] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686232636.065226][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232636.065231][92910:92910] CHIP:DMG: } + [1686232636.065240][92910:92910] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686232636.065249][92910:92910] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686232636.065255][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] - basicinformation write node-label label 1 0 - On TH (On the reference app) Verify if DUT is responding with the below status response for the above command - [1657446721.226280][11525:11525] CHIP:DMG: StatusResponseMessage = - [1657446721.226345][11525:11525] CHIP:DMG: { - [1657446721.226431][11525:11525] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657446721.226493][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657446721.226569][11525:11525] CHIP:DMG: } - [1657446721.226628][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS) - [1657446721.226711][11525:11525] CHIP:DMG: OnReportConfirm: NumReports = 0 - [1657446721.226773][11525:11525] CHIP:DMG: IM RH moving to [GeneratingReports] - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID - [1657884902.175205][2938:2943] CHIP:DMG: ReportDataMessage = - [1657884902.175255][2938:2943] CHIP:DMG: { - [1657884902.175299][2938:2943] CHIP:DMG: SubscriptionId = 0x6a6457a1, - [1657884902.175343][2938:2943] CHIP:DMG: AttributeReportIBs = - [1657884902.175399][2938:2943] CHIP:DMG: [ - [1657884902.175444][2938:2943] CHIP:DMG: AttributeReportIB = - [1657884902.175509][2938:2943] CHIP:DMG: { - [1657884902.175560][2938:2943] CHIP:DMG: AttributeDataIB = - [1657884902.175615][2938:2943] CHIP:DMG: { - [1657884902.175674][2938:2943] CHIP:DMG: DataVersion = 0xe411d14c, - [1657884902.175733][2938:2943] CHIP:DMG: AttributePathIB = - [1657884902.175798][2938:2943] CHIP:DMG: { - [1657884902.175866][2938:2943] CHIP:DMG: Endpoint = 0x0, - [1657884902.175936][2938:2943] CHIP:DMG: Cluster = 0x28, - [1657884902.176007][2938:2943] CHIP:DMG: Attribute = 0x0000_0005, - [1657884902.176067][2938:2943] CHIP:DMG: } - [1657884902.176147][2938:2943] CHIP:DMG: - [1657884902.176215][2938:2943] CHIP:DMG: Data = label, - [1657884902.176265][2938:2943] CHIP:DMG: }, - [1657884902.176322][2938:2943] CHIP:DMG: - [1657884902.176369][2938:2943] CHIP:DMG: }, - [1657884902.176424][2938:2943] CHIP:DMG: - [1657884902.176467][2938:2943] CHIP:DMG: ], - [1657884902.176522][2938:2943] CHIP:DMG: - [1657884902.176568][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884902.176610][2938:2943] CHIP:DMG: } - [1657884902.176771][2938:2943] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3826372940 - [1657884902.176833][2938:2943] CHIP:TOO: NodeLabel: label - [1657884902.176910][2938:2943] CHIP:DMG: Refresh LivenessCheckTime for 225000 milliseconds with SubscriptionId = 0x6a6457a1 Peer = 01:0000000000000001 Verify the above command multiple times by changing attribute value(3 times) disabled: true - label: - "[OPTIONAL] Activate the subscription between the DUT and the TH for - an attribute of data type unsigned integer. Modify that attribute on - the TH. TH should send the modified data to the DUT. Modify the - attribute multiple times (3 times)." + "Step 5: [OPTIONAL] Activate the subscription between the DUT and the + TH for an attribute of data type unsigned integer. Modify that + attribute on the TH. TH should send the modified data to the DUT. + Modify the attribute multiple times (3 times)." PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_UnsignedInteger verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - any subscribe-by-id 0x0008 0x0010 10 100 1 1 + + any subscribe-by-id 0x0008 0x0010 10 100 1 1 --keepSubscriptions true Verify on the TH(reference-app) that the status response received from the DUT for every report data sent is a "Success" - [1657448410.108491][11525:11525] CHIP:EM: Removed CHIP MessageCounter:11055857 from RetransTable on exchange 33616r - [1657448410.108543][11525:11525] CHIP:DMG: StatusResponseMessage = - [1657448410.108571][11525:11525] CHIP:DMG: { - [1657448410.108595][11525:11525] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657448410.108626][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657448410.108650][11525:11525] CHIP:DMG: } - [1657448410.108674][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS) - - On DUT as a client side, verify that TH all-clusters-app sent Subscription report with unic subscriptionID - [1657884929.244585][2938:2943] CHIP:DMG: ReportDataMessage = - [1657884929.244654][2938:2943] CHIP:DMG: { - [1657884929.244716][2938:2943] CHIP:DMG: SubscriptionId = 0x6cee9660, - [1657884929.244791][2938:2943] CHIP:DMG: AttributeReportIBs = - [1657884929.244873][2938:2943] CHIP:DMG: [ - [1657884929.244935][2938:2943] CHIP:DMG: AttributeReportIB = - [1657884929.245032][2938:2943] CHIP:DMG: { - [1657884929.245098][2938:2943] CHIP:DMG: AttributeDataIB = - [1657884929.245170][2938:2943] CHIP:DMG: { - [1657884929.245245][2938:2943] CHIP:DMG: DataVersion = 0xccfe0684, - [1657884929.245319][2938:2943] CHIP:DMG: AttributePathIB = - [1657884929.245395][2938:2943] CHIP:DMG: { - [1657884929.245474][2938:2943] CHIP:DMG: Endpoint = 0x1, - [1657884929.245556][2938:2943] CHIP:DMG: Cluster = 0x8, - [1657884929.245638][2938:2943] CHIP:DMG: Attribute = 0x0000_0010, - [1657884929.245696][2938:2943] CHIP:DMG: } - [1657884929.245773][2938:2943] CHIP:DMG: - [1657884929.245841][2938:2943] CHIP:DMG: Data = 1, - [1657884929.245897][2938:2943] CHIP:DMG: }, - [1657884929.245955][2938:2943] CHIP:DMG: - [1657884929.246003][2938:2943] CHIP:DMG: }, - [1657884929.246059][2938:2943] CHIP:DMG: - [1657884929.246104][2938:2943] CHIP:DMG: ], - [1657884929.246160][2938:2943] CHIP:DMG: - [1657884929.246207][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884929.246252][2938:2943] CHIP:DMG: } - [1657884929.246416][2938:2943] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 3439199876 - [1657884929.246496][2938:2943] CHIP:TOO: on off transition time: 0 - [1657884929.246565][2938:2943] CHIP:DMG: MoveToState ReadClient[0xffffa40064f0]: Moving to [AwaitingSu] - [1657884929.246666][2938:2943] CHIP:EM: Piggybacking Ack for MessageCounter:137911484 on exchange: 45830i - [1657884929.246777][2938:2943] CHIP:IN: Prepared secure message 0xffffa4000db8 to 0x0000000000000001 (1) of type 0x1 and protocolId (0, 1) on exchange 45830i with MessageCounter:83158096. - [1657884929.246851][2938:2943] CHIP:IN: Sending encrypted msg 0xffffa4000db8 with MessageCounter:83158096 to 0x0000000000000001 (1) at monotonic time: 00000000007479B6 msec - [1657884929.248540][2938:2943] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:137911485 on exchange 45830i - [1657884929.248614][2938:2943] CHIP:EM: Found matching exchange: 45830i, Delegate: 0xffffa40064f0 - [1657884929.248678][2938:2943] CHIP:EM: Rxd Ack; Removing MessageCounter:83158096 from Retrans Table on exchange 45830i - [1657884929.248724][2938:2943] CHIP:EM: Removed CHIP MessageCounter:83158096 from RetransTable on exchange 45830i - [1657884929.248809][2938:2943] CHIP:DMG: SubscribeResponseMessage = - [1657884929.248858][2938:2943] CHIP:DMG: { - [1657884929.248904][2938:2943] CHIP:DMG: SubscriptionId = 0x6cee9660, - [1657884929.248953][2938:2943] CHIP:DMG: MaxInterval = 0x64, - [1657884929.249003][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884929.249047][2938:2943] CHIP:DMG: } - [1657884929.249098][2938:2943] CHIP:DMG: Subscription established with SubscriptionID = 0x6cee9660 MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 + [1686232748.726308][92910:92910] CHIP:EM: Handling via exchange: 59817r, Delegate: 0x5592c0755fc8 + [1686232748.726333][92910:92910] CHIP:IM: Received Subscribe request + [1686232748.726358][92910:92910] CHIP:DMG: SubscribeRequestMessage = + [1686232748.726364][92910:92910] CHIP:DMG: { + [1686232748.726369][92910:92910] CHIP:DMG: KeepSubscriptions = true, + [1686232748.726375][92910:92910] CHIP:DMG: MinIntervalFloorSeconds = 0xa, + [1686232748.726381][92910:92910] CHIP:DMG: MaxIntervalCeilingSeconds = 0x64, + [1686232748.726386][92910:92910] CHIP:DMG: AttributePathIBs = + [1686232748.726392][92910:92910] CHIP:DMG: [ + [1686232748.726397][92910:92910] CHIP:DMG: AttributePathIB = + [1686232748.726402][92910:92910] CHIP:DMG: { + [1686232748.726408][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686232748.726413][92910:92910] CHIP:DMG: Cluster = 0x8, + [1686232748.726422][92910:92910] CHIP:DMG: Attribute = 0x0000_0010, + [1686232748.726433][92910:92910] CHIP:DMG: } + [1686232748.726442][92910:92910] CHIP:DMG: + [1686232748.726448][92910:92910] CHIP:DMG: ], + [1686232748.726459][92910:92910] CHIP:DMG: + [1686232748.726466][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686232748.726473][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232748.726481][92910:92910] CHIP:DMG: }, + [1686232748.726504][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0008 e=1 p=v + [1686232748.726518][92910:92910] CHIP:DMG: AccessControl: allowed + [1686232748.726567][92910:92910] CHIP:DMG: Final negotiated min/max parameters: Min = 10s, Max = 100s + + [1686232748.729045][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251199 from Retrans Table on exchange 59817r + [1686232748.729068][92910:92910] CHIP:DMG: StatusResponseMessage = + [1686232748.729076][92910:92910] CHIP:DMG: { + [1686232748.729083][92910:92910] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686232748.729091][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232748.729097][92910:92910] CHIP:DMG: } + [1686232748.729105][92910:92910] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686232748.729121][92910:92910] CHIP:DMG: Refresh Subscribe Sync Timer with min 10 seconds and max 100 seconds + [1686232748.729157][92910:92910] CHIP:EM: <<< [E:59817r S:64937 M:35251200 (Ack:87148838)] (S) Msg TX to 1:000000000001B669 [58B9] --- Type 0001:04 (IM:SubscribeResponse) + [1686232748.729170][92910:92910] CHIP:IN: (S) Sending msg 35251200 on secure session with LSID: 64937 + + + + + + In the case of chip tool as a client, here is an example command the client can write an attribute in the basicinformation cluster in the TH to change the value that the client subscribed in the above command. - In the case of chip tool as a client, here is an example command the client can write an attribute in the basic cluster in the TH to change the value that the client subscribed in the above command. + any write-by-id 0x0008 0x0010 1 1 1 + Verify on the TH(all-clusters-app) that the status response received from the DUT for every report data sent is a "Success" + [1686232799.909935][92910:92910] CHIP:EM: Handling via exchange: 59818r, Delegate: 0x5592c0755fc8 + [1686232799.909960][92910:92910] CHIP:IM: Received Write request + [1686232799.909968][92910:92910] CHIP:DMG: IM WH moving to [Initialized] + [1686232799.909995][92910:92910] CHIP:DMG: WriteRequestMessage = + [1686232799.910002][92910:92910] CHIP:DMG: { + [1686232799.910009][92910:92910] CHIP:DMG: suppressResponse = false, + [1686232799.910015][92910:92910] CHIP:DMG: timedRequest = false, + [1686232799.910021][92910:92910] CHIP:DMG: AttributeDataIBs = + [1686232799.910035][92910:92910] CHIP:DMG: [ + [1686232799.910042][92910:92910] CHIP:DMG: AttributeDataIB = + [1686232799.910051][92910:92910] CHIP:DMG: { + [1686232799.910057][92910:92910] CHIP:DMG: AttributePathIB = + [1686232799.910066][92910:92910] CHIP:DMG: { + [1686232799.910075][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686232799.910082][92910:92910] CHIP:DMG: Cluster = 0x8, + [1686232799.910090][92910:92910] CHIP:DMG: Attribute = 0x0000_0010, + [1686232799.910096][92910:92910] CHIP:DMG: } + [1686232799.910105][92910:92910] CHIP:DMG: + [1686232799.910113][92910:92910] CHIP:DMG: Data = 1, + [1686232799.910120][92910:92910] CHIP:DMG: }, + [1686232799.910130][92910:92910] CHIP:DMG: + [1686232799.910136][92910:92910] CHIP:DMG: ], + [1686232799.910144][92910:92910] CHIP:DMG: + [1686232799.910151][92910:92910] CHIP:DMG: moreChunkedMessages = false, + [1686232799.910158][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232799.910164][92910:92910] CHIP:DMG: }, + [1686232799.910203][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0008 e=1 p=o + [1686232799.910216][92910:92910] CHIP:DMG: AccessControl: allowed + [1686232799.910231][92910:92910] CHIP:DMG: Endpoint 1, Cluster 0x0000_0008 update version to a323e908 + + [1686232799.910966][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251203 from Retrans Table on exchange 59818r + [1686232799.911589][92910:92910] CHIP:EM: >>> [E:12032i S:64937 M:87148843 (Ack:35251204)] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:01 (IM:StatusResponse) + [1686232799.911616][92910:92910] CHIP:EM: Found matching exchange: 12032i, Delegate: 0x5592c1153ef8 + [1686232799.911634][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251204 from Retrans Table on exchange 12032i + [1686232799.911659][92910:92910] CHIP:DMG: StatusResponseMessage = + [1686232799.911667][92910:92910] CHIP:DMG: { + [1686232799.911674][92910:92910] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686232799.911681][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232799.911687][92910:92910] CHIP:DMG: } + [1686232799.911694][92910:92910] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686232799.911703][92910:92910] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686232799.911709][92910:92910] CHIP:DMG: IM RH moving to [GeneratingReports] - In the case of chip tool as a client, here is an example command the client can write an attribute in the basic cluster in the TH to change the value that the client subscribed in the above command. - any write-by-id 0x0008 0x0010 1 1 1 - - [1657448453.234310][11525:11525] CHIP:EM: Removed CHIP MessageCounter:11055860 from RetransTable on exchange 8514i - [1657448453.234372][11525:11525] CHIP:DMG: StatusResponseMessage = - [1657448453.234409][11525:11525] CHIP:DMG: { - [1657448453.234442][11525:11525] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657448453.234478][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657448453.234510][11525:11525] CHIP:DMG: } - [1657448453.234542][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS) - [1657448453.234577][11525:11525] CHIP:DMG: OnReportConfirm: NumReports = 0 - - - - If the DUT has to provision to verify the logs, , verify that TH all-clusters-app sent Subscription report with unic subscriptionID - [1657884955.073466][2938:2943] CHIP:DMG: ReportDataMessage = - [1657884955.073516][2938:2943] CHIP:DMG: { - [1657884955.073562][2938:2943] CHIP:DMG: SubscriptionId = 0x6cee9660, - [1657884955.073608][2938:2943] CHIP:DMG: AttributeReportIBs = - [1657884955.073666][2938:2943] CHIP:DMG: [ - [1657884955.073711][2938:2943] CHIP:DMG: AttributeReportIB = - [1657884955.073770][2938:2943] CHIP:DMG: { - [1657884955.073818][2938:2943] CHIP:DMG: AttributeDataIB = - [1657884955.073882][2938:2943] CHIP:DMG: { - [1657884955.073943][2938:2943] CHIP:DMG: DataVersion = 0xccfe0685, - [1657884955.074003][2938:2943] CHIP:DMG: AttributePathIB = - [1657884955.074064][2938:2943] CHIP:DMG: { - [1657884955.074128][2938:2943] CHIP:DMG: Endpoint = 0x1, - [1657884955.074199][2938:2943] CHIP:DMG: Cluster = 0x8, - [1657884955.074263][2938:2943] CHIP:DMG: Attribute = 0x0000_0010, - [1657884955.074329][2938:2943] CHIP:DMG: } - [1657884955.074393][2938:2943] CHIP:DMG: - [1657884955.074455][2938:2943] CHIP:DMG: Data = 1, - [1657884955.074512][2938:2943] CHIP:DMG: }, - [1657884955.074574][2938:2943] CHIP:DMG: - [1657884955.074625][2938:2943] CHIP:DMG: }, - [1657884955.074684][2938:2943] CHIP:DMG: - [1657884955.074732][2938:2943] CHIP:DMG: ], - [1657884955.074788][2938:2943] CHIP:DMG: - [1657884955.074833][2938:2943] CHIP:DMG: InteractionModelRevision = 1 - [1657884955.074877][2938:2943] CHIP:DMG: } - [1657884955.075032][2938:2943] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 3439199877 - [1657884955.075095][2938:2943] CHIP:TOO: on off transition time: 1 - [1657884955.075170][2938:2943] CHIP:DMG: Refresh LivenessCheckTime for 125000 milliseconds with SubscriptionId = 0x6cee9660 Peer = 01:0000000000000001 Verify the above command multiple times by changing attribute value(3 times) disabled: true - label: - "[OPTIONAL] Activate the subscription between the DUT and the TH for - an attribute of data type signed integer. Modify that attribute on the - TH. TH should send the modified data to the DUT. Modify the attribute - multiple times (3 times)" + "Step 6: [OPTIONAL] Activate the subscription between the DUT and the + TH for an attribute of data type signed integer. Modify that attribute + on the TH. TH should send the modified data to the DUT. Modify the + attribute multiple times (3 times)" PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_Integer verification: | DUT implementation required to verify subscribe an attribute of data type signed integer @@ -494,23 +513,23 @@ tests: disabled: true - label: - "[OPTIONAL] Activate the subscription between the DUT and the TH for - an attribute of data type Floating Point. Modify that attribute on the - TH. TH should send the modified data to the DUT. Modify the attribute - multiple times (3 times)" + "Step 7: [OPTIONAL] Activate the subscription between the DUT and the + TH for an attribute of data type Floating Point. Modify that attribute + on the TH. TH should send the modified data to the DUT. Modify the + attribute multiple times (3 times)" PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_FloatingPoint verification: | DUT implementation required to verify subscribe an attribute of data type floating point - If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "[OPTIONAL] Activate the subscription between the DUT and the TH for - an attribute of data type list. Modify that attribute on the TH. TH - should send the modified data to the DUT. Modify the attribute + "Step 8: [OPTIONAL] Activate the subscription between the DUT and the + TH for an attribute of data type list. Modify that attribute on the + TH. TH should send the modified data to the DUT. Modify the attribute multiple times (3 times)" PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_List verification: | @@ -522,28 +541,26 @@ tests: disabled: true - label: - "Activate the subscription between the DUT and the TH for an + "Step 9: Activate the subscription between the DUT and the TH for an attribute. Force the TH to not send any report data for the duration of the maximum interval. After the maximum interval, TH sends a report data with the subscription id created during the subscription activation." PICS: MCORE.IDM.C.SubscribeRequest verification: | - Out of scope for V1.0 + Out of scope disabled: true - label: - "DUT sends a subscription request message to the target node/reference - device for multiple attributes(3 attributes)." + "Step 10: DUT sends a subscription request message to the target + node/reference device for multiple attributes(3 attributes)." PICS: MCORE.IDM.C.SubscribeRequest.MultipleAttributes verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - any subscribe-by-id '6,8,3' '0,1,0' 10 100 1 '1,1,1' + any subscribe-by-id '6,8,3' '0,1,0' 10 100 1 '1,1,1' --keepSubscriptions true - On the TH(reference device) verify the subscription request message received has the following fields. + On the TH(all-clusters-app) verify the subscription request message received has the following fields. KeepSubscriptions which is of type bool MinIntervalFloor which is of type uint16 MaxIntervalCeiling which is of type uint16 @@ -552,63 +569,56 @@ tests: [Optional]EventRequests which is of type list [Optional]EventFilters which is of type list FabricFiltered which is of type bool - [1657449168.663911][11525:11525] CHIP:EM: Handling via exchange: 33620r, Delegate: 0xaaaae00c1430 - [1657449168.664027][11525:11525] CHIP:IM: Received Subscribe request - [1657449168.664216][11525:11525] CHIP:IM: Deleting previous subscription from NodeId: 000000000001B669, FabricIndex: 1 - [1657449168.664345][11525:11525] CHIP:DMG: SubscribeRequestMessage = - [1657449168.664408][11525:11525] CHIP:DMG: { - [1657449168.664467][11525:11525] CHIP:DMG: KeepSubscriptions = false, - [1657449168.664532][11525:11525] CHIP:DMG: MinIntervalFloorSeconds = 0xa, - [1657449168.664597][11525:11525] CHIP:DMG: MaxIntervalCeilingSeconds = 0x64, - [1657449168.664658][11525:11525] CHIP:DMG: AttributePathIBs = - [1657449168.664722][11525:11525] CHIP:DMG: [ - [1657449168.664782][11525:11525] CHIP:DMG: AttributePathIB = - [1657449168.664848][11525:11525] CHIP:DMG: { - [1657449168.664916][11525:11525] CHIP:DMG: Endpoint = 0x1, - [1657449168.664993][11525:11525] CHIP:DMG: Cluster = 0x6, - [1657449168.665074][11525:11525] CHIP:DMG: Attribute = 0x0000_0000, - [1657449168.665149][11525:11525] CHIP:DMG: } - [1657449168.665225][11525:11525] CHIP:DMG: - [1657449168.665289][11525:11525] CHIP:DMG: AttributePathIB = - [1657449168.665353][11525:11525] CHIP:DMG: { - [1657449168.665420][11525:11525] CHIP:DMG: Endpoint = 0x1, - [1657449168.665495][11525:11525] CHIP:DMG: Cluster = 0x8, - [1657449168.665573][11525:11525] CHIP:DMG: Attribute = 0x0000_0001, - [1657449168.665646][11525:11525] CHIP:DMG: } - [1657449168.665721][11525:11525] CHIP:DMG: - [1657449168.665783][11525:11525] CHIP:DMG: AttributePathIB = - [1657449168.665847][11525:11525] CHIP:DMG: { - [1657449168.665913][11525:11525] CHIP:DMG: Endpoint = 0x1, - [1657449168.665988][11525:11525] CHIP:DMG: Cluster = 0x3, - [1657449168.666073][11525:11525] CHIP:DMG: Attribute = 0x0000_0000, - [1657449168.666152][11525:11525] CHIP:DMG: } - [1657449168.666225][11525:11525] CHIP:DMG: - [1657449168.666286][11525:11525] CHIP:DMG: ], - [1657449168.666362][11525:11525] CHIP:DMG: - [1657449168.666427][11525:11525] CHIP:DMG: isFabricFiltered = true, - [1657449168.666488][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657449168.666545][11525:11525] CHIP:DMG: }, - [1657449168.666762][11525:11525] CHIP:DMG: Final negotiated min/max parameters: Min = 10s, Max = 100s - - [1657449168.674140][11525:11525] CHIP:EM: Removed CHIP MessageCounter:11055871 from RetransTable on exchange 33620r - [1657449168.674191][11525:11525] CHIP:DMG: StatusResponseMessage = - [1657449168.674220][11525:11525] CHIP:DMG: { - [1657449168.674246][11525:11525] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657449168.674273][11525:11525] CHIP:DMG: InteractionModelRevision = 1 - [1657449168.674297][11525:11525] CHIP:DMG: } - [1657449168.674324][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS) - [1657449168.674365][11525:11525] CHIP:DMG: Refresh Subscribe Sync Timer with max 100 seconds - - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID - [1662036515.630221][166451:166456] CHIP:DMG: } - [1662036515.630284][166451:166456] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3175537504 - [1662036515.630298][166451:166456] CHIP:TOO: identify time: 0 - [1662036515.630329][166451:166456] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0001 DataVersion: 3999635638 - [1662036515.630338][166451:166456] CHIP:TOO: RemainingTime: 0 - [1662036515.630366][166451:166456] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 2488235261 - [1662036515.630375][166451:166456] CHIP:TOO: OnOff: FALSE - [1662036515.630396][166451:166456] CHIP:DMG: MoveToState ReadClient[0x7fee1c024260]: Moving to [AwaitingSu] - [1662036515.630416][166451:166456] CHIP:EM: Piggybacking Ack for MessageCounter:196351589 on exchange: 20857i + 907.168261][92910:92910] CHIP:EM: Handling via exchange: 59819r, Delegate: 0x5592c0755fc8 + [1686232907.168281][92910:92910] CHIP:IM: Received Subscribe request + [1686232907.168308][92910:92910] CHIP:DMG: SubscribeRequestMessage = + [1686232907.168315][92910:92910] CHIP:DMG: { + [1686232907.168322][92910:92910] CHIP:DMG: KeepSubscriptions = true, + [1686232907.168329][92910:92910] CHIP:DMG: MinIntervalFloorSeconds = 0xa, + [1686232907.168337][92910:92910] CHIP:DMG: MaxIntervalCeilingSeconds = 0x64, + [1686232907.168344][92910:92910] CHIP:DMG: AttributePathIBs = + [1686232907.168352][92910:92910] CHIP:DMG: [ + [1686232907.168361][92910:92910] CHIP:DMG: AttributePathIB = + [1686232907.168369][92910:92910] CHIP:DMG: { + [1686232907.168377][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686232907.168384][92910:92910] CHIP:DMG: Cluster = 0x6, + [1686232907.168392][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686232907.168398][92910:92910] CHIP:DMG: } + [1686232907.168407][92910:92910] CHIP:DMG: + [1686232907.168413][92910:92910] CHIP:DMG: AttributePathIB = + [1686232907.168420][92910:92910] CHIP:DMG: { + [1686232907.168427][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686232907.168434][92910:92910] CHIP:DMG: Cluster = 0x8, + [1686232907.168441][92910:92910] CHIP:DMG: Attribute = 0x0000_0001, + [1686232907.168448][92910:92910] CHIP:DMG: } + [1686232907.168456][92910:92910] CHIP:DMG: + [1686232907.168462][92910:92910] CHIP:DMG: AttributePathIB = + [1686232907.168469][92910:92910] CHIP:DMG: { + [1686232907.168476][92910:92910] CHIP:DMG: Endpoint = 0x1, + [1686232907.168483][92910:92910] CHIP:DMG: Cluster = 0x3, + [1686232907.168489][92910:92910] CHIP:DMG: Attribute = 0x0000_0000, + [1686232907.168496][92910:92910] CHIP:DMG: } + [1686232907.168504][92910:92910] CHIP:DMG: + [1686232907.168510][92910:92910] CHIP:DMG: ], + [1686232907.168521][92910:92910] CHIP:DMG: + [1686232907.168528][92910:92910] CHIP:DMG: isFabricFiltered = true, + [1686232907.168536][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232907.168542][92910:92910] CHIP:DMG: }, + [1686232907.168566][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=v + [1686232907.168578][92910:92910] CHIP:DMG: AccessControl: allowed + [1686232907.168590][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0008 e=1 p=v + [1686232907.168595][92910:92910] CHIP:DMG: AccessControl: allowed + [1686232907.168607][92910:92910] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=v + [1686232907.168612][92910:92910] CHIP:DMG: AccessControl: allowed + + [1686232907.171966][92910:92910] CHIP:EM: >>> [E:59819r S:64937 M:87148852 (Ack:35251220)] (S) Msg RX from 1:000000000001B669 [58B9] --- Type 0001:01 (IM:StatusResponse) + [1686232907.171990][92910:92910] CHIP:EM: Found matching exchange: 59819r, Delegate: 0x5592c1155978 + [1686232907.172005][92910:92910] CHIP:EM: Rxd Ack; Removing MessageCounter:35251220 from Retrans Table on exchange 59819r + [1686232907.172029][92910:92910] CHIP:DMG: StatusResponseMessage = + [1686232907.172037][92910:92910] CHIP:DMG: { + [1686232907.172044][92910:92910] CHIP:DMG: Status = 0x00 (SUCCESS), + [1686232907.172051][92910:92910] CHIP:DMG: InteractionModelRevision = 1 + [1686232907.172057][92910:92910] CHIP:DMG: } + [1686232907.172065][92910:92910] CHIP:IM: Received status response, status is 0x00 (SUCCESS) + [1686232907.172082][92910:92910] CHIP:DMG: Refresh Subscribe Sync Timer with min 10 seconds and max 100 seconds disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml index 84ba664bae896e..c5737a5fb6c3b7 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml @@ -33,135 +33,87 @@ tests: disabled: true - label: - "TH sends a subscription message to the DUT with MaxIntervalCeiling - set to a value greater than 60 mins. DUT sends a report data action to - the TH. TH sends a success status response to the DUT. DUT sends a - Subscribe Response Message to the TH to activate the subscription." + "Step 1: TH sends a subscription message to the DUT with + MaxIntervalCeiling set to a value greater than 60 mins. DUT sends a + report data action to the TH. TH sends a success status response to + the DUT. DUT sends a Subscribe Response Message to the TH to activate + the subscription." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - onoff subscribe on-off 100 3900(65 mins) 1 1 + onoff subscribe on-off 100 3900 1 1 --keepSubscriptions true - Verify on the TH(reference app), a report data message is received and verify it contains the following data : + On the TH(reference app), verify a report data message is received and verify it contains the following data : Report data - data of the attribute/event requested earlier. Verify on the TH the Subscribe Response has the following fields, SubscriptionId - Verify it is of type uint32. MaxInterval - Verify it is of type uint32. Verify that the MaxInterval is less than or equal MaxIntervalCeiling. - m RetransTable on exchange 33626i - [1657449840.232430][11635:11640] CHIP:DMG: ReportDataMessage = - [1657449840.232485][11635:11640] CHIP:DMG: { - [1657449840.232536][11635:11640] CHIP:DMG: SubscriptionId = 0xaa467997, - [1657449840.232588][11635:11640] CHIP:DMG: AttributeReportIBs = - [1657449840.232654][11635:11640] CHIP:DMG: [ - [1657449840.232704][11635:11640] CHIP:DMG: AttributeReportIB = - [1657449840.232773][11635:11640] CHIP:DMG: { - [1657449840.232827][11635:11640] CHIP:DMG: AttributeDataIB = - [1657449840.232858][11635:11640] CHIP:DMG: { - [1657449840.232885][11635:11640] CHIP:DMG: DataVersion = 0x1979c37, - [1657449840.232911][11635:11640] CHIP:DMG: AttributePathIB = - [1657449840.232940][11635:11640] CHIP:DMG: { - [1657449840.232969][11635:11640] CHIP:DMG: Endpoint = 0x1, - [1657449840.232998][11635:11640] CHIP:DMG: Cluster = 0x6, - [1657449840.233028][11635:11640] CHIP:DMG: Attribute = 0x0000_0000, - [1657449840.233055][11635:11640] CHIP:DMG: } - [1657449840.233085][11635:11640] CHIP:DMG: - [1657449840.233175][11635:11640] CHIP:DMG: Data = false, - [1657449840.233204][11635:11640] CHIP:DMG: }, - [1657449840.233234][11635:11640] CHIP:DMG: - [1657449840.233257][11635:11640] CHIP:DMG: }, - [1657449840.233284][11635:11640] CHIP:DMG: - [1657449840.233305][11635:11640] CHIP:DMG: ], - [1657449840.233334][11635:11640] CHIP:DMG: - [1657449840.233355][11635:11640] CHIP:DMG: InteractionModelRevision = 1 - [1657449840.233405][11635:11640] CHIP:DMG: } - [1657449840.233501][11635:11640] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 26713143 - [1657449840.233534][11635:11640] CHIP:TOO: OnOff: FALSE - [1657449840.233567][11635:11640] CHIP:DMG: MoveToState ReadClient[0xffff94008e30]: Moving to [AwaitingSu] - - [1657449840.235116][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733039 from RetransTable on exchange 33626i - [1657449840.235199][11635:11640] CHIP:DMG: SubscribeResponseMessage = - [1657449840.235231][11635:11640] CHIP:DMG: { - [1657449840.235259][11635:11640] CHIP:DMG: SubscriptionId = 0xaa467997, - [1657449840.235301][11635:11640] CHIP:DMG: MaxInterval = 0xf3c, - [1657449840.235331][11635:11640] CHIP:DMG: InteractionModelRevision = 1 - [1657449840.235356][11635:11640] CHIP:DMG: } - [1657449840.235485][11635:11640] CHIP:DMG: Subscription established with SubscriptionID = 0xaa467997 MinInterval = 100s MaxInterval = 3900s Peer = 01:0000000000000001 - [1657449840.235531][11635:11640] CHIP:DMG: MoveToState ReadClient[0xffff94008e30]: Moving to [Subscripti] - MaxInterval and MaxIntervalCeiling are different parameters. One is sent from the TH the other from DUT, verify MaxInterval >= MaxIntervalCeiling + [1686294743.438593][101362:101364] CHIP:DMG: ], + [1686294743.438598][101362:101364] CHIP:DMG: + [1686294743.438601][101362:101364] CHIP:DMG: InteractionModelRevision = 1 + [1686294743.438604][101362:101364] CHIP:DMG: } + [1686294743.438641][101362:101364] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3334871844 + [1686294743.438651][101362:101364] CHIP:TOO: OnOff: FALSE + [1686294743.438663][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec011c50]: Moving to [AwaitingSu] + [1686294743.438688][101362:101364] CHIP:EM: <<< [E:49832i S:18140 M:226017852 (Ack:29621147)] (S) Msg TX to 1:0000000000000001 [A822] --- Type 0001:01 (IM:StatusResponse) + [1686294743.438695][101362:101364] CHIP:IN: (S) Sending msg 226017852 on secure session with LSID: 18140 + [1686294743.441447][101362:101364] CHIP:EM: >>> [E:49832i S:18140 M:29621148 (Ack:226017852)] (S) Msg RX from 1:0000000000000001 [A822] --- Type 0001:04 (IM:SubscribeResponse) + [1686294743.441455][101362:101364] CHIP:EM: Found matching exchange: 49832i, Delegate: 0x7fc7ec011c60 + [1686294743.441461][101362:101364] CHIP:EM: Rxd Ack; Removing MessageCounter:226017852 from Retrans Table on exchange 49832i + [1686294743.441467][101362:101364] CHIP:DMG: SubscribeResponse is received + [1686294743.441475][101362:101364] CHIP:DMG: SubscribeResponseMessage = + [1686294743.441479][101362:101364] CHIP:DMG: { + [1686294743.441483][101362:101364] CHIP:DMG: SubscriptionId = 0x51734852, + [1686294743.441487][101362:101364] CHIP:DMG: MaxInterval = 0xf3c, + [1686294743.441490][101362:101364] CHIP:DMG: InteractionModelRevision = 1 + [1686294743.441494][101362:101364] CHIP:DMG: } + [1686294743.441498][101362:101364] CHIP:DMG: Subscription established with SubscriptionID = 0x51734852 MinInterval = 100s MaxInterval = 3900s Peer = 01:0000000000000001 + [1686294743.441504][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec011c50]: Moving to [Subscripti] disabled: true - label: - "TH sends a subscription message to the DUT with MaxIntervalCeiling - set to a value less than 60 mins. DUT sends a report data action to - the TH. TH sends a success status response to the DUT. DUT sends a - Subscribe Response Message to the TH to activate the subscription." + "Step 2: TH sends a subscription message to the DUT with + MaxIntervalCeiling set to a value less than 60 mins. DUT sends a + report data action to the TH. TH sends a success status response to + the DUT. DUT sends a Subscribe Response Message to the TH to activate + the subscription." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - basicinformation subscribe location 10 2400 1 0 - Verify on the TH, a report data message is received and verify it contains the following data : + basicinformation subscribe location 10 2400 1 0 --keepSubscriptions true + On the TH(chip-tool), verify a report data message is received and verify it contains the following data : Report data - data of the attribute/event requested earlier. Verify on the TH the Subscribe Response has the following fields, SubscriptionId - Verify it is of type uint32. MaxInterval - Verify it is of type uint32. Verify that the MaxInterval is less than or equal to 60 mins. - m RetransTable on exchange 33628i - [1657450022.756280][11635:11640] CHIP:DMG: ReportDataMessage = - [1657450022.756349][11635:11640] CHIP:DMG: { - [1657450022.756411][11635:11640] CHIP:DMG: SubscriptionId = 0x28f88a5d, - [1657450022.756475][11635:11640] CHIP:DMG: AttributeReportIBs = - [1657450022.756552][11635:11640] CHIP:DMG: [ - [1657450022.756614][11635:11640] CHIP:DMG: AttributeReportIB = - [1657450022.756704][11635:11640] CHIP:DMG: { - [1657450022.756765][11635:11640] CHIP:DMG: AttributeDataIB = - [1657450022.756841][11635:11640] CHIP:DMG: { - [1657450022.756923][11635:11640] CHIP:DMG: DataVersion = 0x59b457fc, - [1657450022.757002][11635:11640] CHIP:DMG: AttributePathIB = - [1657450022.757083][11635:11640] CHIP:DMG: { - [1657450022.757168][11635:11640] CHIP:DMG: Endpoint = 0x0, - [1657450022.757257][11635:11640] CHIP:DMG: Cluster = 0x28, - [1657450022.757337][11635:11640] CHIP:DMG: Attribute = 0x0000_0006, - [1657450022.757418][11635:11640] CHIP:DMG: } - [1657450022.757497][11635:11640] CHIP:DMG: - [1657450022.757584][11635:11640] CHIP:DMG: Data = "XX", - [1657450022.757654][11635:11640] CHIP:DMG: }, - [1657450022.757737][11635:11640] CHIP:DMG: - [1657450022.757800][11635:11640] CHIP:DMG: }, - [1657450022.757837][11635:11640] CHIP:DMG: - [1657450022.757867][11635:11640] CHIP:DMG: ], - [1657450022.757905][11635:11640] CHIP:DMG: - [1657450022.757937][11635:11640] CHIP:DMG: InteractionModelRevision = 1 - [1657450022.757967][11635:11640] CHIP:DMG: } - [1657450022.758081][11635:11640] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 1504991228 - [1657450022.758127][11635:11640] CHIP:TOO: Location: XX - [1657450022.758172][11635:11640] CHIP:DMG: MoveToState ReadClient[0xffff94008c70]: Moving to [AwaitingSu] - - - [1657450022.759670][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733045 from RetransTable on exchange 33628i - [1657450022.759741][11635:11640] CHIP:DMG: SubscribeResponseMessage = - [1657450022.759775][11635:11640] CHIP:DMG: { - [1657450022.759805][11635:11640] CHIP:DMG: SubscriptionId = 0x28f88a5d, - [1657450022.759839][11635:11640] CHIP:DMG: MaxInterval = 0x960, - [1657450022.759871][11635:11640] CHIP:DMG: InteractionModelRevision = 1 - [1657450022.759900][11635:11640] CHIP:DMG: } - [1657450022.759933][11635:11640] CHIP:DMG: Subscription established with SubscriptionID = 0x28f88a5d MinInterval = 10s MaxInterval = 2400s Peer = 01:0000000000000001 + [1686294932.404445][101362:101364] CHIP:DMG: InteractionModelRevision = 1 + [1686294932.404449][101362:101364] CHIP:DMG: } + [1686294932.404497][101362:101364] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0006 DataVersion: 946377024 + [1686294932.404508][101362:101364] CHIP:TOO: Location: XX + [1686294932.404523][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec00e400]: Moving to [AwaitingSu] + [1686294932.404565][101362:101364] CHIP:EM: <<< [E:49833i S:18140 M:226017855 (Ack:29621149)] (S) Msg TX to 1:0000000000000001 [A822] --- Type 0001:01 (IM:StatusResponse) + [1686294932.404575][101362:101364] CHIP:IN: (S) Sending msg 226017855 on secure session with LSID: 18140 + [1686294932.420682][101362:101364] CHIP:EM: >>> [E:49833i S:18140 M:29621150 (Ack:226017855)] (S) Msg RX from 1:0000000000000001 [A822] --- Type 0001:04 (IM:SubscribeResponse) + [1686294932.420716][101362:101364] CHIP:EM: Found matching exchange: 49833i, Delegate: 0x7fc7ec00e410 + [1686294932.420737][101362:101364] CHIP:EM: Rxd Ack; Removing MessageCounter:226017855 from Retrans Table on exchange 49833i + [1686294932.420754][101362:101364] CHIP:DMG: SubscribeResponse is received + [1686294932.420777][101362:101364] CHIP:DMG: SubscribeResponseMessage = + [1686294932.420787][101362:101364] CHIP:DMG: { + [1686294932.420796][101362:101364] CHIP:DMG: SubscriptionId = 0xcbbba269, + [1686294932.420805][101362:101364] CHIP:DMG: MaxInterval = 0x960, + [1686294932.420815][101362:101364] CHIP:DMG: InteractionModelRevision = 1 + [1686294932.420822][101362:101364] CHIP:DMG: } + [1686294932.420834][101362:101364] CHIP:DMG: Subscription established with SubscriptionID = 0xcbbba269 MinInterval = 10s MaxInterval = 2400s Peer = 01:0000000000000001 + [1686294932.420847][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec00e400]: Moving to [Subscripti] + MaxInterval and MaxIntervalCeiling are different parameters. One is sent from the TH the other from DUT, verify MaxInterval >= MaxIntervalCeiling disabled: true - label: - "Setup TH2 such that it does not have access to an attribute on a - specific cluster and endpoint. TH2 sends a subscription message to - subscribe to an attribute for which it does not have access. + "Step 3: Setup TH2 such that it does not have access to an attribute + on a specific cluster and endpoint. TH2 sends a subscription message + to subscribe to an attribute for which it does not have access. AttributePath = [[Attribute = Attribute, Cluster = ClusterID, Endpoint = EndpointID ]]." verification: | @@ -171,333 +123,238 @@ tests: disabled: true - label: - "Setup TH2 such that it does not have access to all attributes on a - specific cluster and endpoint. TH2 sends a subscription request to - subscribe to all attributes for which it does not have access. + "Step 4: Setup TH2 such that it does not have access to all attributes + on a specific cluster and endpoint. TH2 sends a subscription request + to subscribe to all attributes for which it does not have access. AttributePath = [[Cluster = ClusterID, Endpoint = EndpointID ]]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - #1:- Please run this test in chip tool interactive mode - - #1:- ./chip-tool interactive start - - #2:- To Setup the TH2(chip-tool) such that it should not have access to all attributes on a specific cluster and endpoint, 1st we need to send below mentioned ACL command and Here by sending below mentioned ACL command giving access for access to all attributes on a specific cluster and endpoint. - - accesscontrol write acl '[{ "fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null} , {"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[4], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0 - - [1683772555.196371][5065:5067] CHIP:DMG: WriteClient moving to [ResponseRe] - [1683772555.196398][5065:5067] CHIP:DMG: WriteResponseMessage = - [1683772555.196406][5065:5067] CHIP:DMG: { - [1683772555.196412][5065:5067] CHIP:DMG: AttributeStatusIBs = - [1683772555.196425][5065:5067] CHIP:DMG: [ - [1683772555.196431][5065:5067] CHIP:DMG: AttributeStatusIB = - [1683772555.196439][5065:5067] CHIP:DMG: { - [1683772555.196445][5065:5067] CHIP:DMG: AttributePathIB = - [1683772555.196454][5065:5067] CHIP:DMG: { - [1683772555.196462][5065:5067] CHIP:DMG: Endpoint = 0x0, - [1683772555.196470][5065:5067] CHIP:DMG: Cluster = 0x1f, - [1683772555.196478][5065:5067] CHIP:DMG: Attribute = 0x0000_0000, - [1683772555.196484][5065:5067] CHIP:DMG: } - [1683772555.196495][5065:5067] CHIP:DMG: - [1683772555.196501][5065:5067] CHIP:DMG: StatusIB = - [1683772555.196509][5065:5067] CHIP:DMG: { - [1683772555.196517][5065:5067] CHIP:DMG: status = 0x00 (SUCCESS), - [1683772555.196523][5065:5067] CHIP:DMG: }, - [1683772555.196531][5065:5067] CHIP:DMG: - [1683772555.196537][5065:5067] CHIP:DMG: }, - [1683772555.196550][5065:5067] CHIP:DMG: - [1683772555.196556][5065:5067] CHIP:DMG: AttributeStatusIB = - [1683772555.196563][5065:5067] CHIP:DMG: { - [1683772555.196569][5065:5067] CHIP:DMG: AttributePathIB = - [1683772555.196575][5065:5067] CHIP:DMG: { - [1683772555.196583][5065:5067] CHIP:DMG: Endpoint = 0x0, - [1683772555.196590][5065:5067] CHIP:DMG: Cluster = 0x1f, - [1683772555.196598][5065:5067] CHIP:DMG: Attribute = 0x0000_0000, - [1683772555.196605][5065:5067] CHIP:DMG: ListIndex = Null, - [1683772555.196611][5065:5067] CHIP:DMG: } - [1683772555.196620][5065:5067] CHIP:DMG: - [1683772555.196627][5065:5067] CHIP:DMG: StatusIB = - [1683772555.196634][5065:5067] CHIP:DMG: { - [1683772555.196640][5065:5067] CHIP:DMG: status = 0x00 (SUCCESS), - [1683772555.196647][5065:5067] CHIP:DMG: }, - [1683772555.196654][5065:5067] CHIP:DMG: - [1683772555.196660][5065:5067] CHIP:DMG: }, - [1683772555.196672][5065:5067] CHIP:DMG: - [1683772555.196678][5065:5067] CHIP:DMG: AttributeStatusIB = - [1683772555.196685][5065:5067] CHIP:DMG: { - [1683772555.196691][5065:5067] CHIP:DMG: AttributePathIB = - [1683772555.196696][5065:5067] CHIP:DMG: { - [1683772555.196703][5065:5067] CHIP:DMG: Endpoint = 0x0, - [1683772555.196705][5065:5067] CHIP:DMG: Cluster = 0x1f, - [1683772555.196707][5065:5067] CHIP:DMG: Attribute = 0x0000_0000, - [1683772555.196709][5065:5067] CHIP:DMG: ListIndex = Null, - [1683772555.196711][5065:5067] CHIP:DMG: } - [1683772555.196714][5065:5067] CHIP:DMG: - [1683772555.196715][5065:5067] CHIP:DMG: StatusIB = - [1683772555.196717][5065:5067] CHIP:DMG: { - [1683772555.196719][5065:5067] CHIP:DMG: status = 0x00 (SUCCESS), - [1683772555.196721][5065:5067] CHIP:DMG: }, - [1683772555.196723][5065:5067] CHIP:DMG: - [1683772555.196725][5065:5067] CHIP:DMG: }, - [1683772555.196728][5065:5067] CHIP:DMG: - [1683772555.196729][5065:5067] CHIP:DMG: ], - [1683772555.196734][5065:5067] CHIP:DMG: - [1683772555.196736][5065:5067] CHIP:DMG: InteractionModelRevision = 1 - [1683772555.196737][5065:5067] CHIP:DMG: } - [1683772555.196761][5065:5067] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1683772555.196784][5065:5067] CHIP:EM: <<< [E:5727i S:25604 M:4589604 (Ack:173939662)] (S) Msg TX to 1:0000000000000001 [4847] --- Type 0000:10 (SecureChannel:StandaloneAck) - [1683772555.196788][5065:5067] CHIP:IN: (S) Sending msg 4589604 on secure session with LSID: 25604 - - #3 TH2(Chip-Tool) sends a subscription request to subscribe to all attributes for which it does not have access. - AttributePath = [[Cluster = ClusterID, Endpoint = EndpointID ]]. - levelcontrol subscribe current-frequency 2 10 1 1 --commissioner-nodeid 4 - [1683772664.847709][5084:5086] CHIP:DMG: StatusResponseMessage = - [1683772664.847717][5084:5086] CHIP:DMG: { - [1683772664.847724][5084:5086] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1683772664.847731][5084:5086] CHIP:DMG: InteractionModelRevision = 1 - [1683772664.847737][5084:5086] CHIP:DMG: } - [1683772664.847744][5084:5086] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) - [1683772664.847780][5084:5086] CHIP:EM: <<< [E:13809i S:6932 M:220785589 (Ack:32119470)] (S) Msg TX to 2:0000000000000001 [4847] --- Type 0001:01 (IM:StatusResponse) - [1683772664.847791][5084:5086] CHIP:IN: (S) Sending msg 220785589 on secure session with LSID: 6932 - + To Setup the TH2(chip-tool) such that it should not have the privilege for the cluster in the path(AttributePath = [[Attribute = Attribute, Cluster = ClusterID, Endpoint = EndpointID ]]). 1st we need to send below mentioned ACL command and Here by sending below mentioned ACL command giving only access for Level control cluster(8), So except Level control cluster if try to subscribe any other cluster commands will get status as INVALID_ACTION . + + accesscontrol write acl '[{"privilege":5, "authMode":2, "subjects":[112233], "targets":null, "fabricIndex": 1},{"privilege":3, "authMode":2, "subjects":[4], "targets":[{"cluster":8, "endpoint":1, "deviceType":null}]}]' 1 0 + + [1687418564.590285][167960:167962] CHIP:DMG: WriteResponseMessage = + [1687418564.590290][167960:167962] CHIP:DMG: { + [1687418564.590294][167960:167962] CHIP:DMG: AttributeStatusIBs = + [1687418564.590304][167960:167962] CHIP:DMG: [ + [1687418564.590313][167960:167962] CHIP:DMG: AttributeStatusIB = + [1687418564.590321][167960:167962] CHIP:DMG: { + [1687418564.590327][167960:167962] CHIP:DMG: AttributePathIB = + [1687418564.590336][167960:167962] CHIP:DMG: { + [1687418564.590346][167960:167962] CHIP:DMG: Endpoint = 0x0, + [1687418564.590355][167960:167962] CHIP:DMG: Cluster = 0x1f, + [1687418564.590366][167960:167962] CHIP:DMG: Attribute = 0x0000_0000, + [1687418564.590374][167960:167962] CHIP:DMG: } + [1687418564.590385][167960:167962] CHIP:DMG: + [1687418564.590392][167960:167962] CHIP:DMG: StatusIB = + [1687418564.590406][167960:167962] CHIP:DMG: { + [1687418564.590415][167960:167962] CHIP:DMG: status = 0x00 (SUCCESS), + [1687418564.590423][167960:167962] CHIP:DMG: }, + [1687418564.590433][167960:167962] CHIP:DMG: + [1687418564.590444][167960:167962] CHIP:DMG: }, + [1687418564.590462][167960:167962] CHIP:DMG: + [1687418564.590469][167960:167962] CHIP:DMG: AttributeStatusIB = + [1687418564.590477][167960:167962] CHIP:DMG: { + [1687418564.590484][167960:167962] CHIP:DMG: AttributePathIB = + [1687418564.590493][167960:167962] CHIP:DMG: { + [1687418564.590502][167960:167962] CHIP:DMG: Endpoint = 0x0, + [1687418564.590512][167960:167962] CHIP:DMG: Cluster = 0x1f, + [1687418564.590521][167960:167962] CHIP:DMG: Attribute = 0x0000_0000, + [1687418564.590530][167960:167962] CHIP:DMG: ListIndex = Null, + [1687418564.590539][167960:167962] CHIP:DMG: } + [1687418564.590552][167960:167962] CHIP:DMG: + [1687418564.590559][167960:167962] CHIP:DMG: StatusIB = + [1687418564.590567][167960:167962] CHIP:DMG: { + [1687418564.590576][167960:167962] CHIP:DMG: status = 0x00 (SUCCESS), + [1687418564.590584][167960:167962] CHIP:DMG: }, + [1687418564.590593][167960:167962] CHIP:DMG: + [1687418564.590601][167960:167962] CHIP:DMG: }, + [1687418564.590616][167960:167962] CHIP:DMG: + [1687418564.590623][167960:167962] CHIP:DMG: AttributeStatusIB = + [1687418564.590631][167960:167962] CHIP:DMG: { + [1687418564.590638][167960:167962] CHIP:DMG: AttributePathIB = + [1687418564.590647][167960:167962] CHIP:DMG: { + [1687418564.590656][167960:167962] CHIP:DMG: Endpoint = 0x0, + [1687418564.590665][167960:167962] CHIP:DMG: Cluster = 0x1f, + [1687418564.590675][167960:167962] CHIP:DMG: Attribute = 0x0000_0000, + [1687418564.590683][167960:167962] CHIP:DMG: ListIndex = Null, + [1687418564.590691][167960:167962] CHIP:DMG: } + [1687418564.590704][167960:167962] CHIP:DMG: + [1687418564.590712][167960:167962] CHIP:DMG: StatusIB = + [1687418564.590720][167960:167962] CHIP:DMG: { + [1687418564.590729][167960:167962] CHIP:DMG: status = 0x00 (SUCCESS), + [1687418564.590738][167960:167962] CHIP:DMG: }, + [1687418564.590747][167960:167962] CHIP:DMG: + [1687418564.590754][167960:167962] CHIP:DMG: }, + [1687418564.590768][167960:167962] CHIP:DMG: + [1687418564.590776][167960:167962] CHIP:DMG: ], + [1687418564.590796][167960:167962] CHIP:DMG: + [1687418564.590804][167960:167962] CHIP:DMG: InteractionModelRevision = 1 + [1687418564.590811][167960:167962] CHIP:DMG: } + [1687418564.590882][167960:167962] CHIP:DMG: WriteClient moving to [AwaitingDe] + + Try to subscribe to all attributes onto endpoint 1 for cluster “onoff” from a node id that have access to the “levelcontrol” cluster onto endpoint 1 + + onoff subscribe-by-id 0xFFFFFFFF 5 100 1 1 --commissioner-nodeid 4 + [1687418591.903193][167960:167962] CHIP:EM: Found matching exchange: 3641i, Delegate: 0x7fc81c00bbd0 + [1687418591.903197][167960:167962] CHIP:EM: Rxd Ack; Removing MessageCounter:104560060 from Retrans Table on exchange 3641i + [1687418591.903206][167960:167962] CHIP:DMG: StatusResponseMessage = + [1687418591.903209][167960:167962] CHIP:DMG: { + [1687418591.903211][167960:167962] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1687418591.903213][167960:167962] CHIP:DMG: InteractionModelRevision = 1 + [1687418591.903215][167960:167962] CHIP:DMG: } + [1687418591.903220][167960:167962] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1687418591.903236][167960:167962] CHIP:EM: <<< [E:3641i S:26604 M:104560061 (Ack:37058090)] (S) Msg TX to 2:0000000000000001 [2DB4] --- Type 0001:01 (IM:StatusResponse) + [1687418591.903241][167960:167962] CHIP:IN: (S) Sending msg 104560061 on secure session with LSID: 26604 + [1687418591.903262][167960:167962] CHIP:DMG: MoveToState ReadClient[0x7fc81c00bbc0]: Moving to With the ACL command in step-2, we are overwriting the default privilege that chip-tool has an admin. After this step-3 you need to send below mentioned command to Grant access to all clusters again. accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233,4], "targets":null}]' 1 0 disabled: true - label: - "Setup TH2 such that it does not have access to an Endpoint. TH2 sends - a subscription request to subscribe to all attributes on all clusters - on a specific Endpoint for which it does not have access. + "Step 5: Setup TH2 such that it does not have access to an Endpoint. + TH2 sends a subscription request to subscribe to all attributes on all + clusters on a specific Endpoint for which it does not have access. AttributePath = [[ Endpoint = EndpointID ]]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - #1:- Please run this test in chip tool interactive mode - - #1:- ./chip-tool interactive start - - #2:- To Setup the TH2(chip-tool) such that it should not have access to an Endpoint, 1st we need to send below mentioned ACL command and Here by sending below mentioned ACL command giving only access to an Endpoint. - - accesscontrol write acl '[{ "fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null} , {"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[4], "targets": [{ "cluster":null, "endpoint":0, "deviceType":null }]}]' 1 0 - [1683775112.601728][5932:5934] CHIP:DMG: WriteResponseMessage = - [1683775112.601731][5932:5934] CHIP:DMG: { - [1683775112.601733][5932:5934] CHIP:DMG: AttributeStatusIBs = - [1683775112.601737][5932:5934] CHIP:DMG: [ - [1683775112.601740][5932:5934] CHIP:DMG: AttributeStatusIB = - [1683775112.601742][5932:5934] CHIP:DMG: { - [1683775112.601744][5932:5934] CHIP:DMG: AttributePathIB = - [1683775112.601749][5932:5934] CHIP:DMG: { - [1683775112.601753][5932:5934] CHIP:DMG: Endpoint = 0x0, - [1683775112.601756][5932:5934] CHIP:DMG: Cluster = 0x1f, - [1683775112.601760][5932:5934] CHIP:DMG: Attribute = 0x0000_0000, - [1683775112.601763][5932:5934] CHIP:DMG: } - [1683775112.601768][5932:5934] CHIP:DMG: - [1683775112.601771][5932:5934] CHIP:DMG: StatusIB = - [1683775112.601775][5932:5934] CHIP:DMG: { - [1683775112.601779][5932:5934] CHIP:DMG: status = 0x00 (SUCCESS), - [1683775112.601782][5932:5934] CHIP:DMG: }, - [1683775112.601785][5932:5934] CHIP:DMG: - [1683775112.601788][5932:5934] CHIP:DMG: }, - [1683775112.601794][5932:5934] CHIP:DMG: - [1683775112.601796][5932:5934] CHIP:DMG: AttributeStatusIB = - [1683775112.601799][5932:5934] CHIP:DMG: { - [1683775112.601801][5932:5934] CHIP:DMG: AttributePathIB = - [1683775112.601804][5932:5934] CHIP:DMG: { - [1683775112.601807][5932:5934] CHIP:DMG: Endpoint = 0x0, - [1683775112.601810][5932:5934] CHIP:DMG: Cluster = 0x1f, - [1683775112.601814][5932:5934] CHIP:DMG: Attribute = 0x0000_0000, - [1683775112.601816][5932:5934] CHIP:DMG: ListIndex = Null, - [1683775112.601819][5932:5934] CHIP:DMG: } - [1683775112.601823][5932:5934] CHIP:DMG: - [1683775112.601826][5932:5934] CHIP:DMG: StatusIB = - [1683775112.601828][5932:5934] CHIP:DMG: { - [1683775112.601832][5932:5934] CHIP:DMG: status = 0x00 (SUCCESS), - [1683775112.601834][5932:5934] CHIP:DMG: }, - [1683775112.601837][5932:5934] CHIP:DMG: - [1683775112.601839][5932:5934] CHIP:DMG: }, - [1683775112.601845][5932:5934] CHIP:DMG: - [1683775112.601847][5932:5934] CHIP:DMG: AttributeStatusIB = - [1683775112.601850][5932:5934] CHIP:DMG: { - [1683775112.601853][5932:5934] CHIP:DMG: AttributePathIB = - [1683775112.601856][5932:5934] CHIP:DMG: { - [1683775112.601859][5932:5934] CHIP:DMG: Endpoint = 0x0, - [1683775112.601861][5932:5934] CHIP:DMG: Cluster = 0x1f, - [1683775112.601864][5932:5934] CHIP:DMG: Attribute = 0x0000_0000, - [1683775112.601867][5932:5934] CHIP:DMG: ListIndex = Null, - [1683775112.601870][5932:5934] CHIP:DMG: } - [1683775112.601874][5932:5934] CHIP:DMG: - [1683775112.601877][5932:5934] CHIP:DMG: StatusIB = - [1683775112.601880][5932:5934] CHIP:DMG: { - [1683775112.601883][5932:5934] CHIP:DMG: status = 0x00 (SUCCESS), - [1683775112.601886][5932:5934] CHIP:DMG: }, - [1683775112.601888][5932:5934] CHIP:DMG: - [1683775112.601891][5932:5934] CHIP:DMG: }, - [1683775112.601895][5932:5934] CHIP:DMG: - [1683775112.601897][5932:5934] CHIP:DMG: ], - [1683775112.601903][5932:5934] CHIP:DMG: - [1683775112.601905][5932:5934] CHIP:DMG: InteractionModelRevision = 1 - [1683775112.601907][5932:5934] CHIP:DMG: } - [1683775112.601932][5932:5934] CHIP:DMG: WriteClient moving to [AwaitingDe] - - #3. TH2 sends a subscription request to subscribe to all attributes on all clusters on a specific Endpoint for which it does not have access. - AttributePath = [[ Endpoint = EndpointID ]]. - any subscribe-by-id 0xFFFFFFFF 0xFFFFFFFF 10 100 1 1 --commissioner-nodeid 4 - [1683775488.708071][5932:5934] CHIP:EM: Rxd Ack; Removing MessageCounter:62779651 from Retrans Table on exchange 50806i - [1683775488.708083][5932:5934] CHIP:DMG: StatusResponseMessage = - [1683775488.708086][5932:5934] CHIP:DMG: { - [1683775488.708089][5932:5934] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1683775488.708093][5932:5934] CHIP:DMG: InteractionModelRevision = 1 - [1683775488.708095][5932:5934] CHIP:DMG: } - [1683775488.708098][5932:5934] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) - [1683775488.708117][5932:5934] CHIP:EM: <<< [E:50806i S:51174 M:62779652 (Ack:125024288)] (S) Msg TX to 2:0000000000000001 [C380] --- Type 0001:01 (IM:StatusResponse) - [1683775488.708121][5932:5934] CHIP:IN: (S) Sending msg 62779652 on secure session with LSID: 51174 + To Setup the TH2(chip-tool) such that it should not have the privilege for the cluster in the path(AttributePath = [[ Endpoint = EndpointID ]]). 1st we need to send below mentioned ACL command and Here by sending below mentioned ACL command giving only access for Level control cluster(8), So except Level control cluster if try to subscribe any other cluster commands will get status as INVALID_ACTION . + + + accesscontrol write acl '[{"privilege":5, "authMode":2, "subjects":[112233], "targets":null, "fabricIndex": 1},{"privilege":3, "authMode":2, "subjects":[4], "targets":[{"cluster":null, "endpoint":1, "deviceType":null}]}]' 1 0 + + [1687418943.852982][167960:167962] CHIP:DMG: WriteResponseMessage = + [1687418943.852989][167960:167962] CHIP:DMG: { + [1687418943.852996][167960:167962] CHIP:DMG: AttributeStatusIBs = + [1687418943.853006][167960:167962] CHIP:DMG: [ + [1687418943.853012][167960:167962] CHIP:DMG: AttributeStatusIB = + [1687418943.853018][167960:167962] CHIP:DMG: { + [1687418943.853024][167960:167962] CHIP:DMG: AttributePathIB = + [1687418943.853034][167960:167962] CHIP:DMG: { + [1687418943.853042][167960:167962] CHIP:DMG: Endpoint = 0x0, + [1687418943.853053][167960:167962] CHIP:DMG: Cluster = 0x1f, + [1687418943.853060][167960:167962] CHIP:DMG: Attribute = 0x0000_0000, + [1687418943.853067][167960:167962] CHIP:DMG: } + [1687418943.853080][167960:167962] CHIP:DMG: + [1687418943.853087][167960:167962] CHIP:DMG: StatusIB = + [1687418943.853095][167960:167962] CHIP:DMG: { + [1687418943.853103][167960:167962] CHIP:DMG: status = 0x00 (SUCCESS), + [1687418943.853109][167960:167962] CHIP:DMG: }, + [1687418943.853117][167960:167962] CHIP:DMG: + [1687418943.853123][167960:167962] CHIP:DMG: }, + [1687418943.853136][167960:167962] CHIP:DMG: + [1687418943.853142][167960:167962] CHIP:DMG: AttributeStatusIB = + [1687418943.853148][167960:167962] CHIP:DMG: { + [1687418943.853154][167960:167962] CHIP:DMG: AttributePathIB = + [1687418943.853161][167960:167962] CHIP:DMG: { + [1687418943.853167][167960:167962] CHIP:DMG: Endpoint = 0x0, + [1687418943.853175][167960:167962] CHIP:DMG: Cluster = 0x1f, + [1687418943.853182][167960:167962] CHIP:DMG: Attribute = 0x0000_0000, + [1687418943.853189][167960:167962] CHIP:DMG: ListIndex = Null, + [1687418943.853196][167960:167962] CHIP:DMG: } + [1687418943.853205][167960:167962] CHIP:DMG: + [1687418943.853211][167960:167962] CHIP:DMG: StatusIB = + [1687418943.853218][167960:167962] CHIP:DMG: { + [1687418943.853227][167960:167962] CHIP:DMG: status = 0x00 (SUCCESS), + [1687418943.853233][167960:167962] CHIP:DMG: }, + [1687418943.853240][167960:167962] CHIP:DMG: + [1687418943.853246][167960:167962] CHIP:DMG: }, + [1687418943.853258][167960:167962] CHIP:DMG: + [1687418943.853264][167960:167962] CHIP:DMG: AttributeStatusIB = + [1687418943.853274][167960:167962] CHIP:DMG: { + [1687418943.853280][167960:167962] CHIP:DMG: AttributePathIB = + [1687418943.853290][167960:167962] CHIP:DMG: { + [1687418943.853296][167960:167962] CHIP:DMG: Endpoint = 0x0, + [1687418943.853304][167960:167962] CHIP:DMG: Cluster = 0x1f, + [1687418943.853311][167960:167962] CHIP:DMG: Attribute = 0x0000_0000, + [1687418943.853318][167960:167962] CHIP:DMG: ListIndex = Null, + [1687418943.853323][167960:167962] CHIP:DMG: } + [1687418943.853332][167960:167962] CHIP:DMG: + [1687418943.853338][167960:167962] CHIP:DMG: StatusIB = + [1687418943.853345][167960:167962] CHIP:DMG: { + [1687418943.853352][167960:167962] CHIP:DMG: status = 0x00 (SUCCESS), + [1687418943.853359][167960:167962] CHIP:DMG: }, + [1687418943.853368][167960:167962] CHIP:DMG: + [1687418943.853374][167960:167962] CHIP:DMG: }, + [1687418943.853383][167960:167962] CHIP:DMG: + [1687418943.853389][167960:167962] CHIP:DMG: ], + [1687418943.853405][167960:167962] CHIP:DMG: + [1687418943.853411][167960:167962] CHIP:DMG: InteractionModelRevision = 1 + [1687418943.853418][167960:167962] CHIP:DMG: } + [1687418943.853488][167960:167962] CHIP:DMG: WriteClient moving to [AwaitingDe] + + Try to subscribe to all attributes onto endpoint 0 for cluster 6 from a node id that have access to everything onto endpoint 1 + + onoff subscribe-by-id 0xFFFFFFFF 5 100 1 0 --commissioner-nodeid 4 + [1687418974.537572][167960:167962] CHIP:EM: Rxd Ack; Removing MessageCounter:104560062 from Retrans Table on exchange 3650i + [1687418974.537610][167960:167962] CHIP:DMG: StatusResponseMessage = + [1687418974.537622][167960:167962] CHIP:DMG: { + [1687418974.537631][167960:167962] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1687418974.537640][167960:167962] CHIP:DMG: InteractionModelRevision = 1 + [1687418974.537648][167960:167962] CHIP:DMG: } + [1687418974.537658][167960:167962] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1687418974.537725][167960:167962] CHIP:EM: <<< [E:3650i S:26604 M:104560063 (Ack:37058092)] (S) Msg TX to 2:0000000000000001 [2DB4] --- Type 0001:01 (IM:StatusResponse) + [1687418974.537743][167960:167962] CHIP:IN: (S) Sending msg 104560063 on secure session with LSID: 26604 + With the ACL command in step-2, we are overwriting the default privilege that chip-tool has an admin. After this step-3 you need to send below mentioned command to Grant access to all clusters again. - accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233, 4], "targets":null}]' 1 0 + accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233,4], "targets":null}]' 1 0 disabled: true - label: - "Setup TH2 such that it does not have access to the Node. TH2 sends a - subscription request to subscribe to all attributes on all clusters on - all endpoints on a Node for which it does not have access. + "Step 6: Setup TH2 such that it does not have access to the Node. TH2 + sends a subscription request to subscribe to all attributes on all + clusters on all endpoints on a Node for which it does not have access. AttributePath = [[ ]]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - #1:- Please run this test in chip tool interactive mode - - ./chip-tool interactive start - - - #2:- To Setup the TH2(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command and Here by sending below mentioned ACL command giving only access for specific Node - - accesscontrol write acl '[{ "fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null} , {"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[4], "targets": [{ "cluster":null, "endpoint":0, "deviceType":null }]}]' 1 0 - [1683776952.246779][6312:6314] CHIP:DMG: WriteClient moving to [ResponseRe] - [1683776952.246805][6312:6314] CHIP:DMG: WriteResponseMessage = - [1683776952.246814][6312:6314] CHIP:DMG: { - [1683776952.246820][6312:6314] CHIP:DMG: AttributeStatusIBs = - [1683776952.246830][6312:6314] CHIP:DMG: [ - [1683776952.246837][6312:6314] CHIP:DMG: AttributeStatusIB = - [1683776952.246845][6312:6314] CHIP:DMG: { - [1683776952.246851][6312:6314] CHIP:DMG: AttributePathIB = - [1683776952.246859][6312:6314] CHIP:DMG: { - [1683776952.246868][6312:6314] CHIP:DMG: Endpoint = 0x0, - [1683776952.246875][6312:6314] CHIP:DMG: Cluster = 0x1f, - [1683776952.246883][6312:6314] CHIP:DMG: Attribute = 0x0000_0000, - [1683776952.246890][6312:6314] CHIP:DMG: } - [1683776952.246900][6312:6314] CHIP:DMG: - [1683776952.246906][6312:6314] CHIP:DMG: StatusIB = - [1683776952.246914][6312:6314] CHIP:DMG: { - [1683776952.246922][6312:6314] CHIP:DMG: status = 0x00 (SUCCESS), - [1683776952.246929][6312:6314] CHIP:DMG: }, - [1683776952.246936][6312:6314] CHIP:DMG: - [1683776952.246942][6312:6314] CHIP:DMG: }, - [1683776952.246955][6312:6314] CHIP:DMG: - [1683776952.246961][6312:6314] CHIP:DMG: AttributeStatusIB = - [1683776952.246968][6312:6314] CHIP:DMG: { - [1683776952.246974][6312:6314] CHIP:DMG: AttributePathIB = - [1683776952.246982][6312:6314] CHIP:DMG: { - [1683776952.246989][6312:6314] CHIP:DMG: Endpoint = 0x0, - [1683776952.246996][6312:6314] CHIP:DMG: Cluster = 0x1f, - [1683776952.247004][6312:6314] CHIP:DMG: Attribute = 0x0000_0000, - [1683776952.247012][6312:6314] CHIP:DMG: ListIndex = Null, - [1683776952.247018][6312:6314] CHIP:DMG: } - [1683776952.247028][6312:6314] CHIP:DMG: - [1683776952.247035][6312:6314] CHIP:DMG: StatusIB = - [1683776952.247039][6312:6314] CHIP:DMG: { - [1683776952.247041][6312:6314] CHIP:DMG: status = 0x00 (SUCCESS), - [1683776952.247043][6312:6314] CHIP:DMG: }, - [1683776952.247045][6312:6314] CHIP:DMG: - [1683776952.247047][6312:6314] CHIP:DMG: }, - [1683776952.247050][6312:6314] CHIP:DMG: - [1683776952.247052][6312:6314] CHIP:DMG: AttributeStatusIB = - [1683776952.247054][6312:6314] CHIP:DMG: { - [1683776952.247056][6312:6314] CHIP:DMG: AttributePathIB = - [1683776952.247058][6312:6314] CHIP:DMG: { - [1683776952.247060][6312:6314] CHIP:DMG: Endpoint = 0x0, - [1683776952.247063][6312:6314] CHIP:DMG: Cluster = 0x1f, - [1683776952.247065][6312:6314] CHIP:DMG: Attribute = 0x0000_0000, - [1683776952.247067][6312:6314] CHIP:DMG: ListIndex = Null, - [1683776952.247069][6312:6314] CHIP:DMG: } - [1683776952.247072][6312:6314] CHIP:DMG: - [1683776952.247074][6312:6314] CHIP:DMG: StatusIB = - [1683776952.247076][6312:6314] CHIP:DMG: { - [1683776952.247078][6312:6314] CHIP:DMG: status = 0x00 (SUCCESS), - [1683776952.247080][6312:6314] CHIP:DMG: }, - [1683776952.247082][6312:6314] CHIP:DMG: - [1683776952.247084][6312:6314] CHIP:DMG: }, - [1683776952.247086][6312:6314] CHIP:DMG: - [1683776952.247088][6312:6314] CHIP:DMG: ], - [1683776952.247093][6312:6314] CHIP:DMG: - [1683776952.247095][6312:6314] CHIP:DMG: InteractionModelRevision = 1 - [1683776952.247096][6312:6314] CHIP:DMG: } - [1683776952.247119][6312:6314] CHIP:DMG: WriteClient moving to [AwaitingDe] - - TH2 sends a subscription request to subscribe to all attributes on all clusters on all endpoints on a Node for which it does not have access. - >>> any subscribe-by-id 0xFFFFFFFF 0xFFFFFFFF 10 100 1 1 --commissioner-nodeid 2 - [1683776997.979233][6312:6314] CHIP:EM: Found matching exchange: 25484i, Delegate: 0x7f86ec018080 - [1683776997.979243][6312:6314] CHIP:EM: Rxd Ack; Removing MessageCounter:58561824 from Retrans Table on exchange 25484i - [1683776997.979257][6312:6314] CHIP:DMG: StatusResponseMessage = - [1683776997.979261][6312:6314] CHIP:DMG: { - [1683776997.979264][6312:6314] CHIP:DMG: Status = 0x80 (INVALID_ACTION), - [1683776997.979268][6312:6314] CHIP:DMG: InteractionModelRevision = 1 - [1683776997.979271][6312:6314] CHIP:DMG: } - [1683776997.979276][6312:6314] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) - [1683776997.979302][6312:6314] CHIP:EM: <<< [E:25484i S:51642 M:58561825 (Ack:236305332)] (S) Msg TX to 2:0000000000000001 [6D8A] --- Type 0001:01 (IM:StatusResponse) - [1683776997.979310][6312:6314] CHIP:IN: (S) Sending msg 58561825 on secure session with LSID: 51642 + After commissioned the device, Device does not allow access for node id 4. Because it is not granted the access for Node ID 4 + Try to subscribe to all attributes onto endpoint 1 for cluster 6 from a node id that does not have any access to the node - With the ACL command in step-2, we are overwriting the default privilege that chip-tool has an admin. After this step-3 you need to send below mentioned command to Grant access to all clusters again. - accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233, 4], "targets":null}]' 1 0 + onoff subscribe-by-id 0xFFFFFFFF 5 100 1 0 --commissioner-nodeid 4 + + [1687419427.834160][167960:167962] CHIP:EM: Rxd Ack; Removing MessageCounter:104560064 from Retrans Table on exchange 3652i + [1687419427.834192][167960:167962] CHIP:DMG: StatusResponseMessage = + [1687419427.834207][167960:167962] CHIP:DMG: { + [1687419427.834216][167960:167962] CHIP:DMG: Status = 0x80 (INVALID_ACTION), + [1687419427.834225][167960:167962] CHIP:DMG: InteractionModelRevision = 1 + [1687419427.834233][167960:167962] CHIP:DMG: } + [1687419427.834242][167960:167962] CHIP:IM: Received status response, status is 0x80 (INVALID_ACTION) + [1687419427.834293][167960:167962] CHIP:EM: <<< [E:3652i S:26604 M:104560065 (Ack:37058094)] (S) Msg TX to 2:0000000000000001 [2DB4] --- Type 0001:01 (IM:StatusResponse) + [1687419427.834308][167960:167962] CHIP:IN: (S) Sending msg 104560065 on secure session with LSID: 26604 disabled: true - label: - "TH sends a subscription request action for an attribute with an empty - DataVersionFilters field. DUT sends a report data action with the data - of the attribute along with the data version. Tear down the + "Step 7: TH sends a subscription request action for an attribute with + an empty DataVersionFilters field. DUT sends a report data action with + the data of the attribute along with the data version. Tear down the subscription for that attribute. Start another subscription with the DataVersionFilter field set to the data version received above." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster. - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - onoff subscribe start-up-on-off 50 800 1 1 + onoff subscribe start-up-on-off 50 800 1 1 --keepSubscriptions true verify that subscription is activated between TH(chip-tool) and DUT(reference app) and DUT(reference-app) sends a report data action with the data of the attribute along with the data version to TH(chip-tool) + [1686295071.084688][101362:101364] CHIP:DMG: } + [1686295071.084713][101362:101364] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_4003 DataVersion: 3334871844 + [1686295071.084721][101362:101364] CHIP:TOO: StartUpOnOff: null + [1686295071.084730][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec011120]: Moving to [AwaitingSu] + [1686295071.084754][101362:101364] CHIP:EM: <<< [E:49834i S:18140 M:226017858 (Ack:29621151)] (S) Msg TX to 1:0000000000000001 [A822] --- Type 0001:01 (IM:StatusResponse) + [1686295071.084759][101362:101364] CHIP:IN: (S) Sending msg 226017858 on secure session with LSID: 18140 + [1686295071.087868][101362:101364] CHIP:EM: >>> [E:49834i S:18140 M:29621152 (Ack:226017858)] (S) Msg RX from 1:0000000000000001 [A822] --- Type 0001:04 (IM:SubscribeResponse) + [1686295071.087881][101362:101364] CHIP:EM: Found matching exchange: 49834i, Delegate: 0x7fc7ec011130 + [1686295071.087887][101362:101364] CHIP:EM: Rxd Ack; Removing MessageCounter:226017858 from Retrans Table on exchange 49834i + [1686295071.087893][101362:101364] CHIP:DMG: SubscribeResponse is received + [1686295071.087899][101362:101364] CHIP:DMG: SubscribeResponseMessage = + [1686295071.087902][101362:101364] CHIP:DMG: { + [1686295071.087905][101362:101364] CHIP:DMG: SubscriptionId = 0x6bd3d042, + [1686295071.087908][101362:101364] CHIP:DMG: MaxInterval = 0x320, + [1686295071.087911][101362:101364] CHIP:DMG: InteractionModelRevision = 1 + [1686295071.087914][101362:101364] CHIP:DMG: } + [1686295071.087918][101362:101364] CHIP:DMG: Subscription established with SubscriptionID = 0x6bd3d042 MinInterval = 50s MaxInterval = 800s Peer = 01:0000000000000001 + [1686295071.087923][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec011120]: Moving to [Subscripti] - [1657450742.453824][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733047 from RetransTable on exchange 33629i - [1657450742.453885][11635:11640] CHIP:DMG: ReportDataMessage = - [1657450742.453915][11635:11640] CHIP:DMG: { - [1657450742.453940][11635:11640] CHIP:DMG: SubscriptionId = 0x6e65b0f2, - [1657450742.453966][11635:11640] CHIP:DMG: AttributeReportIBs = - [1657450742.453997][11635:11640] CHIP:DMG: [ - [1657450742.454023][11635:11640] CHIP:DMG: AttributeReportIB = - [1657450742.454074][11635:11640] CHIP:DMG: { - [1657450742.454103][11635:11640] CHIP:DMG: AttributeDataIB = - [1657450742.454135][11635:11640] CHIP:DMG: { - [1657450742.454166][11635:11640] CHIP:DMG: DataVersion = 0x1979c37, - [1657450742.454195][11635:11640] CHIP:DMG: AttributePathIB = - [1657450742.454226][11635:11640] CHIP:DMG: { - [1657450742.454258][11635:11640] CHIP:DMG: Endpoint = 0x1, - [1657450742.454292][11635:11640] CHIP:DMG: Cluster = 0x6, - [1657450742.454325][11635:11640] CHIP:DMG: Attribute = 0x0000_4003, - [1657450742.454356][11635:11640] CHIP:DMG: } - [1657450742.454389][11635:11640] CHIP:DMG: - [1657450742.454421][11635:11640] CHIP:DMG: Data = NULL[1657450742.454449][11635:11640] CHIP:DMG: }, - [1657450742.454480][11635:11640] CHIP:DMG: - [1657450742.454506][11635:11640] CHIP:DMG: }, - [1657450742.454536][11635:11640] CHIP:DMG: - [1657450742.454561][11635:11640] CHIP:DMG: ], - [1657450742.454591][11635:11640] CHIP:DMG: - [1657450742.454616][11635:11640] CHIP:DMG: InteractionModelRevision = 1 - [1657450742.454639][11635:11640] CHIP:DMG: } - [1657450742.454732][11635:11640] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_4003 DataVersion: 26713143 - [1657450742.454768][11635:11640] CHIP:TOO: StartUpOnOff: null - [1657450742.454805][11635:11640] CHIP:DMG: MoveToState ReadClient[0xffff940092b0]: Moving to [AwaitingSu] Start another subscription with the DataVersionFilter field set to the data version received above and Verify that the subscription is activated between TH and DUT. - onoff subscribe start-up-on-off 50 800 1 1 --data-version 0x1979c37 + onoff subscribe start-up-on-off 50 800 1 1 --data-version 3334871844 [1657450845.854472][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733050 from RetransTable on exchange 33630i [1657450845.854526][11635:11640] CHIP:DMG: ReportDataMessage = @@ -515,7 +372,7 @@ tests: [1657450845.855876][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733051 from RetransTable on exchange 33630i [1657450845.855921][11635:11640] CHIP:DMG: SubscribeResponseMessage = [1657450845.855943][11635:11640] CHIP:DMG: { - [1657450845.855963][11635:11640] CHIP:DMG: SubscriptionId = 0x6139c55e, + [1657450845.855963][11635:11640] CHIP:DMG: SubscriptionId = 0x6bd3d042, [1657450845.855985][11635:11640] CHIP:DMG: MaxInterval = 0x320, [1657450845.856006][11635:11640] CHIP:DMG: InteractionModelRevision = 1 [1657450845.856026][11635:11640] CHIP:DMG: } @@ -523,17 +380,14 @@ tests: disabled: true - label: - "TH sends a subscription request action for an attribute and sets the - MinIntervalFloor value to be same as MaxIntervalCeiling. Activate the - Subscription between TH and DUT. Modify the attribute which has been - subscribed to on the DUT." + "Step 8: TH sends a subscription request action for an attribute and + sets the MinIntervalFloor value to be same as MaxIntervalCeiling. + Activate the Subscription between TH and DUT. Modify the attribute + which has been subscribed to on the DUT." verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - onoff subscribe on-time 100 100 1 1 + onoff subscribe on-time 100 100 1 1 --keepSubscriptions true On TH(chip-tool) verify that the DUT sends a report data with the value of the attribute after the MinIntervalFloor time. @@ -570,15 +424,13 @@ tests: disabled: true - label: - "TH sends a subscription request action for an attribute and set the - MinIntervalFloor value to be greater than MaxIntervalCeiling. +" + "Step 9: TH sends a subscription request action for an attribute and + set the MinIntervalFloor value to be greater than MaxIntervalCeiling. + +" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - onoff subscribe on-time 500 100 1 1 + onoff subscribe on-time 500 100 1 1 --keepSubscriptions true On TH(chip-tool) Verify that the DUT sends an error message and the subscription is not established. [1661754615.089845][103654:103659] CHIP:DMG: StatusResponseMessage = @@ -591,31 +443,28 @@ tests: disabled: true - label: - "TH sends a subscription request to subscribe to a specific global - attribute from all clusters on all endpoints. AttributePath = + "Step 10: TH sends a subscription request to subscribe to a specific + global attribute from all clusters on all endpoints. AttributePath = [[Attribute = Global Attribute]]. +" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start + any subscribe-by-id 0xFFFFFFFF 0xFFFD 10 300 1 0xFFFF --keepSubscriptions true - any subscribe-by-id 0xFFFFFFFF 0xFFFD 10 300 1 0xFFFF On TH(chip-tool) Verify that the Subscription succeeds and the DUT sends back the attribute values for the global attribute disabled: true - label: - "TH sends a subscription request to subscribe to a global attribute on - an endpoint on all clusters. AttributePath = [[Attribute = Global - Attribute, Endpoint = EndpointID ]]. +" + "Step 11: TH sends a subscription request to subscribe to a global + attribute on an endpoint on all clusters. AttributePath = [[Attribute + = Global Attribute, Endpoint = EndpointID ]]. +" verification: | The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - any subscribe-by-id 0xFFFFFFFF 0xFFFD 10 300 1 0 + any subscribe-by-id 0xFFFFFFFF 0xFFFD 10 300 1 0 --keepSubscriptions true + On TH(chip-tool) Verify that the Subscription succeeds and the DUT sends back the attribute values for the global attribute diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_3.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_3.yaml index 52650b0682286e..393c01c3bb8db2 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_3.yaml @@ -33,7 +33,7 @@ tests: disabled: true - label: - "DUT and TH activate the subscription. Change the value of the + "Step 1: DUT and TH activate the subscription. Change the value of the attribute which has been subscribed on the DUT by manually changing some settings on the device. Example: Temperature sensor may update the value of the room temperature. Turning on/off on a light bulb." @@ -45,16 +45,12 @@ tests: disabled: true - label: - "DUT and TH activate the subscription. Change the value of the + "Step 2: DUT and TH activate the subscription. Change the value of the attribute which has been subscribed on the DUT by sending an IMWrite or Invoke message to the DUT from the TH. +" verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + onoff subscribe start-up-on-off 30 100 1 1 --keepSubscriptions true - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - onoff subscribe start-up-on-off 30 100 1 1 on TH(chip-tool), verify that DUT is responds right attribute value for above command [1657451357.177831][11635:11640] CHIP:DMG: { @@ -124,15 +120,11 @@ tests: disabled: true - label: - "DUT and TH activate the subscription for an attribute. Dont change - the value of the attribute which has been subscribed." + "Step 3: DUT and TH activate the subscription for an attribute. Dont + change the value of the attribute which has been subscribed." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start + onoff subscribe on-off 10 200 1 1 --keepSubscriptions true - onoff subscribe on-off 10 200 1 1 on TH(chip-tool) verify that DUT is responds right attribute value for above command [1657451491.078934][11635:11640] CHIP:DMG: ReportDataMessage = @@ -178,29 +170,24 @@ tests: disabled: true - label: - "DUT and TH activate the subscription. Change the value of the + "Step 4: DUT and TH activate the subscription. Change the value of the attribute which has been subscribed on the DUT. TH force sends a - status response with an inactive subscription. Change the value of the - attribute which has been subscribed on the DUT." + status response with an 'inactive subscription'. Change the value of + the attribute which has been subscribed on the DUT." verification: | - Out of scope for V1.0 + Out of scope disabled: true - label: - "Activate the subscription between the DUT and the TH for an attribute - of data type bool. Modify that attribute on the DUT. DUT should send - the report data with the modified attribute value. Modify the - attribute multiple times (3 times) before the max interval time + "Step 5: Activate the subscription between the DUT and the TH for an + attribute of data type bool. Modify that attribute on the DUT. DUT + should send the report data with the modified attribute value. Modify + the attribute multiple times (3 times) before the max interval time specified during the subscription activation." PICS: MCORE.IDM.S.Attribute.DataType_Bool verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - + basicinformation subscribe local-config-disabled 100 200 1 0 --keepSubscriptions true - basicinformation subscribe local-config-disabled 100 200 1 0 on TH(chip-tool) verify that DUT is responds right attribute value for above command and then send write command to change the attribute value, verify the attribute value is modified or not. [1657451690.259096][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733078 from RetransTable on exchange 33639i [1657451690.259223][11635:11640] CHIP:DMG: ReportDataMessage = @@ -275,22 +262,16 @@ tests: disabled: true - label: - "Activate the subscription between the DUT and the TH for an attribute - of data type string. Modify that attribute on the DUT. DUT should send - the report data with the modified attribute value Modify the attribute - multiple times (3 times) before the max interval time specified during - the subscription activation." + "Step 6: Activate the subscription between the DUT and the TH for an + attribute of data type string. Modify that attribute on the DUT. DUT + should send the report data with the modified attribute value Modify + the attribute multiple times (3 times) before the max interval time + specified during the subscription activation." PICS: MCORE.IDM.S.Attribute.DataType_String verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start + basicinformation subscribe node-label 10 100 1 0 --keepSubscriptions true - basicinformation subscribe node-label 10 100 1 0 - on TH(chip-tool) verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. 1657452002.280167][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733100 from RetransTable on exchange 33648i @@ -363,20 +344,15 @@ tests: disabled: true - label: - "Activate the subscription between the DUT and the TH for an attribute - of data type unsigned integer. Modify that attribute on the DUT. DUT - should send the report data with the modified attribute value. Modify - the attribute multiple times (3 times) before the max interval time - specified during the subscription activation." + "Step 7: Activate the subscription between the DUT and the TH for an + attribute of data type 'unsigned integer'. Modify that attribute on + the DUT. DUT should send the report data with the modified attribute + value. Modify the attribute multiple times (3 times) before the max + interval time specified during the subscription activation." PICS: MCORE.IDM.S.Attribute.DataType_UnsignedInteger verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start + any subscribe-by-id 0x0008 0x0010 10 100 1 1 --keepSubscriptions true - any subscribe-by-id 0x0008 0x0010 10 100 1 1 on TH(chip-tool) verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. @@ -451,49 +427,43 @@ tests: disabled: true - label: - "Activate the subscription between the DUT and the TH for an attribute - of data type signed integer. Modify that attribute on the DUT. DUT - should send the report data with the modified attribute value. Modify - the attribute multiple times (3 times)before the max interval time - specified during the subscription activation." + "Step 8: Activate the subscription between the DUT and the TH for an + attribute of data type 'signed integer'. Modify that attribute on the + DUT. DUT should send the report data with the modified attribute + value. Modify the attribute multiple times (3 times)before the max + interval time specified during the subscription activation." PICS: MCORE.IDM.S.Attribute.DataType_SignedInteger verification: | Subscribe to an attribute of type signed integer to the Harness - If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "Activate the subscription between the DUT and the TH for an attribute - of data type floating point. Modify that attribute on the DUT. DUT - should send the report data with the modified attribute value. Modify - the attribute multiple times (3 times) before the max interval time - specified during the subscription activation." + "Step 9: Activate the subscription between the DUT and the TH for an + attribute of data type 'floating point'. Modify that attribute on the + DUT. DUT should send the report data with the modified attribute + value. Modify the attribute multiple times (3 times) before the max + interval time specified during the subscription activation." PICS: MCORE.IDM.S.Attribute.DataType_FloatingPoint verification: | Subscribe to an attribute of type floating point to the Harness - If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable" + If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "\Not Applicable\" disabled: true - label: - "Activate the subscription between the DUT and the TH for an attribute - of data type list. Modify that attribute on the DUT. DUT should send - the report data with the modified attribute value. Modify the - attribute multiple times (3 times) before the max interval time + "Step 10: Activate the subscription between the DUT and the TH for an + attribute of data type list. Modify that attribute on the DUT. DUT + should send the report data with the modified attribute value. Modify + the attribute multiple times (3 times) before the max interval time specified during the subscription activation." PICS: MCORE.IDM.S.Attribute.DataType_List verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. + userlabel subscribe label-list 100 500 1 0 --keepSubscriptions true - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - - userlabel subscribe label-list 100 500 1 0 On TH(chip-tool) verify that DUT is responds right attribute value for above command [1655896309.160632][1885:1890] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0041 Attribute 0x0000_0000 DataVersion: 3773922725 [1655896309.160795][1885:1890] CHIP:TOO: label list: 0 entries @@ -518,19 +488,13 @@ tests: disabled: true - label: - "Activate the subscription between the DUT and the TH for any + "Step 11: Activate the subscription between the DUT and the TH for any attribute. KeepSubsriptions flag should be set to False After the Maximum interval time is elapsed, TH should send another subscription request message with different parameters than before. KeepSubsriptions flag should be set to False Change the value of the attribute requested on the DUT." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - basicinformation subscribe local-config-disabled 10 100 1 0 --keepSubscriptions 0 on TH(chip-tool) verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. @@ -634,17 +598,12 @@ tests: disabled: true - label: - "Activate the subscription between the DUT and the TH for any + "Step 12: Activate the subscription between the DUT and the TH for any attribute After the Maximum interval time is elapsed, change the value of the attribute requested on the DUT." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - + levelcontrol subscribe on-level 10 80 1 1 --keepSubscriptions true - levelcontrol subscribe on-level 10 80 1 1 On TH(chip-tool) verify that DUT is responds right attribute value for below command and then send write command to change the attribute value, verify the attribute value is modified or not. @@ -715,17 +674,12 @@ tests: disabled: true - label: - "Activate the subscription between the DUT and the TH for an attribute - There are no attribute value changes before MaxInterval elapses." + "Step 13: Activate the subscription between the DUT and the TH for an + attribute There are no attribute value changes before MaxInterval + elapses." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start + onoff subscribe on-time 100 1000 1 1 --keepSubscriptions true - - onoff subscribe on-time 100 1000 1 1 On TH(chip-tool) Verify that the DUT sends a Report Data action with no data and There are no attribute value changes before MaxInterval elapses. [1663737332.441587][143123:143128] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_4001 DataVersion: 807738967 [1663737332.441608][143123:143128] CHIP:TOO: OnTime: 0 @@ -772,19 +726,14 @@ tests: disabled: true - label: - "TH sends a subscription request action for an attribute to the DUT - with the KeepSubscriptions flag set to True. Activate the subscription - between DUT and the TH. Initiate another subscription request action - to the DUT for another attribute with the KeepSubscriptions flag set - to True. Change both the attribute values on the DUT." + "Step 14: TH sends a subscription request action for an attribute to + the DUT with the KeepSubscriptions flag set to True. Activate the + subscription between DUT and the TH. Initiate another subscription + request action to the DUT for another attribute with the + KeepSubscriptions flag set to True. Change both the attribute values + on the DUT." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - >>> onoff subscribe off-wait-time 10 500 1 1 --keepSubscriptions 1 + onoff subscribe off-wait-time 10 500 1 1 --keepSubscriptions 1 On TH(chip-tool) verify that DUT is responds right attribute value for above command and then send write command to change the attribute value, verify the attribute value is modified or not for both attributes @@ -919,19 +868,14 @@ tests: disabled: true - label: - "TH sends a subscription request action for an attribute to the DUT - with the KeepSubscriptions flag set to True. Activate the subscription - between DUT and the TH. Initiate another subscription request action - to the DUT for another attribute with the KeepSubscriptions flag set - to False. Change both the attribute values on the DUT." + "Step 15: TH sends a subscription request action for an attribute to + the DUT with the KeepSubscriptions flag set to True. Activate the + subscription between DUT and the TH. Initiate another subscription + request action to the DUT for another attribute with the + KeepSubscriptions flag set to False. Change both the attribute values + on the DUT." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - onoff subscribe on-time 10 100 1 1 --keepSubscriptions 1 - + onoff subscribe on-time 10 100 1 1 --keepSubscriptions true After sending above command verify that the subscription is activated between DUT and TH 1657454443.310644][11635:11640] CHIP:DMG: ReportDataMessage = [1657454443.310712][11635:11640] CHIP:DMG: { @@ -1017,7 +961,7 @@ tests: onoff write on-time 1 1 1 - on TH Verify that subscription is terminated after the MaxInterval of the first subscription is reached. + on TH(chip-tool) Verify that subscription is terminated after the MaxInterval of the first subscription is reached. [1657455187.367198][11635:11640] CHIP:DMG: ReportDataMessage = [1657455187.367281][11635:11640] CHIP:DMG: { [1657455187.367324][11635:11640] CHIP:DMG: SubscriptionId = 0x50a6822b, @@ -1044,7 +988,7 @@ tests: here is an example command the TH can write an attribute in the onoff cluster in the DUT to change the value that the TH(chip-tool) subscribed in the above command. onoff write off-wait-time 1 1 1 - On TH verify that, TH received a report data from DUT + On TH(chip-tool) verify that, TH received a report data from DUT [1657455253.788543][11635:11640] CHIP:EM: Handling via exchange: 8557r, Delegate: 0xaaaacf201a78 [1657455253.788629][11635:11640] CHIP:DMG: ReportDataMessage = @@ -1084,35 +1028,33 @@ tests: disabled: true - label: - "TH sends a subscription request action for an attribute and all - events. Set the MinIntervalFloor to some value say N(seconds). Change - the value of the attribute and trigger an action on the DUT to trigger - any event." + "Step 16: TH sends a subscription request action for an attribute and + all events. Set the MinIntervalFloor to some value say 'N'(seconds). + Change the value of the attribute and trigger an action on the DUT to + trigger any event." verification: | Out of Scope for V1.0 https://github.com/project-chip/connectedhomeip/issues/15999 disabled: true - label: - "TH sends a subscription request action for attribute wildcard - - AttributePath = [[Endpoint = EndpointID, Cluster = ClusterID]]. Set - the MinIntervalFloor to some value say N(seconds). Change all or few - of the attributes on the DUT" + "Step 17: TH sends a subscription request action for attribute + wildcard - AttributePath = [[Endpoint = EndpointID, Cluster = + ClusterID]]. Set the MinIntervalFloor to some value say 'N'(seconds). + Change all or few of the attributes on the DUT" verification: | Out of Scope for V1.0 https://github.com/project-chip/connectedhomeip/issues/15999 disabled: true - label: - "TH sends a subscription request to subscribe to an attribute on a - specific cluster from all endpoints AttributePath = [[Attribute = + "Step 18: TH sends a subscription request to subscribe to an attribute + on a specific cluster from all endpoints AttributePath = [[Attribute = Attribute, Cluster = ClusterID ]]. Set the MinIntervalFloor to some - value say N(seconds). Change the attribute on the DUT" + value say 'N'(seconds). Change the attribute on the DUT" verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Here the command to enter interactive mode:-- ./chip-tool interactive start + onoff subscribe-by-id 0x4001 200 700 1 0xFFFF --keepSubscriptions true - onoff subscribe-by-id 0x4001 200 700 1 0xFFFF on TH(chip-tool), verify that DUT is responds right attribute value for command and then send write command to change the attribute value, [1658322253.825601][4866:4871] CHIP:DMG: ReportDataMessage = [1658322253.825662][4866:4871] CHIP:DMG: { @@ -1165,7 +1107,7 @@ tests: onoff write-by-id 0x4001 1 1 1 - On TH, Verify that the DUT sends reports for all the attributes that have changed after N(200) seconds + On TH(chip-tool), Verify that the DUT sends reports for all the attributes that have changed after N(200) seconds [1658322453.896805][4866:4871] CHIP:DMG: ReportDataMessage = [1658322453.896834][4866:4871] CHIP:DMG: { [1658322453.896859][4866:4871] CHIP:DMG: SubscriptionId = 0x42baa1, @@ -1198,30 +1140,30 @@ tests: disabled: true - label: - "TH sends a subscription request to subscribe to all attributes from - all clusters from all endpoints. AttributePath = [[]]. Set the - MinIntervalFloor to some value say N(seconds). Change all or few of - the attributes on the DUT" + "Step 19: TH sends a subscription request to subscribe to all + attributes from all clusters from all endpoints. AttributePath = [[]]. + Set the MinIntervalFloor to some value say 'N'(seconds). Change all or + few of the attributes on the DUT" verification: | Out of Scope for V1.0 https://github.com/project-chip/connectedhomeip/issues/15999 disabled: true - label: - "TH sends a subscription request to subscribe to all attributes from - all clusters on an endpoint. AttributePath = [[Endpoint = - EndpointID]]. Set the MinIntervalFloor to some value say N(seconds). - Change all or few of the attributes on the DUT" + "Step 20: TH sends a subscription request to subscribe to all + attributes from all clusters on an endpoint. AttributePath = + [[Endpoint = EndpointID]]. Set the MinIntervalFloor to some value say + 'N'(seconds). Change all or few of the attributes on the DUT" verification: | Out of Scope for V1.0 https://github.com/project-chip/connectedhomeip/issues/15999 disabled: true - label: - "TH sends a subscription request to subscribe to all attributes from a - specific cluster on all endpoints. AttributePath = [[Cluster = - ClusterID]]. Set the MinIntervalFloor to some value say N(seconds). - Change all or few of the attributes on the DUT" + "Step 21: TH sends a subscription request to subscribe to all + attributes from a specific cluster on all endpoints. AttributePath = + [[Cluster = ClusterID]]. Set the MinIntervalFloor to some value say + 'N'(seconds). Change all or few of the attributes on the DUT" verification: | Out of Scope for V1.0 https://github.com/project-chip/connectedhomeip/issues/15999 diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_4.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_4.yaml index ae85c350c1a701..5983a71fcef102 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_4.yaml @@ -25,15 +25,9 @@ config: tests: - label: - "TH sends a subscription request action for an attribute to the DUT. - Activate the subscription between DUT and the TH." + "Step 1: TH sends a subscription request action for an attribute to + the DUT. Activate the subscription between DUT and the TH." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Please use Interactive mode to Verify subscription test cases - Here the command to enter interactive mode:-- ./chip-tool interactive start - - onoff subscribe on-time 10 100 1 1 --auto-resubscribe true Verify on the TH(chip-tool) that the Report data messages are sent from the DUT(Reference app) for subscription request action to the TH(chip-tool) with the correct attribute values. @@ -55,7 +49,7 @@ tests: [1675085714.397832][208829:208831] CHIP:DMG: Subscription established with SubscriptionID = 0xa11efe71 MinInterval = 10s MaxInterval = 100s Peer = 01:0000000000000001 disabled: true - - label: "Power off the DUT. Power on the DUT immediately." + - label: "Step 2: Power off the DUT. Power on the DUT immediately." verification: | Verify on the TH(chip-tool) that the subscription between the DUT(Reference-app) and TH(chip-tool) is restablished and DUT(Reference-app) is able to send report data messages for the attribute which was subscribed to in step 1 within the MaxInterval time. diff --git a/src/app/tests/suites/certification/Test_TC_IDM_5_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_5_1.yaml index dbfcd6c51b62f6..2fcbaec1a85bf0 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_5_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_5_1.yaml @@ -31,10 +31,10 @@ tests: disabled: true - label: - "DUT sends the Timed Request to the TH and then sends an Invoke - Request Message to the TH after receiving the status response message - from the TH. The Timed Request Message should contain a timeout value - in milliseconds. (Example - 200 milliseconds)" + "Step 1: DUT sends the Timed Request to the TH and then sends an + Invoke Request Message to the TH after receiving the status response + message from the TH. The Timed Request Message should contain a + timeout value in milliseconds. (Example - 200 milliseconds)" PICS: MCORE.IDM.C.InvokeRequest verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -77,53 +77,10 @@ tests: [1655797318.627383][7331:7331] CHIP:DMG: InteractionModelRevision = 1 [1655797318.627406][7331:7331] CHIP:DMG: }, [1655797318.627467][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o - - - If the DUT has to provision to verify the logs, verify that TH (all-clusters-app) sent Subscription report with unic subscriptionID and StatusResponseMessage. - [1657886182.184612][3396:3401] CHIP:DMG: StatusResponseMessage = - [1657886182.184642][3396:3401] CHIP:DMG: { - [1657886182.184667][3396:3401] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657886182.184693][3396:3401] CHIP:DMG: InteractionModelRevision = 1 - [1657886182.184716][3396:3401] CHIP:DMG: } - [1657886182.184742][3396:3401] CHIP:IM: Received status response, status is 0x00 (SUCCESS) - - - 61453140 from RetransTable on exchange 17901i - [1657886182.190976][3396:3401] CHIP:DMG: ICR moving to [ResponseRe] - [1657886182.191027][3396:3401] CHIP:DMG: InvokeResponseMessage = - [1657886182.191052][3396:3401] CHIP:DMG: { - [1657886182.191076][3396:3401] CHIP:DMG: suppressResponse = false, - [1657886182.191101][3396:3401] CHIP:DMG: InvokeResponseIBs = - [1657886182.191132][3396:3401] CHIP:DMG: [ - [1657886182.191157][3396:3401] CHIP:DMG: InvokeResponseIB = - [1657886182.191190][3396:3401] CHIP:DMG: { - [1657886182.191216][3396:3401] CHIP:DMG: CommandStatusIB = - [1657886182.191253][3396:3401] CHIP:DMG: { - [1657886182.191286][3396:3401] CHIP:DMG: CommandPathIB = - [1657886182.191325][3396:3401] CHIP:DMG: { - [1657886182.191365][3396:3401] CHIP:DMG: EndpointId = 0x1, - [1657886182.191400][3396:3401] CHIP:DMG: ClusterId = 0x6, - [1657886182.191439][3396:3401] CHIP:DMG: CommandId = 0x1, - [1657886182.191472][3396:3401] CHIP:DMG: }, - [1657886182.191510][3396:3401] CHIP:DMG: - [1657886182.191541][3396:3401] CHIP:DMG: StatusIB = - [1657886182.191575][3396:3401] CHIP:DMG: { - [1657886182.191613][3396:3401] CHIP:DMG: status = 0x00 (SUCCESS), - [1657886182.191649][3396:3401] CHIP:DMG: }, - [1657886182.191683][3396:3401] CHIP:DMG: - [1657886182.191712][3396:3401] CHIP:DMG: }, - [1657886182.191746][3396:3401] CHIP:DMG: - [1657886182.191772][3396:3401] CHIP:DMG: }, - [1657886182.191802][3396:3401] CHIP:DMG: - [1657886182.191826][3396:3401] CHIP:DMG: ], - [1657886182.191856][3396:3401] CHIP:DMG: - [1657886182.191880][3396:3401] CHIP:DMG: InteractionModelRevision = 1 - [1657886182.191903][3396:3401] CHIP:DMG: }, - [1657886182.191963][3396:3401] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0 disabled: true - label: - "DUT sends the Timed Request to the TH and then sends a + "Step 2: DUT sends the Timed Request to the TH and then sends a WriteRequestMessage to the TH after receiving the status response message from the TH. The Timed Request Message should contain a timeout value in milliseconds. (Example - 200 milliseconds)" @@ -174,50 +131,14 @@ tests: [1657459639.600842][11525:11525] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=1 p=o [1657459639.600888][11525:11525] CHIP:DMG: AccessControl: allowed [1657459639.600936][11525:11525] CHIP:DMG: Endpoint 1, Cluster 0x0000_0006 update version to 1979c48 - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID and StatusResponseMessage. - [1657886272.645704][3404:3409] CHIP:DMG: StatusResponseMessage = - [1657886272.645751][3404:3409] CHIP:DMG: { - [1657886272.645792][3404:3409] CHIP:DMG: Status = 0x00 (SUCCESS), - [1657886272.645839][3404:3409] CHIP:DMG: InteractionModelRevision = 1 - [1657886272.645878][3404:3409] CHIP:DMG: } - [1657886272.645918][3404:3409] CHIP:IM: Received status response, status is 0x00 (SUCCESS) - - [1657886272.648220][3404:3409] CHIP:DMG: WriteClient moving to [ResponseRe] - [1657886272.648285][3404:3409] CHIP:DMG: WriteResponseMessage = - [1657886272.648326][3404:3409] CHIP:DMG: { - [1657886272.648361][3404:3409] CHIP:DMG: AttributeStatusIBs = - [1657886272.648410][3404:3409] CHIP:DMG: [ - [1657886272.648450][3404:3409] CHIP:DMG: AttributeStatusIB = - [1657886272.648494][3404:3409] CHIP:DMG: { - [1657886272.648535][3404:3409] CHIP:DMG: AttributePathIB = - [1657886272.648593][3404:3409] CHIP:DMG: { - [1657886272.648644][3404:3409] CHIP:DMG: Endpoint = 0x1, - [1657886272.648698][3404:3409] CHIP:DMG: Cluster = 0x6, - [1657886272.648752][3404:3409] CHIP:DMG: Attribute = 0x0000_4001, - [1657886272.648803][3404:3409] CHIP:DMG: } - [1657886272.648860][3404:3409] CHIP:DMG: - [1657886272.648910][3404:3409] CHIP:DMG: StatusIB = - [1657886272.648959][3404:3409] CHIP:DMG: { - [1657886272.649011][3404:3409] CHIP:DMG: status = 0x00 (SUCCESS), - [1657886272.649067][3404:3409] CHIP:DMG: }, - [1657886272.649115][3404:3409] CHIP:DMG: - [1657886272.649161][3404:3409] CHIP:DMG: }, - [1657886272.649212][3404:3409] CHIP:DMG: - [1657886272.649250][3404:3409] CHIP:DMG: ], - [1657886272.649283][3404:3409] CHIP:DMG: - [1657886272.649308][3404:3409] CHIP:DMG: InteractionModelRevision = 1 - [1657886272.649333][3404:3409] CHIP:DMG: } - [1657886272.649415][3404:3409] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1657886272.649481][3404:3409] CHIP:EM: Sending Standalone Ack for MessageCounter:137181137 on exchange 234i disabled: true - label: - "DUT sends the Timed Request to the TH The Timed Request Message - should contain a timeout value in milliseconds. (Example - 200 + "Step 3: DUT sends the Timed Request to the TH The Timed Request + Message should contain a timeout value in milliseconds. (Example - 200 milliseconds) Force the TH to not send a response back to the DUT for the received timed request." PICS: MCORE.IDM.C.WriteRequest || MCORE.IDM.C.InvokeRequest verification: | - Mark this as not testable /NA. Out of Scope for V1.0 + Mark this as not testable /NA. Out of Scope disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_5_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_5_2.yaml index 63d04c0b09443a..dbff45ceff5b9d 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_5_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_5_2.yaml @@ -27,10 +27,9 @@ config: tests: - label: - "TH sends a Timed Request Message with the timeout value set. (Example - - 200 milliseconds). +" + "Step 1: TH sends a Timed Request Message with the timeout value set. + (Example - 200 milliseconds). +" verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. ./chip-tool onoff on 1 1 --timedInteractionTimeoutMs 200 Verify on TH(chip-tool) receives the StatusResponseMessage for the data sent in the above command @@ -44,13 +43,11 @@ tests: disabled: true - label: - "TH sends a Timed Request Message(Timed Write Transaction) with the - timeout value set. (Example - 200 milliseconds). Wait for the status - response message to be received. Send the Write Request Message to the - DUT." + "Step 2: TH sends a Timed Request Message(Timed Write Transaction) + with the timeout value set. (Example - 200 milliseconds). Wait for the + status response message to be received. Send the Write Request Message + to the DUT." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - ./chip-tool levelcontrol write on-level 1 1 1 --timedInteractionTimeoutMs 500 Verify on TH(chip-tool) receives the WriteResponseMessage for the data sent in the above command @@ -90,14 +87,12 @@ tests: disabled: true - label: - "TH sends a Timed Request Message(Timed Invoke Transaction) with the - timeout value set. (Example - 200 milliseconds). Wait for the status - response message to be received. Wait for 5 seconds(Timer has expired) - and then send the Invoke Request Message to the DUT." + "Step 3: TH sends a Timed Request Message(Timed Invoke Transaction) + with the timeout value set. (Example - 200 milliseconds). Wait for the + status response message to be received. Wait for 5 seconds(Timer has + expired) and then send the Invoke Request Message to the DUT." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - ./chip-tool onoff on 1 1 --repeat-delay-ms 5000 --timedInteractionTimeoutMs 200 + ./chip-tool onoff on 1 1 --repeat-delay-ms 5000 --timedInteractionTimeoutMs 200 On TH(chip-tool), Verify we are getting status response and UNSUPPORTED_ACCESS from DUT to TH for above command @@ -126,13 +121,11 @@ tests: disabled: true - label: - "TH sends a Timed Request Message(Timed Write Transaction) with the - timeout value set. (Example - 200 milliseconds). Wait for the status - response message to be received. Wait for 5 seconds(Timer has expired) - and then send the Write Request Message to the DUT." + "Step 4: TH sends a Timed Request Message(Timed Write Transaction) + with the timeout value set. (Example - 200 milliseconds). Wait for the + status response message to be received. Wait for 5 seconds(Timer has + expired) and then send the Write Request Message to the DUT." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - ./chip-tool modeselect write on-mode 0 1 1 --repeat-delay-ms 1000 --timedInteractionTimeoutMs 500 On TH(chip-tool), Verify we are getting status response and UNSUPPORTED_ACCESS from DUT to TH for above command diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_1.yaml index e4bed3f17fb3b7..31339d68e30856 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_6_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_6_1.yaml @@ -25,14 +25,11 @@ config: tests: - label: - "TH sends Read Request Message to DUT with EventRequests set to a - specific event from a specific cluster on a specific endpoint on a - specific node that is, [Node = Specific, Endpoint = Specific, Cluster - = Specific, Event = Specific]." + "Step 1: TH sends Read Request Message to DUT with EventRequests set + to a specific event from a specific cluster on a specific endpoint on + a specific node that is, [Node = Specific, Endpoint = Specific, + Cluster = Specific, Event = Specific]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - ./chip-tool basicinformation read-event start-up 1 0 On TH(chip-tool) verify DUT sends Report Data Message with the data for specific event in Read Request Message. @@ -78,14 +75,12 @@ tests: disabled: true - label: - "TH sends Read Request Message to DUT with EventRequests set to all - events from a specific cluster on a specific endpoint on a specific - node that is, [Node = Specific, Endpoint = Specific, Cluster = - Specific, Event = Wildcard]." + "Step 2: TH sends Read Request Message to DUT with EventRequests set + to all events from a specific cluster on a specific endpoint on a + specific node that is, [Node = Specific, Endpoint = Specific, Cluster + = Specific, Event = Wildcard]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - ./chip-tool any read-event-by-id 0x0028 0x0FFFFFFFF 1 0 + ./chip-tool any read-event-by-id 0x0028 0x0FFFFFFFF 1 0 On TH(chip-tool) verify DUT sends Report Data Message with the data for specific event in Read Request Message. [1652420332.235228][6031:6036] CHIP:DMG: ReportDataMessage = [1652420332.235259][6031:6036] CHIP:DMG: { @@ -128,10 +123,10 @@ tests: disabled: true - label: - "TH sends Read Request Message to DUT with EventRequests set to all - events from all clusters on a specific endpoint on a specific node - that is, [Node = Specific, Endpoint = Specific, Cluster = Wildcard, - Event = Wildcard]." + "Step 3: TH sends Read Request Message to DUT with EventRequests set + to all events from all clusters on a specific endpoint on a specific + node that is, [Node = Specific, Endpoint = Specific, Cluster = + Wildcard, Event = Wildcard]." verification: | ./chip-tool any read-event-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0 @@ -171,14 +166,12 @@ tests: disabled: true - label: - "TH sends Read Request Message to DUT with EventRequests set to a - specific event from a specific cluster on all endpoints on a specific - node that is, [Node = Specific, Endpoint = Wildcard, Cluster = - Specific, Event = Specific]." + "Step 4: TH sends Read Request Message to DUT with EventRequests set + to a specific event from a specific cluster on all endpoints on a + specific node that is, [Node = Specific, Endpoint = Wildcard, Cluster + = Specific, Event = Specific]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - ./chip-tool basicinformation read-event start-up 1 0xFFFF + ./chip-tool basicinformation read-event start-up 1 0xFFFF On TH(chip-tool), verify DUT sends Report Data Message with the data for specific event in Read Request Message. @@ -223,13 +216,11 @@ tests: disabled: true - label: - "TH sends Read Request Message to DUT with EventRequests set to all - events from a specific cluster on all endpoints on a specific node - that is, [Node = Specific, Endpoint = Wildcard, Cluster = Specific, - Event = Wildcard]." + "Step 5: TH sends Read Request Message to DUT with EventRequests set + to all events from a specific cluster on all endpoints on a specific + node that is, [Node = Specific, Endpoint = Wildcard, Cluster = + Specific, Event = Wildcard]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - ./chip-tool basicinformation read-event-by-id 0xFFFFFFFF 1 0xFFFF On TH(chip-tool) verify DUT sends Report Data Message with the data for specific event in Read Request Message. @@ -274,10 +265,10 @@ tests: disabled: true - label: - "TH sends Read Request Message to DUT with EventRequests set to all - events from all clusters on all endpoints on a specific node that is, - [Node = Specific, Endpoint = Wildcard, Cluster = Wildcard, Event = - Wildcard]." + "Step 6: TH sends Read Request Message to DUT with EventRequests set + to all events from all clusters on all endpoints on a specific node + that is, [Node = Specific, Endpoint = Wildcard, Cluster = Wildcard, + Event = Wildcard]." verification: | ./chip-tool any read-event-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF On TH(chip-tool) verify DUT sends Report Data Message with the data for specific event in Read Request Message. @@ -404,19 +395,17 @@ tests: disabled: true - label: - "TH sends Read Request Message to DUT with EventRequests set to path - which indicates a cluster event that is not supported." + "Step 7: TH sends Read Request Message to DUT with EventRequests set + to path which indicates a cluster event that is not supported." verification: | Mark this as not testable /NA. Out of Scope for V1.0 disabled: true - label: - "TH sends Read Request Message to DUT with EventRequests set to path - which requires a privilege that is not granted for the cluster in the - path." + "Step 8: TH sends Read Request Message to DUT with EventRequests set + to path which requires a privilege that is not granted for the cluster + in the path." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - To Setup the TH such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except ACL cluster command if try to send any other command will get status as unsupported access @@ -505,13 +494,13 @@ tests: disabled: true - label: - "TH sends Read Request Message to DUT with EventRequests set to - Wildcard path where reading an event in the path requires a privilege - that is not granted for the cluster in the path." + "Step 9: TH sends Read Request Message to DUT with EventRequests set + to Wildcard path where reading an event in the path requires a + privilege that is not granted for the cluster in the path." verification: | To Setup the TH such that there is no accessing fabric, 1st we need to send below mentioned ACL command - ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [1234], "targets": null}]' 1 0 + ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [11223344], "targets": null}]' 1 0 ./chip-tool any read-event-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF On TH(chip-tool) verify DUT sends Report Data Message with no entry for that event in EventReports list. @@ -526,11 +515,11 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read back events. Note - down the largest event number received in the report data message sent - back from the DUT. TH sends Read Request Message to DUT with the - EventMin field set to a number less than what was received in the - previous step." + "Step 10: TH sends a Read Request Message to the DUT to read back + events. Note down the largest event number received in the report data + message sent back from the DUT. TH sends Read Request Message to DUT + with the EventMin field set to a number less than what was received in + the previous step." verification: | ./chip-tool any read-event-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF @@ -598,14 +587,13 @@ tests: disabled: true - label: - "TH sends a Read Request Message to the DUT to read back events. Note - down the largest event number received in the report data message sent - back from the DUT. TH sends Read Request Message to DUT with the - EventMin field set to a number much greater than what was received in - the previous step." + "Step 11: TH sends a Read Request Message to the DUT to read back + events. Note down the largest event number received in the report data + message sent back from the DUT. TH sends Read Request Message to DUT + with the EventMin field set to a number much greater than what was + received in the previous step." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - ./chip-tool basicinformation read-event start-up 1 0 --event-min 131073 + ./chip-tool basicinformation read-event start-up 1 0 --event-min 131073 On TH(chip-tool) verify that the DUT sends Report Data Message with empty EventReports [1650622225.700153][3069:3074] CHIP:DMG: ReportDataMessage = @@ -616,9 +604,9 @@ tests: disabled: true - label: - "[Testing Chunked Event Data] TH sends Read Request Message to DUT - with EventRequests set to all events so as to create a very large - event data. For every chunked data message received, DUT sends a + "Step 12: [Testing Chunked Event Data] TH sends Read Request Message + to DUT with EventRequests set to all events so as to create a very + large event data. For every chunked data message received, DUT sends a status response." verification: | Try to verify this step in doorlock app, below mentioned wildcard command to read-event from TH to DUT. diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml index 7a7ba1b7ca2db4..f96eca2c6bfe3a 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml @@ -33,18 +33,15 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventRequests set to a - specific event from a specific cluster on a specific endpoint on a - specific node that is, [Node = Specific, Endpoint = Specific, Cluster - = Specific, Event = Specific]." + "Step 1: TH sends Subscribe Request Message to DUT with EventRequests + set to a specific event from a specific cluster on a specific endpoint + on a specific node that is, [Node = Specific, Endpoint = Specific, + Cluster = Specific, Event = Specific]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Pls run this test in chip tool interactive mode ./chip-tool interactive start - On the TH (chip-tool) pls subscribe to start-up event (below command), right after you power on the DUT. If DUT vendor is subscribing to any other event, Pls use appropriate steps on the DUT to generate that event and use subscribe to that event from TH. - basicinformation subscribe-event start-up 20 100 1 0 + basicinformation subscribe-event start-up 20 100 1 0 --keepSubscriptions true + On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT @@ -92,15 +89,12 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventRequests set to - all events from a specific cluster on a specific endpoint on a + "Step 2: TH sends Subscribe Request Message to DUT with EventRequests + set to all events from a specific cluster on a specific endpoint on a specific node that is, [Node = Specific, Endpoint = Specific, Cluster = Specific, Event = Wildcard]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Pls run this test in chip tool interactive mode ./chip-tool interactive start - - basicinformation subscribe-event-by-id 0xFFFFFFFF 10 100 1 0 + basicinformation subscribe-event-by-id 0xFFFFFFFF 10 100 1 0 --keepSubscriptions true On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT @@ -149,14 +143,13 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventRequests set to - all events from all clusters on a specific endpoint on a specific node - that is, [Node = Specific, Endpoint = Specific, Cluster = Wildcard, - Event = Wildcard]." + "Step 3: TH sends Subscribe Request Message to DUT with EventRequests + set to all events from all clusters on a specific endpoint on a + specific node that is, [Node = Specific, Endpoint = Specific, Cluster + = Wildcard, Event = Wildcard]." + PICS: "" verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please run this test in chip tool interactive mode ./chip-tool interactive start - any subscribe-event-by-id 0xFFFFFFFF 0xFFFFFFFF 20 100 1 0 + any subscribe-event-by-id 0xFFFFFFFF 0xFFFFFFFF 20 100 1 0 --keepSubscriptions true On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657455981.545783][11635:11640] CHIP:EM: Rxd Ack; Removing MessageCounter:190733250 from Retrans Table on exchange 33693i @@ -256,15 +249,13 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventRequests set to a - specific event from a specific cluster on all endpoints on a specific - node that is, [Node = Specific, Endpoint = Wildcard, Cluster = - Specific, Event = Specific]." + "Step 4: TH sends Subscribe Request Message to DUT with EventRequests + set to a specific event from a specific cluster on all endpoints on a + specific node that is, [Node = Specific, Endpoint = Wildcard, Cluster + = Specific, Event = Specific]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please run this test in chip tool interactive mode ./chip-tool interactive start + basicinformation subscribe-event-by-id 0x00 10 700 1 0xFFFF --keepSubscriptions true - basicinformation subscribe-event-by-id 0x00 10 700 1 0xFFFF On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657456063.474971][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733253 from RetransTable on exchange 33694i [1657456063.475103][11635:11640] CHIP:DMG: ReportDataMessage = @@ -309,15 +300,12 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventRequests set to - all events from a specific cluster on all endpoints on a specific node - that is, [Node = Specific, Endpoint = Wildcard, Cluster = Specific, - Event = Wildcard]." + "Step 5: TH sends Subscribe Request Message to DUT with EventRequests + set to all events from a specific cluster on all endpoints on a + specific node that is, [Node = Specific, Endpoint = Wildcard, Cluster + = Specific, Event = Wildcard]." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please run this test in chip tool interactive mode ./chip-tool interactive start - - basicinformation subscribe-event-by-id 0xFFFFFFFF 10 100 1 0xFFFF + basicinformation subscribe-event-by-id 0xFFFFFFFF 10 100 1 0xFFFF On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657456157.932285][11635:11640] CHIP:EM: Rxd Ack; Removing MessageCounter:190733256 from Retrans Table on exchange 33695i [1657456157.932327][11635:11640] CHIP:EM: Removed CHIP MessageCounter:190733256 from RetransTable on exchange 33695i @@ -364,13 +352,11 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventRequests set to - all events from all clusters on all endpoints on a specific node that - is, [Node = Specific, Endpoint = Wildcard, Cluster = Wildcard, Event = - Wildcard]." + "Step 6: TH sends Subscribe Request Message to DUT with EventRequests + set to all events from all clusters on all endpoints on a specific + node that is, [Node = Specific, Endpoint = Wildcard, Cluster = + Wildcard, Event = Wildcard]." verification: | - Please run this test in chip tool interactive mode ./chip-tool interactive start - any subscribe-event-by-id 0xFFFFFFFF 0xFFFFFFFF 100 1000 1 0xFFFF On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher and data for events in Subscribe Request Message from DUT [1657456221.167627][11635:11640] CHIP:DMG: ReportDataMessage = @@ -584,13 +570,10 @@ tests: disabled: true - label: - "Activate Event subscription from TH to DUT and trigger the subscribed - event on the DUT before minimum interval." + "Step 7: Activate Event subscription from TH to DUT and trigger the + subscribed event on the DUT before minimum interval." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please run this test in chip tool interactive mode ./chip-tool interactive start - - basicinformation subscribe-event-by-id 0x000 100 1000 1 0 + basicinformation subscribe-event-by-id 0x000 100 1000 1 0 --keepSubscriptions true On TH(chip-tool) verify that the Report Data Message for event only after the minimum interval has expiredwith SubscriptionId which uniquely identifies this subscription events in Subscribe Request Message from DUT. [1657456305.446793][11635:11640] CHIP:EM: Rxd Ack; Removing MessageCounter:190733262 from Retrans Table on exchange 33697i @@ -637,66 +620,62 @@ tests: disabled: true - label: - "Activate Event subscription from TH to DUT and and trigger the - subscribed event on the DUT before minimum interval. IsUrgent flag is - set to True for a particular event path in the EventPathIB in the - SubscribeRequestMessage." + "Step 8: Activate Event subscription from TH to DUT and and trigger + the subscribed event on the DUT before minimum interval. 'IsUrgent' + flag is set to True for a particular event path in the EventPathIB in + the SubscribeRequestMessage." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please run this test in chip tool interactive mode ./chip-tool interactive start - - basicinformation subscribe-event start-up 30 100 1 0 --is-urgent true - - On TH(chip-tool) verify that the Report Data Message for all subscribed events, - [1657456352.516479][11635:11640] CHIP:DMG: ReportDataMessage = - [1657456352.516569][11635:11640] CHIP:DMG: { - [1657456352.516631][11635:11640] CHIP:DMG: SubscriptionId = 0x88b484dc, - [1657456352.516716][11635:11640] CHIP:DMG: EventReportIBs = - [1657456352.516798][11635:11640] CHIP:DMG: [ - [1657456352.516878][11635:11640] CHIP:DMG: EventReportIB = - [1657456352.516970][11635:11640] CHIP:DMG: { - [1657456352.517061][11635:11640] CHIP:DMG: EventDataIB = - [1657456352.517138][11635:11640] CHIP:DMG: { - [1657456352.517234][11635:11640] CHIP:DMG: EventPath = - [1657456352.517316][11635:11640] CHIP:DMG: { - [1657456352.517421][11635:11640] CHIP:DMG: Endpoint = 0x0, - [1657456352.517530][11635:11640] CHIP:DMG: Cluster = 0x28, - [1657456352.517616][11635:11640] CHIP:DMG: Event = 0x0, - [1657456352.517718][11635:11640] CHIP:DMG: }, - [1657456352.517823][11635:11640] CHIP:DMG: - [1657456352.517902][11635:11640] CHIP:DMG: EventNumber = 0x0, - [1657456352.517987][11635:11640] CHIP:DMG: PriorityLevel = 0x2, - [1657456352.518067][11635:11640] CHIP:DMG: SystemTimestamp = 0x5b7a5f, - [1657456352.518147][11635:11640] CHIP:DMG: EventData = - [1657456352.518225][11635:11640] CHIP:DMG: { - [1657456352.518308][11635:11640] CHIP:DMG: 0x0 = 1, - [1657456352.518386][11635:11640] CHIP:DMG: }, - [1657456352.518456][11635:11640] CHIP:DMG: }, - [1657456352.518548][11635:11640] CHIP:DMG: - [1657456352.518612][11635:11640] CHIP:DMG: }, - [1657456352.518714][11635:11640] CHIP:DMG: - [1657456352.518775][11635:11640] CHIP:DMG: ], - [1657456352.518872][11635:11640] CHIP:DMG: - [1657456352.518935][11635:11640] CHIP:DMG: InteractionModelRevision = 1 - [1657456352.518993][11635:11640] CHIP:DMG: } - [1657456352.519293][11635:11640] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000 - [1657456352.519354][11635:11640] CHIP:TOO: Event number: 0 - [1657456352.519474][11635:11640] CHIP:TOO: Priority: Critical - [1657456352.519531][11635:11640] CHIP:TOO: Timestamp: 5995103 - [1657456352.519609][11635:11640] CHIP:TOO: StartUp: { - [1657456352.519671][11635:11640] CHIP:TOO: SoftwareVersion: 1 - [1657456352.519752][11635:11640] CHIP:TOO: } - [1657456352.519886][11635:11640] CHIP:DMG: MoveToState ReadClient[0xffff940092b0]: Moving to [AwaitingSu] + basicinformation subscribe-event start-up 3 10 1 0 --is-urgent true --keepSubscriptions true + + On TH(chiptool), Verify TH receives Report Data Message for all subscribed events, including any queued events leading up to (and including) the urgent event, after the minimum interval time. + + [1689936447.980311][50375:50377] CHIP:EM: Rxd Ack; Removing MessageCounter:21689776 from Retrans Table on exchange 23683i + [1689936447.980350][50375:50377] CHIP:DMG: ReportDataMessage = + [1689936447.980360][50375:50377] CHIP:DMG: { + [1689936447.980368][50375:50377] CHIP:DMG: SubscriptionId = 0xb2266b9e, + [1689936447.980377][50375:50377] CHIP:DMG: EventReportIBs = + [1689936447.980392][50375:50377] CHIP:DMG: [ + [1689936447.980399][50375:50377] CHIP:DMG: EventReportIB = + [1689936447.980415][50375:50377] CHIP:DMG: { + [1689936447.980424][50375:50377] CHIP:DMG: EventDataIB = + [1689936447.980450][50375:50377] CHIP:DMG: { + [1689936447.980459][50375:50377] CHIP:DMG: EventPath = + [1689936447.980470][50375:50377] CHIP:DMG: { + [1689936447.980482][50375:50377] CHIP:DMG: Endpoint = 0x0, + [1689936447.980493][50375:50377] CHIP:DMG: Cluster = 0x28, + [1689936447.980505][50375:50377] CHIP:DMG: Event = 0x0, + [1689936447.980514][50375:50377] CHIP:DMG: }, + [1689936447.980526][50375:50377] CHIP:DMG: + [1689936447.980536][50375:50377] CHIP:DMG: EventNumber = 0x3, + [1689936447.980546][50375:50377] CHIP:DMG: PriorityLevel = 0x2, + [1689936447.980556][50375:50377] CHIP:DMG: EpochTimestamp = 0x18977193a21, + [1689936447.980567][50375:50377] CHIP:DMG: EventData = + [1689936447.980578][50375:50377] CHIP:DMG: { + [1689936447.980590][50375:50377] CHIP:DMG: 0x0 = 1, + [1689936447.980600][50375:50377] CHIP:DMG: }, + [1689936447.980609][50375:50377] CHIP:DMG: }, + [1689936447.980623][50375:50377] CHIP:DMG: + [1689936447.980631][50375:50377] CHIP:DMG: }, + [1689936447.980656][50375:50377] CHIP:DMG: + [1689936447.980662][50375:50377] CHIP:DMG: ], + [1689936447.980676][50375:50377] CHIP:DMG: + [1689936447.980684][50375:50377] CHIP:DMG: InteractionModelRevision = 1 + [1689936447.980690][50375:50377] CHIP:DMG: } + [1689936447.980761][50375:50377] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000 + [1689936447.980768][50375:50377] CHIP:TOO: Event number: 3 + [1689936447.980772][50375:50377] CHIP:TOO: Priority: Critical + [1689936447.980775][50375:50377] CHIP:TOO: Timestamp: 1689920289313 + [1689936447.980789][50375:50377] CHIP:TOO: StartUp: { + [1689936447.980797][50375:50377] CHIP:TOO: SoftwareVersion: 1 + [1689936447.980804][50375:50377] CHIP:TOO: } + [1689936447.980835][50375:50377] CHIP:DMG: MoveToState ReadClient[0x7f380c010c70]: Moving to [AwaitingSu] disabled: true - label: - "Activate Event subscription from TH to DUT with no change in event - triggering attribute values before maximum interval." + "Step 9: Activate Event subscription from TH to DUT with no change in + event triggering attribute values before maximum interval." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please run this test in chip tool interactive mode ./chip-tool interactive start - - basicinformation subscribe-event start-up 20 100 1 0 + basicinformation subscribe-event start-up 20 100 1 0 --keepSubscriptions true On TH(chip-tool) verify that the Report Data Message from DUT to TH @@ -743,13 +722,11 @@ tests: disabled: true - label: - "With an active Event subscription from TH to DUT, TH sends another - Subscribe Request Message to DUT with KeepSubscriptions as False." + "Step 10: With an active Event subscription from TH to DUT, TH sends + another Subscribe Request Message to DUT with KeepSubscriptions as + False." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please run this test in chip tool interactive mode ./chip-tool interactive start - - basicinformation subscribe-event-by-id 0x000 10 500 1 0 + basicinformation subscribe-event-by-id 0x000 10 500 1 0 --keepSubscriptions true On TH(chip-tool) verify that the Report Data Message any event changes for the second subscribe request sent by the TH with SubscriptionId which uniquely identifies this subscription events in Subscribe Request Message from DUT. @@ -837,14 +814,11 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT + DUT sends Report Data - message to DUT. TH sends Status Response Message with a success Status - code." + "Step 11: TH sends Subscribe Request Message to DUT + DUT sends Report + Data message to DUT. TH sends Status Response Message with a success + Status code." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - Please run this test in chip tool interactive mode ./chip-tool interactive start - - basicinformation subscribe-event-by-id 0x000 20 400 1 0 + basicinformation subscribe-event-by-id 0x000 20 400 1 0 --keepSubscriptions true On TH(chip-tool) verify that the Report Data Message with SubscriptionId which uniquely identifies this subscription on the publisher, Maximuminterval and miinimuminterval in seconds for events in Subscribe Request Message from DUT @@ -858,28 +832,24 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventRequests set to - path which indicates a cluster event that is not supported." + "Step 12: TH sends Subscribe Request Message to DUT with EventRequests + set to path which indicates a cluster event that is not supported." verification: | - Mark this as not testable /NA. Out of Scope for V1.0 + Mark this as not testable /NA. Out of Scope disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventRequests set to - path which requires a privilege that is not granted for the cluster in - the path." + "Step 13: TH sends Subscribe Request Message to DUT with EventRequests + set to path which requires a privilege that is not granted for the + cluster in the path." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - #1:- Please run this test in chip tool interactive mode ./chip-tool interactive start - - - #2:- To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command and Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except ACL cluster command if try to send any other command will get status as unsupported access. + To Setup the TH(chip-tool) such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command and Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except ACL cluster command if try to send any other command will get status as unsupported access. accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0 + basicinformation subscribe-event-by-id 0x000 100 1000 1 0 --keepSubscriptions true - #3:- basicinformation subscribe-event-by-id 0x000 100 1000 1 0 on TH(chip-tool) verify DUT responds with UNSUPPORTED_ACCESS for the data sent in the above command [1663151225.226869][41115:41120] CHIP:DMG: ReportDataMessage = @@ -923,19 +893,15 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventRequests set to - Wildcard path where reading an event in the path requires a privilege - that is not granted for the cluster in the path." + "Step 14: TH sends Subscribe Request Message to DUT with EventRequests + set to Wildcard path where reading an event in the path requires a + privilege that is not granted for the cluster in the path." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Please run this test in chip tool interactive mode ./chip-tool interactive start - To Setup the TH such that there is no accessing fabric, 1st we need to send below mentioned ACL command - accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [1234], "targets": null}]' 1 0 + #1 accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [1234], "targets": null}]' 1 0 - any subscribe-event-by-id 0xFFFFFFFF 0xFFFFFFFF 100 1000 1 0xFFFF + #2 any subscribe-event-by-id 0xFFFFFFFF 0xFFFFFFFF 100 1000 1 0xFFFF verify DUT is responds with Report Data Message with no entry for that event in the EventReports list. for the data sent in the above command @@ -950,16 +916,11 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventFilterIB Node - information field matching the node indicated in the path and EventMin - field." + "Step 15: TH sends Subscribe Request Message to DUT with EventFilterIB + Node information field matching the node indicated in the path and + EventMin field." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - - Please run this test in chip tool interactive mode ./chip-tool interactive start - accesscontrol subscribe-event access-control-entry-changed 5 10 1 0 - + accesscontrol subscribe-event access-control-entry-changed 5 10 1 0 --keepSubscriptions true On TH(chip-tool), verify that the Report Data Message with EventReports for event numbers higher than the EventMin field and Verify that the subsequent ReportData actions as part of the subscription include the latest EventNo associated with each node generating new events @@ -1097,17 +1058,11 @@ tests: disabled: true - label: - "TH sends Subscribe Request Message to DUT with EventFilterIB Node - information field matching the node indicated in the path and the + "Step 16: TH sends Subscribe Request Message to DUT with EventFilterIB + Node information field matching the node indicated in the path and the event number is less than the EventMin field." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - - Please run this test in chip tool interactive mode ./chip-tool interactive start - - basicinformation subscribe-event-by-id 0x000 100 1000 1 0 --event-min 1 - + basicinformation subscribe-event-by-id 0x000 100 1000 1 0 --event-min 1 --keepSubscriptions true On TH(chip-tool) verify that the Report Data Message with empty EventReports from DUT and Verify that the subsequent ReportData actions as part of the subscription include the latest EventNo associated with each node generating new events. [1655980488.281744][4665:4671] CHIP:EM: Removed CHIP MessageCounter:255017723 from RetransTable on exchange 3120i @@ -1125,13 +1080,9 @@ tests: disabled: true - label: - "With an active Event subscription from TH to DUT, trigger events on - DUT multiple times." + "Step 17: With an active Event subscription from TH to DUT, trigger + events on DUT multiple times." verification: | - The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command. - - Please run this test in chip tool interactive mode ./chip-tool interactive start - accesscontrol subscribe-event access-control-entry-changed 20 500 1 0 --keepSubscriptions 1 On TH(chip-tool) verify that each event number [1658405014.975407][4236:4241] CHIP:DMG: } @@ -1254,10 +1205,10 @@ tests: disabled: true - label: - "With an active Event subscription from TH to DUT, change attribute - values on DUT to create events multiple times. Perform a factory data - reset on DUT, re-subscribe to events and continue to change attribute - values on DUT to create events multiple times." + "Step 18: With an active Event subscription from TH to DUT, change + attribute values on DUT to create events multiple times. Perform a + factory data reset on DUT, re-subscribe to events and continue to + change attribute values on DUT to create events multiple times." verification: | - Mark this as not testable /NA. Out of Scope for V1.0 + Mark this as not testable /NA. Out of Scope disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_3.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_3.yaml index aaa8fb87f7c3ff..289946b20bf99e 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_6_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_6_3.yaml @@ -29,195 +29,30 @@ tests: Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. disabled: true - - label: "DUT sends Read Request Message to the TH for a supported event." + - label: + "Step 1: DUT sends Read Request Message to the TH for a supported + event." verification: | ./chip-tool any read-event-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF - On TH(Reference app) verify that the Read Request Message received has these fields + On TH(all-clusters-app) verify that the Read Request Message received has these fields EventRequests, EventFilters and FabricFiltered - - If the DUT has to provision to verify the logs, verify that Read Request Message received has these fields EventRequests, EventFilters, and FabricFiltered. - [1655210591.986723][4218:4223] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000 - [1655210591.986748][4218:4223] CHIP:TOO: Event number: 65536 - [1655210591.986771][4218:4223] CHIP:TOO: Priority: Critical - [1655210591.986792][4218:4223] CHIP:TOO: Timestamp: 17281280 - [1655210591.986847][4218:4223] CHIP:TOO: StartUp: { - [1655210591.986883][4218:4223] CHIP:TOO: SoftwareVersion: 1 - [1655210591.986907][4218:4223] CHIP:TOO: } - [1655210591.987005][4218:4223] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1655210591.987028][4218:4223] CHIP:TOO: Event number: 65537 - [1655210591.987050][4218:4223] CHIP:TOO: Priority: Info - [1655210591.987071][4218:4223] CHIP:TOO: Timestamp: 17295548 - [1655210591.987132][4218:4223] CHIP:TOO: AccessControlEntryChanged: { - [1655210591.987158][4218:4223] CHIP:TOO: AdminNodeID: null - [1655210591.987182][4218:4223] CHIP:TOO: AdminPasscodeID: 0 - [1655210591.987206][4218:4223] CHIP:TOO: ChangeType: 1 - [1655210591.987229][4218:4223] CHIP:TOO: LatestValue: { - [1655210591.987252][4218:4223] CHIP:TOO: Privilege: 5 - [1655210591.987274][4218:4223] CHIP:TOO: AuthMode: 2 - [1655210591.987301][4218:4223] CHIP:TOO: Subjects: 1 entries - [1655210591.987330][4218:4223] CHIP:TOO: [1]: 112233 - [1655210591.987355][4218:4223] CHIP:TOO: Targets: null - [1655210591.987378][4218:4223] CHIP:TOO: FabricIndex: 1 - [1655210591.987400][4218:4223] CHIP:TOO: } - [1655210591.987422][4218:4223] CHIP:TOO: AdminFabricIndex: 1 - [1655210591.987445][4218:4223] CHIP:TOO: } - [1655210591.987545][4218:4223] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Event 0x0000_0000 - [1655210591.987568][4218:4223] CHIP:TOO: Event number: 65538 - [1655210591.987590][4218:4223] CHIP:TOO: Priority: Info - [1655210591.987611][4218:4223] CHIP:TOO: Timestamp: 17343962 - [1655210591.987645][4218:4223] CHIP:TOO: SoftwareFault: { - [1655210591.987668][4218:4223] CHIP:TOO: SoftwareFault: { - [1655210591.987690][4218:4223] CHIP:TOO: Id: 2883 - [1655210591.987712][4218:4223] CHIP:TOO: Name: 2883 - [1655210591.987738][4218:4223] CHIP:TOO: FaultRecording: 547565204A756E2031342030393A31363A313820323032320A - [1655210591.987761][4218:4223] CHIP:TOO: } - [1655210591.987783][4218:4223] CHIP:TOO: } - [1655210591.987867][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.987891][4218:4223] CHIP:TOO: Event number: 65539 - [1655210591.987912][4218:4223] CHIP:TOO: Priority: Info - [1655210591.987933][4218:4223] CHIP:TOO: Timestamp: 17634460 - [1655210591.987969][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.987994][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.988016][4218:4223] CHIP:TOO: } - [1655210591.988095][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.988118][4218:4223] CHIP:TOO: Event number: 65540 - [1655210591.988139][4218:4223] CHIP:TOO: Priority: Info - [1655210591.988160][4218:4223] CHIP:TOO: Timestamp: 17634472 - [1655210591.988186][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.988210][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.988232][4218:4223] CHIP:TOO: } - [1655210591.988326][4218:4223] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Event 0x0000_0000 - [1655210591.988348][4218:4223] CHIP:TOO: Event number: 65541 - [1655210591.988370][4218:4223] CHIP:TOO: Priority: Info - [1655210591.988391][4218:4223] CHIP:TOO: Timestamp: 17644185 - [1655210591.988421][4218:4223] CHIP:TOO: SoftwareFault: { - [1655210591.988444][4218:4223] CHIP:TOO: SoftwareFault: { - [1655210591.988467][4218:4223] CHIP:TOO: Id: 2883 - [1655210591.988488][4218:4223] CHIP:TOO: Name: 2883 - [1655210591.988512][4218:4223] CHIP:TOO: FaultRecording: 547565204A756E2031342030393A32313A313820323032320A - [1655210591.988534][4218:4223] CHIP:TOO: } - [1655210591.988555][4218:4223] CHIP:TOO: } - [1655210591.988650][4218:4223] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Event 0x0000_0000 - [1655210591.988672][4218:4223] CHIP:TOO: Event number: 65542 - [1655210591.988694][4218:4223] CHIP:TOO: Priority: Info - [1655210591.988715][4218:4223] CHIP:TOO: Timestamp: 17685092 - [1655210591.988745][4218:4223] CHIP:TOO: SoftwareFault: { - [1655210591.988768][4218:4223] CHIP:TOO: SoftwareFault: { - [1655210591.988790][4218:4223] CHIP:TOO: Id: 2883 - [1655210591.988812][4218:4223] CHIP:TOO: Name: 2883 - [1655210591.988836][4218:4223] CHIP:TOO: FaultRecording: 547565204A756E2031342030393A32313A353920323032320A - [1655210591.988859][4218:4223] CHIP:TOO: } - [1655210591.988880][4218:4223] CHIP:TOO: } - [1655210591.988966][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.988988][4218:4223] CHIP:TOO: Event number: 65543 - [1655210591.989010][4218:4223] CHIP:TOO: Priority: Info - [1655210591.989031][4218:4223] CHIP:TOO: Timestamp: 17701621 - [1655210591.989057][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.989080][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.989102][4218:4223] CHIP:TOO: } - [1655210591.989186][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.989209][4218:4223] CHIP:TOO: Event number: 65544 - [1655210591.989230][4218:4223] CHIP:TOO: Priority: Info - [1655210591.989251][4218:4223] CHIP:TOO: Timestamp: 17701638 - [1655210591.989277][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.989301][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.989323][4218:4223] CHIP:TOO: } - [1655210591.989403][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.989425][4218:4223] CHIP:TOO: Event number: 65545 - [1655210591.989446][4218:4223] CHIP:TOO: Priority: Info - [1655210591.989467][4218:4223] CHIP:TOO: Timestamp: 18639509 - [1655210591.989493][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.989516][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.989539][4218:4223] CHIP:TOO: } - [1655210591.989676][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.989701][4218:4223] CHIP:TOO: Event number: 65546 - [1655210591.989723][4218:4223] CHIP:TOO: Priority: Info - [1655210591.989744][4218:4223] CHIP:TOO: Timestamp: 18639535 - [1655210591.989770][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.989794][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.989816][4218:4223] CHIP:TOO: } - [1655210591.989946][4218:4223] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0001 - [1655210591.989972][4218:4223] CHIP:TOO: Event number: 65547 - [1655210591.989994][4218:4223] CHIP:TOO: Priority: Critical - [1655210591.990015][4218:4223] CHIP:TOO: Timestamp: 18646739 - [1655210591.990047][4218:4223] CHIP:TOO: RadioFaultChange: { - [1655210591.990074][4218:4223] CHIP:TOO: Current: 0 entries - [1655210591.990101][4218:4223] CHIP:TOO: Previous: 0 entries - [1655210591.990125][4218:4223] CHIP:TOO: } - [1655210591.990209][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.990232][4218:4223] CHIP:TOO: Event number: 65548 - [1655210591.990253][4218:4223] CHIP:TOO: Priority: Info - [1655210591.990274][4218:4223] CHIP:TOO: Timestamp: 18649932 - [1655210591.990300][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.990347][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.990369][4218:4223] CHIP:TOO: } - [1655210591.990471][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.990494][4218:4223] CHIP:TOO: Event number: 65549 - [1655210591.990524][4218:4223] CHIP:TOO: Priority: Info - [1655210591.990546][4218:4223] CHIP:TOO: Timestamp: 18649967 - [1655210591.990572][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.990596][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.990628][4218:4223] CHIP:TOO: } - [1655210591.990729][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.990752][4218:4223] CHIP:TOO: Event number: 65550 - [1655210591.990782][4218:4223] CHIP:TOO: Priority: Info - [1655210591.990804][4218:4223] CHIP:TOO: Timestamp: 24455580 - [1655210591.990830][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.990864][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.990888][4218:4223] CHIP:TOO: } - [1655210591.990991][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.991023][4218:4223] CHIP:TOO: Event number: 65551 - [1655210591.991046][4218:4223] CHIP:TOO: Priority: Info - [1655210591.991067][4218:4223] CHIP:TOO: Timestamp: 24455612 - [1655210591.991094][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.991126][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.991149][4218:4223] CHIP:TOO: } - [1655210591.991253][4218:4223] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Event 0x0000_0000 - [1655210591.991284][4218:4223] CHIP:TOO: Event number: 65552 - [1655210591.991307][4218:4223] CHIP:TOO: Priority: Info - [1655210591.991328][4218:4223] CHIP:TOO: Timestamp: 24481031 - [1655210591.991359][4218:4223] CHIP:TOO: SoftwareFault: { - [1655210591.991392][4218:4223] CHIP:TOO: SoftwareFault: { - [1655210591.991414][4218:4223] CHIP:TOO: Id: 2883 - [1655210591.991446][4218:4223] CHIP:TOO: Name: 2883 - [1655210591.991471][4218:4223] CHIP:TOO: FaultRecording: 547565204A756E2031342031313A31353A313520323032320A - [1655210591.991503][4218:4223] CHIP:TOO: } - [1655210591.991524][4218:4223] CHIP:TOO: } - [1655210591.991629][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.991660][4218:4223] CHIP:TOO: Event number: 65553 - [1655210591.991682][4218:4223] CHIP:TOO: Priority: Info - [1655210591.991703][4218:4223] CHIP:TOO: Timestamp: 24589823 - [1655210591.991730][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.991753][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.991783][4218:4223] CHIP:TOO: } - [1655210591.991872][4218:4223] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 - [1655210591.991903][4218:4223] CHIP:TOO: Event number: 65554 - [1655210591.991925][4218:4223] CHIP:TOO: Priority: Info - [1655210591.991954][4218:4223] CHIP:TOO: Timestamp: 24589844 - [1655210591.991981][4218:4223] CHIP:TOO: ShortRelease: { - [1655210591.992013][4218:4223] CHIP:TOO: PreviousPosition: 10 - [1655210591.992036][4218:4223] CHIP:TOO: } - [1655210591.992342][4218:4223] CHIP:EM: Sending Standalone Ack for MessageCounter:59542778 on exchange 48722i - 267.321684][6338:6343] CHIP:TOO: BootReason: { - [1654597267.321716][6338:6343] CHIP:TOO: BootReason: 0 - [1654597267.321743][6338:6343] CHIP:TOO: } - [1654597267.321874][6338:6343] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1654597267.321904][6338:6343] CHIP:TOO: Event number: 2 - [1654597267.321931][6338:6343] CHIP:TOO: Priority: Info - [1654597267.321958][6338:6343] CHIP:TOO: Timestamp: 17071275 - [1654597267.322055][6338:6343] CHIP:TOO: AccessControlEntryChanged: { - [1654597267.322087][6338:6343] CHIP:TOO: AdminNodeID: null - [1654597267.322116][6338:6343] CHIP:TOO: AdminPasscodeID: 0 - [1654597267.322143][6338:6343] CHIP:TOO: ChangeType: 1 - [1654597267.322170][6338:6343] CHIP:TOO: LatestValue: { - [1654597267.322196][6338:6343] CHIP:TOO: Privilege: 5 - [1654597267.322223][6338:6343] CHIP:TOO: AuthMode: 2 - [1654597267.322260][6338:6343] CHIP:TOO: Subjects: 1 entries - [1654597267.322296][6338:6343] CHIP:TOO: [1]: 112233 - [1654597267.322327][6338:6343] CHIP:TOO: Targets: null - [1654597267.322354][6338:6343] CHIP:TOO: FabricIndex: 1 - [1654597267.322381][6338:6343] CHIP:TOO: } - [1654597267.322413][6338:6343] CHIP:TOO: AdminFabricIndex: 1 - [1654597267.322440][6338:6343] CHIP:TOO: } - [1654597267.322579][6338:6343] CHIP:EM: Sending Standalone Ack for MessageCounter:32518205 on exchange 11331i + [1686303592.748696][56178:56178] CHIP:EM: >>> [E:32870r S:9444 M:75048559] (S) Msg RX from 1:000000000001B669 [A822] --- Type 0001:02 (IM:ReadRequest) + [1686303592.748814][56178:56178] CHIP:EM: Handling via exchange: 32870r, Delegate: 0xaaaabd7c15b0 + [1686303592.748905][56178:56178] CHIP:IM: Received Read request + [1686303592.748998][56178:56178] CHIP:DMG: ReadRequestMessage = + [1686303592.749056][56178:56178] CHIP:DMG: { + [1686303592.749105][56178:56178] CHIP:DMG: EventPathIBs = + [1686303592.749165][56178:56178] CHIP:DMG: [ + [1686303592.749253][56178:56178] CHIP:DMG: EventPath = + [1686303592.749315][56178:56178] CHIP:DMG: { + [1686303592.749374][56178:56178] CHIP:DMG: }, + [1686303592.749459][56178:56178] CHIP:DMG: + [1686303592.749515][56178:56178] CHIP:DMG: ], + [1686303592.749597][56178:56178] CHIP:DMG: + [1686303592.749657][56178:56178] CHIP:DMG: isFabricFiltered = true, + [1686303592.749760][56178:56178] CHIP:DMG: InteractionModelRevision = 1 + [1686303592.749842][56178:56178] CHIP:DMG: }, + [1686303592.750060][56178:56178] CHIP:DMG: IM RH moving to [GeneratingReports] + [1686303592.750278][56178:56178] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 + [1686303592.750433][56178:56178] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0033 e=0 p=v disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_4.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_4.yaml index a9a84dc0aff2c8..c7050278c936ea 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_6_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_6_4.yaml @@ -14,8 +14,8 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 3.6.4. [TC-IDM-6.4] Events Subscribe Interaction from DUT to TH. - [{DUT_Client}] + 32.6.4. [TC-IDM-6.4] Events Subscribe Interaction from DUT to TH. [DUT as + Client] PICS: - MCORE.IDM.C.SubscribeRequest @@ -38,23 +38,19 @@ tests: disabled: true - label: - "DUT sends Subscribe Request Message to the TH for a supported event." + "Step 1: DUT sends Subscribe Request Message to the TH for a supported + event." verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - - Please run this test in chip tool interactive mode ./chip-tool interactive start - basicinformation subscribe-event start-up 10 100 1 0 On TH (On the reference app), On reference app verify that the subscription message received has the all fields which mentioned below - KeepSubscriptions which is of type bool. - MinIntervalFloor which is of type uint16. - MaxIntervalCeiling which is of type uint16. - EventRequests - list of request paths to cluster events. Should be a valid EventPathIB from the Valid Event Paths table and not target a group. - EventFilters - list of minimum event numbers per specific node. (Optional) - FabricFiltered which is of type bool. + KeepSubscriptions which is of type bool. + MinIntervalFloor which is of type uint16. + MaxIntervalCeiling which is of type uint16. + EventRequests - list of request paths to cluster events. Should be a valid EventPathIB from the Valid Event Paths table and not target a group. + EventFilters - list of minimum event numbers per specific node. (Optional) + FabricFiltered which is of type bool. - colId (0, 1) and MessageCounter:190733237 on exchange 33689r [1657455555.193832][11525:11525] CHIP:EM: Handling via exchange: 33689r, Delegate: 0xaaaae00c1430 [1657455555.193912][11525:11525] CHIP:IM: Received Subscribe request [1657455555.194063][11525:11525] CHIP:IM: Deleting previous subscription from NodeId: 000000000001B669, FabricIndex: 1 @@ -80,63 +76,16 @@ tests: [1657455555.195593][11525:11525] CHIP:DMG: Final negotiated min/max parameters: Min = 10s, Max = 100s [1657455555.195766][11525:11525] CHIP:DMG: IM RH moving to [GeneratingReports] [1657455555.195955][11525:11525] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent ReportDataMessage - - [1657886501.456822][3430:3435] CHIP:DMG: ReportDataMessage = - [1657886501.456851][3430:3435] CHIP:DMG: { - [1657886501.456886][3430:3435] CHIP:DMG: SubscriptionId = 0xb746e9ed, - [1657886501.456911][3430:3435] CHIP:DMG: EventReportIBs = - [1657886501.456944][3430:3435] CHIP:DMG: [ - [1657886501.456979][3430:3435] CHIP:DMG: EventReportIB = - [1657886501.457015][3430:3435] CHIP:DMG: { - [1657886501.457049][3430:3435] CHIP:DMG: EventDataIB = - [1657886501.457091][3430:3435] CHIP:DMG: { - [1657886501.457118][3430:3435] CHIP:DMG: EventPath = - [1657886501.457162][3430:3435] CHIP:DMG: { - [1657886501.457199][3430:3435] CHIP:DMG: Endpoint = 0x0, - [1657886501.457245][3430:3435] CHIP:DMG: Cluster = 0x28, - [1657886501.457288][3430:3435] CHIP:DMG: Event = 0x0, - [1657886501.457329][3430:3435] CHIP:DMG: }, - [1657886501.457365][3430:3435] CHIP:DMG: - [1657886501.457404][3430:3435] CHIP:DMG: EventNumber = 0x0, - [1657886501.457437][3430:3435] CHIP:DMG: PriorityLevel = 0x2, - [1657886501.457479][3430:3435] CHIP:DMG: SystemTimestamp = 0xa1de6f, - [1657886501.457519][3430:3435] CHIP:DMG: EventData = - [1657886501.457584][3430:3435] CHIP:DMG: { - [1657886501.457632][3430:3435] CHIP:DMG: 0x0 = 1, - [1657886501.457666][3430:3435] CHIP:DMG: }, - [1657886501.457696][3430:3435] CHIP:DMG: }, - [1657886501.457738][3430:3435] CHIP:DMG: - [1657886501.457766][3430:3435] CHIP:DMG: }, - [1657886501.457806][3430:3435] CHIP:DMG: - [1657886501.457830][3430:3435] CHIP:DMG: ], - [1657886501.457873][3430:3435] CHIP:DMG: - [1657886501.457897][3430:3435] CHIP:DMG: InteractionModelRevision = 1 - [1657886501.457929][3430:3435] CHIP:DMG: } - [1657886501.458091][3430:3435] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000 - [1657886501.458116][3430:3435] CHIP:TOO: Event number: 0 - [1657886501.458139][3430:3435] CHIP:TOO: Priority: Critical - [1657886501.458160][3430:3435] CHIP:TOO: Timestamp: 10608239 - [1657886501.458237][3430:3435] CHIP:TOO: StartUp: { - [1657886501.458284][3430:3435] CHIP:TOO: SoftwareVersion: 1 - [1657886501.458309][3430:3435] CHIP:TOO: } - [1657886501.458358][3430:3435] CHIP:DMG: MoveToState ReadClient[0xffff6c0091f0]: Moving to [AwaitingSu] - [1657886501.458420][3430:3435] CHIP:EM: Piggybacking Ack for MessageCounter:245754654 on exchange: 20326i disabled: true - label: - "DUT sends Subscribe Request Message to the TH. TH sends Report Data - message to DUT." + "Step 2: DUT sends Subscribe Request Message to the TH. TH sends + Report Data message to DUT." verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - Please run this test in chip tool interactive mode ./chip-tool interactive start - basicinformation subscribe-event-by-id 0x000 20 400 1 0 - Verify DUT is responds with status response for the data sent in the above command - On TH (On the reference app) + On TH (On the reference app), Verify DUT is responds with status response for the data sent in the above command 6 from Retrans Table on exchange 33690r [1657455691.695355][11525:11525] CHIP:EM: Removed CHIP MessageCounter:11056066 from RetransTable on exchange 33690r [1657455691.695430][11525:11525] CHIP:DMG: StatusResponseMessage = @@ -146,61 +95,34 @@ tests: [1657455691.695574][11525:11525] CHIP:DMG: } [1657455691.695600][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS) [1657455691.695643][11525:11525] CHIP:DMG: Refresh Subscribe Sync Timer with max 400 seconds - - - If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent ReportDataMessage - - [1657886532.588762][3430:3435] CHIP:DMG: } - [1657886532.588882][3430:3435] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000 - [1657886532.588908][3430:3435] CHIP:TOO: Event number: 0 - [1657886532.588930][3430:3435] CHIP:TOO: Priority: Critical - [1657886532.588952][3430:3435] CHIP:TOO: Timestamp: 10608239 - [1657886532.588986][3430:3435] CHIP:TOO: StartUp: { - [1657886532.589013][3430:3435] CHIP:TOO: SoftwareVersion: 1 - [1657886532.589036][3430:3435] CHIP:TOO: } - [1657886532.589085][3430:3435] CHIP:DMG: MoveToState ReadClient[0xffff6c0092e0]: Moving to [AwaitingSu] - [1657886532.589143][3430:3435] CHIP:EM: Piggybacking Ack for MessageCounter:245754656 on exchange: 20327i - [1657886532.589207][3430:3435] CHIP:IN: Prepared secure message 0xaaab13395548 to 0x0000000000000001 (1) of type 0x1 and protocolId (0, 1) on exchange 20327i with MessageCounter:216322285. - [1657886532.589245][3430:3435] CHIP:IN: Sending encrypted msg 0xaaab13395548 with MessageCounter:216322285 to 0x0000000000000001 (1) at monotonic time: 00000000008CF0C5 msec - [1657886532.590633][3430:3435] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:245754657 on exchange 20327i - [1657886532.590669][3430:3435] CHIP:EM: Found matching exchange: 20327i, Delegate: 0xffff6c0092e0 - [1657886532.590700][3430:3435] CHIP:EM: Rxd Ack; Removing MessageCounter:216322285 from Retrans Table on exchange 20327i - [1657886532.590726][3430:3435] CHIP:EM: Removed CHIP MessageCounter:216322285 from RetransTable on exchange 20327i - [1657886532.590772][3430:3435] CHIP:DMG: SubscribeResponseMessage = - [1657886532.590811][3430:3435] CHIP:DMG: { - [1657886532.590836][3430:3435] CHIP:DMG: SubscriptionId = 0x84d07a37, - [1657886532.590862][3430:3435] CHIP:DMG: MaxInterval = 0x190, - [1657886532.590887][3430:3435] CHIP:DMG: InteractionModelRevision = 1 - [1657886532.590910][3430:3435] CHIP:DMG: } - [1657886532.590935][3430:3435] CHIP:DMG: Subscription established with SubscriptionID = 0x84d07a37 MinInterval = 20s MaxInterval = 400s Peer = 01:0000000000000001 disabled: true - label: - "DUT sends Subscribe Request Message to the TH and TH does not respond - with Report Data message to DUT." + "Step 3: DUT sends Subscribe Request Message to the TH and TH does not + respond with Report Data message to DUT." verification: | Mark this as not testable /NA. Out of Scope for V1.0 disabled: true - label: - "DUT sends Subscribe Request Message to the TH. TH sends Report Data - message to DUT. DUT sends Status Response Message to the TH. TH does - not respond with Subscribe Response message to DUT." + "Step 4: DUT sends Subscribe Request Message to the TH. TH sends + Report Data message to DUT. DUT sends Status Response Message to the + TH. TH does not respond with Subscribe Response message to DUT." verification: | Mark this as not testable /NA. Out of Scope for V1.0 disabled: true - label: - "With an active Event subscription from DUT to TH, TH sends Report - Data message to DUT with an inactive SubscriptionId." + "Step 5: With an active Event subscription from DUT to TH, TH sends + Report Data message to DUT with an inactive SubscriptionId." verification: | Mark this as not testable /NA. Out of Scope for V1.0 disabled: true - label: - "With an active Event subscription from DUT to TH, TH sends Report - Data message to DUT after the maximum interval from the last Report - Data." + "Step 6: With an active Event subscription from DUT to TH, TH sends + Report Data message to DUT after the maximum interval from the last + Report Data." verification: | Mark this as not testable /NA. Out of Scope for V1.0 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml index 6bbe2d79f40fe7..4933e39e14f70b 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_7_1.yaml @@ -62,7 +62,7 @@ tests: disabled: true - label: - "RD1, RD2, RD3, RD4, RD5 send 3 Subscribe Request Messages to + "Step 1: RD1, RD2, RD3, RD4, RD5 send 3 Subscribe Request Messages to DUT.(Total - 15 active subscriptions) Each subscribe request should contain 3 different paths. They can subscribe to different attributes and events. Once all subscriptions are active, change the value of all @@ -342,7 +342,7 @@ tests: disabled: true - label: - "RD1, RD2, RD3, RD4, RD5 send 3 Subscribe Request Messages to + "Step 2: RD1, RD2, RD3, RD4, RD5 send 3 Subscribe Request Messages to DUT.(Total - 15 active subscriptions) Each subscribe requests should contain 3 different paths. The subscription request from RD1 should contain 4 paths. +" @@ -500,11 +500,11 @@ tests: disabled: true - label: - "RD2, RD3, RD4, RD5 send 3 Subscribe request messages each with each - of them having 3 different paths. Verify that the subscription request - messages from all reference devices succeed. Once all the Subscription - Requests are activated, RD1 sends 6 subscription request messages with - each of them having 3 different paths." + "Step 3: RD2, RD3, RD4, RD5 send 3 Subscribe request messages each + with each of them having 3 different paths. Verify that the + subscription request messages from all reference devices succeed. Once + all the Subscription Requests are activated, RD1 sends 6 subscription + request messages with each of them having 3 different paths." verification: | #1. on the 2nd reference device(RD2) send a Subscribe Request Messages to DUT.(Below is the example command to send a subscribe requests with 3 different paths in a single command ) any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 2 '0,0,0' --commissioner-name beta --keepSubscriptions true @@ -645,11 +645,11 @@ tests: disabled: true - label: - "RD1, RD2, RD3, RD4, RD5 send 3 Subscribe request messages each with - each of them having 3 different paths. Verify that the subscription - request messages from RD1, RD2, RD3, RD4 and RD5 succeed. Once all the - Subscription Requests are activated, send a Subscribe request messages - having 3 different paths from RD1A to the DUT." + "Step 4: RD1, RD2, RD3, RD4, RD5 send 3 Subscribe request messages + each with each of them having 3 different paths. Verify that the + subscription request messages from RD1, RD2, RD3, RD4 and RD5 succeed. + Once all the Subscription Requests are activated, send a Subscribe + request messages having 3 different paths from RD1A to the DUT." verification: | #1. on the first reference device(RD1) send a Subscribe Request Messages to DUT. (Below is the example command to send a subscribe requests with 3 different paths in a single command ) any subscribe-by-id '0x0028,0x0028,0x0028' '5,6,16' 100 1000 1 '0,0,0' --keepSubscriptions true diff --git a/src/app/tests/suites/certification/Test_TC_I_3_2.yaml b/src/app/tests/suites/certification/Test_TC_I_3_2.yaml index f37c8ef7d38113..adedbb3c0566cc 100644 --- a/src/app/tests/suites/certification/Test_TC_I_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_I_3_2.yaml @@ -30,7 +30,7 @@ tests: disabled: true - label: - "DUT issues an Identify command to the Test Harness, with the + "Step 1: DUT issues an Identify command to the Test Harness, with the IdentifyTime argument set to 0x003C (60 seconds) or a reasonable time that is supported by the DUT." PICS: I.C.C00.Tx @@ -39,282 +39,117 @@ tests: ./chip-tool identify identify 60 1 1 - Verify DUT receives Identify command and success response on the TH(all-clusters-app) Log: - [1667198527.969165][11428:11428] CHIP:EM: Handling via exchange: 17816r, Delegate: 0xaaaab32082d8 - [1667198527.969436][11428:11428] CHIP:DMG: InvokeRequestMessage = - [1667198527.969513][11428:11428] CHIP:DMG: { - [1667198527.969574][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198527.969645][11428:11428] CHIP:DMG: timedRequest = false, - [1667198527.969708][11428:11428] CHIP:DMG: InvokeRequests = - [1667198527.969788][11428:11428] CHIP:DMG: [ - [1667198527.969853][11428:11428] CHIP:DMG: CommandDataIB = - [1667198527.969921][11428:11428] CHIP:DMG: { - [1667198527.969997][11428:11428] CHIP:DMG: CommandPathIB = - [1667198527.970089][11428:11428] CHIP:DMG: { - [1667198527.970184][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198527.970288][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198527.970366][11428:11428] CHIP:DMG: CommandId = 0x0, - [1667198527.970652][11428:11428] CHIP:DMG: }, - [1667198527.970834][11428:11428] CHIP:DMG: - [1667198527.970952][11428:11428] CHIP:DMG: CommandFields = - [1667198527.971030][11428:11428] CHIP:DMG: { - [1667198527.971128][11428:11428] CHIP:DMG: 0x0 = 60, - [1667198527.971226][11428:11428] CHIP:DMG: }, - [1667198527.971312][11428:11428] CHIP:DMG: }, - [1667198527.971397][11428:11428] CHIP:DMG: - [1667198527.971464][11428:11428] CHIP:DMG: ], - [1667198527.971618][11428:11428] CHIP:DMG: - [1667198527.971693][11428:11428] CHIP:DMG: InteractionModelRevision = 1 - [1667198527.971758][11428:11428] CHIP:DMG: }, - [1667198527.971910][11428:11428] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=m - [1667198527.971988][11428:11428] CHIP:DMG: AccessControl: allowed - [1667198527.972062][11428:11428] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0000 - [1667198527.972159][11428:11428] CHIP:DMG: Endpoint 1, Cluster 0x0000_0003 update version to f0afa023 - [1667198527.972233][11428:11428] CHIP:ZCL: OnIdentifyStart - [1667198527.972341][11428:11428] CHIP:DMG: Command handler moving to [ Preparing] - [1667198527.972419][11428:11428] CHIP:DMG: Command handler moving to [AddingComm] - [1667198527.972487][11428:11428] CHIP:DMG: Command handler moving to [AddedComma] - [1667198527.972585][11428:11428] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1667198527.973173][11428:11428] CHIP:EM: <<< [E:17816r M:25305300 (Ack:7863755)] (S) Msg TX to 1:000000000001B669 [F6B5] --- Type 0001:09 (IM:InvokeCommandResponse) - [1667198527.973291][11428:11428] CHIP:IN: (S) Sending msg 25305300 on secure session with LSID: 27440 - [1667198527.974016][11428:11428] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:40538 | 25305300 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 43778 / Exchange = 17816] - [1667198527.974122][11428:11428] CHIP:DMG: Header Flags = - [1667198527.974181][11428:11428] CHIP:DMG: { - [1667198527.974268][11428:11428] CHIP:DMG: Exchange (0x06) = - [1667198527.974321][11428:11428] CHIP:DMG: { - [1667198527.974518][11428:11428] CHIP:DMG: AckMsg = 7863755 - [1667198527.974582][11428:11428] CHIP:DMG: NeedsAck = true - [1667198527.974770][11428:11428] CHIP:DMG: } - [1667198527.974856][11428:11428] CHIP:DMG: } - [1667198527.974914][11428:11428] CHIP:DMG: - [1667198527.974991][11428:11428] CHIP:DMG: Encrypted Payload (67 bytes) = - [1667198527.975050][11428:11428] CHIP:DMG: { - [1667198527.975107][11428:11428] CHIP:DMG: data = 0002ab00d4208201035b2d023f522d785d0fc3697ed4baaa3e063237961ee69c70f03b8015c06b838d292797b56fbb65118de4b30f63c246d35a9066502a4f211b665d - [1667198527.975170][11428:11428] CHIP:DMG: buffer_ptr = 187650259301360 - [1667198527.975220][11428:11428] CHIP:DMG: } - [1667198527.975353][11428:11428] CHIP:DMG: - [1667198527.975440][11428:11428] CHIP:DMG: Decrypted Payload (33 bytes) = - [1667198527.975500][11428:11428] CHIP:DMG: { - [1667198527.975557][11428:11428] CHIP:DMG: data = 152800360115350137002400012401032402001835012400001818181824ff0118 - [1667198527.975613][11428:11428] CHIP:DMG: } - [1667198527.975666][11428:11428] CHIP:DMG: - [1667198527.975809][11428:11428] CHIP:DMG: InvokeResponseMessage = - [1667198527.975876][11428:11428] CHIP:DMG: { - [1667198527.975937][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198527.976003][11428:11428] CHIP:DMG: InvokeResponseIBs = - [1667198527.976082][11428:11428] CHIP:DMG: [ - [1667198527.976147][11428:11428] CHIP:DMG: InvokeResponseIB = - [1667198527.976239][11428:11428] CHIP:DMG: { - [1667198527.976304][11428:11428] CHIP:DMG: CommandStatusIB = - [1667198527.976732][11428:11428] CHIP:DMG: { - [1667198527.976820][11428:11428] CHIP:DMG: CommandPathIB = - [1667198527.976919][11428:11428] CHIP:DMG: { - [1667198527.977020][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198527.977128][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198527.977227][11428:11428] CHIP:DMG: CommandId = 0x0, - [1667198527.977440][11428:11428] CHIP:DMG: }, - [1667198527.977555][11428:11428] CHIP:DMG: - [1667198527.977712][11428:11428] CHIP:DMG: StatusIB = - [1667198527.977815][11428:11428] CHIP:DMG: { - [1667198527.977919][11428:11428] CHIP:DMG: status = 0x00 (SUCCESS), - [1667198527.978173][11428:11428] CHIP:DMG: }, - [1667198527.978355][11428:11428] CHIP:DMG: - [1667198527.978447][11428:11428] CHIP:DMG: }, - [1667198527.978567][11428:11428] CHIP:DMG: - [1667198527.978711][11428:11428] CHIP:DMG: }, - [1667198527.978804][11428:11428] CHIP:DMG: - [1667198527.978869][11428:11428] CHIP:DMG: ], + + Verify TH recieves "Identify" command with IdentifyTime (ID 0) parameter of type uint16 with value!==0 on TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1689773867.665951][49374:49374] CHIP:DMG: InvokeRequestMessage = + [1689773867.665963][49374:49374] CHIP:DMG: { + [1689773867.665974][49374:49374] CHIP:DMG: suppressResponse = false, + [1689773867.665986][49374:49374] CHIP:DMG: timedRequest = false, + [1689773867.665995][49374:49374] CHIP:DMG: InvokeRequests = + [1689773867.666015][49374:49374] CHIP:DMG: [ + [1689773867.666025][49374:49374] CHIP:DMG: CommandDataIB = + [1689773867.666037][49374:49374] CHIP:DMG: { + [1689773867.666046][49374:49374] CHIP:DMG: CommandPathIB = + [1689773867.666059][49374:49374] CHIP:DMG: { + [1689773867.666071][49374:49374] CHIP:DMG: EndpointId = 0x1, + [1689773867.666083][49374:49374] CHIP:DMG: ClusterId = 0x3, + [1689773867.666097][49374:49374] CHIP:DMG: CommandId = 0x0, + [1689773867.666107][49374:49374] CHIP:DMG: }, + [1689773867.666122][49374:49374] CHIP:DMG: + [1689773867.666133][49374:49374] CHIP:DMG: CommandFields = + [1689773867.666145][49374:49374] CHIP:DMG: { + [1689773867.666210][49374:49374] CHIP:DMG: 0x0 = 60, + [1689773867.666223][49374:49374] CHIP:DMG: }, + [1689773867.666232][49374:49374] CHIP:DMG: }, + [1689773867.666249][49374:49374] CHIP:DMG: + [1689773867.666257][49374:49374] CHIP:DMG: ], + [1689773867.666275][49374:49374] CHIP:DMG: + [1689773867.666285][49374:49374] CHIP:DMG: InteractionModelRevision = 1 + [1689773867.666294][49374:49374] CHIP:DMG: }, disabled: true - label: - "DUT issues an IdentifyQuery command to the Test Harness. Note: - IdentifyQuery is not supported by Matter." + "Step 2: DUT issues an IdentifyQuery command to the Test Harness. + Note: IdentifyQuery is not supported by Matter." PICS: I.C.C01.Tx verification: | IdentifyQuery is not supported by Matter disabled: true - label: - "DUT issues an Identify command to the Test Harness, with the + "Step 3: DUT issues an Identify command to the Test Harness, with the IdentifyTime argument set to 0x0000 (Stop)." PICS: I.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) + ./chip-tool identify identify 0 1 1 - Verify DUT receives Identify command response on the TH(all-clusters-app) Log: - [1667198553.327170][11428:11428] CHIP:EM: Handling via exchange: 48289r, Delegate: 0xaaaab32082d8 - [1667198553.327776][11428:11428] CHIP:DMG: InvokeRequestMessage = - [1667198553.327855][11428:11428] CHIP:DMG: { - [1667198553.327913][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198553.328635][11428:11428] CHIP:DMG: timedRequest = false, - [1667198553.328728][11428:11428] CHIP:DMG: InvokeRequests = - [1667198553.328814][11428:11428] CHIP:DMG: [ - [1667198553.328878][11428:11428] CHIP:DMG: CommandDataIB = - [1667198553.329382][11428:11428] CHIP:DMG: { - [1667198553.329504][11428:11428] CHIP:DMG: CommandPathIB = - [1667198553.330002][11428:11428] CHIP:DMG: { - [1667198553.330767][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198553.331341][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198553.332023][11428:11428] CHIP:DMG: CommandId = 0x0, - [1667198553.332126][11428:11428] CHIP:DMG: }, - [1667198553.332270][11428:11428] CHIP:DMG: - [1667198553.332693][11428:11428] CHIP:DMG: CommandFields = - [1667198553.332827][11428:11428] CHIP:DMG: { - [1667198553.333261][11428:11428] CHIP:DMG: 0x0 = 0, - [1667198553.333734][11428:11428] CHIP:DMG: }, - [1667198553.333822][11428:11428] CHIP:DMG: }, - [1667198553.333954][11428:11428] CHIP:DMG: - [1667198553.334359][11428:11428] CHIP:DMG: ], - [1667198553.334439][11428:11428] CHIP:DMG: - [1667198553.334940][11428:11428] CHIP:DMG: InteractionModelRevision = 1 - [1667198553.335006][11428:11428] CHIP:DMG: }, - [1667198553.335517][11428:11428] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=m - [1667198553.335608][11428:11428] CHIP:DMG: AccessControl: allowed - [1667198553.335677][11428:11428] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0000 - [1667198553.336264][11428:11428] CHIP:DMG: Endpoint 1, Cluster 0x0000_0003 update version to f0afa03d - [1667198553.336343][11428:11428] CHIP:ZCL: OnIdentifyStop - [1667198553.336444][11428:11428] CHIP:DMG: Command handler moving to [ Preparing] - [1667198553.336512][11428:11428] CHIP:DMG: Command handler moving to [AddingComm] - [1667198553.337076][11428:11428] CHIP:DMG: Command handler moving to [AddedComma] - [1667198553.337175][11428:11428] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1667198553.338264][11428:11428] CHIP:EM: <<< [E:48289r M:91319713 (Ack:46774659)] (S) Msg TX to 1:000000000001B669 [F6B5] --- Type 0001:09 (IM:InvokeCommandResponse) - [1667198553.338392][11428:11428] CHIP:IN: (S) Sending msg 91319713 on secure session with LSID: 27441 - [1667198553.339179][11428:11428] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:57175 | 91319713 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 5801 / Exchange = 48289] - [1667198553.339277][11428:11428] CHIP:DMG: Header Flags = - [1667198553.339335][11428:11428] CHIP:DMG: { - [1667198553.339421][11428:11428] CHIP:DMG: Exchange (0x06) = - [1667198553.339477][11428:11428] CHIP:DMG: { - [1667198553.339536][11428:11428] CHIP:DMG: AckMsg = 46774659 - [1667198553.339592][11428:11428] CHIP:DMG: NeedsAck = true - [1667198553.339646][11428:11428] CHIP:DMG: } - [1667198553.339714][11428:11428] CHIP:DMG: } - [1667198553.339765][11428:11428] CHIP:DMG: - [1667198553.339832][11428:11428] CHIP:DMG: Encrypted Payload (67 bytes) = - [1667198553.339882][11428:11428] CHIP:DMG: { - [1667198553.339934][11428:11428] CHIP:DMG: data = 00a91600a16d7105e72c79fe81a91a9b5f372c4eb282d8b2a121cede4ff2e23a2e23855a4d11c5feb79d74e31b2b7bf8aaf58f5fc15abe545f2ac0343b2551d4dbbd0c - [1667198553.339992][11428:11428] CHIP:DMG: buffer_ptr = 187650259300784 - [1667198553.340045][11428:11428] CHIP:DMG: } - [1667198553.340098][11428:11428] CHIP:DMG: - [1667198553.340173][11428:11428] CHIP:DMG: Decrypted Payload (33 bytes) = - [1667198553.340231][11428:11428] CHIP:DMG: { - [1667198553.340285][11428:11428] CHIP:DMG: data = 152800360115350137002400012401032402001835012400001818181824ff0118 - [1667198553.340344][11428:11428] CHIP:DMG: } - [1667198553.340395][11428:11428] CHIP:DMG: - [1667198553.340533][11428:11428] CHIP:DMG: InvokeResponseMessage = - [1667198553.340595][11428:11428] CHIP:DMG: { - [1667198553.340655][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198553.340716][11428:11428] CHIP:DMG: InvokeResponseIBs = - [1667198553.340794][11428:11428] CHIP:DMG: [ - [1667198553.340857][11428:11428] CHIP:DMG: InvokeResponseIB = - [1667198553.341054][11428:11428] CHIP:DMG: { - [1667198553.341137][11428:11428] CHIP:DMG: CommandStatusIB = - [1667198553.341271][11428:11428] CHIP:DMG: { - [1667198553.341399][11428:11428] CHIP:DMG: CommandPathIB = - [1667198553.341567][11428:11428] CHIP:DMG: { - [1667198553.341643][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198553.341783][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198553.341945][11428:11428] CHIP:DMG: CommandId = 0x0, - [1667198553.342106][11428:11428] CHIP:DMG: }, - [1667198553.342192][11428:11428] CHIP:DMG: - [1667198553.342265][11428:11428] CHIP:DMG: StatusIB = - [1667198553.342429][11428:11428] CHIP:DMG: { - [1667198553.342540][11428:11428] CHIP:DMG: status = 0x00 (SUCCESS), - [1667198553.342630][11428:11428] CHIP:DMG: }, - [1667198553.342722][11428:11428] CHIP:DMG: - [1667198553.342804][11428:11428] CHIP:DMG: }, - [1667198553.342885][11428:11428] CHIP:DMG: + Verify TH recieves "Identify" command with IdentifyTime (ID 0) parameter of type uint16 with value == 0 on TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1689773832.333792][49374:49374] CHIP:DMG: InvokeRequestMessage = + [1689773832.333804][49374:49374] CHIP:DMG: { + [1689773832.333812][49374:49374] CHIP:DMG: suppressResponse = false, + [1689773832.333825][49374:49374] CHIP:DMG: timedRequest = false, + [1689773832.333835][49374:49374] CHIP:DMG: InvokeRequests = + [1689773832.333861][49374:49374] CHIP:DMG: [ + [1689773832.333875][49374:49374] CHIP:DMG: CommandDataIB = + [1689773832.333891][49374:49374] CHIP:DMG: { + [1689773832.333905][49374:49374] CHIP:DMG: CommandPathIB = + [1689773832.333923][49374:49374] CHIP:DMG: { + [1689773832.333938][49374:49374] CHIP:DMG: EndpointId = 0x1, + [1689773832.333956][49374:49374] CHIP:DMG: ClusterId = 0x3, + [1689773832.333974][49374:49374] CHIP:DMG: CommandId = 0x0, + [1689773832.333987][49374:49374] CHIP:DMG: }, + [1689773832.334008][49374:49374] CHIP:DMG: + [1689773832.334021][49374:49374] CHIP:DMG: CommandFields = + [1689773832.334038][49374:49374] CHIP:DMG: { + [1689773832.334060][49374:49374] CHIP:DMG: 0x0 = 0, + [1689773832.334077][49374:49374] CHIP:DMG: }, + [1689773832.334090][49374:49374] CHIP:DMG: }, + [1689773832.334114][49374:49374] CHIP:DMG: + [1689773832.334125][49374:49374] CHIP:DMG: ], + [1689773832.334151][49374:49374] CHIP:DMG: + [1689773832.334163][49374:49374] CHIP:DMG: InteractionModelRevision = 1 + [1689773832.334176][49374:49374] CHIP:DMG: }, disabled: true - label: - "DUT sends a TriggerEffect command to the Test Harness, with any - supported EffectIdentifier argument and EffectVariant set to 0." + "Step 4: DUT sends a TriggerEffect command to the Test Harness, with + any supported EffectIdentifier argument and EffectVariant set to 0." PICS: I.C.C40.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool identify trigger-effect 0 0 1 1 - Verify DUT receives Identify command response on the TH(all-clusters-app) Log: - [1667198739.675252][11428:11428] CHIP:EM: Handling via exchange: 45132r, Delegate: 0xaaaab32082d8 - [1667198739.675400][11428:11428] CHIP:DMG: InvokeRequestMessage = - [1667198739.675647][11428:11428] CHIP:DMG: { - [1667198739.675714][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198739.675784][11428:11428] CHIP:DMG: timedRequest = false, - [1667198739.675846][11428:11428] CHIP:DMG: InvokeRequests = - [1667198739.675924][11428:11428] CHIP:DMG: [ - [1667198739.676050][11428:11428] CHIP:DMG: CommandDataIB = - [1667198739.676131][11428:11428] CHIP:DMG: { - [1667198739.676205][11428:11428] CHIP:DMG: CommandPathIB = - [1667198739.676276][11428:11428] CHIP:DMG: { - [1667198739.676358][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198739.676430][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198739.676498][11428:11428] CHIP:DMG: CommandId = 0x40, - [1667198739.676585][11428:11428] CHIP:DMG: }, - [1667198739.676669][11428:11428] CHIP:DMG: - [1667198739.676737][11428:11428] CHIP:DMG: CommandFields = - [1667198739.676822][11428:11428] CHIP:DMG: { - [1667198739.676906][11428:11428] CHIP:DMG: 0x0 = 0, - [1667198739.676985][11428:11428] CHIP:DMG: 0x1 = 0, - [1667198739.677084][11428:11428] CHIP:DMG: }, - [1667198739.677158][11428:11428] CHIP:DMG: },'{" - [1667198739.677236][11428:11428] CHIP:DMG: - [1667198739.677296][11428:11428] CHIP:DMG: ], - [1667198739.677372][11428:11428] CHIP:DMG: - [1667198739.677433][11428:11428] CHIP:DMG: InteractionModelRevision = 1 - [1667198739.677489][11428:11428] CHIP:DMG: }, - [1667198739.677633][11428:11428] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=m - [1667198739.677716][11428:11428] CHIP:DMG: AccessControl: allowed - [1667198739.677783][11428:11428] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0040 - [1667198739.677865][11428:11428] CHIP:ZCL: RX identify:trigger effect 0x0 variant 0x0 - [1667198739.677938][11428:11428] CHIP:ZCL: EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK - [1667198739.678031][11428:11428] CHIP:DMG: Command handler moving to [ Preparing] - [1667198739.678102][11428:11428] CHIP:DMG: Command handler moving to [AddingComm] - [1667198739.678166][11428:11428] CHIP:DMG: Command handler moving to [AddedComma] - [1667198739.678260][11428:11428] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1667198739.678867][11428:11428] CHIP:EM: <<< [E:45132r M:232447074 (Ack:16166817)] (S) Msg TX to 1:000000000001B669 [F6B5] --- Type 0001:09 (IM:InvokeCommandResponse) - [1667198739.678975][11428:11428] CHIP:IN: (S) Sending msg 232447074 on secure session with LSID: 27442 - [1667198739.679673][11428:11428] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:35298 | 232447074 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 4854 / Exchange = 45132] - [1667198739.679771][11428:11428] CHIP:DMG: Header Flags = - [1667198739.679827][11428:11428] CHIP:DMG: { - [1667198739.679913][11428:11428] CHIP:DMG: Exchange (0x06) = - [1667198739.679970][11428:11428] CHIP:DMG: { - [1667198739.680028][11428:11428] CHIP:DMG: AckMsg = 16166817 - [1667198739.680078][11428:11428] CHIP:DMG: NeedsAck = true - [1667198739.680134][11428:11428] CHIP:DMG: } - [1667198739.680209][11428:11428] CHIP:DMG: } - [1667198739.680264][11428:11428] CHIP:DMG: - [1667198739.680326][11428:11428] CHIP:DMG: Encrypted Payload (67 bytes) = - [1667198739.680381][11428:11428] CHIP:DMG: { - [1667198739.680429][11428:11428] CHIP:DMG: data = 00f6120062dcda0d76da293c3de71d0e1d1a6eb1a07c1ef402c3312a9db392279df61b8519c794ade88b925c5b5236b851dc2a113e591ec8fa9f07cca32b9befcfce60 - [1667198739.680486][11428:11428] CHIP:DMG: buffer_ptr = 187650259300496 - [1667198739.680539][11428:11428] CHIP:DMG: } - [1667198739.680585][11428:11428] CHIP:DMG: - [1667198739.680651][11428:11428] CHIP:DMG: Decrypted Payload (33 bytes) = - [1667198739.680707][11428:11428] CHIP:DMG: { - [1667198739.680760][11428:11428] CHIP:DMG: data = 152800360115350137002400012401032402401835012400001818181824ff0118 - [1667198739.680814][11428:11428] CHIP:DMG: } - [1667198739.680866][11428:11428] CHIP:DMG: - [1667198739.680998][11428:11428] CHIP:DMG: InvokeResponseMessage = - [1667198739.681061][11428:11428] CHIP:DMG: { - [1667198739.681114][11428:11428] CHIP:DMG: suppressResponse = false, - [1667198739.681176][11428:11428] CHIP:DMG: InvokeResponseIBs = - [1667198739.681247][11428:11428] CHIP:DMG: [ - [1667198739.681310][11428:11428] CHIP:DMG: InvokeResponseIB = - [1667198739.681391][11428:11428] CHIP:DMG: { - [1667198739.681467][11428:11428] CHIP:DMG: CommandStatusIB = - [1667198739.681560][11428:11428] CHIP:DMG: { - [1667198739.681646][11428:11428] CHIP:DMG: CommandPathIB = - [1667198739.681731][11428:11428] CHIP:DMG: { - [1667198739.681811][11428:11428] CHIP:DMG: EndpointId = 0x1, - [1667198739.681912][11428:11428] CHIP:DMG: ClusterId = 0x3, - [1667198739.682011][11428:11428] CHIP:DMG: CommandId = 0x40, - [1667198739.682104][11428:11428] CHIP:DMG: }, - [1667198739.682198][11428:11428] CHIP:DMG: - [1667198739.682287][11428:11428] CHIP:DMG: StatusIB = - [1667198739.682383][11428:11428] CHIP:DMG: { - [1667198739.682489][11428:11428] CHIP:DMG: status = 0x00 (SUCCESS), - [1667198739.682580][11428:11428] CHIP:DMG: }, - [1667198739.682674][11428:11428] CHIP:DMG: - [1667198739.682738][11428:11428] CHIP:DMG: }, + Verify TH recieves "TriggerEffect" command with EffectIdentifier(Id 0) and EffectVariant(Id0) parameters of type enum8 on TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1689773765.746962][49374:49374] CHIP:DMG: InvokeRequestMessage = + [1689773765.746977][49374:49374] CHIP:DMG: { + [1689773765.746985][49374:49374] CHIP:DMG: suppressResponse = false, + [1689773765.747006][49374:49374] CHIP:DMG: timedRequest = false, + [1689773765.747016][49374:49374] CHIP:DMG: InvokeRequests = + [1689773765.747035][49374:49374] CHIP:DMG: [ + [1689773765.747045][49374:49374] CHIP:DMG: CommandDataIB = + [1689773765.747058][49374:49374] CHIP:DMG: { + [1689773765.747068][49374:49374] CHIP:DMG: CommandPathIB = + [1689773765.747082][49374:49374] CHIP:DMG: { + [1689773765.747094][49374:49374] CHIP:DMG: EndpointId = 0x1, + [1689773765.747107][49374:49374] CHIP:DMG: ClusterId = 0x3, + [1689773765.747119][49374:49374] CHIP:DMG: CommandId = 0x40, + [1689773765.747130][49374:49374] CHIP:DMG: }, + [1689773765.747144][49374:49374] CHIP:DMG: + [1689773765.747155][49374:49374] CHIP:DMG: CommandFields = + [1689773765.747167][49374:49374] CHIP:DMG: { + [1689773765.747181][49374:49374] CHIP:DMG: 0x0 = 0, + [1689773765.747194][49374:49374] CHIP:DMG: 0x1 = 0, + [1689773765.747205][49374:49374] CHIP:DMG: }, + [1689773765.747215][49374:49374] CHIP:DMG: }, + [1689773765.747234][49374:49374] CHIP:DMG: + [1689773765.747243][49374:49374] CHIP:DMG: ], + [1689773765.747261][49374:49374] CHIP:DMG: + [1689773765.747271][49374:49374] CHIP:DMG: InteractionModelRevision = 1 + [1689773765.747284][49374:49374] CHIP:DMG: }, disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_1.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_1.yaml index bf5d9e5794360a..f819ccf8cd3f36 100644 --- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_3_1.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends SendKey command to TH" + - label: "Step 1: DUT sends SendKey command to TH" PICS: KEYPADINPUT.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -37,7 +37,8 @@ tests: ./chip-tv-casting-app keypadinput send-key 10 1 1 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + + On TH (tv-app), Verify the send-key command is received successfully. [1658530264507] [21469:308294] CHIP: [DMG] InvokeRequestMessage = [1658530264507] [21469:308294] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml b/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml index 3a2bda98ade78c..7cb4361a301362 100644 --- a/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 102.2.1. [TC-LCFG-2.1] Localization Configuration Cluster + 10.2.1. [TC-LCFG-2.1] Localization Configuration Cluster Attributes[DUT-Server] PICS: @@ -26,11 +26,13 @@ config: endpoint: 0 tests: - - label: "TH reads SupportedLocales attribute from DUT" + - label: "Step 1: TH reads SupportedLocales attribute from DUT" PICS: LCFG.S.A0001 verification: | ./chip-tool localizationconfiguration read supported-locales 1 0 - Verify that entry values in the SupportedLocales attribute are not repeated and the maximum number of elements is 32 and also that the maximum length is of 35 bytes on TH(chip-tool) log: + + On TH(chip-tool) log, Verify the SupportedLocales attribute values are not repeated, + - Maximum number of elements in the SupportedLocales list is 32 and maximum length is 35 bytes, below is the sample log provided for the raspi platform: [1661759583.481746][104665:104670] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0001 DataVersion: 3207653748 [1661759583.482016][104665:104670] CHIP:TOO: SupportedLocales: 8 entries @@ -45,20 +47,22 @@ tests: [1661759583.482158][104665:104670] CHIP:EM: Sending Standalone Ack for MessageCounter:46420218 on exchange 20687i disabled: true - - label: "TH writes xx-XX to SupportedLocales attribute" + - label: "Step 2: TH writes 'xx-XX' to SupportedLocales attribute" verification: | ./chip-tool any write-by-id 0x002B 1 '"xx-XX"' 1 0 - Verify that DUT responds with UNSUPPORTED_WRITE on TH(chip-tool) log: + + Verify that DUT responds with UNSUPPORTED_WRITE on TH(chip-tool) log and below is the sample log provided for the raspi platform: [1653996674.832226][7281:7286] CHIP:DMG: WriteClient moving to [AwaitingDe] [1653996674.832300][7281:7286] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE) [1653996674.832411][7281:7286] CHIP:EM: Sending Standalone Ack for MessageCounter:12567655 on exchange 10797i disabled: true - - label: "TH reads SupportedLocales attribute" + - label: "Step 3: TH reads SupportedLocales attribute" verification: | ./chip-tool localizationconfiguration read supported-locales 1 0 - Verify that SupportedLocales atrribute entries are same as step 1 on TH(chip-tool) log: + + Verify that SupportedLocales atrribute entries are same as step 1 on TH(chip-tool) log and below is the sample log provided for the raspi platform: [1645772065.848431][3762:3767] CHIP:TOO: SupportedLocales: 8 entries [1645772065.850249][3762:3767] CHIP:TOO: [1]: en-US @@ -72,11 +76,14 @@ tests: [1645772065.851668][3762:3767] CHIP:EM: Sending Standalone Ack for MessageCounter:4927804 on exchange 64827i disabled: true - - label: "TH reads ActiveLocale Attribute from the DUT" + - label: "Step 4: TH reads ActiveLocale Attribute from the DUT" PICS: LCFG.S.A0000 verification: | ./chip-tool localizationconfiguration read active-locale 1 0 - Verify that ActiveLocale Attribute value is Language Tag as defined by BCP47 and is present in the SupportedLocales attribute list and also the value is of maximum length of 35 bytes and if the value of ActiveLocale is not one among supportedLocales value then default value is assigned by the Vendor on TH(chip-tool)log: + + Verify that ActiveLocale Attribute value is a Language Tag as defined by BCP47, + - Maximum length is 35 bytes and it should be present in SupportedLocales attribute + - If the value of ActiveLocale is not one among supportedLocales value, then default value is assigned by the Vendor on TH(chip-tool)log and below is the sample log provided for the raspi platform: [1661759849.744419][104758:104763] CHIP:DMG: } [1661759849.744488][104758:104763] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0000 DataVersion: 3207653748 @@ -85,24 +92,13 @@ tests: disabled: true - label: - "TH writes new string not present in SupportedLocales attribute to - ActiveLocale Attribute." + "Step 5: TH writes new string not present in SupportedLocales + attribute to ActiveLocale Attribute." verification: | ./chip-tool localizationconfiguration write active-locale fw-GB 1 0 - Verify that DUT responds as CONSTRAINT_ERROR On TH(chip-tool) log: - - [[1651130076.882814][174458:174463] CHIP:DMG: WriteResponseMessage = - [1651130076.882819][174458:174463] CHIP:DMG: { - [1651130076.882824][174458:174463] CHIP:DMG: AttributeStatusIBs = - [1651130076.882832][174458:174463] CHIP:DMG: [ - [1651130076.882835][174458:174463] CHIP:DMG: AttributeStatusIB = - [1651130076.882842][174458:174463] CHIP:DMG: { - [1651130076.882846][174458:174463] CHIP:DMG: AttributePathIB = - [1651130076.882850][174458:174463] CHIP:DMG: { - [1651130076.882855][174458:174463] CHIP:DMG: Endpoint = 0x0, - [1651130076.882861][174458:174463] CHIP:DMG: Cluster = 0x2b, - [1651130076.882867][174458:174463] CHIP:DMG: Attribute = 0x0000_0001, - [1651130076.882871][174458:174463] CHIP:DMG: } + + Verify that DUT responds as CONSTRAINT_ERROR On TH(chip-tool) log and below is the sample log provided for the raspi platform: + [1651130076.882877][174458:174463] CHIP:DMG: [1651130076.882881][174458:174463] CHIP:DMG: StatusIB = [1651130076.882885][174458:174463] CHIP:DMG: { @@ -116,28 +112,16 @@ tests: [1651130076.882920][174458:174463] CHIP:DMG: InteractionModelRevision = 1 [1651130076.882923][174458:174463] CHIP:DMG: } [1651130076.882938][174458:174463] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) - [1651130076.882946][174458:174463] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1651130076.882957][174458:174463] CHIP:EM: Sending Standalone Ack for MessageCounter disabled: true - label: - "TH writes new string present in SupportedLocales attribute to + "Step 6: TH writes new string present in SupportedLocales attribute to ActiveLocale Attribute" verification: | ./chip-tool localizationconfiguration write active-locale fr-FR 1 0 - Verify that DUT responds as SUCCESS on TH(chip-tool) log: - - [1661759978.806730][104802:104807] CHIP:DMG: WriteResponseMessage = - [1661759978.806741][104802:104807] CHIP:DMG: { - [1661759978.806749][104802:104807] CHIP:DMG: AttributeStatusIBs = - [1661759978.806766][104802:104807] CHIP:DMG: [ - [1661759978.806775][104802:104807] CHIP:DMG: AttributeStatusIB = - [1661759978.806785][104802:104807] CHIP:DMG: { - [1661759978.806794][104802:104807] CHIP:DMG: AttributePathIB = - [1661759978.806805][104802:104807] CHIP:DMG: { - [1661759978.806817][104802:104807] CHIP:DMG: Endpoint = 0x0, - [1661759978.806828][104802:104807] CHIP:DMG: Cluster = 0x2b, - [1661759978.806842][104802:104807] CHIP:DMG: Attribute = 0x0000_0000, + + Verify that DUT responds as SUCCESS on TH(chip-tool) log and below is the sample log provided for the raspi platform: + [1661759978.806852][104802:104807] CHIP:DMG: } [1661759978.806866][104802:104807] CHIP:DMG: [1661759978.806875][104802:104807] CHIP:DMG: StatusIB = @@ -147,18 +131,14 @@ tests: [1661759978.806921][104802:104807] CHIP:DMG: [1661759978.806929][104802:104807] CHIP:DMG: }, [1661759978.806944][104802:104807] CHIP:DMG: - [1661759978.806952][104802:104807] CHIP:DMG: ], - [1661759978.806967][104802:104807] CHIP:DMG: - [1661759978.806976][104802:104807] CHIP:DMG: InteractionModelRevision = 1 - [1661759978.806985][104802:104807] CHIP:DMG: } - [1661759978.807036][104802:104807] CHIP:DMG: WriteClient moving to [AwaitingDe] - [1661759978.807064][104802:104807] CHIP:EM: Sending Standalone Ack for MessageCounter:124959015 on exchange 61726i disabled: true - - label: "TH Reads ActiveLocale" + - label: "Step 7: TH Reads ActiveLocale" verification: | ./chip-tool localizationconfiguration read active-locale 1 0 - Verify that value of the ActiveLocale attribute is changed to SupportedLocale on TH(chip-tool) log: + + Verify that ActiveLocale attribute value is changed to "fr-FR" on TH(chip-tool) log and below is the sample log provided for the raspi platform: + [1661760013.634782][104820:104825] CHIP:DMG: } [1661760013.634848][104820:104825] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_0000 DataVersion: 3207653749 [1661760013.634861][104820:104825] CHIP:TOO: ActiveLocale: fr-FR diff --git a/src/app/tests/suites/certification/Test_TC_LOWPOWER_2_2.yaml b/src/app/tests/suites/certification/Test_TC_LOWPOWER_2_2.yaml index 5fa605b239c61a..bf7140da4281bc 100644 --- a/src/app/tests/suites/certification/Test_TC_LOWPOWER_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_LOWPOWER_2_2.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends Sleep command to TH" + - label: "Step 1: DUT sends Sleep command to TH" PICS: LOWPOWER.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -37,8 +37,7 @@ tests: ./chip-tv-casting-app lowpower sleep 1 1 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): - + On TH (tv-app), Verify the sleep command is successfully received [1658530100234] [21469:308294] CHIP: [DMG] InvokeRequestMessage = [1658530100234] [21469:308294] CHIP: [DMG] { [1658530100234] [21469:308294] CHIP: [DMG] suppressResponse = false, diff --git a/src/app/tests/suites/certification/Test_TC_LTIME_2_1.yaml b/src/app/tests/suites/certification/Test_TC_LTIME_2_1.yaml index c312e3d492c093..de3b799ac2bc7d 100644 --- a/src/app/tests/suites/certification/Test_TC_LTIME_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LTIME_2_1.yaml @@ -28,140 +28,77 @@ config: tests: - label: "Note" verification: | - Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. - - Commission TH(all-clusters-app) to TH(chip-tool) using below command + Commission TH(all-clusters-app) to DUT(chip-tool) using below command TH(all-clusters-app) : ./chip-all-clusters-app --trace_decode 1 - TH(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + DUT(chip-tool) : ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 disabled: true - - label: "DUT reads HourFormat attribute from TH" + - label: "Step 1: DUT reads HourFormat attribute from TH" PICS: LTIME.C.A0000 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool timeformatlocalization read hour-format 1 0 - Verify HourFormat attribute read request is successful on the TH(all-clusters-app) Log: - ReportDataMessage = - [1666853690.186762][20237:20237] CHIP:DMG: { - [1666853690.186765][20237:20237] CHIP:DMG: AttributeReportIBs = - [1666853690.186770][20237:20237] CHIP:DMG: [ - [1666853690.186773][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853690.186778][20237:20237] CHIP:DMG: { - [1666853690.186781][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853690.186784][20237:20237] CHIP:DMG: { - [1666853690.186788][20237:20237] CHIP:DMG: DataVersion = 0xbeb406db, - [1666853690.186790][20237:20237] CHIP:DMG: AttributePathIB = - [1666853690.186794][20237:20237] CHIP:DMG: { - [1666853690.186797][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853690.186805][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853690.186809][20237:20237] CHIP:DMG: Attribute = 0x0000_0000, - [1666853690.186815][20237:20237] CHIP:DMG: } - [1666853690.186819][20237:20237] CHIP:DMG: - [1666853690.186823][20237:20237] CHIP:DMG: Data = 0, - [1666853690.186826][20237:20237] CHIP:DMG: }, - [1666853690.186830][20237:20237] CHIP:DMG: - [1666853690.186833][20237:20237] CHIP:DMG: }, - [1666853690.186837][20237:20237] CHIP:DMG: - [1666853690.186840][20237:20237] CHIP:DMG: ], - [1666853690.186844][20237:20237] CHIP:DMG: - [1666853690.186848][20237:20237] CHIP:DMG: SuppressResponse = true, - [1666853690.186850][20237:20237] CHIP:DMG: InteractionModelRevision = 1 - [1666853690.186852][20237:20237] CHIP:DMG: } + Verify HourFormat attribute read request is successful on the TH(all-clusters-app) Log and below is the sample log provided for raspi platform: + + [1686897742.935624][12411:12411] CHIP:DMG: ReadRequestMessage = + [1686897742.935627][12411:12411] CHIP:DMG: { + [1686897742.935630][12411:12411] CHIP:DMG: AttributePathIBs = + [1686897742.935633][12411:12411] CHIP:DMG: [ + [1686897742.935636][12411:12411] CHIP:DMG: AttributePathIB = + [1686897742.935640][12411:12411] CHIP:DMG: { + [1686897742.935643][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686897742.935646][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686897742.935650][12411:12411] CHIP:DMG: Attribute = 0x0000_0000, + [1686897742.935652][12411:12411] CHIP:DMG: } + [1686897742.935656][12411:12411] CHIP:DMG: + [1686897742.935658][12411:12411] CHIP:DMG: ], + [1686897742.935662][12411:12411] CHIP:DMG: + [1686897742.935665][12411:12411] CHIP:DMG: isFabricFiltered = true, + [1686897742.935668][12411:12411] CHIP:DMG: InteractionModelRevision = 1 + [1686897742.935670][12411:12411] CHIP:DMG: }, disabled: true - label: - "If (LTIME.C.A0000.12HR) DUT writes 0 to HourFormat attribute on TH" + "Step 2: If (LTIME.C.A0000.12HR) DUT writes 0 to HourFormat attribute + on TH" PICS: LTIME.C.A0000.12HR verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool timeformatlocalization write hour-format 0 1 0 - Verify TH receives write command and updates 0 to HourFormat attribute on the TH(all-clusters-app) Log: - - WriteRequestMessage = - [1667882827.566742][3974:3974] CHIP:DMG: { - [1667882827.566746][3974:3974] CHIP:DMG: suppressResponse = false, - [1667882827.566751][3974:3974] CHIP:DMG: timedRequest = false, - [1667882827.566755][3974:3974] CHIP:DMG: AttributeDataIBs = - [1667882827.566761][3974:3974] CHIP:DMG: [ - [1667882827.566764][3974:3974] CHIP:DMG: AttributeDataIB = - [1667882827.566770][3974:3974] CHIP:DMG: { - [1667882827.566773][3974:3974] CHIP:DMG: AttributePathIB = - [1667882827.566778][3974:3974] CHIP:DMG: { - [1667882827.566782][3974:3974] CHIP:DMG: Endpoint = 0x0, - [1667882827.566788][3974:3974] CHIP:DMG: Cluster = 0x2c, - [1667882827.566793][3974:3974] CHIP:DMG: Attribute = 0x0000_0000, - [1667882827.566797][3974:3974] CHIP:DMG: } - [1667882827.566802][3974:3974] CHIP:DMG: - [1667882827.566807][3974:3974] CHIP:DMG: Data = 0, - [1667882827.566811][3974:3974] CHIP:DMG: }, - [1667882827.566816][3974:3974] CHIP:DMG: - [1667882827.566820][3974:3974] CHIP:DMG: ], - [1667882827.566826][3974:3974] CHIP:DMG: - [1667882827.566829][3974:3974] CHIP:DMG: moreChunkedMessages = false, - [1667882827.566833][3974:3974] CHIP:DMG: InteractionModelRevision = 1 - [1667882827.566837][3974:3974] CHIP:DMG: }, - [1667882827.566867][3974:3974] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002C e=0 p=o - [1667882827.566875][3974:3974] CHIP:DMG: AccessControl: allowed - [1667882827.566910][3974:3974] CHIP:DL: writing settings to file (/tmp/chip_kvs-6xpw7F) - [1667882827.567013][3974:3974] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1667882827.567026][3974:3974] CHIP:DMG: Endpoint 0, Cluster 0x0000_002C update version to 149975f5 - [1667882827.567034][3974:3974] CHIP:DMG: IM WH moving to [AddStatus] - [1667882827.567110][3974:3974] CHIP:EM: <<< [E:49074r M:160268117 (Ack:110121735)] (S) Msg TX to 1:000000000001B669 [E896] --- Type 0001:07 (IM:WriteResponse) - [1667882827.567119][3974:3974] CHIP:IN: (S) Sending msg 160268117 on secure session with LSID: 28339 - [1667882827.567204][3974:3974] CHIP:DMG: >> to UDP:[fe80::a76a:1e78:850a:7413%wlp0s20f3]:39465 | 160268117 | [Interaction Model (1) / Write Response (0x07) / Session = 22341 / Exchange = 49074] - [1667882827.567219][3974:3974] CHIP:DMG: Header Flags = - [1667882827.567224][3974:3974] CHIP:DMG: { - [1667882827.567233][3974:3974] CHIP:DMG: Exchange (0x06) = - [1667882827.567236][3974:3974] CHIP:DMG: { - [1667882827.567241][3974:3974] CHIP:DMG: AckMsg = 110121735 - [1667882827.567244][3974:3974] CHIP:DMG: NeedsAck = true - [1667882827.567248][3974:3974] CHIP:DMG: } - [1667882827.567254][3974:3974] CHIP:DMG: } - [1667882827.567257][3974:3974] CHIP:DMG: - [1667882827.567263][3974:3974] CHIP:DMG: Encrypted Payload (62 bytes) = - [1667882827.567266][3974:3974] CHIP:DMG: { - [1667882827.567270][3974:3974] CHIP:DMG: data = 00455700557f8d09da63b6e6999454e90265725f30f0aa17d432a5489a7747990bfd18de9be6738da05cba06d772232d276a5019405368eeb67365d5918b - [1667882827.567274][3974:3974] CHIP:DMG: buffer_ptr = 94307575602112 - [1667882827.567277][3974:3974] CHIP:DMG: } - [1667882827.567280][3974:3974] CHIP:DMG: - [1667882827.567293][3974:3974] CHIP:DMG: WriteResponseMessage = - [1667882827.567297][3974:3974] CHIP:DMG: { - [1667882827.567300][3974:3974] CHIP:DMG: AttributeStatusIBs = - [1667882827.567307][3974:3974] CHIP:DMG: [ - [1667882827.567310][3974:3974] CHIP:DMG: AttributeStatusIB = - [1667882827.567315][3974:3974] CHIP:DMG: { - [1667882827.567318][3974:3974] CHIP:DMG: AttributePathIB = - [1667882827.567323][3974:3974] CHIP:DMG: { - [1667882827.567327][3974:3974] CHIP:DMG: Endpoint = 0x0, - [1667882827.567332][3974:3974] CHIP:DMG: Cluster = 0x2c, - [1667882827.567337][3974:3974] CHIP:DMG: Attribute = 0x0000_0000, - [1667882827.567341][3974:3974] CHIP:DMG: } - [1667882827.567347][3974:3974] CHIP:DMG: - [1667882827.567352][3974:3974] CHIP:DMG: StatusIB = - [1667882827.567356][3974:3974] CHIP:DMG: { - [1667882827.567360][3974:3974] CHIP:DMG: status = 0x00 (SUCCESS), - [1667882827.567363][3974:3974] CHIP:DMG: }, - [1667882827.567366][3974:3974] CHIP:DMG: - [1667882827.567369][3974:3974] CHIP:DMG: }, - [1667882827.567373][3974:3974] CHIP:DMG: - [1667882827.567376][3974:3974] CHIP:DMG: ], - [1667882827.567381][3974:3974] CHIP:DMG: - [1667882827.567383][3974:3974] CHIP:DMG: InteractionModelRevision = 1 - [1667882827.567386][3974:3974] CHIP:DMG: } + + Verify TH receives HourFormat attribute write command and updates value to 0 on the TH(all-clusters-app) Log and below is the sample log provided for raspi platform: + + [1686897823.291113][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686897823.291116][12411:12411] CHIP:DMG: { + [1686897823.291119][12411:12411] CHIP:DMG: suppressResponse = false, + [1686897823.291122][12411:12411] CHIP:DMG: timedRequest = false, + [1686897823.291124][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686897823.291128][12411:12411] CHIP:DMG: [ + [1686897823.291131][12411:12411] CHIP:DMG: AttributeDataIB = + [1686897823.291134][12411:12411] CHIP:DMG: { + [1686897823.291137][12411:12411] CHIP:DMG: AttributePathIB = + [1686897823.291140][12411:12411] CHIP:DMG: { + [1686897823.291144][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686897823.291147][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686897823.291150][12411:12411] CHIP:DMG: Attribute = 0x0000_0000, + [1686897823.291153][12411:12411] CHIP:DMG: } + [1686897823.291156][12411:12411] CHIP:DMG: + [1686897823.291160][12411:12411] CHIP:DMG: Data = 0, + [1686897823.291163][12411:12411] CHIP:DMG: }, + [1686897823.291167][12411:12411] CHIP:DMG: + [1686897823.291169][12411:12411] CHIP:DMG: ], + [1686897823.291173][12411:12411] CHIP:DMG: + [1686897823.291176][12411:12411] CHIP:DMG: moreChunkedMessages = false, + [1686897823.291179][12411:12411] CHIP:DMG: InteractionModelRevision = 1 + [1686897823.291181][12411:12411] CHIP:DMG: }, disabled: true - - label: "DUT reads HourFormat attribute from TH" + - label: "Step 3: DUT reads HourFormat attribute from TH" PICS: LTIME.C.A0000 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool timeformatlocalization read hour-format 1 0 - Verify HourFormat attribute value is the one that was set in the above step on the TH(all-clusters-app) Log: + Verify HourFormat attribute value is same as one that was set in the step 2 on the TH(all-clusters-app) Log: ReportDataMessage = [1666853805.326001][20237:20237] CHIP:DMG: { @@ -192,96 +129,45 @@ tests: disabled: true - label: - "If (LTIME.C.A0000.24HR) DUT writes 1 to HourFormat attribute on TH" + "Step 4: If (LTIME.C.A0000.24HR) DUT writes 1 to HourFormat attribute + on TH" PICS: LTIME.C.A0000.24HR verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool timeformatlocalization write hour-format 1 1 0 - Verify TH receives write command and updates 1 to HourFormat attribute on the TH(all-clusters-app) Log: - - WriteRequestMessage = - [1667882900.829307][3974:3974] CHIP:DMG: { - [1667882900.829310][3974:3974] CHIP:DMG: suppressResponse = false, - [1667882900.829315][3974:3974] CHIP:DMG: timedRequest = false, - [1667882900.829318][3974:3974] CHIP:DMG: AttributeDataIBs = - [1667882900.829323][3974:3974] CHIP:DMG: [ - [1667882900.829327][3974:3974] CHIP:DMG: AttributeDataIB = - [1667882900.829333][3974:3974] CHIP:DMG: { - [1667882900.829336][3974:3974] CHIP:DMG: AttributePathIB = - [1667882900.829341][3974:3974] CHIP:DMG: { - [1667882900.829346][3974:3974] CHIP:DMG: Endpoint = 0x0, - [1667882900.829351][3974:3974] CHIP:DMG: Cluster = 0x2c, - [1667882900.829356][3974:3974] CHIP:DMG: Attribute = 0x0000_0000, - [1667882900.829360][3974:3974] CHIP:DMG: } - [1667882900.829366][3974:3974] CHIP:DMG: - [1667882900.829372][3974:3974] CHIP:DMG: Data = 1, - [1667882900.829376][3974:3974] CHIP:DMG: }, - [1667882900.829381][3974:3974] CHIP:DMG: - [1667882900.829384][3974:3974] CHIP:DMG: ], - [1667882900.829390][3974:3974] CHIP:DMG: - [1667882900.829394][3974:3974] CHIP:DMG: moreChunkedMessages = false, - [1667882900.829397][3974:3974] CHIP:DMG: InteractionModelRevision = 1 - [1667882900.829401][3974:3974] CHIP:DMG: }, - [1667882900.829423][3974:3974] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002C e=0 p=o - [1667882900.829430][3974:3974] CHIP:DMG: AccessControl: allowed - [1667882900.829469][3974:3974] CHIP:DL: writing settings to file (/tmp/chip_kvs-XJ6nRG) - [1667882900.829581][3974:3974] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1667882900.829594][3974:3974] CHIP:DMG: Endpoint 0, Cluster 0x0000_002C update version to 149975f6 - [1667882900.829603][3974:3974] CHIP:DMG: IM WH moving to [AddStatus] - [1667882900.829678][3974:3974] CHIP:EM: <<< [E:48131r M:147178902 (Ack:151379400)] (S) Msg TX to 1:000000000001B669 [E896] --- Type 0001:07 (IM:WriteResponse) - [1667882900.829688][3974:3974] CHIP:IN: (S) Sending msg 147178902 on secure session with LSID: 28340 - [1667882900.829774][3974:3974] CHIP:DMG: >> to UDP:[fe80::a76a:1e78:850a:7413%wlp0s20f3]:53414 | 147178902 | [Interaction Model (1) / Write Response (0x07) / Session = 56467 / Exchange = 48131] - [1667882900.829782][3974:3974] CHIP:DMG: Header Flags = - [1667882900.829785][3974:3974] CHIP:DMG: { - [1667882900.829794][3974:3974] CHIP:DMG: Exchange (0x06) = - [1667882900.829797][3974:3974] CHIP:DMG: { - [1667882900.829801][3974:3974] CHIP:DMG: AckMsg = 151379400 - [1667882900.829805][3974:3974] CHIP:DMG: NeedsAck = true - [1667882900.829807][3974:3974] CHIP:DMG: } - [1667882900.829813][3974:3974] CHIP:DMG: } - [1667882900.829816][3974:3974] CHIP:DMG: - [1667882900.829822][3974:3974] CHIP:DMG: Encrypted Payload (62 bytes) = - [1667882900.829826][3974:3974] CHIP:DMG: { - [1667882900.829830][3974:3974] CHIP:DMG: data = 0093dc0096c5c508464de4d0408785df80657817abc88a95aadd0cc8fbc1878a74224fa4bc1246664ee76ab18a8343ac16a00a068c2deca681f83412bb85 - [1667882900.829833][3974:3974] CHIP:DMG: buffer_ptr = 94307575603120 - [1667882900.829836][3974:3974] CHIP:DMG: } - [1667882900.829840][3974:3974] CHIP:DMG: - [1667882900.829853][3974:3974] CHIP:DMG: WriteResponseMessage = - [1667882900.829857][3974:3974] CHIP:DMG: { - [1667882900.829861][3974:3974] CHIP:DMG: AttributeStatusIBs = - [1667882900.829868][3974:3974] CHIP:DMG: [ - [1667882900.829871][3974:3974] CHIP:DMG: AttributeStatusIB = - [1667882900.829874][3974:3974] CHIP:DMG: { - [1667882900.829877][3974:3974] CHIP:DMG: AttributePathIB = - [1667882900.829882][3974:3974] CHIP:DMG: { - [1667882900.829886][3974:3974] CHIP:DMG: Endpoint = 0x0, - [1667882900.829889][3974:3974] CHIP:DMG: Cluster = 0x2c, - [1667882900.829893][3974:3974] CHIP:DMG: Attribute = 0x0000_0000, - [1667882900.829895][3974:3974] CHIP:DMG: } - [1667882900.829901][3974:3974] CHIP:DMG: - [1667882900.829904][3974:3974] CHIP:DMG: StatusIB = - [1667882900.829908][3974:3974] CHIP:DMG: { - [1667882900.829911][3974:3974] CHIP:DMG: status = 0x00 (SUCCESS), - [1667882900.829915][3974:3974] CHIP:DMG: }, - [1667882900.829920][3974:3974] CHIP:DMG: - [1667882900.829924][3974:3974] CHIP:DMG: }, - [1667882900.829930][3974:3974] CHIP:DMG: - [1667882900.829934][3974:3974] CHIP:DMG: ], - [1667882900.829940][3974:3974] CHIP:DMG: - [1667882900.829943][3974:3974] CHIP:DMG: InteractionModelRevision = 1 - [1667882900.829947][3974:3974] CHIP:DMG: } + Verify TH receives HourFormat attribute write command and updates value to 1 on the TH(all-clusters-app) Log and below is the sample log provided for raspi platform: + + [1686897976.668257][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686897976.668269][12411:12411] CHIP:DMG: { + [1686897976.668279][12411:12411] CHIP:DMG: suppressResponse = false, + [1686897976.668291][12411:12411] CHIP:DMG: timedRequest = false, + [1686897976.668305][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686897976.668327][12411:12411] CHIP:DMG: [ + [1686897976.668341][12411:12411] CHIP:DMG: AttributeDataIB = + [1686897976.668360][12411:12411] CHIP:DMG: { + [1686897976.668369][12411:12411] CHIP:DMG: AttributePathIB = + [1686897976.668403][12411:12411] CHIP:DMG: { + [1686897976.668407][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686897976.668410][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686897976.668415][12411:12411] CHIP:DMG: Attribute = 0x0000_0000, + [1686897976.668419][12411:12411] CHIP:DMG: } + [1686897976.668424][12411:12411] CHIP:DMG: + [1686897976.668429][12411:12411] CHIP:DMG: Data = 1, + [1686897976.668432][12411:12411] CHIP:DMG: }, + [1686897976.668438][12411:12411] CHIP:DMG: + [1686897976.668442][12411:12411] CHIP:DMG: ], + [1686897976.668446][12411:12411] CHIP:DMG: + [1686897976.668449][12411:12411] CHIP:DMG: moreChunkedMessages = false, + [1686897976.668452][12411:12411] CHIP:DMG: InteractionModelRevision = 1 + [1686897976.668454][12411:12411] CHIP:DMG: }, disabled: true - - label: "DUT reads HourFormat attribute on TH" + - label: "Step 5: DUT reads HourFormat attribute on TH" PICS: LTIME.C.A0000 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool timeformatlocalization read hour-format 1 0 - Verify HourFormat attribute value is the one that was set in the above step on the TH(all-clusters-app) Log: + Verify HourFormat attribute value is same as one that was set in the step 5 on the TH(all-clusters-app) Log and below is the sample log provided for raspi platform: ReportDataMessage = [1666853879.264685][20237:20237] CHIP:DMG: { @@ -311,383 +197,742 @@ tests: [1666853879.264788][20237:20237] CHIP:DMG: } disabled: true - - label: "DUT reads ActiveCalendarType attribute on TH" + - label: "Step 6: DUT reads ActiveCalendarType attribute on TH" PICS: LTIME.C.A0001 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool timeformatlocalization read active-calendar-type 1 0 - Verify active-calendar-type attribute read request is successful on the TH(all-clusters-app) Log: - - ReportDataMessage = - [1666853928.157384][20237:20237] CHIP:DMG: { - [1666853928.157387][20237:20237] CHIP:DMG: AttributeReportIBs = - [1666853928.157394][20237:20237] CHIP:DMG: [ - [1666853928.157398][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853928.157407][20237:20237] CHIP:DMG: { - [1666853928.157412][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853928.157417][20237:20237] CHIP:DMG: { - [1666853928.157422][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853928.157426][20237:20237] CHIP:DMG: AttributePathIB = - [1666853928.157432][20237:20237] CHIP:DMG: { - [1666853928.157437][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853928.157442][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853928.157449][20237:20237] CHIP:DMG: Attribute = 0x0000_0001, - [1666853928.157453][20237:20237] CHIP:DMG: } - [1666853928.157459][20237:20237] CHIP:DMG: - [1666853928.157465][20237:20237] CHIP:DMG: Data = 0, - [1666853928.157469][20237:20237] CHIP:DMG: }, - [1666853928.157475][20237:20237] CHIP:DMG: - [1666853928.157479][20237:20237] CHIP:DMG: }, - [1666853928.157485][20237:20237] CHIP:DMG: - [1666853928.157489][20237:20237] CHIP:DMG: ], - [1666853928.157496][20237:20237] CHIP:DMG: - [1666853928.157500][20237:20237] CHIP:DMG: SuppressResponse = true, - [1666853928.157505][20237:20237] CHIP:DMG: InteractionModelRevision = 1 - [1666853928.157508][20237:20237] CHIP:DMG: } + Verify active-calendar-type attribute read request is successful on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898051.422884][12411:12411] CHIP:DMG: ReadRequestMessage = + [1686898051.422888][12411:12411] CHIP:DMG: { + [1686898051.422890][12411:12411] CHIP:DMG: AttributePathIBs = + [1686898051.422893][12411:12411] CHIP:DMG: [ + [1686898051.422896][12411:12411] CHIP:DMG: AttributePathIB = + [1686898051.422900][12411:12411] CHIP:DMG: { + [1686898051.422903][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686898051.422906][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686898051.422909][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686898051.422911][12411:12411] CHIP:DMG: } + [1686898051.422915][12411:12411] CHIP:DMG: + [1686898051.422917][12411:12411] CHIP:DMG: ], + [1686898051.422921][12411:12411] CHIP:DMG: + [1686898051.422924][12411:12411] CHIP:DMG: isFabricFiltered = true, + [1686898051.422926][12411:12411] CHIP:DMG: InteractionModelRevision = 1 + [1686898051.422929][12411:12411] CHIP:DMG: }, disabled: true - - label: "DUT reads SupportedCalendarTypes attribute TH" + - label: "Step 7: DUT reads SupportedCalendarTypes attribute TH" PICS: LTIME.C.A0002 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool timeformatlocalization read supported-calendar-types 1 0 - Verify supported-calendar-types attribute read request is successful on the TH(all-clusters-app) Log: - - [ReportDataMessage = - [1666853973.463240][20237:20237] CHIP:DMG: { - [1666853973.463243][20237:20237] CHIP:DMG: AttributeReportIBs = - [1666853973.463250][20237:20237] CHIP:DMG: [ - [1666853973.463253][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463260][20237:20237] CHIP:DMG: { - [1666853973.463263][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463267][20237:20237] CHIP:DMG: { - [1666853973.463271][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463274][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463277][20237:20237] CHIP:DMG: { - [1666853973.463281][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.463285][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.463290][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.463293][20237:20237] CHIP:DMG: } - [1666853973.463297][20237:20237] CHIP:DMG: - [1666853973.463300][20237:20237] CHIP:DMG: Data = [ - [1666853973.463305][20237:20237] CHIP:DMG: - [1666853973.463308][20237:20237] CHIP:DMG: ], - [1666853973.463312][20237:20237] CHIP:DMG: }, - [1666853973.463317][20237:20237] CHIP:DMG: - [1666853973.463320][20237:20237] CHIP:DMG: }, - [1666853973.463326][20237:20237] CHIP:DMG: - [1666853973.463329][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463335][20237:20237] CHIP:DMG: { - [1666853973.463337][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463342][20237:20237] CHIP:DMG: { - [1666853973.463345][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463349][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463352][20237:20237] CHIP:DMG: { - [1666853973.463357][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.463360][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.463364][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.463367][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.463370][20237:20237] CHIP:DMG: } - [1666853973.463375][20237:20237] CHIP:DMG: - [1666853973.463379][20237:20237] CHIP:DMG: Data = 0, - [1666853973.463382][20237:20237] CHIP:DMG: }, - [1666853973.463386][20237:20237] CHIP:DMG: - [1666853973.463389][20237:20237] CHIP:DMG: }, - [1666853973.463396][20237:20237] CHIP:DMG: - [1666853973.463398][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463404][20237:20237] CHIP:DMG: { - [1666853973.463407][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463410][20237:20237] CHIP:DMG: { - [1666853973.463414][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463417][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463420][20237:20237] CHIP:DMG: { - [1666853973.463426][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.463432][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.463437][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.463441][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.463445][20237:20237] CHIP:DMG: } - [1666853973.463451][20237:20237] CHIP:DMG: - [1666853973.463457][20237:20237] CHIP:DMG: Data = 1, - [1666853973.463461][20237:20237] CHIP:DMG: }, - [1666853973.463467][20237:20237] CHIP:DMG: - [1666853973.463471][20237:20237] CHIP:DMG: }, - [1666853973.463479][20237:20237] CHIP:DMG: - [1666853973.463482][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463489][20237:20237] CHIP:DMG: { - [1666853973.463492][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463497][20237:20237] CHIP:DMG: { - [1666853973.463501][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463505][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463510][20237:20237] CHIP:DMG: { - [1666853973.463515][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.463520][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.463524][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.463529][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.463533][20237:20237] CHIP:DMG: } - [1666853973.463540][20237:20237] CHIP:DMG: - [1666853973.463544][20237:20237] CHIP:DMG: Data = 2, - [1666853973.463548][20237:20237] CHIP:DMG: }, - [1666853973.463553][20237:20237] CHIP:DMG: - [1666853973.463557][20237:20237] CHIP:DMG: }, - [1666853973.463566][20237:20237] CHIP:DMG: - [1666853973.463569][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463576][20237:20237] CHIP:DMG: { - [1666853973.463580][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463584][20237:20237] CHIP:DMG: { - [1666853973.463589][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463593][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463598][20237:20237] CHIP:DMG: { - [1666853973.463602][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.463607][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.463612][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.463616][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.463620][20237:20237] CHIP:DMG: } - [1666853973.463626][20237:20237] CHIP:DMG: - [1666853973.463631][20237:20237] CHIP:DMG: Data = 3, - [1666853973.463634][20237:20237] CHIP:DMG: }, - [1666853973.463640][20237:20237] CHIP:DMG: - [1666853973.463642][20237:20237] CHIP:DMG: }, - [1666853973.463651][20237:20237] CHIP:DMG: - [1666853973.463653][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463659][20237:20237] CHIP:DMG: { - [1666853973.463662][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463667][20237:20237] CHIP:DMG: { - [1666853973.463671][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463675][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463679][20237:20237] CHIP:DMG: { - [1666853973.463684][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.463689][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.463694][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.463698][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.463702][20237:20237] CHIP:DMG: } - [1666853973.463707][20237:20237] CHIP:DMG: - [1666853973.463712][20237:20237] CHIP:DMG: Data = 4, - [1666853973.463716][20237:20237] CHIP:DMG: }, - [1666853973.463721][20237:20237] CHIP:DMG: - [1666853973.463725][20237:20237] CHIP:DMG: }, - [1666853973.463732][20237:20237] CHIP:DMG: - [1666853973.463735][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463742][20237:20237] CHIP:DMG: { - [1666853973.463745][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463749][20237:20237] CHIP:DMG: { - [1666853973.463752][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463756][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463761][20237:20237] CHIP:DMG: { - [1666853973.463764][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.463768][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.463772][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.463776][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.463780][20237:20237] CHIP:DMG: } - [1666853973.463787][20237:20237] CHIP:DMG: - [1666853973.463791][20237:20237] CHIP:DMG: Data = 5, - [1666853973.463795][20237:20237] CHIP:DMG: }, - [1666853973.463799][20237:20237] CHIP:DMG: - [1666853973.463803][20237:20237] CHIP:DMG: }, - [1666853973.463811][20237:20237] CHIP:DMG: - [1666853973.463814][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463821][20237:20237] CHIP:DMG: { - [1666853973.463824][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463828][20237:20237] CHIP:DMG: { - [1666853973.463831][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463837][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463840][20237:20237] CHIP:DMG: { - [1666853973.463846][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.463850][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.463853][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.463856][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.463863][20237:20237] CHIP:DMG: } - [1666853973.463867][20237:20237] CHIP:DMG: - [1666853973.463871][20237:20237] CHIP:DMG: Data = 6, - [1666853973.463874][20237:20237] CHIP:DMG: }, - [1666853973.463879][20237:20237] CHIP:DMG: - [1666853973.463883][20237:20237] CHIP:DMG: }, - [1666853973.463891][20237:20237] CHIP:DMG: - [1666853973.463894][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463901][20237:20237] CHIP:DMG: { - [1666853973.463904][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463911][20237:20237] CHIP:DMG: { - [1666853973.463914][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463920][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463924][20237:20237] CHIP:DMG: { - [1666853973.463928][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.463933][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.463939][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.463943][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.463947][20237:20237] CHIP:DMG: } - [1666853973.463952][20237:20237] CHIP:DMG: - [1666853973.463956][20237:20237] CHIP:DMG: Data = 8, - [1666853973.463959][20237:20237] CHIP:DMG: }, - [1666853973.463964][20237:20237] CHIP:DMG: - [1666853973.463966][20237:20237] CHIP:DMG: }, - [1666853973.463973][20237:20237] CHIP:DMG: - [1666853973.463975][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.463980][20237:20237] CHIP:DMG: { - [1666853973.463982][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.463986][20237:20237] CHIP:DMG: { - [1666853973.463989][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.463992][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.463995][20237:20237] CHIP:DMG: { - [1666853973.463998][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.464002][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.464005][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.464008][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.464011][20237:20237] CHIP:DMG: } - [1666853973.464015][20237:20237] CHIP:DMG: - [1666853973.464018][20237:20237] CHIP:DMG: Data = 9, - [1666853973.464021][20237:20237] CHIP:DMG: }, - [1666853973.464025][20237:20237] CHIP:DMG: - [1666853973.464028][20237:20237] CHIP:DMG: }, - [1666853973.464034][20237:20237] CHIP:DMG: - [1666853973.464037][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.464041][20237:20237] CHIP:DMG: { - [1666853973.464044][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.464047][20237:20237] CHIP:DMG: { - [1666853973.464050][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.464053][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.464056][20237:20237] CHIP:DMG: { - [1666853973.464060][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.464063][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.464066][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.464070][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.464072][20237:20237] CHIP:DMG: } - [1666853973.464076][20237:20237] CHIP:DMG: - [1666853973.464080][20237:20237] CHIP:DMG: Data = 10, - [1666853973.464083][20237:20237] CHIP:DMG: }, - [1666853973.464087][20237:20237] CHIP:DMG: - [1666853973.464090][20237:20237] CHIP:DMG: }, - [1666853973.464096][20237:20237] CHIP:DMG: - [1666853973.464098][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.464103][20237:20237] CHIP:DMG: { - [1666853973.464105][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.464108][20237:20237] CHIP:DMG: { - [1666853973.464111][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.464114][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.464118][20237:20237] CHIP:DMG: { - [1666853973.464121][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.464124][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.464127][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.464131][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.464134][20237:20237] CHIP:DMG: } - [1666853973.464138][20237:20237] CHIP:DMG: - [1666853973.464141][20237:20237] CHIP:DMG: Data = 11, - [1666853973.464144][20237:20237] CHIP:DMG: }, - [1666853973.464148][20237:20237] CHIP:DMG: - [1666853973.464151][20237:20237] CHIP:DMG: }, - [1666853973.464157][20237:20237] CHIP:DMG: - [1666853973.464160][20237:20237] CHIP:DMG: AttributeReportIB = - [1666853973.464164][20237:20237] CHIP:DMG: { - [1666853973.464167][20237:20237] CHIP:DMG: AttributeDataIB = - [1666853973.464170][20237:20237] CHIP:DMG: { - [1666853973.464173][20237:20237] CHIP:DMG: DataVersion = 0xbeb406dd, - [1666853973.464176][20237:20237] CHIP:DMG: AttributePathIB = - [1666853973.464179][20237:20237] CHIP:DMG: { - [1666853973.464182][20237:20237] CHIP:DMG: Endpoint = 0x0, - [1666853973.464186][20237:20237] CHIP:DMG: Cluster = 0x2c, - [1666853973.464189][20237:20237] CHIP:DMG: Attribute = 0x0000_0002, - [1666853973.464192][20237:20237] CHIP:DMG: ListIndex = Null, - [1666853973.464197][20237:20237] CHIP:DMG: } - [1666853973.464203][20237:20237] CHIP:DMG: - [1666853973.464207][20237:20237] CHIP:DMG: Data = 7, - [1666853973.464211][20237:20237] CHIP:DMG: }, - [1666853973.464217][20237:20237] CHIP:DMG: - [1666853973.464220][20237:20237] CHIP:DMG: }, - [1666853973.464226][20237:20237] CHIP:DMG: - [1666853973.464229][20237:20237] CHIP:DMG: ], - [1666853973.464254][20237:20237] CHIP:DMG: - [1666853973.464258][20237:20237] CHIP:DMG: SuppressResponse = true, - [1666853973.464262][20237:20237] CHIP:DMG: InteractionModelRevision = 1 - [1666853973.464265][20237:20237] CHIP:DMG: } + + Verify SupportedCalendarTypes attribute read request is successful on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898103.035536][12411:12411] CHIP:DMG: ReadRequestMessage = + [1686898103.035540][12411:12411] CHIP:DMG: { + [1686898103.035542][12411:12411] CHIP:DMG: AttributePathIBs = + [1686898103.035546][12411:12411] CHIP:DMG: [ + [1686898103.035548][12411:12411] CHIP:DMG: AttributePathIB = + [1686898103.035551][12411:12411] CHIP:DMG: { + [1686898103.035554][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686898103.035557][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686898103.035560][12411:12411] CHIP:DMG: Attribute = 0x0000_0002, + [1686898103.035563][12411:12411] CHIP:DMG: } + [1686898103.035566][12411:12411] CHIP:DMG: + [1686898103.035568][12411:12411] CHIP:DMG: ], + [1686898103.035572][12411:12411] CHIP:DMG: + [1686898103.035575][12411:12411] CHIP:DMG: isFabricFiltered = true, + [1686898103.035579][12411:12411] CHIP:DMG: InteractionModelRevision = 1 + [1686898103.035581][12411:12411] CHIP:DMG: }, disabled: true - label: - "DUT writes value in PIXIT.LTIME.SCT to ActiveCalendarType attribute - on TH, followed by reading the ActiveCalendarType attribute from TH" + "Step 8: DUT writes value in PIXIT.LTIME.SCT to ActiveCalendarType + attribute on TH, followed by reading the ActiveCalendarType attribute + from TH" PICS: LTIME.C.A0001 verification: | - Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) - ./chip-tool timeformatlocalization write active-calendar-type 0 1 0 - Verify TH receives the write command and updates the respective value on the TH(all-clusters-app) Log: - - WriteRequestMessage = - [1667882949.750275][3974:3974] CHIP:DMG: { - [1667882949.750280][3974:3974] CHIP:DMG: suppressResponse = false, - [1667882949.750286][3974:3974] CHIP:DMG: timedRequest = false, - [1667882949.750290][3974:3974] CHIP:DMG: AttributeDataIBs = - [1667882949.750298][3974:3974] CHIP:DMG: [ - [1667882949.750302][3974:3974] CHIP:DMG: AttributeDataIB = - [1667882949.750309][3974:3974] CHIP:DMG: { - [1667882949.750313][3974:3974] CHIP:DMG: AttributePathIB = - [1667882949.750319][3974:3974] CHIP:DMG: { - [1667882949.750324][3974:3974] CHIP:DMG: Endpoint = 0x0, - [1667882949.750330][3974:3974] CHIP:DMG: Cluster = 0x2c, - [1667882949.750336][3974:3974] CHIP:DMG: Attribute = 0x0000_0001, - [1667882949.750340][3974:3974] CHIP:DMG: } - [1667882949.750347][3974:3974] CHIP:DMG: - [1667882949.750353][3974:3974] CHIP:DMG: Data = 0, - [1667882949.750357][3974:3974] CHIP:DMG: }, - [1667882949.750365][3974:3974] CHIP:DMG: - [1667882949.750368][3974:3974] CHIP:DMG: ], - [1667882949.750376][3974:3974] CHIP:DMG: - [1667882949.750381][3974:3974] CHIP:DMG: moreChunkedMessages = false, - [1667882949.750386][3974:3974] CHIP:DMG: InteractionModelRevision = 1 - [1667882949.750390][3974:3974] CHIP:DMG: }, - [1667882949.750415][3974:3974] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002C e=0 p=o - [1667882949.750423][3974:3974] CHIP:DMG: AccessControl: allowed - [1667882949.750467][3974:3974] CHIP:DL: writing settings to file (/tmp/chip_kvs-3cU6nG) - [1667882949.750622][3974:3974] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1667882949.750639][3974:3974] CHIP:DMG: Endpoint 0, Cluster 0x0000_002C update version to 149975f7 - [1667882949.750651][3974:3974] CHIP:DMG: IM WH moving to [AddStatus] - [1667882949.750756][3974:3974] CHIP:EM: <<< [E:39856r M:81741522 (Ack:91460790)] (S) Msg TX to 1:000000000001B669 [E896] --- Type 0001:07 (IM:WriteResponse) - [1667882949.750769][3974:3974] CHIP:IN: (S) Sending msg 81741522 on secure session with LSID: 28341 - [1667882949.750888][3974:3974] CHIP:DMG: >> to UDP:[fe80::a76a:1e78:850a:7413%wlp0s20f3]:57160 | 81741522 | [Interaction Model (1) / Write Response (0x07) / Session = 24248 / Exchange = 39856] - [1667882949.750902][3974:3974] CHIP:DMG: Header Flags = - [1667882949.750906][3974:3974] CHIP:DMG: { - [1667882949.750919][3974:3974] CHIP:DMG: Exchange (0x06) = - [1667882949.750923][3974:3974] CHIP:DMG: { - [1667882949.750929][3974:3974] CHIP:DMG: AckMsg = 91460790 - [1667882949.750934][3974:3974] CHIP:DMG: NeedsAck = true - [1667882949.750939][3974:3974] CHIP:DMG: } - [1667882949.750949][3974:3974] CHIP:DMG: } - [1667882949.750953][3974:3974] CHIP:DMG: - [1667882949.750961][3974:3974] CHIP:DMG: Encrypted Payload (62 bytes) = - [1667882949.750965][3974:3974] CHIP:DMG: { - [1667882949.750971][3974:3974] CHIP:DMG: data = 00b85e00d246df04e64567f6e9297b83b318bcd8726945c617e2758dbb973bd8931b09f03b74672bf643facbc7e347710e0f65feb693191e96d2e07c0013 - [1667882949.750976][3974:3974] CHIP:DMG: buffer_ptr = 94307575603920 - [1667882949.750981][3974:3974] CHIP:DMG: } - [1667882949.750986][3974:3974] CHIP:DMG: - [1667882949.751004][3974:3974] CHIP:DMG: WriteResponseMessage = - [1667882949.751010][3974:3974] CHIP:DMG: { - [1667882949.751014][3974:3974] CHIP:DMG: AttributeStatusIBs = - [1667882949.751024][3974:3974] CHIP:DMG: [ - [1667882949.751028][3974:3974] CHIP:DMG: AttributeStatusIB = - [1667882949.751035][3974:3974] CHIP:DMG: { - [1667882949.751040][3974:3974] CHIP:DMG: AttributePathIB = - [1667882949.751047][3974:3974] CHIP:DMG: { - [1667882949.751053][3974:3974] CHIP:DMG: Endpoint = 0x0, - [1667882949.751060][3974:3974] CHIP:DMG: Cluster = 0x2c, - [1667882949.751066][3974:3974] CHIP:DMG: Attribute = 0x0000_0001, - [1667882949.751071][3974:3974] CHIP:DMG: } - [1667882949.751080][3974:3974] CHIP:DMG: - [1667882949.751085][3974:3974] CHIP:DMG: StatusIB = - [1667882949.751092][3974:3974] CHIP:DMG: { - [1667882949.751097][3974:3974] CHIP:DMG: status = 0x00 (SUCCESS), - [1667882949.751103][3974:3974] CHIP:DMG: }, - [1667882949.751110][3974:3974] CHIP:DMG: - [1667882949.751115][3974:3974] CHIP:DMG: }, - [1667882949.751123][3974:3974] CHIP:DMG: - [1667882949.751127][3974:3974] CHIP:DMG: ], - [1667882949.751136][3974:3974] CHIP:DMG: - [1667882949.751141][3974:3974] CHIP:DMG: InteractionModelRevision = 1 - [1667882949.751146][3974:3974] CHIP:DMG: } + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 0 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898167.800454][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686898167.800468][12411:12411] CHIP:DMG: { + [1686898167.800483][12411:12411] CHIP:DMG: suppressResponse = false, + [1686898167.800501][12411:12411] CHIP:DMG: timedRequest = false, + [1686898167.800511][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686898167.800529][12411:12411] CHIP:DMG: [ + [1686898167.800540][12411:12411] CHIP:DMG: AttributeDataIB = + [1686898167.800552][12411:12411] CHIP:DMG: { + [1686898167.800563][12411:12411] CHIP:DMG: AttributePathIB = + [1686898167.800575][12411:12411] CHIP:DMG: { + [1686898167.800589][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686898167.800604][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686898167.800620][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686898167.800630][12411:12411] CHIP:DMG: } + [1686898167.800649][12411:12411] CHIP:DMG: + [1686898167.800662][12411:12411] CHIP:DMG: Data = 0, + [1686898167.800672][12411:12411] CHIP:DMG: }, + [1686898167.800687][12411:12411] CHIP:DMG: + [1686898167.800696][12411:12411] CHIP:DMG: ], + [1686898167.800710][12411:12411] CHIP:DMG: + [1686898167.800721][12411:12411] CHIP:DMG: moreChunkedMessages = false, + [1686898167.800734][12411:12411] CHIP:DMG: InteractionModelRevision = 1 + [1686898167.800742][12411:12411] CHIP:DMG: }, disabled: true - - label: "Repeat step 8 for all the values in PIXIT.LTIME.SCT" + - label: "Step 9: Repeat step 8 for all the values in PIXIT.LTIME.SCT" PICS: LTIME.C.A0001 verification: | - Repeat the test step 8 for 1, 2,3, 4, 5, 6,7, 8, 9,10 and 11 values and verify that TH receives the write command and updates the respective value. Verify that TH reads ActiveCalendarType attribute value and it is the same as the value that was set before + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is same as the value that was set before on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + ReportDataMessage = + [1666854060.848201][20237:20237] CHIP:DMG: { + [1666854060.848204][20237:20237] CHIP:DMG: AttributeReportIBs = + [1666854060.848211][20237:20237] CHIP:DMG: [ + [1666854060.848215][20237:20237] CHIP:DMG: AttributeReportIB = + [1666854060.848222][20237:20237] CHIP:DMG: { + [1666854060.848225][20237:20237] CHIP:DMG: AttributeDataIB = + [1666854060.848229][20237:20237] CHIP:DMG: { + [1666854060.848234][20237:20237] CHIP:DMG: DataVersion = 0xbeb406de, + [1666854060.848238][20237:20237] CHIP:DMG: AttributePathIB = + [1666854060.848244][20237:20237] CHIP:DMG: { + [1666854060.848248][20237:20237] CHIP:DMG: Endpoint = 0x0, + [1666854060.848253][20237:20237] CHIP:DMG: Cluster = 0x2c, + [1666854060.848257][20237:20237] CHIP:DMG: Attribute = 0x0000_0001, + [1666854060.848260][20237:20237] CHIP:DMG: } + [1666854060.848266][20237:20237] CHIP:DMG: + [1666854060.848269][20237:20237] CHIP:DMG: Data = 0, + [1666854060.848272][20237:20237] CHIP:DMG: }, + [1666854060.848276][20237:20237] CHIP:DMG: + [1666854060.848279][20237:20237] CHIP:DMG: }, + [1666854060.848284][20237:20237] CHIP:DMG: + [1666854060.848287][20237:20237] CHIP:DMG: ], + [1666854060.848294][20237:20237] CHIP:DMG: + [1666854060.848298][20237:20237] CHIP:DMG: SuppressResponse = true, + [1666854060.848301][20237:20237] CHIP:DMG: InteractionModelRevision = 1 + [1666854060.848304][20237:20237] CHIP:DMG: } + disabled: true + + - label: "Step 10: Repeat step 8 for all the values in PIXIT.LTIME.SCT" + PICS: LTIME.C.A0001 + verification: | + ./chip-tool timeformatlocalization write active-calendar-type 1 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 1 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898332.358543][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686898332.358546][12411:12411] CHIP:DMG: { + [1686898332.358550][12411:12411] CHIP:DMG: suppressResponse = false, + [1686898332.358555][12411:12411] CHIP:DMG: timedRequest = false, + [1686898332.358559][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686898332.358567][12411:12411] CHIP:DMG: [ + [1686898332.358570][12411:12411] CHIP:DMG: AttributeDataIB = + [1686898332.358577][12411:12411] CHIP:DMG: { + [1686898332.358579][12411:12411] CHIP:DMG: AttributePathIB = + [1686898332.358586][12411:12411] CHIP:DMG: { + [1686898332.358590][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686898332.358595][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686898332.358598][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686898332.358600][12411:12411] CHIP:DMG: } + [1686898332.358604][12411:12411] CHIP:DMG: + [1686898332.358607][12411:12411] CHIP:DMG: Data = 1, + [1686898332.358609][12411:12411] CHIP:DMG: }, + [1686898332.358613][12411:12411] CHIP:DMG: + [1686898332.358615][12411:12411] CHIP:DMG: ], + + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 1 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898454.639136][12687:12689] CHIP:DMG: ReportDataMessage = + [1686898454.639140][12687:12689] CHIP:DMG: { + [1686898454.639142][12687:12689] CHIP:DMG: AttributeReportIBs = + [1686898454.639148][12687:12689] CHIP:DMG: [ + [1686898454.639150][12687:12689] CHIP:DMG: AttributeReportIB = + [1686898454.639155][12687:12689] CHIP:DMG: { + [1686898454.639158][12687:12689] CHIP:DMG: AttributeDataIB = + [1686898454.639163][12687:12689] CHIP:DMG: { + [1686898454.639166][12687:12689] CHIP:DMG: DataVersion = 0x68385037, + [1686898454.639170][12687:12689] CHIP:DMG: AttributePathIB = + [1686898454.639174][12687:12689] CHIP:DMG: { + [1686898454.639177][12687:12689] CHIP:DMG: Endpoint = 0x0, + [1686898454.639180][12687:12689] CHIP:DMG: Cluster = 0x2c, + [1686898454.639183][12687:12689] CHIP:DMG: Attribute = 0x0000_0001, + [1686898454.639186][12687:12689] CHIP:DMG: } + [1686898454.639192][12687:12689] CHIP:DMG: + [1686898454.639196][12687:12689] CHIP:DMG: Data = 1, + [1686898454.639199][12687:12689] CHIP:DMG: }, + [1686898454.639203][12687:12689] CHIP:DMG: + [1686898454.639205][12687:12689] CHIP:DMG: }, + [1686898454.639210][12687:12689] CHIP:DMG: + [1686898454.639213][12687:12689] CHIP:DMG: ], + [1686898454.639217][12687:12689] CHIP:DMG: + [1686898454.639220][12687:12689] CHIP:DMG: SuppressResponse = true, + [1686898454.639223][12687:12689] CHIP:DMG: InteractionModelRevision = 1 + [1686898454.639225][12687:12689] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 2 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 2 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898499.368660][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686898499.368664][12411:12411] CHIP:DMG: { + [1686898499.368667][12411:12411] CHIP:DMG: suppressResponse = false, + [1686898499.368671][12411:12411] CHIP:DMG: timedRequest = false, + [1686898499.368675][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686898499.368682][12411:12411] CHIP:DMG: [ + [1686898499.368684][12411:12411] CHIP:DMG: AttributeDataIB = + [1686898499.368688][12411:12411] CHIP:DMG: { + [1686898499.368690][12411:12411] CHIP:DMG: AttributePathIB = + [1686898499.368694][12411:12411] CHIP:DMG: { + [1686898499.368697][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686898499.368701][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686898499.368704][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686898499.368706][12411:12411] CHIP:DMG: } + [1686898499.368711][12411:12411] CHIP:DMG: + [1686898499.368716][12411:12411] CHIP:DMG: Data = 2, + [1686898499.368718][12411:12411] CHIP:DMG: }, + [1686898499.368722][12411:12411] CHIP:DMG: + [1686898499.368725][12411:12411] CHIP:DMG: ], + + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 2 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898544.231876][12718:12720] CHIP:DMG: ReportDataMessage = + [1686898544.231879][12718:12720] CHIP:DMG: { + [1686898544.231881][12718:12720] CHIP:DMG: AttributeReportIBs = + [1686898544.231887][12718:12720] CHIP:DMG: [ + [1686898544.231889][12718:12720] CHIP:DMG: AttributeReportIB = + [1686898544.231895][12718:12720] CHIP:DMG: { + [1686898544.231898][12718:12720] CHIP:DMG: AttributeDataIB = + [1686898544.231901][12718:12720] CHIP:DMG: { + [1686898544.231905][12718:12720] CHIP:DMG: DataVersion = 0x68385038, + [1686898544.231908][12718:12720] CHIP:DMG: AttributePathIB = + [1686898544.231911][12718:12720] CHIP:DMG: { + [1686898544.231915][12718:12720] CHIP:DMG: Endpoint = 0x0, + [1686898544.231919][12718:12720] CHIP:DMG: Cluster = 0x2c, + [1686898544.231922][12718:12720] CHIP:DMG: Attribute = 0x0000_0001, + [1686898544.231925][12718:12720] CHIP:DMG: } + [1686898544.231928][12718:12720] CHIP:DMG: + [1686898544.231932][12718:12720] CHIP:DMG: Data = 2, + [1686898544.231935][12718:12720] CHIP:DMG: }, + [1686898544.231939][12718:12720] CHIP:DMG: + [1686898544.231942][12718:12720] CHIP:DMG: }, + [1686898544.231946][12718:12720] CHIP:DMG: + [1686898544.231949][12718:12720] CHIP:DMG: ], + [1686898544.231953][12718:12720] CHIP:DMG: + [1686898544.231956][12718:12720] CHIP:DMG: SuppressResponse = true, + [1686898544.231959][12718:12720] CHIP:DMG: InteractionModelRevision = 1 + [1686898544.231961][12718:12720] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 3 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 3 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898582.764639][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686898582.764656][12411:12411] CHIP:DMG: { + [1686898582.764670][12411:12411] CHIP:DMG: suppressResponse = false, + [1686898582.764687][12411:12411] CHIP:DMG: timedRequest = false, + [1686898582.764698][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686898582.764716][12411:12411] CHIP:DMG: [ + [1686898582.764726][12411:12411] CHIP:DMG: AttributeDataIB = + [1686898582.764738][12411:12411] CHIP:DMG: { + [1686898582.764748][12411:12411] CHIP:DMG: AttributePathIB = + [1686898582.764760][12411:12411] CHIP:DMG: { + [1686898582.764773][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686898582.764785][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686898582.764798][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686898582.764809][12411:12411] CHIP:DMG: } + [1686898582.764823][12411:12411] CHIP:DMG: + [1686898582.764836][12411:12411] CHIP:DMG: Data = 3, + [1686898582.764846][12411:12411] CHIP:DMG: }, + [1686898582.764859][12411:12411] CHIP:DMG: + [1686898582.764868][12411:12411] CHIP:DMG: + + + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 3 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898658.627985][12740:12742] CHIP:DMG: ReportDataMessage = + [1686898658.628004][12740:12742] CHIP:DMG: { + [1686898658.628017][12740:12742] CHIP:DMG: AttributeReportIBs = + [1686898658.628042][12740:12742] CHIP:DMG: [ + [1686898658.628051][12740:12742] CHIP:DMG: AttributeReportIB = + [1686898658.628072][12740:12742] CHIP:DMG: { + [1686898658.628082][12740:12742] CHIP:DMG: AttributeDataIB = + [1686898658.628094][12740:12742] CHIP:DMG: { + [1686898658.628107][12740:12742] CHIP:DMG: DataVersion = 0x68385039, + [1686898658.628121][12740:12742] CHIP:DMG: AttributePathIB = + [1686898658.628134][12740:12742] CHIP:DMG: { + [1686898658.628148][12740:12742] CHIP:DMG: Endpoint = 0x0, + [1686898658.628161][12740:12742] CHIP:DMG: Cluster = 0x2c, + [1686898658.628173][12740:12742] CHIP:DMG: Attribute = 0x0000_0001, + [1686898658.628183][12740:12742] CHIP:DMG: } + [1686898658.628198][12740:12742] CHIP:DMG: + [1686898658.628211][12740:12742] CHIP:DMG: Data = 3, + [1686898658.628226][12740:12742] CHIP:DMG: }, + [1686898658.628243][12740:12742] CHIP:DMG: + [1686898658.628252][12740:12742] CHIP:DMG: }, + [1686898658.628266][12740:12742] CHIP:DMG: + [1686898658.628275][12740:12742] CHIP:DMG: ], + [1686898658.628293][12740:12742] CHIP:DMG: + [1686898658.628304][12740:12742] CHIP:DMG: SuppressResponse = true, + [1686898658.628312][12740:12742] CHIP:DMG: InteractionModelRevision = 1 + [1686898658.628319][12740:12742] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 4 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 4 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898760.973271][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686898760.973274][12411:12411] CHIP:DMG: { + [1686898760.973277][12411:12411] CHIP:DMG: suppressResponse = false, + [1686898760.973282][12411:12411] CHIP:DMG: timedRequest = false, + [1686898760.973285][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686898760.973291][12411:12411] CHIP:DMG: [ + [1686898760.973294][12411:12411] CHIP:DMG: AttributeDataIB = + [1686898760.973299][12411:12411] CHIP:DMG: { + [1686898760.973301][12411:12411] CHIP:DMG: AttributePathIB = + [1686898760.973308][12411:12411] CHIP:DMG: { + [1686898760.973311][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686898760.973315][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686898760.973317][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686898760.973320][12411:12411] CHIP:DMG: } + [1686898760.973326][12411:12411] CHIP:DMG: + [1686898760.973331][12411:12411] CHIP:DMG: Data = 4, + [1686898760.973335][12411:12411] CHIP:DMG: }, + [1686898760.973340][12411:12411] CHIP:DMG: + [1686898760.973342][12411:12411] CHIP:DMG: ], + + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 4 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898820.179173][12799:12801] CHIP:DMG: ReportDataMessage = + [1686898820.179178][12799:12801] CHIP:DMG: { + [1686898820.179180][12799:12801] CHIP:DMG: AttributeReportIBs = + [1686898820.179185][12799:12801] CHIP:DMG: [ + [1686898820.179188][12799:12801] CHIP:DMG: AttributeReportIB = + [1686898820.179193][12799:12801] CHIP:DMG: { + [1686898820.179196][12799:12801] CHIP:DMG: AttributeDataIB = + [1686898820.179200][12799:12801] CHIP:DMG: { + [1686898820.179203][12799:12801] CHIP:DMG: DataVersion = 0x6838503a, + [1686898820.179206][12799:12801] CHIP:DMG: AttributePathIB = + [1686898820.179209][12799:12801] CHIP:DMG: { + [1686898820.179213][12799:12801] CHIP:DMG: Endpoint = 0x0, + [1686898820.179217][12799:12801] CHIP:DMG: Cluster = 0x2c, + [1686898820.179220][12799:12801] CHIP:DMG: Attribute = 0x0000_0001, + [1686898820.179223][12799:12801] CHIP:DMG: } + [1686898820.179226][12799:12801] CHIP:DMG: + [1686898820.179231][12799:12801] CHIP:DMG: Data = 4, + [1686898820.179235][12799:12801] CHIP:DMG: }, + [1686898820.179239][12799:12801] CHIP:DMG: + [1686898820.179241][12799:12801] CHIP:DMG: }, + [1686898820.179246][12799:12801] CHIP:DMG: + [1686898820.179248][12799:12801] CHIP:DMG: ], + [1686898820.179253][12799:12801] CHIP:DMG: + [1686898820.179255][12799:12801] CHIP:DMG: SuppressResponse = true, + [1686898820.179258][12799:12801] CHIP:DMG: InteractionModelRevision = 1 + [1686898820.179260][12799:12801] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 5 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 5 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898866.001997][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686898866.002000][12411:12411] CHIP:DMG: { + [1686898866.002002][12411:12411] CHIP:DMG: suppressResponse = false, + [1686898866.002004][12411:12411] CHIP:DMG: timedRequest = false, + [1686898866.002007][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686898866.002012][12411:12411] CHIP:DMG: [ + [1686898866.002014][12411:12411] CHIP:DMG: AttributeDataIB = + [1686898866.002018][12411:12411] CHIP:DMG: { + [1686898866.002021][12411:12411] CHIP:DMG: AttributePathIB = + [1686898866.002025][12411:12411] CHIP:DMG: { + [1686898866.002029][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686898866.002032][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686898866.002036][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686898866.002039][12411:12411] CHIP:DMG: } + [1686898866.002042][12411:12411] CHIP:DMG: + [1686898866.002046][12411:12411] CHIP:DMG: Data = 5, + [1686898866.002048][12411:12411] CHIP:DMG: }, + [1686898866.002052][12411:12411] CHIP:DMG: + [1686898866.002055][12411:12411] CHIP:DMG: ], + + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 5 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898936.936445][12826:12828] CHIP:DMG: ReportDataMessage = + [1686898936.936449][12826:12828] CHIP:DMG: { + [1686898936.936452][12826:12828] CHIP:DMG: AttributeReportIBs = + [1686898936.936458][12826:12828] CHIP:DMG: [ + [1686898936.936461][12826:12828] CHIP:DMG: AttributeReportIB = + [1686898936.936466][12826:12828] CHIP:DMG: { + [1686898936.936468][12826:12828] CHIP:DMG: AttributeDataIB = + [1686898936.936473][12826:12828] CHIP:DMG: { + [1686898936.936478][12826:12828] CHIP:DMG: DataVersion = 0x6838503b, + [1686898936.936482][12826:12828] CHIP:DMG: AttributePathIB = + [1686898936.936487][12826:12828] CHIP:DMG: { + [1686898936.936492][12826:12828] CHIP:DMG: Endpoint = 0x0, + [1686898936.936496][12826:12828] CHIP:DMG: Cluster = 0x2c, + [1686898936.936501][12826:12828] CHIP:DMG: Attribute = 0x0000_0001, + [1686898936.936505][12826:12828] CHIP:DMG: } + [1686898936.936510][12826:12828] CHIP:DMG: + [1686898936.936515][12826:12828] CHIP:DMG: Data = 5, + [1686898936.936518][12826:12828] CHIP:DMG: }, + [1686898936.936524][12826:12828] CHIP:DMG: + [1686898936.936528][12826:12828] CHIP:DMG: }, + [1686898936.936533][12826:12828] CHIP:DMG: + [1686898936.936536][12826:12828] CHIP:DMG: ], + [1686898936.936542][12826:12828] CHIP:DMG: + [1686898936.936546][12826:12828] CHIP:DMG: SuppressResponse = true, + [1686898936.936549][12826:12828] CHIP:DMG: InteractionModelRevision = 1 + [1686898936.936552][12826:12828] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 6 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 6 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686898992.461667][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686898992.461679][12411:12411] CHIP:DMG: { + [1686898992.461690][12411:12411] CHIP:DMG: suppressResponse = false, + [1686898992.461702][12411:12411] CHIP:DMG: timedRequest = false, + [1686898992.461716][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686898992.461733][12411:12411] CHIP:DMG: [ + [1686898992.461742][12411:12411] CHIP:DMG: AttributeDataIB = + [1686898992.461755][12411:12411] CHIP:DMG: { + [1686898992.461765][12411:12411] CHIP:DMG: AttributePathIB = + [1686898992.461778][12411:12411] CHIP:DMG: { + [1686898992.461794][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686898992.461806][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686898992.461825][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686898992.461835][12411:12411] CHIP:DMG: } + [1686898992.461849][12411:12411] CHIP:DMG: + [1686898992.461862][12411:12411] CHIP:DMG: Data = 6, + [1686898992.461872][12411:12411] CHIP:DMG: }, + [1686898992.461887][12411:12411] CHIP:DMG: + [1686898992.461896][12411:12411] CHIP:DMG: ], + + + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 6 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899048.031912][12884:12886] CHIP:DMG: ReportDataMessage = + [1686899048.031916][12884:12886] CHIP:DMG: { + [1686899048.031918][12884:12886] CHIP:DMG: AttributeReportIBs = + [1686899048.031924][12884:12886] CHIP:DMG: [ + [1686899048.031927][12884:12886] CHIP:DMG: AttributeReportIB = + [1686899048.031932][12884:12886] CHIP:DMG: { + [1686899048.031934][12884:12886] CHIP:DMG: AttributeDataIB = + [1686899048.031940][12884:12886] CHIP:DMG: { + [1686899048.031943][12884:12886] CHIP:DMG: DataVersion = 0x6838503c, + [1686899048.031946][12884:12886] CHIP:DMG: AttributePathIB = + [1686899048.031950][12884:12886] CHIP:DMG: { + [1686899048.031953][12884:12886] CHIP:DMG: Endpoint = 0x0, + [1686899048.031957][12884:12886] CHIP:DMG: Cluster = 0x2c, + [1686899048.031961][12884:12886] CHIP:DMG: Attribute = 0x0000_0001, + [1686899048.031964][12884:12886] CHIP:DMG: } + [1686899048.031969][12884:12886] CHIP:DMG: + [1686899048.031975][12884:12886] CHIP:DMG: Data = 6, + [1686899048.031979][12884:12886] CHIP:DMG: }, + [1686899048.031983][12884:12886] CHIP:DMG: + [1686899048.031985][12884:12886] CHIP:DMG: }, + [1686899048.031989][12884:12886] CHIP:DMG: + [1686899048.031992][12884:12886] CHIP:DMG: ], + [1686899048.031996][12884:12886] CHIP:DMG: + [1686899048.031999][12884:12886] CHIP:DMG: SuppressResponse = true, + [1686899048.032002][12884:12886] CHIP:DMG: InteractionModelRevision = 1 + [1686899048.032004][12884:12886] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 7 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 7 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899076.211353][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686899076.211357][12411:12411] CHIP:DMG: { + [1686899076.211360][12411:12411] CHIP:DMG: suppressResponse = false, + [1686899076.211364][12411:12411] CHIP:DMG: timedRequest = false, + [1686899076.211368][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686899076.211374][12411:12411] CHIP:DMG: [ + [1686899076.211377][12411:12411] CHIP:DMG: AttributeDataIB = + [1686899076.211382][12411:12411] CHIP:DMG: { + [1686899076.211386][12411:12411] CHIP:DMG: AttributePathIB = + [1686899076.211391][12411:12411] CHIP:DMG: { + [1686899076.211396][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686899076.211400][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686899076.211405][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686899076.211409][12411:12411] CHIP:DMG: } + [1686899076.211417][12411:12411] CHIP:DMG: + [1686899076.211425][12411:12411] CHIP:DMG: Data = 7, + [1686899076.211430][12411:12411] CHIP:DMG: }, + [1686899076.211435][12411:12411] CHIP:DMG: + [1686899076.211438][12411:12411] CHIP:DMG: ], + + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 7 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899229.897526][12933:12935] CHIP:DMG: ReportDataMessage = + [1686899229.897531][12933:12935] CHIP:DMG: { + [1686899229.897534][12933:12935] CHIP:DMG: AttributeReportIBs = + [1686899229.897542][12933:12935] CHIP:DMG: [ + [1686899229.897545][12933:12935] CHIP:DMG: AttributeReportIB = + [1686899229.897552][12933:12935] CHIP:DMG: { + [1686899229.897557][12933:12935] CHIP:DMG: AttributeDataIB = + [1686899229.897563][12933:12935] CHIP:DMG: { + [1686899229.897569][12933:12935] CHIP:DMG: DataVersion = 0x6838503e, + [1686899229.897574][12933:12935] CHIP:DMG: AttributePathIB = + [1686899229.897580][12933:12935] CHIP:DMG: { + [1686899229.897585][12933:12935] CHIP:DMG: Endpoint = 0x0, + [1686899229.897590][12933:12935] CHIP:DMG: Cluster = 0x2c, + [1686899229.897596][12933:12935] CHIP:DMG: Attribute = 0x0000_0001, + [1686899229.897600][12933:12935] CHIP:DMG: } + [1686899229.897606][12933:12935] CHIP:DMG: + [1686899229.897611][12933:12935] CHIP:DMG: Data = 7, + [1686899229.897615][12933:12935] CHIP:DMG: }, + [1686899229.897621][12933:12935] CHIP:DMG: + [1686899229.897624][12933:12935] CHIP:DMG: }, + [1686899229.897630][12933:12935] CHIP:DMG: + [1686899229.897634][12933:12935] CHIP:DMG: ], + [1686899229.897640][12933:12935] CHIP:DMG: + [1686899229.897644][12933:12935] CHIP:DMG: SuppressResponse = true, + [1686899229.897648][12933:12935] CHIP:DMG: InteractionModelRevision = 1 + [1686899229.897651][12933:12935] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 8 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 8 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899312.894890][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686899312.894893][12411:12411] CHIP:DMG: { + [1686899312.894896][12411:12411] CHIP:DMG: suppressResponse = false, + [1686899312.894898][12411:12411] CHIP:DMG: timedRequest = false, + [1686899312.894901][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686899312.894905][12411:12411] CHIP:DMG: [ + [1686899312.894908][12411:12411] CHIP:DMG: AttributeDataIB = + [1686899312.894911][12411:12411] CHIP:DMG: { + [1686899312.894914][12411:12411] CHIP:DMG: AttributePathIB = + [1686899312.894918][12411:12411] CHIP:DMG: { + [1686899312.894921][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686899312.894924][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686899312.894927][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686899312.894930][12411:12411] CHIP:DMG: } + [1686899312.894933][12411:12411] CHIP:DMG: + [1686899312.894938][12411:12411] CHIP:DMG: Data = 8, + [1686899312.894940][12411:12411] CHIP:DMG: }, + [1686899312.894944][12411:12411] CHIP:DMG: + [1686899312.894946][12411:12411] CHIP:DMG: ], + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 8 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899353.959365][12994:12996] CHIP:DMG: ReportDataMessage = + [1686899353.959370][12994:12996] CHIP:DMG: { + [1686899353.959374][12994:12996] CHIP:DMG: AttributeReportIBs = + [1686899353.959381][12994:12996] CHIP:DMG: [ + [1686899353.959384][12994:12996] CHIP:DMG: AttributeReportIB = + [1686899353.959391][12994:12996] CHIP:DMG: { + [1686899353.959395][12994:12996] CHIP:DMG: AttributeDataIB = + [1686899353.959400][12994:12996] CHIP:DMG: { + [1686899353.959404][12994:12996] CHIP:DMG: DataVersion = 0x6838503f, + [1686899353.959409][12994:12996] CHIP:DMG: AttributePathIB = + [1686899353.959413][12994:12996] CHIP:DMG: { + [1686899353.959418][12994:12996] CHIP:DMG: Endpoint = 0x0, + [1686899353.959423][12994:12996] CHIP:DMG: Cluster = 0x2c, + [1686899353.959428][12994:12996] CHIP:DMG: Attribute = 0x0000_0001, + [1686899353.959433][12994:12996] CHIP:DMG: } + [1686899353.959438][12994:12996] CHIP:DMG: + [1686899353.959443][12994:12996] CHIP:DMG: Data = 8, + [1686899353.959447][12994:12996] CHIP:DMG: }, + [1686899353.959455][12994:12996] CHIP:DMG: + [1686899353.959459][12994:12996] CHIP:DMG: }, + [1686899353.959465][12994:12996] CHIP:DMG: + [1686899353.959469][12994:12996] CHIP:DMG: ], + [1686899353.959476][12994:12996] CHIP:DMG: + [1686899353.959480][12994:12996] CHIP:DMG: SuppressResponse = true, + [1686899353.959484][12994:12996] CHIP:DMG: InteractionModelRevision = 1 + [1686899353.959488][12994:12996] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 9 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 9 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899403.683238][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686899403.683243][12411:12411] CHIP:DMG: { + [1686899403.683246][12411:12411] CHIP:DMG: suppressResponse = false, + [1686899403.683250][12411:12411] CHIP:DMG: timedRequest = false, + [1686899403.683254][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686899403.683258][12411:12411] CHIP:DMG: [ + [1686899403.683261][12411:12411] CHIP:DMG: AttributeDataIB = + [1686899403.683265][12411:12411] CHIP:DMG: { + [1686899403.683267][12411:12411] CHIP:DMG: AttributePathIB = + [1686899403.683271][12411:12411] CHIP:DMG: { + [1686899403.683274][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686899403.683277][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686899403.683281][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686899403.683283][12411:12411] CHIP:DMG: } + [1686899403.683287][12411:12411] CHIP:DMG: + [1686899403.683290][12411:12411] CHIP:DMG: Data = 9, + [1686899403.683293][12411:12411] CHIP:DMG: }, + [1686899403.683298][12411:12411] CHIP:DMG: + [1686899403.683300][12411:12411] CHIP:DMG: ], + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 9 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899465.353959][13019:13021] CHIP:DMG: ReportDataMessage = + [1686899465.353962][13019:13021] CHIP:DMG: { + [1686899465.353964][13019:13021] CHIP:DMG: AttributeReportIBs = + [1686899465.353970][13019:13021] CHIP:DMG: [ + [1686899465.353972][13019:13021] CHIP:DMG: AttributeReportIB = + [1686899465.353978][13019:13021] CHIP:DMG: { + [1686899465.353982][13019:13021] CHIP:DMG: AttributeDataIB = + [1686899465.353987][13019:13021] CHIP:DMG: { + [1686899465.353992][13019:13021] CHIP:DMG: DataVersion = 0x68385040, + [1686899465.353997][13019:13021] CHIP:DMG: AttributePathIB = + [1686899465.354001][13019:13021] CHIP:DMG: { + [1686899465.354006][13019:13021] CHIP:DMG: Endpoint = 0x0, + [1686899465.354011][13019:13021] CHIP:DMG: Cluster = 0x2c, + [1686899465.354014][13019:13021] CHIP:DMG: Attribute = 0x0000_0001, + [1686899465.354019][13019:13021] CHIP:DMG: } + [1686899465.354024][13019:13021] CHIP:DMG: + [1686899465.354030][13019:13021] CHIP:DMG: Data = 9, + [1686899465.354034][13019:13021] CHIP:DMG: }, + [1686899465.354039][13019:13021] CHIP:DMG: + [1686899465.354043][13019:13021] CHIP:DMG: }, + [1686899465.354049][13019:13021] CHIP:DMG: + [1686899465.354053][13019:13021] CHIP:DMG: ], + [1686899465.354059][13019:13021] CHIP:DMG: + [1686899465.354063][13019:13021] CHIP:DMG: SuppressResponse = true, + [1686899465.354066][13019:13021] CHIP:DMG: InteractionModelRevision = 1 + [1686899465.354069][13019:13021] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 10 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 10 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899526.841349][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686899526.841354][12411:12411] CHIP:DMG: { + [1686899526.841357][12411:12411] CHIP:DMG: suppressResponse = false, + [1686899526.841361][12411:12411] CHIP:DMG: timedRequest = false, + [1686899526.841364][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686899526.841370][12411:12411] CHIP:DMG: [ + [1686899526.841374][12411:12411] CHIP:DMG: AttributeDataIB = + [1686899526.841379][12411:12411] CHIP:DMG: { + [1686899526.841382][12411:12411] CHIP:DMG: AttributePathIB = + [1686899526.841387][12411:12411] CHIP:DMG: { + [1686899526.841392][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686899526.841396][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686899526.841401][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686899526.841405][12411:12411] CHIP:DMG: } + [1686899526.841410][12411:12411] CHIP:DMG: + [1686899526.841415][12411:12411] CHIP:DMG: Data = 10, + [1686899526.841419][12411:12411] CHIP:DMG: }, + [1686899526.841425][12411:12411] CHIP:DMG: + [1686899526.841429][12411:12411] CHIP:DMG: ], + + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 10 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899615.016743][13059:13061] CHIP:DMG: ReportDataMessage = + [1686899615.016748][13059:13061] CHIP:DMG: { + [1686899615.016751][13059:13061] CHIP:DMG: AttributeReportIBs = + [1686899615.016759][13059:13061] CHIP:DMG: [ + [1686899615.016762][13059:13061] CHIP:DMG: AttributeReportIB = + [1686899615.016769][13059:13061] CHIP:DMG: { + [1686899615.016773][13059:13061] CHIP:DMG: AttributeDataIB = + [1686899615.016777][13059:13061] CHIP:DMG: { + [1686899615.016781][13059:13061] CHIP:DMG: DataVersion = 0x68385041, + [1686899615.016786][13059:13061] CHIP:DMG: AttributePathIB = + [1686899615.016791][13059:13061] CHIP:DMG: { + [1686899615.016796][13059:13061] CHIP:DMG: Endpoint = 0x0, + [1686899615.016801][13059:13061] CHIP:DMG: Cluster = 0x2c, + [1686899615.016806][13059:13061] CHIP:DMG: Attribute = 0x0000_0001, + [1686899615.016810][13059:13061] CHIP:DMG: } + [1686899615.016816][13059:13061] CHIP:DMG: + [1686899615.016821][13059:13061] CHIP:DMG: Data = 10, + [1686899615.016824][13059:13061] CHIP:DMG: }, + [1686899615.016830][13059:13061] CHIP:DMG: + [1686899615.016833][13059:13061] CHIP:DMG: }, + [1686899615.016839][13059:13061] CHIP:DMG: + [1686899615.016842][13059:13061] CHIP:DMG: ], + [1686899615.016848][13059:13061] CHIP:DMG: + [1686899615.016852][13059:13061] CHIP:DMG: SuppressResponse = true, + [1686899615.016856][13059:13061] CHIP:DMG: InteractionModelRevision = 1 + [1686899615.016859][13059:13061] CHIP:DMG: } + + ./chip-tool timeformatlocalization write active-calendar-type 11 1 0 + + Verify TH receives the ActiveCalendarType attribute write command and updates the value to 11 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899658.971405][12411:12411] CHIP:DMG: WriteRequestMessage = + [1686899658.971421][12411:12411] CHIP:DMG: { + [1686899658.971437][12411:12411] CHIP:DMG: suppressResponse = false, + [1686899658.971450][12411:12411] CHIP:DMG: timedRequest = false, + [1686899658.971459][12411:12411] CHIP:DMG: AttributeDataIBs = + [1686899658.971477][12411:12411] CHIP:DMG: [ + [1686899658.971493][12411:12411] CHIP:DMG: AttributeDataIB = + [1686899658.971510][12411:12411] CHIP:DMG: { + [1686899658.971520][12411:12411] CHIP:DMG: AttributePathIB = + [1686899658.971534][12411:12411] CHIP:DMG: { + [1686899658.971547][12411:12411] CHIP:DMG: Endpoint = 0x0, + [1686899658.971560][12411:12411] CHIP:DMG: Cluster = 0x2c, + [1686899658.971575][12411:12411] CHIP:DMG: Attribute = 0x0000_0001, + [1686899658.971586][12411:12411] CHIP:DMG: } + [1686899658.971600][12411:12411] CHIP:DMG: + [1686899658.971613][12411:12411] CHIP:DMG: Data = 11, + [1686899658.971624][12411:12411] CHIP:DMG: }, + [1686899658.971637][12411:12411] CHIP:DMG: + [1686899658.971646][12411:12411] CHIP:DMG: ], + + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 11 on the TH(all-clusters-app) Log and and below is the sample log provided for raspi platform: + + [1686899707.460046][13108:13110] CHIP:DMG: ReportDataMessage = + [1686899707.460059][13108:13110] CHIP:DMG: { + [1686899707.460066][13108:13110] CHIP:DMG: AttributeReportIBs = + [1686899707.460087][13108:13110] CHIP:DMG: [ + [1686899707.460097][13108:13110] CHIP:DMG: AttributeReportIB = + [1686899707.460116][13108:13110] CHIP:DMG: { + [1686899707.460132][13108:13110] CHIP:DMG: AttributeDataIB = + [1686899707.460148][13108:13110] CHIP:DMG: { + [1686899707.460168][13108:13110] CHIP:DMG: DataVersion = 0x68385042, + [1686899707.460183][13108:13110] CHIP:DMG: AttributePathIB = + [1686899707.460202][13108:13110] CHIP:DMG: { + [1686899707.460221][13108:13110] CHIP:DMG: Endpoint = 0x0, + [1686899707.460239][13108:13110] CHIP:DMG: Cluster = 0x2c, + [1686899707.460259][13108:13110] CHIP:DMG: Attribute = 0x0000_0001, + [1686899707.460276][13108:13110] CHIP:DMG: } + [1686899707.460297][13108:13110] CHIP:DMG: + [1686899707.460318][13108:13110] CHIP:DMG: Data = 11, + [1686899707.460333][13108:13110] CHIP:DMG: }, + [1686899707.460352][13108:13110] CHIP:DMG: + [1686899707.460368][13108:13110] CHIP:DMG: }, + [1686899707.460391][13108:13110] CHIP:DMG: + [1686899707.460405][13108:13110] CHIP:DMG: ], + [1686899707.460434][13108:13110] CHIP:DMG: + [1686899707.460450][13108:13110] CHIP:DMG: SuppressResponse = true, + [1686899707.460467][13108:13110] CHIP:DMG: InteractionModelRevision = 1 + [1686899707.460480][13108:13110] CHIP:DMG: } disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_LTIME_3_1.yaml b/src/app/tests/suites/certification/Test_TC_LTIME_3_1.yaml index c96dc0497675a4..47affb98c57d0c 100644 --- a/src/app/tests/suites/certification/Test_TC_LTIME_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LTIME_3_1.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 4.3.1. [TC-LTIME-3.1] Read and Write Time Format Localization Cluster + 117.3.1. [TC-LTIME-3.1] Read and Write Time Format Localization Cluster Attributes [DUT as Server] PICS: @@ -26,22 +26,25 @@ config: endpoint: 0 tests: - - label: "TH reads HourFormat attribute from DUT" + - label: "Step 1: TH reads HourFormat attribute from DUT" PICS: LTIME.S.A0000 verification: | ./chip-tool timeformatlocalization read hour-format 1 0 - Verify that HourFormat attribute value is of Enum8(0, 1) datatype on TH(chip-tool) log: + + Verify that HourFormat attribute value is of Enum8(0, 1) datatype on TH(chip-tool) log and below is the sample log provided for raspi platform, here "HourFormat" value is 0. [1651191944157] [13649:182326] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0000 DataVersion: 3316530441 [1651191944158] [13649:182326] CHIP: [TOO] HourFormat: 0 disabled: true - - label: "If (LTIME.S.A0000.12HR) TH writes 0 to HourFormat attribute" + - label: + "Step 2: If (LTIME.S.A0000.12HR) TH writes 0 to HourFormat attribute" PICS: LTIME.S.A0000.12HR verification: | ./chip-tool timeformatlocalization write hour-format 0 1 0 - Verify that DUT sends a success response TH(chip-tool) log: + Verify that DUT sends a success response TH(chip-tool) log and below is the sample log provided for raspi platform: + [1651192743588] [14026:192208] CHIP: [DMG] WriteResponseMessage = [1651192743588] [14026:192208] CHIP: [DMG] { [1651192743588] [14026:192208] CHIP: [DMG] AttributeStatusIBs = @@ -72,17 +75,21 @@ tests: PICS: LTIME.S.A0000 verification: | ./chip-tool timeformatlocalization read hour-format 1 0 - Verify that HourFormat attribute value changed as 0 on TH(chip-tool) log: + + Verify that HourFormat attribute value is changed to 0 on TH(chip-tool) log and below is the sample log provided for raspi platform: + [1651193120969] [14169:196901] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0000 DataVersion: 3316530443 [1651193120969] [14169:196901] CHIP: [TOO] HourFormat: 0 disabled: true - - label: "If (LTIME.S.A0000.24HR) TH writes 1 to HourFormat attribute" + - label: + "Step 4: If (LTIME.S.A0000.24HR) TH writes 1 to HourFormat attribute" PICS: LTIME.S.A0000.24HR verification: | ./chip-tool timeformatlocalization write hour-format 1 1 0 - Verify that DUT sends a success response on TH(chip-tool) log: + Verify that DUT sends a success response on TH(chip-tool) log and and below is the sample log provided for raspi platform: + [1651193043035] [14140:195730] CHIP: [DMG] WriteResponseMessage = [1651193043035] [14140:195730] CHIP: [DMG] { [1651193043035] [14140:195730] CHIP: [DMG] AttributeStatusIBs = @@ -110,29 +117,35 @@ tests: [1651193043036] [14140:195730] CHIP: [DMG] WriteClient moving to [AwaitingDe] disabled: true - - label: "TH reads HourFormat attribute" + - label: "Step 5: TH reads HourFormat attribute" PICS: LTIME.S.A0000 verification: | ./chip-tool timeformatlocalization read hour-format 1 0 - Verify that HourFormat attribute read request is successful and value changed as 1 on TH(chip-tool) log: + + Verify that HourFormat attribute read request is successful and value is changed to 1 on TH(chip-tool) log and below is the sample log provided for raspi platform: + [1651193120969] [14169:196901] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0000 DataVersion: 3316530443 [1651193120969] [14169:196901] CHIP: [TOO] HourFormat: 1 disabled: true - - label: "TH reads ActiveCalendarType attribute from DUT" + - label: "Step 6: TH reads ActiveCalendarType attribute from DUT" PICS: LTIME.S.A0001 verification: | ./chip-tool timeformatlocalization read active-calendar-type 1 0 - Verify that ActiveCalendarType attribute read request is successful and value is in between 0 to 11 on TH(chip-tool) log: + + Verify that ActiveCalendarType attribute read request is successful and value is in between 0 to 11 on TH(chip-tool) log and below is the sample log provided for raspi platform: + [1651193250602] [14215:198406] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0001 DataVersion: 3316530443 [1651193250602] [14215:198406] CHIP: [TOO] ActiveCalendarType: 0 disabled: true - - label: "TH reads SupportedCalendarTypes attribute from DUT" + - label: "Step 7: TH reads SupportedCalendarTypes attribute from DUT" PICS: LTIME.S.A0002 verification: | ./chip-tool timeformatlocalization read supported-calendar-types 1 0 - Verify that SupportedCalendarTypes attribute read request is successful and value is in between 0 to 11 on TH(chip-tool) log: + + Verify that SupportedCalendarTypes attribute read request is successful and value is in between 0 to 11 on TH(chip-tool) log and below is the sample log provided for raspi platform: + [1651194334793] [14653:210647] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0002 DataVersion: 3316530443 [1651194334794] [14653:210647] CHIP: [TOO] SupportedCalendarTypes: 12 entries [1651194334794] [14653:210647] CHIP: [TOO] [1]: 0 @@ -150,13 +163,14 @@ tests: disabled: true - label: - "TH writes value in PIXIT.LTIME.SCT to ActiveCalendarType attribute, - followed by reading the ActiveCalendarType attribute value" + "Step 8: TH writes value in PIXIT.LTIME.SCT to ActiveCalendarType + attribute, followed by reading the ActiveCalendarType attribute value" PICS: LTIME.S.A0001 verification: | ./chip-tool timeformatlocalization write active-calendar-type 0 1 0 - Verify that DUT sends a success response on TH(chip-tool) log: + Verify that DUT sends a success response on TH(chip-tool) log and below is the sample log provided for raspi platform: + [1651194449245] [14699:212201] CHIP: [DMG] WriteResponseMessage = [1651194449245] [14699:212201] CHIP: [DMG] { [1651194449245] [14699:212201] CHIP: [DMG] AttributeStatusIBs = @@ -183,7 +197,8 @@ tests: [1651194449246] [14699:212201] CHIP: [DMG] } ./chip-tool timeformatlocalization read active-calendar-type 1 0 - Verify that ActiveCalendarType attribute value changed as 0 on TH(chip-tool) log: + + Verify that ActiveCalendarType attribute value is changed to 0 on TH(chip-tool) log and below is the sample log provided for raspi platform: [1658149303.936031][9227:9232] CHIP:DMG: } [1658149303.936185][9227:9232] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0001 DataVersion: 2364893025 @@ -191,17 +206,196 @@ tests: [1658149303.936385][9227:9232] CHIP:EM: Sending Standalone Ack for MessageCounter:70392442 on exchange 10288i disabled: true - - label: "Repeat step 8 for all the values in PIXIT.LTIME.SCT" + - label: "Step 9: Repeat step 8 for all the values in PIXIT.LTIME.SCT" PICS: LTIME.S.A0001 verification: | Repeat the test step 8 for below mentioned values 1, 2,3, 4, 5, 6,7, 8, 9,10 and 11 and verify that TH receives the write command and updates the respective value. Verify that TH reads ActiveCalendarType attribute value and it is the same as the value that was set before + + + ./chip-tool timeformatlocalization write active-calendar-type 2 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685530839.323951][17790:17790] CHIP:DMG: StatusIB = + [1685530839.323956][17790:17790] CHIP:DMG: { + [1685530839.323961][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685530839.323965][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 2 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685530893.728748][17790:17790] CHIP:DMG: + [1685530893.728752][17790:17790] CHIP:DMG: Data = 2, + [1685530893.728755][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization write active-calendar-type 3 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685530930.699453][17790:17790] CHIP:DMG: + [1685530930.699457][17790:17790] CHIP:DMG: StatusIB = + [1685530930.699462][17790:17790] CHIP:DMG: { + [1685530930.699467][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685530930.699472][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 3 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685530966.990434][17790:17790] CHIP:DMG: } + [1685530966.990439][17790:17790] CHIP:DMG: + [1685530966.990444][17790:17790] CHIP:DMG: Data = 3, + [1685530966.990448][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization write active-calendar-type 4 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531105.731791][17790:17790] CHIP:DMG: StatusIB = + [1685531105.731794][17790:17790] CHIP:DMG: { + [1685531105.731797][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685531105.731800][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 4 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531136.531053][17790:17790] CHIP:DMG: } + [1685531136.531059][17790:17790] CHIP:DMG: + [1685531136.531064][17790:17790] CHIP:DMG: Data = 4, + [1685531136.531069][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization write active-calendar-type 5 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531255.834498][17790:17790] CHIP:DMG: StatusIB = + [1685531255.834501][17790:17790] CHIP:DMG: { + [1685531255.834504][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685531255.834507][17790:17790] CHIP:DMG: }, + [1685531255.834510][17790:17790] CHIP:DMG: + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 5 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531310.536085][17790:17790] CHIP:DMG: + [1685531310.536091][17790:17790] CHIP:DMG: Data = 5, + [1685531310.536095][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization write active-calendar-type 6 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531399.287320][17790:17790] CHIP:DMG: StatusIB = + [1685531399.287323][17790:17790] CHIP:DMG: { + [1685531399.287326][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685531399.287329][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 6 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531511.587292][17790:17790] CHIP:DMG: + [1685531511.587298][17790:17790] CHIP:DMG: Data = 6, + [1685531511.587302][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization write active-calendar-type 7 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531629.563773][17790:17790] CHIP:DMG: { + [1685531629.563776][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685531629.563779][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 7 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531645.726844][17790:17790] CHIP:DMG: } + [1685531645.726847][17790:17790] CHIP:DMG: + [1685531645.726851][17790:17790] CHIP:DMG: Data = 7, + [1685531645.726854][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization write active-calendar-type 8 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531675.078136][17790:17790] CHIP:DMG: StatusIB = + [1685531675.078140][17790:17790] CHIP:DMG: { + [1685531675.078144][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685531675.078147][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 8 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531710.831092][17790:17790] CHIP:DMG: } + [1685531710.831096][17790:17790] CHIP:DMG: + [1685531710.831099][17790:17790] CHIP:DMG: Data = 8, + [1685531710.831103][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization write active-calendar-type 9 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531741.848621][17790:17790] CHIP:DMG: { + [1685531741.848624][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685531741.848626][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 9 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531774.495981][17790:17790] CHIP:DMG: } + [1685531774.495985][17790:17790] CHIP:DMG: + [1685531774.495989][17790:17790] CHIP:DMG: Data = 9, + [1685531774.495992][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization write active-calendar-type 10 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531804.062762][17790:17790] CHIP:DMG: StatusIB = + [1685531804.062767][17790:17790] CHIP:DMG: { + [1685531804.062770][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685531804.062773][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 10 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531853.080080][17790:17790] CHIP:DMG: } + [1685531853.080085][17790:17790] CHIP:DMG: + [1685531853.080089][17790:17790] CHIP:DMG: Data = 10, + [1685531853.080092][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization write active-calendar-type 11 1 0 + + Verify that write request is successful on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531890.505936][17790:17790] CHIP:DMG: StatusIB = + [1685531890.505940][17790:17790] CHIP:DMG: { + [1685531890.505943][17790:17790] CHIP:DMG: status = 0x00 (SUCCESS), + [1685531890.505946][17790:17790] CHIP:DMG: }, + + ./chip-tool timeformatlocalization read active-calendar-type 1 0 + + Verify ActiveCalendarType attribute value is 11 on the TH(chip-tool) Log and and below is the sample log provided for raspi platform: + + [1685531928.300701][17790:17790] CHIP:DMG: + [1685531928.300705][17790:17790] CHIP:DMG: Data = 11, + [1685531928.300709][17790:17790] CHIP:DMG: }, disabled: true - - label: "TH writes 50 to ActiveCalendarType attribute" + - label: "Step 10: TH writes 50 to ActiveCalendarType attribute" PICS: LTIME.S.A0001 verification: | ./chip-tool timeformatlocalization write active-calendar-type 50 1 0 - Verify that DUT sends a CONSTRAINT_ERROR response On TH(chip-tool) log: + + Verify that DUT sends a CONSTRAINT_ERROR response On TH(chip-tool) log and below is the sample log provided for raspi platform: + [1658742658.653019][3572:3577] CHIP:DMG: ], [1658742658.653047][3572:3577] CHIP:DMG: [1658742658.653071][3572:3577] CHIP:DMG: InteractionModelRevision = 1 @@ -211,11 +405,12 @@ tests: [1658742658.653254][3572:3577] CHIP:EM: Sending Standalone Ack for MessageCounter:51762667 on exchange 55831i disabled: true - - label: "TH writes 5 to HourFormat attribute" + - label: "Step 11: TH writes 5 to HourFormat attribute" PICS: LTIME.S.A0000 verification: | - ./chip-tool timeformatlocalization write hour-format 5 1 0 - Verify that DUT sends a CONSTRAINT_ERROR response On TH(chip-tool) log: + ./chip-tool timeformatlocalization write hour-format 5 1 0 + + Verify that DUT sends a CONSTRAINT_ERROR response On TH(chip-tool) log and below is the sample log provided for raspi platform: [1656934321.910991][6387:6392] CHIP:DMG: WriteResponseMessage = [1656934321.911025][6387:6392] CHIP:DMG: { diff --git a/src/app/tests/suites/certification/Test_TC_LVL_8_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_8_1.yaml index 0281b03225b594..7691c62dc07f7d 100644 --- a/src/app/tests/suites/certification/Test_TC_LVL_8_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_LVL_8_1.yaml @@ -30,8 +30,8 @@ tests: disabled: true - label: - "TH prompts the operator to make the DUT send one or more supported - commands from the Level Control cluster" + "Step 1: TH prompts the operator to make the DUT send one or more + supported commands from the Level Control cluster" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) diff --git a/src/app/tests/suites/certification/Test_TC_LWM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_LWM_1_1.yaml new file mode 100644 index 00000000000000..8d8d34d82f591b --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_LWM_1_1.yaml @@ -0,0 +1,97 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 253.1.1. [TC-LWM-1.1] Global attributes with DUT as Server + +PICS: + - LWM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute." + verification: | + Verify that the DUT response contains the ClusterRevision attribute and has the value 1. + disabled: true + + - label: "Step 3: TH reads from the DUT the FeatureMap attribute." + verification: | + Verify that the DUT response contains the FeatureMap attribute and have the following bit set: + + bit 0: SHALL be 1 if and only if LWM.S.F00(DEPONOFF) + disabled: true + + - label: "Step 4: TH reads from the DUT the AttributeList attribute." + verification: | + Verify that the DUT response contains the AttributeList attribute and have the list of supported attributes: + + The list SHALL include all the mandatory entries: + 0x0000, 0x0001, 0xfff8, 0xfff9, 0xfffa, 0xfffb, 0xfffc & 0xfffd. + + The list MAY include these optional entries: + - 0x0002: SHALL be included if and only if LWM.S.A0002(StartUpMode) + + The list include entries based on feature support: + + + 0x0003 SHALL be included if and only if LWM.S.F00(DEPONOFF) + + + and SHALL NOT be included otherwise. + + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) + + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true + + - label: "Step 5: TH reads from the DUT the AcceptedCommandList attribute." + verification: | + Verify that the DUT response contains the AcceptedCommandList attribute and have the list of Accepted Command: + The list SHALL include all the mandatory entries: + + 0x00 + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true + + - label: "Step 6: TH reads from the DUT the GeneratedCommandList attribute." + verification: | + Verify that the DUT response contains the GeneratedCommandList attribute and have the list of Generated Command: + The list SHALL include all the mandatory entries: + + 0x01 + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_LWM_1_2.yaml b/src/app/tests/suites/certification/Test_TC_LWM_1_2.yaml new file mode 100644 index 00000000000000..411340898b769b --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_LWM_1_2.yaml @@ -0,0 +1,75 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 183.1.2. [TC-LWM-1.2] Cluster attributes with DUT as Server + +PICS: + - LWM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: LWM.S.A0000 + verification: | + Verify that the DUT response contains a list of ModeOptionsStruct entries + + Verify that the list has at least one entry + + Verify that each ModeOptionsStruct entry has a unique Mode field value + + Verify that each ModeOptionsStruct entry has a unique Label field value + + Verify that each ModeOptionsStruct entry’s ModeTags field, if not empty, has: + the values of the Value fields that are not larger than 16 bits + + for each Value field: Is the mode tag value a defined common tag value ( Auto(0x0000), Quick(0x0001), Quiet(0x0002), LowNoise(0x0003), LowEnergy(0x0004), Vacation(0x0005), Min(0x0006), Max(0x0007), Night(0x0008), Day(0x0009)) or a defined cluster derived tag value ( Normal, Heavy, {T_LIGHT}) or in the MfgTags (0x8000 to 0xBFFF) range + + if the Value field is in the MfgTags (0x8000 to 0xBFFF) range, the TagName field is a string with a length between 1 and 64 + + + + Verify that at least one ModeOptionsStruct entry includes the Normal mode tag + + Save the Mode field values as supported_modes_dut + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 + verification: | + Verify that the DUT response contains an integer from supported_modes_dut + disabled: true + + - label: "Step 4: TH reads from the DUT the OnMode attribute." + PICS: LWM.S.A0003 + verification: | + Verify that the DUT response contains an integer from supported_modes_dut + disabled: true + + - label: "Step 5: TH reads from the DUT the StartUpMode attribute." + PICS: LWM.S.A0002 + verification: | + Verify that the DUT response contains an integer from supported_modes_dut + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_LWM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_LWM_2_1.yaml new file mode 100644 index 00000000000000..f980951d223a86 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_LWM_2_1.yaml @@ -0,0 +1,140 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 183.2.1. [TC-LWM-2.1] Change to Mode functionality with DUT as Server + +PICS: + - LWM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: LWM.S.A0000 + verification: | + Verify that the DUT response contains a list of ModeOptionsStruct entries + + Verify that the list has two or more entries + + Save the Mode field values as supported_modes_dut + disabled: true + + - label: "Step 2: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + + Select a value which is NOT in supported_modes_dut and save it as invalid_mode_th + disabled: true + + - label: + "Step 3: TH sends a ChangeToMode command to the DUT with NewMode set + to old_current_mode_dut" + PICS: LWM.S.C00.Rsp + verification: | + Verify that the DUT response contains a ChangeToModeResponse command w/ data fields: * Status, set to Success(0x00). + disabled: true + + - label: + "Step 4: Manually put the device in a state from which it will FAIL to + transition to PIXIT.LWM.MODE_CHANGE_FAIL" + verification: | + + disabled: true + + - label: "Step 5: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + disabled: true + + - label: + "Step 6: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.LWM.MODE_CHANGE_FAIL" + PICS: LWM.S.C00.Rsp + verification: | + Verify that the DUT responds with a ChangeToModeResponse command. + + Verify that the Status field is set to GenericFailure(0x02) or in the MfgCodes (0x80 to 0xBF) range + + Verify that the StatusText field has a length between 1 and 64 + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 + verification: | + Verify that the DUT response contains an integer value equal to old_current_mode_dut + disabled: true + + - label: + "Step 8: Manually put the device in a state from which it will + SUCCESSFULLY transition to PIXIT.LWM.MODE_CHANGE_OK" + verification: | + + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + disabled: true + + - label: + "Step 10: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.LWM.MODE_CHANGE_OK" + PICS: LWM.S.C00.Rsp + verification: | + Verify that the DUT responds with a ChangeToModeResponse command. + + Verify that the Status field is set to Success(0x00) + disabled: true + + - label: "Step 11: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 + verification: | + Verify that the DUT response contains an integer value equal to PIXIT.LWM.MODE_CHANGE_OK + disabled: true + + - label: + "Step 12: TH sends a ChangeToMode command to the DUT with NewMode set + to invalid_mode_th" + PICS: LWM.S.C00.Rsp + verification: | + Verify that the DUT responds with a ChangeToModeResponse command. + + Verify that the Status field is set to UnsupportedMode(0x01). + disabled: true + + - label: "Step 13: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 + verification: | + Verify that the DUT response contains an integer value equal to PIXIT.LWM.MODE_CHANGE_OK + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_LWM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_LWM_3_1.yaml new file mode 100644 index 00000000000000..08a2b191a6ec85 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_LWM_3_1.yaml @@ -0,0 +1,90 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 183.3.1. [TC-LWM-3.1] On Mode functionality with DUT as Server + +PICS: + - LWM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the OnMode attribute." + PICS: LWM.S.A0003 && LWM.S.F00 + verification: | + Verify that the DUT response contains an integer value + + Save the value as on_mode_dut + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 && LWM.S.F00 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + + If on_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: LWM.S.A0000 && LWM.S.F00 + verification: | + Verify that the DUT response contains a list of ModeOptionsStruct entries + + Verify that the list has two or more entries + + Save the Mode field values as supported_modes_dut + + Select a value from supported_modes_dut different from on_mode_dut. Save the value as new_mode_th. + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: LWM.S.C00.Rsp && LWM.S.F00 + verification: | + Verify that the DUT response contains a ChangeToModeResponse command w/ data fields: * Status, set to Success(0x00). + disabled: true + + - label: "Step 6: TH sends a Off command to the DUT" + PICS: OO.S.C00.Rsp && LWM.S.F00 + verification: | + Verify DUT responds w/ status SUCCESS(0x00) + disabled: true + + - label: "Step 7: TH sends a On command to the DUT" + PICS: OO.S.C01.Rsp && LWM.S.F00 + verification: | + Verify DUT responds w/ status SUCCESS(0x00) + disabled: true + + - label: "Step 8: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 && LWM.S.F00 + verification: | + Verify that the DUT response contains an integer value + + The value is equal to on_mode_dut + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_LWM_3_2.yaml b/src/app/tests/suites/certification/Test_TC_LWM_3_2.yaml new file mode 100644 index 00000000000000..a57017a25562df --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_LWM_3_2.yaml @@ -0,0 +1,83 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 183.3.2. [TC-LWM-3.2] Startup Mode functionality with DUT as Server + +PICS: + - LWM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the StartUpMode attribute." + PICS: LWM.S.A0002 + verification: | + Verify that the DUT response contains an integer value + + Save the value as startup_mode_dut + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + + If startup_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: LWM.S.A0000 + verification: | + Verify that the DUT response contains a list of ModeOptionsStruct entries + + Verify that the list has two or more entries + + Save the Mode field values as supported_modes_dut + + Select a value from supported_modes_dut different from startup_mode_dut. Save the value as new_mode_th. + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: LWM.S.C00.Rsp + verification: | + Verify that the DUT response contains a ChangeToModeResponse command w/ data fields: * Status, set to Success(0x00). + disabled: true + + - label: "Step 6: Physically power cycle the device" + verification: | + + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: LWM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + The value is equal to startup_mode_dut + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml b/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml index f2739a908c5c9a..c944969c939f11 100644 --- a/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MC_11_1.yaml @@ -27,8 +27,8 @@ config: tests: - label: - "TH start scanning for available commissioners using Commissioner - Discovery" + "Step 1: TH start scanning for available commissioners using + Commissioner Discovery" verification: | ./chip-tv-casting-app @@ -50,7 +50,8 @@ tests: [1653089767279] [88361:1149415] CHIP: [SVR] Example: cast request 0 disabled: true - - label: "TH is instructed to select the commissioner found in step 1" + - label: + "Step 2: TH is instructed to select the commissioner found in step 1" verification: | Into the shell, enter "cast request 0" to send a user-directed-commissioning request to the DUT @@ -61,8 +62,8 @@ tests: disabled: true - label: - "DUT prompt user for onboarding by giving an option to accept or - reject the commissioning of TH ." + "Step 3: DUT prompt user for onboarding by giving an option to accept + or reject the commissioning of TH ." verification: | UX will vary by product maker. The following is the tv-app shell output: @@ -72,8 +73,8 @@ tests: disabled: true - label: - "DUT start the commissioning procedure with TH, when user accepts the - commissioning" + "Step 4: DUT start the commissioning procedure with TH, when user + accepts the commissioning" verification: | Into the DUT UX, accept request for commissioning. Manufacturer may utilize a custom method for obtaining user consent other than an on-screen prompt. @@ -86,7 +87,7 @@ tests: [1653088463910] [86837:1122544] CHIP: [SVR] Commissioning completed successfully disabled: true - - label: "TH reads the endpoints from the DUT" + - label: "Step 5: TH reads the endpoints from the DUT" verification: | Into the shell, enter " cast cluster descriptor read device-type-list 0 1" to read the device list of the descriptor cluster on endpoint 1 @@ -100,7 +101,7 @@ tests: [1653180010083] [48426:1914389] CHIP: [TOO] } disabled: true - - label: "TH reads the endpoints from the DUT" + - label: "Step 6: TH reads the endpoints from the DUT" verification: | Into the shell, enter "cast cluster descriptor read device-type-list 0 2" to read the device list of the descriptor cluster on endpoint 2 @@ -114,7 +115,7 @@ tests: [1653180162379] [48426:1917385] CHIP: [TOO] } disabled: true - - label: "TH reads the endpoints from the DUT" + - label: "Step 7: TH reads the endpoints from the DUT" verification: | Into the shell, enter "cast cluster descriptor read device-type-list 0 4" to read the device list of the descriptor cluster on endpoint 4 diff --git a/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml b/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml index 923f37b0bd6a7b..690f82fc4b7799 100644 --- a/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_MC_11_2.yaml @@ -27,8 +27,8 @@ config: tests: - label: - "TH start scanning for available commissioners using Commissioner - Discovery" + "Step 1: TH start scanning for available commissioners using + Commissioner Discovery" verification: | ./chip-tv-casting-app @@ -50,7 +50,8 @@ tests: [1653089767279] [88361:1149415] CHIP: [SVR] Example: cast request 0 disabled: true - - label: "TH is instructed to select the commissioner found in step 1" + - label: + "Step 2: TH is instructed to select the commissioner found in step 1" verification: | Into the shell, enter "cast request 0" to send a user-directed-commissioning request to the DUT @@ -60,7 +61,9 @@ tests: [1653179218011] [47890:1899175] CHIP: [SVR] Server initializing... disabled: true - - label: "TH provides 11/21 digit manual pairing code or setup passcode." + - label: + "Step 3: TH provides 11/21 digit manual pairing code or setup + passcode." verification: | The TH should display the setup passcode in the shell output (20202021 is the passcode below): @@ -77,7 +80,7 @@ tests: disabled: true - label: - "DUT Prompts user to enter the pairing code (provided by TH in + "Step 4: DUT Prompts user to enter the pairing code (provided by TH in previous step)." verification: | Into the DUT UX, accept request for commissioning. Manufacturer may utilize a custom method for obtaining user consent other than an on-screen prompt. @@ -91,7 +94,7 @@ tests: [1653088463910] [86837:1122544] CHIP: [SVR] Commissioning completed successfully disabled: true - - label: "TH reads the endpoints from the DUT" + - label: "Step 5: TH reads the endpoints from the DUT" verification: | Into the shell, enter "cast cluster descriptor read device-list 0 1" to read the device list of the descriptor cluster on endpoint 1 @@ -105,7 +108,7 @@ tests: [1653180010083] [48426:1914389] CHIP: [TOO] } disabled: true - - label: "TH reads the endpoints from the DUT" + - label: "Step 6: TH reads the endpoints from the DUT" verification: | Into the shell, enter "cast cluster descriptor read device-list 0 2" to read the device list of the descriptor cluster on endpoint 2 @@ -119,7 +122,7 @@ tests: [1653180162379] [48426:1917385] CHIP: [TOO] } disabled: true - - label: "TH reads the endpoints from the DUT" + - label: "Step 7: TH reads the endpoints from the DUT" verification: | Into the shell, enter "cast cluster descriptor read device-list 0 4" to read the device list of the descriptor cluster on endpoint 4 Descriptor cluster is supporting endpoint 1 and 2 in RPI platform hence if TH tried to read the device list of the descriptor cluster on endpoint 4 from the DUT, DUT should send the response as UNSUPPORTED_ENDPOINT, diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_14.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_14.yaml index 12b0fdd51e4da3..452f7e671e8d3a 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_14.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_14.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends SelectInput command to TH" + - label: "Step 1: DUT sends SelectInput command to TH" PICS: MEDIAINPUT.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -38,31 +38,31 @@ tests: ./chip-tv-casting-app mediainput select-input 2 1 1 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the select input command is received successfully. - [1658530529710] [21870:315334] CHIP: [DMG] InvokeRequestMessage = - [1658530529710] [21870:315334] CHIP: [DMG] { - [1658530529710] [21870:315334] CHIP: [DMG] suppressResponse = false, - [1658530529710] [21870:315334] CHIP: [DMG] timedRequest = false, - [1658530529710] [21870:315334] CHIP: [DMG] InvokeRequests = - [1658530529710] [21870:315334] CHIP: [DMG] [ - [1658530529710] [21870:315334] CHIP: [DMG] CommandDataIB = - [1658530529710] [21870:315334] CHIP: [DMG] { - [1658530529710] [21870:315334] CHIP: [DMG] CommandPathIB = - [1658530529710] [21870:315334] CHIP: [DMG] { - [1658530529710] [21870:315334] CHIP: [DMG] EndpointId = 0x1, - [1658530529710] [21870:315334] CHIP: [DMG] ClusterId = 0x507, - [1658530529710] [21870:315334] CHIP: [DMG] CommandId = 0x0, - [1658530529710] [21870:315334] CHIP: [DMG] }, - [1658530529710] [21870:315334] CHIP: [DMG] - [1658530529710] [21870:315334] CHIP: [DMG] CommandFields = - [1658530529710] [21870:315334] CHIP: [DMG] { - [1658530529710] [21870:315334] CHIP: [DMG] 0x0 = 2, - [1658530529710] [21870:315334] CHIP: [DMG] }, - [1658530529710] [21870:315334] CHIP: [DMG] }, - [1658530529710] [21870:315334] CHIP: [DMG] - [1658530529710] [21870:315334] CHIP: [DMG] ], - [1658530529710] [21870:315334] CHIP: [DMG] - [1658530529710] [21870:315334] CHIP: [DMG] InteractionModelRevision = 1 - [1658530529710] [21870:315334] CHIP: [DMG] }, + [1658530529710] [21870:315334] CHIP: [DMG] InvokeRequestMessage = + [1658530529710] [21870:315334] CHIP: [DMG] { + [1658530529710] [21870:315334] CHIP: [DMG] suppressResponse = false, + [1658530529710] [21870:315334] CHIP: [DMG] timedRequest = false, + [1658530529710] [21870:315334] CHIP: [DMG] InvokeRequests = + [1658530529710] [21870:315334] CHIP: [DMG] [ + [1658530529710] [21870:315334] CHIP: [DMG] CommandDataIB = + [1658530529710] [21870:315334] CHIP: [DMG] { + [1658530529710] [21870:315334] CHIP: [DMG] CommandPathIB = + [1658530529710] [21870:315334] CHIP: [DMG] { + [1658530529710] [21870:315334] CHIP: [DMG] EndpointId = 0x1, + [1658530529710] [21870:315334] CHIP: [DMG] ClusterId = 0x507, + [1658530529710] [21870:315334] CHIP: [DMG] CommandId = 0x0, + [1658530529710] [21870:315334] CHIP: [DMG] }, + [1658530529710] [21870:315334] CHIP: [DMG] + [1658530529710] [21870:315334] CHIP: [DMG] CommandFields = + [1658530529710] [21870:315334] CHIP: [DMG] { + [1658530529710] [21870:315334] CHIP: [DMG] 0x0 = 2, + [1658530529710] [21870:315334] CHIP: [DMG] }, + [1658530529710] [21870:315334] CHIP: [DMG] }, + [1658530529710] [21870:315334] CHIP: [DMG] + [1658530529710] [21870:315334] CHIP: [DMG] ], + [1658530529710] [21870:315334] CHIP: [DMG] + [1658530529710] [21870:315334] CHIP: [DMG] InteractionModelRevision = 1 + [1658530529710] [21870:315334] CHIP: [DMG] }, disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_15.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_15.yaml index 5b7444248d6d8b..3046260bd84183 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_15.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_15.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends ShowInputStatus command to TH" + - label: "Step 1: DUT sends ShowInputStatus command to TH" PICS: MEDIAINPUT.C.C01.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -38,7 +38,7 @@ tests: ./chip-tv-casting-app mediainput show-input-status 1 1 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the showinputstatus command is received successfully. [1658530640755] [21882:316283] CHIP: [DMG] InvokeRequestMessage = [1658530640755] [21882:316283] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_16.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_16.yaml index 2a5a595690a1cb..02d8887d78a306 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_16.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_16.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends HideInputStatus command to TH" + - label: "Step 1: DUT sends HideInputStatus command to TH" PICS: MEDIAINPUT.C.C02.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -38,7 +38,7 @@ tests: ./chip-tv-casting-app mediainput hide-input-status 1 1 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the hide input status command is received successfully. [1658530684044] [21892:316791] CHIP: [DMG] InvokeRequestMessage = [1658530684044] [21892:316791] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_17.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_17.yaml index 4ff9050ad76045..43766a64077000 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_17.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_17.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends RenameInput command to TH" + - label: "Step 1: DUT sends RenameInput command to TH" PICS: MEDIAINPUT.C.C03.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -38,7 +38,7 @@ tests: ./chip-tv-casting-app mediainput rename-input 1 'DVD' 1 1 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the rename-input command is received successfully. [1658530748548] [21924:317544] CHIP: [DMG] InvokeRequestMessage = [1658530748548] [21924:317544] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml index 55a7faedc551e9..0853e1e0625fdf 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_3.yaml @@ -44,7 +44,9 @@ tests: - name: "Status" value: 0 - - label: "Step 1: Sends a Seek command" + - label: + "Step 1: TH sends a Seek command to the DUT with a Position value of + 10000" PICS: MEDIAPLAYBACK.S.C0b.Rsp command: "Seek" arguments: @@ -70,7 +72,7 @@ tests: - name: "expectedValue" value: "y" - - label: "Step 2: Reads the SampledPosition attribute" + - label: "Step 2: TH reads the SampledPosition attribute from the DUT" PICS: MEDIAPLAYBACK.S.A0003 && MEDIAPLAYBACK.S.C0b.Rsp command: "readAttribute" attribute: "SampledPosition" @@ -85,7 +87,7 @@ tests: ./chip-tool mediaplayback read start-time 1 3 ./chip-tv-casting-app mediaplayback read start-time 1 3 - On TH Verify that the response is a valid start time or null. + On TH(chip-tool), Verify that the response is a valid start time or null. [1654001778189] [97015:7707437] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0506 Attribute 0x0000_0001 DataVersion: 775839144 [1654001778190] [97015:7707437] CHIP: [TOO] StartTime: 0 cluster: "LogCommands" @@ -104,7 +106,7 @@ tests: ./chip-tool mediaplayback read seek-range-end 1 3 ./chip-tv-casting-app mediaplayback read seek-range-end 1 3 - On TH Verify that the response is a valid position or Nas. + On TH(chip-tool), Verify that the response is a valid position or Nas. [1654002119527] [97409:7712444] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0506 Attribute 0x0000_0005 DataVersion: 775839144 [1654002119527] [97409:7712444] CHIP: [TOO] SeekRangeEnd: 80000 cluster: "LogCommands" @@ -124,14 +126,14 @@ tests: ./chip-tool mediaplayback read seek-range-start 1 3 ./chip-tv-casting-app mediaplayback read seek-range-start 1 3 - On TH Verify that the response is a valid position or Nas. + On TH(chip-tool), Verify that the response is a valid position or Nas. [1661240180.806771][2930:2935] CHIP:DMG: SuppressResponse = true, [1661240180.806809][2930:2935] CHIP:DMG: InteractionModelRevision = 1 [1661240180.806844][2930:2935] CHIP:DMG: } [1661240180.807024][2930:2935] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0506 Attribute 0x0000_0006 DataVersion: 1520269522 [1661240180.807103][2930:2935] CHIP:TOO: SeekRangeStart: 0 [1661240180.807211][2930:2935] CHIP:EM: Sending Standalone Ack for MessageCounter:164562596 on exchange 31684i - [1661240180.807299][2930:2935] CHIP:IN: Prepared secure message 0xffff95f5d978 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 31684i with MessageCounter:104721987. + [1661240180.807299][2930:2935] CHIP:IN: Prepared secure message 0xffff95f5d978 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 31684i with MessageCounter:104721987 cluster: "LogCommands" command: "UserPrompt" PICS: PICS_USER_PROMPT && MEDIAPLAYBACK.S.A0006 @@ -149,7 +151,7 @@ tests: ./chip-tool mediaplayback read duration 1 3 ./chip-tv-casting-app mediaplayback read duration 1 3 - On TH Verify that the response is null or not 0. + On TH(chip-tool), Verify that the response is null or not 0. [1654001869267] [97168:7708957] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0506 Attribute 0x0000_0002 DataVersion: 775839144 [1654001869267] [97168:7708957] CHIP: [TOO] Duration: 80000 cluster: "LogCommands" @@ -163,8 +165,9 @@ tests: value: "y" - label: - "Step 7: Sends a Seek command Position value beyond the furthest valid - position" + "Step 7: TH sends a Seek command to the DUT with a Position value + beyond the furthest valid position (ex: beyond the duration of the + media)" PICS: MEDIAPLAYBACK.S.C0b.Rsp command: "Seek" arguments: diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_4.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_4.yaml index f6d1692d63595d..3c7835cf57f46a 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_4.yaml @@ -212,7 +212,12 @@ tests: - label: "Step 15: Sends consecutive FastForward commands" verification: | Send below command consecutively multiple times to get error code as 4 + + The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): ./chip-tool mediaplayback fast-forward 1 3 + ./chip-tv-casting-app mediaplayback fast-forward 1 3 + + On TH(chip-tool), Verify that a SPEED_OUT_OF_RANGE (status 4) response is received. [1655460522.133486][12273:12278] CHIP:DMG: }, [1655460522.133550][12273:12278] CHIP:DMG: Received Command Response Data, Endpoint=3 Cluster=0x0000_0506 Command=0x0000_000A [1655460522.133603][12273:12278] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0506 Command 0x0000_000A @@ -233,7 +238,13 @@ tests: - label: "Step 16: Sends consecutive Rewind commands" verification: | Send below command consecutively multiple times to get error code as 4 + + The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner): ./chip-tool mediaplayback rewind 1 3 + ./chip-tv-casting-app mediaplayback rewind 1 3 + + On TH(chip-tool), Verify that a SPEED_OUT_OF_RANGE (status 4) response is received. + [1655460483.177033][12225:12230] CHIP:DMG: Received Command Response Data, Endpoint=3 Cluster=0x0000_0506 Command=0x0000_000A [1655460483.177083][12225:12230] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0506 Command 0x0000_000A [1655460483.177146][12225:12230] CHIP:TOO: PlaybackResponse: { diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_5.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_5.yaml index ba662038d79dbf..c2d25761aab8ec 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_5.yaml @@ -31,7 +31,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends Play command to TH" + - label: "Step 1: DUT sends Play command to TH" PICS: MEDIAPLAYBACK.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -39,8 +39,7 @@ tests: ./chip-tool mediaplayback play 1 3 ./chip-tv-casting-app mediaplayback play 1 3 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the play command is received successfully. [1658530945655] [21924:317544] CHIP: [DMG] InvokeRequestMessage = [1658530945655] [21924:317544] CHIP: [DMG] { @@ -68,7 +67,7 @@ tests: [1658530945655] [21924:317544] CHIP: [DMG] }, disabled: true - - label: "DUT sends Pause command to TH" + - label: "Step 2: DUT sends Pause command to TH" PICS: MEDIAPLAYBACK.C.C01.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -76,8 +75,7 @@ tests: ./chip-tool mediaplayback pause 1 3 ./chip-tv-casting-app mediaplayback pause 1 3 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the pause command is received successfully. [1658530975757] [21924:317544] CHIP: [DMG] InvokeRequestMessage = [1658530975757] [21924:317544] CHIP: [DMG] { @@ -105,7 +103,7 @@ tests: [1658530975757] [21924:317544] CHIP: [DMG] }, disabled: true - - label: "DUT sends Stop command to TH" + - label: "Step 3: DUT sends Stop command to TH" PICS: MEDIAPLAYBACK.C.C02.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -113,8 +111,7 @@ tests: ./chip-tool mediaplayback stop 1 3 ./chip-tv-casting-app mediaplayback stop 1 3 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the stop command is received successfully. [1658531007495] [21924:317544] CHIP: [DMG] InvokeRequestMessage = [1658531007495] [21924:317544] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_7.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_7.yaml index a59a6b8b817a7b..5f2359018d6cc1 100644 --- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_6_7.yaml @@ -31,7 +31,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends Play command to TH" + - label: "Step 1: DUT sends Play command to TH" PICS: MEDIAPLAYBACK.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -40,7 +40,7 @@ tests: ./chip-tv-casting-app mediaplayback play 1 3 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the play command is received successfully. [1658531093554] [21924:321344] CHIP: [DMG] InvokeRequestMessage = [1658531093554] [21924:321344] CHIP: [DMG] { @@ -68,7 +68,7 @@ tests: [1658531093554] [21924:321344] CHIP: [DMG] }, disabled: true - - label: "DUT sends StartOver command to TH" + - label: "Step 2: DUT sends StartOver command to TH" PICS: MEDIAPLAYBACK.C.C03.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -76,8 +76,7 @@ tests: ./chip-tool mediaplayback start-over 1 3 ./chip-tv-casting-app mediaplayback start-over 1 3 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the start over command is received successfully. [1658531129608] [21924:322334] CHIP: [DMG] InvokeRequestMessage = [1658531129608] [21924:322334] CHIP: [DMG] { @@ -105,7 +104,7 @@ tests: [1658531129609] [21924:322334] CHIP: [DMG] }, disabled: true - - label: "DUT sends Next command to TH" + - label: "Step 3: DUT sends Next command to TH" PICS: MEDIAPLAYBACK.C.C05.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -113,8 +112,7 @@ tests: ./chip-tool mediaplayback next 1 3 ./chip-tv-casting-app mediaplayback next 1 3 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the next command is received successfully. [1658531176900] [21924:322847] CHIP: [DMG] InvokeRequestMessage = [1658531176900] [21924:322847] CHIP: [DMG] { @@ -142,7 +140,7 @@ tests: [1658531176900] [21924:322847] CHIP: [DMG] }, disabled: true - - label: "DUT sends Previous command to TH" + - label: "Step 4: DUT sends Previous command to TH" PICS: MEDIAPLAYBACK.C.C04.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -179,7 +177,7 @@ tests: [1658531212499] [21924:323521] CHIP: [DMG] }, disabled: true - - label: "DUT sends SkipForward command to TH" + - label: "Step 5: DUT sends SkipForward command to TH" PICS: MEDIAPLAYBACK.C.C08.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -187,8 +185,7 @@ tests: ./chip-tool mediaplayback skip-forward 10000 1 3 ./chip-tv-casting-app mediaplayback skip-forward 10000 1 3 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the skip-forward command is received successfully. [1658531247634] [21924:323905] CHIP: [DMG] InvokeRequestMessage = [1658531247634] [21924:323905] CHIP: [DMG] { @@ -217,7 +214,7 @@ tests: [1658531247635] [21924:323905] CHIP: [DMG] }, disabled: true - - label: "DUT sends SkipBackward command to TH" + - label: "Step 6: DUT sends SkipBackward command to TH" PICS: MEDIAPLAYBACK.C.C09.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -226,7 +223,7 @@ tests: ./chip-tv-casting-app mediaplayback skip-backward 10000 1 3 - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the skip-forward command is received successfully. [1658531281369] [21924:323905] CHIP: [DMG] InvokeRequestMessage = [1658531281369] [21924:323905] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml index 1c522fe6bd3e71..7e6b449c4146cd 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_1_1.yaml @@ -31,13 +31,23 @@ tests: - name: "nodeId" value: nodeId + #Issue: https://github.com/project-chip/connectedhomeip/issues/26445 - label: "Step 2: TH reads the ClusterRevision attribute from the DUT" - command: "readAttribute" - attribute: "ClusterRevision" - response: - value: 1 - constraints: - type: int16u + verification: | + ./chip-tool modeselect read cluster-revision 1 1 + + Verify the "ClusterRevision" value is of unit16 and reflects the highest revision number 2 on the TH(Chip-tool) and below is the sample log provided for the raspi platform: + + [1645775623.658997][3277:3282] CHIP:TOO: ClusterRevision: 1 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Step 3a: TH reads the FeatureMap attribute from the DUT" PICS: MOD.S.F00 diff --git a/src/app/tests/suites/certification/Test_TC_MOD_1_2.yaml b/src/app/tests/suites/certification/Test_TC_MOD_1_2.yaml index 1b6ce8f4169e8a..7685f299a43a68 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_1_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 80.1.2. [TC-MOD-1.2] Cluster attributes with server as DUT +name: 80.2.1. [TC-MOD-1.2] Cluster attributes with DUT as Server PICS: - MOD.S @@ -30,17 +30,21 @@ tests: disabled: true - label: - "Commission DUT to TH (can be skipped if done in a preceding test)." + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." verification: | disabled: true - - label: "TH reads from the DUT the SupportedModes attribute." + - label: "Step 1: TH reads the SupportedModes attribute from DUT" PICS: MOD.S.A0002 verification: | ./chip-tool modeselect read supported-modes 1 1 - On TH(chip-tool) log, Verify SupportedModes attribute should contains atleast two ModeOptionsStruct entries with unique mode field value and label field value below is the sample log provided for the raspi platform: + Verify that the DUT response contains list of supported modes. + - Each mode should be a struct containing a label (user understandable string describing the mode), mode number (integer that identifies the mode and is unique within this SupportedMode list) and list of semantic tags + - Record the mode numbers for use in steps 2, 3, and 4. + - MfgCode and Value fields present in the SemanticTags structs should be no larger than 16 bits on the TH (Chip-tool) and below is the sample log provided for the raspi platform: [1654595167.600241][14362:14367] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 [1654595167.600345][14362:14367] CHIP:TOO: SupportedModes: 3 entries @@ -73,45 +77,40 @@ tests: [1654595167.601115][14362:14367] CHIP:TOO: } disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 2: TH reads the CurrentMode attribute from the DUT" PICS: MOD.S.A0003 verification: | ./chip-tool modeselect read current-mode 1 1 - Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer and the value is from supported_modes_dut and below is the sample log provided for the raspi platform: + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer and the value is from supported_modes_dut, below is the sample log provided for the raspi platform: [1645776767.611140][4667:4672] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469718 - [1645776767.611214][4667:4672] CHIP:TOO: CurrentMode: 0 disabled: true - - label: "TH reads from the DUT the OnMode attribute." + - label: "Step 3: TH reads the OnMode attribute from the DUT" PICS: MOD.S.A0005 verification: | ./chip-tool modeselect read on-mode 1 1 - Verify on TH(chip-tool) logs, OnMode attribute value is an integer and the value is from supported_modes_dut and below is the sample log provided for the raspi platform: - + Verify on TH(chip-tool) logs, OnMode attribute value is an integer and the value is from supported_modes_dut (As per spec default value is null) , below is the sample log provided for the raspi platform: [1649676072.465968][10754:10759] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4277065072 - [1649676072.466094][10754:10759] CHIP:TOO: OnMode: null disabled: true - - label: "TH reads from the DUT the StartUpMode attribute." + - label: "Step 4: TH reads the StartUpMode attribute from the DUT" PICS: MOD.S.A0004 verification: | ./chip-tool modeselect read start-up-mode 1 1 Verify on TH(chip-tool) logs, StartUpMode attribute value is an integer and value is from supported_modes_dut, below is the sample log provided for the raspi platform: - [1649677014.496348][10778:10784] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0004 DataVersion: 4277065072 - [1649677014.496469][10778:10784] CHIP:TOO: StartUpMode: 0 disabled: true - - label: "TH reads from the DUT the Description attribute." + - label: "Step 5: TH reads the Description attribute from the DUT" PICS: MOD.S.A0000 verification: | ./chip-tool modeselect read description 1 1 @@ -119,6 +118,17 @@ tests: Verify on TH(chip-tool) logs , Description value is human readable text string and below is the sample log provided for the raspi platform: [1649677114.614974][10787:10792] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000 DataVersion: 4277065072 - [1649677114.615110][10787:10792] CHIP:TOO: Description: Coffee disabled: true + + - label: "Step 6: TH reads the StandardNamespace attribute from the DUT" + PICS: MOD.S.A0001 + verification: | + ./chip-tool modeselect read standard-namespace 1 1 + + Verify on TH(chip-tool) logs, StandardNamespace attribute value is an enum16(null is also acceptable), below is the sample log provided for the raspi platform: + + [1689750113.807806][3472:3474] CHIP:DMG: } + [1689750113.807960][3472:3474] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0001 DataVersion: 628878473 + [1689750113.808031][3472:3474] CHIP:TOO: StandardNamespace: 0 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml b/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml new file mode 100644 index 00000000000000..c446b4dcea2801 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml @@ -0,0 +1,324 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 81.1.3. [TC-MOD-1.3] Attributes with client as DUT + +PICS: + - MOD.C + - MOD.C.AM-READ + - MOD.C.AO-READ + - MOD.C.AM-WRITE + - MOD.C.AO-WRITE + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: DUT reads all supported mandatory attributes from TH one at a + time in a manufacturer specific order" + PICS: MOD.C.AM-READ + verification: | + ./chip-tool modeselect read supported-modes 1 1 + + Verify the "SupportedModes response" on the TH (all-cluster-app) log: + + [1666940683.282921][9718:9718] CHIP:DMG: ReportDataMessage = + [1666940683.282923][9718:9718] CHIP:DMG: { + [1666940683.282925][9718:9718] CHIP:DMG: AttributeReportIBs = + [1666940683.282928][9718:9718] CHIP:DMG: [ + [1666940683.282929][9718:9718] CHIP:DMG: AttributeReportIB = + [1666940683.282933][9718:9718] CHIP:DMG: { + [1666940683.282935][9718:9718] CHIP:DMG: AttributeDataIB = + [1666940683.282937][9718:9718] CHIP:DMG: { + [1666940683.282939][9718:9718] CHIP:DMG: DataVersion = 0xb4a9126f, + [1666940683.282941][9718:9718] CHIP:DMG: AttributePathIB = + [1666940683.282944][9718:9718] CHIP:DMG: { + [1666940683.282946][9718:9718] CHIP:DMG: Endpoint = 0x1, + [1666940683.282948][9718:9718] CHIP:DMG: Cluster = 0x50, + [1666940683.282950][9718:9718] CHIP:DMG: Attribute = 0x0000_0002, + [1666940683.282952][9718:9718] CHIP:DMG: } + [1666940683.282955][9718:9718] CHIP:DMG: + [1666940683.282957][9718:9718] CHIP:DMG: Data = [ + [1666940683.282959][9718:9718] CHIP:DMG: + [1666940683.282962][9718:9718] CHIP:DMG: ], + [1666940683.282964][9718:9718] CHIP:DMG: }, + [1666940683.282966][9718:9718] CHIP:DMG: + [1666940683.282968][9718:9718] CHIP:DMG: }, + [1666940683.282972][9718:9718] CHIP:DMG: + [1666940683.282974][9718:9718] CHIP:DMG: AttributeReportIB = + [1666940683.282978][9718:9718] CHIP:DMG: { + [1666940683.282980][9718:9718] CHIP:DMG: AttributeDataIB = + [1666940683.282982][9718:9718] CHIP:DMG: { + [1666940683.282984][9718:9718] CHIP:DMG: DataVersion = 0xb4a9126f, + [1666940683.282986][9718:9718] CHIP:DMG: AttributePathIB = + [1666940683.282988][9718:9718] CHIP:DMG: { + [1666940683.282990][9718:9718] CHIP:DMG: Endpoint = 0x1, + [1666940683.282992][9718:9718] CHIP:DMG: Cluster = 0x50, + [1666940683.282995][9718:9718] CHIP:DMG: Attribute = 0x0000_0002, + [1666940683.282997][9718:9718] CHIP:DMG: ListIndex = Null, + [1666940683.282999][9718:9718] CHIP:DMG: } + [1666940683.283001][9718:9718] CHIP:DMG: + [1666940683.283003][9718:9718] CHIP:DMG: Data = + [1666940683.283005][9718:9718] CHIP:DMG: { + [1666940683.283008][9718:9718] CHIP:DMG: 0x0 = "Black" (5 chars), + [1666940683.283011][9718:9718] CHIP:DMG: 0x1 = 0, + [1666940683.283013][9718:9718] CHIP:DMG: 0x2 = [ + [1666940683.283015][9718:9718] CHIP:DMG: + [1666940683.283020][9718:9718] CHIP:DMG: { + [1666940683.283022][9718:9718] CHIP:DMG: 0x0 = 0, + [1666940683.283025][9718:9718] CHIP:DMG: 0x1 = 0, + [1666940683.283027][9718:9718] CHIP:DMG: }, + [1666940683.283030][9718:9718] CHIP:DMG: ], + [1666940683.283032][9718:9718] CHIP:DMG: }, + [1666940683.283034][9718:9718] CHIP:DMG: }, + [1666940683.283037][9718:9718] CHIP:DMG: + [1666940683.283039][9718:9718] CHIP:DMG: }, + [1666940683.283044][9718:9718] CHIP:DMG: + [1666940683.283046][9718:9718] CHIP:DMG: AttributeReportIB = + [1666940683.283049][9718:9718] CHIP:DMG: { + [1666940683.283051][9718:9718] CHIP:DMG: AttributeDataIB = + [1666940683.283053][9718:9718] CHIP:DMG: { + [1666940683.283055][9718:9718] CHIP:DMG: DataVersion = 0xb4a9126f, + [1666940683.283057][9718:9718] CHIP:DMG: AttributePathIB = + [1666940683.283059][9718:9718] CHIP:DMG: { + [1666940683.283061][9718:9718] CHIP:DMG: Endpoint = 0x1, + [1666940683.283064][9718:9718] CHIP:DMG: Cluster = 0x50, + [1666940683.283066][9718:9718] CHIP:DMG: Attribute = 0x0000_0002, + [1666940683.283068][9718:9718] CHIP:DMG: ListIndex = Null, + [1666940683.283070][9718:9718] CHIP:DMG: } + [1666940683.283072][9718:9718] CHIP:DMG: + [1666940683.283074][9718:9718] CHIP:DMG: Data = + [1666940683.283076][9718:9718] CHIP:DMG: { + [1666940683.283079][9718:9718] CHIP:DMG: 0x0 = "Cappuccino" (10 chars), + [1666940683.283081][9718:9718] CHIP:DMG: 0x1 = 4, + [1666940683.283084][9718:9718] CHIP:DMG: 0x2 = [ + [1666940683.283086][9718:9718] CHIP:DMG: + [1666940683.283088][9718:9718] CHIP:DMG: { + [1666940683.283091][9718:9718] CHIP:DMG: 0x0 = 0, + [1666940683.283093][9718:9718] CHIP:DMG: 0x1 = 0, + [1666940683.283095][9718:9718] CHIP:DMG: }, + [1666940683.283098][9718:9718] CHIP:DMG: ], + [1666940683.283100][9718:9718] CHIP:DMG: }, + [1666940683.283102][9718:9718] CHIP:DMG: }, + [1666940683.283105][9718:9718] CHIP:DMG: + [1666940683.283107][9718:9718] CHIP:DMG: }, + [1666940683.283112][9718:9718] CHIP:DMG: + [1666940683.283114][9718:9718] CHIP:DMG: AttributeReportIB = + [1666940683.283117][9718:9718] CHIP:DMG: { + [1666940683.283119][9718:9718] CHIP:DMG: AttributeDataIB = + [1666940683.283121][9718:9718] CHIP:DMG: { + [1666940683.283123][9718:9718] CHIP:DMG: DataVersion = 0xb4a9126f, + [1666940683.283125][9718:9718] CHIP:DMG: AttributePathIB = + [1666940683.283128][9718:9718] CHIP:DMG: { + [1666940683.283130][9718:9718] CHIP:DMG: Endpoint = 0x1, + [1666940683.283132][9718:9718] CHIP:DMG: Cluster = 0x50, + [1666940683.283134][9718:9718] CHIP:DMG: Attribute = 0x0000_0002, + [1666940683.283136][9718:9718] CHIP:DMG: ListIndex = Null, + [1666940683.283138][9718:9718] CHIP:DMG: } + [1666940683.283141][9718:9718] CHIP:DMG: + [1666940683.283143][9718:9718] CHIP:DMG: Data = + [1666940683.283145][9718:9718] CHIP:DMG: { + [1666940683.283148][9718:9718] CHIP:DMG: 0x0 = "Espresso" (8 chars), + [1666940683.283150][9718:9718] CHIP:DMG: 0x1 = 7, + [1666940683.283152][9718:9718] CHIP:DMG: 0x2 = [ + [1666940683.283154][9718:9718] CHIP:DMG: + [1666940683.283157][9718:9718] CHIP:DMG: { + [1666940683.283159][9718:9718] CHIP:DMG: 0x0 = 0, + [1666940683.283161][9718:9718] CHIP:DMG: 0x1 = 0, + [1666940683.283164][9718:9718] CHIP:DMG: }, + [1666940683.283167][9718:9718] CHIP:DMG: ], + [1666940683.283169][9718:9718] CHIP:DMG: }, + [1666940683.283171][9718:9718] CHIP:DMG: }, + [1666940683.283174][9718:9718] CHIP:DMG: + [1666940683.283176][9718:9718] CHIP:DMG: }, + [1666940683.283179][9718:9718] CHIP:DMG: + [1666940683.283181][9718:9718] CHIP:DMG: ], + [1666940683.283188][9718:9718] CHIP:DMG: + [1666940683.283190][9718:9718] CHIP:DMG: SuppressResponse = true, + [1666940683.283192][9718:9718] CHIP:DMG: InteractionModelRevision = 1 + disabled: true + + - label: + "Step 2: DUT reads all supported optional attributes from TH one at a + time in a manufacturer specific order" + PICS: MOD.C.AO-READ + verification: | + ./chip-tool modeselect read on-mode 1 1 + + Verify the "OnMode response" on the TH (all-cluster-app) log: + + [1666940828.515256][9718:9718] CHIP:DMG: ReportDataMessage = + [1666940828.515259][9718:9718] CHIP:DMG: { + [1666940828.515261][9718:9718] CHIP:DMG: AttributeReportIBs = + [1666940828.515265][9718:9718] CHIP:DMG: [ + [1666940828.515267][9718:9718] CHIP:DMG: AttributeReportIB = + [1666940828.515272][9718:9718] CHIP:DMG: { + [1666940828.515275][9718:9718] CHIP:DMG: AttributeDataIB = + [1666940828.515277][9718:9718] CHIP:DMG: { + [1666940828.515280][9718:9718] CHIP:DMG: DataVersion = 0xb4a9126f, + [1666940828.515282][9718:9718] CHIP:DMG: AttributePathIB = + [1666940828.515285][9718:9718] CHIP:DMG: { + [1666940828.515288][9718:9718] CHIP:DMG: Endpoint = 0x1, + [1666940828.515290][9718:9718] CHIP:DMG: Cluster = 0x50, + [1666940828.515293][9718:9718] CHIP:DMG: Attribute = 0x0000_0005, + [1666940828.515295][9718:9718] CHIP:DMG: } + [1666940828.515298][9718:9718] CHIP:DMG: + [1666940828.515301][9718:9718] CHIP:DMG: Data = NULL + [1666940828.515304][9718:9718] CHIP:DMG: }, + [1666940828.515307][9718:9718] CHIP:DMG: + [1666940828.515309][9718:9718] CHIP:DMG: }, + [1666940828.515312][9718:9718] CHIP:DMG: + [1666940828.515314][9718:9718] CHIP:DMG: ], + [1666940828.515317][9718:9718] CHIP:DMG: + [1666940828.515320][9718:9718] CHIP:DMG: SuppressResponse = true, + [1666940828.515322][9718:9718] CHIP:DMG: InteractionModelRevision = 1 + disabled: true + + - label: + "Step 3: DUT writes a suitable value to all supported mandatory + attributes on the TH one at a time in a manufacturer specific order" + PICS: MOD.C.AM-WRITE + verification: | + This cluster doesn't have any writable attributes + disabled: true + + - label: + "Step 4: DUT writes a suitable value to all supported optional + attributes on the TH one at a time in a manufacturer specific order" + PICS: MOD.C.AO-WRITE + verification: | + ./chip-tool modeselect write on-mode 0 1 1 + + Verify the "WriteRequestMessage" on TH(all-cluster-app) log: + + WriteRequestMessage = + [1673335946.283857][10561:10561] CHIP:DMG: { + [1673335946.283866][10561:10561] CHIP:DMG: suppressResponse = false, + [1673335946.283878][10561:10561] CHIP:DMG: timedRequest = false, + [1673335946.283887][10561:10561] CHIP:DMG: AttributeDataIBs = + [1673335946.283905][10561:10561] CHIP:DMG: [ + [1673335946.283914][10561:10561] CHIP:DMG: AttributeDataIB = + [1673335946.283926][10561:10561] CHIP:DMG: { + [1673335946.283935][10561:10561] CHIP:DMG: AttributePathIB = + [1673335946.283947][10561:10561] CHIP:DMG: { + [1673335946.283959][10561:10561] CHIP:DMG: Endpoint = 0x1, + [1673335946.283971][10561:10561] CHIP:DMG: Cluster = 0x50, + [1673335946.283983][10561:10561] CHIP:DMG: Attribute = 0x0000_0005, + [1673335946.283994][10561:10561] CHIP:DMG: } + [1673335946.284008][10561:10561] CHIP:DMG: + [1673335946.284022][10561:10561] CHIP:DMG: Data = 0, + [1673335946.284032][10561:10561] CHIP:DMG: }, + [1673335946.284046][10561:10561] CHIP:DMG: + [1673335946.284055][10561:10561] CHIP:DMG: ], + [1673335946.284070][10561:10561] CHIP:DMG: + [1673335946.284081][10561:10561] CHIP:DMG: moreChunkedMessages = false, + [1673335946.284091][10561:10561] CHIP:DMG: InteractionModelRevision = 1 + [1673335946.284099][10561:10561] CHIP:DMG: }, + disabled: true + + - label: + "Step 5: Configure TH such that it implements mandatory and none of + the optional attributes of the server-side of the cluster, and that it + also reflects this in global attributes such as FeatureMap and + AttributeList. Commission DUT to TH again" + verification: | + ./chip-tool modeselect read attribute-list 1 1 + + Verify the "AttributeList response" on the TH (all-cluster-minimal-app) log: + + [1689750639.773775][3545:3547] CHIP:DMG: ReportDataMessage = + [1689750639.773815][3545:3547] CHIP:DMG: { + [1689750639.773846][3545:3547] CHIP:DMG: AttributeReportIBs = + [1689750639.773896][3545:3547] CHIP:DMG: [ + [1689750639.773928][3545:3547] CHIP:DMG: AttributeReportIB = + [1689750639.773980][3545:3547] CHIP:DMG: { + [1689750639.774014][3545:3547] CHIP:DMG: AttributeDataIB = + [1689750639.774052][3545:3547] CHIP:DMG: { + [1689750639.774093][3545:3547] CHIP:DMG: DataVersion = 0x346e22fd, + [1689750639.774132][3545:3547] CHIP:DMG: AttributePathIB = + [1689750639.774174][3545:3547] CHIP:DMG: { + [1689750639.774217][3545:3547] CHIP:DMG: Endpoint = 0x1, + [1689750639.774261][3545:3547] CHIP:DMG: Cluster = 0x50, + [1689750639.774304][3545:3547] CHIP:DMG: Attribute = 0x0000_FFFB, + [1689750639.774347][3545:3547] CHIP:DMG: } + [1689750639.774390][3545:3547] CHIP:DMG: + [1689750639.774430][3545:3547] CHIP:DMG: Data = [ + [1689750639.774515][3545:3547] CHIP:DMG: 0, 1, 2, 3, 65528, 65529, 65530, 65531, 65532, 65533, + [1689750639.774565][3545:3547] CHIP:DMG: ], + [1689750639.774604][3545:3547] CHIP:DMG: }, + [1689750639.774652][3545:3547] CHIP:DMG: + [1689750639.774685][3545:3547] CHIP:DMG: }, + [1689750639.774731][3545:3547] CHIP:DMG: + [1689750639.774761][3545:3547] CHIP:DMG: ], + [1689750639.774804][3545:3547] CHIP:DMG: + [1689750639.774835][3545:3547] CHIP:DMG: SuppressResponse = true, + [1689750639.774867][3545:3547] CHIP:DMG: InteractionModelRevision = 1 + [1689750639.774896][3545:3547] CHIP:DMG: } + disabled: true + + - label: + "Step 6: DUT reads all supported optional attributes from TH one at a + time in a manufacturer specific order" + PICS: MOD.C.AO-READ + verification: | + ./chip-tool modeselect read on-mode 1 1 + + Verify status response as UNSUPPORTED_ATTRIBUTE on the TH (all-cluster-minimal-app) log: + + [1684929635.593547][20278:20280] CHIP:DMG: StatusIB = + [1684929635.593551][20278:20280] CHIP:DMG: { + [1684929635.593555][20278:20280] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1684929635.593558][20278:20280] CHIP:DMG: }, + + + ./chip-tool modeselect read start-up-mode 1 1 + + Verify status response as UNSUPPORTED_ATTRIBUTE on the TH (all-cluster-minimal-app) log: + + [1684929665.428885][20285:20287] CHIP:DMG: StatusIB = + [1684929665.428891][20285:20287] CHIP:DMG: { + [1684929665.428895][20285:20287] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1684929665.428900][20285:20287] CHIP:DMG: }, + disabled: true + + - label: + "Step 7: DUT writes a suitable value to all supported optional + attributes on the TH one at a time in a manufacturer specific order" + PICS: MOD.C.AO-WRITE + verification: | + ./chip-tool modeselect write on-mode 0 1 1 + + Verify status response as UNSUPPORTED_ATTRIBUTE on the TH (all-cluster-minimal-app) log: + + [1684929889.679386][20348:20350] CHIP:DMG: StatusIB = + [1684929889.679389][20348:20350] CHIP:DMG: { + [1684929889.679392][20348:20350] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1684929889.679395][20348:20350] CHIP:DMG: }, + [1684929889.679398][20348:20350] CHIP:DMG: + + + ./chip-tool modeselect write start-up-mode 0 1 1 + + Verify status response as UNSUPPORTED_ATTRIBUTE on the TH (all-cluster-minimal-app) log: + + [1684929889.679386][20348:20350] CHIP:DMG: StatusIB = + [1684929889.679389][20348:20350] CHIP:DMG: { + [1684929889.679392][20348:20350] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE), + [1684929889.679395][20348:20350] CHIP:DMG: }, + [1684929889.679398][20348:20350] CHIP:DMG: + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_MOD_2_1.yaml b/src/app/tests/suites/certification/Test_TC_MOD_2_1.yaml index 8aa2b89550c0ee..9fe156fc082adf 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_2_1.yaml @@ -13,10 +13,10 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 80.2.1. [TC-MOD-2.1] ChangeToMode Verification (DUT as Server) +name: 80.3.1. [TC-MOD-2.1] ChangeToMode verification with DUT as Server PICS: - - MOD.S + - MOD.S.C00.Rsp config: nodeId: 0x12344321 @@ -30,18 +30,19 @@ tests: disabled: true - label: - "Commission DUT to TH (can be skipped if done in a preceding test)." + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." verification: | disabled: true - - label: "TH reads from the DUT the SupportedModes attribute." + - label: "Step 1: TH reads the SupportedModes attribute from the DUT" PICS: MOD.S.A0002 verification: | ./chip-tool modeselect read supported-modes 1 1 - On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and save the value as new_mode_th, below is the sample log provided for the raspi platform: - + On TH(chip-tool) log, Verify that the DUT response contains list of supported modes. + Save the Mode numbers for usage in steps 3 and 4 and below is the sample log provided for the raspi platform: [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries @@ -76,44 +77,21 @@ tests: [1649677252.376252][10804:10809] CHIP:TOO: } disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 2: TH reads the CurrentMode attribute from the DUT" PICS: MOD.S.A0003 verification: | ./chip-tool modeselect read current-mode 1 1 - Verify on TH(chip-tool), Current modes attribute value is an integer value. - - save the value as old_current_mode_dut - - select a value from supported_modes_dut, different from old_current_mode_dut, and save it as new_mode_th. - - select a value which is NOT in supported_modes_dut and save it as invalid_mode_th - - Note : Below is the sample log provided for the raspi platform + Verify on TH(chip-tool), Current modes attribute value is an integer value. + - Save the mode values for usage in steps 3 and below is the sample log provided for the raspi platform [1649678800.298128][10854:10861] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073 - [1649678800.298279][10854:10861] CHIP:TOO: CurrentMode: 0 disabled: true - label: - "TH sends a ChangeToMode command to the DUT with NewMode set to - old_current_mode_dut [Petru] note that currently this constraint is - not in the spec. The unapproved proposal is here: - https://github.com/CHIP-Specifications/connectedhomeip-spec/pull/7096 - Until that's approved, please skip this step." - PICS: MOD.S.C00.Rsp - verification: | - ./chip-tool modeselect change-to-mode 0 1 1 - - Verify on TH(chip-tool) log, DUT responds with a FAILURE (value 0x01) status response and below is the sample log provided for the raspi platform: - - [1649677293.280207][10810:10815] CHIP:DMG: StatusIB = - [1649677293.280283][10810:10815] CHIP:DMG: { - [1649677293.280358][10810:10815] CHIP:DMG: status = 0x00 (SUCCESS), - [1649677293.280421][10810:10815] CHIP:DMG: }, - disabled: true - - - label: - "TH sends a ChangeToMode command to the DUT with NewMode set to - new_mode_th" + "Step 3a: TH sends a ChangeToMode command to the DUT with a integer + from the list in step 1, but different from the integer from step 2" PICS: MOD.S.C00.Rsp verification: | ./chip-tool modeselect change-to-mode 4 1 1 @@ -136,12 +114,12 @@ tests: [1685017925.030138][16218:16220] CHIP:DMG: disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 3b: TH reads the CurrentMode attribute from the DUT" PICS: MOD.S.A0003 verification: | ./chip-tool modeselect read current-mode 1 1 - Verify on TH(chip-tool), Current modes attribute value is an integer and equal to new_mode_th, below is the sample log provided for the raspi platform: + Verify on TH(chip-tool), CurrentMode attribute value is an integer provided in step 3a, not the integer from step 2, below is the sample log provided for the raspi platform: [1685017991.905343][16336:16338] CHIP:DMG: ], [1685017991.905348][16336:16338] CHIP:DMG: @@ -153,8 +131,8 @@ tests: disabled: true - label: - "TH sends a ChangeToMode command to the DUT with NewMode set to - invalid_mode_th" + "Step 4: TH sends a ChangeToMode command to the DUT with a integer + that is not in the list in step 1." PICS: MOD.S.C00.Rsp verification: | ./chip-tool modeselect change-to-mode 5 1 1 diff --git a/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml b/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml new file mode 100644 index 00000000000000..1434ee4184d9a9 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml @@ -0,0 +1,189 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 81.2.2. [TC-MOD-2.2] ChangeToMode Verification (DUT as Client) + +PICS: + - MOD.C.C00.Tx + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: DUT reads the SupportedModes attribute from the TH" + PICS: MOD.C.A0002 + verification: | + ./chip-tool modeselect read supported-modes 1 1 + + Verify that the TH response provides a list of supported modes and Record the mode numbers for usage in steps 2 on the TH (all-cluster-app) log: + + [1666941141.001603][9718:9718] CHIP:DMG: + [1666941141.001625][9718:9718] CHIP:DMG: ReportDataMessage = + [1666941141.001627][9718:9718] CHIP:DMG: { + [1666941141.001629][9718:9718] CHIP:DMG: AttributeReportIBs = + [1666941141.001632][9718:9718] CHIP:DMG: [ + [1666941141.001634][9718:9718] CHIP:DMG: AttributeReportIB = + [1666941141.001637][9718:9718] CHIP:DMG: { + [1666941141.001639][9718:9718] CHIP:DMG: AttributeDataIB = + [1666941141.001642][9718:9718] CHIP:DMG: { + [1666941141.001644][9718:9718] CHIP:DMG: DataVersion = 0xb4a9126f, + [1666941141.001646][9718:9718] CHIP:DMG: AttributePathIB = + [1666941141.001648][9718:9718] CHIP:DMG: { + [1666941141.001650][9718:9718] CHIP:DMG: Endpoint = 0x1, + [1666941141.001653][9718:9718] CHIP:DMG: Cluster = 0x50, + [1666941141.001655][9718:9718] CHIP:DMG: Attribute = 0x0000_0002, + [1666941141.001657][9718:9718] CHIP:DMG: } + [1666941141.001659][9718:9718] CHIP:DMG: + [1666941141.001662][9718:9718] CHIP:DMG: Data = [ + [1666941141.001664][9718:9718] CHIP:DMG: + [1666941141.001666][9718:9718] CHIP:DMG: ], + [1666941141.001668][9718:9718] CHIP:DMG: }, + [1666941141.001671][9718:9718] CHIP:DMG: + [1666941141.001673][9718:9718] CHIP:DMG: }, + [1666941141.001677][9718:9718] CHIP:DMG: + [1666941141.001679][9718:9718] CHIP:DMG: AttributeReportIB = + [1666941141.001683][9718:9718] CHIP:DMG: { + [1666941141.001684][9718:9718] CHIP:DMG: AttributeDataIB = + [1666941141.001687][9718:9718] CHIP:DMG: { + [1666941141.001689][9718:9718] CHIP:DMG: DataVersion = 0xb4a9126f, + [1666941141.001691][9718:9718] CHIP:DMG: AttributePathIB = + [1666941141.001693][9718:9718] CHIP:DMG: { + [1666941141.001695][9718:9718] CHIP:DMG: Endpoint = 0x1, + [1666941141.001697][9718:9718] CHIP:DMG: Cluster = 0x50, + [1666941141.001699][9718:9718] CHIP:DMG: Attribute = 0x0000_0002, + [1666941141.001701][9718:9718] CHIP:DMG: ListIndex = Null, + [1666941141.001704][9718:9718] CHIP:DMG: } + [1666941141.001706][9718:9718] CHIP:DMG: + [1666941141.001708][9718:9718] CHIP:DMG: Data = + [1666941141.001710][9718:9718] CHIP:DMG: { + [1666941141.001713][9718:9718] CHIP:DMG: 0x0 = "Black" (5 chars), + [1666941141.001715][9718:9718] CHIP:DMG: 0x1 = 0, + [1666941141.001718][9718:9718] CHIP:DMG: 0x2 = [ + [1666941141.001720][9718:9718] CHIP:DMG: + [1666941141.001722][9718:9718] CHIP:DMG: { + [1666941141.001725][9718:9718] CHIP:DMG: 0x0 = 0, + [1666941141.001727][9718:9718] CHIP:DMG: 0x1 = 0, + [1666941141.001730][9718:9718] CHIP:DMG: }, + [1666941141.001732][9718:9718] CHIP:DMG: ], + [1666941141.001734][9718:9718] CHIP:DMG: }, + [1666941141.001736][9718:9718] CHIP:DMG: }, + [1666941141.001739][9718:9718] CHIP:DMG: + [1666941141.001741][9718:9718] CHIP:DMG: }, + [1666941141.001747][9718:9718] CHIP:DMG: + [1666941141.001748][9718:9718] CHIP:DMG: AttributeReportIB = + [1666941141.001752][9718:9718] CHIP:DMG: { + [1666941141.001754][9718:9718] CHIP:DMG: AttributeDataIB = + [1666941141.001756][9718:9718] CHIP:DMG: { + [1666941141.001758][9718:9718] CHIP:DMG: DataVersion = 0xb4a9126f, + [1666941141.001760][9718:9718] CHIP:DMG: AttributePathIB = + [1666941141.001762][9718:9718] CHIP:DMG: { + [1666941141.001764][9718:9718] CHIP:DMG: Endpoint = 0x1, + [1666941141.001767][9718:9718] CHIP:DMG: Cluster = 0x50, + [1666941141.001769][9718:9718] CHIP:DMG: Attribute = 0x0000_0002, + [1666941141.001771][9718:9718] CHIP:DMG: ListIndex = Null, + [1666941141.001773][9718:9718] CHIP:DMG: } + [1666941141.001775][9718:9718] CHIP:DMG: + [1666941141.001777][9718:9718] CHIP:DMG: Data = + [1666941141.001780][9718:9718] CHIP:DMG: { + [1666941141.001782][9718:9718] CHIP:DMG: 0x0 = "Cappuccino" (10 chars), + [1666941141.001784][9718:9718] CHIP:DMG: 0x1 = 4, + [1666941141.001787][9718:9718] CHIP:DMG: 0x2 = [ + [1666941141.001789][9718:9718] CHIP:DMG: + [1666941141.001791][9718:9718] CHIP:DMG: { + [1666941141.001794][9718:9718] CHIP:DMG: 0x0 = 0, + [1666941141.001796][9718:9718] CHIP:DMG: 0x1 = 0, + [1666941141.001799][9718:9718] CHIP:DMG: }, + [1666941141.001801][9718:9718] CHIP:DMG: ], + [1666941141.001803][9718:9718] CHIP:DMG: }, + [1666941141.001805][9718:9718] CHIP:DMG: }, + [1666941141.001808][9718:9718] CHIP:DMG: + [1666941141.001810][9718:9718] CHIP:DMG: }, + [1666941141.001815][9718:9718] CHIP:DMG: + [1666941141.001817][9718:9718] CHIP:DMG: AttributeReportIB = + [1666941141.001820][9718:9718] CHIP:DMG: { + [1666941141.001822][9718:9718] CHIP:DMG: AttributeDataIB = + [1666941141.001824][9718:9718] CHIP:DMG: { + [1666941141.001826][9718:9718] CHIP:DMG: DataVersion = 0xb4a9126f, + [1666941141.001828][9718:9718] CHIP:DMG: AttributePathIB = + [1666941141.001831][9718:9718] CHIP:DMG: { + [1666941141.001833][9718:9718] CHIP:DMG: Endpoint = 0x1, + [1666941141.001835][9718:9718] CHIP:DMG: Cluster = 0x50, + [1666941141.001837][9718:9718] CHIP:DMG: Attribute = 0x0000_0002, + [1666941141.001839][9718:9718] CHIP:DMG: ListIndex = Null, + [1666941141.001841][9718:9718] CHIP:DMG: } + [1666941141.001844][9718:9718] CHIP:DMG: + [1666941141.001846][9718:9718] CHIP:DMG: Data = + [1666941141.001848][9718:9718] CHIP:DMG: { + [1666941141.001850][9718:9718] CHIP:DMG: 0x0 = "Espresso" (8 chars), + [1666941141.001853][9718:9718] CHIP:DMG: 0x1 = 7, + [1666941141.001855][9718:9718] CHIP:DMG: 0x2 = [ + [1666941141.001857][9718:9718] CHIP:DMG: + [1666941141.001860][9718:9718] CHIP:DMG: { + [1666941141.001862][9718:9718] CHIP:DMG: 0x0 = 0, + [1666941141.001864][9718:9718] CHIP:DMG: 0x1 = 0, + [1666941141.001867][9718:9718] CHIP:DMG: }, + [1666941141.001870][9718:9718] CHIP:DMG: ], + [1666941141.001872][9718:9718] CHIP:DMG: }, + [1666941141.001874][9718:9718] CHIP:DMG: }, + [1666941141.001878][9718:9718] CHIP:DMG: + [1666941141.001880][9718:9718] CHIP:DMG: }, + [1666941141.001883][9718:9718] CHIP:DMG: + [1666941141.001885][9718:9718] CHIP:DMG: ], + [1666941141.001891][9718:9718] CHIP:DMG: + [1666941141.001893][9718:9718] CHIP:DMG: SuppressResponse = true, + [1666941141.001895][9718:9718] CHIP:DMG: InteractionModelRevision = 1 + [1666941141.001897][9718:9718] CHIP:DMG: } + disabled: true + + - label: + "Step 2: DUT sends a ChangeToMode command to the TH with an integer + from the list in step 1." + PICS: MOD.C.C00.Tx + verification: | + ./chip-tool modeselect change-to-mode 4 1 1 + + Verify TH responds with a successful (value 0x00) status response on the TH (all-cluster-app) log: + + [1666941165.052169][9718:9718] CHIP:DMG: InvokeResponseMessage = + [1666941165.052172][9718:9718] CHIP:DMG: { + [1666941165.052174][9718:9718] CHIP:DMG: suppressResponse = false, + [1666941165.052177][9718:9718] CHIP:DMG: InvokeResponseIBs = + [1666941165.052179][9718:9718] CHIP:DMG: [ + [1666941165.052181][9718:9718] CHIP:DMG: InvokeResponseIB = + [1666941165.052185][9718:9718] CHIP:DMG: { + [1666941165.052187][9718:9718] CHIP:DMG: CommandStatusIB = + [1666941165.052190][9718:9718] CHIP:DMG: { + [1666941165.052192][9718:9718] CHIP:DMG: CommandPathIB = + [1666941165.052195][9718:9718] CHIP:DMG: { + [1666941165.052197][9718:9718] CHIP:DMG: EndpointId = 0x1, + [1666941165.052200][9718:9718] CHIP:DMG: ClusterId = 0x50, + [1666941165.052202][9718:9718] CHIP:DMG: CommandId = 0x0, + [1666941165.052205][9718:9718] CHIP:DMG: }, + [1666941165.052208][9718:9718] CHIP:DMG: + [1666941165.052210][9718:9718] CHIP:DMG: StatusIB = + [1666941165.052213][9718:9718] CHIP:DMG: { + [1666941165.052216][9718:9718] CHIP:DMG: status = 0x00 (SUCCESS), + [1666941165.052218][9718:9718] CHIP:DMG: }, + [1666941165.052220][9718:9718] CHIP:DMG: + [1666941165.052223][9718:9718] CHIP:DMG: }, + [1666941165.052226][9718:9718] CHIP:DMG: + [1666941165.052227][9718:9718] CHIP:DMG: }, + [1666941165.052231][9718:9718] CHIP:DMG: + [1666941165.052233][9718:9718] CHIP:DMG: ], + [1666941165.052235][9718:9718] CHIP:DMG: + [1666941165.052237][9718:9718] CHIP:DMG: InteractionModelRevision = 1 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_MOD_2_3.yaml b/src/app/tests/suites/certification/Test_TC_MOD_2_3.yaml index fd0914eb5fda43..c9ad295b254c7f 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_2_3.yaml @@ -25,17 +25,19 @@ config: tests: - label: - "Commission DUT to TH (can be skipped if done in a preceding test)." + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." verification: | disabled: true - - label: "TH reads from the DUT the SupportedModes attribute." + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." PICS: MOD.S.A0002 verification: | ./chip-tool modeselect read supported-modes 1 1 - On TH(chip-tool) log, Verify SupportedModes attribute should contains two or more ModeOptionsStruct entries and save the Mode field values as supported_modes_dut, below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify SupportedModes attribute should contains two or more ModeOptionsStruct entries and + Save the Mode field values as supported_modes_dut, below is the sample log provided for the raspi platform: [1685018204.991818][16390:16392] CHIP:DMG: } [1685018204.992182][16390:16392] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 3673378954 @@ -69,15 +71,15 @@ tests: [1685018204.992695][16390:16392] CHIP:TOO: } disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 2: TH reads from the DUT the CurrentMode attribute." PICS: MOD.S.A0003 verification: | ./chip-tool modeselect read current-mode 1 1 Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer value - - save tha value as old_current_mode_dut - - select a value from supported_modes_dut, different from old_current_mode_dut, and which corresponds to a mode the device can switch to, given its current state and save this value as new_mode_th - - select a value which is NOT in supported_modes_dut and save it as invalid_mode_th, + - Save the value as old_current_mode_dut + - Select a value from supported_modes_dut, different from old_current_mode_dut, and which corresponds to a mode the device can switch to, given its current state and save this value as new_mode_th + - Select a value which is NOT in supported_modes_dut and save it as invalid_mode_th, below is the sample log provided for the raspi platform: [1685018283.726571][16418:16420] CHIP:DMG: SuppressResponse = true, @@ -88,9 +90,9 @@ tests: disabled: true - label: - "TH sends a ChangeToModeWithStatus command to the DUT with NewMode set - to old_current_mode_dut [Petru] note that currently this constraint is - not in the spec. The unapproved proposal is here: + "Step 3: TH sends a ChangeToModeWithStatus command to the DUT with + NewMode set to old_current_mode_dut [Petru] note that currently this + constraint is not in the spec. The unapproved proposal is here: https://github.com/CHIP-Specifications/connectedhomeip-spec/pull/7096 Until that's approved, please skip this step." PICS: MOD.S.C01.Rsp @@ -99,14 +101,14 @@ tests: disabled: true - label: - "TH sends a ChangeToModeWithStatus command to the DUT with NewMode set - to new_mode_th" + "Step 4: TH sends a ChangeToModeWithStatus command to the DUT with + NewMode set to new_mode_th" PICS: MOD.S.C01.Rsp verification: | - ChangeToModeWithStatus Command is not impleented. + ChangeToModeWithStatus Command is not implemented. disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 5: TH reads from the DUT the CurrentMode attribute." PICS: MOD.S.A0003 verification: | ./chip-tool modeselect read current-mode 1 1 @@ -121,9 +123,9 @@ tests: disabled: true - label: - "TH sends a ChangeToModeWithStatus command to the DUT with NewMode set - to invalid_mode_th" + "Step 6: TH sends a ChangeToModeWithStatus command to the DUT with + NewMode set to invalid_mode_th" PICS: MOD.S.C01.Rsp verification: | - ChangeToModeWithStatus Command is not impleented. + ChangeToModeWithStatus Command is not implemented. disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_1.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_1.yaml index d40989ab3f9cbd..d49f4a9d47e143 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_3_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 80.3.1. [TC-MOD-3.1] OnMode Verification (DUT as Server) +name: 80.5.1. [TC-MOD-3.1] OnMode verification with DUT as Server PICS: - MOD.S @@ -29,6 +29,13 @@ tests: To execute this test case set onmode to any integer value because as default it value has null. ./chip-tool modeselect write on-mode 0 1 1 + + On TH(chip-tool) log, Verify that DUT responds with a successful (value 0x00) status response. + + [1686556272.397529][44474:44476] CHIP:DMG: StatusIB = + [1686556272.397584][44474:44476] CHIP:DMG: { + [1686556272.397641][44474:44476] CHIP:DMG: status = 0x00 (SUCCESS), + [1686556272.397673][44474:44476] CHIP:DMG: }, disabled: true - label: "Precondition" @@ -36,40 +43,47 @@ tests: This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command disabled: true - - label: - "Commission DUT to TH (can be skipped if done in a preceding test)." - verification: | - - disabled: true - - - label: "TH reads from the DUT the OnMode attribute." + - label: "Step 1: TH reads the OnMode attribute from the DUT" PICS: MOD.S.A0005 && MOD.S.F00 verification: | ./chip-tool modeselect read on-mode 1 1 - On TH(chip-tool), Verify OnMode attribute value is an integer. save the value as on_mode_dut and below is the sample log provided for the raspi platform: + On TH(chip-tool), Verify that OnMode attribute value is an integer. + Save this value for usage in step 2b and below is the sample log provided for the raspi platform: [1649678983.679893][10871:10876] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4277065073 [1649678983.680002][10871:10876] CHIP:TOO: OnMode: 0 disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 2a: TH reads the CurrentMode attribute from the DUT" PICS: MOD.S.A0003 && MOD.S.F00 verification: | ./chip-tool modeselect read current-mode 1 1 - On TH(chip-tool), Verify CurrentMode attribute is an integer. save the value as old_current_mode_dut and below is the sample log provided for the raspi platform: + On TH(chip-tool), Verify that CurrentMode attribute is an integer. + Save the value for usage in step 2b and below is the sample log provided for the raspi platform: + + NOTE: If on_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. [1649679034.895848][10879:10884] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073 [1649679034.895972][10879:10884] CHIP:TOO: CurrentMode: 0 disabled: true - - label: "TH reads from the DUT the SupportedModes attribute." + - label: + "Step 2b: If the OnMode and CurrentMode attributes have the same + value, proceed to step 2c, Otherwise proceed to step 3a." + PICS: MOD.S.A0003 && MOD.S.A0005 && MOD.S.F00 + verification: | + If the OnMode and CurrentMode attributes have the same value, proceed to step 2c, Otherwise proceed to step 3a. + disabled: true + + - label: "Step 2c: TH reads the SupportedModes attribute from the DUT" PICS: MOD.S.A0002 && MOD.S.F00 verification: | ./chip-tool modeselect read supported-modes 1 1 - On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and save the value as new_mode_th, below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify DUT response contains a list of supported modes. + Save the Mode values for usage in step 2d, below is the sample log provided for the raspi platform: [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries @@ -105,13 +119,14 @@ tests: disabled: true - label: - "TH sends a ChangeToMode command to the DUT with NewMode set to - new_mode_th" - PICS: MOD.S.C00.Rsp && MOD.S.F00 + "Step 2d: Select a value from the list in step 2c with a different + value than the OnMode value read in step 1. TH sends a ChangeToMode + command to the DUT with the selected value." + PICS: MOD.S.A0002 && MOD.S.C00.Rsp && MOD.S.F00 verification: | ./chip-tool modeselect change-to-mode 7 1 1 - On TH(chip-tool) log, verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify that DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: [1684931013.571019][20667:20669] CHIP:DMG: [1684931013.571021][20667:20669] CHIP:DMG: StatusIB = @@ -121,12 +136,12 @@ tests: [1684931013.571034][20667:20669] CHIP:DMG: disabled: true - - label: "TH sends a Off command to the DUT" + - label: "Step 3a: TH sends an Off command to the DUT" PICS: OO.S.C00.Rsp && MOD.S.F00 verification: | ./chip-tool onoff off 1 1 - On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify that DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: [1684931101.118656][20709:20711] CHIP:DMG: StatusIB = [1684931101.118659][20709:20711] CHIP:DMG: { @@ -134,12 +149,12 @@ tests: [1684931101.118665][20709:20711] CHIP:DMG: }, disabled: true - - label: "TH sends a On command to the DUT" + - label: "Step 3b: TH sends an On command to the DUT" PICS: OO.S.C01.Rsp && MOD.S.F00 verification: | ./chip-tool onoff on 1 1 - On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify that DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: [1684931217.055514][20729:20731] CHIP:DMG: StatusIB = [1684931217.055517][20729:20731] CHIP:DMG: { @@ -147,12 +162,12 @@ tests: [1684931217.055523][20729:20731] CHIP:DMG: }, disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 3c: TH reads the CurrentMode attribute from the DUT" PICS: MOD.S.A0003 && MOD.S.F00 verification: | ./chip-tool modeselect read current-mode 1 1 - On TH(chip-tool),verify that CurrentMode attribute value is an integer and value is equal to on_mode_dut. below is the sample log provided for the raspi platform: + On TH(chip-tool), Verify that CurrentMode attribute value is an integer recorded in step 1, below is the sample log provided for the raspi platform: [1649679202.069163][10899:10904] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073 [1649679202.069278][10899:10904] CHIP:TOO: CurrentMode: 0 diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_2.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_2.yaml index 794a590c0c194f..c3f5e3541d55fe 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_3_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 80.3.2. [TC-MOD-3.2] StartUpMode Verification (DUT as Server) +name: 80.5.2. [TC-MOD-3.2] StartUpMode Verification (DUT as Server) PICS: - MOD.S @@ -43,43 +43,44 @@ tests: This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command disabled: true - - label: - "Commission DUT to TH (can be skipped if done in a preceding test)." - verification: | - - disabled: true - - - label: "TH reads from the DUT the StartUpMode attribute." + - label: "Step 1: TH reads the StartUpMode attribute from the DUT" PICS: MOD.S.A0004 verification: | ./chip-tool modeselect read start-up-mode 1 1 - On TH(chip-tool), Verify StartUpMode attribute value is an integer. save the valueas startup_mode_dut and below is the sample log provided for the raspi platform: + On TH(chip-tool), Verify DUT response is an integer and Record this value for usage in step 2, below is the sample log provided for the raspi platform: [1645777708.406864][4841:4846] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003DataVersion: 3781469721 [1645777708.406933][4841:4846] CHIP:TOO: StartUpMode: 0 disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 2a: TH reads the CurrentMode attribute from the DUT" PICS: MOD.S.A0003 verification: | ./chip-tool modeselect read current-mode 1 1 - On TH(chip-tool), Verify CurrentMode attribute value is integer. save the value as old_current_mode_dut and below is the sample log provided for the raspi platform: + On TH(chip-tool), Verify that CurrentMode attribute value is an integer, + save the value for usage in steps 2b and below is the sample log provided for the raspi platform: [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 + disabled: true - - If startup_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. + - label: + "Step 2b: If the StartUpMode and CurrentMode attributes have the same + value, proceed to step 2c, Otherwise proceed to step 3a." + PICS: MOD.S.A0003 && MOD.S.A0004 + verification: | + If the StartUpMode and CurrentMode attributes have the same value, proceed to step 2c, Otherwise proceed to step 3a. disabled: true - - label: "TH reads from the DUT the SupportedModes attribute." + - label: "Step 2c: TH reads the SupportedModes attribute from the DUT" PICS: MOD.S.A0002 verification: | ./chip-tool modeselect read supported-modes 1 1 - On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and Save the value as new_mode_th, below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify DUT response contains a list of supported modes. + - Record the mode numbers for usage in step 2d, below is the sample log provided for the raspi platform: [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries @@ -115,14 +116,14 @@ tests: disabled: true - label: - "TH sends a ChangeToMode command to the DUT with NewMode set to - new_mode_th" - PICS: MOD.S.C00.Rsp + "Step 2d: Select a value from the list in step 2c with a different + value than the StartUpMode value read in step 1. TH sends a + ChangeToMode command to the DUT with the selected value." + PICS: MOD.S.A0002 && MOD.S.C00.Rsp verification: | ./chip-tool modeselect change-to-mode 4 1 1 - - On TH(chip-tool) , Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + On TH(chip-tool) , Verify that DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: [1684931419.768138][20792:20794] CHIP:DMG: StatusIB = [1684931419.768143][20792:20794] CHIP:DMG: { @@ -130,17 +131,17 @@ tests: [1684931419.768152][20792:20794] CHIP:DMG: }, disabled: true - - label: "Physically power cycle the device" + - label: "Step 3a: Physically power cycle the device." verification: | Physically power cycle the device. disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 3b: TH reads the CurrentMode attribute from the DUT" PICS: MOD.S.A0003 verification: | ./chip-tool modeselect read current-mode 1 1 - on TH(chip-tool), Verify that CurrentMode attribute value is same as value recorded in step 1 and below is the sample log provided for the raspi platform: + on TH(chip-tool), Verify that CurrentMode attribute value is an integer recorded in step 1, below is the sample log provided for the raspi platform: [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml new file mode 100644 index 00000000000000..fe094d51573a4d --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml @@ -0,0 +1,181 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 81.3.3. [TC-MOD-3.3] OTA Mode Verification (DUT as Server) + +PICS: + - MOD.S.A0004 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Note" + verification: | + 1.To run this test case build the OTA Provider app to be build in the nRF Environment setup . Follow this step to setup the nRF build environment using container. + https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/nrfconnect#using-docker-container-for-setup + + Once the build environmnet is ready , build teh OTA-Provider-App inside the container. Follow the below link to build the OTA-Provider app + https://github.com/project-chip/connectedhomeip/tree/master/examples/ota-provider-app/linux + + 2. Build all-cluster-app in docker or Flash the pre-built folder from the delivered image + + To build maually and flash follow steps explained in: + https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/nrfconnect#building + + west build -b nrf52840dk_nrf52840 -- -DCONF_FILE=prj_dfu.conf -DCONFIG_CHIP_LIB_SHELL=y + + + 3.Flash + west flash --erase + + 4.OTA Image needs to build on the docker environment as like in the first step inside the all-clusters-app folder. Refer the below link to build the OTA image with new version. + + https://github.com/project-chip/connectedhomeip/tree/master/examples/ota-requestor-app/linux#ota-requestor-app-linux + + To build the ota image with new version for nRF, use the following command inside the all-clusters-app folder , which will build matter.ota + + west build -b nrf52840dk_nrf52840 -d build2 -- -DCONFIG_CHIP_DEVICE_SOFTWARE_VERSION=2 -DCONF_FILE=prj_dfu.conf -DCONFIG_CHIP_LIB_SHELL=y + disabled: true + + - label: "Precondition" + verification: | + This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command + disabled: true + + - label: "Step 1: TH reads the StartUpMode attribute from the DUT" + PICS: MOD.S.A0004 + verification: | + ./chip-tool modeselect read start-up-mode 1 1 + + on TH(chip-tool) log verify for StartUpMode. Record this value for usage in step 2b and below is the sample log provided for the raspi platform: + + [1645778279.693082][4898:4903] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003DataVersion: 3781469722 + [1645778279.693151][4898:4903] CHIP:TOO: StartUpMode: 0 + disabled: true + + - label: "Step 2a: TH reads the CurrentMode attribute from the DUT" + PICS: MOD.S.A0003 + verification: | + ./chip-tool modeselect read current-mode 1 1 + + on TH(chip-tool) log verify for CurrentMode. Record this value for usage in step 2b and 3 and below is the sample log provided for the raspi platform: + + [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 + [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: + "Step 2b: If the StartUpMode and CurrentMode attributes have the same + value, proceed to step 2c, Otherwise proceed to step 3a." + PICS: MOD.S.A0003 && MOD.S.A0004 + verification: | + NOTE: + If the StartUpMode and CurrentMode attributes have the same value, proceed to step 2c, Otherwise proceed to step 3a. + disabled: true + + - label: "Step 2c: TH reads the SupportedModes attribute from the DUT" + PICS: MOD.S.A0002 + verification: | + ./chip-tool modeselect read supported-modes 1 1 + + on TH(chip-tool) log verify for SupportedModes. Record the mode for usage in step 2b and below is the sample log provided for the raspi platform: + + [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 + [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries + [1654595268.854743][14400:14405] CHIP:TOO: [1]: { + [1654595268.854772][14400:14405] CHIP:TOO: Label: Black + [1654595268.854811][14400:14405] CHIP:TOO: Mode: 0 + [1654595268.854843][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.854891][14400:14405] CHIP:TOO: [1]: { + [1654595268.854918][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.854945][14400:14405] CHIP:TOO: Value: 0 + [1654595268.854971][14400:14405] CHIP:TOO: } + [1654595268.855000][14400:14405] CHIP:TOO: } + [1654595268.855038][14400:14405] CHIP:TOO: [2]: { + [1654595268.855064][14400:14405] CHIP:TOO: Label: Cappuccino + [1654595268.855089][14400:14405] CHIP:TOO: Mode: 4 + [1654595268.855117][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855149][14400:14405] CHIP:TOO: [1]: { + [1654595268.855175][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855199][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855223][14400:14405] CHIP:TOO: } + [1654595268.855249][14400:14405] CHIP:TOO: } + [1654595268.855284][14400:14405] CHIP:TOO: [3]: { + [1654595268.855310][14400:14405] CHIP:TOO: Label: Espresso + [1654595268.855332][14400:14405] CHIP:TOO: Mode: 7 + [1654595268.855360][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855390][14400:14405] CHIP:TOO: [1]: { + [1654595268.855416][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855440][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855464][14400:14405] CHIP:TOO: } + [1654595268.855490][14400:14405] CHIP:TOO: } + [1649677252.376226][10804:10809] CHIP:TOO: SemanticTag: 0 + [1649677252.376252][10804:10809] CHIP:TOO: } + disabled: true + + - label: + "Step 2d: Select a value from the list in step 2c with a different + value than the StartUpMode value read in step 1. TH sends a + ChangeToMode command to the DUT with the selected value." + PICS: MOD.S.A0002 && MOD.S.C00.Rsp + verification: | + ./chip-tool modeselect change-to-mode 4 1 1 + + on TH(chip-tool) log verify that status has a value 0x00 (success) and below is the sample log provided for the raspi platform: + + [1645778189.045030][4888:4893] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0050 Command=0x0000_0000 Status=0x0 + disabled: true + + - label: + "Step 3a: Perform an OTA update on the device that requires a reboot. + Allow for the DUT to update and fully reboot." + verification: | + To perform an OTA update on Thread device follow the cmmds below: + + Step-1 :Run the below command in the path, Where we built the OTA provider app . (In this example , the path is connectedhomeip/out/debug ./chip-ota-provider-app -f ) + + ./chip-ota-provider-app -f ~/chip_repos/connectedhomeip/examples/all-clusters-app/nrfconnect/build2/zephyr/matter.ota + + Execute the command using chip-tool and verify the response as below. + + Step-2: ./chip-tool pairing onnetwork 2 20202021 + + [1659104612.593187][62366:62371] CHIP:CTL: Successfully finished commissioning step 'ReadCommissioningInfo' + + Step-3 : ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": null, "targets": [{"cluster": 41, "endpoint": null, "deviceType": null}]}]' 2 0 + + [1651101661960] [90832:7598169] CHIP: [DMG] status = 0x00 (SUCCESS), + + + Step-4: ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 2, "endpoint": 0}]' 1 0 + + Step-5: ./chip-tool otasoftwareupdaterequestor announce-otaprovider 2 0 0 0 1 0 + + Make sure the OTA update is succesful. Refer OTA testcases for the command & its output. . + disabled: true + + - label: "Step 3b: TH reads the CurrentMode attribute from the DUT" + PICS: MOD.S.A0003 + verification: | + ./chip-tool modeselect read current-mode 1 1 + + After the OTA-update on TH(chip-tool) log verify that CurrentMode is same as value recorded in step 2d and below is the sample log provided for the raspi platform: + + [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 + [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 4 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml index 2a9c533e2e05c2..93049009e12ca1 100644 --- a/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml @@ -13,10 +13,12 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 80.3.4. [TC-MOD-3.4] OnMode Overwriting StartUpMode (DUT as Server) +name: 80.5.3. [TC-MOD-3.4] OnMode Overwriting StartUpMode with DUT as Server PICS: - - MOD.S + - MOD.S.A0004 + - MOD.S.A0005 + - OO.S.A4003 config: nodeId: 0x12344321 @@ -47,46 +49,48 @@ tests: This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command disabled: true - - label: - "Commission DUT to TH (can be skipped if done in a preceding test)." - verification: | - - disabled: true - - - label: "TH reads from the DUT the StartUpMode attribute." + - label: "Step 1: TH reads the StartUpMode attribute from the DUT" PICS: MOD.S.A0004 verification: | ./chip-tool modeselect read start-up-mode 1 1 - On TH(chip-tool) log, Verify StartUpMode attribute value is an integer. save this value as startup_mode_dut and below is the sample log provided for the raspi platform: - + On TH(chip-tool) log, Verify DUT response is an integer. + - Record this value for usage in step 2, below is the sample log provided for the raspi platform: [1651099663211] [82177:7560652] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0004 DataVersion: 2609052118 [1651099663212] [82177:7560652] CHIP: [TOO] StartUpMode: 0 disabled: true - - label: "TH reads from the DUT the OnMode attribute." - PICS: MOD.S.A0005 && MOD.S.A0004 + - label: "Step 2a: TH reads the OnMode attribute from the DUT" + PICS: MOD.S.A0005 verification: | ./chip-tool modeselect read on-mode 1 1 - On TH(chip-tool) log, Verify OnMode attribute value is an integer. save the value as old_on_mode_dut and below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify OnMode attribute value is an integer different from StartUpMode + Save the value for usage in step 2b and below is the sample log provided for the raspi platform: + Note : If startup_mode_dut is equal to old_on_mode_dut proceed to step 4. Else proceed to step 6. [1654780979.979743][61542:61547] CHIP:DMG: } [1654780979.980040][61542:61547] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 235764160 [1654780979.980202][61542:61547] CHIP:TOO: OnMode: 4 disabled: true - - label: "TH reads from the DUT the SupportedModes attribute." - PICS: MOD.S.A0002 && MOD.S.A0004 + - label: + "Step 2b: If the StartUpMode and OnMode attributes have the same + value, proceed to step 2c, Otherwise proceed to step 3." + PICS: MOD.S.A0004 && MOD.S.A0005 verification: | - NOTE: - If the StartUpMode and OnMode attributes have the same value, proceed to step 4, Otherwise proceed to step 6. + If the StartUpMode and OnMode attributes have the same value, proceed to step 2c, Otherwise proceed to step 3. + disabled: true + - label: "Step 2c: TH reads the SupportedModes attribute from the DUT" + PICS: MOD.S.A0002 + verification: | ./chip-tool modeselect read supported-modes 1 1 - On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and Save the value as new_mode_th, below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify DUT response contains a list of supported modes + Save the Mode values for usage in step 2d, below is the sample log provided for the raspi platform: [1685020074.437287][16950:16952] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 3898153349 [1685020074.437313][16950:16952] CHIP:TOO: SupportedModes: 3 entries @@ -120,8 +124,10 @@ tests: disabled: true - label: - "TH writes to the DUT the OnMode attribute with the new_mode_th value" - PICS: MOD.S.A0005 + "Step 2d: Select a value from the list in step 2c with a different + value than the StartUpMode value read in step 1. TH sends a write + command for OnMode to the DUT with the selected value." + PICS: MOD.S.A0002 && MOD.S.C00.Rsp verification: | ./chip-tool modeselect write on-mode 7 1 1 @@ -153,19 +159,21 @@ tests: [1651099941887] [84269:7567211] CHIP: [DMG] } disabled: true - - label: "TH reads from the DUT the OnMode attribute." - PICS: MOD.S.A0005 && MOD.S.F00 + - label: "Step 3: TH reads the OnMode attribute from the DUT" + PICS: MOD.S.F00 && MOD.S.A0005 verification: | ./chip-tool modeselect read on-mode 1 1 - On TH(chip-tool) log, Verify OnMode attribute value is an integer. save the value as new_on_mode_dut and below is the sample log provided for the raspi platform: + On TH(chip-tool) log, Verify OnMode attribute value is an integer. + Save the value and below is the sample log provided for the raspi platform: - } [1669190858.739158][4187:4189] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4107771634 [1669190858.739222][4187:4189] CHIP:TOO: OnMode: 7 disabled: true - - label: "TH writes to the DUT the StartUpOnOff attribute with the value 1." + - label: + "Step 4: TH writes 1 to StartUpOnOff attribute of the OnOff Cluster of + the DUT" PICS: OO.S.A4003 verification: | ./chip-tool onoff write start-up-on-off 1 1 1 @@ -198,20 +206,18 @@ tests: [1651101661960] [90832:7598169] CHIP: [DMG] } disabled: true - - label: "Physically power cycle the device" + - label: "Step 5: Physically power cycle the device." verification: | Physically power cycle the device. disabled: true - - label: "TH reads from the DUT the CurrentMode attribute." + - label: "Step 6: TH reads the CurrentMode attribute from the DUT" PICS: MOD.S.A0003 verification: | ./chip-tool modeselect read current-mode 1 1 + On TH(chip-tool), Verify CurrentMode attribute value is an integer and value is value recorded in step 3, below is the sample log provided for the raspi platform: - On TH(chip-tool),Verify CurrentMode attribute value is same as the value recorded in step 3 and below is the sample log provided for the raspi platform: - - } [1669190936.869804][4194:4196] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3908583538 [1669190936.869875][4194:4196] CHIP:TOO: CurrentMode: 7 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_1.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_1.yaml index de460938e1427f..8cfa4e8526774c 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_1.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 3.2.1. [TC-OPCREDS-3.1] Attribute-NOCs, TrustedRootCertificates list + 15.2.1. [TC-OPCREDS-3.1] Attribute-NOCs, TrustedRootCertificates list validation [DUT-Server] PICS: @@ -35,15 +35,17 @@ tests: disabled: true - label: - "Factory Reset DUT (to ensure NOC list is empty at the beginning of - the following steps)" + "Step 1: Factory Reset DUT (to ensure NOC list is empty at the + beginning of the following steps)" PICS: OPCREDS.S.A0000 verification: | On both DUT and TH side sudo rm -rf /tmp/chip_* disabled: true - - label: "Start the commissioning process of DUT by TH1 on a first Fabric" + - label: + "Step 2: Start the commissioning process of DUT by TH1 on a first + Fabric" verification: | DUT side: sudo ./chip-all-clusters-app --wifi --trace_decode 1 @@ -55,8 +57,8 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 900" + "Step 3: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 900" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | ./chip-tool generalcommissioning arm-fail-safe 900 600 1 0 @@ -73,7 +75,7 @@ tests: [1659676500.055920][2475:2480] CHIP:EM: Sending Standalone Ack for MessageCounter:225116044 on exchange 37810i disabled: true - - label: "TH1 sends SetRegulatoryConfig command to the DUT" + - label: "Step 4: TH1 sends SetRegulatoryConfig command to the DUT" PICS: CGEN.S.C02.Rsp && CGEN.S.C03.Tx verification: | ./chip-tool generalcommissioning set-regulatory-config 0 new 0 1 0 @@ -88,7 +90,7 @@ tests: [1658223287.237205][5570:5575] CHIP:TOO: } disabled: true - - label: "TH1 sends AttestationRequest command to DUT" + - label: "Step 5: TH1 sends AttestationRequest command to DUT" PICS: OPCREDS.S.C00.Rsp && OPCREDS.S.C01.Tx verification: | To get attestation nonce give below command Raspi platform on TH @@ -109,8 +111,8 @@ tests: disabled: true - label: - "TH1 sends CertificateChainRequest Command to DUT for the PAI and - saves the certififate as 'PAICert'" + "Step 6: TH1 sends CertificateChainRequest Command to DUT for the PAI + and saves the certififate as 'PAICert'" PICS: OPCREDS.S.C02.Rsp && OPCREDS.S.C03.Tx verification: | ./chip-tool operationalcredentials certificate-chain-request 2 1 0 --trace_decode 1 @@ -215,8 +217,8 @@ tests: disabled: true - label: - "TH1 sends CertificateChainRequest Command to DUT for the DAC and - saves the certififate as 'DACCert'" + "Step 7: TH1 sends CertificateChainRequest Command to DUT for the DAC + and saves the certififate as 'DACCert'" PICS: OPCREDS.S.C02.Rsp && OPCREDS.S.C03.Tx verification: | ./chip-tool operationalcredentials certificate-chain-request 1 1 0 @@ -320,7 +322,7 @@ tests: [1660218221.827357][17048:17053] CHIP:DMG: ICR moving to [ResponseRe] disabled: true - - label: "TH1 Sends CSRRequest command with a random 32-byte nonce" + - label: "Step 8: TH1 Sends CSRRequest command with a random 32-byte nonce" PICS: OPCREDS.S.C04.Rsp verification: | To get SCR Nonce give below command 2 times @@ -343,14 +345,14 @@ tests: EB731B40B20501AF32C468AA522948F7848D3AEDFA24D9A879575B4A265886C97109EE0DE1ECEB969B1A7F98F127DB4C275292B986BF8DA56EF7B16DA8EC8ABE disabled: true - - label: "TH1 validates the attestation response" + - label: "Step 9: TH1 validates the attestation response" verification: | disabled: true - label: - "TH1 obtains or generates the NOC, the Root CA Certificate and ICAC - using the CSR elements from step 8 and selects an IPK. The + "Step 10: TH1 obtains or generates the NOC, the Root CA Certificate + and ICAC using the CSR elements from step 8 and selects an IPK. The certificates shall have their subjects padded with additional data such that they are each the maximum certificate size of 400 bytes when encoded in the MatterCertificateEncoding. Save RCAC as @@ -362,32 +364,33 @@ tests: disabled: true - label: - "TH1 obtains or generates Root Certificate with a different Root CA ID - and the corresponding ICAC, NOC and IPK using the CSR elements from - step 8 Save RCAC as Root_CA_Certificate_TH1_2 Save ICAC as - Intermediate_Certificate_TH1_2 Save NOC as + "Step 11: TH1 obtains or generates Root Certificate with a different + Root CA ID and the corresponding ICAC, NOC and IPK using the CSR + elements from step 8 Save RCAC as Root_CA_Certificate_TH1_2 Save ICAC + as Intermediate_Certificate_TH1_2 Save NOC as Node_Operational_Certificate_TH1_2 Save IPK as IPK_TH1_2" verification: | disabled: true - label: - "TH1 generates an INVALID Root Certificate where the signature does - not match the public key and saves it as Root_CA_Malformed" + "Step 12: TH1 generates an INVALID Root Certificate where the + signature does not match the public key and saves it as + Root_CA_Malformed" verification: | disabled: true - label: - "TH1 sends AddTrustedRootCertificate command to DUT to install - Root_CA_Malformed" + "Step 13: TH1 sends AddTrustedRootCertificate command to DUT to + install Root_CA_Malformed" PICS: OPCREDS.S.C0b.Rsp verification: | disabled: true - label: - "TH1 sends AddTrustedRootCertificate command to DUT with + "Step 14: TH1 sends AddTrustedRootCertificate command to DUT with RootCACertificate set to Root_CA_Certificate_TH1" PICS: OPCREDS.S.C0b.Rsp verification: | @@ -395,46 +398,46 @@ tests: disabled: true - label: - "TH1 sends AddTrustedRootCertificate command to DUT again with the - RootCACertificate field set to Root_CA_Certificate_TH1" + "Step 15: TH1 sends AddTrustedRootCertificate command to DUT again + with the RootCACertificate field set to Root_CA_Certificate_TH1" PICS: OPCREDS.S.C0b.Rsp verification: | disabled: true - label: - "TH1 sends AddTrustedRootCertificate command to DUT again with the - RootCACertificate field set to Root_CA_Certificate_TH1_2" + "Step 16: TH1 sends AddTrustedRootCertificate command to DUT again + with the RootCACertificate field set to Root_CA_Certificate_TH1_2" PICS: OPCREDS.S.C0b.Rsp verification: | disabled: true - label: - "TH1 reads the TrustedRootCertificates list from DUT and saves as - TrustedRootsList" + "Step 17: TH1 reads the TrustedRootCertificates list from DUT and + saves as TrustedRootsList" PICS: OPCREDS.S.A0004 verification: | disabled: true - label: - "TH1 appends Root_CA_Certificate_TH1_2 to TrustedRootsList and writes - the TrustedRootCertificates attribute with that value" + "Step 18: TH1 appends Root_CA_Certificate_TH1_2 to TrustedRootsList + and writes the TrustedRootCertificates attribute with that value" PICS: OPCREDS.S.A0004 verification: | disabled: true - - label: "TH1 reads the TrustedRootCertificates list from DUT" + - label: "Step 19: TH1 reads the TrustedRootCertificates list from DUT" PICS: OPCREDS.S.A0004 verification: | disabled: true - label: - "TH1 sends the AddNOC Command to DUT with the following fields: - NOCValue as Node_Operational_Certificate_TH1_2 ICACValue as + "Step 20: TH1 sends the AddNOC Command to DUT with the following + fields: NOCValue as Node_Operational_Certificate_TH1_2 ICACValue as Intermediate_Certificate_TH1_2 IpkValue as IPK_TH1_2 CaseAdminSubject as the NodeID of TH1 AdminVendorId as the Vendor ID of TH1" PICS: OPCREDS.S.C06.Rsp @@ -443,8 +446,8 @@ tests: disabled: true - label: - "TH1 sends the AddNOC Command to DUT with the following fields: - NOCValue as Node_Operational_Certificate_TH1 ICACValue as + "Step 21: TH1 sends the AddNOC Command to DUT with the following + fields: NOCValue as Node_Operational_Certificate_TH1 ICACValue as Intermediate_Certificate_TH1 IpkValue as IPK_TH1 CaseAdminSubject is an invalid NodeID (not an operational Node ID or Case Authenticated Tag - ex. 0) AdminVendorId as the Vendor ID of TH1" @@ -454,8 +457,8 @@ tests: disabled: true - label: - "TH1 sends the AddNOC Command to DUT with the following fields: - NOCValue as Node_Operational_Certificate_TH1 ICACValue as + "Step 22: TH1 sends the AddNOC Command to DUT with the following + fields: NOCValue as Node_Operational_Certificate_TH1 ICACValue as Intermediate_Certificate_TH1 IpkValue as IPK_TH1 CaseAdminSubject as the NodeID of TH1 AdminVendorId as the Vendor ID of TH1" PICS: OPCREDS.S.C06.Rsp @@ -463,14 +466,15 @@ tests: disabled: true - - label: "TH1 saves the FabricIndex as FabricIndex_TH1 for future use" + - label: + "Step 23: TH1 saves the FabricIndex as FabricIndex_TH1 for future use" verification: | disabled: true - label: - "TH1 sends the AddNOC Command to DUT with the following fields: - NOCValue as Node_Operational_Certificate_TH1_1 ICACValue as + "Step 24: TH1 sends the AddNOC Command to DUT with the following + fields: NOCValue as Node_Operational_Certificate_TH1_1 ICACValue as Intermediate_Certificate_TH1_1 IpkValue as IPK_TH1_1 CaseAdminSubject as the NodeID of TH1 AdminVendorId as the Vendor ID of TH1" PICS: OPCREDS.S.C06.Rsp @@ -479,74 +483,74 @@ tests: disabled: true - label: - "TH1 reads the NOCs attribute from DUT using a non-fabric-filtered - read and saves the list as NOClist" + "Step 25: TH1 reads the NOCs attribute from DUT using a + non-fabric-filtered read and saves the list as NOClist" PICS: OPCREDS.S.A0000 verification: | disabled: true - label: - "TH1 appends a second list item to 'NOClist' and writes that value to - the NOCs attribute" + "Step 26: TH1 appends a second list item to 'NOClist' and writes that + value to the NOCs attribute" PICS: OPCREDS.S.A0000 verification: | disabled: true - label: - "TH1 reads the NOCs attribute from DUT using a non-fabric-filtered - read" + "Step 27: TH1 reads the NOCs attribute from DUT using a + non-fabric-filtered read" PICS: OPCREDS.S.A0000 verification: | disabled: true - label: - "TH1 sends UpdateFabricLabel command with 'Label 1' as Label field to - DUT" + "Step 28: TH1 sends UpdateFabricLabel command with 'Label 1' as Label + field to DUT" PICS: OPCREDS.S.C09.Rsp verification: | disabled: true - label: - "TH1 reads the Fabrics Attribute from DUT using a non-fabric-filtered - read and gets the FabricDescriptorStruct for which the FabricIndex - field equals FabricIndex_TH1" + "Step 29: TH1 reads the Fabrics Attribute from DUT using a + non-fabric-filtered read and gets the FabricDescriptorStruct for which + the FabricIndex field equals FabricIndex_TH1" verification: | disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds - field set to 0" + "Step 31: TH1 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds field set to 0" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | disabled: true - - label: "TH1 reconnects to the DUT over PASE" + - label: "Step 32: TH1 reconnects to the DUT over PASE" verification: | disabled: true - - label: "TH1 reads the TrustedRootCertificates list from DUT" + - label: "Step 33: TH1 reads the TrustedRootCertificates list from DUT" PICS: OPCREDS.S.A0004 verification: | disabled: true - label: - "TH1 reads the NOCs attribute from DUT using a non-fabric-filtered - read" + "Step 34: TH1 reads the NOCs attribute from DUT using a + non-fabric-filtered read" PICS: OPCREDS.S.A0000 verification: | disabled: true - label: - "TH1 reads the Fabrics attribute from the DUT using a + "Step 35: TH1 reads the Fabrics attribute from the DUT using a non-fabric-filtered read" PICS: OPCREDS.S.A0001 verification: | @@ -554,7 +558,7 @@ tests: disabled: true - label: - "TH1 fully commissions DUT onto the fabric, using + "Step 36: TH1 fully commissions DUT onto the fabric, using 'Root_CA_Certificate_TH1' and the AddNOC parameters specified in step . This will update the value of FabricIndex_TH1 so that it references the fabric the DUT was just commissioned onto" @@ -562,73 +566,77 @@ tests: disabled: true - - label: "TH1 reads the TrustedRootCertificates list from DUT" + - label: "Step 37: TH1 reads the TrustedRootCertificates list from DUT" PICS: OPCREDS.S.A0004 verification: | disabled: true - label: - "TH1 reads the NOCs attribute from DUT using a non-fabric-filtered - read" + "Step 38: TH1 reads the NOCs attribute from DUT using a + non-fabric-filtered read" PICS: OPCREDS.S.A0000 verification: | disabled: true - label: - "TH1 sends UpdateFabricLabel command with 'Label 1' as Label field to - DUT" + "Step 39: TH1 sends UpdateFabricLabel command with 'Label 1' as Label + field to DUT" PICS: OPCREDS.S.C09.Rsp verification: | disabled: true - label: - "TH1 reads the Fabrics Attribute from DUT using a non-fabric-filtered - read and gets the FabricDescriptorStruct for which the FabricIndex - field equals FabricIndex_TH1" + "Step 40: TH1 reads the Fabrics Attribute from DUT using a + non-fabric-filtered read and gets the FabricDescriptorStruct for which + the FabricIndex field equals FabricIndex_TH1" PICS: OPCREDS.S.A0001 verification: | disabled: true - - label: "TH1 reads the ACL attribute from the Access Control cluster" + - label: + "Step 42: TH1 reads the ACL attribute from the Access Control cluster" PICS: OPCREDS.S.C06.Rsp verification: | disabled: true - - label: "TH1 issues a KeySetRead command to the DUT for GroupKeySetID 0" + - label: + "Step 43: TH1 issues a KeySetRead command to the DUT for GroupKeySetID + 0" PICS: OPCREDS.S.C06.Rsp verification: | disabled: true - label: - "TH1 sends an OpenCommissioningWindow command to the Administrator - Commissioning cluster" + "Step 44: TH1 sends an OpenCommissioningWindow command to the + Administrator Commissioning cluster" verification: | disabled: true - label: - "TH2 begins the process of commissionning the DUT. After receiving the - CSRResponse TH2 obtains or generates a NOC, the Root CA Certificate, - ICAC and IPK. The certificates shall have their subjects padded with - additional data such that they are each the maximum certificate size - of 400 bytes when encoded in the MatterCertificateEncoding. Save RCAC - as Root_CA_Certificate_TH2 Save ICAC as Intermediate_Certificate_TH2 - Save NOC as Node_Operational_Certificate_TH2 Save IPK as IPK_TH2 - Extract the RCAC public key and save as Root_Public_Key_TH2" + "Step 45: TH2 begins the process of commissionning the DUT. After + receiving the CSRResponse TH2 obtains or generates a NOC, the Root CA + Certificate, ICAC and IPK. The certificates shall have their subjects + padded with additional data such that they are each the maximum + certificate size of 400 bytes when encoded in the + MatterCertificateEncoding. Save RCAC as Root_CA_Certificate_TH2 Save + ICAC as Intermediate_Certificate_TH2 Save NOC as + Node_Operational_Certificate_TH2 Save IPK as IPK_TH2 Extract the RCAC + public key and save as Root_Public_Key_TH2" verification: | disabled: true - label: - "TH2 completes the commissioning process using Root_CA_Certificate_TH2 - when performing the AddTrustedRootCertificate command and sending - AddNOC with the following parameters: NOCValue as + "Step 46: TH2 completes the commissioning process using + Root_CA_Certificate_TH2 when performing the AddTrustedRootCertificate + command and sending AddNOC with the following parameters: NOCValue as Node_Operational_Certificate_TH2 ICACValue as Intermediate_Certificate_TH2 IpkValue as IPK_TH2 CaseAdminSubject as CAT_TH2 AdminVendorId as the Vendor ID of TH2" @@ -636,52 +644,54 @@ tests: Not verifiable disabled: true - - label: "TH2 reads the TrustedRootCertificates list from DUT" + - label: "Step 47: TH2 reads the TrustedRootCertificates list from DUT" PICS: OPCREDS.S.A0004 verification: | disabled: true - label: - "TH2 reads the NOCs attribute from DUT using a non-fabric-filtered - read" + "Step 48: TH2 reads the NOCs attribute from DUT using a + non-fabric-filtered read" PICS: OPCREDS.S.A0000 verification: | disabled: true - label: - "TH2 sends UpdateFabricLabel command with 'Label 2' as Label field to - DUT" + "Step 49: TH2 sends UpdateFabricLabel command with 'Label 2' as Label + field to DUT" PICS: OPCREDS.S.C09.Rsp verification: | disabled: true - label: - "TH2 sends UpdateFabricLabel command with 'Label 1' as Label field to - DUT" + "Step 50: TH2 sends UpdateFabricLabel command with 'Label 1' as Label + field to DUT" PICS: OPCREDS.S.C09.Rsp verification: | disabled: true - - label: "Read the Fabrics List from DUT using a non-fabric-filtered read" + - label: + "Step 51: Read the Fabrics List from DUT using a non-fabric-filtered + read" PICS: OPCREDS.S.A0001 verification: | disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 900" + "Step 52: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 900" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | disabled: true - label: - "TH1 sends AddTrustedRootCertificate command to DUT with + "Step 53: TH1 sends AddTrustedRootCertificate command to DUT with RootCACertificate set to Root_CA_Certificate_TH1_2" PICS: OPCREDS.S.C0b.Rsp verification: | @@ -689,8 +699,8 @@ tests: disabled: true - label: - "TH1 sends the AddNOC Command to DUT with the following fields: - NOCValue as Node_Operational_Certificate_TH1_2 ICACValue as + "Step 54: TH1 sends the AddNOC Command to DUT with the following + fields: NOCValue as Node_Operational_Certificate_TH1_2 ICACValue as Intermediate_Certificate_TH1_2 IpkValue as IPK_TH1_2 CaseAdminSubject as the NodeID of TH1 AdminVendorId as the Vendor ID of TH1" PICS: OPCREDS.S.C06.Rsp @@ -698,15 +708,15 @@ tests: disabled: true - - label: "TH1 Sends CSRRequest command with a random 32-byte nonce" + - label: "Step 55: TH1 Sends CSRRequest command with a random 32-byte nonce" PICS: OPCREDS.S.C04.Rsp verification: | disabled: true - label: - "TH1 sends the AddNOC Command to DUT with the following fields: - NOCValue as Node_Operational_Certificate_TH1_2 ICACValue as + "Step 56: TH1 sends the AddNOC Command to DUT with the following + fields: NOCValue as Node_Operational_Certificate_TH1_2 ICACValue as Intermediate_Certificate_TH1_2 IpkValue as IPK_TH1_2 CaseAdminSubject as the NodeID of TH1 AdminVendorId as the Vendor ID of TH1" PICS: OPCREDS.S.C06.Rsp @@ -715,9 +725,9 @@ tests: disabled: true - label: - "TH1 obtains or generates a NOC and ICAC using the CSR elements from - step 55 with a different NodeID, but the same Root CA Certificate and - fabric ID as step 10. Save as + "Step 57: TH1 obtains or generates a NOC and ICAC using the CSR + elements from step 55 with a different NodeID, but the same Root CA + Certificate and fabric ID as step 10. Save as Node_Operational_Certificates_TH1_fabric_conflict and Intermediate_Certificate_TH1_fabric_conflict" verification: | @@ -725,48 +735,49 @@ tests: disabled: true - label: - "TH1 sends the AddNOC Command to DUT with the following fields: - NOCValue as Node_Operational_Certificate_TH1_fabric_conflict ICACValue - as Intermediate_Certificate_TH1_fabric_conflict CaseAdminSubject as - the NodeID of TH1 AdminVendorId as the Vendor ID of TH1" + "Step 58: TH1 sends the AddNOC Command to DUT with the following + fields: NOCValue as Node_Operational_Certificate_TH1_fabric_conflict + ICACValue as Intermediate_Certificate_TH1_fabric_conflict + CaseAdminSubject as the NodeID of TH1 AdminVendorId as the Vendor ID + of TH1" PICS: OPCREDS.S.C06.Rsp verification: | disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds set - to 0" + "Step 59: TH1 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 0" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | disabled: true - - label: "TH1 reads the TrustedRootCertificates list from DUT" + - label: "Step 60: TH1 reads the TrustedRootCertificates list from DUT" PICS: OPCREDS.S.A0004 verification: | disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 900" + "Step 61: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 900" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | disabled: true - label: - "TH1 Sends CSRRequest command with a random 32-byte nonce and the - IsForUpdateNOC field set to true" + "Step 62: TH1 Sends CSRRequest command with a random 32-byte nonce and + the IsForUpdateNOC field set to true" PICS: OPCREDS.S.C04.Rsp verification: | disabled: true - label: - "TH1 obtains or generates a NOC, Root CA Certificate, ICAC using the - CSR elements from the previous step Save RCAC as + "Step 63: TH1 obtains or generates a NOC, Root CA Certificate, ICAC + using the CSR elements from the previous step Save RCAC as Root_CA_Certificate_TH1_3 Save ICAC as Intermediate_Certificate_TH1_3 Save NOC as Node_Operational_Certificate_TH1_3" verification: | @@ -774,7 +785,7 @@ tests: disabled: true - label: - "TH1 sends AddTrustedRootCertificate command to DUT with + "Step 64: TH1 sends AddTrustedRootCertificate command to DUT with RootCACertificate set to Root_CA_Certificate_TH1_3" PICS: OPCREDS.S.C0b.Rsp verification: | @@ -782,8 +793,8 @@ tests: disabled: true - label: - "TH1 sends the AddNOC Command to DUT with the following fields: - NOCValue as Node_Operational_Certificate_TH1_3 ICACValue as + "Step 65: TH1 sends the AddNOC Command to DUT with the following + fields: NOCValue as Node_Operational_Certificate_TH1_3 ICACValue as Intermediate_Certificate_TH1_3 CaseAdminSubject as the NodeID of TH1 AdminVendorId as the Vendor ID of TH1" PICS: OPCREDS.S.C06.Rsp @@ -792,123 +803,125 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with ExpiryLengthSeconds set - to 0" + "Step 66: TH1 sends ArmFailSafe command to the DUT with + ExpiryLengthSeconds set to 0" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 900" + "Step 67: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 900" PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx verification: | disabled: true - label: - "TH2 sends RemoveFabric command with Fabric Index as FabricIndexTH2 + - 5 (Invalid Fabric Index) to DUT" + "Step 68: TH2 sends RemoveFabric command with Fabric Index as + FabricIndexTH2 + 5 (Invalid Fabric Index) to DUT" PICS: OPCREDS.S.C0a.Rsp verification: | disabled: true - label: - "TH2 reads the Fabrics List from DUT using a non-fabric-filtered read" + "Step 69: TH2 reads the Fabrics List from DUT using a + non-fabric-filtered read" PICS: OPCREDS.S.A0001 verification: | disabled: true - label: - "TH2 sends RemoveFabric command with Fabric Index as FabricIndex_TH1 - (Valid Fabric Index) to DUT" + "Step 70: TH2 sends RemoveFabric command with Fabric Index as + FabricIndex_TH1 (Valid Fabric Index) to DUT" PICS: OPCREDS.S.C0a.Rsp verification: | disabled: true - label: - "TH2 reads the Fabrics List from DUT using a non-fabric-filtetered - read" + "Step 71: TH2 reads the Fabrics List from DUT using a + non-fabric-filtetered read" PICS: OPCREDS.S.A0001 verification: | disabled: true - - label: "TH2 sends a CommissioningComplete command to the DUT" + - label: "Step 72: TH2 sends a CommissioningComplete command to the DUT" verification: | disabled: true - label: - "TH2 sends an OpenCommissioningWindow command to the Administrator - Commissioning cluster" + "Step 73: TH2 sends an OpenCommissioningWindow command to the + Administrator Commissioning cluster" verification: | disabled: true - label: - "TH1 fully commissions the DUT using subject-padded, 400 byte + "Step 74: TH1 fully commissions the DUT using subject-padded, 400 byte certificates" verification: | disabled: true - label: - "Repeat steps 73 and 74 to fill the fabric table using the remaining - test harnesses (TH3 through TH NumSupportedFabrics). Each test harness - should commission the DUT using subject-padded, 400-byte certificates" + "Step 75: Repeat steps 73 and 74 to fill the fabric table using the + remaining test harnesses (TH3 through TH NumSupportedFabrics). Each + test harness should commission the DUT using subject-padded, 400-byte + certificates" verification: | disabled: true - - label: "TH1 reads CommissionedFabrics attribute" + - label: "Step 76: TH1 reads CommissionedFabrics attribute" PICS: OPCREDS.S.A0003 verification: | disabled: true - - label: "Repeat steps 73 and 74 with TH NumSupportedFabrics + 1" + - label: "Step 77: Repeat steps 73 and 74 with TH NumSupportedFabrics + 1" verification: | disabled: true - label: - "TH1 reads the SubjectsPerAccessControlEntry attribute from the Access - Control Cluster and saves the value as maxSubjects" + "Step 78: TH1 reads the SubjectsPerAccessControlEntry attribute from + the Access Control Cluster and saves the value as maxSubjects" verification: | disabled: true - label: - "TH1 reads the TargetsPerAccessControlEntry attribute from the Access - Control Cluster and saves the value as maxTargets" + "Step 79: TH1 reads the TargetsPerAccessControlEntry attribute from + the Access Control Cluster and saves the value as maxTargets" verification: | disabled: true - label: - "TH1 reads the AccessControlEntriesPerFabric attribute from the Access - Control Cluster and saves the value as maxEntries" + "Step 80: TH1 reads the AccessControlEntriesPerFabric attribute from + the Access Control Cluster and saves the value as maxEntries" verification: | disabled: true - label: - "TH1 creates a valid list of AccessControlEntryStructs with maxEntries - entries. Each AccessControlEntryStruct specifies maxSubjects subjects - and maxTargets targets. TH1 writes this list to the AccessControl - cluster ACL attribute" + "Step 81: TH1 creates a valid list of AccessControlEntryStructs with + maxEntries entries. Each AccessControlEntryStruct specifies + maxSubjects subjects and maxTargets targets. TH1 writes this list to + the AccessControl cluster ACL attribute" verification: | disabled: true - label: - "Repeat step 81 for TH2 through TH NumSupportedFabrics to fill the ACL - table" + "Step 82: Repeat step 81 for TH2 through TH NumSupportedFabrics to + fill the ACL table" verification: | disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml index 9434a0e7fde8bb..7b0beddcff57d2 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml @@ -14,7 +14,7 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 12.3.2. [TC-OPCREDS-3.2] Attribute-CurrentFabricIndex validation + 15.2.2. [TC-OPCREDS-3.2] Attribute-CurrentFabricIndex validation [DUT-Server] PICS: @@ -31,15 +31,15 @@ tests: This test case assumes that during Commissioning AddNOC will be sent with ICACValue disabled: true - - label: "Factory Reset DUT" + - label: "Step 1: Factory Reset DUT" verification: | On both DUT and TH side use the below command sudo rm -rf /tmp/chip_* disabled: true - label: - "Commission DUT to TH1s Fabric When DUT sends NOC response save - FabricIndex as FabricIndex_TH1" + "Step 2: Commission DUT to TH1s Fabric When DUT sends NOC response + save FabricIndex as FabricIndex_TH1" verification: | DUT side: sudo ./chip-all-clusters-app --wifi @@ -52,7 +52,7 @@ tests: After commissioning DUT to TH1's fabric read nocs - Verify the FabricIndex value during commissioning in TH Log + Save the FabricIndex and NOC value during commissioning in TH Log [1673248033.951950][1706:1708] CHIP:CTL: OperationalSessionSetup[1:0000000000000001]: State change 2 --> 3 [1673248033.952156][1706:1708] CHIP:IN: SecureSession[0xffffa803fa40]: Allocated Type:2 LSID:14065 @@ -94,20 +94,20 @@ tests: [1679562607.576155][126855:126857] CHIP:DMG: ] (241 bytes) disabled: true - - label: "Save TH1s Fabric ID as FabricID1" + - label: "Step 3: Save TH1s Fabric ID as FabricID1" verification: | Refer the above step disabled: true - label: - "Commission DUT to TH2s Fabric When DUT sends NOC response save - FabricIndex as FabricIndex_TH2" + "Step 4: Commission DUT to TH2s Fabric When DUT sends NOC response + save FabricIndex as FabricIndex_TH2" verification: | To commission DUT to TH2 follow below procedure ./chip-tool pairing open-commissioning-window 1 1 400 2000 3841 - Verify in TH2 Log: + Verify in TH1 Log: CHIP:IN: Sending encrypted msg 0xaaaad3464d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 5805157 msec [1635691999.946536][3822:3827] CHIP:DMG: ICR moving to [CommandSen] @@ -171,17 +171,17 @@ tests: [1681213277.147347][2983:2985] CHIP:DMG: ] (241 bytes) disabled: true - - label: "Save TH2s Fabric ID as FabricID2" + - label: "Step 5: Save TH2s Fabric ID as FabricID2" verification: | Refer the above step disabled: true - - label: "From TH1 read the CurrentFabricIndex" + - label: "Step 6: From TH1 read the CurrentFabricIndex" PICS: OPCREDS.S.A0005 verification: | ./chip-tool operationalcredentials read current-fabric-index 1 0 - Verify the current fabric index in TH Log + Verify the current fabric index in TH1 Log CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 2445178920 CHIP:TOO: CurrentFabricIndex: 1 @@ -194,12 +194,12 @@ tests: disabled: true - label: - "From TH1 read the entire NOCs List attribute with a + "Step 8: From TH1 read the entire NOCs List attribute with a non-fabric-filtered read" verification: | ./chip-tool operationalcredentials read nocs 1 0 - Verify the NOCs List in TH Log + Verify the NOCs List in TH1 Log [1658819541.245848][8318:8323] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 2645922631 [1658819541.245960][8318:8323] CHIP:TOO: NOCs: 1 entries @@ -226,12 +226,12 @@ tests: disabled: true - label: - "From TH1 read the entire NOCs List attribute with a fabric-filtered - read" + "Step 10: From TH1 read the entire NOCs List attribute with a + fabric-filtered read" verification: | ./chip-tool operationalcredentials read nocs 1 0 --fabric-filtered 1 - Verify the NOCs List in TH Log + Verify the NOCs List in TH1 Log [1658819590.504973][8327:8332] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 2645922631 [1658819590.505058][8327:8332] CHIP:TOO: NOCs: 1 entries @@ -257,11 +257,11 @@ tests: [1658819590.505292][8327:8332] CHIP:TOO: } disabled: true - - label: "Read NOCStruct values from entry at index 0" + - label: "Step 12: Read NOCStruct values from entry at index 0" verification: | ./chip-tool operationalcredentials read nocs 1 0 --fabric-filtered 1 - Verify FabricIndex field equal to FabricIndex_TH1 in TH Log + Verify FabricIndex field equal to FabricIndex_TH1 in TH1 Log [1658819590.504973][8327:8332] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 2645922631 [1658819590.505058][8327:8332] CHIP:TOO: NOCs: 1 entries @@ -289,12 +289,12 @@ tests: disabled: true - label: - "Read the Fabrics List and get the FabricDescriptorStruct for the - entry where FabricIndex = FabricIndex_TH1 from DUT" + "Step 14: Read the Fabrics List and get the FabricDescriptorStruct for + the entry where FabricIndex = FabricIndex_TH1 from DUT" verification: | ./chip-tool operationalcredentials read fabrics 1 0 - Verify FabricIndex = FabricIndex_TH1 in TH Log + Verify FabricIndex = FabricIndex_TH1 in TH1 Log [1657693240.722099][15129:15134] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 908345149 [1657693240.722200][15129:15134] CHIP:TOO: Fabrics: 1 entries @@ -327,7 +327,7 @@ tests: [1657693240.722522][15129:15134] CHIP:TOO: } disabled: true - - label: "From TH2 read the CurrentFabricIndex" + - label: "Step 16: From TH2 read the CurrentFabricIndex" verification: | ./chip-tool operationalcredentials read current-fabric-index 2 0 --commissioner-name beta @@ -344,7 +344,7 @@ tests: disabled: true - label: - "From TH2 read the entire NOCs List attribute with a + "Step 18: From TH2 read the entire NOCs List attribute with a non-fabric-filtered read" verification: | ./chip-tool operationalcredentials read nocs 2 0 --commissioner-name beta @@ -375,8 +375,8 @@ tests: disabled: true - label: - "From TH2 read the entire NOCs List attribute with a fabric-filtered - read" + "Step 20: From TH2 read the entire NOCs List attribute with a + fabric-filtered read" verification: | ./chip-tool operationalcredentials read nocs 2 0 --fabric-filtered 1 --commissioner-name beta @@ -407,7 +407,7 @@ tests: [1658819643.546478][8397:8402] CHIP:TOO: } disabled: true - - label: "Read NOCStruct values from entry at index 1" + - label: "Step 22: Read NOCStruct values from entry at index 1" verification: | ./chip-tool operationalcredentials read nocs 2 0 --commissioner-name beta diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml index 647ab381623bdd..82ae75fb18f437 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 12.3.3. [TC-OPCREDS-3.3] Attribute-NOCs, Commands [DUT-Client] +name: 15.3.1. [TC-OPCREDS-3.3] Attribute-NOCs, Commands [DUT-Client] PICS: - OPCREDS.C @@ -35,15 +35,15 @@ tests: disabled: true - label: - "Factory Reset DUT (to ensure NOC list is empty at the beginning of - the following steps)" + "Step 1: Factory Reset DUT (to ensure NOC list is empty at the + beginning of the following steps)" PICS: MCORE.UI.FACTORYRESET verification: | On both DUT and TH side, on Raspi we do factory reset with the below command. The DUT for cert should follow vendor specific procedure for factory reset sudo rm -rf /tmp/chip_* disabled: true - - label: "Start the commissioning process of TH with DUT" + - label: "Step 2: Start the commissioning process of TH with DUT" verification: | ./chip-tool pairing ble-wifi 1 GRLPrivate_EXT matter123 20202021 3840 --trace_decode 1 [1641381202.376419][5628:5633] CHIP:CTL: Received success response 0x3df8 @@ -52,322 +52,245 @@ tests: [1641381202.306840][4431:4431] CHIP:DL: NVS set: chip-config/regulatory-location = 0 (0x0) disabled: true - - label: "Verify that the DUT sends AttestationRequest Command to TH" + - label: + "Step 3: Verify that TH receives AttestationRequest Command from DUT" PICS: OPCREDS.C.C00.Tx verification: | - Verify that the DUT send AttestationRequest Command to TH(all-clusters-app) commissioning log + Verify that the TH(all-clusters-app) Receives AttestationRequest Command from DUT(chip-tool) in commissioning log - [1657778307.595402][8192:8197] CHIP:CTL: Commissioning stage next step: "SendDACCertificateRequest" -> "SendAttestationRequest" - [1657778307.595466][8192:8197] CHIP:CTL: Performing next commissioning step "SendAttestationRequest" - [1657778307.595517][8192:8197] CHIP:CTL: Sending Attestation Request to the device. - [1657778307.595568][8192:8197] CHIP:CTL: Sending Attestation request to 0xffff78000b60 device - [1657778307.595684][8192:8197] CHIP:DMG: ICR moving to [AddingComm] - [1657778307.595755][8192:8197] CHIP:DMG: ICR moving to [AddedComma] - [1657778307.596288][8192:8197] CHIP:IN: Prepared secure message 0xffff8ccc8988 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 40143i with MessageCounter:181296337. - [1657778307.596388][8192:8197] CHIP:IN: Sending encrypted msg 0xffff8ccc8988 with MessageCounter:181296337 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000000B2EBB8 msec - [1657778307.596863][8192:8197] CHIP:DMG: >> to BLE | 181296337 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 7643 / Exchange = 40143] - [1657778307.596952][8192:8197] CHIP:DMG: Header Flags = - [1657778307.597006][8192:8197] CHIP:DMG: { - [1657778307.597089][8192:8197] CHIP:DMG: Exchange (0x01) = - [1657778307.597142][8192:8197] CHIP:DMG: { - [1657778307.597190][8192:8197] CHIP:DMG: Initiator = true - [1657778307.597241][8192:8197] CHIP:DMG: } - [1657778307.597308][8192:8197] CHIP:DMG: } - [1657778307.597360][8192:8197] CHIP:DMG: - [1657778307.597426][8192:8197] CHIP:DMG: Encrypted Payload (94 bytes) = - [1657778307.597479][8192:8197] CHIP:DMG: { - [1657778307.597531][8192:8197] CHIP:DMG: data = 00db1d00d15cce0a9e41196dfa37634da5b2fe6edc59e3c5f5911b6ed350fd5b1eafeb716efe7da2c6a78ef40ae5394491e778c404fc584791108e44818806ec871cfa2265860edc0ef34774a4279ee2207afe4a68ae2f1520b45df66605 - [1657778307.597586][8192:8197] CHIP:DMG: buffer_ptr = 281472695099056 - [1657778307.597637][8192:8197] CHIP:DMG: } - [1657778307.597685][8192:8197] CHIP:DMG: - [1657778307.597840][8192:8197] CHIP:DMG: InvokeRequestMessage = - [1657778307.597902][8192:8197] CHIP:DMG: { - [1657778307.597957][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778307.597989][8192:8197] CHIP:DMG: timedRequest = false, - [1657778307.598016][8192:8197] CHIP:DMG: InvokeRequests = - [1657778307.598050][8192:8197] CHIP:DMG: [ - [1657778307.598091][8192:8197] CHIP:DMG: CommandDataIB = - [1657778307.598130][8192:8197] CHIP:DMG: { - [1657778307.598159][8192:8197] CHIP:DMG: CommandPathIB = - [1657778307.598193][8192:8197] CHIP:DMG: { - [1657778307.598229][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778307.598266][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778307.598302][8192:8197] CHIP:DMG: CommandId = 0x0, - [1657778307.598337][8192:8197] CHIP:DMG: }, - [1657778307.598372][8192:8197] CHIP:DMG: - [1657778307.598402][8192:8197] CHIP:DMG: CommandFields = - [1657778307.598436][8192:8197] CHIP:DMG: { - [1657778307.598472][8192:8197] CHIP:DMG: 0x0 = [ - [1657778307.598518][8192:8197] CHIP:DMG: 0x8d, 0x1f, 0x15, 0xd8, 0x1b, 0xd8, 0x1a, 0x3, 0xfe, 0x93, 0xc3, 0x58, 0x17, 0x48, 0xa9, 0x33, 0xe2, 0xfe, 0xba, 0x0, 0xfd, 0x6e, 0xc, 0xfb, 0x49, 0x13, 0xdb, 0x0, 0xca, 0x8a, 0x6a, 0xcf, - [1657778307.598555][8192:8197] CHIP:DMG: ] - [1657778307.598592][8192:8197] CHIP:DMG: }, - [1657778307.598621][8192:8197] CHIP:DMG: }, - [1657778307.598655][8192:8197] CHIP:DMG: - [1657778307.598681][8192:8197] CHIP:DMG: ], - [1657778307.598715][8192:8197] CHIP:DMG: - [1657778307.598741][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778307.598768][8192:8197] CHIP:DMG: }, - [1657778307.598793][8192:8197] CHIP:DMG: - [1657778307.598918][8192:8197] CHIP:DMG: ICR moving to [CommandSen] - [1657778307.598957][8192:8197] CHIP:CTL: Sent Attestation request, waiting for the Attestation Information - [1657778307.599005][8192:8197] CHIP:DMG: ICR moving to [AwaitingDe] - [1657778307.685794][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1657778307.734042][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778307.734282][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778307.834042][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778307.834170][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778307.932290][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778307.932502][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778307.933601][8192:8197] CHIP:DMG: << from BLE | 27198690 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 43164 / Exchange = 40143] - [1657778307.933675][8192:8197] CHIP:DMG: Header Flags = - [1657778307.933714][8192:8197] CHIP:DMG: { - [1657778307.933785][8192:8197] CHIP:DMG: } - [1657778307.933822][8192:8197] CHIP:DMG: - [1657778307.933873][8192:8197] CHIP:DMG: Encrypted Payload (716 bytes) = - [1657778307.933911][8192:8197] CHIP:DMG: { - [1657778307.933948][8192:8197] CHIP:DMG: data = 009ca800e2049f01825e076c2ef5d56303eed99eb3853fe31cead002e94f20b4431a903ce9a6e5aece94cb1e3c2e2b37bce851145c9678b2b01175c366becc41a618030cc6f516f791abe826e3928b1e85a62219ff195375dc19d936df65d1127a5513bc242c65d863c74fcd05cb748d585b5340cd4eda24ac0c8ab99dedf519894be01ee1d71a2126a3b08ff07478c12592178a14b4c0095eb23d58e41ba5e42b370399fd64a7390bf8b8ae85c3479ec2b4bdadd24d00d515d2a76ab00476cb40035e0d3f50b3485c9f47a8120608a1fdfc5e981e5e66d2e39247659ef31ecacbc1b2fa65cd4999539b9424d617557b8759e8cd3843d4cdcab6b003151a0a52d743f9b9a81dd35096191d9524d72622abf358df96b5761560c18028ea5fef958672c59208fa89473be7fe8c47667244d0d447ae7193c93808943a30d19fdd4df4c25bb3bcd8b1d137b561974bcbde73d144cda6953ce05f4f7a5db1d03226eba8647ba02f6844cca300d580811f4a93004cd28fc455a2845643142c8d30932f049030b967b1c265df35f32e782f88a463d33836f1084abaa324da45839bf425250e7dd2f5848a4981bbcf833ef6e1dea958d121cf0cd4a957583159a95662142263559a9a3556d49b8a9f6ce8eec2f91331cb0b7a84e3646b8500f2d0c46be9048d156403347ac6d5b7e331efe57644689f2cbb4400c5b52263a1d6ada06bfcab1d10a27aee313520f65812d6403e962adac054207e561bf94547787bdf5d91de9be84d6eca8e32da9ae3a34b5d68da55b9efd50e625a7e798d1ca14507789ec303a33446fe6e823b29575af6b6f12637d199bfef06169262de9d5f61bc4676192a6451d38d646e8ac17258ed50facba50e6cf88de03e1b515dbf43618c8af86cc5079607bb794ddf971cfc86737d17f2c606668a996b631cc79f2e8f89c572594717431316397fdc24701f6da563caae713851d285eb9aa80600e542227b723a4e2782cafaf43c97739eec - [1657778307.934037][8192:8197] CHIP:DMG: buffer_ptr = 281472695094080 - [1657778307.934072][8192:8197] CHIP:DMG: } - [1657778307.934107][8192:8197] CHIP:DMG: - [1657778307.934360][8192:8197] CHIP:DMG: Attestation Elements (585 bytes) = - [1657778307.934402][8192:8197] CHIP:DMG: { - [1657778307.934437][8192:8197] CHIP:DMG: Certification Declaration = - [1657778307.934472][8192:8197] CHIP:DMG: { - [1657778307.936415][8192:8197] CHIP:DMG: Format Version = 1 - [1657778307.936482][8192:8197] CHIP:DMG: Vendor Id = 65521 - [1657778307.936533][8192:8197] CHIP:DMG: Product Ids = - [1657778307.936580][8192:8197] CHIP:DMG: { - [1657778307.936629][8192:8197] CHIP:DMG: Product Id = 32768 - [1657778307.936679][8192:8197] CHIP:DMG: Product Id = 32769 - [1657778307.936727][8192:8197] CHIP:DMG: Product Id = 32770 - [1657778307.936776][8192:8197] CHIP:DMG: Product Id = 32771 - [1657778307.936825][8192:8197] CHIP:DMG: Product Id = 32772 - [1657778307.936875][8192:8197] CHIP:DMG: Product Id = 32773 - [1657778307.936923][8192:8197] CHIP:DMG: Product Id = 32774 - [1657778307.936972][8192:8197] CHIP:DMG: Product Id = 32775 - [1657778307.937021][8192:8197] CHIP:DMG: Product Id = 32776 - [1657778307.937070][8192:8197] CHIP:DMG: Product Id = 32777 - [1657778307.937118][8192:8197] CHIP:DMG: Product Id = 32778 - [1657778307.937167][8192:8197] CHIP:DMG: Product Id = 32779 - [1657778307.937215][8192:8197] CHIP:DMG: Product Id = 32780 - [1657778307.937264][8192:8197] CHIP:DMG: Product Id = 32781 - [1657778307.937313][8192:8197] CHIP:DMG: Product Id = 32782 - [1657778307.937362][8192:8197] CHIP:DMG: Product Id = 32783 - [1657778307.937410][8192:8197] CHIP:DMG: Product Id = 32784 - [1657778307.937459][8192:8197] CHIP:DMG: Product Id = 32785 - [1657778307.937507][8192:8197] CHIP:DMG: Product Id = 32786 - [1657778307.937556][8192:8197] CHIP:DMG: Product Id = 32787 - [1657778307.937605][8192:8197] CHIP:DMG: Product Id = 32788 - [1657778307.937654][8192:8197] CHIP:DMG: Product Id = 32789 - [1657778307.937702][8192:8197] CHIP:DMG: Product Id = 32790 - [1657778307.937751][8192:8197] CHIP:DMG: Product Id = 32791 - [1657778307.937799][8192:8197] CHIP:DMG: Product Id = 32792 - [1657778307.937848][8192:8197] CHIP:DMG: Product Id = 32793 - [1657778307.937897][8192:8197] CHIP:DMG: Product Id = 32794 - [1657778307.937946][8192:8197] CHIP:DMG: Product Id = 32795 - [1657778307.937994][8192:8197] CHIP:DMG: Product Id = 32796 - [1657778307.938043][8192:8197] CHIP:DMG: Product Id = 32797 - [1657778307.938092][8192:8197] CHIP:DMG: Product Id = 32798 - [1657778307.938140][8192:8197] CHIP:DMG: Product Id = 32799 - [1657778307.938189][8192:8197] CHIP:DMG: Product Id = 32800 - [1657778307.938238][8192:8197] CHIP:DMG: Product Id = 32801 - [1657778307.938287][8192:8197] CHIP:DMG: Product Id = 32802 - [1657778307.938336][8192:8197] CHIP:DMG: Product Id = 32803 - [1657778307.938384][8192:8197] CHIP:DMG: Product Id = 32804 - [1657778307.938433][8192:8197] CHIP:DMG: Product Id = 32805 - [1657778307.938481][8192:8197] CHIP:DMG: Product Id = 32806 - [1657778307.938530][8192:8197] CHIP:DMG: Product Id = 32807 - [1657778307.938578][8192:8197] CHIP:DMG: Product Id = 32808 - [1657778307.938628][8192:8197] CHIP:DMG: Product Id = 32809 - [1657778307.938677][8192:8197] CHIP:DMG: Product Id = 32810 - [1657778307.938725][8192:8197] CHIP:DMG: Product Id = 32811 - [1657778307.938773][8192:8197] CHIP:DMG: Product Id = 32812 - [1657778307.938823][8192:8197] CHIP:DMG: Product Id = 32813 - [1657778307.938871][8192:8197] CHIP:DMG: Product Id = 32814 - [1657778307.938920][8192:8197] CHIP:DMG: Product Id = 32815 - [1657778307.938969][8192:8197] CHIP:DMG: Product Id = 32816 - [1657778307.939018][8192:8197] CHIP:DMG: Product Id = 32817 - [1657778307.939067][8192:8197] CHIP:DMG: Product Id = 32818 - [1657778307.939115][8192:8197] CHIP:DMG: Product Id = 32819 - [1657778307.939164][8192:8197] CHIP:DMG: Product Id = 32820 - [1657778307.939213][8192:8197] CHIP:DMG: Product Id = 32821 - [1657778307.939262][8192:8197] CHIP:DMG: Product Id = 32822 - [1657778307.939311][8192:8197] CHIP:DMG: Product Id = 32823 - [1657778307.939360][8192:8197] CHIP:DMG: Product Id = 32824 - [1657778307.939408][8192:8197] CHIP:DMG: Product Id = 32825 - [1657778307.939457][8192:8197] CHIP:DMG: Product Id = 32826 - [1657778307.939505][8192:8197] CHIP:DMG: Product Id = 32827 - [1657778307.939554][8192:8197] CHIP:DMG: Product Id = 32828 - [1657778307.939603][8192:8197] CHIP:DMG: Product Id = 32829 - [1657778307.939652][8192:8197] CHIP:DMG: Product Id = 32830 - [1657778307.939701][8192:8197] CHIP:DMG: Product Id = 32831 - [1657778307.939749][8192:8197] CHIP:DMG: Product Id = 32832 - [1657778307.939797][8192:8197] CHIP:DMG: Product Id = 32833 - [1657778307.939846][8192:8197] CHIP:DMG: Product Id = 32834 - [1657778307.939895][8192:8197] CHIP:DMG: Product Id = 32835 - [1657778307.939944][8192:8197] CHIP:DMG: Product Id = 32836 - [1657778307.939985][8192:8197] CHIP:DMG: Product Id = 32837 - [1657778307.940024][8192:8197] CHIP:DMG: Product Id = 32838 - [1657778307.940064][8192:8197] CHIP:DMG: Product Id = 32839 - [1657778307.940103][8192:8197] CHIP:DMG: Product Id = 32840 - [1657778307.940180][8192:8197] CHIP:DMG: Product Id = 32841 - [1657778307.940232][8192:8197] CHIP:DMG: Product Id = 32842 - [1657778307.940281][8192:8197] CHIP:DMG: Product Id = 32843 - [1657778307.940331][8192:8197] CHIP:DMG: Product Id = 32844 - [1657778307.940380][8192:8197] CHIP:DMG: Product Id = 32845 - [1657778307.940428][8192:8197] CHIP:DMG: Product Id = 32846 - [1657778307.940477][8192:8197] CHIP:DMG: Product Id = 32847 - [1657778307.940525][8192:8197] CHIP:DMG: Product Id = 32848 - [1657778307.940573][8192:8197] CHIP:DMG: Product Id = 32849 - [1657778307.940622][8192:8197] CHIP:DMG: Product Id = 32850 - [1657778307.940671][8192:8197] CHIP:DMG: Product Id = 32851 - [1657778307.940719][8192:8197] CHIP:DMG: Product Id = 32852 - [1657778307.940768][8192:8197] CHIP:DMG: Product Id = 32853 - [1657778307.940816][8192:8197] CHIP:DMG: Product Id = 32854 - [1657778307.940864][8192:8197] CHIP:DMG: Product Id = 32855 - [1657778307.940913][8192:8197] CHIP:DMG: Product Id = 32856 - [1657778307.940961][8192:8197] CHIP:DMG: Product Id = 32857 - [1657778307.941011][8192:8197] CHIP:DMG: Product Id = 32858 - [1657778307.941060][8192:8197] CHIP:DMG: Product Id = 32859 - [1657778307.941108][8192:8197] CHIP:DMG: Product Id = 32860 - [1657778307.941157][8192:8197] CHIP:DMG: Product Id = 32861 - [1657778307.941205][8192:8197] CHIP:DMG: Product Id = 32862 - [1657778307.941254][8192:8197] CHIP:DMG: Product Id = 32863 - [1657778307.941303][8192:8197] CHIP:DMG: Product Id = 32864 - [1657778307.941352][8192:8197] CHIP:DMG: Product Id = 32865 - [1657778307.941503][8192:8197] CHIP:DMG: Product Id = 32866 - [1657778307.941554][8192:8197] CHIP:DMG: Product Id = 32867 - [1657778307.941603][8192:8197] CHIP:DMG: } - [1657778307.941652][8192:8197] CHIP:DMG: Device Type Id = 22 - [1657778307.941706][8192:8197] CHIP:DMG: Certificate Id (19) = ZIG20142ZB330003-24 - [1657778307.941758][8192:8197] CHIP:DMG: Security Level = 0 - [1657778307.941807][8192:8197] CHIP:DMG: Security Information = 0 - [1657778307.941857][8192:8197] CHIP:DMG: Version Number = 9876 - [1657778307.941905][8192:8197] CHIP:DMG: Certification Type = 0 - [1657778307.941953][8192:8197] CHIP:DMG: } - [1657778307.942008][8192:8197] CHIP:DMG: Attestation Nonce (32) = 8D1F15D81BD81A03FE93C3581748A933E2FEBA00FD6E0CFB4913DB00CA8A6ACF - [1657778307.942054][8192:8197] CHIP:DMG: Timestamp = 0 - [1657778307.942099][8192:8197] CHIP:DMG: } - [1657778307.942143][8192:8197] CHIP:DMG: - [1657778307.942197][8192:8197] CHIP:DMG: - [1657778307.942281][8192:8197] CHIP:DMG: Additional Fields = - [1657778307.942330][8192:8197] CHIP:DMG: { - [1657778307.942383][8192:8197] CHIP:DMG: peer_address = BLE - [1657778307.942430][8192:8197] CHIP:DMG: } - [1657778307.942473][8192:8197] CHIP:DMG: - [1657778307.942537][8192:8197] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:27198690 on exchange 40143i - [1657778307.942592][8192:8197] CHIP:EM: Found matching exchange: 40143i, Delegate: 0xffff78003520 - [1657778307.942676][8192:8197] CHIP:DMG: ICR moving to [ResponseRe] - [1657778307.942755][8192:8197] CHIP:DMG: InvokeResponseMessage = - [1657778307.942806][8192:8197] CHIP:DMG: { - [1657778307.942852][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778307.942878][8192:8197] CHIP:DMG: InvokeResponseIBs = - [1657778307.942911][8192:8197] CHIP:DMG: [ - [1657778307.942936][8192:8197] CHIP:DMG: InvokeResponseIB = - [1657778307.943029][8192:8197] CHIP:DMG: { - [1657778307.943058][8192:8197] CHIP:DMG: CommandDataIB = - [1657778307.943090][8192:8197] CHIP:DMG: { - [1657778307.943120][8192:8197] CHIP:DMG: CommandPathIB = - [1657778307.943158][8192:8197] CHIP:DMG: { - [1657778307.943193][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778307.943232][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778307.943269][8192:8197] CHIP:DMG: CommandId = 0x1, - [1657778307.943304][8192:8197] CHIP:DMG: }, - [1657778307.943339][8192:8197] CHIP:DMG: - [1657778307.943370][8192:8197] CHIP:DMG: CommandFields = - [1657778307.943405][8192:8197] CHIP:DMG: { - [1657778307.943440][8192:8197] CHIP:DMG: 0x0 = [ - [1657778307.943589][8192:8197] CHIP:DMG: 0x15, 0x31, 0x1, 0x1d, 0x2, 0x30, 0x82, 0x2, 0x19, 0x6, 0x9, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0xd, 0x1, 0x7, 0x2, 0xa0, 0x82, 0x2, 0xa, 0x30, 0x82, 0x2, 0x6, 0x2, 0x1, 0x3, 0x31, 0xd, 0x30, 0xb, 0x6, 0x9, 0x60, 0x86, 0x48, 0x1, 0x65, 0x3, 0x4, 0x2, 0x1, 0x30, 0x82, 0x1, 0x71, 0x6, 0x9, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0xd, 0x1, 0x7, 0x1, 0xa0, 0x82, 0x1, 0x62, 0x4, 0x82, 0x1, 0x5e, 0x15, 0x24, 0x0, 0x1, 0x25, 0x1, 0xf1, 0xff, 0x36, 0x2, 0x5, 0x0, 0x80, 0x5, 0x1, 0x80, 0x5, 0x2, 0x80, 0x5, 0x3, 0x80, 0x5, 0x4, 0x80, 0x5, 0x5, 0x80, 0x5, 0x6, 0x80, 0x5, 0x7, 0x80, 0x5, 0x8, 0x80, 0x5, 0x9, 0x80, 0x5, 0xa, 0x80, 0x5, 0xb, 0x80, 0x5, 0xc, 0x80, 0x5, 0xd, 0x80, 0x5, 0xe, 0x80, 0x5, 0xf, 0x80, 0x5, 0x10, 0x80, 0x5, 0x11, 0x80, 0x5, 0x12, 0x80, 0x5, 0x13, 0x80, 0x5, 0x14, 0x80, 0x5, 0x15, 0x80, 0x5, 0x16, 0x80, 0x5, 0x17, 0x80, 0x5, 0x18, 0x80, 0x5, 0x19, 0x80, 0x5, 0x1a, 0x80, 0x5, 0x1b, 0x80, 0x5, 0x1c, 0x80, 0x5, 0x1d, 0x80, 0x5, 0x1e, 0x80, 0x5, 0x1f, 0x80, 0x5, 0x20, 0x80, 0x5, 0x21, 0x80, 0x5, 0x22, 0x80, 0x5, 0x23, 0x80, 0x5, 0x24, 0x80, 0x5, 0x25, 0x80, 0x5, 0x26, 0x80, 0x5, 0x27, 0x80, 0x5, 0x28, 0x80, 0x5, 0x29, 0x80, 0x5, 0x2a, 0x80, 0x5, 0x2b, 0x80, 0x5, 0x2c, 0x80, 0x5, 0x2d, 0x80, 0x5, 0x2e, 0x80, 0x5, 0x2f, 0x80, 0x5, 0x30, 0x80, 0x5, 0x31, 0x80, 0x5, 0x32, 0x80, 0x5, 0x33, 0x80, 0x5, 0x34, 0x80, 0x5, 0x35, 0x80, 0x5, 0x36, 0x80, 0x5, 0x37, 0x80, 0x5, 0x38, 0x80, 0x5, 0x39, 0x80, 0x5, 0x3a, 0x80, 0x5, 0x3b, 0x80, 0x5, 0x3c, 0x80, 0x5, 0x3d, 0x80, 0x5, 0x3e, 0x80, 0x5, 0x3f, 0x80, 0x5, 0x40, 0x80, 0x5, 0x41, 0x80, 0x5, 0x42, 0x80, 0x5, 0x43, 0x80, 0x5, 0x44, 0x80, 0x5, 0x45, 0x80, 0x5, 0x46, 0x80, 0x5, 0x47, 0x80, 0x5, 0x48, 0x80, 0x5, 0x49, 0x80, 0x5, 0x4a, 0x80, 0x5, 0 - [1657778307.943664][8192:8197] CHIP:DMG: ] - [1657778307.943700][8192:8197] CHIP:DMG: 0x1 = [ - [1657778307.943756][8192:8197] CHIP:DMG: 0x93, 0x5b, 0xb8, 0x33, 0x3f, 0xde, 0xfc, 0xd, 0x52, 0x4c, 0x43, 0xcb, 0xf1, 0x3b, 0x4f, 0xf, 0x6c, 0x7c, 0x50, 0xe8, 0xd9, 0xf6, 0xcb, 0x67, 0x6c, 0x68, 0x65, 0xe7, 0x43, 0x93, 0xe, 0x52, 0x7c, 0x1, 0xb4, 0xe6, 0x7, 0x9b, 0x2d, 0x3e, 0xca, 0xac, 0xe3, 0xc6, 0x6, 0x4b, 0x1e, 0xd6, 0x79, 0x6a, 0xe6, 0xb8, 0xce, 0x93, 0xb4, 0xd5, 0xde, 0xff, 0xd, 0xf9, 0x75, 0xb8, 0x63, 0x8, - [1657778307.943807][8192:8197] CHIP:DMG: ] - [1657778307.943843][8192:8197] CHIP:DMG: }, - [1657778307.943875][8192:8197] CHIP:DMG: }, - [1657778307.943910][8192:8197] CHIP:DMG: - [1657778307.943939][8192:8197] CHIP:DMG: }, - [1657778307.943974][8192:8197] CHIP:DMG: - [1657778307.943999][8192:8197] CHIP:DMG: ], - [1657778307.944032][8192:8197] CHIP:DMG: - [1657778307.944057][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778307.944082][8192:8197] CHIP:DMG: }, - [1657778307.944160][8192:8197] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001 - [1657778307.944199][8192:8197] CHIP:CTL: Received Attestation Information from the device + Command=0x0000_0000 + [1689679303.594633][52705:52705] CHIP:ZCL: OpCreds: Received an AttestationRequest command + [1689679303.594696][52705:52705] CHIP:DMG: >> to UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 | 151581348 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 47827 / Exchange = 36146] + [1689679303.594702][52705:52705] CHIP:DMG: Header Flags = + [1689679303.594704][52705:52705] CHIP:DMG: { + [1689679303.594708][52705:52705] CHIP:DMG: Exchange (0x02) = + [1689679303.594711][52705:52705] CHIP:DMG: { + [1689679303.594713][52705:52705] CHIP:DMG: AckMsg = 135880641 + [1689679303.594716][52705:52705] CHIP:DMG: } + [1689679303.594721][52705:52705] CHIP:DMG: } + [1689679303.594724][52705:52705] CHIP:DMG: + [1689679303.594731][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.594733][52705:52705] CHIP:DMG: { + [1689679303.594737][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.594740][52705:52705] CHIP:DMG: } + [1689679303.594742][52705:52705] CHIP:DMG: + [1689679303.594752][52705:52705] CHIP:EM: <<< [E:36146r S:3817 M:151581348 (Ack:135880641)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689679303.594758][52705:52705] CHIP:IN: (S) Sending msg 151581348 on secure session with LSID: 3817 + [1689679303.594776][52705:52705] CHIP:EM: Flushed pending ack for MessageCounter:135880641 on exchange 36146r + [1689679303.595410][52705:52705] CHIP:ZCL: OpCreds: AttestationRequest successful. + [1689679303.595420][52705:52705] CHIP:DMG: Command handler moving to [ Preparing] + [1689679303.595424][52705:52705] CHIP:DMG: Command handler moving to [AddingComm] + [1689679303.595430][52705:52705] CHIP:DMG: Command handler moving to [AddedComma] + [1689679303.595440][52705:52705] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 + [1689679303.595540][52705:52705] CHIP:DMG: >> to UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 | 151581349 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 47827 / Exchange = 36146] + [1689679303.595546][52705:52705] CHIP:DMG: Header Flags = + [1689679303.595549][52705:52705] CHIP:DMG: { + [1689679303.595556][52705:52705] CHIP:DMG: Exchange (0x06) = + [1689679303.595559][52705:52705] CHIP:DMG: { + [1689679303.595563][52705:52705] CHIP:DMG: AckMsg = 135880641 + [1689679303.595566][52705:52705] CHIP:DMG: NeedsAck = true + [1689679303.595568][52705:52705] CHIP:DMG: } + [1689679303.595574][52705:52705] CHIP:DMG: } + [1689679303.595576][52705:52705] CHIP:DMG: + [1689679303.595579][52705:52705] CHIP:DMG: Decrypted Payload (684 bytes) = + [1689679303.595581][52705:52705] CHIP:DMG: { + [1689679303.595583][52705:52705] CHIP:DMG: data = 1528003601153500370024000024013e240201183501310047021531011b023082021706092a864886f70d010702a082020830820204020103310d300b06096086480165030402013082017006092a864886f70d010701a08201610482015d152400012501f1ff3602050080050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f80056080056180056280056380182403162c0413435341303030303053574330303030302d303024050024060024070124080018317c307a0201038014fe343f959947763b61ee4539131338494fe67d8e300b0609608648016503040201300a06082a8648ce3d0403020446304402204a12f8d42f90235c05a77121cbebae15d590146558e9c9b47a1a38f7a36a7dc5022020a4742897c30aeda0a56b36e14ebbc85bbdb74493f993581eb0444ed6ca940b3002200b26be8be08e49a87cd4a4f1af3f46185863568e60caab947202f2c01e4b25392403001830014062e6a464e67c20b4f666201c73e453d451d64cdaa6fa33c12f1c652570b95aa0ac4d43fcd279420a50e7ad596242491c94d750041ab65d9cdaf305483d164f2b1818181824ff0118 + [1689679303.595595][52705:52705] CHIP:DMG: } + [1689679303.595597][52705:52705] CHIP:DMG: + [1689679303.595624][52705:52705] CHIP:DMG: Attestation Elements (583 bytes) = + [1689679303.595626][52705:52705] CHIP:DMG: { + [1689679303.595628][52705:52705] CHIP:DMG: Certification Declaration = + [1689679303.595631][52705:52705] CHIP:DMG: { + [1689679303.595830][52705:52705] CHIP:DMG: Format Version = 1 + [1689679303.595836][52705:52705] CHIP:DMG: Vendor Id = 65521 + [1689679303.595839][52705:52705] CHIP:DMG: Product Ids = + [1689679303.595842][52705:52705] CHIP:DMG: { + [1689679303.595844][52705:52705] CHIP:DMG: Product Id = 32768 + [1689679303.595847][52705:52705] CHIP:DMG: Product Id = 32769 + [1689679303.595849][52705:52705] CHIP:DMG: Product Id = 32770 + [1689679303.595853][52705:52705] CHIP:DMG: Product Id = 32771 + [1689679303.595855][52705:52705] CHIP:DMG: Product Id = 32772 + [1689679303.595857][52705:52705] CHIP:DMG: Product Id = 32773 + [1689679303.595859][52705:52705] CHIP:DMG: Product Id = 32774 + [1689679303.595862][52705:52705] CHIP:DMG: Product Id = 32775 + [1689679303.595864][52705:52705] CHIP:DMG: Product Id = 32776 + [1689679303.595867][52705:52705] CHIP:DMG: Product Id = 32777 + [1689679303.595869][52705:52705] CHIP:DMG: Product Id = 32778 + [1689679303.595872][52705:52705] CHIP:DMG: Product Id = 32779 + [1689679303.595875][52705:52705] CHIP:DMG: Product Id = 32780 + [1689679303.595879][52705:52705] CHIP:DMG: Product Id = 32781 + [1689679303.595883][52705:52705] CHIP:DMG: Product Id = 32782 + [1689679303.595887][52705:52705] CHIP:DMG: Product Id = 32783 + [1689679303.595891][52705:52705] CHIP:DMG: Product Id = 32784 + [1689679303.595895][52705:52705] CHIP:DMG: Product Id = 32785 + [1689679303.595898][52705:52705] CHIP:DMG: Product Id = 32786 + [1689679303.595902][52705:52705] CHIP:DMG: Product Id = 32787 + [1689679303.595905][52705:52705] CHIP:DMG: Product Id = 32788 + [1689679303.595909][52705:52705] CHIP:DMG: Product Id = 32789 + [1689679303.595913][52705:52705] CHIP:DMG: Product Id = 32790 + [1689679303.595919][52705:52705] CHIP:DMG: Product Id = 32791 + [1689679303.595927][52705:52705] CHIP:DMG: Product Id = 32792 + [1689679303.595930][52705:52705] CHIP:DMG: Product Id = 32793 + [1689679303.595933][52705:52705] CHIP:DMG: Product Id = 32794 + [1689679303.595937][52705:52705] CHIP:DMG: Product Id = 32795 + [1689679303.595941][52705:52705] CHIP:DMG: Product Id = 32796 + [1689679303.595942][52705:52705] CHIP:DMG: Product Id = 32797 + [1689679303.595946][52705:52705] CHIP:DMG: Product Id = 32798 + [1689679303.595950][52705:52705] CHIP:DMG: Product Id = 32799 + [1689679303.595952][52705:52705] CHIP:DMG: Product Id = 32800 + [1689679303.595955][52705:52705] CHIP:DMG: Product Id = 32801 + [1689679303.595959][52705:52705] CHIP:DMG: Product Id = 32802 + [1689679303.595960][52705:52705] CHIP:DMG: Product Id = 32803 + [1689679303.595964][52705:52705] CHIP:DMG: Product Id = 32804 + [1689679303.595967][52705:52705] CHIP:DMG: Product Id = 32805 + [1689679303.595969][52705:52705] CHIP:DMG: Product Id = 32806 + [1689679303.595973][52705:52705] CHIP:DMG: Product Id = 32807 + [1689679303.595976][52705:52705] CHIP:DMG: Product Id = 32808 + [1689679303.595978][52705:52705] CHIP:DMG: Product Id = 32809 + [1689679303.595981][52705:52705] CHIP:DMG: Product Id = 32810 + [1689679303.595983][52705:52705] CHIP:DMG: Product Id = 32811 + [1689679303.595987][52705:52705] CHIP:DMG: Product Id = 32812 + [1689679303.595990][52705:52705] CHIP:DMG: Product Id = 32813 + [1689679303.595992][52705:52705] CHIP:DMG: Product Id = 32814 + [1689679303.595995][52705:52705] CHIP:DMG: Product Id = 32815 + [1689679303.595999][52705:52705] CHIP:DMG: Product Id = 32816 + [1689679303.596003][52705:52705] CHIP:DMG: Product Id = 32817 + [1689679303.596006][52705:52705] CHIP:DMG: Product Id = 32818 + [1689679303.596010][52705:52705] CHIP:DMG: Product Id = 32819 + [1689679303.596013][52705:52705] CHIP:DMG: Product Id = 32820 + [1689679303.596017][52705:52705] CHIP:DMG: Product Id = 32821 + [1689679303.596020][52705:52705] CHIP:DMG: Product Id = 32822 + [1689679303.596024][52705:52705] CHIP:DMG: Product Id = 32823 + [1689679303.596028][52705:52705] CHIP:DMG: Product Id = 32824 + [1689679303.596032][52705:52705] CHIP:DMG: Product Id = 32825 + [1689679303.596035][52705:52705] CHIP:DMG: Product Id = 32826 + [1689679303.596038][52705:52705] CHIP:DMG: Product Id = 32827 + [1689679303.596041][52705:52705] CHIP:DMG: Product Id = 32828 + [1689679303.596044][52705:52705] CHIP:DMG: Product Id = 32829 + [1689679303.596047][52705:52705] CHIP:DMG: Product Id = 32830 + [1689679303.596051][52705:52705] CHIP:DMG: Product Id = 32831 + [1689679303.596054][52705:52705] CHIP:DMG: Product Id = 32832 + [1689679303.596056][52705:52705] CHIP:DMG: Product Id = 32833 + [1689679303.596060][52705:52705] CHIP:DMG: Product Id = 32834 + [1689679303.596063][52705:52705] CHIP:DMG: Product Id = 32835 + [1689679303.596066][52705:52705] CHIP:DMG: Product Id = 32836 + [1689679303.596068][52705:52705] CHIP:DMG: Product Id = 32837 + [1689679303.596072][52705:52705] CHIP:DMG: Product Id = 32838 + [1689679303.596075][52705:52705] CHIP:DMG: Product Id = 32839 + [1689679303.596079][52705:52705] CHIP:DMG: Product Id = 32840 + [1689679303.596083][52705:52705] CHIP:DMG: Product Id = 32841 + [1689679303.596086][52705:52705] CHIP:DMG: Product Id = 32842 + [1689679303.596090][52705:52705] CHIP:DMG: Product Id = 32843 + [1689679303.596091][52705:52705] CHIP:DMG: Product Id = 32844 + [1689679303.596095][52705:52705] CHIP:DMG: Product Id = 32845 + [1689679303.596098][52705:52705] CHIP:DMG: Product Id = 32846 + [1689679303.596100][52705:52705] CHIP:DMG: Product Id = 32847 + [1689679303.596104][52705:52705] CHIP:DMG: Product Id = 32848 + [1689679303.596107][52705:52705] CHIP:DMG: Product Id = 32849 + [1689679303.596109][52705:52705] CHIP:DMG: Product Id = 32850 + [1689679303.596111][52705:52705] CHIP:DMG: Product Id = 32851 + [1689679303.596113][52705:52705] CHIP:DMG: Product Id = 32852 + [1689679303.596115][52705:52705] CHIP:DMG: Product Id = 32853 + [1689679303.596118][52705:52705] CHIP:DMG: Product Id = 32854 + [1689679303.596121][52705:52705] CHIP:DMG: Product Id = 32855 + [1689679303.596125][52705:52705] CHIP:DMG: Product Id = 32856 + [1689679303.596129][52705:52705] CHIP:DMG: Product Id = 32857 + [1689679303.596133][52705:52705] CHIP:DMG: Product Id = 32858 + [1689679303.596137][52705:52705] CHIP:DMG: Product Id = 32859 + [1689679303.596140][52705:52705] CHIP:DMG: Product Id = 32860 + [1689679303.596144][52705:52705] CHIP:DMG: Product Id = 32861 + [1689679303.596151][52705:52705] CHIP:DMG: Product Id = 32862 + [1689679303.596155][52705:52705] CHIP:DMG: Product Id = 32863 + [1689679303.596158][52705:52705] CHIP:DMG: Product Id = 32864 + [1689679303.596161][52705:52705] CHIP:DMG: Product Id = 32865 + [1689679303.596164][52705:52705] CHIP:DMG: Product Id = 32866 + [1689679303.596168][52705:52705] CHIP:DMG: Product Id = 32867 + [1689679303.596171][52705:52705] CHIP:DMG: } + [1689679303.596174][52705:52705] CHIP:DMG: Device Type Id = 22 + [1689679303.596178][52705:52705] CHIP:DMG: Certificate Id (19) = CSA00000SWC00000-00 + [1689679303.596182][52705:52705] CHIP:DMG: Security Level = 0 + [1689679303.596185][52705:52705] CHIP:DMG: Security Information = 0 + [1689679303.596188][52705:52705] CHIP:DMG: Version Number = 1 + [1689679303.596191][52705:52705] CHIP:DMG: Certification Type = 0 + [1689679303.596194][52705:52705] CHIP:DMG: } + [1689679303.596199][52705:52705] CHIP:DMG: Attestation Nonce (32) = 0B26BE8BE08E49A87CD4A4F1AF3F46185863568E60CAAB947202F2C01E4B2539 + [1689679303.596202][52705:52705] CHIP:DMG: Timestamp = 0 + [1689679303.596204][52705:52705] CHIP:DMG: } + [1689679303.596207][52705:52705] CHIP:DMG: + [1689679303.596216][52705:52705] CHIP:DMG: InvokeResponseMessage = + [1689679303.596220][52705:52705] CHIP:DMG: { + [1689679303.596222][52705:52705] CHIP:DMG: suppressResponse = false, + [1689679303.596225][52705:52705] CHIP:DMG: InvokeResponseIBs = + [1689679303.596231][52705:52705] CHIP:DMG: [ + [1689679303.596235][52705:52705] CHIP:DMG: InvokeResponseIB = + [1689679303.596241][52705:52705] CHIP:DMG: { + [1689679303.596244][52705:52705] CHIP:DMG: CommandDataIB = + [1689679303.596248][52705:52705] CHIP:DMG: { + [1689679303.596252][52705:52705] CHIP:DMG: CommandPathIB = + [1689679303.596256][52705:52705] CHIP:DMG: { + [1689679303.596260][52705:52705] CHIP:DMG: EndpointId = 0x0, + [1689679303.596265][52705:52705] CHIP:DMG: ClusterId = 0x3e, + [1689679303.596268][52705:52705] CHIP:DMG: CommandId = 0x1, + [1689679303.596270][52705:52705] CHIP:DMG: }, + [1689679303.596274][52705:52705] CHIP:DMG: + [1689679303.596277][52705:52705] CHIP:DMG: CommandFields = + [1689679303.596281][52705:52705] CHIP:DMG: { + [1689679303.596285][52705:52705] CHIP:DMG: 0x0 = [ + [1689679303.596311][52705:52705] CHIP:DMG: 0x15, 0x31, 0x01, 0x1b, 0x02, 0x30, 0x82, 0x02, 0x17, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x02, 0x08, 0x30, 0x82, 0x02, 0x04, 0x02, 0x01, 0x03, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x82, 0x01, 0x70, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x01, 0x61, 0x04, 0x82, 0x01, 0x5d, 0x15, 0x24, 0x00, 0x01, 0x25, 0x01, 0xf1, 0xff, 0x36, 0x02, 0x05, 0x00, 0x80, 0x05, 0x01, 0x80, 0x05, 0x02, 0x80, 0x05, 0x03, 0x80, 0x05, 0x04, 0x80, 0x05, 0x05, 0x80, 0x05, 0x06, 0x80, 0x05, 0x07, 0x80, 0x05, 0x08, 0x80, 0x05, 0x09, 0x80, 0x05, 0x0a, 0x80, 0x05, 0x0b, 0x80, 0x05, 0x0c, 0x80, 0x05, 0x0d, 0x80, 0x05, 0x0e, 0x80, 0x05, 0x0f, 0x80, 0x05, 0x10, 0x80, 0x05, 0x11, 0x80, 0x05, 0x12, 0x80, 0x05, 0x13, 0x80, 0x05, 0x14, 0x80, 0x05, 0x15, 0x80, 0x05, 0x16, 0x80, 0x05, 0x17, 0x80, 0x05, 0x18, 0x80, 0x05, 0x19, 0x80, 0x05, 0x1a, 0x80, 0x05, 0x1b, 0x80, 0x05, 0x1c, 0x80, 0x05, 0x1d, 0x80, 0x05, 0x1e, 0x80, 0x05, 0x1f, 0x80, 0x05, 0x20, 0x80, 0x05, 0x21, 0x80, 0x05, 0x22, 0x80, 0x05, 0x23, 0x80, 0x05, 0x24, 0x80, 0x05, 0x25, 0x80, 0x05, 0x26, 0x80, 0x05, 0x27, 0x80, 0x05, 0x28, 0x80, 0x05, 0x29, 0x80, 0x05, 0x2a, 0x80, 0x05, 0x2b, 0x80, 0x05, 0x2c, 0x80, 0x05, 0x2d, 0x80, 0x05, 0x2e, 0x80, 0x05, 0x2f, 0x80, 0x05, 0x30, 0x80, 0x05, 0x31, 0x80, 0x05, 0x32, 0x80, 0x05, 0x33, 0x80, 0x05, 0x34, 0x80, 0x05, 0x35, 0x80, 0x05, 0x36, 0x80, 0x05, 0x37, 0x80, 0x05, 0x38, 0x80, 0x05, 0x39, 0x80, 0x05, 0x3a, 0x80, 0x05, 0x3b, 0x80, 0x05, 0x3c, 0x80, 0x05, 0x3d, 0x80, 0x05, 0x3e, 0x80, 0x05, 0x3f, 0x80, 0x05, 0x40, 0x80, 0x05, 0x41, 0x80, 0x05, 0x42, 0x80, 0x05, 0x43, 0x80, 0x + [1689679303.596324][52705:52705] CHIP:DMG: ] (583 bytes) + [1689679303.596329][52705:52705] CHIP:DMG: 0x1 = [ + [1689679303.596346][52705:52705] CHIP:DMG: 0x62, 0xe6, 0xa4, 0x64, 0xe6, 0x7c, 0x20, 0xb4, 0xf6, 0x66, 0x20, 0x1c, 0x73, 0xe4, 0x53, 0xd4, 0x51, 0xd6, 0x4c, 0xda, 0xa6, 0xfa, 0x33, 0xc1, 0x2f, 0x1c, 0x65, 0x25, 0x70, 0xb9, 0x5a, 0xa0, 0xac, 0x4d, 0x43, 0xfc, 0xd2, 0x79, 0x42, 0x0a, 0x50, 0xe7, 0xad, 0x59, 0x62, 0x42, 0x49, 0x1c, 0x94, 0xd7, 0x50, 0x04, 0x1a, 0xb6, 0x5d, 0x9c, 0xda, 0xf3, 0x05, 0x48, 0x3d, 0x16, 0x4f, 0x2b, + [1689679303.596354][52705:52705] CHIP:DMG: ] (64 bytes) + [1689679303.596360][52705:52705] CHIP:DMG: }, + [1689679303.596363][52705:52705] CHIP:DMG: }, + [1689679303.596369][52705:52705] CHIP:DMG: + [1689679303.596372][52705:52705] CHIP:DMG: }, + [1689679303.596378][52705:52705] CHIP:DMG: + [1689679303.596381][52705:52705] CHIP:DMG: ], + [1689679303.596387][52705:52705] CHIP:DMG: + [1689679303.596390][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689679303.596393][52705:52705] CHIP:DMG: }, + [1689679303.596396][52705:52705] CHIP:DMG: + [1689679303.596406][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.596408][52705:52705] CHIP:DMG: { + [1689679303.596412][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.596415][52705:52705] CHIP:DMG: } + [1689679303.596418][52705:52705] CHIP:DMG: + [1689679303.596432][52705:52705] CHIP:EM: <<< [E:36146r S:3817 M:151581349 (Ack:135880641)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1689679303.596439][52705:52705] CHIP:IN: (S) Sending msg 151581349 on secure session with LSID: 3817 + [1689679303.596473][52705:52705] CHIP:DMG: Command handler moving to [CommandSen] + [1689679303.596477][52705:52705] CHIP:DMG: Command handler moving to [AwaitingDe] disabled: true - - label: "Verify that the DUT sends CertificateChainRequest Command to TH" + - label: + "Step 4: Verify that TH receives CertificateChainRequest Command from + DUT" PICS: OPCREDS.C.C02.Tx verification: | - Verify that the DUT send CertificateChainRequest Command to TH (all-clusters-app) commissioning log + Verify that the TH (all-clusters-app) Receives CertificateChainRequest Command from DUT in commissioning log - [1657778306.864918][8192:8197] CHIP:CTL: Sending Certificate Chain request to 0xffff78000b60 device - [1657778306.865059][8192:8197] CHIP:DMG: ICR moving to [AddingComm] - [1657778306.865316][8192:8197] CHIP:DMG: ICR moving to [AddedComma] - [1657778306.865857][8192:8197] CHIP:IN: Prepared secure message 0xffff8ccc89b8 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 40141i with MessageCounter:181296335. - [1657778306.865956][8192:8197] CHIP:IN: Sending encrypted msg 0xffff8ccc89b8 with MessageCounter:181296335 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000000B2E8DD msec - [1657778306.866442][8192:8197] CHIP:DMG: >> to BLE | 181296335 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 7643 / Exchange = 40141] - [1657778306.866533][8192:8197] CHIP:DMG: Header Flags = - [1657778306.866587][8192:8197] CHIP:DMG: { - [1657778306.866669][8192:8197] CHIP:DMG: Exchange (0x01) = - [1657778306.866723][8192:8197] CHIP:DMG: { - [1657778306.866791][8192:8197] CHIP:DMG: Initiator = true - [1657778306.866844][8192:8197] CHIP:DMG: } - [1657778306.866919][8192:8197] CHIP:DMG: } - [1657778306.866946][8192:8197] CHIP:DMG: - [1657778306.866990][8192:8197] CHIP:DMG: Encrypted Payload (62 bytes) = - [1657778306.867085][8192:8197] CHIP:DMG: { - [1657778306.867114][8192:8197] CHIP:DMG: data = 00db1d00cf5cce0ad858b96c9ddd6fd789b65304d9b51b8ed1281582a8f6a42d042f5b23a03b17cba47b82664d2eeed12ce8d1dcdf53e5bbaa8d2f399ef3 - [1657778306.867141][8192:8197] CHIP:DMG: buffer_ptr = 281472695086464 - [1657778306.867177][8192:8197] CHIP:DMG: } - [1657778306.867202][8192:8197] CHIP:DMG: - [1657778306.867290][8192:8197] CHIP:DMG: InvokeRequestMessage = - [1657778306.867334][8192:8197] CHIP:DMG: { - [1657778306.867362][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778306.867404][8192:8197] CHIP:DMG: timedRequest = false, - [1657778306.867434][8192:8197] CHIP:DMG: InvokeRequests = - [1657778306.867481][8192:8197] CHIP:DMG: [ - [1657778306.867512][8192:8197] CHIP:DMG: CommandDataIB = - [1657778306.867555][8192:8197] CHIP:DMG: { - [1657778306.867587][8192:8197] CHIP:DMG: CommandPathIB = - [1657778306.867634][8192:8197] CHIP:DMG: { - [1657778306.867672][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778306.867723][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778306.867773][8192:8197] CHIP:DMG: CommandId = 0x2, - [1657778306.867814][8192:8197] CHIP:DMG: }, - [1657778306.867863][8192:8197] CHIP:DMG: - [1657778306.867895][8192:8197] CHIP:DMG: CommandFields = - [1657778306.867942][8192:8197] CHIP:DMG: { - [1657778306.867980][8192:8197] CHIP:DMG: 0x0 = 2, - [1657778306.868020][8192:8197] CHIP:DMG: }, - [1657778306.868054][8192:8197] CHIP:DMG: }, - [1657778306.868090][8192:8197] CHIP:DMG: - [1657778306.868118][8192:8197] CHIP:DMG: ], - [1657778306.868173][8192:8197] CHIP:DMG: - [1657778306.868203][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778306.868232][8192:8197] CHIP:DMG: }, - [1657778306.868259][8192:8197] CHIP:DMG: - [1657778306.868386][8192:8197] CHIP:DMG: ICR moving to [CommandSen] - [1657778306.868454][8192:8197] CHIP:DMG: ICR moving to [AwaitingDe] - [1657778307.003433][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1657778307.051604][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778307.051836][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778307.152471][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778307.152715][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778307.247304][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778307.247492][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778307.248434][8192:8197] CHIP:DMG: << from BLE | 27198688 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 43164 / Exchange = 40141] - [1657778307.248505][8192:8197] CHIP:DMG: Header Flags = - [1657778307.248543][8192:8197] CHIP:DMG: { - [1657778307.248607][8192:8197] CHIP:DMG: } - [1657778307.248644][8192:8197] CHIP:DMG: - [1657778307.248712][8192:8197] CHIP:DMG: Encrypted Payload (527 bytes) = - [1657778307.248749][8192:8197] CHIP:DMG: { - [1657778307.248799][8192:8197] CHIP:DMG: data = 009ca800e0049f01e94e5d64370df635edc6d12163c261988f11dc6daf7e81d14dbe977643043af413f047a62280ba0e417261eb0f1392975b34aa9ada75dbe41609b489150b0e7f8ae179e68d4b3d3d6d2d536298d68a5cedf1bf7d123a524c111c34a142c368c7481e2f6e135ec15ff6acec7a066da8169edf664f8532b174c2c27e84c895f5586bf2d1c4ea72b76425bbc4437db7246afd1f026765095be4d99afdd25873244dd2180d7d95efcd81ec341f8acdc2c5d5c85cee54009c4572ca0745a6b30c287787a681d60fd9c7063d9efcaebf95ebb8122f3895af426470f87f5d2b9a9f2a9fe6a4843f4b3b1757e8674ebabe30257ad598495f699b2d3cb7fededfacdda5dca42181efaea575d7eb8561095be3dc7d41d619bb0d780b2018f2bec397447f6ce6902e82f9a9e63e4db03e22ec24e32bba955e86d14281b9486a018b1e7bcda903daeb4d3dab116800b680b4d23ec22eee01df1c36aebaaba931934cab46c0c4cbf4cddf3a87f33b0bfe1243c9a20de53c4d2335c5e26f94cb6ae78487398ef658787b718a27b602a21649f96de469dd45d589cdb5f4992a0014d6fb2fd2b2e7ff541d486613c1e6f161a3623e9b8d08c2bfe27a240d42537f8f8da957bd436cfcf1ba550708b2e7f57ed3d36340dde77cecbb0f33e7f02ea563d1c040a5d7210dfbe42e92721a483bc560dc5fd545535f28cc939555959a9b57f43037496a3047dae781e91b3a - [1657778307.248871][8192:8197] CHIP:DMG: buffer_ptr = 281472695094080 - [1657778307.248921][8192:8197] CHIP:DMG: } - [1657778307.248955][8192:8197] CHIP:DMG: - [1657778307.249129][8192:8197] CHIP:DMG: DAC/PAI (463) = - [1657778307.249219][8192:8197] CHIP:DMG: { + [1689679303.591413][52705:52705] CHIP:ZCL: OpCreds: Certificate Chain request received for PAI + [1689679303.591421][52705:52705] CHIP:DMG: Command handler moving to [ Preparing] + [1689679303.591426][52705:52705] CHIP:DMG: Command handler moving to [AddingComm] + [1689679303.591432][52705:52705] CHIP:DMG: Command handler moving to [AddedComma] + [1689679303.591440][52705:52705] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 + [1689679303.591524][52705:52705] CHIP:DMG: >> to UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 | 151581346 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 47827 / Exchange = 36144] + [1689679303.591532][52705:52705] CHIP:DMG: Header Flags = + [1689679303.591535][52705:52705] CHIP:DMG: { + [1689679303.591542][52705:52705] CHIP:DMG: Exchange (0x06) = + [1689679303.591545][52705:52705] CHIP:DMG: { + [1689679303.591550][52705:52705] CHIP:DMG: AckMsg = 135880637 + [1689679303.591553][52705:52705] CHIP:DMG: NeedsAck = true + [1689679303.591556][52705:52705] CHIP:DMG: } + [1689679303.591562][52705:52705] CHIP:DMG: } + [1689679303.591565][52705:52705] CHIP:DMG: + [1689679303.591569][52705:52705] CHIP:DMG: Decrypted Payload (497 bytes) = + [1689679303.591571][52705:52705] CHIP:DMG: { + [1689679303.591574][52705:52705] CHIP:DMG: data = 1528003601153500370024000024013e2402031835013100cf01308201cb30820171a003020102020856ad8222ad945b64300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303230353030303030305a180f39393939313233313233353935395a303d3125302306035504030c1c4d6174746572204465762050414920307846464631206e6f2050494431143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004419a9315c2173e0c8c876d03ccfc944852647f7fec5e5082f4059928eca894c594151309ac631e4cb03392af684b0bafb7e65b3b8162c2f52bf931b8e77aaa82a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041463540e47f64b1c38d13884a462d16c195d8ffb3c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100b2ef27f49ae9b50fb91eeac94c4d0bdbb8d7929c6cb88face529368d12054c0c0220655dc92b86bd909882a6c62177b825d7d05edbe7c22f9fea71220e7ea703f8911818181824ff0118 + [1689679303.591583][52705:52705] CHIP:DMG: } + [1689679303.591586][52705:52705] CHIP:DMG: + [1689679303.591613][52705:52705] CHIP:DMG: DAC/PAI (463) = + [1689679303.591625][52705:52705] CHIP:DMG: { -----BEGIN CERTIFICATE----- MIIByzCCAXGgAwIBAgIIVq2CIq2UW2QwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjAyMDUw @@ -380,559 +303,390 @@ tests: zj0EAwIDSAAwRQIhALLvJ/Sa6bUPuR7qyUxNC9u415KcbLiPrOUpNo0SBUwMAiBl Xckrhr2QmIKmxiF3uCXX0F7b58Ivn+pxIg5+pwP4kQ== -----END CERTIFICATE----- - [1657778307.249375][8192:8197] CHIP:DMG: } - [1657778307.249410][8192:8197] CHIP:DMG: - [1657778307.249453][8192:8197] CHIP:DMG: - [1657778307.249520][8192:8197] CHIP:DMG: Additional Fields = - [1657778307.249557][8192:8197] CHIP:DMG: { - [1657778307.249610][8192:8197] CHIP:DMG: peer_address = BLE - [1657778307.249646][8192:8197] CHIP:DMG: } - [1657778307.249693][8192:8197] CHIP:DMG: - [1657778307.249739][8192:8197] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:27198688 on exchange 40141i - [1657778307.249797][8192:8197] CHIP:EM: Found matching exchange: 40141i, Delegate: 0xffff78003520 - [1657778307.249862][8192:8197] CHIP:DMG: ICR moving to [ResponseRe] - [1657778307.249942][8192:8197] CHIP:DMG: InvokeResponseMessage = - [1657778307.249984][8192:8197] CHIP:DMG: { - [1657778307.250036][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778307.250076][8192:8197] CHIP:DMG: InvokeResponseIBs = - [1657778307.250141][8192:8197] CHIP:DMG: [ - [1657778307.250181][8192:8197] CHIP:DMG: InvokeResponseIB = - [1657778307.250252][8192:8197] CHIP:DMG: { - [1657778307.250311][8192:8197] CHIP:DMG: CommandDataIB = - [1657778307.250368][8192:8197] CHIP:DMG: { - [1657778307.250436][8192:8197] CHIP:DMG: CommandPathIB = - [1657778307.250505][8192:8197] CHIP:DMG: { - [1657778307.250567][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778307.250638][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778307.250716][8192:8197] CHIP:DMG: CommandId = 0x3, - [1657778307.250770][8192:8197] CHIP:DMG: }, - [1657778307.250844][8192:8197] CHIP:DMG: - [1657778307.250909][8192:8197] CHIP:DMG: CommandFields = - [1657778307.250964][8192:8197] CHIP:DMG: { - [1657778307.251031][8192:8197] CHIP:DMG: 0x0 = [ - [1657778307.251285][8192:8197] CHIP:DMG: 0x30, 0x82, 0x1, 0xcb, 0x30, 0x82, 0x1, 0x71, 0xa0, 0x3, 0x2, 0x1, 0x2, 0x2, 0x8, 0x56, 0xad, 0x82, 0x22, 0xad, 0x94, 0x5b, 0x64, 0x30, 0xa, 0x6, 0x8, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x4, 0x3, 0x2, 0x30, 0x30, 0x31, 0x18, 0x30, 0x16, 0x6, 0x3, 0x55, 0x4, 0x3, 0xc, 0xf, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x50, 0x41, 0x41, 0x31, 0x14, 0x30, 0x12, 0x6, 0xa, 0x2b, 0x6, 0x1, 0x4, 0x1, 0x82, 0xa2, 0x7c, 0x2, 0x1, 0xc, 0x4, 0x46, 0x46, 0x46, 0x31, 0x30, 0x20, 0x17, 0xd, 0x32, 0x32, 0x30, 0x32, 0x30, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x18, 0xf, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x3d, 0x31, 0x25, 0x30, 0x23, 0x6, 0x3, 0x55, 0x4, 0x3, 0xc, 0x1c, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x44, 0x65, 0x76, 0x20, 0x50, 0x41, 0x49, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x31, 0x20, 0x6e, 0x6f, 0x20, 0x50, 0x49, 0x44, 0x31, 0x14, 0x30, 0x12, 0x6, 0xa, 0x2b, 0x6, 0x1, 0x4, 0x1, 0x82, 0xa2, 0x7c, 0x2, 0x1, 0xc, 0x4, 0x46, 0x46, 0x46, 0x31, 0x30, 0x59, 0x30, 0x13, 0x6, 0x7, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x2, 0x1, 0x6, 0x8, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x3, 0x1, 0x7, 0x3, 0x42, 0x0, 0x4, 0x41, 0x9a, 0x93, 0x15, 0xc2, 0x17, 0x3e, 0xc, 0x8c, 0x87, 0x6d, 0x3, 0xcc, 0xfc, 0x94, 0x48, 0x52, 0x64, 0x7f, 0x7f, 0xec, 0x5e, 0x50, 0x82, 0xf4, 0x5, 0x99, 0x28, 0xec, 0xa8, 0x94, 0xc5, 0x94, 0x15, 0x13, 0x9, 0xac, 0x63, 0x1e, 0x4c, 0xb0, 0x33, 0x92, 0xaf, 0x68, 0x4b, 0xb, 0xaf, 0xb7, 0xe6, 0x5b, 0x3b, 0x81, 0x62, 0xc2, 0xf5, 0x2b, 0xf9, 0x31, 0xb8, 0xe7, 0x7a, 0xaa, 0x82, 0xa3, 0x66, 0x30, 0x64, 0x30, 0x12, 0x6, 0x3, 0x55, 0x1d, 0x13, 0x1, 0x1, 0xff, 0x4, 0x8, 0x30, 0x6, 0x1, 0x1, 0xff, 0x2, 0x1, - [1657778307.251403][8192:8197] CHIP:DMG: ] - [1657778307.251459][8192:8197] CHIP:DMG: }, - [1657778307.251513][8192:8197] CHIP:DMG: }, - [1657778307.251570][8192:8197] CHIP:DMG: - [1657778307.251614][8192:8197] CHIP:DMG: }, - [1657778307.251667][8192:8197] CHIP:DMG: - [1657778307.251706][8192:8197] CHIP:DMG: ], - [1657778307.251755][8192:8197] CHIP:DMG: - [1657778307.251794][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778307.251832][8192:8197] CHIP:DMG: }, - [1657778307.251925][8192:8197] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0003 - [1657778307.251977][8192:8197] CHIP:CTL: Received certificate chain from the device - [1657778307.252029][8192:8197] CHIP:CTL: Successfully finished commissioning step "SendPAICertificateRequest" + [1689679303.591637][52705:52705] CHIP:DMG: } + [1689679303.591638][52705:52705] CHIP:DMG: + [1689679303.591646][52705:52705] CHIP:DMG: InvokeResponseMessage = + [1689679303.591648][52705:52705] CHIP:DMG: { + [1689679303.591651][52705:52705] CHIP:DMG: suppressResponse = false, + [1689679303.591654][52705:52705] CHIP:DMG: InvokeResponseIBs = + [1689679303.591661][52705:52705] CHIP:DMG: [ + [1689679303.591664][52705:52705] CHIP:DMG: InvokeResponseIB = + [1689679303.591669][52705:52705] CHIP:DMG: { + [1689679303.591672][52705:52705] CHIP:DMG: CommandDataIB = + [1689679303.591676][52705:52705] CHIP:DMG: { + [1689679303.591679][52705:52705] CHIP:DMG: CommandPathIB = + [1689679303.591683][52705:52705] CHIP:DMG: { + [1689679303.591687][52705:52705] CHIP:DMG: EndpointId = 0x0, + [1689679303.591692][52705:52705] CHIP:DMG: ClusterId = 0x3e, + [1689679303.591695][52705:52705] CHIP:DMG: CommandId = 0x3, + [1689679303.591699][52705:52705] CHIP:DMG: }, + [1689679303.591704][52705:52705] CHIP:DMG: + [1689679303.591706][52705:52705] CHIP:DMG: CommandFields = + [1689679303.591711][52705:52705] CHIP:DMG: { + [1689679303.591714][52705:52705] CHIP:DMG: 0x0 = [ + [1689679303.591741][52705:52705] CHIP:DMG: 0x30, 0x82, 0x01, 0xcb, 0x30, 0x82, 0x01, 0x71, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x56, 0xad, 0x82, 0x22, 0xad, 0x94, 0x5b, 0x64, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x30, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0f, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x50, 0x41, 0x41, 0x31, 0x14, 0x30, 0x12, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xa2, 0x7c, 0x02, 0x01, 0x0c, 0x04, 0x46, 0x46, 0x46, 0x31, 0x30, 0x20, 0x17, 0x0d, 0x32, 0x32, 0x30, 0x32, 0x30, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x18, 0x0f, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x3d, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x1c, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x44, 0x65, 0x76, 0x20, 0x50, 0x41, 0x49, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x31, 0x20, 0x6e, 0x6f, 0x20, 0x50, 0x49, 0x44, 0x31, 0x14, 0x30, 0x12, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xa2, 0x7c, 0x02, 0x01, 0x0c, 0x04, 0x46, 0x46, 0x46, 0x31, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x41, 0x9a, 0x93, 0x15, 0xc2, 0x17, 0x3e, 0x0c, 0x8c, 0x87, 0x6d, 0x03, 0xcc, 0xfc, 0x94, 0x48, 0x52, 0x64, 0x7f, 0x7f, 0xec, 0x5e, 0x50, 0x82, 0xf4, 0x05, 0x99, 0x28, 0xec, 0xa8, 0x94, 0xc5, 0x94, 0x15, 0x13, 0x09, 0xac, 0x63, 0x1e, 0x4c, 0xb0, 0x33, 0x92, 0xaf, 0x68, 0x4b, 0x0b, 0xaf, 0xb7, 0xe6, 0x5b, 0x3b, 0x81, 0x62, 0xc2, 0xf5, 0x2b, 0xf9, 0x31, 0xb8, 0xe7, 0x7a, 0xaa, 0x82, 0xa3, 0x66, 0x30, 0x64, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x + [1689679303.591755][52705:52705] CHIP:DMG: ] (463 bytes) + [1689679303.591759][52705:52705] CHIP:DMG: }, + [1689679303.591763][52705:52705] CHIP:DMG: }, + [1689679303.591769][52705:52705] CHIP:DMG: + [1689679303.591773][52705:52705] CHIP:DMG: }, + [1689679303.591779][52705:52705] CHIP:DMG: + [1689679303.591781][52705:52705] CHIP:DMG: ], + [1689679303.591787][52705:52705] CHIP:DMG: + [1689679303.591790][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689679303.591794][52705:52705] CHIP:DMG: }, + [1689679303.591797][52705:52705] CHIP:DMG: + [1689679303.591804][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.591806][52705:52705] CHIP:DMG: { + [1689679303.591810][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.591813][52705:52705] CHIP:DMG: } + [1689679303.591815][52705:52705] CHIP:DMG: + [1689679303.591827][52705:52705] CHIP:EM: <<< [E:36144r S:3817 M:151581346 (Ack:135880637)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1689679303.591834][52705:52705] CHIP:IN: (S) Sending msg 151581346 on secure session with LSID: 3817 + [1689679303.591861][52705:52705] CHIP:DMG: Command handler moving to [CommandSen] + [1689679303.591864][52705:52705] CHIP:DMG: Command handler moving to [AwaitingDe] + [1689679303.591938][52705:52705] CHIP:DMG: << from UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 | 135880638 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 3817 / Exchange = 36143] + [1689679303.591946][52705:52705] CHIP:DMG: Header Flags = + [1689679303.591949][52705:52705] CHIP:DMG: { + [1689679303.591955][52705:52705] CHIP:DMG: Exchange (0x03) = + [1689679303.591958][52705:52705] CHIP:DMG: { + [1689679303.591960][52705:52705] CHIP:DMG: Initiator = true + [1689679303.591964][52705:52705] CHIP:DMG: AckMsg = 151581345 + [1689679303.591967][52705:52705] CHIP:DMG: } + [1689679303.591971][52705:52705] CHIP:DMG: } + [1689679303.591973][52705:52705] CHIP:DMG: + [1689679303.591978][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.591980][52705:52705] CHIP:DMG: { + [1689679303.591982][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.591986][52705:52705] CHIP:DMG: } + [1689679303.591989][52705:52705] CHIP:DMG: + [1689679303.591995][52705:52705] CHIP:EM: >>> [E:36143r S:3817 M:135880638 (Ack:151581345)] (S) Msg RX from 0:FFFFFFFB00000000 [0000] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689679303.591999][52705:52705] CHIP:EM: Found matching exchange: 36143r, Delegate: (nil) + [1689679303.592007][52705:52705] CHIP:EM: Rxd Ack; Removing MessageCounter:151581345 from Retrans Table on exchange 36143r disabled: true - - label: "Verify that the DUT Sends CSRRequest command to TH" + - label: "Step 5a: Verify that the TH receives CSRRequest command from DUT" PICS: OPCREDS.C.C04.Tx verification: | - Verify that the DUT send CSRRequest command to TH (all-clusters-app) commissioning log + Verify that the TH (all-clusters-app) Receives CSRRequest command from DUT in commissioning log - [1657778307.949847][8192:8197] CHIP:CTL: Sending CSR request to 0xffff78000b60 device - [1657778307.949923][8192:8197] CHIP:DMG: ICR moving to [AddingComm] - [1657778307.949958][8192:8197] CHIP:DMG: ICR moving to [AddedComma] - [1657778307.950241][8192:8197] CHIP:IN: Prepared secure message 0xffff8ccc8058 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 40144i with MessageCounter:181296338. - [1657778307.950290][8192:8197] CHIP:IN: Sending encrypted msg 0xffff8ccc8058 with MessageCounter:181296338 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000000B2ED1A msec - [1657778307.950503][8192:8197] CHIP:DMG: >> to BLE | 181296338 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 7643 / Exchange = 40144] - [1657778307.950543][8192:8197] CHIP:DMG: Header Flags = - [1657778307.950567][8192:8197] CHIP:DMG: { - [1657778307.950604][8192:8197] CHIP:DMG: Exchange (0x01) = - [1657778307.950627][8192:8197] CHIP:DMG: { - [1657778307.950648][8192:8197] CHIP:DMG: Initiator = true - [1657778307.950670][8192:8197] CHIP:DMG: } - [1657778307.950699][8192:8197] CHIP:DMG: } - [1657778307.950721][8192:8197] CHIP:DMG: - [1657778307.950751][8192:8197] CHIP:DMG: Encrypted Payload (94 bytes) = - [1657778307.950774][8192:8197] CHIP:DMG: { - [1657778307.950796][8192:8197] CHIP:DMG: data = 00db1d00d25cce0a7d2c458a6cc96e685db53a91b06e769d7be0e51a1419780c73a8839ec165d86032a2f0b0f5e689f21c47723a29aa14dbab44c3e576f80d816d32a25ae4bad652490f905584f0973947b80e290f72554c920857e617ef - [1657778307.950821][8192:8197] CHIP:DMG: buffer_ptr = 281472695102832 - [1657778307.950843][8192:8197] CHIP:DMG: } - [1657778307.950864][8192:8197] CHIP:DMG: - [1657778307.950936][8192:8197] CHIP:DMG: InvokeRequestMessage = - [1657778307.950964][8192:8197] CHIP:DMG: { - [1657778307.950988][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778307.951015][8192:8197] CHIP:DMG: timedRequest = false, - [1657778307.951041][8192:8197] CHIP:DMG: InvokeRequests = - [1657778307.951073][8192:8197] CHIP:DMG: [ - [1657778307.951099][8192:8197] CHIP:DMG: CommandDataIB = - [1657778307.951128][8192:8197] CHIP:DMG: { - [1657778307.951155][8192:8197] CHIP:DMG: CommandPathIB = - [1657778307.951188][8192:8197] CHIP:DMG: { - [1657778307.951221][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778307.951259][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778307.951296][8192:8197] CHIP:DMG: CommandId = 0x4, - [1657778307.951329][8192:8197] CHIP:DMG: }, - [1657778307.951363][8192:8197] CHIP:DMG: - [1657778307.951391][8192:8197] CHIP:DMG: CommandFields = - [1657778307.951422][8192:8197] CHIP:DMG: { - [1657778307.951475][8192:8197] CHIP:DMG: 0x0 = [ - [1657778307.951520][8192:8197] CHIP:DMG: 0x47, 0xce, 0x65, 0x6b, 0xb9, 0x27, 0xa3, 0xf2, 0x56, 0x89, 0xb5, 0xfe, 0x24, 0x69, 0xf9, 0x21, 0x50, 0x63, 0x58, 0xe4, 0xaa, 0x38, 0x28, 0xf6, 0x74, 0x14, 0xf, 0x91, 0x38, 0x5, 0xd4, 0x3e, - [1657778307.951560][8192:8197] CHIP:DMG: ] - [1657778307.951593][8192:8197] CHIP:DMG: }, - [1657778307.951622][8192:8197] CHIP:DMG: }, - [1657778307.951654][8192:8197] CHIP:DMG: - [1657778307.951678][8192:8197] CHIP:DMG: ], - [1657778307.951791][8192:8197] CHIP:DMG: - [1657778307.951819][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778307.951844][8192:8197] CHIP:DMG: }, - [1657778307.951869][8192:8197] CHIP:DMG: - [1657778307.952003][8192:8197] CHIP:DMG: ICR moving to [CommandSen] - [1657778307.952039][8192:8197] CHIP:CTL: Sent CSR request, waiting for the CSR - [1657778307.952091][8192:8197] CHIP:DMG: ICR moving to [AwaitingDe] - [1657778308.027194][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1657778308.075130][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778308.075340][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778308.174205][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778308.174351][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778308.174882][8192:8197] CHIP:DMG: << from BLE | 27198691 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 43164 / Exchange = 40144] - [1657778308.174926][8192:8197] CHIP:DMG: Header Flags = - [1657778308.174949][8192:8197] CHIP:DMG: { - [1657778308.174987][8192:8197] CHIP:DMG: } - [1657778308.175009][8192:8197] CHIP:DMG: - [1657778308.175037][8192:8197] CHIP:DMG: Encrypted Payload (373 bytes) = - [1657778308.175058][8192:8197] CHIP:DMG: { - [1657778308.175080][8192:8197] CHIP:DMG: data = 009ca800e3049f0181af5d343055b1e08029770603ce1623344a13092dfbc683d4e1b499f7d8efae9fb5acc148a67fc54cc06d0dd0a3731778f1846b6cb17ba6a59b903a828cd7736ffc4c6942638ab4798e0bc89dd1d49cdab5487a275e9c4023fd551158727e53cd18ba247440d6b1738ece4d8e6615a5db799278349d316ad8d0a7d9e9c5ba8236b269468eb4b1a9e17bd102d9def0dfff1b8df4e9bd2d9915cbfd1057db78860bdc85be825a5e738bdc93a8bd527b0335920170b422d25ef1c35f713ed6ea86fcf43ab933e01ede33fb0a561d94ba964ca321c5885d5268c79531976df15a2ccae944f5275575e22584c76381c11ac763690812b280272ff9ea215d7c14f926893b2f33c482bfd800910b54dfe042ca654f7a73465c472ba13087f7dcf3bebe7d9d44c71599f3d63546adefbdd8f7c74c382b161a53b92c2b7bae661aa0132b83e60da2c95e8a0a99344a41ba1eefbb8ce1cf12772e6105df13857cef69c0a834bfb01461beb6e230160f5d1e - [1657778308.175109][8192:8197] CHIP:DMG: buffer_ptr = 281472695094080 - [1657778308.175129][8192:8197] CHIP:DMG: } - [1657778308.175149][8192:8197] CHIP:DMG: - [1657778308.175247][8192:8197] CHIP:DMG: NOCSR Elements = - [1657778308.175271][8192:8197] CHIP:DMG: { - [1657778308.175302][8192:8197] CHIP:DMG: CSR (203) = 3081C83070020100300E310C300A060355040A0C034353523059301306072A8648CE3D020106082A8648CE3D030107034200041158E37015725ED191BFBA9F68DB85EC2F277388CF0E268486479F7442C1E1195A78BC2049ACB9945FE42B668267ED5827DB7469811F5AE6DF69ECD083A3002DA000300A06082A8648CE3D0403020348003045022100E853E755F48279CDB66DD8A0E8FDC144F8755339672729573938A35149286A3C0220552CDCB0FDC0E0E0409BF87D63514F3BB45EF4DA4776DBD2EBA05194BD9680FB - [1657778308.175329][8192:8197] CHIP:DMG: CSRNonce (32) = 47CE656BB927A3F25689B5FE2469F921506358E4AA3828F674140F913805D43E - [1657778308.175350][8192:8197] CHIP:DMG: } - [1657778308.175370][8192:8197] CHIP:DMG: - [1657778308.175390][8192:8197] CHIP:DMG: CSR (203) = - [1657778308.175425][8192:8197] CHIP:DMG: { + [1689679303.601215][52705:52705] CHIP:ZCL: OpCreds: Received a CSRRequest command + [1689679303.601220][52705:52705] CHIP:ZCL: OpCreds: Finding fabric with fabricIndex 0x0 + [1689679303.601291][52705:52705] CHIP:DMG: >> to UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 | 151581350 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 47827 / Exchange = 36147] + [1689679303.601299][52705:52705] CHIP:DMG: Header Flags = + [1689679303.601302][52705:52705] CHIP:DMG: { + [1689679303.601309][52705:52705] CHIP:DMG: Exchange (0x02) = + [1689679303.601312][52705:52705] CHIP:DMG: { + [1689679303.601316][52705:52705] CHIP:DMG: AckMsg = 135880643 + [1689679303.601319][52705:52705] CHIP:DMG: } + [1689679303.601325][52705:52705] CHIP:DMG: } + [1689679303.601328][52705:52705] CHIP:DMG: + [1689679303.601335][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.601338][52705:52705] CHIP:DMG: { + [1689679303.601342][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.601345][52705:52705] CHIP:DMG: } + [1689679303.601348][52705:52705] CHIP:DMG: + [1689679303.601360][52705:52705] CHIP:EM: <<< [E:36147r S:3817 M:151581350 (Ack:135880643)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689679303.601367][52705:52705] CHIP:IN: (S) Sending msg 151581350 on secure session with LSID: 3817 + [1689679303.601389][52705:52705] CHIP:EM: Flushed pending ack for MessageCounter:135880643 on exchange 36147r + [1689679303.601653][52705:52705] CHIP:ZCL: OpCreds: AllocatePendingOperationalKey succeeded + [1689679303.601730][52705:52705] CHIP:ZCL: OpCreds: CSRRequest successful. + [1689679303.601738][52705:52705] CHIP:DMG: Command handler moving to [ Preparing] + [1689679303.601743][52705:52705] CHIP:DMG: Command handler moving to [AddingComm] + [1689679303.601753][52705:52705] CHIP:DMG: Command handler moving to [AddedComma] + [1689679303.601762][52705:52705] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 + [1689679303.601845][52705:52705] CHIP:DMG: >> to UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 | 151581351 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 47827 / Exchange = 36147] + [1689679303.601853][52705:52705] CHIP:DMG: Header Flags = + [1689679303.601856][52705:52705] CHIP:DMG: { + [1689679303.601864][52705:52705] CHIP:DMG: Exchange (0x06) = + [1689679303.601866][52705:52705] CHIP:DMG: { + [1689679303.601870][52705:52705] CHIP:DMG: AckMsg = 135880643 + [1689679303.601874][52705:52705] CHIP:DMG: NeedsAck = true + [1689679303.601877][52705:52705] CHIP:DMG: } + [1689679303.601883][52705:52705] CHIP:DMG: } + [1689679303.601885][52705:52705] CHIP:DMG: + [1689679303.601889][52705:52705] CHIP:DMG: Decrypted Payload (342 bytes) = + [1689679303.601892][52705:52705] CHIP:DMG: { + [1689679303.601895][52705:52705] CHIP:DMG: data = 1528003601153500370024000024013e2402051835013000f2153001ca3081c73070020100300e310c300a060355040a0c034353523059301306072a8648ce3d020106082a8648ce3d03010703420004f294d4aa30dad41668bdb0e24ac0d830b0ba335c8877c5b60af62b985cff212395197314d3025963a4501b4acb8a2202eccc10ed657cff7fae8f9912b393c1cda000300a06082a8648ce3d040302034700304402207d0d5ec6c11550ce1eecd34804f76bc35c227f97452b711af1fa56ae402d1c73022075316e7e662f136e3b1538ebea710286029bcff9057d4858e042456988984a97300220173607ce4fb48e1db8f246f4bf61bc44bd92a69ebaf25139350f73d4db7e9b09183001402ee3db400d018543d99c5561a6f646eae5f8bebb4489740ff6982c7225397932f3737af0fdfbb763a073e4ad112da39ba6361d852bf2562a80b562f810a84a051818181824ff0118 + [1689679303.601900][52705:52705] CHIP:DMG: } + [1689679303.601902][52705:52705] CHIP:DMG: + [1689679303.601927][52705:52705] CHIP:DMG: NOCSR Elements = + [1689679303.601930][52705:52705] CHIP:DMG: { + [1689679303.601937][52705:52705] CHIP:DMG: CSR (202) = 3081C73070020100300E310C300A060355040A0C034353523059301306072A8648CE3D020106082A8648CE3D03010703420004F294D4AA30DAD41668BDB0E24AC0D830B0BA335C8877C5B60AF62B985CFF212395197314D3025963A4501B4ACB8A2202ECCC10ED657CFF7FAE8F9912B393C1CDA000300A06082A8648CE3D040302034700304402207D0D5EC6C11550CE1EECD34804F76BC35C227F97452B711AF1FA56AE402D1C73022075316E7E662F136E3B1538EBEA710286029BCFF9057D4858E042456988984A97 + [1689679303.601943][52705:52705] CHIP:DMG: CSRNonce (32) = 173607CE4FB48E1DB8F246F4BF61BC44BD92A69EBAF25139350F73D4DB7E9B09 + [1689679303.601946][52705:52705] CHIP:DMG: } + [1689679303.601949][52705:52705] CHIP:DMG: + [1689679303.601953][52705:52705] CHIP:DMG: CSR (202) = + [1689679303.601962][52705:52705] CHIP:DMG: { -----BEGIN CERTIFICATE REQUEST----- - MIHIMHACAQAwDjEMMAoGA1UECgwDQ1NSMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD - QgAEEVjjcBVyXtGRv7qfaNuF7C8nc4jPDiaEhkefdELB4RlaeLwgSay5lF/kK2aC - Z+1YJ9t0aYEfWubfaezQg6MALaAAMAoGCCqGSM49BAMCA0gAMEUCIQDoU+dV9IJ5 - zbZt2KDo/cFE+HVTOWcnKVc5OKNRSShqPAIgVSzcsP3A4OBAm/h9Y1FPO7Re9NpH - dtvS66BRlL2WgPs= + MIHHMHACAQAwDjEMMAoGA1UECgwDQ1NSMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD + QgAE8pTUqjDa1BZovbDiSsDYMLC6M1yId8W2CvYrmFz/ISOVGXMU0wJZY6RQG0rL + iiIC7MwQ7WV8/3+uj5kSs5PBzaAAMAoGCCqGSM49BAMCA0cAMEQCIH0NXsbBFVDO + HuzTSAT3a8NcIn+XRStxGvH6Vq5ALRxzAiB1MW5+Zi8TbjsVOOvqcQKGApvP+QV9 + SFjgQkVpiJhKlw== -----END CERTIFICATE REQUEST----- - [1657778308.175484][8192:8197] CHIP:DMG: } - [1657778308.175504][8192:8197] CHIP:DMG: - [1657778308.175530][8192:8197] CHIP:DMG: - [1657778308.175562][8192:8197] CHIP:DMG: Additional Fields = - [1657778308.175584][8192:8197] CHIP:DMG: { - [1657778308.175607][8192:8197] CHIP:DMG: peer_address = BLE - [1657778308.175628][8192:8197] CHIP:DMG: } - [1657778308.175649][8192:8197] CHIP:DMG: - [1657778308.175675][8192:8197] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:27198691 on exchange 40144i + [1689679303.601969][52705:52705] CHIP:DMG: } + [1689679303.601972][52705:52705] CHIP:DMG: + [1689679303.601978][52705:52705] CHIP:DMG: InvokeResponseMessage = + [1689679303.601981][52705:52705] CHIP:DMG: { + [1689679303.601983][52705:52705] CHIP:DMG: suppressResponse = false, + [1689679303.601986][52705:52705] CHIP:DMG: InvokeResponseIBs = + [1689679303.601990][52705:52705] CHIP:DMG: [ + [1689679303.601993][52705:52705] CHIP:DMG: InvokeResponseIB = + [1689679303.602000][52705:52705] CHIP:DMG: { + [1689679303.602003][52705:52705] CHIP:DMG: CommandDataIB = + [1689679303.602005][52705:52705] CHIP:DMG: { + [1689679303.602008][52705:52705] CHIP:DMG: CommandPathIB = + [1689679303.602010][52705:52705] CHIP:DMG: { + [1689679303.602013][52705:52705] CHIP:DMG: EndpointId = 0x0, + [1689679303.602017][52705:52705] CHIP:DMG: ClusterId = 0x3e, + [1689679303.602020][52705:52705] CHIP:DMG: CommandId = 0x5, + [1689679303.602023][52705:52705] CHIP:DMG: }, + [1689679303.602029][52705:52705] CHIP:DMG: + [1689679303.602031][52705:52705] CHIP:DMG: CommandFields = + [1689679303.602035][52705:52705] CHIP:DMG: { + [1689679303.602041][52705:52705] CHIP:DMG: 0x0 = [ + [1689679303.602061][52705:52705] CHIP:DMG: 0x15, 0x30, 0x01, 0xca, 0x30, 0x81, 0xc7, 0x30, 0x70, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x03, 0x43, 0x53, 0x52, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xf2, 0x94, 0xd4, 0xaa, 0x30, 0xda, 0xd4, 0x16, 0x68, 0xbd, 0xb0, 0xe2, 0x4a, 0xc0, 0xd8, 0x30, 0xb0, 0xba, 0x33, 0x5c, 0x88, 0x77, 0xc5, 0xb6, 0x0a, 0xf6, 0x2b, 0x98, 0x5c, 0xff, 0x21, 0x23, 0x95, 0x19, 0x73, 0x14, 0xd3, 0x02, 0x59, 0x63, 0xa4, 0x50, 0x1b, 0x4a, 0xcb, 0x8a, 0x22, 0x02, 0xec, 0xcc, 0x10, 0xed, 0x65, 0x7c, 0xff, 0x7f, 0xae, 0x8f, 0x99, 0x12, 0xb3, 0x93, 0xc1, 0xcd, 0xa0, 0x00, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x47, 0x00, 0x30, 0x44, 0x02, 0x20, 0x7d, 0x0d, 0x5e, 0xc6, 0xc1, 0x15, 0x50, 0xce, 0x1e, 0xec, 0xd3, 0x48, 0x04, 0xf7, 0x6b, 0xc3, 0x5c, 0x22, 0x7f, 0x97, 0x45, 0x2b, 0x71, 0x1a, 0xf1, 0xfa, 0x56, 0xae, 0x40, 0x2d, 0x1c, 0x73, 0x02, 0x20, 0x75, 0x31, 0x6e, 0x7e, 0x66, 0x2f, 0x13, 0x6e, 0x3b, 0x15, 0x38, 0xeb, 0xea, 0x71, 0x02, 0x86, 0x02, 0x9b, 0xcf, 0xf9, 0x05, 0x7d, 0x48, 0x58, 0xe0, 0x42, 0x45, 0x69, 0x88, 0x98, 0x4a, 0x97, 0x30, 0x02, 0x20, 0x17, 0x36, 0x07, 0xce, 0x4f, 0xb4, 0x8e, 0x1d, 0xb8, 0xf2, 0x46, 0xf4, 0xbf, 0x61, 0xbc, 0x44, 0xbd, 0x92, 0xa6, 0x9e, 0xba, 0xf2, 0x51, 0x39, 0x35, 0x0f, 0x73, 0xd4, 0xdb, 0x7e, 0x9b, 0x09, 0x18, + [1689679303.602072][52705:52705] CHIP:DMG: ] (242 bytes) + [1689679303.602075][52705:52705] CHIP:DMG: 0x1 = [ + [1689679303.602083][52705:52705] CHIP:DMG: 0x2e, 0xe3, 0xdb, 0x40, 0x0d, 0x01, 0x85, 0x43, 0xd9, 0x9c, 0x55, 0x61, 0xa6, 0xf6, 0x46, 0xea, 0xe5, 0xf8, 0xbe, 0xbb, 0x44, 0x89, 0x74, 0x0f, 0xf6, 0x98, 0x2c, 0x72, 0x25, 0x39, 0x79, 0x32, 0xf3, 0x73, 0x7a, 0xf0, 0xfd, 0xfb, 0xb7, 0x63, 0xa0, 0x73, 0xe4, 0xad, 0x11, 0x2d, 0xa3, 0x9b, 0xa6, 0x36, 0x1d, 0x85, 0x2b, 0xf2, 0x56, 0x2a, 0x80, 0xb5, 0x62, 0xf8, 0x10, 0xa8, 0x4a, 0x05, + [1689679303.602087][52705:52705] CHIP:DMG: ] (64 bytes) + [1689679303.602090][52705:52705] CHIP:DMG: }, + [1689679303.602095][52705:52705] CHIP:DMG: }, + [1689679303.602100][52705:52705] CHIP:DMG: + [1689679303.602102][52705:52705] CHIP:DMG: }, + [1689679303.602106][52705:52705] CHIP:DMG: + [1689679303.602108][52705:52705] CHIP:DMG: ], + [1689679303.602112][52705:52705] CHIP:DMG: + [1689679303.602114][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689679303.602116][52705:52705] CHIP:DMG: }, + [1689679303.602118][52705:52705] CHIP:DMG: + [1689679303.602124][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.602126][52705:52705] CHIP:DMG: { + [1689679303.602128][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.602131][52705:52705] CHIP:DMG: } + [1689679303.602135][52705:52705] CHIP:DMG: + [1689679303.602146][52705:52705] CHIP:EM: <<< [E:36147r S:3817 M:151581351 (Ack:135880643)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) + [1689679303.602152][52705:52705] CHIP:IN: (S) Sending msg 151581351 on secure session with LSID: 3817 disabled: true - label: - "Extract the CSRResponse values for future use from TH NOCSRElements - - which contains the Node Operational PublicKey from CSR + "Step 5b: Extract the CSRResponse values for future use from TH + NOCSRElements - which contains the Node Operational PublicKey from CSR AttestationSignature" verification: | - Extract the CSRResponse values from TH (all-clusters-app) commissioning log + Extract the CSRResponse and NOCSRElements values from TH (all-clusters-app) in commissioning log - [1657778308.175702][8192:8197] CHIP:EM: Found matching exchange: 40144i, Delegate: 0xaaaaf7819670 - [1657778308.175743][8192:8197] CHIP:DMG: ICR moving to [ResponseRe] - [1657778308.175782][8192:8197] CHIP:DMG: InvokeResponseMessage = - [1657778308.175807][8192:8197] CHIP:DMG: { - [1657778308.175830][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778308.175854][8192:8197] CHIP:DMG: InvokeResponseIBs = - [1657778308.175885][8192:8197] CHIP:DMG: [ - [1657778308.175909][8192:8197] CHIP:DMG: InvokeResponseIB = - [1657778308.175943][8192:8197] CHIP:DMG: { - [1657778308.175968][8192:8197] CHIP:DMG: CommandDataIB = - [1657778308.175999][8192:8197] CHIP:DMG: { - [1657778308.176028][8192:8197] CHIP:DMG: CommandPathIB = - [1657778308.176060][8192:8197] CHIP:DMG: { - [1657778308.176093][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778308.176127][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778308.176192][8192:8197] CHIP:DMG: CommandId = 0x5, - [1657778308.176225][8192:8197] CHIP:DMG: }, - [1657778308.176262][8192:8197] CHIP:DMG: - [1657778308.176292][8192:8197] CHIP:DMG: CommandFields = - [1657778308.176324][8192:8197] CHIP:DMG: { - [1657778308.176356][8192:8197] CHIP:DMG: 0x0 = [ - [1657778308.176466][8192:8197] CHIP:DMG: 0x15, 0x30, 0x1, 0xcb, 0x30, 0x81, 0xc8, 0x30, 0x70, 0x2, 0x1, 0x0, 0x30, 0xe, 0x31, 0xc, 0x30, 0xa, 0x6, 0x3, 0x55, 0x4, 0xa, 0xc, 0x3, 0x43, 0x53, 0x52, 0x30, 0x59, 0x30, 0x13, 0x6, 0x7, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x2, 0x1, 0x6, 0x8, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x3, 0x1, 0x7, 0x3, 0x42, 0x0, 0x4, 0x11, 0x58, 0xe3, 0x70, 0x15, 0x72, 0x5e, 0xd1, 0x91, 0xbf, 0xba, 0x9f, 0x68, 0xdb, 0x85, 0xec, 0x2f, 0x27, 0x73, 0x88, 0xcf, 0xe, 0x26, 0x84, 0x86, 0x47, 0x9f, 0x74, 0x42, 0xc1, 0xe1, 0x19, 0x5a, 0x78, 0xbc, 0x20, 0x49, 0xac, 0xb9, 0x94, 0x5f, 0xe4, 0x2b, 0x66, 0x82, 0x67, 0xed, 0x58, 0x27, 0xdb, 0x74, 0x69, 0x81, 0x1f, 0x5a, 0xe6, 0xdf, 0x69, 0xec, 0xd0, 0x83, 0xa3, 0x0, 0x2d, 0xa0, 0x0, 0x30, 0xa, 0x6, 0x8, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x4, 0x3, 0x2, 0x3, 0x48, 0x0, 0x30, 0x45, 0x2, 0x21, 0x0, 0xe8, 0x53, 0xe7, 0x55, 0xf4, 0x82, 0x79, 0xcd, 0xb6, 0x6d, 0xd8, 0xa0, 0xe8, 0xfd, 0xc1, 0x44, 0xf8, 0x75, 0x53, 0x39, 0x67, 0x27, 0x29, 0x57, 0x39, 0x38, 0xa3, 0x51, 0x49, 0x28, 0x6a, 0x3c, 0x2, 0x20, 0x55, 0x2c, 0xdc, 0xb0, 0xfd, 0xc0, 0xe0, 0xe0, 0x40, 0x9b, 0xf8, 0x7d, 0x63, 0x51, 0x4f, 0x3b, 0xb4, 0x5e, 0xf4, 0xda, 0x47, 0x76, 0xdb, 0xd2, 0xeb, 0xa0, 0x51, 0x94, 0xbd, 0x96, 0x80, 0xfb, 0x30, 0x2, 0x20, 0x47, 0xce, 0x65, 0x6b, 0xb9, 0x27, 0xa3, 0xf2, 0x56, 0x89, 0xb5, 0xfe, 0x24, 0x69, 0xf9, 0x21, 0x50, 0x63, 0x58, 0xe4, 0xaa, 0x38, 0x28, 0xf6, 0x74, 0x14, 0xf, 0x91, 0x38, 0x5, 0xd4, 0x3e, 0x18, - [1657778308.176530][8192:8197] CHIP:DMG: ] - [1657778308.176564][8192:8197] CHIP:DMG: 0x1 = [ - [1657778308.176616][8192:8197] CHIP:DMG: 0x2d, 0x7e, 0x4c, 0x8b, 0xb9, 0xef, 0xec, 0xb4, 0xc7, 0xa6, 0x76, 0xf8, 0xf, 0x2d, 0x58, 0x72, 0xb3, 0x35, 0xd3, 0xbf, 0xb1, 0x61, 0xc1, 0x99, 0xf1, 0x1, 0xb9, 0x9c, 0xc, 0x79, 0xbb, 0x3c, 0xf0, 0x69, 0x5c, 0x4, 0x76, 0xd3, 0x5b, 0xcb, 0x97, 0xfc, 0x2d, 0xe2, 0x89, 0xfa, 0xa9, 0xc, 0x6e, 0xb4, 0xf, 0x72, 0xba, 0x2, 0xb5, 0x58, 0xeb, 0xd, 0x9a, 0xbe, 0x29, 0x40, 0x8f, 0xe6, - [1657778308.176655][8192:8197] CHIP:DMG: ] - [1657778308.176688][8192:8197] CHIP:DMG: }, - [1657778308.176718][8192:8197] CHIP:DMG: }, - [1657778308.176752][8192:8197] CHIP:DMG: - [1657778308.176779][8192:8197] CHIP:DMG: }, - [1657778308.176809][8192:8197] CHIP:DMG: - [1657778308.176832][8192:8197] CHIP:DMG: ], - [1657778308.176862][8192:8197] CHIP:DMG: - [1657778308.176885][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778308.176908][8192:8197] CHIP:DMG: }, - [1657778308.176970][8192:8197] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0005 - [1657778308.177003][8192:8197] CHIP:CTL: Received certificate signing request from the device + [1689679303.601927][52705:52705] CHIP:DMG: NOCSR Elements = + [1689679303.601930][52705:52705] CHIP:DMG: { + [1689679303.601937][52705:52705] CHIP:DMG: CSR (202) = 3081C73070020100300E310C300A060355040A0C034353523059301306072A8648CE3D020106082A8648CE3D03010703420004F294D4AA30DAD41668BDB0E24AC0D830B0BA335C8877C5B60AF62B985CFF212395197314D3025963A4501B4ACB8A2202ECCC10ED657CFF7FAE8F9912B393C1CDA000300A06082A8648CE3D040302034700304402207D0D5EC6C11550CE1EECD34804F76BC35C227F97452B711AF1FA56AE402D1C73022075316E7E662F136E3B1538EBEA710286029BCFF9057D4858E042456988984A97 + [1689679303.601943][52705:52705] CHIP:DMG: CSRNonce (32) = 173607CE4FB48E1DB8F246F4BF61BC44BD92A69EBAF25139350F73D4DB7E9B09 + [1689679303.601946][52705:52705] CHIP:DMG: } + [1689679303.601949][52705:52705] CHIP:DMG: + [1689679303.601953][52705:52705] CHIP:DMG: CSR (202) = + [1689679303.601962][52705:52705] CHIP:DMG: { + -----BEGIN CERTIFICATE REQUEST----- + MIHHMHACAQAwDjEMMAoGA1UECgwDQ1NSMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD + QgAE8pTUqjDa1BZovbDiSsDYMLC6M1yId8W2CvYrmFz/ISOVGXMU0wJZY6RQG0rL + iiIC7MwQ7WV8/3+uj5kSs5PBzaAAMAoGCCqGSM49BAMCA0cAMEQCIH0NXsbBFVDO + HuzTSAT3a8NcIn+XRStxGvH6Vq5ALRxzAiB1MW5+Zi8TbjsVOOvqcQKGApvP+QV9 + SFjgQkVpiJhKlw== + -----END CERTIFICATE REQUEST----- + [1689679303.601969][52705:52705] CHIP:DMG: } + [1689679303.601972][52705:52705] CHIP:DMG: + [1689679303.601978][52705:52705] CHIP:DMG: InvokeResponseMessage = + [1689679303.601981][52705:52705] CHIP:DMG: { + [1689679303.601983][52705:52705] CHIP:DMG: suppressResponse = false, + [1689679303.601986][52705:52705] CHIP:DMG: InvokeResponseIBs = + [1689679303.601990][52705:52705] CHIP:DMG: [ + [1689679303.601993][52705:52705] CHIP:DMG: InvokeResponseIB = + [1689679303.602000][52705:52705] CHIP:DMG: { + [1689679303.602003][52705:52705] CHIP:DMG: CommandDataIB = + [1689679303.602005][52705:52705] CHIP:DMG: { + [1689679303.602008][52705:52705] CHIP:DMG: CommandPathIB = + [1689679303.602010][52705:52705] CHIP:DMG: { + [1689679303.602013][52705:52705] CHIP:DMG: EndpointId = 0x0, + [1689679303.602017][52705:52705] CHIP:DMG: ClusterId = 0x3e, + [1689679303.602020][52705:52705] CHIP:DMG: CommandId = 0x5, + [1689679303.602023][52705:52705] CHIP:DMG: }, + [1689679303.602029][52705:52705] CHIP:DMG: + [1689679303.602031][52705:52705] CHIP:DMG: CommandFields = + [1689679303.602035][52705:52705] CHIP:DMG: { + [1689679303.602041][52705:52705] CHIP:DMG: 0x0 = [ + [1689679303.602061][52705:52705] CHIP:DMG: 0x15, 0x30, 0x01, 0xca, 0x30, 0x81, 0xc7, 0x30, 0x70, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x03, 0x43, 0x53, 0x52, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xf2, 0x94, 0xd4, 0xaa, 0x30, 0xda, 0xd4, 0x16, 0x68, 0xbd, 0xb0, 0xe2, 0x4a, 0xc0, 0xd8, 0x30, 0xb0, 0xba, 0x33, 0x5c, 0x88, 0x77, 0xc5, 0xb6, 0x0a, 0xf6, 0x2b, 0x98, 0x5c, 0xff, 0x21, 0x23, 0x95, 0x19, 0x73, 0x14, 0xd3, 0x02, 0x59, 0x63, 0xa4, 0x50, 0x1b, 0x4a, 0xcb, 0x8a, 0x22, 0x02, 0xec, 0xcc, 0x10, 0xed, 0x65, 0x7c, 0xff, 0x7f, 0xae, 0x8f, 0x99, 0x12, 0xb3, 0x93, 0xc1, 0xcd, 0xa0, 0x00, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x47, 0x00, 0x30, 0x44, 0x02, 0x20, 0x7d, 0x0d, 0x5e, 0xc6, 0xc1, 0x15, 0x50, 0xce, 0x1e, 0xec, 0xd3, 0x48, 0x04, 0xf7, 0x6b, 0xc3, 0x5c, 0x22, 0x7f, 0x97, 0x45, 0x2b, 0x71, 0x1a, 0xf1, 0xfa, 0x56, 0xae, 0x40, 0x2d, 0x1c, 0x73, 0x02, 0x20, 0x75, 0x31, 0x6e, 0x7e, 0x66, 0x2f, 0x13, 0x6e, 0x3b, 0x15, 0x38, 0xeb, 0xea, 0x71, 0x02, 0x86, 0x02, 0x9b, 0xcf, 0xf9, 0x05, 0x7d, 0x48, 0x58, 0xe0, 0x42, 0x45, 0x69, 0x88, 0x98, 0x4a, 0x97, 0x30, 0x02, 0x20, 0x17, 0x36, 0x07, 0xce, 0x4f, 0xb4, 0x8e, 0x1d, 0xb8, 0xf2, 0x46, 0xf4, 0xbf, 0x61, 0xbc, 0x44, 0xbd, 0x92, 0xa6, 0x9e, 0xba, 0xf2, 0x51, 0x39, 0x35, 0x0f, 0x73, 0xd4, 0xdb, 0x7e, 0x9b, 0x09, 0x18, + [1689679303.602072][52705:52705] CHIP:DMG: ] (242 bytes) + [1689679303.602075][52705:52705] CHIP:DMG: 0x1 = [ + [1689679303.602083][52705:52705] CHIP:DMG: 0x2e, 0xe3, 0xdb, 0x40, 0x0d, 0x01, 0x85, 0x43, 0xd9, 0x9c, 0x55, 0x61, 0xa6, 0xf6, 0x46, 0xea, 0xe5, 0xf8, 0xbe, 0xbb, 0x44, 0x89, 0x74, 0x0f, 0xf6, 0x98, 0x2c, 0x72, 0x25, 0x39, 0x79, 0x32, 0xf3, 0x73, 0x7a, 0xf0, 0xfd, 0xfb, 0xb7, 0x63, 0xa0, 0x73, 0xe4, 0xad, 0x11, 0x2d, 0xa3, 0x9b, 0xa6, 0x36, 0x1d, 0x85, 0x2b, 0xf2, 0x56, 0x2a, 0x80, 0xb5, 0x62, 0xf8, 0x10, 0xa8, 0x4a, 0x05, + [1689679303.602087][52705:52705] CHIP:DMG: ] (64 bytes) + [1689679303.602090][52705:52705] CHIP:DMG: }, + [1689679303.602095][52705:52705] CHIP:DMG: }, + [1689679303.602100][52705:52705] CHIP:DMG: + [1689679303.602102][52705:52705] CHIP:DMG: }, + [1689679303.602106][52705:52705] CHIP:DMG: + [1689679303.602108][52705:52705] CHIP:DMG: ], + [1689679303.602112][52705:52705] CHIP:DMG: + [1689679303.602114][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689679303.602116][52705:52705] CHIP:DMG: }, + [1689679303.602118][52705:52705] CHIP:DMG: + [1689679303.602124][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.602126][52705:52705] CHIP:DMG: { + [1689679303.602128][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.602131][52705:52705] CHIP:DMG: } + [1689679303.602135][52705:52705] CHIP:DMG: + [1689679303.602146][52705:52705] CHIP:EM: <<< [E:36147r S:3817 M:151581351 (Ack:135880643)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) disabled: true - - label: "Verify that the DUT sends AddTrustedRootCertificate command to TH" + - label: + "Step 6: Verify that TH receives AddTrustedRootCertificate command + from DUT" PICS: OPCREDS.C.C0b.Tx verification: | - Verify that the DUT send AddTrustedRootCertificate command to TH (all-clusters-app) commissioning log + Verify that the TH (all-clusters-app) receives AddTrustedRootCertificate command from DUT in commissioning log - [1657778308.179742][8192:8197] CHIP:CTL: Performing next commissioning step "SendTrustedRootCert" - [1657778308.179769][8192:8197] CHIP:CTL: Sending root certificate to the device - [1657778308.179839][8192:8197] CHIP:DMG: ICR moving to [AddingComm] - [1657778308.179870][8192:8197] CHIP:DMG: ICR moving to [AddedComma] - [1657778308.180204][8192:8197] CHIP:IN: Prepared secure message 0xffff8ccc78e8 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 40145i with MessageCounter:181296339. - [1657778308.180250][8192:8197] CHIP:IN: Sending encrypted msg 0xffff8ccc78e8 with MessageCounter:181296339 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000000B2EE00 msec - [1657778308.180470][8192:8197] CHIP:DMG: >> to BLE | 181296339 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 7643 / Exchange = 40145] - [1657778308.180508][8192:8197] CHIP:DMG: Header Flags = - [1657778308.180529][8192:8197] CHIP:DMG: { - [1657778308.180564][8192:8197] CHIP:DMG: Exchange (0x01) = - [1657778308.180586][8192:8197] CHIP:DMG: { - [1657778308.180605][8192:8197] CHIP:DMG: Initiator = true - [1657778308.180626][8192:8197] CHIP:DMG: } - [1657778308.180653][8192:8197] CHIP:DMG: } - [1657778308.180675][8192:8197] CHIP:DMG: - [1657778308.180702][8192:8197] CHIP:DMG: Encrypted Payload (293 bytes) = - [1657778308.180723][8192:8197] CHIP:DMG: { - [1657778308.180744][8192:8197] CHIP:DMG: data = 00db1d00d35cce0a92f416b3b3a7206d646251f86d72b33342aa0f93281840168c180dc94d4beee3cbbb92a76d912acdcc6fb379f321773366bfe2fa26320c4ced460bd7bd3604f4bc56e81c1b82e489cc664e8eaa9ef595942bae9aa568fb26b333e665028f01f731f2bcc9794570167b9d1623ec984af711541e8592828b39e02f46c469a8b4015f0e2829d4cb852ab12119fee598dc2cec12907dac7bc8eb2bbe3fe5ec55966c78dfbba7204e72116b2cb6c9cea896763974c0480d54fbb2094c41dc2f44b691327eb6f2e28738172c4b45d7051ddc9444527fdfcafbbf5521ea6936f9085630fb5ed86edcb828175dc07314c821df25a40db9a5844faba24c7886adaa31f07f306d359ae9a645420363e810d9ebc2e52b50a1daf2efa37c0b530d9775 - [1657778308.180771][8192:8197] CHIP:DMG: buffer_ptr = 281472695121488 - [1657778308.180792][8192:8197] CHIP:DMG: } - [1657778308.180811][8192:8197] CHIP:DMG: - [1657778308.180887][8192:8197] CHIP:DMG: RCACValue (231) = - [1657778308.180922][8192:8197] CHIP:DMG: { - FTABAQAkAgE3AyQUABgmBIAigScmBYAlTTo3BiQUABgkBwEkCAEwCUEE2QHwyyu1hWrl6hNG7UZa2r7AwQDFKb1cr3RuYA92tdNfAk8fIw1HgUO6CZ/4h9grNrefpqCXCCRaVjGzkI540TcKNQEpARgkAmAwBBTpD3Ul0H8BwgT1DEdRNpk01PHuADAFFOkPdSXQfwHCBPUMR1E2mTTU8e4AGDALQLd4Zg/cqqQeIHn1+c34AEW7+OSppzG7dwmX7qUh7+LhRWpMpy+Ktx8eZFHN7jNlXCKgAjw7YzZRzbzWg9uNBZsY - [1657778308.180960][8192:8197] CHIP:DMG: } - [1657778308.180981][8192:8197] CHIP:DMG: - [1657778308.181017][8192:8197] CHIP:DMG: InvokeRequestMessage = - [1657778308.181041][8192:8197] CHIP:DMG: { - [1657778308.181063][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778308.181089][8192:8197] CHIP:DMG: timedRequest = false, - [1657778308.181112][8192:8197] CHIP:DMG: InvokeRequests = - [1657778308.181142][8192:8197] CHIP:DMG: [ - [1657778308.181165][8192:8197] CHIP:DMG: CommandDataIB = - [1657778308.181192][8192:8197] CHIP:DMG: { - [1657778308.181217][8192:8197] CHIP:DMG: CommandPathIB = - [1657778308.181317][8192:8197] CHIP:DMG: { - [1657778308.181351][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778308.181384][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778308.181415][8192:8197] CHIP:DMG: CommandId = 0xb, - [1657778308.181445][8192:8197] CHIP:DMG: }, - [1657778308.181477][8192:8197] CHIP:DMG: - [1657778308.181502][8192:8197] CHIP:DMG: CommandFields = - [1657778308.181531][8192:8197] CHIP:DMG: { - [1657778308.181562][8192:8197] CHIP:DMG: 0x0 = [ - [1657778308.181665][8192:8197] CHIP:DMG: 0x15, 0x30, 0x1, 0x1, 0x0, 0x24, 0x2, 0x1, 0x37, 0x3, 0x24, 0x14, 0x0, 0x18, 0x26, 0x4, 0x80, 0x22, 0x81, 0x27, 0x26, 0x5, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x6, 0x24, 0x14, 0x0, 0x18, 0x24, 0x7, 0x1, 0x24, 0x8, 0x1, 0x30, 0x9, 0x41, 0x4, 0xd9, 0x1, 0xf0, 0xcb, 0x2b, 0xb5, 0x85, 0x6a, 0xe5, 0xea, 0x13, 0x46, 0xed, 0x46, 0x5a, 0xda, 0xbe, 0xc0, 0xc1, 0x0, 0xc5, 0x29, 0xbd, 0x5c, 0xaf, 0x74, 0x6e, 0x60, 0xf, 0x76, 0xb5, 0xd3, 0x5f, 0x2, 0x4f, 0x1f, 0x23, 0xd, 0x47, 0x81, 0x43, 0xba, 0x9, 0x9f, 0xf8, 0x87, 0xd8, 0x2b, 0x36, 0xb7, 0x9f, 0xa6, 0xa0, 0x97, 0x8, 0x24, 0x5a, 0x56, 0x31, 0xb3, 0x90, 0x8e, 0x78, 0xd1, 0x37, 0xa, 0x35, 0x1, 0x29, 0x1, 0x18, 0x24, 0x2, 0x60, 0x30, 0x4, 0x14, 0xe9, 0xf, 0x75, 0x25, 0xd0, 0x7f, 0x1, 0xc2, 0x4, 0xf5, 0xc, 0x47, 0x51, 0x36, 0x99, 0x34, 0xd4, 0xf1, 0xee, 0x0, 0x30, 0x5, 0x14, 0xe9, 0xf, 0x75, 0x25, 0xd0, 0x7f, 0x1, 0xc2, 0x4, 0xf5, 0xc, 0x47, 0x51, 0x36, 0x99, 0x34, 0xd4, 0xf1, 0xee, 0x0, 0x18, 0x30, 0xb, 0x40, 0xb7, 0x78, 0x66, 0xf, 0xdc, 0xaa, 0xa4, 0x1e, 0x20, 0x79, 0xf5, 0xf9, 0xcd, 0xf8, 0x0, 0x45, 0xbb, 0xf8, 0xe4, 0xa9, 0xa7, 0x31, 0xbb, 0x77, 0x9, 0x97, 0xee, 0xa5, 0x21, 0xef, 0xe2, 0xe1, 0x45, 0x6a, 0x4c, 0xa7, 0x2f, 0x8a, 0xb7, 0x1f, 0x1e, 0x64, 0x51, 0xcd, 0xee, 0x33, 0x65, 0x5c, 0x22, 0xa0, 0x2, 0x3c, 0x3b, 0x63, 0x36, 0x51, 0xcd, 0xbc, 0xd6, 0x83, 0xdb, 0x8d, 0x5, 0x9b, 0x18, - [1657778308.181725][8192:8197] CHIP:DMG: ] - [1657778308.181759][8192:8197] CHIP:DMG: }, - [1657778308.181788][8192:8197] CHIP:DMG: }, - [1657778308.181816][8192:8197] CHIP:DMG: - [1657778308.181840][8192:8197] CHIP:DMG: ], - [1657778308.181869][8192:8197] CHIP:DMG: - [1657778308.181893][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778308.181915][8192:8197] CHIP:DMG: }, - [1657778308.181937][8192:8197] CHIP:DMG: - [1657778308.182058][8192:8197] CHIP:DMG: ICR moving to [CommandSen] - [1657778308.182096][8192:8197] CHIP:CTL: Sent root certificate to the device - [1657778308.182397][8192:8197] CHIP:DMG: ICR moving to [AwaitingDe] - [1657778308.270475][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1657778308.367969][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1657778308.369721][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778308.369943][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778308.370814][8192:8197] CHIP:DMG: << from BLE | 27198692 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 43164 / Exchange = 40145] - [1657778308.370915][8192:8197] CHIP:DMG: Header Flags = - [1657778308.370971][8192:8197] CHIP:DMG: { - [1657778308.371066][8192:8197] CHIP:DMG: } - [1657778308.371118][8192:8197] CHIP:DMG: - [1657778308.371185][8192:8197] CHIP:DMG: Encrypted Payload (63 bytes) = - [1657778308.371238][8192:8197] CHIP:DMG: { - [1657778308.371289][8192:8197] CHIP:DMG: data = 009ca800e4049f018f9246b0d6d27b9fb8b63eaeeab82274f92760600108b065645896f60b20b56967fb8959cc8ed87e753c1037450a36ef30e4e2d6bbf356 - [1657778308.371343][8192:8197] CHIP:DMG: buffer_ptr = 281472695094080 - [1657778308.371394][8192:8197] CHIP:DMG: } - [1657778308.371443][8192:8197] CHIP:DMG: - [1657778308.371566][8192:8197] CHIP:DMG: - [1657778308.371648][8192:8197] CHIP:DMG: Additional Fields = - [1657778308.371703][8192:8197] CHIP:DMG: { - [1657778308.371760][8192:8197] CHIP:DMG: peer_address = BLE - [1657778308.371813][8192:8197] CHIP:DMG: } - [1657778308.371863][8192:8197] CHIP:DMG: - [1657778308.371926][8192:8197] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:27198692 on exchange 40145i - [1657778308.371989][8192:8197] CHIP:EM: Found matching exchange: 40145i, Delegate: 0xffff78003520 - [1657778308.372072][8192:8197] CHIP:DMG: ICR moving to [ResponseRe] - [1657778308.372201][8192:8197] CHIP:DMG: InvokeResponseMessage = - [1657778308.372263][8192:8197] CHIP:DMG: { - [1657778308.372319][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778308.372379][8192:8197] CHIP:DMG: InvokeResponseIBs = - [1657778308.372452][8192:8197] CHIP:DMG: [ - [1657778308.372512][8192:8197] CHIP:DMG: InvokeResponseIB = - [1657778308.372600][8192:8197] CHIP:DMG: { - [1657778308.372663][8192:8197] CHIP:DMG: CommandStatusIB = - [1657778308.372736][8192:8197] CHIP:DMG: { - [1657778308.372809][8192:8197] CHIP:DMG: CommandPathIB = - [1657778308.372888][8192:8197] CHIP:DMG: { - [1657778308.372970][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778308.373054][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778308.373139][8192:8197] CHIP:DMG: CommandId = 0xb, - [1657778308.373210][8192:8197] CHIP:DMG: }, - [1657778308.373296][8192:8197] CHIP:DMG: - [1657778308.373370][8192:8197] CHIP:DMG: StatusIB = - [1657778308.373452][8192:8197] CHIP:DMG: { - [1657778308.373526][8192:8197] CHIP:DMG: status = 0x00 (SUCCESS), - [1657778308.373605][8192:8197] CHIP:DMG: }, - [1657778308.373887][8192:8197] CHIP:DMG: - [1657778308.373960][8192:8197] CHIP:DMG: }, - [1657778308.374037][8192:8197] CHIP:DMG: - [1657778308.374098][8192:8197] CHIP:DMG: }, - [1657778308.374171][8192:8197] CHIP:DMG: - [1657778308.374228][8192:8197] CHIP:DMG: ], - [1657778308.374299][8192:8197] CHIP:DMG: - [1657778308.374357][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778308.374414][8192:8197] CHIP:DMG: }, - [1657778308.374544][8192:8197] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003E Command=0x0000_000B Status=0x0 - [1657778308.374610][8192:8197] CHIP:CTL: Device confirmed that it has received the root certificate - [1657778308.374671][8192:8197] CHIP:CTL: Successfully finished commissioning step "SendTrustedRootCert" + [1689679303.611362][52705:52705] CHIP:ZCL: OpCreds: Received an AddTrustedRootCertificate command + [1689679303.611456][52705:52705] CHIP:DMG: >> to UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 | 151581352 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 47827 / Exchange = 36148] + [1689679303.611465][52705:52705] CHIP:DMG: Header Flags = + [1689679303.611468][52705:52705] CHIP:DMG: { + [1689679303.611475][52705:52705] CHIP:DMG: Exchange (0x02) = + [1689679303.611478][52705:52705] CHIP:DMG: { + [1689679303.611482][52705:52705] CHIP:DMG: AckMsg = 135880645 + [1689679303.611486][52705:52705] CHIP:DMG: } + [1689679303.611492][52705:52705] CHIP:DMG: } + [1689679303.611496][52705:52705] CHIP:DMG: + [1689679303.611501][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.611504][52705:52705] CHIP:DMG: { + [1689679303.611506][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.611509][52705:52705] CHIP:DMG: } + [1689679303.611512][52705:52705] CHIP:DMG: + [1689679303.611528][52705:52705] CHIP:EM: <<< [E:36148r S:3817 M:151581352 (Ack:135880645)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689679303.611536][52705:52705] CHIP:IN: (S) Sending msg 151581352 on secure session with LSID: 3817 + [1689679303.611568][52705:52705] CHIP:EM: Flushed pending ack for MessageCounter:135880645 on exchange 36148r + [1689679303.611820][52705:52705] CHIP:ZCL: OpCreds: AddTrustedRootCertificate successful. disabled: true - - label: "Verify that DUT sends the AddNOC Command to TH" + - label: "Step 7a: Verify that TH receives AddNOC Command from DUT" PICS: OPCREDS.C.C06.Tx verification: | - Verify that the DUT send AddNOC command to TH (all-clusters-app) commissioning log + Verify that the TH (all-clusters-app) receives AddNOC command from DUT in commissioning log - - [1657778308.374786][8192:8197] CHIP:CTL: Performing next commissioning step "SendNOC" - [1657778308.374916][8192:8197] CHIP:DMG: ICR moving to [AddingComm] - [1657778308.374996][8192:8197] CHIP:DMG: ICR moving to [AddedComma] - [1657778308.375901][8192:8197] CHIP:IN: Prepared secure message 0xffff8ccc89b8 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 40146i with MessageCounter:181296340. - [1657778308.376000][8192:8197] CHIP:IN: Sending encrypted msg 0xffff8ccc89b8 with MessageCounter:181296340 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000000B2EEC3 msec - [1657778308.376839][8192:8197] CHIP:DMG: >> to BLE | 181296340 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 7643 / Exchange = 40146] - [1657778308.376934][8192:8197] CHIP:DMG: Header Flags = - [1657778308.376989][8192:8197] CHIP:DMG: { - [1657778308.377071][8192:8197] CHIP:DMG: Exchange (0x01) = - [1657778308.377125][8192:8197] CHIP:DMG: { - [1657778308.377173][8192:8197] CHIP:DMG: Initiator = true - [1657778308.377233][8192:8197] CHIP:DMG: } - [1657778308.377301][8192:8197] CHIP:DMG: } - [1657778308.377353][8192:8197] CHIP:DMG: - [1657778308.377423][8192:8197] CHIP:DMG: Encrypted Payload (566 bytes) = - [1657778308.377477][8192:8197] CHIP:DMG: { - [1657778308.377538][8192:8197] CHIP:DMG: data = 00db1d00d45cce0afc12beef1327287a34b78b228011c03756a7de84ad3b0b40545238c440d868eff492f5cc58caa9566d09050719970a8830b12b46e29b8e77ea6985b8e5a78d46ec4876bd3a2dd451f4da1c0ee46ee3a0f39e237e2b1f906ec319f9a2655f4b07d1c280403d3234054e550e33cf4555f6fcbd5927656c589833ef4705a58b2abab6ceca7ad004c43d78459e1832926aea7c26d30ebb0e8e5e24bdac0df5ad32bcaa74871ea63f62078e444986882221c3dcfbacd5bb85b8555521c4bbe14fe0f6053f91548c1c733fc565b1637af547ba7763512e4f4ec2c5fb928b5e914f29b7a9d99f2dfdb7fca4d0d796acefc12179b1a366f6ee4494d7d67852d53378ddb81579e702146f037639e835c5c7b4c34c405de045bafeb524fdb7a16ed22fbfc8b3a3f87ffa321cae990ed5cfe99d7ac98480996eb846a008594fb58dbd035d6838e2b640b8f6131af1b5ec682d237651f9cec735673388886e6429688d6ab433521668a7d163b444a68da0a0835f554c60598c4444a61709055e4481e278fe9f242b582aabb12055ad948fbb7938497262d02e98ad31a116371e2d8c544fee8825877134a2d8605cce87afce425adc994586f98833a4d6d6391bf35589706239c869e98441c079a1ed552be45c2bb888ebe9e6cd3523273c9048ba817165a54dcf1b2a521c8ba92a70cddf5a09d49a3819299fde8d962179b44b1e856b113875921ec6ab083114d26a933c1cd88b06821c6d19f6597c09dbb8a5476a76985d118eaa443afe8afe75be59c53e1f9f - [1657778308.377644][8192:8197] CHIP:DMG: buffer_ptr = 281472695121488 - [1657778308.377694][8192:8197] CHIP:DMG: } - [1657778308.377743][8192:8197] CHIP:DMG: - [1657778308.377969][8192:8197] CHIP:DMG: NOCValue (241) = - [1657778308.378014][8192:8197] CHIP:DMG: { - FTABAQEkAgE3AyQTARgmBIAigScmBYAlTTo3BiQVASQRARgkBwEkCAEwCUEEEVjjcBVyXtGRv7qfaNuF7C8nc4jPDiaEhkefdELB4RlaeLwgSay5lF/kK2aCZ+1YJ9t0aYEfWubfaezQg6MALTcKNQEoARgkAgE2AwQCBAEYMAQUzseVXMJqXGjbk9fgg6lp4vy2c2YwBRTuecUEKXl3L7PdVqEuT7fJq/jqIxgwC0D7RgAtJ8hxBYRG+M80BSMk5Y9EFAZWX1S7MaaLPNkn1JHlbq4cbZyaMWu1U2udUzKUzouVpo725bMzmKsglCvdGA== - [1657778308.378120][8192:8197] CHIP:DMG: } - [1657778308.378145][8192:8197] CHIP:DMG: - [1657778308.378172][8192:8197] CHIP:DMG: ICACValue (231) = - [1657778308.378209][8192:8197] CHIP:DMG: { - FTABAQAkAgE3AyQUABgmBIAigScmBYAlTTo3BiQTARgkBwEkCAEwCUEEx5QAnzqNn7I0Hhe6YADzoBGWnlI29Ey27Zo7tT94lGxprQhku7PjzDmRvwbKQyg1MU0tS54w4MZ4eQ5MtvHKUDcKNQEpARgkAmAwBBTuecUEKXl3L7PdVqEuT7fJq/jqIzAFFOkPdSXQfwHCBPUMR1E2mTTU8e4AGDALQM4ze/Xnl5HSDVgVw1qSlKuNLE92xOQ2ysYGLAFmFlPojqNQks84Mzf67V/ZBi31cl6mGtKTLqrapcRT+w9JKfgY - [1657778308.378259][8192:8197] CHIP:DMG: } - [1657778308.378284][8192:8197] CHIP:DMG: - [1657778308.378371][8192:8197] CHIP:DMG: InvokeRequestMessage = - [1657778308.378402][8192:8197] CHIP:DMG: { - [1657778308.378430][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778308.378462][8192:8197] CHIP:DMG: timedRequest = false, - [1657778308.378490][8192:8197] CHIP:DMG: InvokeRequests = - [1657778308.378530][8192:8197] CHIP:DMG: [ - [1657778308.378560][8192:8197] CHIP:DMG: CommandDataIB = - [1657778308.378594][8192:8197] CHIP:DMG: { - [1657778308.378624][8192:8197] CHIP:DMG: CommandPathIB = - [1657778308.378661][8192:8197] CHIP:DMG: { - [1657778308.378697][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778308.378738][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778308.378777][8192:8197] CHIP:DMG: CommandId = 0x6, - [1657778308.378818][8192:8197] CHIP:DMG: }, - [1657778308.378855][8192:8197] CHIP:DMG: - [1657778308.378887][8192:8197] CHIP:DMG: CommandFields = - [1657778308.378923][8192:8197] CHIP:DMG: { - [1657778308.378962][8192:8197] CHIP:DMG: 0x0 = [ - [1657778308.379095][8192:8197] CHIP:DMG: 0x15, 0x30, 0x1, 0x1, 0x1, 0x24, 0x2, 0x1, 0x37, 0x3, 0x24, 0x13, 0x1, 0x18, 0x26, 0x4, 0x80, 0x22, 0x81, 0x27, 0x26, 0x5, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x6, 0x24, 0x15, 0x1, 0x24, 0x11, 0x1, 0x18, 0x24, 0x7, 0x1, 0x24, 0x8, 0x1, 0x30, 0x9, 0x41, 0x4, 0x11, 0x58, 0xe3, 0x70, 0x15, 0x72, 0x5e, 0xd1, 0x91, 0xbf, 0xba, 0x9f, 0x68, 0xdb, 0x85, 0xec, 0x2f, 0x27, 0x73, 0x88, 0xcf, 0xe, 0x26, 0x84, 0x86, 0x47, 0x9f, 0x74, 0x42, 0xc1, 0xe1, 0x19, 0x5a, 0x78, 0xbc, 0x20, 0x49, 0xac, 0xb9, 0x94, 0x5f, 0xe4, 0x2b, 0x66, 0x82, 0x67, 0xed, 0x58, 0x27, 0xdb, 0x74, 0x69, 0x81, 0x1f, 0x5a, 0xe6, 0xdf, 0x69, 0xec, 0xd0, 0x83, 0xa3, 0x0, 0x2d, 0x37, 0xa, 0x35, 0x1, 0x28, 0x1, 0x18, 0x24, 0x2, 0x1, 0x36, 0x3, 0x4, 0x2, 0x4, 0x1, 0x18, 0x30, 0x4, 0x14, 0xce, 0xc7, 0x95, 0x5c, 0xc2, 0x6a, 0x5c, 0x68, 0xdb, 0x93, 0xd7, 0xe0, 0x83, 0xa9, 0x69, 0xe2, 0xfc, 0xb6, 0x73, 0x66, 0x30, 0x5, 0x14, 0xee, 0x79, 0xc5, 0x4, 0x29, 0x79, 0x77, 0x2f, 0xb3, 0xdd, 0x56, 0xa1, 0x2e, 0x4f, 0xb7, 0xc9, 0xab, 0xf8, 0xea, 0x23, 0x18, 0x30, 0xb, 0x40, 0xfb, 0x46, 0x0, 0x2d, 0x27, 0xc8, 0x71, 0x5, 0x84, 0x46, 0xf8, 0xcf, 0x34, 0x5, 0x23, 0x24, 0xe5, 0x8f, 0x44, 0x14, 0x6, 0x56, 0x5f, 0x54, 0xbb, 0x31, 0xa6, 0x8b, 0x3c, 0xd9, 0x27, 0xd4, 0x91, 0xe5, 0x6e, 0xae, 0x1c, 0x6d, 0x9c, 0x9a, 0x31, 0x6b, 0xb5, 0x53, 0x6b, 0x9d, 0x53, 0x32, 0x94, 0xce, 0x8b, 0x95, 0xa6, 0x8e, 0xf6, 0xe5, 0xb3, 0x33, 0x98, 0xab, 0x20, 0x94, 0x2b, 0xdd, 0x18, - [1657778308.379174][8192:8197] CHIP:DMG: ] - [1657778308.379214][8192:8197] CHIP:DMG: 0x1 = [ - [1657778308.379341][8192:8197] CHIP:DMG: 0x15, 0x30, 0x1, 0x1, 0x0, 0x24, 0x2, 0x1, 0x37, 0x3, 0x24, 0x14, 0x0, 0x18, 0x26, 0x4, 0x80, 0x22, 0x81, 0x27, 0x26, 0x5, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x6, 0x24, 0x13, 0x1, 0x18, 0x24, 0x7, 0x1, 0x24, 0x8, 0x1, 0x30, 0x9, 0x41, 0x4, 0xc7, 0x94, 0x0, 0x9f, 0x3a, 0x8d, 0x9f, 0xb2, 0x34, 0x1e, 0x17, 0xba, 0x60, 0x0, 0xf3, 0xa0, 0x11, 0x96, 0x9e, 0x52, 0x36, 0xf4, 0x4c, 0xb6, 0xed, 0x9a, 0x3b, 0xb5, 0x3f, 0x78, 0x94, 0x6c, 0x69, 0xad, 0x8, 0x64, 0xbb, 0xb3, 0xe3, 0xcc, 0x39, 0x91, 0xbf, 0x6, 0xca, 0x43, 0x28, 0x35, 0x31, 0x4d, 0x2d, 0x4b, 0x9e, 0x30, 0xe0, 0xc6, 0x78, 0x79, 0xe, 0x4c, 0xb6, 0xf1, 0xca, 0x50, 0x37, 0xa, 0x35, 0x1, 0x29, 0x1, 0x18, 0x24, 0x2, 0x60, 0x30, 0x4, 0x14, 0xee, 0x79, 0xc5, 0x4, 0x29, 0x79, 0x77, 0x2f, 0xb3, 0xdd, 0x56, 0xa1, 0x2e, 0x4f, 0xb7, 0xc9, 0xab, 0xf8, 0xea, 0x23, 0x30, 0x5, 0x14, 0xe9, 0xf, 0x75, 0x25, 0xd0, 0x7f, 0x1, 0xc2, 0x4, 0xf5, 0xc, 0x47, 0x51, 0x36, 0x99, 0x34, 0xd4, 0xf1, 0xee, 0x0, 0x18, 0x30, 0xb, 0x40, 0xce, 0x33, 0x7b, 0xf5, 0xe7, 0x97, 0x91, 0xd2, 0xd, 0x58, 0x15, 0xc3, 0x5a, 0x92, 0x94, 0xab, 0x8d, 0x2c, 0x4f, 0x76, 0xc4, 0xe4, 0x36, 0xca, 0xc6, 0x6, 0x2c, 0x1, 0x66, 0x16, 0x53, 0xe8, 0x8e, 0xa3, 0x50, 0x92, 0xcf, 0x38, 0x33, 0x37, 0xfa, 0xed, 0x5f, 0xd9, 0x6, 0x2d, 0xf5, 0x72, 0x5e, 0xa6, 0x1a, 0xd2, 0x93, 0x2e, 0xaa, 0xda, 0xa5, 0xc4, 0x53, 0xfb, 0xf, 0x49, 0x29, 0xf8, 0x18, - [1657778308.379416][8192:8197] CHIP:DMG: ] - [1657778308.379459][8192:8197] CHIP:DMG: 0x2 = [ - [1657778308.379502][8192:8197] CHIP:DMG: 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x69, 0x70, 0x6b, 0x20, 0x30, 0x31, - [1657778308.379550][8192:8197] CHIP:DMG: ] - [1657778308.379595][8192:8197] CHIP:DMG: 0x3 = 112233, - [1657778308.379635][8192:8197] CHIP:DMG: 0x4 = 65521, - [1657778308.379675][8192:8197] CHIP:DMG: }, - [1657778308.379709][8192:8197] CHIP:DMG: }, - [1657778308.379748][8192:8197] CHIP:DMG: - [1657778308.379777][8192:8197] CHIP:DMG: ], - [1657778308.379816][8192:8197] CHIP:DMG: - [1657778308.379845][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778308.379874][8192:8197] CHIP:DMG: }, - [1657778308.379901][8192:8197] CHIP:DMG: - [1657778308.380041][8192:8197] CHIP:DMG: ICR moving to [CommandSen] - [1657778308.380085][8192:8197] CHIP:CTL: Sent operational certificate to the device - [1657778308.380153][8192:8197] CHIP:DMG: ICR moving to [AwaitingDe] - [1657778308.514297][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1657778308.611751][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1657778308.708601][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1657778308.807985][8192:8195] CHIP:DL: Indication received, conn = 0xffff8403b1d0 - [1657778308.808296][8192:8197] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1657778308.809237][8192:8197] CHIP:DMG: << from BLE | 27198693 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 43164 / Exchange = 40146] - [1657778308.809341][8192:8197] CHIP:DMG: Header Flags = - [1657778308.809398][8192:8197] CHIP:DMG: { - [1657778308.809494][8192:8197] CHIP:DMG: } - [1657778308.809548][8192:8197] CHIP:DMG: - [1657778308.809642][8192:8197] CHIP:DMG: Encrypted Payload (66 bytes) = - [1657778308.809699][8192:8197] CHIP:DMG: { - [1657778308.809773][8192:8197] CHIP:DMG: data = 009ca800e5049f0152863583d2b26b6e19d712d00af203550c624e9bc740624ac602e9cde6a93a68a120f1c74fb57213ee5106455bf8ce9ac330d6fb4e4e0b9a7a6e - [1657778308.809829][8192:8197] CHIP:DMG: buffer_ptr = 281472695094080 - [1657778308.809900][8192:8197] CHIP:DMG: } - [1657778308.809951][8192:8197] CHIP:DMG: - [1657778308.810088][8192:8197] CHIP:DMG: - [1657778308.810192][8192:8197] CHIP:DMG: Additional Fields = - [1657778308.810249][8192:8197] CHIP:DMG: { - [1657778308.810329][8192:8197] CHIP:DMG: peer_address = BLE - [1657778308.810386][8192:8197] CHIP:DMG: } - [1657778308.810435][8192:8197] CHIP:DMG: - [1657778308.810521][8192:8197] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:27198693 on exchange 40146i - [1657778308.810585][8192:8197] CHIP:EM: Found matching exchange: 40146i, Delegate: 0xaaaaf7819670 - [1657778308.810691][8192:8197] CHIP:DMG: ICR moving to [ResponseRe] - [1657778308.810803][8192:8197] CHIP:DMG: InvokeResponseMessage = - [1657778308.810864][8192:8197] CHIP:DMG: { - [1657778308.810921][8192:8197] CHIP:DMG: suppressResponse = false, - [1657778308.811000][8192:8197] CHIP:DMG: InvokeResponseIBs = - [1657778308.811075][8192:8197] CHIP:DMG: [ - [1657778308.811155][8192:8197] CHIP:DMG: InvokeResponseIB = - [1657778308.811254][8192:8197] CHIP:DMG: { - [1657778308.811319][8192:8197] CHIP:DMG: CommandDataIB = - [1657778308.811419][8192:8197] CHIP:DMG: { - [1657778308.811492][8192:8197] CHIP:DMG: CommandPathIB = - [1657778308.811573][8192:8197] CHIP:DMG: { - [1657778308.811675][8192:8197] CHIP:DMG: EndpointId = 0x0, - [1657778308.811779][8192:8197] CHIP:DMG: ClusterId = 0x3e, - [1657778308.811872][8192:8197] CHIP:DMG: CommandId = 0x8, - [1657778308.811979][8192:8197] CHIP:DMG: }, - [1657778308.812083][8192:8197] CHIP:DMG: - [1657778308.812177][8192:8197] CHIP:DMG: CommandFields = - [1657778308.812286][8192:8197] CHIP:DMG: { - [1657778308.812368][8192:8197] CHIP:DMG: 0x0 = 0, - [1657778308.812478][8192:8197] CHIP:DMG: 0x1 = 1, - [1657778308.812586][8192:8197] CHIP:DMG: }, - [1657778308.812663][8192:8197] CHIP:DMG: }, - [1657778308.812769][8192:8197] CHIP:DMG: - [1657778308.812831][8192:8197] CHIP:DMG: }, - [1657778308.812928][8192:8197] CHIP:DMG: - [1657778308.812986][8192:8197] CHIP:DMG: ], - [1657778308.813080][8192:8197] CHIP:DMG: - [1657778308.813138][8192:8197] CHIP:DMG: InteractionModelRevision = 1 - [1657778308.813216][8192:8197] CHIP:DMG: }, - [1657778308.813376][8192:8197] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 - [1657778308.813455][8192:8197] CHIP:CTL: Device returned status 0 on receiving the NOC + [1689679303.613590][52705:52705] CHIP:ZCL: OpCreds: Received an AddNOC command + [1689679303.613687][52705:52705] CHIP:DMG: >> to UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 | 151581354 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 47827 / Exchange = 36149] + [1689679303.613696][52705:52705] CHIP:DMG: Header Flags = + [1689679303.613699][52705:52705] CHIP:DMG: { + [1689679303.613707][52705:52705] CHIP:DMG: Exchange (0x02) = + [1689679303.613710][52705:52705] CHIP:DMG: { + [1689679303.613714][52705:52705] CHIP:DMG: AckMsg = 135880647 + [1689679303.613717][52705:52705] CHIP:DMG: } + [1689679303.613723][52705:52705] CHIP:DMG: } + [1689679303.613726][52705:52705] CHIP:DMG: + [1689679303.613733][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.613737][52705:52705] CHIP:DMG: { + [1689679303.613741][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.613744][52705:52705] CHIP:DMG: } + [1689679303.613747][52705:52705] CHIP:DMG: + [1689679303.613760][52705:52705] CHIP:EM: <<< [E:36149r S:3817 M:151581354 (Ack:135880647)] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689679303.613767][52705:52705] CHIP:IN: (S) Sending msg 151581354 on secure session with LSID: 3817 + [1689679303.613791][52705:52705] CHIP:EM: Flushed pending ack for MessageCounter:135880647 on exchange 36149r + [1689679303.613883][52705:52705] CHIP:FP: Validating NOC chain + [1689679303.614555][52705:52705] CHIP:FP: NOC chain validation successful disabled: true - label: - "TH saves the following values as: NOCValue as nocvalue1 ICACValue as - icacvalue1 IpkValue as ipkvalue1 CaseAdminSubject as caseadmin1 - AdminVendorId as adminvendorid1" + "Step 7b: TH saves the following values as: NOCValue as nocvalue1 + ICACValue as icacvalue1 IpkValue as ipkvalue1 CaseAdminSubject as + caseadmin1 AdminVendorId as adminvendorid1" verification: | Save the following from above log 1. NOCvalue as nocvalue1 Example: - [1657778308.377969][8192:8197] CHIP:DMG: NOCValue (241) = - [1657778308.378014][8192:8197] CHIP:DMG: { - FTABAQEkAgE3AyQTARgmBIAigScmBYAlTTo3BiQVASQRARgkBwEkCAEwCUEEEVjjcBVyXtGRv7qfaNuF7C8nc4jPDiaEhkefdELB4RlaeLwgSay5lF/kK2aCZ+1YJ9t0aYEfWubfaezQg6MALTcKNQEoARgkAgE2AwQCBAEYMAQUzseVXMJqXGjbk9fgg6lp4vy2c2YwBRTuecUEKXl3L7PdVqEuT7fJq/jqIxgwC0D7RgAtJ8hxBYRG+M80BSMk5Y9EFAZWX1S7MaaLPNkn1JHlbq4cbZyaMWu1U2udUzKUzouVpo725bMzmKsglCvdGA== - [1657778308.378120][8192:8197] CHIP:DMG: } + [1689679303.613238][52705:52705] CHIP:DMG: NOCValue (241) = + [1689679303.613248][52705:52705] CHIP:DMG: { + FTABAQEkAgE3AyQTAhgmBIAigScmBYAlTTo3BiQVASQRARgkBwEkCAEwCUEE8pTUqjDa1BZovbDiSsDYMLC6M1yId8W2CvYrmFz/ISOVGXMU0wJZY6RQG0rLiiIC7MwQ7WV8/3+uj5kSs5PBzTcKNQEoARgkAgE2AwQCBAEYMAQUs00EaB5LCRmJqaXyveEf3F7OqU0wBRTFGM2bF8Z8SgUB8p6ELVeKY9TCvhgwC0BZrpcyQkCthOGq+TugsOyOk4sUCOjkJQzlMBLerQp+n8QcQisZD/GIINhEC6Yw5nxOyd2sZrENcjy7XQUMtSVsGA== + [1689679303.613255][52705:52705] CHIP:DMG: } 2. ICACValue as icacvalue1 Example: - [1657778308.378172][8192:8197] CHIP:DMG: ICACValue (231) = - [1657778308.378209][8192:8197] CHIP:DMG: { - FTABAQAkAgE3AyQUABgmBIAigScmBYAlTTo3BiQTARgkBwEkCAEwCUEEx5QAnzqNn7I0Hhe6YADzoBGWnlI29Ey27Zo7tT94lGxprQhku7PjzDmRvwbKQyg1MU0tS54w4MZ4eQ5MtvHKUDcKNQEpARgkAmAwBBTuecUEKXl3L7PdVqEuT7fJq/jqIzAFFOkPdSXQfwHCBPUMR1E2mTTU8e4AGDALQM4ze/Xnl5HSDVgVw1qSlKuNLE92xOQ2ysYGLAFmFlPojqNQks84Mzf67V/ZBi31cl6mGtKTLqrapcRT+w9JKfgY - [1657778308.378259][8192:8197] CHIP:DMG: } + [1689679303.613261][52705:52705] CHIP:DMG: ICACValue (231) = + [1689679303.613269][52705:52705] CHIP:DMG: { + FTABAQEkAgE3AyQUARgmBIAigScmBYAlTTo3BiQTAhgkBwEkCAEwCUEEUAg7aniWmRLpt+x1PABmWvQjHuE+Q2IgXbwY8GBlQ2P65I4MW9VZgJ4uCD9Uuoof9qte8fjge1W94b4952PvrDcKNQEpARgkAmAwBBTFGM2bF8Z8SgUB8p6ELVeKY9TCvjAFFM+bPzZDej58jIru6AOFJgpPSmvzGDALQIqwnkbsSrXjw4r0aDZvDOVFF9M7fyOZfcZjYnHDGl/eVfLeX2hhO2rMVa4OoTe09+K5Tl4aWZ7/X6O3Ombf29AY + [1689679303.613277][52705:52705] CHIP:DMG: } 3. IpkValue as ipkvalue1 Example: - 0x2 = 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x69, 0x70, 0x6b, 0x20, 0x30, 0x31, + 0x2 = [ + [1689679303.613506][52705:52705] CHIP:DMG: 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x69, 0x70, 0x6b, 0x20, 0x30, 0x31, 4. CaseAdminSubject as caseadmin1 Example: - 0x3 = 112233 + 0x3 = 112233, 5. AdminVendorId as adminvendorid1 Example: - 0x4 = 65521 + 0x4 = 65521, disabled: true - label: - "Extract the following FabricDescriptorStruct values from TH + "Step 8: Extract the following FabricDescriptorStruct values from TH RootPublicKey VendorID FabricID NodeID Label" verification: | ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0 --trace_decode 1 - Verify that the following on TH (all-clusters-app) + Extract that the following on TH (all-clusters-app) to verfy in the next step 1. RootPublicKey 2. VendorID 3. FabricID 4. NodeID 5. Label - [1660204922.048005][5770:5770] CHIP:DMG: ReportDataMessage = - [1660204922.048056][5770:5770] CHIP:DMG: { - [1660204922.048088][5770:5770] CHIP:DMG: AttributeReportIBs = - [1660204922.048132][5770:5770] CHIP:DMG: [ - [1660204922.048168][5770:5770] CHIP:DMG: AttributeReportIB = - [1660204922.048219][5770:5770] CHIP:DMG: { - [1660204922.048273][5770:5770] CHIP:DMG: AttributeDataIB = - [1660204922.048324][5770:5770] CHIP:DMG: { - [1660204922.048383][5770:5770] CHIP:DMG: DataVersion = 0x831524ff, - [1660204922.048431][5770:5770] CHIP:DMG: AttributePathIB = - [1660204922.048492][5770:5770] CHIP:DMG: { - [1660204922.048543][5770:5770] CHIP:DMG: Endpoint = 0x0, - [1660204922.048610][5770:5770] CHIP:DMG: Cluster = 0x3e, - [1660204922.048674][5770:5770] CHIP:DMG: Attribute = 0x0000_0001, - [1660204922.048727][5770:5770] CHIP:DMG: } - [1660204922.048790][5770:5770] CHIP:DMG: - [1660204922.048843][5770:5770] CHIP:DMG: Data = [ - [1660204922.048902][5770:5770] CHIP:DMG: - [1660204922.048970][5770:5770] CHIP:DMG: ], - [1660204922.049017][5770:5770] CHIP:DMG: }, - [1660204922.049066][5770:5770] CHIP:DMG: - [1660204922.049118][5770:5770] CHIP:DMG: }, - [1660204922.049193][5770:5770] CHIP:DMG: - [1660204922.049229][5770:5770] CHIP:DMG: AttributeReportIB = - [1660204922.049295][5770:5770] CHIP:DMG: { - [1660204922.049337][5770:5770] CHIP:DMG: AttributeDataIB = - [1660204922.049398][5770:5770] CHIP:DMG: { - [1660204922.049451][5770:5770] CHIP:DMG: DataVersion = 0x831524ff, - [1660204922.049515][5770:5770] CHIP:DMG: AttributePathIB = - [1660204922.049579][5770:5770] CHIP:DMG: { - [1660204922.049634][5770:5770] CHIP:DMG: Endpoint = 0x0, - [1660204922.049700][5770:5770] CHIP:DMG: Cluster = 0x3e, - [1660204922.049753][5770:5770] CHIP:DMG: Attribute = 0x0000_0001, - [1660204922.049822][5770:5770] CHIP:DMG: ListIndex = Null, - [1660204922.049889][5770:5770] CHIP:DMG: } - [1660204922.049941][5770:5770] CHIP:DMG: - [1660204922.050000][5770:5770] CHIP:DMG: Data = - [1660204922.050053][5770:5770] CHIP:DMG: { - [1660204922.050116][5770:5770] CHIP:DMG: 0x1 = [ - [1660204922.050196][5770:5770] CHIP:DMG: 0x4, 0xe1, 0x84, 0xff, 0xff, 0x4d, 0x13, 0xdb, 0xcf, 0x38, 0x4a, 0x26, 0xa5, 0x96, 0x16, 0x99, 0xf6, 0xba, 0x71, 0xa9, 0x5e, 0xf4, 0xc5, 0x7f, 0x53, 0x28, 0xbe, 0x2f, 0x4a, 0x6c, 0x6c, 0x31, 0xd7, 0x1d, 0x43, 0xb9, 0x30, 0x1a, 0x1f, 0x82, 0x25, 0x54, 0x7a, 0x7f, 0xc4, 0x4d, 0x99, 0x81, 0x8b, 0x45, 0x48, 0xd3, 0x5d, 0x4f, 0xdb, 0xf1, 0x79, 0x29, 0x9b, 0x8e, 0xd0, 0x1b, 0x98, 0x6e, 0xd5, - [1660204922.050271][5770:5770] CHIP:DMG: ] (65 bytes) - [1660204922.050324][5770:5770] CHIP:DMG: 0x2 = 65521, - [1660204922.050396][5770:5770] CHIP:DMG: 0x3 = 1, - [1660204922.050453][5770:5770] CHIP:DMG: 0x4 = 1, - [1660204922.050522][5770:5770] CHIP:DMG: 0x5 = "" (0 chars), - [1660204922.050590][5770:5770] CHIP:DMG: 0xfe = 1, - [1660204922.050641][5770:5770] CHIP:DMG: }, - [1660204922.050704][5770:5770] CHIP:DMG: }, - [1660204922.050760][5770:5770] CHIP:DMG: - [1660204922.050812][5770:5770] CHIP:DMG: }, - [1660204922.050877][5770:5770] CHIP:DMG: - [1660204922.050912][5770:5770] CHIP:DMG: ], + [1689681605.068131][52705:52705] CHIP:DMG: ReportDataMessage = + [1689681605.068135][52705:52705] CHIP:DMG: { + [1689681605.068138][52705:52705] CHIP:DMG: AttributeReportIBs = + [1689681605.068146][52705:52705] CHIP:DMG: [ + [1689681605.068149][52705:52705] CHIP:DMG: AttributeReportIB = + [1689681605.068156][52705:52705] CHIP:DMG: { + [1689681605.068160][52705:52705] CHIP:DMG: AttributeDataIB = + [1689681605.068164][52705:52705] CHIP:DMG: { + [1689681605.068169][52705:52705] CHIP:DMG: DataVersion = 0x65bf1426, + [1689681605.068174][52705:52705] CHIP:DMG: AttributePathIB = + [1689681605.068178][52705:52705] CHIP:DMG: { + [1689681605.068183][52705:52705] CHIP:DMG: Endpoint = 0x0, + [1689681605.068188][52705:52705] CHIP:DMG: Cluster = 0x3e, + [1689681605.068193][52705:52705] CHIP:DMG: Attribute = 0x0000_0001, + [1689681605.068198][52705:52705] CHIP:DMG: } + [1689681605.068202][52705:52705] CHIP:DMG: + [1689681605.068207][52705:52705] CHIP:DMG: Data = [ + [1689681605.068211][52705:52705] CHIP:DMG: + [1689681605.068216][52705:52705] CHIP:DMG: { + [1689681605.068220][52705:52705] CHIP:DMG: 0x1 = [ + [1689681605.068229][52705:52705] CHIP:DMG: 0x04, 0x8e, 0x70, 0xf4, 0x2e, 0xcb, 0xad, 0x8a, 0xc7, 0x98, 0x04, 0xa7, 0x5e, 0x1e, 0xe8, 0x33, 0xc8, 0x33, 0xb0, 0x76, 0xd9, 0x02, 0x93, 0x0a, 0x79, 0xff, 0xc3, 0xcd, 0x26, 0x78, 0xa9, 0xf6, 0xe8, 0xfe, 0xe8, 0x8b, 0x72, 0x3e, 0x31, 0x4e, 0x8e, 0xd7, 0x63, 0x7d, 0x9e, 0x90, 0x73, 0x20, 0x71, 0x1b, 0xbf, 0xfd, 0x1c, 0xc0, 0x8c, 0x4d, 0x6f, 0xb8, 0x75, 0x5f, 0xcb, 0x41, 0xef, 0x96, 0xb9, + [1689681605.068235][52705:52705] CHIP:DMG: ] (65 bytes) + [1689681605.068239][52705:52705] CHIP:DMG: 0x2 = 65521, + [1689681605.068244][52705:52705] CHIP:DMG: 0x3 = 1, + [1689681605.068248][52705:52705] CHIP:DMG: 0x4 = 1, + [1689681605.068253][52705:52705] CHIP:DMG: 0x5 = "" (0 chars), + [1689681605.068257][52705:52705] CHIP:DMG: 0xfe = 1, + [1689681605.068263][52705:52705] CHIP:DMG: }, + [1689681605.068266][52705:52705] CHIP:DMG: ], + [1689681605.068270][52705:52705] CHIP:DMG: }, + [1689681605.068276][52705:52705] CHIP:DMG: + [1689681605.068279][52705:52705] CHIP:DMG: }, + [1689681605.068284][52705:52705] CHIP:DMG: + [1689681605.068287][52705:52705] CHIP:DMG: ], + [1689681605.068292][52705:52705] CHIP:DMG: + [1689681605.068295][52705:52705] CHIP:DMG: SuppressResponse = true, + [1689681605.068297][52705:52705] CHIP:DMG: InteractionModelRevision = 1 disabled: true - label: - "Verify that the size of RootPublicKey is within 65 octstr. Verify - that the NodeID is the same as the chip-node-id in the NOC sent with - AddNOC Command. Verify that the VendorID is the same as the + "Step 9: Verify that the size of RootPublicKey is within 65 octstr. + Verify that the NodeID is the same as the chip-node-id in the NOC sent + with AddNOC Command. Verify that the VendorID is the same as the AdminVendorID sent with AddNOC Command. Verify that the FabricID is the same as the matter-fabric-id field from the operational certificate. Verify that the size of Label has a maximum value of 32 @@ -946,839 +700,362 @@ tests: 4. Verify the FabricID (0x4) is same as matter-fabric-id 5. Verify the size of Label is maximum of 32 bytes - [1660204922.048005][5770:5770] CHIP:DMG: ReportDataMessage = - [1660204922.048056][5770:5770] CHIP:DMG: { - [1660204922.048088][5770:5770] CHIP:DMG: AttributeReportIBs = - [1660204922.048132][5770:5770] CHIP:DMG: [ - [1660204922.048168][5770:5770] CHIP:DMG: AttributeReportIB = - [1660204922.048219][5770:5770] CHIP:DMG: { - [1660204922.048273][5770:5770] CHIP:DMG: AttributeDataIB = - [1660204922.048324][5770:5770] CHIP:DMG: { - [1660204922.048383][5770:5770] CHIP:DMG: DataVersion = 0x831524ff, - [1660204922.048431][5770:5770] CHIP:DMG: AttributePathIB = - [1660204922.048492][5770:5770] CHIP:DMG: { - [1660204922.048543][5770:5770] CHIP:DMG: Endpoint = 0x0, - [1660204922.048610][5770:5770] CHIP:DMG: Cluster = 0x3e, - [1660204922.048674][5770:5770] CHIP:DMG: Attribute = 0x0000_0001, - [1660204922.048727][5770:5770] CHIP:DMG: } - [1660204922.048790][5770:5770] CHIP:DMG: - [1660204922.048843][5770:5770] CHIP:DMG: Data = [ - [1660204922.048902][5770:5770] CHIP:DMG: - [1660204922.048970][5770:5770] CHIP:DMG: ], - [1660204922.049017][5770:5770] CHIP:DMG: }, - [1660204922.049066][5770:5770] CHIP:DMG: - [1660204922.049118][5770:5770] CHIP:DMG: }, - [1660204922.049193][5770:5770] CHIP:DMG: - [1660204922.049229][5770:5770] CHIP:DMG: AttributeReportIB = - [1660204922.049295][5770:5770] CHIP:DMG: { - [1660204922.049337][5770:5770] CHIP:DMG: AttributeDataIB = - [1660204922.049398][5770:5770] CHIP:DMG: { - [1660204922.049451][5770:5770] CHIP:DMG: DataVersion = 0x831524ff, - [1660204922.049515][5770:5770] CHIP:DMG: AttributePathIB = - [1660204922.049579][5770:5770] CHIP:DMG: { - [1660204922.049634][5770:5770] CHIP:DMG: Endpoint = 0x0, - [1660204922.049700][5770:5770] CHIP:DMG: Cluster = 0x3e, - [1660204922.049753][5770:5770] CHIP:DMG: Attribute = 0x0000_0001, - [1660204922.049822][5770:5770] CHIP:DMG: ListIndex = Null, - [1660204922.049889][5770:5770] CHIP:DMG: } - [1660204922.049941][5770:5770] CHIP:DMG: - [1660204922.050000][5770:5770] CHIP:DMG: Data = - [1660204922.050053][5770:5770] CHIP:DMG: { - [1660204922.050116][5770:5770] CHIP:DMG: 0x1 = [ - [1660204922.050196][5770:5770] CHIP:DMG: 0x4, 0xe1, 0x84, 0xff, 0xff, 0x4d, 0x13, 0xdb, 0xcf, 0x38, 0x4a, 0x26, 0xa5, 0x96, 0x16, 0x99, 0xf6, 0xba, 0x71, 0xa9, 0x5e, 0xf4, 0xc5, 0x7f, 0x53, 0x28, 0xbe, 0x2f, 0x4a, 0x6c, 0x6c, 0x31, 0xd7, 0x1d, 0x43, 0xb9, 0x30, 0x1a, 0x1f, 0x82, 0x25, 0x54, 0x7a, 0x7f, 0xc4, 0x4d, 0x99, 0x81, 0x8b, 0x45, 0x48, 0xd3, 0x5d, 0x4f, 0xdb, 0xf1, 0x79, 0x29, 0x9b, 0x8e, 0xd0, 0x1b, 0x98, 0x6e, 0xd5, - [1660204922.050271][5770:5770] CHIP:DMG: ] (65 bytes) - [1660204922.050324][5770:5770] CHIP:DMG: 0x2 = 65521, - [1660204922.050396][5770:5770] CHIP:DMG: 0x3 = 1, - [1660204922.050453][5770:5770] CHIP:DMG: 0x4 = 1, - [1660204922.050522][5770:5770] CHIP:DMG: 0x5 = "" (0 chars), - [1660204922.050590][5770:5770] CHIP:DMG: 0xfe = 1, - [1660204922.050641][5770:5770] CHIP:DMG: }, - [1660204922.050704][5770:5770] CHIP:DMG: }, - [1660204922.050760][5770:5770] CHIP:DMG: - [1660204922.050812][5770:5770] CHIP:DMG: }, - [1660204922.050877][5770:5770] CHIP:DMG: - [1660204922.050912][5770:5770] CHIP:DMG: ], + [1689681605.068131][52705:52705] CHIP:DMG: ReportDataMessage = + [1689681605.068135][52705:52705] CHIP:DMG: { + [1689681605.068138][52705:52705] CHIP:DMG: AttributeReportIBs = + [1689681605.068146][52705:52705] CHIP:DMG: [ + [1689681605.068149][52705:52705] CHIP:DMG: AttributeReportIB = + [1689681605.068156][52705:52705] CHIP:DMG: { + [1689681605.068160][52705:52705] CHIP:DMG: AttributeDataIB = + [1689681605.068164][52705:52705] CHIP:DMG: { + [1689681605.068169][52705:52705] CHIP:DMG: DataVersion = 0x65bf1426, + [1689681605.068174][52705:52705] CHIP:DMG: AttributePathIB = + [1689681605.068178][52705:52705] CHIP:DMG: { + [1689681605.068183][52705:52705] CHIP:DMG: Endpoint = 0x0, + [1689681605.068188][52705:52705] CHIP:DMG: Cluster = 0x3e, + [1689681605.068193][52705:52705] CHIP:DMG: Attribute = 0x0000_0001, + [1689681605.068198][52705:52705] CHIP:DMG: } + [1689681605.068202][52705:52705] CHIP:DMG: + [1689681605.068207][52705:52705] CHIP:DMG: Data = [ + [1689681605.068211][52705:52705] CHIP:DMG: + [1689681605.068216][52705:52705] CHIP:DMG: { + [1689681605.068220][52705:52705] CHIP:DMG: 0x1 = [ + [1689681605.068229][52705:52705] CHIP:DMG: 0x04, 0x8e, 0x70, 0xf4, 0x2e, 0xcb, 0xad, 0x8a, 0xc7, 0x98, 0x04, 0xa7, 0x5e, 0x1e, 0xe8, 0x33, 0xc8, 0x33, 0xb0, 0x76, 0xd9, 0x02, 0x93, 0x0a, 0x79, 0xff, 0xc3, 0xcd, 0x26, 0x78, 0xa9, 0xf6, 0xe8, 0xfe, 0xe8, 0x8b, 0x72, 0x3e, 0x31, 0x4e, 0x8e, 0xd7, 0x63, 0x7d, 0x9e, 0x90, 0x73, 0x20, 0x71, 0x1b, 0xbf, 0xfd, 0x1c, 0xc0, 0x8c, 0x4d, 0x6f, 0xb8, 0x75, 0x5f, 0xcb, 0x41, 0xef, 0x96, 0xb9, + [1689681605.068235][52705:52705] CHIP:DMG: ] (65 bytes) + [1689681605.068239][52705:52705] CHIP:DMG: 0x2 = 65521, + [1689681605.068244][52705:52705] CHIP:DMG: 0x3 = 1, + [1689681605.068248][52705:52705] CHIP:DMG: 0x4 = 1, + [1689681605.068253][52705:52705] CHIP:DMG: 0x5 = "" (0 chars), + [1689681605.068257][52705:52705] CHIP:DMG: 0xfe = 1, + [1689681605.068263][52705:52705] CHIP:DMG: }, + [1689681605.068266][52705:52705] CHIP:DMG: ], + [1689681605.068270][52705:52705] CHIP:DMG: }, + [1689681605.068276][52705:52705] CHIP:DMG: + [1689681605.068279][52705:52705] CHIP:DMG: }, + [1689681605.068284][52705:52705] CHIP:DMG: + [1689681605.068287][52705:52705] CHIP:DMG: ], + [1689681605.068292][52705:52705] CHIP:DMG: + [1689681605.068295][52705:52705] CHIP:DMG: SuppressResponse = true, + [1689681605.068297][52705:52705] CHIP:DMG: InteractionModelRevision = 1 disabled: true - label: - "Verify that the public Key extracted NOCValue of the AddNOC matches - the Node Operational Public Key extracted from CSRResponse" - verification: | - Not verifiable for V1.0 + "Step 10: Verify that the public Key extracted NOCValue of the AddNOC + matches the Node Operational Public Key extracted from CSRResponse" + verifiaction: | + Not verifiable (out of scope) disabled: true - - label: "DUT sends UpdateNOC to TH" + - label: "Step 11: Trigger the DUT to send UpdateNOC to TH" PICS: OPCREDS.C.C07.Tx verification: | During commissioning, Verify that UpdateNOC Command is received in TH (all-clusters-app) - [1655968444.113753][21387:21392] CHIP:CTL: Performing next commissioning step 'SendNOC' - [1655968444.113880][21387:21392] CHIP:DMG: ICR moving to [AddingComm] - [1655968444.113960][21387:21392] CHIP:DMG: ICR moving to [AddedComma] - [1655968444.114671][21387:21392] CHIP:IN: Prepared secure message 0xffff9afdc988 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 11677i with MessageCounter:162800417. - [1655968444.114769][21387:21392] CHIP:IN: Sending encrypted msg 0xffff9afdc988 with MessageCounter:162800417 to 0xFFFFFFFB00000000 (0) at monotonic time: 00000000059CF7B1 msec - [1655968444.115364][21387:21392] CHIP:DMG: >> to BLE | 162800417 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 52324 / Exchange = 11677] - [1655968444.115453][21387:21392] CHIP:DMG: Header Flags = - [1655968444.115507][21387:21392] CHIP:DMG: { - [1655968444.115591][21387:21392] CHIP:DMG: Exchange (0x01) = - [1655968444.115645][21387:21392] CHIP:DMG: { - [1655968444.115693][21387:21392] CHIP:DMG: Initiator = true - [1655968444.115746][21387:21392] CHIP:DMG: } - [1655968444.115813][21387:21392] CHIP:DMG: } - [1655968444.115866][21387:21392] CHIP:DMG: - [1655968444.115933][21387:21392] CHIP:DMG: Encrypted Payload (566 bytes) = - [1655968444.115987][21387:21392] CHIP:DMG: { - [1655968444.116040][21387:21392] CHIP:DMG: data = 0064cc002123b4099a74682c39ff06cabf77bbe84f66a4bb54a66a3a294d9695a06fbfc5a75fc3f109147e32b61899a0577837aa724fb5a00dc2d76309d12721b1a359644843bc002a7758a4e281a5a2776a899db603d07ebc281c041425c3961ae63959c97c507372c69fb62babb7faebb17f1bd7cef4f22bf06cd7f1785402e27cf0a5c3b2513b1a9a5251b323fca6f7db40994f060d0529535b4f223b5faf6b4f85fd826a42ed29a1150a0f3c38345d5dae9ee90b0ab2e144294a1133d40bcb55b1a65bbe4c6d595297ab87d8ed3c3cd0540cd7c9cc912069329c0b5cea03d9c54e0c505746b1bcea7a540c5afb1490338bf655f047d332bf2e7f5a7da1d1be365a4e1a4ad65941969edcd5f194d1556211a23e116f7546359910a740d915c8078655fd2f72b2cc365b48652f248c26ae62d8e3f8406e6ea04da3834d875a71eef95ea9f8c003ed4afd3d9a67f73e6941f97929bd90ea7f841061ded7060943df5680dd3d93c76a8cdc5a41ce994fea893193525fd2609452f8b802604965efee151dbe23386048baff4f628b75be87f76cca3eb9abcdd8455c9bc5079916236034ab8beb933653fb6170d59071621265d7a5f6a102559ba2108425406de05b9753e8e92fe36d0b6589b4a9354047dd4b4604314439f32041848c0a503c7140b46e35fcedc69c5124692c9a2cd156bcb7bf787e71999418a73e15b4615f5c0da7137c5808374f9513ed2b08407a13238954692eac47353328ee0a2b98989823e3c632786a2a3bf57407e3d6416f13d662c9f64a0c - [1655968444.116148][21387:21392] CHIP:DMG: buffer_ptr = 281472963556544 - [1655968444.116199][21387:21392] CHIP:DMG: } - [1655968444.116248][21387:21392] CHIP:DMG: - [1655968444.116501][21387:21392] CHIP:DMG: NOCValue (241) = - [1655968444.116588][21387:21392] CHIP:DMG: { - FTABAQEkAgE3AyQTARgmBIAigScmBYAlTTo3BiQVASQRARgkBwEkCAEwCUEEHcBCTl/pvBOZfOXSmmHJRL/ICJI+hlbYAaRNJePa/Ak/srF1z/FYjPaAkP4sMXKXXKaHTnz4X7omyPRv8PX0UzcKNQEoARgkAgE2AwQCBAEYMAQUhedKAEtnGQToa+G5kFftlECqcBwwBRSxYRFlRS+jKzSBfZmO0Y+vLC+riBgwC0Anq+xkNWHMwMI00ADi0yNznONsV8nkfk3AsKWf3/a5JiHsF1WSlqKs8TImzIVCoTGJ8nwTbydWGdzeS7CP36xAGA== - [1655968444.116687][21387:21392] CHIP:DMG: } - [1655968444.116866][21387:21392] CHIP:DMG: - [1655968444.116925][21387:21392] CHIP:DMG: ICACValue (231) = - [1655968444.116999][21387:21392] CHIP:DMG: { - FTABAQAkAgE3AyQUABgmBIAigScmBYAlTTo3BiQTARgkBwEkCAEwCUEE8qLGptdlvjwhcKkTlBZOiE4E6Kx55N6XxZrLmy30rXWvnZdXQ4gJ3E8bvAx9GwY2mqrJxSZl6K4cLDWxnzOTuDcKNQEpARgkAmAwBBSxYRFlRS+jKzSBfZmO0Y+vLC+riDAFFAUWQTxK8uFYyI2G5zpGfd+NtzyYGDALQPeonA7h21RipZNLlGBEJy9vDymwqUcPw/rcx4NsNjQ6kfY4CQojmfd09VIkrGBMQ/kXlzsf2gkXRXGJJQ1xYX0Y - [1655968444.117099][21387:21392] CHIP:DMG: } - [1655968444.117148][21387:21392] CHIP:DMG: - [1655968444.117266][21387:21392] CHIP:DMG: InvokeRequestMessage = - [1655968444.117326][21387:21392] CHIP:DMG: { - [1655968444.117381][21387:21392] CHIP:DMG: suppressResponse = false, - [1655968444.117443][21387:21392] CHIP:DMG: timedRequest = false, - [1655968444.117501][21387:21392] CHIP:DMG: InvokeRequests = - [1655968444.117572][21387:21392] CHIP:DMG: [ - [1655968444.117631][21387:21392] CHIP:DMG: CommandDataIB = - [1655968444.117696][21387:21392] CHIP:DMG: { - [1655968444.117758][21387:21392] CHIP:DMG: CommandPathIB = - [1655968444.117833][21387:21392] CHIP:DMG: { - [1655968444.117909][21387:21392] CHIP:DMG: EndpointId = 0x0, - [1655968444.117991][21387:21392] CHIP:DMG: ClusterId = 0x3e, - [1655968444.118063][21387:21392] CHIP:DMG: CommandId = 0x6, - [1655968444.118135][21387:21392] CHIP:DMG: }, - [1655968444.118211][21387:21392] CHIP:DMG: - [1655968444.118279][21387:21392] CHIP:DMG: CommandFields = - [1655968444.118351][21387:21392] CHIP:DMG: { - [1655968444.118428][21387:21392] CHIP:DMG: 0x0 = [ - [1655968444.118571][21387:21392] CHIP:DMG: 0x15, 0x30, 0x1, 0x1, 0x1, 0x24, 0x2, 0x1, 0x37, 0x3, 0x24, 0x13, 0x1, 0x18, 0x26, 0x4, 0x80, 0x22, 0x81, 0x27, 0x26, 0x5, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x6, 0x24, 0x15, 0x1, 0x24, 0x11, 0x1, 0x18, 0x24, 0x7, 0x1, 0x24, 0x8, 0x1, 0x30, 0x9, 0x41, 0x4, 0x1d, 0xc0, 0x42, 0x4e, 0x5f, 0xe9, 0xbc, 0x13, 0x99, 0x7c, 0xe5, 0xd2, 0x9a, 0x61, 0xc9, 0x44, 0xbf, 0xc8, 0x8, 0x92, 0x3e, 0x86, 0x56, 0xd8, 0x1, 0xa4, 0x4d, 0x25, 0xe3, 0xda, 0xfc, 0x9, 0x3f, 0xb2, 0xb1, 0x75, 0xcf, 0xf1, 0x58, 0x8c, 0xf6, 0x80, 0x90, 0xfe, 0x2c, 0x31, 0x72, 0x97, 0x5c, 0xa6, 0x87, 0x4e, 0x7c, 0xf8, 0x5f, 0xba, 0x26, 0xc8, 0xf4, 0x6f, 0xf0, 0xf5, 0xf4, 0x53, 0x37, 0xa, 0x35, 0x1, 0x28, 0x1, 0x18, 0x24, 0x2, 0x1, 0x36, 0x3, 0x4, 0x2, 0x4, 0x1, 0x18, 0x30, 0x4, 0x14, 0x85, 0xe7, 0x4a, 0x0, 0x4b, 0x67, 0x19, 0x4, 0xe8, 0x6b, 0xe1, 0xb9, 0x90, 0x57, 0xed, 0x94, 0x40, 0xaa, 0x70, 0x1c, 0x30, 0x5, 0x14, 0xb1, 0x61, 0x11, 0x65, 0x45, 0x2f, 0xa3, 0x2b, 0x34, 0x81, 0x7d, 0x99, 0x8e, 0xd1, 0x8f, 0xaf, 0x2c, 0x2f, 0xab, 0x88, 0x18, 0x30, 0xb, 0x40, 0x27, 0xab, 0xec, 0x64, 0x35, 0x61, 0xcc, 0xc0, 0xc2, 0x34, 0xd0, 0x0, 0xe2, 0xd3, 0x23, 0x73, 0x9c, 0xe3, 0x6c, 0x57, 0xc9, 0xe4, 0x7e, 0x4d, 0xc0, 0xb0, 0xa5, 0x9f, 0xdf, 0xf6, 0xb9, 0x26, 0x21, 0xec, 0x17, 0x55, 0x92, 0x96, 0xa2, 0xac, 0xf1, 0x32, 0x26, 0xcc, 0x85, 0x42, 0xa1, 0x31, 0x89, 0xf2, 0x7c, 0x13, 0x6f, 0x27, 0x56, 0x19, 0xdc, 0xde, 0x4b, 0xb0, 0x8f, 0xdf, 0xac, 0x40, 0x18, - [1655968444.118696][21387:21392] CHIP:DMG: ] - [1655968444.118731][21387:21392] CHIP:DMG: 0x1 = [ - [1655968444.118841][21387:21392] CHIP:DMG: 0x15, 0x30, 0x1, 0x1, 0x0, 0x24, 0x2, 0x1, 0x37, 0x3, 0x24, 0x14, 0x0, 0x18, 0x26, 0x4, 0x80, 0x22, 0x81, 0x27, 0x26, 0x5, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x6, 0x24, 0x13, 0x1, 0x18, 0x24, 0x7, 0x1, 0x24, 0x8, 0x1, 0x30, 0x9, 0x41, 0x4, 0xf2, 0xa2, 0xc6, 0xa6, 0xd7, 0x65, 0xbe, 0x3c, 0x21, 0x70, 0xa9, 0x13, 0x94, 0x16, 0x4e, 0x88, 0x4e, 0x4, 0xe8, 0xac, 0x79, 0xe4, 0xde, 0x97, 0xc5, 0x9a, 0xcb, 0x9b, 0x2d, 0xf4, 0xad, 0x75, 0xaf, 0x9d, 0x97, 0x57, 0x43, 0x88, 0x9, 0xdc, 0x4f, 0x1b, 0xbc, 0xc, 0x7d, 0x1b, 0x6, 0x36, 0x9a, 0xaa, 0xc9, 0xc5, 0x26, 0x65, 0xe8, 0xae, 0x1c, 0x2c, 0x35, 0xb1, 0x9f, 0x33, 0x93, 0xb8, 0x37, 0xa, 0x35, 0x1, 0x29, 0x1, 0x18, 0x24, 0x2, 0x60, 0x30, 0x4, 0x14, 0xb1, 0x61, 0x11, 0x65, 0x45, 0x2f, 0xa3, 0x2b, 0x34, 0x81, 0x7d, 0x99, 0x8e, 0xd1, 0x8f, 0xaf, 0x2c, 0x2f, 0xab, 0x88, 0x30, 0x5, 0x14, 0x5, 0x16, 0x41, 0x3c, 0x4a, 0xf2, 0xe1, 0x58, 0xc8, 0x8d, 0x86, 0xe7, 0x3a, 0x46, 0x7d, 0xdf, 0x8d, 0xb7, 0x3c, 0x98, 0x18, 0x30, 0xb, 0x40, 0xf7, 0xa8, 0x9c, 0xe, 0xe1, 0xdb, 0x54, 0x62, 0xa5, 0x93, 0x4b, 0x94, 0x60, 0x44, 0x27, 0x2f, 0x6f, 0xf, 0x29, 0xb0, 0xa9, 0x47, 0xf, 0xc3, 0xfa, 0xdc, 0xc7, 0x83, 0x6c, 0x36, 0x34, 0x3a, 0x91, 0xf6, 0x38, 0x9, 0xa, 0x23, 0x99, 0xf7, 0x74, 0xf5, 0x52, 0x24, 0xac, 0x60, 0x4c, 0x43, 0xf9, 0x17, 0x97, 0x3b, 0x1f, 0xda, 0x9, 0x17, 0x45, 0x71, 0x89, 0x25, 0xd, 0x71, 0x61, 0x7d, 0x18, - [1655968444.118910][21387:21392] CHIP:DMG: ] - [1655968444.118944][21387:21392] CHIP:DMG: 0x2 = [ - [1655968444.118979][21387:21392] CHIP:DMG: 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x69, 0x70, 0x6b, 0x20, 0x30, 0x31, - [1655968444.119019][21387:21392] CHIP:DMG: ] - [1655968444.119055][21387:21392] CHIP:DMG: 0x3 = 112233, - [1655968444.119090][21387:21392] CHIP:DMG: 0x4 = 65521, - [1655968444.119121][21387:21392] CHIP:DMG: }, - [1655968444.119151][21387:21392] CHIP:DMG: }, - [1655968444.119186][21387:21392] CHIP:DMG: - [1655968444.119211][21387:21392] CHIP:DMG: ], - [1655968444.119244][21387:21392] CHIP:DMG: - [1655968444.119270][21387:21392] CHIP:DMG: InteractionModelRevision = 1 - [1655968444.119295][21387:21392] CHIP:DMG: }, - [1655968444.119319][21387:21392] CHIP:DMG: - [1655968444.119451][21387:21392] CHIP:DMG: ICR moving to [CommandSen] - [1655968444.119486][21387:21392] CHIP:CTL: Sent operational certificate to the device - [1655968444.119534][21387:21392] CHIP:DMG: ICR moving to [AwaitingDe] - [1655968444.205823][21387:21392] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1655968444.351630][21387:21392] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1655968444.449682][21387:21392] CHIP:DL: HandlePlatformSpecificBLEEvent 16387 - [1655968444.498829][21387:21390] CHIP:DL: Indication received, conn = 0xffff900200d0 - [1655968444.499306][21387:21392] CHIP:DL: HandlePlatformSpecificBLEEvent 16389 - [1655968444.500163][21387:21392] CHIP:DMG: << from BLE | 163275443 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 42825 / Exchange = 11677] - [1655968444.500262][21387:21392] CHIP:DMG: Header Flags = - [1655968444.500320][21387:21392] CHIP:DMG: { - [1655968444.500415][21387:21392] CHIP:DMG: } - [1655968444.500470][21387:21392] CHIP:DMG: - [1655968444.500535][21387:21392] CHIP:DMG: Encrypted Payload (66 bytes) = - [1655968444.500586][21387:21392] CHIP:DMG: { - [1655968444.500639][21387:21392] CHIP:DMG: data = 0049a700b362bb09b60387130f31dcda07c6bd7ca6ec31d17e8112a415dd568e9890f97e448ab542cee0ba97e49805f33d91e21198cef92967240b5486d464370990 - [1655968444.500693][21387:21392] CHIP:DMG: buffer_ptr = 281472963520464 - [1655968444.500744][21387:21392] CHIP:DMG: } - [1655968444.500795][21387:21392] CHIP:DMG: - [1655968444.500927][21387:21392] CHIP:DMG: - [1655968444.501010][21387:21392] CHIP:DMG: Additional Fields = - [1655968444.501064][21387:21392] CHIP:DMG: { - [1655968444.501121][21387:21392] CHIP:DMG: peer_address = BLE - [1655968444.501231][21387:21392] CHIP:DMG: } - [1655968444.501283][21387:21392] CHIP:DMG: - [1655968444.501346][21387:21392] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:163275443 on exchange 11677i - [1655968444.501410][21387:21392] CHIP:EM: Found matching exchange: 11677i, Delegate: 0xffff90047da0 - [1655968444.501496][21387:21392] CHIP:DMG: ICR moving to [ResponseRe] - [1655968444.501587][21387:21392] CHIP:DMG: InvokeResponseMessage = - [1655968444.501644][21387:21392] CHIP:DMG: { - [1655968444.501702][21387:21392] CHIP:DMG: suppressResponse = false, - [1655968444.501757][21387:21392] CHIP:DMG: InvokeResponseIBs = - [1655968444.501832][21387:21392] CHIP:DMG: [ - [1655968444.501891][21387:21392] CHIP:DMG: InvokeResponseIB = - [1655968444.501982][21387:21392] CHIP:DMG: { - [1655968444.502045][21387:21392] CHIP:DMG: CommandDataIB = - [1655968444.502119][21387:21392] CHIP:DMG: { - [1655968444.502189][21387:21392] CHIP:DMG: CommandPathIB = - [1655968444.502275][21387:21392] CHIP:DMG: { - [1655968444.502358][21387:21392] CHIP:DMG: EndpointId = 0x0, - [1655968444.502450][21387:21392] CHIP:DMG: ClusterId = 0x3e, - [1655968444.502534][21387:21392] CHIP:DMG: CommandId = 0x8, - [1655968444.502611][21387:21392] CHIP:DMG: }, - [1655968444.502693][21387:21392] CHIP:DMG: - [1655968444.502761][21387:21392] CHIP:DMG: CommandFields = - [1655968444.502841][21387:21392] CHIP:DMG: { - [1655968444.502923][21387:21392] CHIP:DMG: 0x0 = 0, - [1655968444.503010][21387:21392] CHIP:DMG: 0x1 = 1, - [1655968444.503086][21387:21392] CHIP:DMG: }, - [1655968444.503160][21387:21392] CHIP:DMG: }, - [1655968444.503243][21387:21392] CHIP:DMG: - [1655968444.503309][21387:21392] CHIP:DMG: }, - [1655968444.503386][21387:21392] CHIP:DMG: - [1655968444.503444][21387:21392] CHIP:DMG: ], - [1655968444.503518][21387:21392] CHIP:DMG: - [1655968444.503576][21387:21392] CHIP:DMG: InteractionModelRevision = 1 - [1655968444.503633][21387:21392] CHIP:DMG: }, - [1655968444.503766][21387:21392] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 - [1655968444.503846][21387:21392] CHIP:CTL: Device returned status 0 on receiving the NOC - [1655968444.503901][21387:21392] CHIP:CTL: Operational credentials provisioned on device 0xffff88000b60 - [1655968444.503972][21387:21392] CHIP:TOO: Secure Pairing Success - [1655968444.504021][21387:21392] CHIP:TOO: CASE establishment successful - [1655968444.504076][21387:21392] CHIP:CTL: Successfully finished commissioning step 'SendNOC' + [1689679303.613181][52705:52705] CHIP:DMG: { + [1689679303.613184][52705:52705] CHIP:DMG: data = 1528002801360215370024000024013e2402061835013000f11530010101240201370324130218260480228127260580254d3a37062415012411011824070124080130094104f294d4aa30dad41668bdb0e24ac0d830b0ba335c8877c5b60af62b985cff212395197314d3025963a4501b4acb8a2202eccc10ed657cff7fae8f9912b393c1cd370a350128011824020136030402040118300414b34d04681e4b091989a9a5f2bde11fdc5ecea94d300514c518cd9b17c67c4a0501f29e842d578a63d4c2be18300b4059ae97324240ad84e1aaf93ba0b0ec8e938b1408e8e4250ce53012dead0a7e9fc41c422b190ff18820d8440ba630e67c4ec9ddac66b10d723cbb5d050cb5256c183001e71530010101240201370324140118260480228127260580254d3a3706241302182407012408013009410450083b6a78969912e9b7ec753c00665af4231ee13e4362205dbc18f060654363fae48e0c5bd559809e2e083f54ba8a1ff6ab5ef1f8e07b55bde1be3de763efac370a3501290118240260300414c518cd9b17c67c4a0501f29e842d578a63d4c2be300514cf9b3f36437a3e7c8c8aeee80385260a4f4a6bf318300b408ab09e46ec4ab5e3c38af468366f0ce54517d33b7f23997dc6636271c31a5fde55f2de5f68613b6acc55ae0ea137b4f7e2b94e5e1a599eff5fa3b73a66dfdbd01830021074656d706f726172792069706b203031260369b601002504f1ff18181824ff0118 + [1689679303.613193][52705:52705] CHIP:DMG: } + [1689679303.613195][52705:52705] CHIP:DMG: + [1689679303.613238][52705:52705] CHIP:DMG: NOCValue (241) = + [1689679303.613248][52705:52705] CHIP:DMG: { + FTABAQEkAgE3AyQTAhgmBIAigScmBYAlTTo3BiQVASQRARgkBwEkCAEwCUEE8pTUqjDa1BZovbDiSsDYMLC6M1yId8W2CvYrmFz/ISOVGXMU0wJZY6RQG0rLiiIC7MwQ7WV8/3+uj5kSs5PBzTcKNQEoARgkAgE2AwQCBAEYMAQUs00EaB5LCRmJqaXyveEf3F7OqU0wBRTFGM2bF8Z8SgUB8p6ELVeKY9TCvhgwC0BZrpcyQkCthOGq+TugsOyOk4sUCOjkJQzlMBLerQp+n8QcQisZD/GIINhEC6Yw5nxOyd2sZrENcjy7XQUMtSVsGA== + [1689679303.613255][52705:52705] CHIP:DMG: } + [1689679303.613257][52705:52705] CHIP:DMG: + [1689679303.613261][52705:52705] CHIP:DMG: ICACValue (231) = + [1689679303.613269][52705:52705] CHIP:DMG: { + FTABAQEkAgE3AyQUARgmBIAigScmBYAlTTo3BiQTAhgkBwEkCAEwCUEEUAg7aniWmRLpt+x1PABmWvQjHuE+Q2IgXbwY8GBlQ2P65I4MW9VZgJ4uCD9Uuoof9qte8fjge1W94b4952PvrDcKNQEpARgkAmAwBBTFGM2bF8Z8SgUB8p6ELVeKY9TCvjAFFM+bPzZDej58jIru6AOFJgpPSmvzGDALQIqwnkbsSrXjw4r0aDZvDOVFF9M7fyOZfcZjYnHDGl/eVfLeX2hhO2rMVa4OoTe09+K5Tl4aWZ7/X6O3Ombf29AY + [1689679303.613277][52705:52705] CHIP:DMG: } + [1689679303.613280][52705:52705] CHIP:DMG: + [1689679303.613285][52705:52705] CHIP:DMG: + [1689679303.613293][52705:52705] CHIP:DMG: Additional Fields = + [1689679303.613295][52705:52705] CHIP:DMG: { + [1689679303.613299][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:33479 + [1689679303.613302][52705:52705] CHIP:DMG: } + [1689679303.613305][52705:52705] CHIP:DMG: + [1689679303.613312][52705:52705] CHIP:EM: >>> [E:36149r S:3817 M:135880647] (S) Msg RX from 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest) + [1689679303.613320][52705:52705] CHIP:EM: Handling via exchange: 36149r, Delegate: 0x55d103190208 + [1689679303.613338][52705:52705] CHIP:DMG: InvokeRequestMessage = + [1689679303.613342][52705:52705] CHIP:DMG: { + [1689679303.613345][52705:52705] CHIP:DMG: suppressResponse = false, + [1689679303.613349][52705:52705] CHIP:DMG: timedRequest = false, + [1689679303.613352][52705:52705] CHIP:DMG: InvokeRequests = + [1689679303.613359][52705:52705] CHIP:DMG: [ + [1689679303.613363][52705:52705] CHIP:DMG: CommandDataIB = + [1689679303.613367][52705:52705] CHIP:DMG: { + [1689679303.613370][52705:52705] CHIP:DMG: CommandPathIB = + [1689679303.613374][52705:52705] CHIP:DMG: { + [1689679303.613377][52705:52705] CHIP:DMG: EndpointId = 0x0, + [1689679303.613381][52705:52705] CHIP:DMG: ClusterId = 0x3e, + [1689679303.613385][52705:52705] CHIP:DMG: CommandId = 0x6, + [1689679303.613388][52705:52705] CHIP:DMG: }, + [1689679303.613393][52705:52705] CHIP:DMG: + [1689679303.613396][52705:52705] CHIP:DMG: CommandFields = + [1689679303.613400][52705:52705] CHIP:DMG: { + [1689679303.613404][52705:52705] CHIP:DMG: 0x0 = [ + [1689679303.613437][52705:52705] CHIP:DMG: 0x15, 0x30, 0x01, 0x01, 0x01, 0x24, 0x02, 0x01, 0x37, 0x03, 0x24, 0x13, 0x02, 0x18, 0x26, 0x04, 0x80, 0x22, 0x81, 0x27, 0x26, 0x05, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x06, 0x24, 0x15, 0x01, 0x24, 0x11, 0x01, 0x18, 0x24, 0x07, 0x01, 0x24, 0x08, 0x01, 0x30, 0x09, 0x41, 0x04, 0xf2, 0x94, 0xd4, 0xaa, 0x30, 0xda, 0xd4, 0x16, 0x68, 0xbd, 0xb0, 0xe2, 0x4a, 0xc0, 0xd8, 0x30, 0xb0, 0xba, 0x33, 0x5c, 0x88, 0x77, 0xc5, 0xb6, 0x0a, 0xf6, 0x2b, 0x98, 0x5c, 0xff, 0x21, 0x23, 0x95, 0x19, 0x73, 0x14, 0xd3, 0x02, 0x59, 0x63, 0xa4, 0x50, 0x1b, 0x4a, 0xcb, 0x8a, 0x22, 0x02, 0xec, 0xcc, 0x10, 0xed, 0x65, 0x7c, 0xff, 0x7f, 0xae, 0x8f, 0x99, 0x12, 0xb3, 0x93, 0xc1, 0xcd, 0x37, 0x0a, 0x35, 0x01, 0x28, 0x01, 0x18, 0x24, 0x02, 0x01, 0x36, 0x03, 0x04, 0x02, 0x04, 0x01, 0x18, 0x30, 0x04, 0x14, 0xb3, 0x4d, 0x04, 0x68, 0x1e, 0x4b, 0x09, 0x19, 0x89, 0xa9, 0xa5, 0xf2, 0xbd, 0xe1, 0x1f, 0xdc, 0x5e, 0xce, 0xa9, 0x4d, 0x30, 0x05, 0x14, 0xc5, 0x18, 0xcd, 0x9b, 0x17, 0xc6, 0x7c, 0x4a, 0x05, 0x01, 0xf2, 0x9e, 0x84, 0x2d, 0x57, 0x8a, 0x63, 0xd4, 0xc2, 0xbe, 0x18, 0x30, 0x0b, 0x40, 0x59, 0xae, 0x97, 0x32, 0x42, 0x40, 0xad, 0x84, 0xe1, 0xaa, 0xf9, 0x3b, 0xa0, 0xb0, 0xec, 0x8e, 0x93, 0x8b, 0x14, 0x08, 0xe8, 0xe4, 0x25, 0x0c, 0xe5, 0x30, 0x12, 0xde, 0xad, 0x0a, 0x7e, 0x9f, 0xc4, 0x1c, 0x42, 0x2b, 0x19, 0x0f, 0xf1, 0x88, 0x20, 0xd8, 0x44, 0x0b, 0xa6, 0x30, 0xe6, 0x7c, 0x4e, 0xc9, 0xdd, 0xac, 0x66, 0xb1, 0x0d, 0x72, 0x3c, 0xbb, 0x5d, 0x05, 0x0c, 0xb5, 0x25, 0x6c, 0x18, + [1689679303.613450][52705:52705] CHIP:DMG: ] (241 bytes) + [1689679303.613454][52705:52705] CHIP:DMG: 0x1 = [ + [1689679303.613484][52705:52705] CHIP:DMG: 0x15, 0x30, 0x01, 0x01, 0x01, 0x24, 0x02, 0x01, 0x37, 0x03, 0x24, 0x14, 0x01, 0x18, 0x26, 0x04, 0x80, 0x22, 0x81, 0x27, 0x26, 0x05, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x06, 0x24, 0x13, 0x02, 0x18, 0x24, 0x07, 0x01, 0x24, 0x08, 0x01, 0x30, 0x09, 0x41, 0x04, 0x50, 0x08, 0x3b, 0x6a, 0x78, 0x96, 0x99, 0x12, 0xe9, 0xb7, 0xec, 0x75, 0x3c, 0x00, 0x66, 0x5a, 0xf4, 0x23, 0x1e, 0xe1, 0x3e, 0x43, 0x62, 0x20, 0x5d, 0xbc, 0x18, 0xf0, 0x60, 0x65, 0x43, 0x63, 0xfa, 0xe4, 0x8e, 0x0c, 0x5b, 0xd5, 0x59, 0x80, 0x9e, 0x2e, 0x08, 0x3f, 0x54, 0xba, 0x8a, 0x1f, 0xf6, 0xab, 0x5e, 0xf1, 0xf8, 0xe0, 0x7b, 0x55, 0xbd, 0xe1, 0xbe, 0x3d, 0xe7, 0x63, 0xef, 0xac, 0x37, 0x0a, 0x35, 0x01, 0x29, 0x01, 0x18, 0x24, 0x02, 0x60, 0x30, 0x04, 0x14, 0xc5, 0x18, 0xcd, 0x9b, 0x17, 0xc6, 0x7c, 0x4a, 0x05, 0x01, 0xf2, 0x9e, 0x84, 0x2d, 0x57, 0x8a, 0x63, 0xd4, 0xc2, 0xbe, 0x30, 0x05, 0x14, 0xcf, 0x9b, 0x3f, 0x36, 0x43, 0x7a, 0x3e, 0x7c, 0x8c, 0x8a, 0xee, 0xe8, 0x03, 0x85, 0x26, 0x0a, 0x4f, 0x4a, 0x6b, 0xf3, 0x18, 0x30, 0x0b, 0x40, 0x8a, 0xb0, 0x9e, 0x46, 0xec, 0x4a, 0xb5, 0xe3, 0xc3, 0x8a, 0xf4, 0x68, 0x36, 0x6f, 0x0c, 0xe5, 0x45, 0x17, 0xd3, 0x3b, 0x7f, 0x23, 0x99, 0x7d, 0xc6, 0x63, 0x62, 0x71, 0xc3, 0x1a, 0x5f, 0xde, 0x55, 0xf2, 0xde, 0x5f, 0x68, 0x61, 0x3b, 0x6a, 0xcc, 0x55, 0xae, 0x0e, 0xa1, 0x37, 0xb4, 0xf7, 0xe2, 0xb9, 0x4e, 0x5e, 0x1a, 0x59, 0x9e, 0xff, 0x5f, 0xa3, 0xb7, 0x3a, 0x66, 0xdf, 0xdb, 0xd0, 0x18, + [1689679303.613497][52705:52705] CHIP:DMG: ] (231 bytes) + [1689679303.613501][52705:52705] CHIP:DMG: 0x2 = [ + [1689679303.613506][52705:52705] CHIP:DMG: 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x69, 0x70, 0x6b, 0x20, 0x30, 0x31, + [1689679303.613511][52705:52705] CHIP:DMG: ] (16 bytes) + [1689679303.613515][52705:52705] CHIP:DMG: 0x3 = 112233, + [1689679303.613519][52705:52705] CHIP:DMG: 0x4 = 65521, + [1689679303.613523][52705:52705] CHIP:DMG: }, + [1689679303.613526][52705:52705] CHIP:DMG: }, + [1689679303.613533][52705:52705] CHIP:DMG: + [1689679303.613535][52705:52705] CHIP:DMG: ], + [1689679303.613542][52705:52705] CHIP:DMG: + [1689679303.613545][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689679303.613548][52705:52705] CHIP:DMG: }, + [1689679303.613569][52705:52705] CHIP:DMG: AccessControl: checking f=0 a=p s=0xFFFFFFFB00000000 t= c=0x0000_003E e=0 p=a + [1689679303.613574][52705:52705] CHIP:DMG: AccessControl: implicit admin (PASE) + [1689679303.613579][52705:52705] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003E Command=0x0000_0006 disabled: true - - label: "DUT sends UpdateFabricLabel to TH" + - label: "Step 12: Trigger the DUT to send UpdateFabricLabel to TH" PICS: OPCREDS.C.C09.Tx verification: | ./chip-tool operationalcredentials update-fabric-label node1 1 0 - Verify NOCResponse in TH (all-clusters-app) + Verify UpdateFabricLabel in TH (all-clusters-app) - [1666944510.315396][5096:5096] CHIP:EM: Handling via exchange: 48172r, Delegate: 0xaaaade930288 - [1666944510.315542][5096:5096] CHIP:DMG: InvokeRequestMessage = - [1666944510.315611][5096:5096] CHIP:DMG: { - [1666944510.315669][5096:5096] CHIP:DMG: suppressResponse = false, - [1666944510.315737][5096:5096] CHIP:DMG: timedRequest = false, - [1666944510.315799][5096:5096] CHIP:DMG: InvokeRequests = - [1666944510.315878][5096:5096] CHIP:DMG: [ - [1666944510.315941][5096:5096] CHIP:DMG: CommandDataIB = - [1666944510.316086][5096:5096] CHIP:DMG: { - [1666944510.316157][5096:5096] CHIP:DMG: CommandPathIB = - [1666944510.316290][5096:5096] CHIP:DMG: { - [1666944510.316427][5096:5096] CHIP:DMG: EndpointId = 0x0, - [1666944510.316565][5096:5096] CHIP:DMG: ClusterId = 0x3e, - [1666944510.316698][5096:5096] CHIP:DMG: CommandId = 0x9, - [1666944510.316827][5096:5096] CHIP:DMG: }, - [1666944510.316962][5096:5096] CHIP:DMG: - [1666944510.317083][5096:5096] CHIP:DMG: CommandFields = - [1666944510.317209][5096:5096] CHIP:DMG: { - [1666944510.317342][5096:5096] CHIP:DMG: 0x0 = "node1" (5 chars), - [1666944510.317479][5096:5096] CHIP:DMG: }, - [1666944510.317604][5096:5096] CHIP:DMG: }, - [1666944510.317732][5096:5096] CHIP:DMG: - [1666944510.317797][5096:5096] CHIP:DMG: ], - [1666944510.317873][5096:5096] CHIP:DMG: - [1666944510.317935][5096:5096] CHIP:DMG: InteractionModelRevision = 1 - [1666944510.317995][5096:5096] CHIP:DMG: }, - [1666944510.318146][5096:5096] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_003E e=0 p=a - [1666944510.318229][5096:5096] CHIP:DMG: AccessControl: allowed - [1666944510.318302][5096:5096] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003E Command=0x0000_0009 - [1666944510.318383][5096:5096] CHIP:ZCL: OpCreds: Received an UpdateFabricLabel command - [1666944510.318843][5096:5096] CHIP:DL: writing settings to file (/tmp/chip_kvs-l8Mimv) - [1666944510.320723][5096:5096] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666944510.320964][5096:5096] CHIP:FP: Metadata for Fabric 0x1 persisted to storage. - [1666944510.321038][5096:5096] CHIP:DMG: Endpoint 0, Cluster 0x0000_003E update version to e86ce074 - [1666944510.321132][5096:5096] CHIP:DMG: Command handler moving to [ Preparing] - [1666944510.321474][5096:5096] CHIP:DMG: Command handler moving to [AddingComm] - [1666944510.321548][5096:5096] CHIP:DMG: Command handler moving to [AddedComma] - [1666944510.321664][5096:5096] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1666944510.322262][5096:5096] CHIP:EM: <<< [E:48172r M:77945882 (Ack:146068849)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:09 (IM:InvokeCommandResponse) - [1666944510.322378][5096:5096] CHIP:IN: (S) Sending msg 77945882 on secure session with LSID: 37519 - [1666944510.323128][5096:5096] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:47949 | 77945882 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 31088 / Exchange = 48172] - [1666944510.323234][5096:5096] CHIP:DMG: Header Flags = - [1666944510.323293][5096:5096] CHIP:DMG: { - [1666944510.323383][5096:5096] CHIP:DMG: Exchange (0x06) = - [1666944510.323440][5096:5096] CHIP:DMG: { - [1666944510.323500][5096:5096] CHIP:DMG: AckMsg = 146068849 - [1666944510.323557][5096:5096] CHIP:DMG: NeedsAck = true - [1666944510.323611][5096:5096] CHIP:DMG: } - [1666944510.323682][5096:5096] CHIP:DMG: } - [1666944510.323737][5096:5096] CHIP:DMG: - [1666944510.323806][5096:5096] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666944510.323862][5096:5096] CHIP:DMG: { - [1666944510.323917][5096:5096] CHIP:DMG: data = 007079001a5ca504be55dedb320904f21cfa3e22c17bc96f7e32e933d1293a9594717b93b0efbadf7fc8bfbb0b669de23c479626b1eaf68d690d4551f4aedfb7bb35570d19e9 - [1666944510.323976][5096:5096] CHIP:DMG: buffer_ptr = 187651701668736 - [1666944510.324029][5096:5096] CHIP:DMG: } - [1666944510.324081][5096:5096] CHIP:DMG: - [1666944510.324245][5096:5096] CHIP:DMG: InvokeResponseMessage = - [1666944510.324313][5096:5096] CHIP:DMG: { - [1666944510.324372][5096:5096] CHIP:DMG: suppressResponse = false, - [1666944510.324500][5096:5096] CHIP:DMG: InvokeResponseIBs = - [1666944510.324635][5096:5096] CHIP:DMG: [ - [1666944510.324702][5096:5096] CHIP:DMG: InvokeResponseIB = - [1666944510.324843][5096:5096] CHIP:DMG: { - [1666944510.324968][5096:5096] CHIP:DMG: CommandDataIB = - [1666944510.325100][5096:5096] CHIP:DMG: { - [1666944510.325228][5096:5096] CHIP:DMG: CommandPathIB = - [1666944510.325364][5096:5096] CHIP:DMG: { - [1666944510.325502][5096:5096] CHIP:DMG: EndpointId = 0x0, - [1666944510.325666][5096:5096] CHIP:DMG: ClusterId = 0x3e, - [1666944510.325806][5096:5096] CHIP:DMG: CommandId = 0x8, - [1666944510.325938][5096:5096] CHIP:DMG: }, - [1666944510.326076][5096:5096] CHIP:DMG: - [1666944510.326206][5096:5096] CHIP:DMG: CommandFields = - [1666944510.326339][5096:5096] CHIP:DMG: { - [1666944510.326479][5096:5096] CHIP:DMG: 0x0 = 0, - [1666944510.326620][5096:5096] CHIP:DMG: 0x1 = 1, - [1666944510.326782][5096:5096] CHIP:DMG: }, - [1666944510.326905][5096:5096] CHIP:DMG: }, - [1666944510.327041][5096:5096] CHIP:DMG: - [1666944510.327159][5096:5096] CHIP:DMG: }, - [1666944510.327244][5096:5096] CHIP:DMG: - [1666944510.327306][5096:5096] CHIP:DMG: ], - [1666944510.327384][5096:5096] CHIP:DMG: - [1666944510.327445][5096:5096] CHIP:DMG: InteractionModelRevision = 1 - [1666944510.327506][5096:5096] CHIP:DMG: }, - [1666944510.327563][5096:5096] CHIP:DMG: + [1689681999.862864][52705:52705] CHIP:DMG: InvokeResponseMessage = + [1689681999.862866][52705:52705] CHIP:DMG: { + [1689681999.862869][52705:52705] CHIP:DMG: suppressResponse = false, + [1689681999.862871][52705:52705] CHIP:DMG: InvokeResponseIBs = + [1689681999.862876][52705:52705] CHIP:DMG: [ + [1689681999.862878][52705:52705] CHIP:DMG: InvokeResponseIB = + [1689681999.862882][52705:52705] CHIP:DMG: { + [1689681999.862885][52705:52705] CHIP:DMG: CommandDataIB = + [1689681999.862887][52705:52705] CHIP:DMG: { + [1689681999.862890][52705:52705] CHIP:DMG: CommandPathIB = + [1689681999.862892][52705:52705] CHIP:DMG: { + [1689681999.862895][52705:52705] CHIP:DMG: EndpointId = 0x0, + [1689681999.862898][52705:52705] CHIP:DMG: ClusterId = 0x3e, + [1689681999.862901][52705:52705] CHIP:DMG: CommandId = 0x8, + [1689681999.862904][52705:52705] CHIP:DMG: }, + [1689681999.862907][52705:52705] CHIP:DMG: + [1689681999.862910][52705:52705] CHIP:DMG: CommandFields = + [1689681999.862913][52705:52705] CHIP:DMG: { + [1689681999.862916][52705:52705] CHIP:DMG: 0x0 = 0, + [1689681999.862919][52705:52705] CHIP:DMG: 0x1 = 1, + [1689681999.862922][52705:52705] CHIP:DMG: }, + [1689681999.862924][52705:52705] CHIP:DMG: }, + [1689681999.862928][52705:52705] CHIP:DMG: + [1689681999.862930][52705:52705] CHIP:DMG: }, + [1689681999.862934][52705:52705] CHIP:DMG: + [1689681999.862937][52705:52705] CHIP:DMG: ], + [1689681999.862941][52705:52705] CHIP:DMG: + [1689681999.862943][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689681999.862945][52705:52705] CHIP:DMG: }, disabled: true - - label: "DUT reads SupportedFabrics from TH" + - label: "Step 13: Trigger the DUT to Read SupportedFabrics from TH" PICS: OPCREDS.C.A0002 verification: | ./chip-tool operationalcredentials read supported-fabrics 1 0 Verify that the DUT reads the SupportedFabrics from TH (all-clusters-app) successfully. - [1666944724.015753][5114:5114] CHIP:EM: Handling via exchange: 37994r, Delegate: 0xaaaad22c0288 - [1666944724.015851][5114:5114] CHIP:IM: Received Read request - [1666944724.016020][5114:5114] CHIP:DMG: ReadRequestMessage = - [1666944724.016088][5114:5114] CHIP:DMG: { - [1666944724.016144][5114:5114] CHIP:DMG: AttributePathIBs = - [1666944724.016210][5114:5114] CHIP:DMG: [ - [1666944724.016273][5114:5114] CHIP:DMG: AttributePathIB = - [1666944724.016420][5114:5114] CHIP:DMG: { - [1666944724.016498][5114:5114] CHIP:DMG: Endpoint = 0x0, - [1666944724.016636][5114:5114] CHIP:DMG: Cluster = 0x3e, - [1666944724.016772][5114:5114] CHIP:DMG: Attribute = 0x0000_0002, - [1666944724.016901][5114:5114] CHIP:DMG: } - [1666944724.017027][5114:5114] CHIP:DMG: - [1666944724.017146][5114:5114] CHIP:DMG: ], - [1666944724.017222][5114:5114] CHIP:DMG: - [1666944724.017290][5114:5114] CHIP:DMG: isFabricFiltered = true, - [1666944724.017357][5114:5114] CHIP:DMG: InteractionModelRevision = 1 - [1666944724.017418][5114:5114] CHIP:DMG: }, - [1666944724.017596][5114:5114] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666944724.017829][5114:5114] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666944724.017907][5114:5114] CHIP:DMG: Cluster 3e, Attribute 2 is dirty - [1666944724.017964][5114:5114] CHIP:DMG: Reading attribute: Cluster=0x0000_003E Endpoint=0 AttributeId=0x0000_0002 (expanded=0) - [1666944724.018033][5114:5114] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_003E e=0 p=v - [1666944724.018110][5114:5114] CHIP:DMG: AccessControl: allowed - [1666944724.018224][5114:5114] CHIP:DMG: Sending report (payload has 36 bytes)... - [1666944724.018966][5114:5114] CHIP:EM: <<< [E:37994r M:231359428 (Ack:107092815)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666944724.019089][5114:5114] CHIP:IN: (S) Sending msg 231359428 on secure session with LSID: 7556 - [1666944724.019979][5114:5114] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:58545 | 231359428 | [Interaction Model (1) / Report Data (0x05) / Session = 61826 / Exchange = 37994] - [1666944724.020090][5114:5114] CHIP:DMG: Header Flags = - [1666944724.020227][5114:5114] CHIP:DMG: { - [1666944724.020325][5114:5114] CHIP:DMG: Exchange (0x06) = - [1666944724.020384][5114:5114] CHIP:DMG: { - [1666944724.020445][5114:5114] CHIP:DMG: AckMsg = 107092815 - [1666944724.020501][5114:5114] CHIP:DMG: NeedsAck = true - [1666944724.020556][5114:5114] CHIP:DMG: } - [1666944724.020629][5114:5114] CHIP:DMG: } - [1666944724.020686][5114:5114] CHIP:DMG: - [1666944724.020756][5114:5114] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666944724.020813][5114:5114] CHIP:DMG: { - [1666944724.020868][5114:5114] CHIP:DMG: data = 0082f100c443ca0dc4e9721948b978d333b4554588682148485392f8b55e23c0cc16f64739f7d183a6be2c49cc83e4026c7a6e6b5f7f4f983ac4c5787c5ef985258f7489771e - [1666944724.020927][5114:5114] CHIP:DMG: buffer_ptr = 187651338067808 - [1666944724.020982][5114:5114] CHIP:DMG: } - [1666944724.021034][5114:5114] CHIP:DMG: - [1666944724.021210][5114:5114] CHIP:DMG: ReportDataMessage = - [1666944724.021281][5114:5114] CHIP:DMG: { - [1666944724.021336][5114:5114] CHIP:DMG: AttributeReportIBs = - [1666944724.021415][5114:5114] CHIP:DMG: [ - [1666944724.021479][5114:5114] CHIP:DMG: AttributeReportIB = - [1666944724.021676][5114:5114] CHIP:DMG: { - [1666944724.021806][5114:5114] CHIP:DMG: AttributeDataIB = - [1666944724.021942][5114:5114] CHIP:DMG: { - [1666944724.022079][5114:5114] CHIP:DMG: DataVersion = 0x6a751104, - [1666944724.022213][5114:5114] CHIP:DMG: AttributePathIB = - [1666944724.022351][5114:5114] CHIP:DMG: { - [1666944724.022490][5114:5114] CHIP:DMG: Endpoint = 0x0, - [1666944724.022631][5114:5114] CHIP:DMG: Cluster = 0x3e, - [1666944724.022814][5114:5114] CHIP:DMG: Attribute = 0x0000_0002, - [1666944724.022952][5114:5114] CHIP:DMG: } - [1666944724.023093][5114:5114] CHIP:DMG: - [1666944724.023234][5114:5114] CHIP:DMG: Data = 16, - [1666944724.023363][5114:5114] CHIP:DMG: }, - [1666944724.023500][5114:5114] CHIP:DMG: - [1666944724.023624][5114:5114] CHIP:DMG: }, - [1666944724.023762][5114:5114] CHIP:DMG: - [1666944724.023827][5114:5114] CHIP:DMG: ], + [1689682043.096159][52705:52705] CHIP:DMG: ReportDataMessage = + [1689682043.096163][52705:52705] CHIP:DMG: { + [1689682043.096166][52705:52705] CHIP:DMG: AttributeReportIBs = + [1689682043.096172][52705:52705] CHIP:DMG: [ + [1689682043.096176][52705:52705] CHIP:DMG: AttributeReportIB = + [1689682043.096182][52705:52705] CHIP:DMG: { + [1689682043.096185][52705:52705] CHIP:DMG: AttributeDataIB = + [1689682043.096190][52705:52705] CHIP:DMG: { + [1689682043.096194][52705:52705] CHIP:DMG: DataVersion = 0x65bf1428, + [1689682043.096198][52705:52705] CHIP:DMG: AttributePathIB = + [1689682043.096202][52705:52705] CHIP:DMG: { + [1689682043.096206][52705:52705] CHIP:DMG: Endpoint = 0x0, + [1689682043.096211][52705:52705] CHIP:DMG: Cluster = 0x3e, + [1689682043.096215][52705:52705] CHIP:DMG: Attribute = 0x0000_0002, + [1689682043.096219][52705:52705] CHIP:DMG: } + [1689682043.096224][52705:52705] CHIP:DMG: + [1689682043.096229][52705:52705] CHIP:DMG: Data = 16, + [1689682043.096233][52705:52705] CHIP:DMG: }, + [1689682043.096239][52705:52705] CHIP:DMG: + [1689682043.096242][52705:52705] CHIP:DMG: }, + [1689682043.096248][52705:52705] CHIP:DMG: + [1689682043.096251][52705:52705] CHIP:DMG: ], + [1689682043.096257][52705:52705] CHIP:DMG: + [1689682043.096261][52705:52705] CHIP:DMG: SuppressResponse = true, + [1689682043.096264][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689682043.096267][52705:52705] CHIP:DMG: } + [1689682043.096270][52705:52705] CHIP:DMG: disabled: true - - label: "DUT reads CommissionedFabrics attribute from TH" + - label: + "Step 14: Trigger the DUT to read CommissionedFabrics attribute from + TH" PICS: OPCREDS.C.A0003 verification: | ./chip-tool operationalcredentials read commissioned-fabrics 1 0 Verify that the DUT reads the CommissionedFabrics from TH (all-clusters-app) successfully. - [1666944821.350226][5129:5129] CHIP:EM: Handling via exchange: 3443r, Delegate: 0xaaaac10e0288 - [1666944821.350315][5129:5129] CHIP:IM: Received Read request - [1666944821.350508][5129:5129] CHIP:DMG: ReadRequestMessage = - [1666944821.350576][5129:5129] CHIP:DMG: { - [1666944821.350658][5129:5129] CHIP:DMG: AttributePathIBs = - [1666944821.350782][5129:5129] CHIP:DMG: [ - [1666944821.350870][5129:5129] CHIP:DMG: AttributePathIB = - [1666944821.350950][5129:5129] CHIP:DMG: { - [1666944821.351027][5129:5129] CHIP:DMG: Endpoint = 0x0, - [1666944821.351126][5129:5129] CHIP:DMG: Cluster = 0x3e, - [1666944821.351215][5129:5129] CHIP:DMG: Attribute = 0x0000_0003, - [1666944821.351312][5129:5129] CHIP:DMG: } - [1666944821.351390][5129:5129] CHIP:DMG: - [1666944821.351481][5129:5129] CHIP:DMG: ], - [1666944821.351554][5129:5129] CHIP:DMG: - [1666944821.351620][5129:5129] CHIP:DMG: isFabricFiltered = true, - [1666944821.351877][5129:5129] CHIP:DMG: InteractionModelRevision = 1 - [1666944821.351945][5129:5129] CHIP:DMG: }, - [1666944821.352144][5129:5129] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666944821.352379][5129:5129] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666944821.352450][5129:5129] CHIP:DMG: Cluster 3e, Attribute 3 is dirty - [1666944821.352497][5129:5129] CHIP:DMG: Reading attribute: Cluster=0x0000_003E Endpoint=0 AttributeId=0x0000_0003 (expanded=0) - [1666944821.352565][5129:5129] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_003E e=0 p=v - [1666944821.352641][5129:5129] CHIP:DMG: AccessControl: allowed - [1666944821.352779][5129:5129] CHIP:DMG: Sending report (payload has 36 bytes)... - [1666944821.353366][5129:5129] CHIP:EM: <<< [E:3443r M:160382140 (Ack:198897547)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666944821.353467][5129:5129] CHIP:IN: (S) Sending msg 160382140 on secure session with LSID: 49151 - [1666944821.354166][5129:5129] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:33929 | 160382140 | [Interaction Model (1) / Report Data (0x05) / Session = 7012 / Exchange = 3443] - [1666944821.354263][5129:5129] CHIP:DMG: Header Flags = - [1666944821.354321][5129:5129] CHIP:DMG: { - [1666944821.354409][5129:5129] CHIP:DMG: Exchange (0x06) = - [1666944821.354465][5129:5129] CHIP:DMG: { - [1666944821.354525][5129:5129] CHIP:DMG: AckMsg = 198897547 - [1666944821.354605][5129:5129] CHIP:DMG: NeedsAck = true - [1666944821.354659][5129:5129] CHIP:DMG: } - [1666944821.354777][5129:5129] CHIP:DMG: } - [1666944821.354857][5129:5129] CHIP:DMG: - [1666944821.354927][5129:5129] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666944821.354984][5129:5129] CHIP:DMG: { - [1666944821.355063][5129:5129] CHIP:DMG: data = 00641b00bc3c8f09e4b4d96333357e19caca3af4f22b577bf2bf88d8a7a944ae43fa2be0011892b0b5a1f62826e7d6fc48a5485f31c96b441a79f2764964b562146f207e2d36 - [1666944821.355121][5129:5129] CHIP:DMG: buffer_ptr = 187651235602528 - [1666944821.355174][5129:5129] CHIP:DMG: } - [1666944821.355249][5129:5129] CHIP:DMG: - [1666944821.355437][5129:5129] CHIP:DMG: ReportDataMessage = - [1666944821.355504][5129:5129] CHIP:DMG: { - [1666944821.355578][5129:5129] CHIP:DMG: AttributeReportIBs = - [1666944821.355663][5129:5129] CHIP:DMG: [ - [1666944821.355726][5129:5129] CHIP:DMG: AttributeReportIB = - [1666944821.355812][5129:5129] CHIP:DMG: { - [1666944821.355905][5129:5129] CHIP:DMG: AttributeDataIB = - [1666944821.355993][5129:5129] CHIP:DMG: { - [1666944821.356095][5129:5129] CHIP:DMG: DataVersion = 0xe78fc9e9, - [1666944821.356178][5129:5129] CHIP:DMG: AttributePathIB = - [1666944821.356288][5129:5129] CHIP:DMG: { - [1666944821.356383][5129:5129] CHIP:DMG: Endpoint = 0x0, - [1666944821.356502][5129:5129] CHIP:DMG: Cluster = 0x3e, - [1666944821.356620][5129:5129] CHIP:DMG: Attribute = 0x0000_0003, - [1666944821.356716][5129:5129] CHIP:DMG: } - [1666944821.356826][5129:5129] CHIP:DMG: - [1666944821.356924][5129:5129] CHIP:DMG: Data = 1, - [1666944821.357028][5129:5129] CHIP:DMG: }, - [1666944821.357122][5129:5129] CHIP:DMG: - [1666944821.357212][5129:5129] CHIP:DMG: }, - [1666944821.357294][5129:5129] CHIP:DMG: - [1666944821.357376][5129:5129] CHIP:DMG: ], + [1689682091.425466][52705:52705] CHIP:DMG: ReportDataMessage = + [1689682091.425468][52705:52705] CHIP:DMG: { + [1689682091.425471][52705:52705] CHIP:DMG: AttributeReportIBs = + [1689682091.425475][52705:52705] CHIP:DMG: [ + [1689682091.425477][52705:52705] CHIP:DMG: AttributeReportIB = + [1689682091.425481][52705:52705] CHIP:DMG: { + [1689682091.425484][52705:52705] CHIP:DMG: AttributeDataIB = + [1689682091.425487][52705:52705] CHIP:DMG: { + [1689682091.425490][52705:52705] CHIP:DMG: DataVersion = 0x65bf1428, + [1689682091.425492][52705:52705] CHIP:DMG: AttributePathIB = + [1689682091.425495][52705:52705] CHIP:DMG: { + [1689682091.425499][52705:52705] CHIP:DMG: Endpoint = 0x0, + [1689682091.425502][52705:52705] CHIP:DMG: Cluster = 0x3e, + [1689682091.425505][52705:52705] CHIP:DMG: Attribute = 0x0000_0003, + [1689682091.425507][52705:52705] CHIP:DMG: } + [1689682091.425512][52705:52705] CHIP:DMG: + [1689682091.425515][52705:52705] CHIP:DMG: Data = 1, + [1689682091.425518][52705:52705] CHIP:DMG: }, + [1689682091.425522][52705:52705] CHIP:DMG: + [1689682091.425524][52705:52705] CHIP:DMG: }, + [1689682091.425528][52705:52705] CHIP:DMG: + [1689682091.425531][52705:52705] CHIP:DMG: ], + [1689682091.425536][52705:52705] CHIP:DMG: + [1689682091.425538][52705:52705] CHIP:DMG: SuppressResponse = true, + [1689682091.425541][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689682091.425543][52705:52705] CHIP:DMG: } + [1689682091.425545][52705:52705] CHIP:DMG: + [1689682091.425550][52705:52705] CHIP:DMG: Additional Fields = + [1689682091.425552][52705:52705] CHIP:DMG: { + [1689682091.425555][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:60204 + [1689682091.425557][52705:52705] CHIP:DMG: } disabled: true - - label: "DUT reads TrustedRootCertificates attribute from TH" + - label: + "Step 15: Trigger the DUT to read TrustedRootCertificates attribute + from TH" PICS: OPCREDS.C.A0004 verification: | ./chip-tool operationalcredentials read trusted-root-certificates 1 0 Verify that the DUT reads the TrustedRootCertificates from TH (all-clusters-app) successfully. - [1666944860.378863][5129:5129] CHIP:EM: Handling via exchange: 45059r, Delegate: 0xaaaac10e0288 - [1666944860.378963][5129:5129] CHIP:IM: Received Read request - [1666944860.379160][5129:5129] CHIP:DMG: ReadRequestMessage = - [1666944860.379249][5129:5129] CHIP:DMG: { - [1666944860.379304][5129:5129] CHIP:DMG: AttributePathIBs = - [1666944860.379392][5129:5129] CHIP:DMG: [ - [1666944860.379455][5129:5129] CHIP:DMG: AttributePathIB = - [1666944860.379531][5129:5129] CHIP:DMG: { - [1666944860.379631][5129:5129] CHIP:DMG: Endpoint = 0x0, - [1666944860.379721][5129:5129] CHIP:DMG: Cluster = 0x3e, - [1666944860.379826][5129:5129] CHIP:DMG: Attribute = 0x0000_0004, - [1666944860.379909][5129:5129] CHIP:DMG: } - [1666944860.380010][5129:5129] CHIP:DMG: - [1666944860.380081][5129:5129] CHIP:DMG: ], - [1666944860.380175][5129:5129] CHIP:DMG: - [1666944860.380243][5129:5129] CHIP:DMG: isFabricFiltered = true, - [1666944860.380332][5129:5129] CHIP:DMG: InteractionModelRevision = 1 - [1666944860.380393][5129:5129] CHIP:DMG: }, - [1666944860.380588][5129:5129] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666944860.380823][5129:5129] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666944860.380917][5129:5129] CHIP:DMG: Cluster 3e, Attribute 4 is dirty - [1666944860.380973][5129:5129] CHIP:DMG: Reading attribute: Cluster=0x0000_003E Endpoint=0 AttributeId=0x0000_0004 (expanded=0) - [1666944860.381041][5129:5129] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_003E e=0 p=v - [1666944860.381313][5129:5129] CHIP:DMG: AccessControl: allowed - [1666944860.381692][5129:5129] CHIP:DMG: Sending report (payload has 295 bytes)... - [1666944860.382352][5129:5129] CHIP:EM: <<< [E:45059r M:215392793 (Ack:118716297)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666944860.382454][5129:5129] CHIP:IN: (S) Sending msg 215392793 on secure session with LSID: 49152 - [1666944860.383262][5129:5129] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:34568 | 215392793 | [Interaction Model (1) / Report Data (0x05) / Session = 32529 / Exchange = 45059] - [1666944860.383360][5129:5129] CHIP:DMG: Header Flags = - [1666944860.383419][5129:5129] CHIP:DMG: { - [1666944860.383662][5129:5129] CHIP:DMG: Exchange (0x06) = - [1666944860.383747][5129:5129] CHIP:DMG: { - [1666944860.383809][5129:5129] CHIP:DMG: AckMsg = 118716297 - [1666944860.383865][5129:5129] CHIP:DMG: NeedsAck = true - [1666944860.383941][5129:5129] CHIP:DMG: } - [1666944860.384016][5129:5129] CHIP:DMG: } - [1666944860.384072][5129:5129] CHIP:DMG: - [1666944860.384163][5129:5129] CHIP:DMG: Encrypted Payload (329 bytes) = - [1666944860.384222][5129:5129] CHIP:DMG: { - [1666944860.384277][5129:5129] CHIP:DMG: data = 00117f0019a2d60ceb028bf1362841a6a205e38aee7e034a0d58ba86de2df34efc7c3cffa1f057a1e638c620c6e5a7c7e304259e82d77d00023809cbeda0e516d61ca4a8746b360f29587e2261f68e71bf1d3e5fec0c128c1d102845eb423dcd3223dd23be773521a11dddd566bc32dd2acaf89e727fa66dae2a940d731d28742161b24b2c47ebd3c862fa249ee27e9f70d2117f788be99651f7f3dacf652e8621afc3853613ee1554a7e25b3dd156ea0e20bd27d70c2468f68068e8406193a12d6fe5992363bdd4831fd463217ccda0cf65408d9bd9f31cb7c0847d2226b188ce20a359d3884308ea0f5f5c26d9e11a213770c05b80b71514bc5910b328e2ecc68cd3c847189ad8e2c825492de315e580fc92339d76000009ca4665ba196e62c33ad9300fa9db32f0f227a18cc3c945c9a3bfd57983dc2fc7192581c2dc34e65bfcfd03179e863c93 - [1666944860.384373][5129:5129] CHIP:DMG: buffer_ptr = 187651235595952 - [1666944860.384428][5129:5129] CHIP:DMG: } - [1666944860.384480][5129:5129] CHIP:DMG: - [1666944860.384777][5129:5129] CHIP:DMG: ReportDataMessage = - [1666944860.384844][5129:5129] CHIP:DMG: { - [1666944860.384899][5129:5129] CHIP:DMG: AttributeReportIBs = - [1666944860.384977][5129:5129] CHIP:DMG: [ - [1666944860.385067][5129:5129] CHIP:DMG: AttributeReportIB = - [1666944860.385159][5129:5129] CHIP:DMG: { - [1666944860.385251][5129:5129] CHIP:DMG: AttributeDataIB = - [1666944860.385342][5129:5129] CHIP:DMG: { - [1666944860.385450][5129:5129] CHIP:DMG: DataVersion = 0xe78fc9e9, - [1666944860.385533][5129:5129] CHIP:DMG: AttributePathIB = - [1666944860.385636][5129:5129] CHIP:DMG: { - [1666944860.385724][5129:5129] CHIP:DMG: Endpoint = 0x0, - [1666944860.385838][5129:5129] CHIP:DMG: Cluster = 0x3e, - [1666944860.385929][5129:5129] CHIP:DMG: Attribute = 0x0000_0004, - [1666944860.386036][5129:5129] CHIP:DMG: } - [1666944860.386133][5129:5129] CHIP:DMG: - [1666944860.386239][5129:5129] CHIP:DMG: Data = [ - [1666944860.386332][5129:5129] CHIP:DMG: - [1666944860.386444][5129:5129] CHIP:DMG: ], - [1666944860.386534][5129:5129] CHIP:DMG: }, - [1666944860.386648][5129:5129] CHIP:DMG: - [1666944860.386764][5129:5129] CHIP:DMG: }, - [1666944860.386886][5129:5129] CHIP:DMG: - [1666944860.386949][5129:5129] CHIP:DMG: AttributeReportIB = - [1666944860.387053][5129:5129] CHIP:DMG: { - [1666944860.387125][5129:5129] CHIP:DMG: AttributeDataIB = - [1666944860.387228][5129:5129] CHIP:DMG: { - [1666944860.387318][5129:5129] CHIP:DMG: DataVersion = 0xe78fc9e9, - [1666944860.387399][5129:5129] CHIP:DMG: AttributePathIB = - [1666944860.387482][5129:5129] CHIP:DMG: { - [1666944860.387576][5129:5129] CHIP:DMG: Endpoint = 0x0, - [1666944860.387674][5129:5129] CHIP:DMG: Cluster = 0x3e, - [1666944860.387782][5129:5129] CHIP:DMG: Attribute = 0x0000_0004, - [1666944860.387881][5129:5129] CHIP:DMG: ListIndex = Null, - [1666944860.387968][5129:5129] CHIP:DMG: } - [1666944860.388056][5129:5129] CHIP:DMG: - [1666944860.388150][5129:5129] CHIP:DMG: Data = [ - [1666944860.388433][5129:5129] CHIP:DMG: 0x15, 0x30, 0x01, 0x01, 0x01, 0x24, 0x02, 0x01, 0x37, 0x03, 0x24, 0x14, 0x01, 0x18, 0x26, 0x04, 0x80, 0x22, 0x81, 0x27, 0x26, 0x05, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x06, 0x24, 0x14, 0x01, 0x18, 0x24, 0x07, 0x01, 0x24, 0x08, 0x01, 0x30, 0x09, 0x41, 0x04, 0x6e, 0x89, 0xfa, 0x3f, 0xdd, 0x5a, 0x56, 0x41, 0xea, 0x02, 0x3b, 0xc2, 0xd8, 0x0e, 0x59, 0xe8, 0x3b, 0x91, 0x59, 0x8b, 0x03, 0xb4, 0xdb, 0x54, 0xe6, 0x32, 0x6c, 0x99, 0xdb, 0x1a, 0x1d, 0xd9, 0x55, 0x87, 0x0c, 0x39, 0x9b, 0x04, 0xad, 0x31, 0xaa, 0x9e, 0x88, 0x50, 0x50, 0xce, 0x11, 0xc1, 0x2a, 0x53, 0x34, 0x1f, 0xfc, 0x05, 0x58, 0x25, 0xf1, 0x57, 0x30, 0x3f, 0x86, 0xa2, 0xec, 0x7f, 0x37, 0x0a, 0x35, 0x01, 0x29, 0x01, 0x18, 0x24, 0x02, 0x60, 0x30, 0x04, 0x14, 0xe9, 0x0e, 0xb5, 0xca, 0xe8, 0xe6, 0xb1, 0xe1, 0xb9, 0x61, 0xf7, 0x72, 0xfb, 0x92, 0x50, 0x6b, 0xa4, 0x3d, 0xa7, 0x0e, 0x30, 0x05, 0x14, 0xe9, 0x0e, 0xb5, 0xca, 0xe8, 0xe6, 0xb1, 0xe1, 0xb9, 0x61, 0xf7, 0x72, 0xfb, 0x92, 0x50, 0x6b, 0xa4, 0x3d, 0xa7, 0x0e, 0x18, 0x30, 0x0b, 0x40, 0x19, 0x07, 0x4f, 0xbd, 0xcd, 0xa4, 0xbb, 0x06, 0xd9, 0xc2, 0x40, 0x49, 0xb6, 0xdf, 0xd1, 0x6c, 0x21, 0x2b, 0xa7, 0xc5, 0xd3, 0xb2, 0xe4, 0x91, 0xad, 0x4c, 0x1f, 0x8a, 0x74, 0x29, 0xca, 0x87, 0x85, 0xd1, 0xe6, 0xd0, 0xcf, 0xb8, 0xda, 0xa1, 0x3c, 0xbc, 0x26, 0x67, 0x49, 0x92, 0xbb, 0xf7, 0x29, 0x4d, 0x89, 0x99, 0x78, 0x22, 0xca, 0x12, 0x21, 0xc3, 0xbf, 0x92, 0xf6, 0x7c, 0xa4, 0xe8, 0x18, - [1666944860.388599][5129:5129] CHIP:DMG: ] (231 bytes) - [1666944860.388686][5129:5129] CHIP:DMG: }, - [1666944860.388782][5129:5129] CHIP:DMG: - [1666944860.388853][5129:5129] CHIP:DMG: }, - [1666944860.388935][5129:5129] CHIP:DMG: - [1666944860.388996][5129:5129] CHIP:DMG: ], + [1689682131.190884][52705:52705] CHIP:DMG: ReportDataMessage = + [1689682131.190889][52705:52705] CHIP:DMG: { + [1689682131.190892][52705:52705] CHIP:DMG: AttributeReportIBs = + [1689682131.190901][52705:52705] CHIP:DMG: [ + [1689682131.190905][52705:52705] CHIP:DMG: AttributeReportIB = + [1689682131.190913][52705:52705] CHIP:DMG: { + [1689682131.190917][52705:52705] CHIP:DMG: AttributeDataIB = + [1689682131.190922][52705:52705] CHIP:DMG: { + [1689682131.190928][52705:52705] CHIP:DMG: DataVersion = 0x65bf1428, + [1689682131.190932][52705:52705] CHIP:DMG: AttributePathIB = + [1689682131.190937][52705:52705] CHIP:DMG: { + [1689682131.190943][52705:52705] CHIP:DMG: Endpoint = 0x0, + [1689682131.190948][52705:52705] CHIP:DMG: Cluster = 0x3e, + [1689682131.190953][52705:52705] CHIP:DMG: Attribute = 0x0000_0004, + [1689682131.190958][52705:52705] CHIP:DMG: } + [1689682131.190965][52705:52705] CHIP:DMG: + [1689682131.190970][52705:52705] CHIP:DMG: Data = [ + [1689682131.190976][52705:52705] CHIP:DMG: [ + [1689682131.191022][52705:52705] CHIP:DMG: 0x15, 0x30, 0x01, 0x01, 0x01, 0x24, 0x02, 0x01, 0x37, 0x03, 0x24, 0x14, 0x01, 0x18, 0x26, 0x04, 0x80, 0x22, 0x81, 0x27, 0x26, 0x05, 0x80, 0x25, 0x4d, 0x3a, 0x37, 0x06, 0x24, 0x14, 0x01, 0x18, 0x24, 0x07, 0x01, 0x24, 0x08, 0x01, 0x30, 0x09, 0x41, 0x04, 0x8e, 0x70, 0xf4, 0x2e, 0xcb, 0xad, 0x8a, 0xc7, 0x98, 0x04, 0xa7, 0x5e, 0x1e, 0xe8, 0x33, 0xc8, 0x33, 0xb0, 0x76, 0xd9, 0x02, 0x93, 0x0a, 0x79, 0xff, 0xc3, 0xcd, 0x26, 0x78, 0xa9, 0xf6, 0xe8, 0xfe, 0xe8, 0x8b, 0x72, 0x3e, 0x31, 0x4e, 0x8e, 0xd7, 0x63, 0x7d, 0x9e, 0x90, 0x73, 0x20, 0x71, 0x1b, 0xbf, 0xfd, 0x1c, 0xc0, 0x8c, 0x4d, 0x6f, 0xb8, 0x75, 0x5f, 0xcb, 0x41, 0xef, 0x96, 0xb9, 0x37, 0x0a, 0x35, 0x01, 0x29, 0x01, 0x18, 0x24, 0x02, 0x60, 0x30, 0x04, 0x14, 0xcf, 0x9b, 0x3f, 0x36, 0x43, 0x7a, 0x3e, 0x7c, 0x8c, 0x8a, 0xee, 0xe8, 0x03, 0x85, 0x26, 0x0a, 0x4f, 0x4a, 0x6b, 0xf3, 0x30, 0x05, 0x14, 0xcf, 0x9b, 0x3f, 0x36, 0x43, 0x7a, 0x3e, 0x7c, 0x8c, 0x8a, 0xee, 0xe8, 0x03, 0x85, 0x26, 0x0a, 0x4f, 0x4a, 0x6b, 0xf3, 0x18, 0x30, 0x0b, 0x40, 0x03, 0x3a, 0x99, 0xd5, 0xbd, 0x12, 0x8c, 0xdf, 0x45, 0xa2, 0x5b, 0x9c, 0xa1, 0x5d, 0xb0, 0x25, 0x43, 0xa2, 0x96, 0x17, 0x05, 0x18, 0x97, 0x7c, 0x64, 0x8a, 0xe2, 0xc4, 0x15, 0xeb, 0x7a, 0x4e, 0xe3, 0x4d, 0x42, 0x60, 0x78, 0x0d, 0x83, 0x32, 0x56, 0x26, 0xa7, 0xe5, 0x1d, 0x77, 0x4e, 0x71, 0x23, 0xe2, 0xac, 0x0a, 0x93, 0x7d, 0x53, 0x6d, 0xe3, 0xa4, 0x8b, 0xcc, 0xb7, 0x10, 0xd4, 0xc3, 0x18, + [1689682131.191039][52705:52705] CHIP:DMG: ] (231 bytes) + [1689682131.191045][52705:52705] CHIP:DMG: ], + [1689682131.191049][52705:52705] CHIP:DMG: }, + [1689682131.191056][52705:52705] CHIP:DMG: + [1689682131.191060][52705:52705] CHIP:DMG: }, + [1689682131.191068][52705:52705] CHIP:DMG: + [1689682131.191071][52705:52705] CHIP:DMG: ], + [1689682131.191079][52705:52705] CHIP:DMG: + [1689682131.191084][52705:52705] CHIP:DMG: SuppressResponse = true, + [1689682131.191089][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689682131.191092][52705:52705] CHIP:DMG: } + [1689682131.191096][52705:52705] CHIP:DMG: + [1689682131.191106][52705:52705] CHIP:DMG: Additional Fields = + [1689682131.191109][52705:52705] CHIP:DMG: { + [1689682131.191114][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:56707 + [1689682131.191118][52705:52705] CHIP:DMG: } disabled: true - - label: "DUT reads CurrentFabricIndex attribute from TH" + - label: + "Step 16: Trigger the DUT to read CurrentFabricIndex attribute from TH" PICS: OPCREDS.C.A0005 verification: | ./chip-tool operationalcredentials read current-fabric-index 1 0 Verify that the DUT reads the CurrentFabricIndex from TH (all-clusters-app) successfully. - [1666944974.330268][5129:5129] CHIP:EM: Handling via exchange: 5539r, Delegate: 0xaaaac10e0288 - [1666944974.330362][5129:5129] CHIP:IM: Received Read request - [1666944974.330557][5129:5129] CHIP:DMG: ReadRequestMessage = - [1666944974.330648][5129:5129] CHIP:DMG: { - [1666944974.330700][5129:5129] CHIP:DMG: AttributePathIBs = - [1666944974.330932][5129:5129] CHIP:DMG: [ - [1666944974.330996][5129:5129] CHIP:DMG: AttributePathIB = - [1666944974.331063][5129:5129] CHIP:DMG: { - [1666944974.331159][5129:5129] CHIP:DMG: Endpoint = 0x0, - [1666944974.331248][5129:5129] CHIP:DMG: Cluster = 0x3e, - [1666944974.331351][5129:5129] CHIP:DMG: Attribute = 0x0000_0005, - [1666944974.331427][5129:5129] CHIP:DMG: } - [1666944974.331526][5129:5129] CHIP:DMG: - [1666944974.331597][5129:5129] CHIP:DMG: ], - [1666944974.331689][5129:5129] CHIP:DMG: - [1666944974.331757][5129:5129] CHIP:DMG: isFabricFiltered = true, - [1666944974.331822][5129:5129] CHIP:DMG: InteractionModelRevision = 1 - [1666944974.331903][5129:5129] CHIP:DMG: }, - [1666944974.332106][5129:5129] CHIP:DMG: IM RH moving to [GeneratingReports] - [1666944974.332346][5129:5129] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1666944974.332419][5129:5129] CHIP:DMG: Cluster 3e, Attribute 5 is dirty - [1666944974.332473][5129:5129] CHIP:DMG: Reading attribute: Cluster=0x0000_003E Endpoint=0 AttributeId=0x0000_0005 (expanded=0) - [1666944974.332541][5129:5129] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_003E e=0 p=v - [1666944974.332641][5129:5129] CHIP:DMG: AccessControl: allowed - [1666944974.332759][5129:5129] CHIP:DMG: Sending report (payload has 36 bytes)... - [1666944974.333371][5129:5129] CHIP:EM: <<< [E:5539r M:254395404 (Ack:84213351)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0001:05 (IM:ReportData) - [1666944974.333474][5129:5129] CHIP:IN: (S) Sending msg 254395404 on secure session with LSID: 49153 - [1666944974.334160][5129:5129] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:53803 | 254395404 | [Interaction Model (1) / Report Data (0x05) / Session = 56408 / Exchange = 5539] - [1666944974.334260][5129:5129] CHIP:DMG: Header Flags = - [1666944974.334318][5129:5129] CHIP:DMG: { - [1666944974.334406][5129:5129] CHIP:DMG: Exchange (0x06) = - [1666944974.334463][5129:5129] CHIP:DMG: { - [1666944974.334522][5129:5129] CHIP:DMG: AckMsg = 84213351 - [1666944974.334602][5129:5129] CHIP:DMG: NeedsAck = true - [1666944974.334656][5129:5129] CHIP:DMG: } - [1666944974.334773][5129:5129] CHIP:DMG: } - [1666944974.334854][5129:5129] CHIP:DMG: - [1666944974.334923][5129:5129] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666944974.335002][5129:5129] CHIP:DMG: { - [1666944974.335059][5129:5129] CHIP:DMG: data = 0058dc000cc4290f3c4f09bf83fecd6dd81c1c0282d30b9066a58004cd6eee259d3c5ef0bc544c3df998c7ced83c30dcd903481448a9a530a9e9c961a00e8ffac68db0b20dd5 - [1666944974.335117][5129:5129] CHIP:DMG: buffer_ptr = 187651235601376 - [1666944974.335199][5129:5129] CHIP:DMG: } - [1666944974.335252][5129:5129] CHIP:DMG: - [1666944974.335440][5129:5129] CHIP:DMG: ReportDataMessage = - [1666944974.335507][5129:5129] CHIP:DMG: { - [1666944974.335584][5129:5129] CHIP:DMG: AttributeReportIBs = - [1666944974.335669][5129:5129] CHIP:DMG: [ - [1666944974.335732][5129:5129] CHIP:DMG: AttributeReportIB = - [1666944974.335819][5129:5129] CHIP:DMG: { - [1666944974.335899][5129:5129] CHIP:DMG: AttributeDataIB = - [1666944974.335986][5129:5129] CHIP:DMG: { - [1666944974.336094][5129:5129] CHIP:DMG: DataVersion = 0xe78fc9e9, - [1666944974.336183][5129:5129] CHIP:DMG: AttributePathIB = - [1666944974.336291][5129:5129] CHIP:DMG: { - [1666944974.336408][5129:5129] CHIP:DMG: Endpoint = 0x0, - [1666944974.336500][5129:5129] CHIP:DMG: Cluster = 0x3e, - [1666944974.336612][5129:5129] CHIP:DMG: Attribute = 0x0000_0005, - [1666944974.336706][5129:5129] CHIP:DMG: } - [1666944974.336824][5129:5129] CHIP:DMG: - [1666944974.336906][5129:5129] CHIP:DMG: Data = 1, - [1666944974.337015][5129:5129] CHIP:DMG: }, - [1666944974.337111][5129:5129] CHIP:DMG: - [1666944974.337203][5129:5129] CHIP:DMG: }, - [1666944974.337288][5129:5129] CHIP:DMG: - [1666944974.337378][5129:5129] CHIP:DMG: ], + [1689682171.239348][52705:52705] CHIP:DMG: ReportDataMessage = + [1689682171.239351][52705:52705] CHIP:DMG: { + [1689682171.239353][52705:52705] CHIP:DMG: AttributeReportIBs = + [1689682171.239359][52705:52705] CHIP:DMG: [ + [1689682171.239361][52705:52705] CHIP:DMG: AttributeReportIB = + [1689682171.239367][52705:52705] CHIP:DMG: { + [1689682171.239370][52705:52705] CHIP:DMG: AttributeDataIB = + [1689682171.239373][52705:52705] CHIP:DMG: { + [1689682171.239378][52705:52705] CHIP:DMG: DataVersion = 0x65bf1428, + [1689682171.239382][52705:52705] CHIP:DMG: AttributePathIB = + [1689682171.239387][52705:52705] CHIP:DMG: { + [1689682171.239391][52705:52705] CHIP:DMG: Endpoint = 0x0, + [1689682171.239396][52705:52705] CHIP:DMG: Cluster = 0x3e, + [1689682171.239400][52705:52705] CHIP:DMG: Attribute = 0x0000_0005, + [1689682171.239404][52705:52705] CHIP:DMG: } + [1689682171.239410][52705:52705] CHIP:DMG: + [1689682171.239415][52705:52705] CHIP:DMG: Data = 1, + [1689682171.239419][52705:52705] CHIP:DMG: }, + [1689682171.239424][52705:52705] CHIP:DMG: + [1689682171.239427][52705:52705] CHIP:DMG: }, + [1689682171.239432][52705:52705] CHIP:DMG: + [1689682171.239434][52705:52705] CHIP:DMG: ], + [1689682171.239440][52705:52705] CHIP:DMG: + [1689682171.239443][52705:52705] CHIP:DMG: SuppressResponse = true, + [1689682171.239447][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689682171.239450][52705:52705] CHIP:DMG: } + [1689682171.239453][52705:52705] CHIP:DMG: + [1689682171.239459][52705:52705] CHIP:DMG: Additional Fields = + [1689682171.239462][52705:52705] CHIP:DMG: { + [1689682171.239465][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:48841 + [1689682171.239468][52705:52705] CHIP:DMG: } disabled: true - - label: "DUT sends RemoveFabric command to TH" + - label: "Step 17: Trigger the DUT to send RemoveFabric command to TH" PICS: OPCREDS.C.C0a.Tx verification: | ./chip-tool operationalcredentials remove-fabric 1 1 0 Verify that the TH receives RemoveFabric Command on TH(all-clusters-app) Log - [1666945062.193989][5129:5129] CHIP:EM: Handling via exchange: 55862r, Delegate: 0xaaaac10e0288 - [1666945062.194151][5129:5129] CHIP:DMG: InvokeRequestMessage = - [1666945062.194246][5129:5129] CHIP:DMG: { - [1666945062.194305][5129:5129] CHIP:DMG: suppressResponse = false, - [1666945062.194372][5129:5129] CHIP:DMG: timedRequest = false, - [1666945062.194457][5129:5129] CHIP:DMG: InvokeRequests = - [1666945062.194535][5129:5129] CHIP:DMG: [ - [1666945062.194624][5129:5129] CHIP:DMG: CommandDataIB = - [1666945062.194710][5129:5129] CHIP:DMG: { - [1666945062.194968][5129:5129] CHIP:DMG: CommandPathIB = - [1666945062.195074][5129:5129] CHIP:DMG: { - [1666945062.195165][5129:5129] CHIP:DMG: EndpointId = 0x0, - [1666945062.195257][5129:5129] CHIP:DMG: ClusterId = 0x3e, - [1666945062.195365][5129:5129] CHIP:DMG: CommandId = 0xa, - [1666945062.195446][5129:5129] CHIP:DMG: }, - [1666945062.195550][5129:5129] CHIP:DMG: - [1666945062.195623][5129:5129] CHIP:DMG: CommandFields = - [1666945062.195726][5129:5129] CHIP:DMG: { - [1666945062.195794][5129:5129] CHIP:DMG: 0x0 = 1, - [1666945062.195861][5129:5129] CHIP:DMG: }, - [1666945062.195955][5129:5129] CHIP:DMG: }, - [1666945062.196040][5129:5129] CHIP:DMG: - [1666945062.196123][5129:5129] CHIP:DMG: ], - [1666945062.196201][5129:5129] CHIP:DMG: - [1666945062.196284][5129:5129] CHIP:DMG: InteractionModelRevision = 1 - [1666945062.196346][5129:5129] CHIP:DMG: }, - [1666945062.196517][5129:5129] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_003E e=0 p=a - [1666945062.196599][5129:5129] CHIP:DMG: AccessControl: allowed - [1666945062.196692][5129:5129] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003E Command=0x0000_000A - [1666945062.196770][5129:5129] CHIP:ZCL: OpCreds: Received a RemoveFabric Command for FabricIndex 0x1 - [1666945062.197328][5129:5129] CHIP:EM: <<< [E:55862r M:7155927 (Ack:103508994)] (S) Msg TX to 1:000000000001B669 [C7F7] --- Type 0000:10 (SecureChannel:StandaloneAck) - [1666945062.197427][5129:5129] CHIP:IN: (S) Sending msg 7155927 on secure session with LSID: 49154 - [1666945062.198112][5129:5129] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:38753 | 7155927 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 54145 / Exchange = 55862] - [1666945062.198210][5129:5129] CHIP:DMG: Header Flags = - [1666945062.198268][5129:5129] CHIP:DMG: { - [1666945062.198355][5129:5129] CHIP:DMG: Exchange (0x02) = - [1666945062.198411][5129:5129] CHIP:DMG: { - [1666945062.198470][5129:5129] CHIP:DMG: AckMsg = 103508994 - [1666945062.198554][5129:5129] CHIP:DMG: } - [1666945062.198627][5129:5129] CHIP:DMG: } - [1666945062.198685][5129:5129] CHIP:DMG: - [1666945062.198868][5129:5129] CHIP:DMG: Encrypted Payload (34 bytes) = - [1666945062.198928][5129:5129] CHIP:DMG: { - [1666945062.199007][5129:5129] CHIP:DMG: data = 0081d300d7306d00a451afdaddfe196fe4e55e66b9d83b0a6ed32862c5f9afe77ae0 - [1666945062.199063][5129:5129] CHIP:DMG: buffer_ptr = 187651235478000 - [1666945062.199118][5129:5129] CHIP:DMG: } - [1666945062.199193][5129:5129] CHIP:DMG: - [1666945062.199522][5129:5129] CHIP:EM: Flushed pending ack for MessageCounter:103508994 on exchange 55862r - [1666945062.199674][5129:5129] CHIP:EVL: LogEvent event number: 0x0000000000000004 priority: 1, endpoint id: 0x0 cluster id: 0x0000_0028 event id: 0x2 Sys timestamp: 0x0000000000B771F0 - [1666945062.199760][5129:5129] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet - [1666945062.200201][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-7OSBAl) - [1666945062.202005][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.202352][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-2BsmnZ) - [1666945062.204040][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.204783][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-aJiMIA) - [1666945062.206316][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.206642][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-BgW2Sj) - [1666945062.208377][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.208721][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-x59zoR) - [1666945062.210184][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.210790][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-gy9LWw) - [1666945062.212254][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.212382][5129:5129] CHIP:FP: Fabric (0x1) deleted. - [1666945062.212461][5129:5129] CHIP:ZCL: [OnFabricRemoved] Handling a fabric removal from the door lock server [endpointId=1,fabricIndex=1] - [1666945062.212650][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=1] - [1666945062.212736][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=0] - [1666945062.212800][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=2] - [1666945062.212852][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=1] - [1666945062.212928][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=3] - [1666945062.212981][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=2] - [1666945062.213034][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=4] - [1666945062.213111][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=3] - [1666945062.213165][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=5] - [1666945062.213216][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=4] - [1666945062.213269][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=6] - [1666945062.213342][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=5] - [1666945062.213395][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=7] - [1666945062.213446][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=6] - [1666945062.213517][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=8] - [1666945062.213570][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=7] - [1666945062.213622][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=9] - [1666945062.213672][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=8] - [1666945062.213746][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetUser [endpoint=1,userIndex=10] - [1666945062.213800][5129:5129] CHIP:ZCL: Found unoccupied user [endpoint=1,adjustedIndex=9] - [1666945062.213870][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=1,credentialType=2] - [1666945062.213948][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=1] - [1666945062.214001][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=2,credentialType=2] - [1666945062.214054][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=2] - [1666945062.214132][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=3,credentialType=2] - [1666945062.214185][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=3] - [1666945062.214236][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=4,credentialType=2] - [1666945062.214289][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=4] - [1666945062.214365][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=5,credentialType=2] - [1666945062.214417][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=5] - [1666945062.214468][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=6,credentialType=2] - [1666945062.214547][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=6] - [1666945062.214601][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=7,credentialType=2] - [1666945062.214653][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=7] - [1666945062.214704][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=8,credentialType=2] - [1666945062.214869][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=8] - [1666945062.214922][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=9,credentialType=2] - [1666945062.214997][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=9] - [1666945062.215049][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=10,credentialType=2] - [1666945062.215102][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=10] - [1666945062.215187][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=1,credentialType=1] - [1666945062.215243][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=1] - [1666945062.215294][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=2,credentialType=1] - [1666945062.215347][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=2] - [1666945062.215425][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=3,credentialType=1] - [1666945062.215478][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=3] - [1666945062.215529][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=4,credentialType=1] - [1666945062.215582][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=4] - [1666945062.215654][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=5,credentialType=1] - [1666945062.215707][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=5] - [1666945062.215758][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=6,credentialType=1] - [1666945062.215811][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=6] - [1666945062.215887][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=7,credentialType=1] - [1666945062.215940][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=7] - [1666945062.215991][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=8,credentialType=1] - [1666945062.216065][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=8] - [1666945062.216118][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=9,credentialType=1] - [1666945062.216170][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=9] - [1666945062.216222][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=10,credentialType=1] - [1666945062.216295][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=10] - [1666945062.216359][5129:5129] CHIP:ZCL: Lock App: LockEndpoint::GetCredential [endpoint=1,credentialIndex=0,credentialType=0] - [1666945062.216413][5129:5129] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=0] - [1666945062.216489][5129:5129] CHIP:ZCL: UserLabel: Last Fabric index 0x1 was removed - [1666945062.216662][5129:5129] CHIP:ZCL: OpCreds: Fabric index 0x1 was removed - [1666945062.217021][5129:5129] CHIP:DMG: Endpoint 0, Cluster 0x0000_003E update version to e78fc9ea - [1666945062.217112][5129:5129] CHIP:DMG: Endpoint 0, Cluster 0x0000_003E update version to e78fc9eb - [1666945062.217688][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-1PbpHx) - [1666945062.219227][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.219581][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-DykbbU) - [1666945062.221020][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.221365][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-hvypCu) - [1666945062.222833][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.224620][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-4rJHPg) - [1666945062.226066][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.226649][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-iWfp82) - [1666945062.228088][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.228744][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-WNxZIv) - [1666945062.230153][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.230528][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-Rfl6L4) - [1666945062.231941][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.232368][5129:5129] CHIP:DL: writing settings to file (/tmp/chip_kvs-cRlvFF) - [1666945062.233646][5129:5129] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) - [1666945062.233811][5129:5129] CHIP:DIS: Updating services using commissioning mode 0 - [1666945062.241049][5129:5129] CHIP:DIS: CHIP minimal mDNS started advertising. - [1666945062.258444][5129:5129] CHIP:DIS: Warning: Attempt to mDNS broadcast failed on otbr0: ../../third_party/connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:409: OS Error 0x02000065: Network is unreachable - [1666945062.258552][5129:5129] CHIP:DIS: mDNS broadcast full failed in 1 separate send attempts. - [1666945062.258622][5129:5129] CHIP:DIS: Failed to advertise records: ../../third_party/connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:409: OS Error 0x02000065: Network is unreachable - [1666945062.262038][5129:5129] CHIP:DIS: Warning: Attempt to mDNS broadcast failed on otbr0: ../../third_party/connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:409: OS Error 0x02000065: Network is unreachable - [1666945062.262132][5129:5129] CHIP:DIS: mDNS broadcast full failed in 1 separate send attempts. - [1666945062.262201][5129:5129] CHIP:DIS: Failed to advertise records: ../../third_party/connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:409: OS Error 0x02000065: Network is unreachable - [1666945062.315574][5129:5129] CHIP:ZCL: OpCreds: RemoveFabric successful - [1666945062.315717][5129:5129] CHIP:DMG: Command handler moving to [ Preparing] - [1666945062.315795][5129:5129] CHIP:DMG: Command handler moving to [AddingComm] - [1666945062.315868][5129:5129] CHIP:DMG: Command handler moving to [AddedComma] - [1666945062.315939][5129:5129] CHIP:IN: Expiring all sessions for fabric 0x1!! - [1666945062.315996][5129:5129] CHIP:IN: SecureSession[0xaaaaf53b08f0]: MarkForEviction Type:2 LSID:49150 - [1666945062.316053][5129:5129] CHIP:SC: SecureSession[0xaaaaf53b08f0]: Moving from state 'kActive' --> 'kPendingEviction' - [1666945062.316111][5129:5129] CHIP:IN: SecureSession[0xaaaaf53b08f0]: Released - Type:2 LSID:49150 - [1666945062.316211][5129:5129] CHIP:IN: SecureSession[0xaaaaf53d2ec0]: MarkForEviction Type:2 LSID:49151 - [1666945062.316268][5129:5129] CHIP:SC: SecureSession[0xaaaaf53d2ec0]: Moving from state 'kActive' --> 'kPendingEviction' - [1666945062.316324][5129:5129] CHIP:IN: SecureSession[0xaaaaf53d2ec0]: Released - Type:2 LSID:49151 - [1666945062.316406][5129:5129] CHIP:IN: SecureSession[0xaaaaf52e6e10]: MarkForEviction Type:2 LSID:49152 - [1666945062.316464][5129:5129] CHIP:SC: SecureSession[0xaaaaf52e6e10]: Moving from state 'kActive' --> 'kPendingEviction' - [1666945062.316517][5129:5129] CHIP:IN: SecureSession[0xaaaaf52e6e10]: Released - Type:2 LSID:49152 - [1666945062.316574][5129:5129] CHIP:IN: SecureSession[0xaaaaf53cf6f0]: MarkForEviction Type:2 LSID:49153 - [1666945062.316651][5129:5129] CHIP:SC: SecureSession[0xaaaaf53cf6f0]: Moving from state 'kActive' --> 'kPendingEviction' - [1666945062.316705][5129:5129] CHIP:IN: SecureSession[0xaaaaf53cf6f0]: Released - Type:2 LSID:49153 - [1666945062.316761][5129:5129] CHIP:IN: SecureSession[0xaaaaf53d33c0]: MarkForEviction Type:2 LSID:49154 - [1666945062.316834][5129:5129] CHIP:SC: SecureSession[0xaaaaf53d33c0]: Moving from state 'kActive' --> 'kPendingEviction' - [1666945062.316961][5129:5129] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 - [1666945062.317650][5129:5129] CHIP:EM: <<< [E:55862r M:7155928 (Ack:103508994)] (S) Msg TX to 1:000000000001B669 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) - [1666945062.317757][5129:5129] CHIP:IN: (S) Sending msg 7155928 on secure session with LSID: 49154 - [1666945062.318456][5129:5129] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:38753 | 7155928 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 54145 / Exchange = 55862] - [1666945062.318555][5129:5129] CHIP:DMG: Header Flags = - [1666945062.318612][5129:5129] CHIP:DMG: { - [1666945062.318701][5129:5129] CHIP:DMG: Exchange (0x06) = - [1666945062.319187][5129:5129] CHIP:DMG: { - [1666945062.319251][5129:5129] CHIP:DMG: AckMsg = 103508994 - [1666945062.319306][5129:5129] CHIP:DMG: NeedsAck = true - [1666945062.319360][5129:5129] CHIP:DMG: } - [1666945062.319435][5129:5129] CHIP:DMG: } - [1666945062.319515][5129:5129] CHIP:DMG: - [1666945062.319590][5129:5129] CHIP:DMG: Encrypted Payload (70 bytes) = - [1666945062.319647][5129:5129] CHIP:DMG: { - [1666945062.319724][5129:5129] CHIP:DMG: data = 0081d300d8306d00a1005b9e3280ccb4298f109b4e40c8cae3e5dbc105165c9b7bc0f98edfed14e7ca1f630f36085f258154a2e697335c66fd36f6593e8091c1b6cdf0993e8f - [1666945062.319788][5129:5129] CHIP:DMG: buffer_ptr = 187651235604944 - [1666945062.319843][5129:5129] CHIP:DMG: } - [1666945062.319916][5129:5129] CHIP:DMG: - [1666945062.320107][5129:5129] CHIP:DMG: InvokeResponseMessage = - [1666945062.320172][5129:5129] CHIP:DMG: { - [1666945062.320254][5129:5129] CHIP:DMG: suppressResponse = false, - [1666945062.320318][5129:5129] CHIP:DMG: InvokeResponseIBs = - [1666945062.320394][5129:5129] CHIP:DMG: [ - [1666945062.320456][5129:5129] CHIP:DMG: InvokeResponseIB = - [1666945062.320569][5129:5129] CHIP:DMG: { - [1666945062.320643][5129:5129] CHIP:DMG: CommandDataIB = - [1666945062.320754][5129:5129] CHIP:DMG: { - [1666945062.320841][5129:5129] CHIP:DMG: CommandPathIB = - [1666945062.320948][5129:5129] CHIP:DMG: { - [1666945062.321043][5129:5129] CHIP:DMG: EndpointId = 0x0, - [1666945062.321157][5129:5129] CHIP:DMG: ClusterId = 0x3e, - [1666945062.321257][5129:5129] CHIP:DMG: CommandId = 0x8, - [1666945062.321367][5129:5129] CHIP:DMG: }, - [1666945062.321465][5129:5129] CHIP:DMG: - [1666945062.321574][5129:5129] CHIP:DMG: CommandFields = - [1666945062.321659][5129:5129] CHIP:DMG: { - [1666945062.321777][5129:5129] CHIP:DMG: 0x0 = 0, - [1666945062.321890][5129:5129] CHIP:DMG: 0x1 = 1, - [1666945062.321981][5129:5129] CHIP:DMG: }, - [1666945062.322084][5129:5129] CHIP:DMG: }, - [1666945062.322180][5129:5129] CHIP:DMG: - [1666945062.322276][5129:5129] CHIP:DMG: }, - [1666945062.322360][5129:5129] CHIP:DMG: - [1666945062.322448][5129:5129] CHIP:DMG: ], + [1689682243.817862][52705:52705] CHIP:DMG: InvokeResponseMessage = + [1689682243.817866][52705:52705] CHIP:DMG: { + [1689682243.817869][52705:52705] CHIP:DMG: suppressResponse = false, + [1689682243.817872][52705:52705] CHIP:DMG: InvokeResponseIBs = + [1689682243.817879][52705:52705] CHIP:DMG: [ + [1689682243.817882][52705:52705] CHIP:DMG: InvokeResponseIB = + [1689682243.817888][52705:52705] CHIP:DMG: { + [1689682243.817892][52705:52705] CHIP:DMG: CommandDataIB = + [1689682243.817895][52705:52705] CHIP:DMG: { + [1689682243.817899][52705:52705] CHIP:DMG: CommandPathIB = + [1689682243.817906][52705:52705] CHIP:DMG: { + [1689682243.817910][52705:52705] CHIP:DMG: EndpointId = 0x0, + [1689682243.817915][52705:52705] CHIP:DMG: ClusterId = 0x3e, + [1689682243.817919][52705:52705] CHIP:DMG: CommandId = 0x8, + [1689682243.817924][52705:52705] CHIP:DMG: }, + [1689682243.817930][52705:52705] CHIP:DMG: + [1689682243.817934][52705:52705] CHIP:DMG: CommandFields = + [1689682243.817938][52705:52705] CHIP:DMG: { + [1689682243.817944][52705:52705] CHIP:DMG: 0x0 = 0, + [1689682243.817949][52705:52705] CHIP:DMG: 0x1 = 1, + [1689682243.817954][52705:52705] CHIP:DMG: }, + [1689682243.817958][52705:52705] CHIP:DMG: }, + [1689682243.817965][52705:52705] CHIP:DMG: + [1689682243.817968][52705:52705] CHIP:DMG: }, + [1689682243.817976][52705:52705] CHIP:DMG: + [1689682243.817979][52705:52705] CHIP:DMG: ], + [1689682243.817986][52705:52705] CHIP:DMG: + [1689682243.817989][52705:52705] CHIP:DMG: InteractionModelRevision = 1 + [1689682243.817993][52705:52705] CHIP:DMG: }, + [1689682243.817997][52705:52705] CHIP:DMG: + [1689682243.818005][52705:52705] CHIP:DMG: Additional Fields = + [1689682243.818008][52705:52705] CHIP:DMG: { + [1689682243.818012][52705:52705] CHIP:DMG: peer_address = UDP:[fe80::df9b:2ab4:71bf:d31b%wlp0s20f3]:59605 + [1689682243.818016][52705:52705] CHIP:DMG: } + [1689682243.818019][52705:52705] CHIP:DMG: disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_4.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_4.yaml index 10330e72fd7041..bddac66fa9b983 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_4.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 12.3.4. [TC-OPCREDS-3.4] UpdateNOC-Error Condition [DUT-Server] +name: 15.2.3. [TC-OPCREDS-3.4] UpdateNOC-Error Condition [DUT-Server] PICS: - OPCREDS.S @@ -29,7 +29,7 @@ tests: TH and DUT are commissioned disabled: true - - label: "TH1 fully commissions the DUT" + - label: "Step 1: TH1 fully commissions the DUT" verification: | "DUT side: sudo ./chip-all-clusters-app --wifi @@ -41,8 +41,8 @@ tests: disabled: true - label: - "TH1 reads the NOCs attribute from the Node Operational Credentials - cluster using a fabric-filtered read" + "Step 2: TH1 reads the NOCs attribute from the Node Operational + Credentials cluster using a fabric-filtered read" verification: | ./chip-tool operationalcredentials read nocs 1 0 --fabric-filtered 1 @@ -58,7 +58,7 @@ tests: disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node + "Step 3: TH1 reads the TrustedRootCertificates attribute from the Node Operational Credentials cluster" verification: | ./chip-tool operationalcredentials read trusted-root-certificates 1 0 @@ -71,9 +71,9 @@ tests: disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to noc_original - ICACValue is to set icac_original" + "Step 4: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to + noc_original ICACValue is to set icac_original" PICS: OPCREDS.S.C07.Rsp verification: | Verify that the DUT responds with FAILSAFE_REQUIRED @@ -115,8 +115,8 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 900" + "Step 5: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 @@ -132,9 +132,9 @@ tests: disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to noc_original - ICACValue is to set icac_original" + "Step 6: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to + noc_original ICACValue is to set icac_original" PICS: OPCREDS.S.C07.Rsp verification: | Verify that the DUT responds with a NOCResponse with the StatusCode field set to MissingCsr that is status code 4 @@ -149,8 +149,8 @@ tests: disabled: true - label: - "TH1 Sends CSRRequest command with the IsForUpdateNOC field set to - false" + "Step 7: TH1 Sends CSRRequest command with the IsForUpdateNOC field + set to false" PICS: OPCREDS.S.C04.Rsp verification: | Verify that the DUT returns a CSRResponse and save as csr_not_update @@ -169,7 +169,7 @@ tests: disabled: true - label: - "TH1 generates a new NOC chain with ICAC with the following + "Step 8: TH1 generates a new NOC chain with ICAC with the following properties: new NOC is generated from the NOCSR returned in csr_not_for_update and is signed by ICA. Save as noc_not_for_update ICAC must be signed by the original key for trusted_root_original. @@ -179,8 +179,8 @@ tests: disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to + "Step 9: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to noc_not_for_update ICACValue is to set icac_not_for_update" PICS: OPCREDS.S.C07.Rsp verification: | @@ -188,42 +188,42 @@ tests: disabled: true - label: - "TH1 Sends CSRRequest command with the IsForUpdateNOC field set to - true" + "Step 10: TH1 Sends CSRRequest command with the IsForUpdateNOC field + set to true" PICS: OPCREDS.S.C04.Rsp verification: | disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to noc_original - ICACValue is to set icac_original" + "Step 11: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to + noc_original ICACValue is to set icac_original" PICS: OPCREDS.S.C07.Rsp verification: | disabled: true - label: - "TH1 generates a new Trusted Root Certificate and Private Key and - saves as new_root_cert and new_root_key so that TH can generate an NOC - for UpdateNOC that doesnt chain to the original root" + "Step 12: TH1 generates a new Trusted Root Certificate and Private Key + and saves as new_root_cert and new_root_key so that TH can generate an + NOC for UpdateNOC that doesnt chain to the original root" verification: | disabled: true - label: - "TH1 generates a new NOC and ICAC with the following properties: new - NOC is generated from the NOCSR returned in csr_update and is signed - by new ICA. Save as noc_update_new_root new ICAC is generated and - signed by new_root_key. Save as icac_update_new_root" + "Step 13: TH1 generates a new NOC and ICAC with the following + properties: new NOC is generated from the NOCSR returned in csr_update + and is signed by new ICA. Save as noc_update_new_root new ICAC is + generated and signed by new_root_key. Save as icac_update_new_root" verification: | disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to + "Step 14: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to noc_update_new_root ICACValue is to set icac_update_new_root" PICS: OPCREDS.S.C07.Rsp verification: | @@ -231,20 +231,20 @@ tests: disabled: true - label: - "TH1 generates a new NOC and ICAC with the following properties: new - NOC is generated from the NOCSR returned in csr_update with the - matter-fabric-id set to a different value than noc_original. The NOC - is signed by new ICA. Save as noc_update_bad_fabric_on_noc new ICAC is - generated with the and matter-fabric-id omitted. ICAC is signed by the - original key for trusted_root_original. Save as + "Step 15: TH1 generates a new NOC and ICAC with the following + properties: new NOC is generated from the NOCSR returned in csr_update + with the matter-fabric-id set to a different value than noc_original. + The NOC is signed by new ICA. Save as noc_update_bad_fabric_on_noc new + ICAC is generated with the and matter-fabric-id omitted. ICAC is + signed by the original key for trusted_root_original. Save as icac_update_bad_fabric_on_noc" verification: | disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to + "Step 16: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to noc_update_bad_fabric_on_noc ICACValue is to set icac_update_bad_fabric_on_noc" PICS: OPCREDS.S.C07.Rsp @@ -253,20 +253,20 @@ tests: disabled: true - label: - "TH1 generates a new NOC and ICAC with the following properties: new - NOC is generated from the NOCSR returned in csr_update with the - matter-fabric-id set to the same value as noc_original. The NOC is - signed by new ICA. Save as noc_update_bad_fabric_on_icac new ICAC is - generated with the and matter-fabric-id included as set to a different - value than noc_original. ICAC is signed by the original key for - trusted_root_original. Save as icac_update_bad_fabric_on_icac" + "Step 17: TH1 generates a new NOC and ICAC with the following + properties: new NOC is generated from the NOCSR returned in csr_update + with the matter-fabric-id set to the same value as noc_original. The + NOC is signed by new ICA. Save as noc_update_bad_fabric_on_icac new + ICAC is generated with the and matter-fabric-id included as set to a + different value than noc_original. ICAC is signed by the original key + for trusted_root_original. Save as icac_update_bad_fabric_on_icac" verification: | disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to + "Step 18: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to noc_update_bad_fabric_on_icac ICACValue is to set icac_update_bad_fabric_on_icac" PICS: OPCREDS.S.C07.Rsp @@ -275,16 +275,16 @@ tests: disabled: true - label: - "TH1 sends AddTrustedRootCertificate command to DUT again with the - RootCACertificate field set to new_root_cert" + "Step 19: TH1 sends AddTrustedRootCertificate command to DUT again + with the RootCACertificate field set to new_root_cert" PICS: OPCREDS.S.C0b.Rsp verification: | disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to + "Step 20: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to noc_update_new_root ICACValue is to set icac_update_new_root" PICS: OPCREDS.S.C07.Rsp verification: | @@ -292,35 +292,35 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 0" + "Step 21: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 0" verification: | disabled: true - - label: "TH1 sends an OpenCommissioningWindow command to the DUT" + - label: "Step 22: TH1 sends an OpenCommissioningWindow command to the DUT" verification: | disabled: true - label: - "TH1 connects to the DUT over PASE and sends ArmFailSafe command to - the DUT with the ExpiryLengthSeconds field set to 900. Steps 24-26 are - all performed over the PASE connection." + "Step 23: TH1 connects to the DUT over PASE and sends ArmFailSafe + command to the DUT with the ExpiryLengthSeconds field set to 900. + Steps 24-26 are all performed over the PASE connection." verification: | disabled: true - label: - "TH1 Sends CSRRequest command over PASE with the IsForUpdateNOC field - set to true" + "Step 24: TH1 Sends CSRRequest command over PASE with the + IsForUpdateNOC field set to true" PICS: OPCREDS.S.C04.Rsp verification: | disabled: true - label: - "TH1 generates a new NOC chain with ICAC with the following + "Step 25: TH1 generates a new NOC chain with ICAC with the following properties: new NOC is generated from the NOCSR returned in csr_pase and is signed by ICA. Save as noc_pase ICAC must be signed by the original key for trusted_root_original. Save as icac_pase" @@ -329,9 +329,9 @@ tests: disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster over PASE with the following fields: NOCValue is set to - noc_pase ICACValue is to set icac_pase" + "Step 26: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster over PASE with the following fields: NOCValue is + set to noc_pase ICACValue is to set icac_pase" PICS: OPCREDS.S.C07.Rsp verification: | diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_5.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_5.yaml index 2f930f972b410d..178538165c24ff 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_5.yaml @@ -24,7 +24,7 @@ config: endpoint: 0 tests: - - label: "TH1 fully commissions the DUT" + - label: "Step 1: TH1 fully commissions the DUT" verification: | "DUT side: sudo ./chip-all-clusters-app --wifi @@ -36,8 +36,8 @@ tests: disabled: true - label: - "TH1 reads the NOCs attribute from the Node Operational Credentials - cluster using a fabric-filtered read" + "Step 2: TH1 reads the NOCs attribute from the Node Operational + Credentials cluster using a fabric-filtered read" verification: | ./chip-tool operationalcredentials read nocs 1 0 --fabric-filtered 1 @@ -53,7 +53,7 @@ tests: disabled: true - label: - "TH1 reads the TrustedRootCertificates attribute from the Node + "Step 3: TH1 reads the TrustedRootCertificates attribute from the Node Operational Credentials cluster" verification: | ./chip-tool operationalcredentials read trusted-root-certificates 1 0 @@ -66,8 +66,8 @@ tests: disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 900" + "Step 4: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 900" verification: | ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0 @@ -82,8 +82,8 @@ tests: disabled: true - label: - "TH1 Sends CSRRequest command with the IsForUpdateNOC field set to - true" + "Step 5: TH1 Sends CSRRequest command with the IsForUpdateNOC field + set to true" PICS: OPCREDS.S.C04.Rsp verification: | To get csr nonce give below command 2 times in TH(chip-tool) @@ -100,110 +100,111 @@ tests: disabled: true - label: - "TH1 generates a new NOC and ICAC with the following properties: new - NOC is generated from the NOCSR returned in csr_update1. The subject - is set to match noc_original. The NOC is signed by the new ICA. Save - as noc_update1 new ICAC must be distinguishable from icac_original. - This can be accomplished by changing any of the following: the - subject, subject public key or validity. The certificate must be - valid. ICAC is signed by the original key for trusted_root_original. - Save as icac_update1" + "Step 6: TH1 generates a new NOC and ICAC with the following + properties: new NOC is generated from the NOCSR returned in + csr_update1. The subject is set to match noc_original. The NOC is + signed by the new ICA. Save as noc_update1 new ICAC must be + distinguishable from icac_original. This can be accomplished by + changing any of the following: the subject, subject public key or + validity. The certificate must be valid. ICAC is signed by the + original key for trusted_root_original. Save as icac_update1" verification: | disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to noc_update1 - ICACValue is to set icac_update1" + "Step 7: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to + noc_update1 ICACValue is to set icac_update1" PICS: OPCREDS.S.C07.Rsp verification: | disabled: true - label: - "TH1 reads the NOCs attribute from the Node Operational Credentials - cluster using a fabric-filtered read" + "Step 8: TH1 reads the NOCs attribute from the Node Operational + Credentials cluster using a fabric-filtered read" verification: | disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 0" + "Step 9: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 0" verification: | disabled: true - label: - "TH1 reads the NOCs attribute from the Node Operational Credentials - cluster using a fabric-filtered read" + "Step 10: TH1 reads the NOCs attribute from the Node Operational + Credentials cluster using a fabric-filtered read" verification: | disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 900" + "Step 11: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 900" verification: | disabled: true - label: - "TH1 Sends CSRRequest command with the IsForUpdateNOC field set to - true" + "Step 12: TH1 Sends CSRRequest command with the IsForUpdateNOC field + set to true" PICS: OPCREDS.S.C04.Rsp verification: | disabled: true - label: - "TH1 generates a new NOC and ICAC with the following properties: new - NOC is generated from the NOCSR returned in csr_update2. The subject - is set to match noc_original. The NOC is signed by new ICA. Save as - noc_update2 new ICAC must be distinguishable from icac_original and - icac_update1. This can be accomplished by changing any of the - following: the subject, subject public key or validity. The - certificate must be valid. ICAC is signed by the original key for - trusted_root_original. Save as icac_update2" + "Step 13: TH1 generates a new NOC and ICAC with the following + properties: new NOC is generated from the NOCSR returned in + csr_update2. The subject is set to match noc_original. The NOC is + signed by new ICA. Save as noc_update2 new ICAC must be + distinguishable from icac_original and icac_update1. This can be + accomplished by changing any of the following: the subject, subject + public key or validity. The certificate must be valid. ICAC is signed + by the original key for trusted_root_original. Save as icac_update2" verification: | disabled: true - label: - "TH1 sends the UpdateNOC command to the Node Operational Credentials - cluster with the following fields: NOCValue is set to noc_update2 - ICACValue is to set icac_update2" + "Step 14: TH1 sends the UpdateNOC command to the Node Operational + Credentials cluster with the following fields: NOCValue is set to + noc_update2 ICACValue is to set icac_update2" PICS: OPCREDS.S.C07.Rsp verification: | disabled: true - label: - "TH1 reads the NOCs attribute from the Node Operational Credentials - cluster using a fabric-filtered read" + "Step 15: TH1 reads the NOCs attribute from the Node Operational + Credentials cluster using a fabric-filtered read" verification: | disabled: true - label: - "TH1 sends the CommissioningComplete command to the General + "Step 16: TH1 sends the CommissioningComplete command to the General Commissioning cluster" verification: | disabled: true - label: - "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds - field set to 0 to verify that the CommissioningComplete command - successfully persisted the failsafe context." + "Step 17: TH1 sends ArmFailSafe command to the DUT with the + ExpiryLengthSeconds field set to 0 to verify that the + CommissioningComplete command successfully persisted the failsafe + context." verification: | disabled: true - label: - "TH1 reads the NOCs attribute from the Node Operational Credentials - cluster using a fabric-filtered read" + "Step 18: TH1 reads the NOCs attribute from the Node Operational + Credentials cluster using a fabric-filtered read" verification: | disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_6.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_6.yaml index aa33ddeac8abed..d835f8305e630d 100644 --- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_6.yaml @@ -24,24 +24,26 @@ config: endpoint: 0 tests: - - label: "TH1 fully commissions the DUT" + - label: "Step 1: TH1 fully commissions the DUT" verification: | - "DUT side: + On DUT side: sudo ./chip-all-clusters-app --wifi - TH side: + On TH side: ./chip-tool pairing code 1 34970112332 --trace_decode 1 - + Verify the TH1 commissioning is success [1650455358.501816][4366:4371] CHIP:TOO: Device commissioning completed with success" disabled: true - label: - "TH1 sends RemoveFabric command with Fabric Index as FabricIndex_TH1 - to DUT" + "Step 2: TH1 sends RemoveFabric command with Fabric Index as + FabricIndex_TH1 to DUT" PICS: OPCREDS.S.C0a.Rsp verification: | ./chip-tool operationalcredentials remove-fabric 1 1 0 + On TH1(Chip-tool) in NOCResponse Verify the statuscode is success(0) + [1674780232627] [8807:372926] CHIP: [DMG] InvokeResponseMessage = [1674780232627] [8807:372926] CHIP: [DMG] { [1674780232627] [8807:372926] CHIP: [DMG] suppressResponse = false, @@ -89,8 +91,8 @@ tests: disabled: true - label: - "DUT shouldnt be discoverable via both commissionable and operational - advertisements" + "Step 3: DUT shouldnt be discoverable via both commissionable and + operational advertisements" PICS: "!MCORE.DD.EXTENDED_DISCOVERY" verification: | Verify DUT is not discoverable over DNS-SD in both TCP and UDP @@ -100,8 +102,8 @@ tests: disabled: true - label: - "DUT should be discoverable via commissionable service advertisements - but shall not be in the commissioning mode" + "Step 4: DUT should be discoverable via commissionable service + advertisements but shall not be in the commissioning mode" PICS: MCORE.DD.EXTENDED_DISCOVERY verification: | Verify that the DUT is discoverable over DNS-SD with service type _matterc._udp with no subtype _CM and text key for CM with value 0 @@ -109,8 +111,8 @@ tests: avahi-browse -rt _matterc._udp br-aa67f1f8401d IPv4 DC126952E0AC4BD5 _matterc._udp local - hostname = [E45F012EED550000.local] - address = [172.18.0.1] - port = [5540] - txt = ["PI=" "PH=33" "CM=0" "D=3840" "T=1" "DN=Test Bulb" "DT=257" "VP=65521+32769"] + hostname = [E45F012EED550000.local] + address = [172.18.0.1] + port = [5540] + txt = ["PI=" "PH=33" "CM=0" "D=3840" "T=1" "DN=Test Bulb" "DT=257" "VP=65521+32769"] disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OPSTATE_2_1.yaml b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_1.yaml new file mode 100644 index 00000000000000..576f0c51f504dc --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_1.yaml @@ -0,0 +1,155 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 202.2.1. [TC-OPSTATE-2.1] Attributes with DUT as Server + +PICS: + - OPSTATE.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the PhaseList attribute" + PICS: OPSTATE.S.A0000 + verification: | + ./chip-tool operationalstate read phase-list 1 1 + + Via the TH (chip-tool), verify: + - that PhaseList attribute value contains either null or a list of strings. + - that the list has no more than 32 entries. on TH(chip-tool) + + [1689673042.242432][16559:16561] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0000 DataVersion: 2102885775 + [1689673042.242467][16559:16561] CHIP:TOO: PhaseList: null + [1689673042.242534][16559:16561] CHIP:EM: <<< [E:48068i S:38311 M:143641441 (Ack:153463022)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689673042.242550][16559:16561] CHIP:IN: (S) Sending msg 143641441 on secure session with LSID: 38311 + [1689673042.242576][16559:16561] CHIP:EM: Flushed pending ack for MessageCounter:153463022 on exchange 48068i + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentPhase attribute" + PICS: OPSTATE.S.A0001 + verification: | + ./chip-tool operationalstate read current-phase 1 1 + + + Via the TH (chip-tool), verify: + - if the value from Step 1 was null, verify that this is also null. + - otherwise, verify that the CurrentPhase attribute value contains contains an integer between 0 and the size of the list from step 1 minus 1. + + [1689673092.833781][16569:16571] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0001 DataVersion: 2102885775 + [1689673092.833792][16569:16571] CHIP:TOO: CurrentPhase: null + [1689673092.833817][16569:16571] CHIP:EM: <<< [E:13231i S:9793 M:23831753 (Ack:197019464)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689673092.833821][16569:16571] CHIP:IN: (S) Sending msg 23831753 on secure session with LSID: 9793 + [1689673092.833830][16569:16571] CHIP:EM: Flushed pending ack for MessageCounter:197019464 on exchange 13231i + disabled: true + + - label: "Step 4: TH reads from the DUT the CountdownTime attribute" + PICS: OPSTATE.S.A0002 + verification: | + ./chip-tool operationalstate read countdown-time 1 1 + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 0 to 259200 + + [1689673127.371922][16577:16579] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0002 DataVersion: 2102885775 + [1689673127.371959][16577:16579] CHIP:TOO: CountdownTime: null + [1689673127.372043][16577:16579] CHIP:EM: <<< [E:30495i S:28535 M:52017774 (Ack:9447363)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689673127.372059][16577:16579] CHIP:IN: (S) Sending msg 52017774 on secure session with LSID: 28535 + [1689673127.372096][16577:16579] CHIP:EM: Flushed pending ack for MessageCounter:9447363 on exchange 30495i + [1689673127.372209][16577:16577] CHIP:CTL: Shutting down the commissioner + [1689673127.372229][16577:16577] CHIP:CTL: Stopping commissioning discovery over DNS-SD + disabled: true + + - label: "Step 5: TH reads from the DUT the OperationalStateList attribute" + PICS: OPSTATE.S.A0003 + verification: | + ./chip-tool operationalstate read operational-state-list 1 1 + + Via the TH (chip-tool), verify: + - the provided list contains the Error state (an entry with an ID of 0x03). + - all entries include an ID (enum8) and a label (string) + - all provided IDs are in the allowed range + + [1689673161.214277][16581:16583] CHIP:DMG: } + [1689673161.214405][16581:16583] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0003 DataVersion: 2102885775 + [1689673161.214450][16581:16583] CHIP:TOO: OperationalStateList: 4 entries + [1689673161.214465][16581:16583] CHIP:TOO: [1]: { + [1689673161.214479][16581:16583] CHIP:TOO: OperationalStateID: 0 + [1689673161.214486][16581:16583] CHIP:TOO: } + [1689673161.214495][16581:16583] CHIP:TOO: [2]: { + [1689673161.214500][16581:16583] CHIP:TOO: OperationalStateID: 1 + [1689673161.214506][16581:16583] CHIP:TOO: } + [1689673161.214513][16581:16583] CHIP:TOO: [3]: { + [1689673161.214519][16581:16583] CHIP:TOO: OperationalStateID: 2 + [1689673161.214524][16581:16583] CHIP:TOO: } + [1689673161.214532][16581:16583] CHIP:TOO: [4]: { + [1689673161.214537][16581:16583] CHIP:TOO: OperationalStateID: 3 + [1689673161.214543][16581:16583] CHIP:TOO: } + [1689673161.214602][16581:16583] CHIP:EM: <<< [E:25860i S:31003 M:109977752 (Ack:203100043)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689673161.214616][16581:16583] CHIP:IN: (S) Sending msg 109977752 on secure session with LSID: 31003 + [1689673161.214642][16581:16583] CHIP:EM: Flushed pending ack for MessageCounter:203100043 on exchange 25860i + disabled: true + + - label: "Step 6: TH reads from the DUT the OperationalState attribute" + PICS: OPSTATE.S.A0004 + verification: | + ./chip-tool operationalstate read operational-state 1 1 + + Via the TH (chip-tool), verify: + - the response includes an ID (enum8) amd a label (string) + - the provided ID is found in the set provided in step 4 + - the provided ID is in the allowed range + + [1689673213.434610][16591:16593] CHIP:DMG: } + [1689673213.434686][16591:16593] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0004 DataVersion: 2102885775 + [1689673213.434721][16591:16593] CHIP:TOO: OperationalState: { + [1689673213.434728][16591:16593] CHIP:TOO: OperationalStateID: 0 + [1689673213.434735][16591:16593] CHIP:TOO: } + [1689673213.434799][16591:16593] CHIP:EM: <<< [E:57905i S:36558 M:162792358 (Ack:245583777)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689673213.434812][16591:16593] CHIP:IN: (S) Sending msg 162792358 on secure session with LSID: 36558 + [1689673213.434839][16591:16593] CHIP:EM: Flushed pending ack for MessageCounter:245583777 on exchange 57905i + [1689673213.434993][16591:16591] CHIP:CTL: Shutting down the commissioner + disabled: true + + - label: "Step 7: TH reads from the DUT the OperationalError attribute" + PICS: OPSTATE.S.A0005 + verification: | + ./chip-tool operationalstate read operationalerror 1 1 + + Via the TH (chip-tool), verify: + - the response includes an ID (enum8), a label (string), and additional details (string) + - if the label is null, verify the additional details is also null + - the provided ID is in the allowed range + + + [1689673270.214241][16602:16604] CHIP:DMG: } + [1689673270.214318][16602:16604] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0005 DataVersion: 2102885775 + [1689673270.214346][16602:16604] CHIP:TOO: OperationalError: { + [1689673270.214362][16602:16604] CHIP:TOO: ErrorStateID: 0 + [1689673270.214369][16602:16604] CHIP:TOO: } + [1689673270.214427][16602:16604] CHIP:EM: <<< [E:28848i S:14033 M:90223554 (Ack:193224404)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689673270.214439][16602:16604] CHIP:IN: (S) Sending msg 90223554 on secure session with LSID: 14033 + [1689673270.214465][16602:16604] CHIP:EM: Flushed pending ack for MessageCounter:193224404 on exchange 28848i + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OPSTATE_2_2.yaml b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_2.yaml new file mode 100644 index 00000000000000..0eec0cd3ec0763 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_2.yaml @@ -0,0 +1,327 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 202.2.2. [TC-OPSTATE-2.2] Start and Stop commands with DUT as Server + +PICS: + - OPSTATE.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" + verification: | + OPSTATE.S.C01 && OPSTATE.S.C02 + disabled: true + + - label: + "Step 2: Manually put the DUT into a state wherein it can receive a + Start Command" + verification: | + + disabled: true + + - label: "Step 3: TH reads from the DUT the OperationalStateList attribute" + PICS: OPSTATE.S.A0003 + verification: | + ./chip-tool operationalstate read operational-state-list 1 1 + + Via the TH (chip-tool), verify: + - all entries include an ID (enum8) and a label (string) + - all provided IDs are in the allowed range + - the list includes IDs for Error (0x03), Running (0x01), and Stopped (0x00) + + [1689674049.504261][17222:17224] CHIP:DMG: } + [1689674049.504390][17222:17224] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0003 DataVersion: 2102885775 + [1689674049.504440][17222:17224] CHIP:TOO: OperationalStateList: 4 entries + [1689674049.504462][17222:17224] CHIP:TOO: [1]: { + [1689674049.504469][17222:17224] CHIP:TOO: OperationalStateID: 0 + [1689674049.504476][17222:17224] CHIP:TOO: } + [1689674049.504484][17222:17224] CHIP:TOO: [2]: { + [1689674049.504490][17222:17224] CHIP:TOO: OperationalStateID: 1 + [1689674049.504495][17222:17224] CHIP:TOO: } + [1689674049.504503][17222:17224] CHIP:TOO: [3]: { + [1689674049.504508][17222:17224] CHIP:TOO: OperationalStateID: 2 + [1689674049.504514][17222:17224] CHIP:TOO: } + [1689674049.504521][17222:17224] CHIP:TOO: [4]: { + [1689674049.504527][17222:17224] CHIP:TOO: OperationalStateID: 3 + [1689674049.504533][17222:17224] CHIP:TOO: } + [1689674049.504605][17222:17224] CHIP:EM: <<< [E:22830i S:37151 M:4250114 (Ack:140781365)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674049.504620][17222:17224] CHIP:IN: (S) Sending msg 4250114 on secure session with LSID: 37151 + disabled: true + + - label: "Step 4: TH sends Start command to the DUT" + PICS: OPSTATE.S.C02.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate start 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + + [1689674139.018639][17233:17235] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0060 Command=0x0000_0004 + [1689674139.018658][17233:17235] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Command 0x0000_0004 + [1689674139.018704][17233:17235] CHIP:TOO: OperationalCommandResponse: { + [1689674139.018712][17233:17235] CHIP:TOO: commandResponseState: { + [1689674139.018719][17233:17235] CHIP:TOO: ErrorStateID: 0 + [1689674139.018726][17233:17235] CHIP:TOO: } + [1689674139.018732][17233:17235] CHIP:TOO: } + [1689674139.018755][17233:17235] CHIP:DMG: ICR moving to [AwaitingDe] + [1689674139.018818][17233:17235] CHIP:EM: <<< [E:26021i S:33879 M:235550100 (Ack:58905970)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674139.018837][17233:17235] CHIP:IN: (S) Sending msg 235550100 on secure session with LSID: 33879 + [1689674139.018885][17233:17235] CHIP:EM: Flushed pending ack for MessageCounter:58905970 on exchange 26021i + disabled: true + + - label: "Step 5: TH reads from the DUT the OperationalState attribute" + PICS: OPSTATE.S.A0004 + verification: | + ./chip-tool operationalstate read operational-state 1 1 + + Via the TH (chip-tool), verify: + - the response has an OperationalStateID field that is set to 0x01 (Running) + + [1689674196.878722][17249:17251] CHIP:DMG: InteractionModelRevision = 1 + [1689674196.878727][17249:17251] CHIP:DMG: } + [1689674196.878800][17249:17251] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0004 DataVersion: 2102885775 + [1689674196.878834][17249:17251] CHIP:TOO: OperationalState: { + [1689674196.878841][17249:17251] CHIP:TOO: OperationalStateID: 1 + [1689674196.878847][17249:17251] CHIP:TOO: } + [1689674196.878914][17249:17251] CHIP:EM: <<< [E:56939i S:28614 M:63040141 (Ack:57012545)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674196.878928][17249:17251] CHIP:IN: (S) Sending msg 63040141 on secure session with LSID: 28614 + disabled: true + + - label: "Step 6: TH reads from the DUT the OperationalError attribute" + PICS: OPSTATE.S.A0005 + verification: | + ./chip-tool operationalstate read operational-error 1 1 + + Via the TH (chip-tool), verify: + - the response contains the ErrorStateId set to NoError(0x00) + + [1689674342.832448][17274:17276] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0005 DataVersion: 2102885775 + [1689674342.832482][17274:17276] CHIP:TOO: OperationalError: { + [1689674342.832500][17274:17276] CHIP:TOO: ErrorStateID: 0 + [1689674342.832509][17274:17276] CHIP:TOO: } + [1689674342.832570][17274:17276] CHIP:EM: <<< [E:37158i S:10451 M:72875113 (Ack:195983315)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674342.832585][17274:17276] CHIP:IN: (S) Sending msg 72875113 on secure session with LSID: 10451 + [1689674342.832614][17274:17276] CHIP:EM: Flushed pending ack for MessageCounter:195983315 on exchange 37158i + disabled: true + + - label: "Step 7: TH reads from the DUT the CountdownTime attribute" + PICS: OPSTATE.S.A0002 + verification: | + ./chip-tool operationalstate read countdown-time 1 1 + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 1 to 259200 + - store the value in 'initialcountdown-time' + + [1689674384.271623][17278:17280] CHIP:DMG: InteractionModelRevision = 1 + [1689674384.271625][17278:17280] CHIP:DMG: } + [1689674384.271649][17278:17280] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0002 DataVersion: 2102885775 + [1689674384.271662][17278:17280] CHIP:TOO: CountdownTime: null + [1689674384.271683][17278:17280] CHIP:EM: <<< [E:24665i S:47371 M:757241 (Ack:152992659)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674384.271687][17278:17280] CHIP:IN: (S) Sending msg 757241 on secure session with LSID: 47371 + [1689674384.271696][17278:17280] CHIP:EM: Flushed pending ack for MessageCounter:152992659 on exchange 24665i + disabled: true + + - label: "Step 8: TH reads from the DUT the PhaseList attribute" + PICS: OPSTATE.S.A0000 + verification: | + ./chip-tool operationalstate read phase-list 1 1 + + Via the TH (chip-tool), verify: + - that PhaseList attribute value contains either null or a list of strings. + + If not null, receord the number of entries in the list as 'phase-list-size'; execute step 7. + If null, go to step 8. + + [1689674447.761859][17290:17292] CHIP:DMG: InteractionModelRevision = 1 + [1689674447.761865][17290:17292] CHIP:DMG: } + [1689674447.761938][17290:17292] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0000 DataVersion: 2102885775 + [1689674447.761972][17290:17292] CHIP:TOO: PhaseList: null + [1689674447.762041][17290:17292] CHIP:EM: <<< [E:58737i S:13847 M:251354926 (Ack:137738036)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674447.762055][17290:17292] CHIP:IN: (S) Sending msg 251354926 on secure session with LSID: 13847 + [1689674447.762109][17290:17292] CHIP:EM: Flushed pending ack for MessageCounter:137738036 on exchange 58737i + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentPhase attribute" + PICS: OPSTATE.S.A0001 + verification: | + ./chip-tool operationalstate read current-phase 1 1 + + Via the TH (chip-tool), verify: + - that the CurrentPhase attribute value contains contains a uint8 value + - that the value is between 0 and 'phase-list-size - 1'. + + [1689674497.950563][17299:17301] CHIP:DMG: } + [1689674497.950635][17299:17301] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0001 DataVersion: 2102885775 + [1689674497.950664][17299:17301] CHIP:TOO: CurrentPhase: null + [1689674497.950737][17299:17301] CHIP:EM: <<< [E:64019i S:52010 M:245677798 (Ack:138696372)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674497.950752][17299:17301] CHIP:IN: (S) Sending msg 245677798 on secure session with LSID: 52010 + [1689674497.950798][17299:17301] CHIP:EM: Flushed pending ack for MessageCounter:138696372 on exchange 64019i + [1689674497.950899][17299:17299] CHIP:CTL: Shutting down the commissioner + disabled: true + + - label: + "Step 10: TH waits for a vendor defined wait time, this being a period + of time less than the expected duration of the operation that has been + started" + verification: | + + disabled: true + + - label: "Step 11: TH reads from the DUT the CountdownTime attribute" + PICS: OPSTATE.S.A0002 + verification: | + ./chip-tool operationalstate read countdown-time 1 1 + + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 1 to 259200 + - that the value is approximately 'initialcountdown-time minus the vendor defined wait time' + + + [1689674623.673661][17320:17322] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0002 DataVersion: 2102885775 + [1689674623.673697][17320:17322] CHIP:TOO: CountdownTime: null + [1689674623.673755][17320:17322] CHIP:EM: <<< [E:42152i S:37580 M:19654175 (Ack:176515710)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674623.673768][17320:17322] CHIP:IN: (S) Sending msg 19654175 on secure session with LSID: 37580 + [1689674623.673795][17320:17322] CHIP:EM: Flushed pending ack for MessageCounter:176515710 on exchange 42152i + disabled: true + + - label: "Step 12: TH sends Start command to the DUT" + PICS: OPSTATE.S.C02.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate start 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + + [1689674637.555734][17326:17328] CHIP:DMG: + [1689674637.555742][17326:17328] CHIP:DMG: InteractionModelRevision = 1 + [1689674637.555751][17326:17328] CHIP:DMG: }, + [1689674637.555784][17326:17328] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0060 Command=0x0000_0004 + [1689674637.555805][17326:17328] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Command 0x0000_0004 + [1689674637.555853][17326:17328] CHIP:TOO: OperationalCommandResponse: { + [1689674637.555862][17326:17328] CHIP:TOO: commandResponseState: { + [1689674637.555872][17326:17328] CHIP:TOO: ErrorStateID: 0 + [1689674637.555883][17326:17328] CHIP:TOO: } + [1689674637.555891][17326:17328] CHIP:TOO: } + [1689674637.555913][17326:17328] CHIP:DMG: ICR moving to [AwaitingDe] + [1689674637.555956][17326:17328] CHIP:EM: <<< [E:28742i S:49023 M:139320570 (Ack:91983883)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674637.555971][17326:17328] CHIP:IN: (S) Sending msg 139320570 on secure session with LSID: 49023 + [1689674637.556001][17326:17328] CHIP:EM: Flushed pending ack for MessageCounter:91983883 on exchange 28742i + disabled: true + + - label: "Step 13: TH sends Stop command to the DUT" + PICS: OPSTATE.S.C01.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate stop 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + + [1689674653.322963][17330:17332] CHIP:DMG: }, + [1689674653.322994][17330:17332] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0060 Command=0x0000_0004 + [1689674653.323014][17330:17332] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Command 0x0000_0004 + [1689674653.323058][17330:17332] CHIP:TOO: OperationalCommandResponse: { + [1689674653.323066][17330:17332] CHIP:TOO: commandResponseState: { + [1689674653.323076][17330:17332] CHIP:TOO: ErrorStateID: 0 + [1689674653.323085][17330:17332] CHIP:TOO: } + [1689674653.323094][17330:17332] CHIP:TOO: } + [1689674653.323113][17330:17332] CHIP:DMG: ICR moving to [AwaitingDe] + [1689674653.323154][17330:17332] CHIP:EM: <<< [E:62878i S:64455 M:173921517 (Ack:216732582)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674653.323168][17330:17332] CHIP:IN: (S) Sending msg 173921517 on secure session with LSID: 64455 + [1689674653.323195][17330:17332] CHIP:EM: Flushed pending ack for MessageCounter:216732582 on exchange 62878i + [1689674653.323284][17330:17330] CHIP:CTL: Shutting down the commissioner + disabled: true + + - label: "Step 14: TH reads from the DUT the OperationalState attribute" + PICS: OPSTATE.S.A0004 + verification: | + ./chip-tool operationalstate read operational-state 1 1 + + Via the TH (chip-tool), verify: + - the response has an OperationalStateID field that is set to 0x00 (Stopped) + + [1689674675.459656][17333:17335] CHIP:DMG: } + [1689674675.459738][17333:17335] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Attribute 0x0000_0004 DataVersion: 2102885775 + [1689674675.459772][17333:17335] CHIP:TOO: OperationalState: { + [1689674675.459790][17333:17335] CHIP:TOO: OperationalStateID: 0 + [1689674675.459799][17333:17335] CHIP:TOO: } + [1689674675.459869][17333:17335] CHIP:EM: <<< [E:17771i S:16165 M:1572532 (Ack:102448631)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674675.459886][17333:17335] CHIP:IN: (S) Sending msg 1572532 on secure session with LSID: 16165 + [1689674675.459930][17333:17335] CHIP:EM: Flushed pending ack for MessageCounter:102448631 on exchange 17771i + disabled: true + + - label: "Step 15: TH sends Stop command to the DUT" + PICS: OPSTATE.S.C01.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate stop 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + + [1689674689.588712][17337:17339] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0060 Command=0x0000_0004 + [1689674689.588722][17337:17339] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Command 0x0000_0004 + [1689674689.588745][17337:17339] CHIP:TOO: OperationalCommandResponse: { + [1689674689.588749][17337:17339] CHIP:TOO: commandResponseState: { + [1689674689.588757][17337:17339] CHIP:TOO: ErrorStateID: 0 + [1689674689.588762][17337:17339] CHIP:TOO: } + [1689674689.588765][17337:17339] CHIP:TOO: } + [1689674689.588775][17337:17339] CHIP:DMG: ICR moving to [AwaitingDe] + [1689674689.588802][17337:17339] CHIP:EM: <<< [E:63921i S:35027 M:16881995 (Ack:220265764)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674689.588810][17337:17339] CHIP:IN: (S) Sending msg 16881995 on secure session with LSID: 35027 + disabled: true + + - label: + "Step 16: Manually put the DUT into a state wherein it cannot receive + a Start Command" + verification: | + + disabled: true + + - label: "Step 17: TH sends Start command to the DUT" + PICS: OPSTATE.S.C02.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate start 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x01 (UnableToStartOrResume) + + [1689674700.385183][17340:17342] CHIP:DMG: }, + [1689674700.385214][17340:17342] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0060 Command=0x0000_0004 + [1689674700.385233][17340:17342] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0060 Command 0x0000_0004 + [1689674700.385266][17340:17342] CHIP:TOO: OperationalCommandResponse: { + [1689674700.385274][17340:17342] CHIP:TOO: commandResponseState: { + [1689674700.385281][17340:17342] CHIP:TOO: ErrorStateID: 0 + [1689674700.385289][17340:17342] CHIP:TOO: } + [1689674700.385295][17340:17342] CHIP:TOO: } + [1689674700.385311][17340:17342] CHIP:DMG: ICR moving to [AwaitingDe] + [1689674700.385361][17340:17342] CHIP:EM: <<< [E:55029i S:46795 M:80501191 (Ack:176711722)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689674700.385375][17340:17342] CHIP:IN: (S) Sending msg 80501191 on secure session with LSID: 46795 + [1689674700.385419][17340:17342] CHIP:EM: Flushed pending ack for MessageCounter:176711722 on exchange 55029i + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OPSTATE_2_3.yaml b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_3.yaml new file mode 100644 index 00000000000000..a4fd1a62876684 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_3.yaml @@ -0,0 +1,169 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 202.2.3. [TC-OPSTATE-2.3] Pause and Resume commands with DUT as Server + +PICS: + - OPSTATE.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" + verification: | + OPSTATE.S.C00 && OPSTATE.S.C03 + disabled: true + + - label: + "Step 2: Manually put the DUT into a state wherein it can receive a + Pause Command" + verification: | + + disabled: true + + - label: "Step 3: TH reads from the DUT the OperationalStateList attribute" + PICS: OPSTATE.S.A0003 + verification: | + ./chip-tool operationalstate read operationalstatelist 1 1 + + Via the TH (chip-tool), verify: + - all entries include an ID (enum8) and a label (string) + - all provided IDs are in the allowed range + - the list includes IDs for Error (0x03), Running (0x01), and Paused (0x02) + disabled: true + + - label: "Step 4: TH sends Pause command to the DUT" + PICS: OPSTATE.S.C00.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate pause 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 5: TH reads from the DUT the OperationalState attribute" + PICS: OPSTATE.S.A0004 + verification: | + ./chip-tool operationalstate read operationalstate 1 1 + + Via the TH (chip-tool), verify: + - the response has an OperationalStateID field that is set to 0x02 (Paused) + disabled: true + + - label: "Step 6: TH reads from the DUT the CountdownTime attribute" + PICS: OPSTATE.S.A0002 + verification: | + ./chip-tool operationalstate read countdowntime 1 1 + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 1 to 259200 + - store the value in 'initialcountdown-time' + disabled: true + + - label: "Step 7: TH waits for 5 seconds" + verification: | + + disabled: true + + - label: "Step 8: TH reads from the DUT the CountdownTime attribute" + PICS: OPSTATE.S.A0002 + verification: | + ./chip-tool operationalstate read operationalerror 1 1 + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 1 to 259200 + - that the value is the same as 'initialcountdown-time' + disabled: true + + - label: "Step 9: TH sends Pause command to the DUT" + PICS: OPSTATE.S.C00.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate pause 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 10: TH sends Resume command to the DUT" + PICS: OPSTATE.S.C03.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate resume 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 11: TH reads from the DUT the OperationalState attribute" + PICS: OPSTATE.S.A0004 + verification: | + ./chip-tool operationalstate read operationalstate 1 1 + + Via the TH (chip-tool), verify: + - the response has an OperationalStateID field that is set to 0x01 (Running) + disabled: true + + - label: "Step 12: TH sends Resume command to the DUT" + PICS: OPSTATE.S.C03.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate resume 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: + "Step 13: Manually put the DUT into a state wherein it cannot receive + a Pause command (e.g. Stopped state)" + verification: | + + disabled: true + + - label: "Step 14: TH sends Pause command to the DUT" + PICS: OPSTATE.S.C00.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate pause 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x03 (CommandInvalidInState) + disabled: true + + - label: + "Step 15: Manually put the DUT into a state wherein it cannot receive + a Resume command (e.g. Stopped state)" + verification: | + + disabled: true + + - label: "Step 16: TH sends Resume command to the DUT" + PICS: OPSTATE.S.C03.Rsp && OPSTATE.S.C04.Tx + verification: | + ./chip-tool operationalstate resume 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x03 (CommandInvalidInState) + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_OPSTATE_2_4.yaml b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_4.yaml new file mode 100644 index 00000000000000..039d0bfbf8556b --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_OPSTATE_2_4.yaml @@ -0,0 +1,54 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 202.2.4. [TC-OPSTATE-2.4] Mandatory Events with DUT as Server + +PICS: + - OPSTATE.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2: Set up a subscription to the OperationalError event" + PICS: OPSTATE.S.E00 + verification: | + + disabled: true + + - label: + "Step 3: At the DUT take the vendor defined action to generate an + OperationalError event" + PICS: OPSTATE.S.E00 + verification: | + Receive an Notify event containing an ErrorState struct populated as follows: + An ErrorStateID that shall contain an enum 8. Verify the ErrorStateID is a defined error (NoError(0x00), UnableToStartOrResume(0x01), UnableToCompleteOperation(0x02), CommandInvalidInState(0x03)) or in the range 0x8000 to 0xBFFF. + If the ErrorStateID is in the range 0x8000 to 0xBFFF, then an ErrorStateLabel that is a human readable string. + If the ErrorStateId is not in the range 0x8000 to 0xBFFF then no ErrorStateLabel shall be present. + Optionally an ErrorStateDetails. If present, this shall be a human readable string. + disabled: true + + - label: "Step 4: TH reads from the DUT the OperationalState attribute" + PICS: OPSTATE.S.A0004 + verification: | + Verify that the DUT response contains an enum8 set to Error(0x03). + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_PCC_2_3.yaml b/src/app/tests/suites/certification/Test_TC_PCC_2_3.yaml index 4f3c3ae9d14165..39ba327c08bc31 100644 --- a/src/app/tests/suites/certification/Test_TC_PCC_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_PCC_2_3.yaml @@ -31,98 +31,118 @@ tests: - name: "nodeId" value: nodeId - - label: "Step 2a: Write 0 to the OperationMode attribute to DUT" + - label: + "Step 2a: TH write 0 (Normal) to the OperationMode attribute to DUT." command: "writeAttribute" attribute: "OperationMode" PICS: PCC.S.A0020 arguments: value: 0 - - label: "Step 2b: Reads the attribute: EffectiveOperationMode" + - label: + "Step 2b: TH reads from the DUT the EffectiveOperationMode attribute" command: "readAttribute" attribute: "EffectiveOperationMode" PICS: PCC.S.A0011 response: value: 0 - - label: "Step 3a: Write 0 to the ControlMode attribute to DUT" + - label: + "Step 3a: TH write 0 (ConstantSpeed) to the ControlMode attribute to + DUT one at a time." command: "writeAttribute" attribute: "ControlMode" PICS: PCC.S.F03 && PCC.S.A0021 arguments: value: 0 - - label: "Step 3b: Reads the attribute: EffectiveControlMode" + - label: + "Step 3b: TH reads from the DUT the EffectiveControlMode attribute." command: "readAttribute" attribute: "EffectiveControlMode" PICS: PCC.S.F03 && PCC.S.A0012 response: value: 0 - - label: "Step 4a: Write 1 to the ControlMode attribute to DUT" + - label: + "Step 4a: TH write 1 (ConstantPressure) to the ControlMode attribute + to DUT one at a time." command: "writeAttribute" attribute: "ControlMode" PICS: PCC.S.F00 && PCC.S.A0021 arguments: value: 1 - - label: "Step 4b: Reads the attribute: EffectiveControlMode" + - label: + "Step 4b: TH reads from the DUT the EffectiveControlMode attribute." command: "readAttribute" attribute: "EffectiveControlMode" PICS: PCC.S.F00 && PCC.S.A0012 response: value: 1 - - label: "Step 5a: Write 2 to the ControlMode attribute to DUT" + - label: + "Step 5a: TH write 2 (ProportionalPressure) to the ControlMode + attribute to DUT one at a time." command: "writeAttribute" attribute: "ControlMode" PICS: PCC.S.F01 && PCC.S.A0021 arguments: value: 2 - - label: "Step 5b: Reads the attribute: EffectiveControlMode" + - label: + "Step 5b: TH reads from the DUT the EffectiveControlMode attribute." command: "readAttribute" attribute: "EffectiveControlMode" PICS: PCC.S.F01 && PCC.S.A0012 response: value: 2 - - label: "Step 6a: Write 3 to the ControlMode attribute to DUT" + - label: + "Step 6a: TH write 3 (ConstantFlow) to the ControlMode attribute to + DUT one at a time." command: "writeAttribute" attribute: "ControlMode" PICS: PCC.S.F02 && PCC.S.A0021 arguments: value: 3 - - label: "Step 6b: Reads the attribute: EffectiveControlMode" + - label: + "Step 6b: TH reads from the DUT the _EffectiveControlMode attribute." command: "readAttribute" attribute: "EffectiveControlMode" PICS: PCC.S.F02 && PCC.S.A0012 response: value: 3 - - label: "Step 7a: Write 5 to the ControlMode attribute to DUT" + - label: + "Step 7a: TH write 5 (ConstantTemperature) to the ControlMode + attribute to DUT one at a time." command: "writeAttribute" attribute: "ControlMode" PICS: PCC.S.F04 && PCC.S.A0021 arguments: value: 5 - - label: "Step 7b: Reads the attribute: EffectiveControlMode" + - label: + "Step 7b: TH reads from the DUT the EffectiveControlMode attribute." command: "readAttribute" attribute: "EffectiveControlMode" PICS: PCC.S.F04 && PCC.S.A0012 response: value: 5 - - label: "Step 8a: Write 7 to the ControlMode attribute to DUT" + - label: + "Step 8a: TH write 7 (Automatic) to the ControlMode attribute to DUT + one at a time." command: "writeAttribute" attribute: "ControlMode" PICS: PCC.S.F05 && PCC.S.A0021 arguments: value: 7 - - label: "Step 8b: Reads the attribute: EffectiveControlMode" + - label: + "Step 8b: TH reads from the DUT the EffectiveControlMode attribute." command: "readAttribute" attribute: "EffectiveControlMode" PICS: PCC.S.F05 && PCC.S.A0012 diff --git a/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml b/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml index 9c89a92ef08ba4..eeee2b4991d54c 100644 --- a/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml @@ -29,50 +29,74 @@ tests: This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command disabled: true - - label: "Commission DUT to TH" + - label: "Step 1: Commission DUT to TH" verification: | disabled: true - - label: "TH reads the Sources attribute from the DUT" + - label: "Step 2: TH reads the Sources attribute from the DUT" PICS: PSCFG.S.A0000 verification: | ./chip-tool powersourceconfiguration read sources 1 0 - verify that source attribute provides a list has not more than 6 entries and Each list entry is unique, valid endpoint on TH(chip-tool) log: - - [...] - CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002E Attribute 0x0000_0000DataVersion: 502821112 - CHIP:TOO: Sources: 3 entries - CHIP:TOO: [1]: 2 - CHIP:TOO: [2]: 1 - CHIP:TOO: [3]: 0 + verify that source attribute provides a list. The list has not more than 6 entries. Each entry in this list is a valid endpoint number. + Each list entry is unique and there are no duplicates. on TH(chip-tool) log: + Below is the example log which is observed in the RPI platform the value may be differ based on the dut implementation. + + [1686219805.562367][91291:91293] CHIP:DMG: } + [1686219805.562469][91291:91293] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002E Attribute 0x0000_0000 DataVersion: 272662560 + [1686219805.562514][91291:91293] CHIP:TOO: Sources: 3 entries + [1686219805.562532][91291:91293] CHIP:TOO: [1]: 2 + [1686219805.562539][91291:91293] CHIP:TOO: [2]: 1 + [1686219805.562545][91291:91293] CHIP:TOO: [3]: 0 + [1686219805.562596][91291:91293] CHIP:EM: <<< [E:30046i S:19475 M:182449019 (Ack:91024710)] (S) Msg TX to 1:0000000000000001 [6D93] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686219805.562609][91291:91293] CHIP:IN: (S) Sending msg 182449019 on secure session with LSID: 19475 + [1686219805.562637][91291:91293] CHIP:EM: Flushed pending ack for MessageCounter:91024710 on exchange 30046i disabled: true - label: - "TH reads the Order attribute from Power Source Cluster at + "Step 3a: TH reads the Order attribute from Power Source Cluster at Endpoint[eNr] of the DUT" verification: | ./chip-tool powersource read order 1 2 verify that order attribute succeeds with no error.The order value is the same or greater than the order value of the previous iteration on TH(chip-tool) log: + Below is the example log which is observed in the RPI platform the value may be differ based on the dut implementation. + + [1686219827.164815][91294:91296] CHIP:DMG: InteractionModelRevision = 1 + [1686219827.164821][91294:91296] CHIP:DMG: } + [1686219827.164892][91294:91296] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 2160895838 + [1686219827.164931][91294:91296] CHIP:TOO: Order: 1 + [1686219827.164982][91294:91296] CHIP:EM: <<< [E:29044i S:64686 M:59474258 (Ack:139097391)] (S) Msg TX to 1:0000000000000001 [6D93] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686219827.164994][91294:91296] CHIP:IN: (S) Sending msg 59474258 on secure session with LSID: 64686 + [1686219827.165022][91294:91296] CHIP:EM: Flushed pending ack for MessageCounter:139097391 on exchange 29044i - [1659879820.566144][2615:2620] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 1842182672 - [1659879820.569572][2615:2620] CHIP:TOO: Order: 1 ./chip-tool powersource read order 1 1 verify that order attribute succeeds with no error.The order value is the same or greater than the order value of the previous iteration on TH(chip-tool) log: + Below is the example log which is observed in the RPI platform the value may be differ based on the dut implementation. + + [1686219840.688775][91298:91300] CHIP:DMG: SuppressResponse = true, + [1686219840.688780][91298:91300] CHIP:DMG: InteractionModelRevision = 1 + [1686219840.688785][91298:91300] CHIP:DMG: } + [1686219840.688851][91298:91300] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 4007458595 + [1686219840.688873][91298:91300] CHIP:TOO: Order: 2 + [1686219840.688926][91298:91300] CHIP:EM: <<< [E:54321i S:51057 M:220237798 (Ack:216548812)] (S) Msg TX to 1:0000000000000001 [6D93] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686219840.688937][91298:91300] CHIP:IN: (S) Sending msg 220237798 on secure session with LSID: 51057 + [1686219840.688962][91298:91300] CHIP:EM: Flushed pending ack for MessageCounter:216548812 on exchange 54321i + [1686219840.689057][91298:91298] CHIP:CTL: Shutting down the commissioner - [...] - [1653564242.694964][36231:36236] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 4212858705 - [1653564242.695038][36231:36236] CHIP:TOO: Order: 2 ./chip-tool powersource read order 1 0 verify that order attribute succeeds with no error.The order value is the same or greater than the order value of the previous iteration on TH(chip-tool) log: + Below is the example log which is observed in the RPI platform the value may be differ based on the dut implementation. - [1659879944.863570][2633:2638] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 1479870496 - [1659879944.863664][2633:2638] CHIP:TOO: Order: 3 + [1686219853.940142][91302:91304] CHIP:DMG: } + [1686219853.940215][91302:91304] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 336265014 + [1686219853.940248][91302:91304] CHIP:TOO: Order: 3 + [1686219853.940312][91302:91304] CHIP:EM: <<< [E:50949i S:33475 M:232313504 (Ack:30099776)] (S) Msg TX to 1:0000000000000001 [6D93] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1686219853.940324][91302:91304] CHIP:IN: (S) Sending msg 232313504 on secure session with LSID: 33475 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_PS_2_1.yaml b/src/app/tests/suites/certification/Test_TC_PS_2_1.yaml index 91d904a6e9ab06..bbb1476278d079 100644 --- a/src/app/tests/suites/certification/Test_TC_PS_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PS_2_1.yaml @@ -362,7 +362,7 @@ tests: type: list maxLength: 16 - - label: "Test Harness Client reads EndpointList from Server DUT" + - label: "Step 33: Test Harness Client reads EndpointList from Server DUT" PICS: PS.S.A001f command: "readAttribute" attribute: "EndpointList" diff --git a/src/app/tests/suites/certification/Test_TC_PS_2_2.yaml b/src/app/tests/suites/certification/Test_TC_PS_2_2.yaml index 38ba9412865cd7..06681fa416abd7 100644 --- a/src/app/tests/suites/certification/Test_TC_PS_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_PS_2_2.yaml @@ -29,18 +29,18 @@ tests: This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command disabled: true - - label: "Commission DUT to TH" + - label: "Step 1: Commission DUT to TH" verification: | disabled: true - - label: "Bring the DUT into a state without any wired faults." + - label: "Step 2a: Bring the DUT into a state without any wired faults." PICS: PS.S.A000a verification: | disabled: true - - label: "TH reads the ActiveWiredFaults attribute from the DUT" + - label: "Step 2b: TH reads the ActiveWiredFaults attribute from the DUT" verification: | Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE @@ -50,7 +50,7 @@ tests: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true - - label: "Set up subscription to WiredFaultChange event" + - label: "Step 3a: Set up subscription to WiredFaultChange event" PICS: PS.S.E00 && PS.M.ManualWiredFault verification: | Please use Interactive mode to Verify subscription test step @@ -92,12 +92,12 @@ tests: [1678874350.533271][348369:348369] CHIP:IM: Received status response, status is 0x00 (SUCCESS) disabled: true - - label: "Bring the DUT into a wired fault state." + - label: "Step 3b: Bring the DUT into a wired fault state." verification: | DUT ACTION REQUIRED disabled: true - - label: "TH reads the ActiveWiredFaults attribute from the DUT" + - label: "Step 4: TH reads the ActiveWiredFaults attribute from the DUT" PICS: PS.S.A000a && PS.M.ManualWiredFault verification: | Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE @@ -109,19 +109,19 @@ tests: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true - - label: "Bring the DUT back into a clean state." + - label: "Step 6: Bring the DUT back into a clean state." PICS: PS.S.E00 && PS.M.ManualWiredFault verification: | DUT ACTION REQUIRED disabled: true - - label: "Bring the DUT into a state without any battery faults." + - label: "Step 7a: Bring the DUT into a state without any battery faults." PICS: PS.S.A0012 verification: | disabled: true - - label: "TH reads the ActiveBatFaults attribute from the DUT" + - label: "Step 7b: TH reads the ActiveBatFaults attribute from the DUT" verification: | Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE @@ -132,14 +132,14 @@ tests: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true - - label: "Set up subscription to BatFaultChange event" + - label: "Step 8a: Set up subscription to BatFaultChange event" PICS: PS.S.E01 && PS.M.ManualBatFault verification: | Please use Interactive mode to Verify subscription test step Here the command to enter interactive mode:-- ./chip-tool interactive start - powersource subscribe-event-by-id 1 0 100 1 1 + powersource subscribe-event-by-id 1 0 100 1 1 Verify on the TH Log: [1678874454.354931][348369:348369] CHIP:DMG: SubscribeRequestMessage = @@ -173,12 +173,12 @@ tests: [1678874454.357251][348369:348369] CHIP:EM: <<< [E:59501r S:3659 M:108699998 (Ack:239522570)] (S) Msg TX to 1:00 disabled: true - - label: "Bring the DUT into a battery fault state." + - label: "Step 8b: Bring the DUT into a battery fault state." verification: | DUT ACTION REQUIRED disabled: true - - label: "TH reads the ActiveBatFaults attribute from the DUT" + - label: "Step 9: TH reads the ActiveBatFaults attribute from the DUT" PICS: PS.S.A0012 && PS.M.ManualBatFault verification: | Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE @@ -189,19 +189,20 @@ tests: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true - - label: "Bring the DUT back into a clean state." + - label: "Step 11: Bring the DUT back into a clean state." PICS: PS.S.E01 && PS.M.ManualBatFault verification: | DUT ACTION REQUIRED disabled: true - - label: "Bring the DUT into a state without any charge faults." + - label: "Step 12a: Bring the DUT into a state without any charge faults." PICS: PS.S.A001e verification: | disabled: true - - label: "TH reads the ActiveBatChargeFaults attribute from the DUT" + - label: + "Step 12b: TH reads the ActiveBatChargeFaults attribute from the DUT" verification: | Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE @@ -211,14 +212,14 @@ tests: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true - - label: "Set up subscription to BatChargeFaultChange event" + - label: "Step 13a: Set up subscription to BatChargeFaultChange event" PICS: PS.S.E02 && PS.M.ManualBatChargeFault verification: | ./chip-tool interactive start - powersource subscribe-event-by-id 2 100 1000 1 1 + powersource subscribe-event-by-id 2 100 1000 1 1 - Verify on the TH Log: + Verify on the TH Log: [1678874515.570452][348369:348369] CHIP:DMG: SubscribeRequestMessage = [1678874515.570455][348369:348369] CHIP:DMG: { @@ -251,12 +252,13 @@ tests: [1678874515.571157][348369:348369] CHIP:IM: Received status response, status is 0x00 (SUCCESS) disabled: true - - label: "Bring the DUT into a charge fault state." + - label: "Step 13b: Bring the DUT into a charge fault state." verification: | DUT ACTION REQUIRED disabled: true - - label: "TH reads the ActiveBatChargeFaults attribute from the DUT" + - label: + "Step 14: TH reads the ActiveBatChargeFaults attribute from the DUT" PICS: PS.S.A001e && PS.M.ManualBatChargeFault verification: | Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE @@ -267,7 +269,7 @@ tests: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true - - label: "Bring the DUT back into a clean state." + - label: "Step 16: Bring the DUT back into a clean state." PICS: PS.S.E02 && PS.M.ManualBatChargeFault verification: | DUT ACTION REQUIRED diff --git a/src/app/tests/suites/certification/Test_TC_PS_3_1.yaml b/src/app/tests/suites/certification/Test_TC_PS_3_1.yaml index e5c85bb6c810bf..87c749fe3fc8c7 100644 --- a/src/app/tests/suites/certification/Test_TC_PS_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_PS_3_1.yaml @@ -34,525 +34,641 @@ tests: disabled: true - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" + "Step 1: DUT reads all supported mandatory attributes from TH one at a + time in a manufacturer specific order" PICS: PS.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool powersource read status 1 1 + Verify that TH recieves "status" attribute with value 0 on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1686318196.431501][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318196.431509][108731:108731] CHIP:DMG: { + [1686318196.431516][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318196.431531][108731:108731] CHIP:DMG: [ + [1686318196.431538][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318196.431552][108731:108731] CHIP:DMG: { + [1686318196.431560][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318196.431570][108731:108731] CHIP:DMG: { + [1686318196.431580][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318196.431590][108731:108731] CHIP:DMG: AttributePathIB = + [1686318196.431600][108731:108731] CHIP:DMG: { + [1686318196.431611][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318196.431621][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318196.431632][108731:108731] CHIP:DMG: Attribute = 0x0000_0000, + [1686318196.431641][108731:108731] CHIP:DMG: } + [1686318196.431653][108731:108731] CHIP:DMG: + [1686318196.431664][108731:108731] CHIP:DMG: Data = 0, + [1686318196.431672][108731:108731] CHIP:DMG: }, + [1686318196.431685][108731:108731] CHIP:DMG: + [1686318196.431693][108731:108731] CHIP:DMG: }, + [1686318196.431707][108731:108731] CHIP:DMG: + [1686318196.431713][108731:108731] CHIP:DMG: ], + [1686318196.431728][108731:108731] CHIP:DMG: + [1686318196.431736][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318196.431745][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318196.431752][108731:108731] CHIP:DMG: } + [1686318196.431761][108731:108731] CHIP:DMG: + [1686318196.431820][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318196.431829][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + - verify the " status response" on the TH (all-cluster-app) log: - - - [1646155382.977445][33190:33190] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:685127 on exchange 16568r - [1646155382.977534][33190:33190] CHIP:EM: Handling via exchange: 16568r, Delegate: 0xaaaace1730c8 - [1646155382.978021][33190:33190] CHIP:IM: Received Read request - [1646155382.978109][33190:33190] CHIP:DMG: ReadRequestMessage = - [1646155382.978143][33190:33190] CHIP:DMG: { - [1646155382.978167][33190:33190] CHIP:DMG: AttributePathIBs = - [1646155382.978204][33190:33190] CHIP:DMG: [ - [1646155382.978309][33190:33190] CHIP:DMG: AttributePathIB = - [1646155382.978369][33190:33190] CHIP:DMG: { - [1646155382.978408][33190:33190] CHIP:DMG: Endpoint = 0x1, - [1646155382.978459][33190:33190] CHIP:DMG: Cluster = 0x2f, - [1646155382.978513][33190:33190] CHIP:DMG: Attribute = 0x0000_0000, - [1646155382.978545][33190:33190] CHIP:DMG: } - [1646155382.978767][33190:33190] CHIP:DMG: - [1646155382.978804][33190:33190] CHIP:DMG: ], - [1646155382.978836][33190:33190] CHIP:DMG: - [1646155382.978872][33190:33190] CHIP:DMG: isFabricFiltered = false, - [1646155382.978901][33190:33190] CHIP:DMG: InteractionModelRevision = 1 - [1646155382.978927][33190:33190] CHIP:DMG: }, - [1646155382.978998][33190:33190] CHIP:DMG: IM RH moving to [GeneratingReports] - [1646155382.979658][33190:33190] CHIP:DMG: Cluster 2f, Attribute 0 is dirty - [1646155382.979729][33190:33190] CHIP:DMG: Reading attribute: Cluster=0x0000_002F Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1646155382.979764][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002F e=1 p=v - [1646010346.974150][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=v ./chip-tool powersource read order 1 1 + Verify that TH recieves "order" attribute with value 2 on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1686318245.206127][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318245.206130][108731:108731] CHIP:DMG: { + [1686318245.206132][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318245.206137][108731:108731] CHIP:DMG: [ + [1686318245.206139][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318245.206145][108731:108731] CHIP:DMG: { + [1686318245.206147][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318245.206151][108731:108731] CHIP:DMG: { + [1686318245.206154][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318245.206157][108731:108731] CHIP:DMG: AttributePathIB = + [1686318245.206160][108731:108731] CHIP:DMG: { + [1686318245.206164][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318245.206167][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318245.206172][108731:108731] CHIP:DMG: Attribute = 0x0000_0001, + [1686318245.206175][108731:108731] CHIP:DMG: } + [1686318245.206178][108731:108731] CHIP:DMG: + [1686318245.206182][108731:108731] CHIP:DMG: Data = 2, + [1686318245.206185][108731:108731] CHIP:DMG: }, + [1686318245.206189][108731:108731] CHIP:DMG: + [1686318245.206192][108731:108731] CHIP:DMG: }, + [1686318245.206196][108731:108731] CHIP:DMG: + [1686318245.206199][108731:108731] CHIP:DMG: ], + [1686318245.206203][108731:108731] CHIP:DMG: + [1686318245.206206][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318245.206209][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318245.206211][108731:108731] CHIP:DMG: } + [1686318245.206214][108731:108731] CHIP:DMG: + [1686318245.206239][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318245.206243][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + + - verify the " order response" on the TH (all-cluster-app) log: - - [1653395573.862606][19412:19412] CHIP:IM: Received Read request - [1653395573.862690][19412:19412] CHIP:DMG: ReadRequestMessage = - [1653395573.862739][19412:19412] CHIP:DMG: { - [1653395573.862779][19412:19412] CHIP:DMG: AttributePathIBs = - [1653395573.862827][19412:19412] CHIP:DMG: [ - [1653395573.862872][19412:19412] CHIP:DMG: AttributePathIB = - [1653395573.862928][19412:19412] CHIP:DMG: { - [1653395573.862980][19412:19412] CHIP:DMG: Endpoint = 0x1, - [1653395573.863037][19412:19412] CHIP:DMG: Cluster = 0x2f, - [1653395573.863101][19412:19412] CHIP:DMG: Attribute = 0x0000_0001, - [1653395573.863161][19412:19412] CHIP:DMG: } - [1653395573.863217][19412:19412] CHIP:DMG: - [1653395573.863267][19412:19412] CHIP:DMG: ], - [1653395573.863319][19412:19412] CHIP:DMG: - [1653395573.863367][19412:19412] CHIP:DMG: isFabricFiltered = true, - [1653395573.863413][19412:19412] CHIP:DMG: InteractionModelRevision = 1 - [1653395573.863456][19412:19412] CHIP:DMG: }, - [1653395573.863589][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports] - [1653395573.863720][19412:19412] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 ./chip-tool powersource read description 1 1 + Verify that TH recieves "description" attribute with value B2 on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1686318263.400126][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318263.400128][108731:108731] CHIP:DMG: { + [1686318263.400129][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318263.400133][108731:108731] CHIP:DMG: [ + [1686318263.400134][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318263.400137][108731:108731] CHIP:DMG: { + [1686318263.400139][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318263.400142][108731:108731] CHIP:DMG: { + [1686318263.400144][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318263.400146][108731:108731] CHIP:DMG: AttributePathIB = + [1686318263.400148][108731:108731] CHIP:DMG: { + [1686318263.400150][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318263.400153][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318263.400155][108731:108731] CHIP:DMG: Attribute = 0x0000_0002, + [1686318263.400157][108731:108731] CHIP:DMG: } + [1686318263.400159][108731:108731] CHIP:DMG: + [1686318263.400162][108731:108731] CHIP:DMG: Data = "B2" (2 chars), + [1686318263.400164][108731:108731] CHIP:DMG: }, + [1686318263.400167][108731:108731] CHIP:DMG: + [1686318263.400169][108731:108731] CHIP:DMG: }, + [1686318263.400172][108731:108731] CHIP:DMG: + [1686318263.400173][108731:108731] CHIP:DMG: ], + [1686318263.400176][108731:108731] CHIP:DMG: + [1686318263.400178][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318263.400180][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318263.400182][108731:108731] CHIP:DMG: } + [1686318263.400183][108731:108731] CHIP:DMG: + [1686318263.400206][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318263.400209][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages - verify the " description response" on the TH (all-cluster-app) log: - - CHIP:IM: Received Read request - [1653395620.020314][19412:19412] CHIP:DMG: ReadRequestMessage = - [1653395620.020364][19412:19412] CHIP:DMG: { - [1653395620.020406][19412:19412] CHIP:DMG: AttributePathIBs = - [1653395620.020463][19412:19412] CHIP:DMG: [ - [1653395620.020511][19412:19412] CHIP:DMG: AttributePathIB = - [1653395620.020576][19412:19412] CHIP:DMG: { - [1653395620.020635][19412:19412] CHIP:DMG: Endpoint = 0x1, - [1653395620.020703][19412:19412] CHIP:DMG: Cluster = 0x2f, - [1653395620.020770][19412:19412] CHIP:DMG: Attribute = 0x0000_0002, - [1653395620.020833][19412:19412] CHIP:DMG: } - [1653395620.020893][19412:19412] CHIP:DMG: - [1653395620.020945][19412:19412] CHIP:DMG: ], - [1653395620.020999][19412:19412] CHIP:DMG: - [1653395620.021052][19412:19412] CHIP:DMG: isFabricFiltered = true, - [1653395620.021104][19412:19412] CHIP:DMG: InteractionModelRevision = 1 - [1653395620.021153][19412:19412] CHIP:DMG: }, - [1653395620.021252][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports] ./chip-tool powersource read bat-charge-level 1 1 - - Verify the ReadRequestMessage on TH(all-clusters-app) log) - - [1663140804.059599][2414:2414] CHIP:IM: Received Read request - [1663140804.059679][2414:2414] CHIP:DMG: ReadRequestMessage = - [1663140804.059706][2414:2414] CHIP:DMG: { - [1663140804.059728][2414:2414] CHIP:DMG: AttributePathIBs = - [1663140804.059754][2414:2414] CHIP:DMG: [ - [1663140804.059779][2414:2414] CHIP:DMG: AttributePathIB = - [1663140804.059828][2414:2414] CHIP:DMG: { - [1663140804.059861][2414:2414] CHIP:DMG: Endpoint = 0x1, - [1663140804.059913][2414:2414] CHIP:DMG: Cluster = 0x2f, - [1663140804.059946][2414:2414] CHIP:DMG: Attribute = 0x0000_000E, - [1663140804.059976][2414:2414] CHIP:DMG: } - [1663140804.060006][2414:2414] CHIP:DMG: - [1663140804.060033][2414:2414] CHIP:DMG: ], - [1663140804.060060][2414:2414] CHIP:DMG: - [1663140804.060087][2414:2414] CHIP:DMG: isFabricFiltered = true, - [1663140804.060111][2414:2414] CHIP:DMG: InteractionModelRevision = 1 - [1663140804.060136][2414:2414] CHIP:DMG: }, + Verify that TH recieves "bat-charge-level" attribute with value 0 on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1686318283.452914][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318283.452916][108731:108731] CHIP:DMG: { + [1686318283.452918][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318283.452921][108731:108731] CHIP:DMG: [ + [1686318283.452923][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318283.452926][108731:108731] CHIP:DMG: { + [1686318283.452928][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318283.452930][108731:108731] CHIP:DMG: { + [1686318283.452932][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318283.452934][108731:108731] CHIP:DMG: AttributePathIB = + [1686318283.452936][108731:108731] CHIP:DMG: { + [1686318283.452939][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318283.452941][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318283.452943][108731:108731] CHIP:DMG: Attribute = 0x0000_000E, + [1686318283.452945][108731:108731] CHIP:DMG: } + [1686318283.452948][108731:108731] CHIP:DMG: + [1686318283.452950][108731:108731] CHIP:DMG: Data = 0, + [1686318283.452952][108731:108731] CHIP:DMG: }, + [1686318283.452955][108731:108731] CHIP:DMG: + [1686318283.452957][108731:108731] CHIP:DMG: }, + [1686318283.452959][108731:108731] CHIP:DMG: + [1686318283.452961][108731:108731] CHIP:DMG: ], + [1686318283.452964][108731:108731] CHIP:DMG: + [1686318283.452966][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318283.452968][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318283.452969][108731:108731] CHIP:DMG: } + [1686318283.452971][108731:108731] CHIP:DMG: + [1686318283.452997][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318283.452999][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages ./chip-tool powersource read bat-replacement-needed 1 1 + Verify that TH recieves "bat-replacement-needed" attribute with value false on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1686318298.844920][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318298.844922][108731:108731] CHIP:DMG: { + [1686318298.844924][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318298.844927][108731:108731] CHIP:DMG: [ + [1686318298.844929][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318298.844932][108731:108731] CHIP:DMG: { + [1686318298.844934][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318298.844936][108731:108731] CHIP:DMG: { + [1686318298.844938][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318298.844940][108731:108731] CHIP:DMG: AttributePathIB = + [1686318298.844942][108731:108731] CHIP:DMG: { + [1686318298.844945][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318298.844947][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318298.844949][108731:108731] CHIP:DMG: Attribute = 0x0000_000F, + [1686318298.844951][108731:108731] CHIP:DMG: } + [1686318298.844954][108731:108731] CHIP:DMG: + [1686318298.844957][108731:108731] CHIP:DMG: Data = false, + [1686318298.844958][108731:108731] CHIP:DMG: }, + [1686318298.844961][108731:108731] CHIP:DMG: + [1686318298.844963][108731:108731] CHIP:DMG: }, + [1686318298.844966][108731:108731] CHIP:DMG: + [1686318298.844967][108731:108731] CHIP:DMG: ], + [1686318298.844970][108731:108731] CHIP:DMG: + [1686318298.844972][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318298.844974][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318298.844975][108731:108731] CHIP:DMG: } + [1686318298.844977][108731:108731] CHIP:DMG: + [1686318298.845011][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318298.845014][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1686318298.845016][108731:108731] CHIP:DMG: IM RH moving to [AwaitingDestruction] - Verify the ReadRequestMessage on TH(all-clusters-app) log) - - [1663141268.348233][2414:2414] CHIP:IM: Received Read request - [1663141268.348332][2414:2414] CHIP:DMG: ReadRequestMessage = - [1663141268.348388][2414:2414] CHIP:DMG: { - [1663141268.348418][2414:2414] CHIP:DMG: AttributePathIBs = - [1663141268.348465][2414:2414] CHIP:DMG: [ - [1663141268.348498][2414:2414] CHIP:DMG: AttributePathIB = - [1663141268.348545][2414:2414] CHIP:DMG: { - [1663141268.348584][2414:2414] CHIP:DMG: Endpoint = 0x1, - [1663141268.348637][2414:2414] CHIP:DMG: Cluster = 0x2f, - [1663141268.348685][2414:2414] CHIP:DMG: Attribute = 0x0000_000F, - [1663141268.348735][2414:2414] CHIP:DMG: } - [1663141268.348774][2414:2414] CHIP:DMG: - [1663141268.348820][2414:2414] CHIP:DMG: ], - [1663141268.348857][2414:2414] CHIP:DMG: - [1663141268.348904][2414:2414] CHIP:DMG: isFabricFiltered = true, - [1663141268.348938][2414:2414] CHIP:DMG: InteractionModelRevision = 1 - [1663141268.348982][2414:2414] CHIP:DMG: }, - [1663141268.349086][2414:2414] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663141268.349214][2414:2414] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1663141268.349251][2414:2414] CHIP:DMG: Cluster 2f, Attribute f is dirty ./chip-tool powersource read bat-replaceability 1 1 - - Verify the ReadRequestMessage on TH(all-clusters-app) log - - - [1663141378.115928][2414:2414] CHIP:DMG: ReadRequestMessage = - [1663141378.115978][2414:2414] CHIP:DMG: { - [1663141378.116006][2414:2414] CHIP:DMG: AttributePathIBs = - [1663141378.116050][2414:2414] CHIP:DMG: [ - [1663141378.116080][2414:2414] CHIP:DMG: AttributePathIB = - [1663141378.116124][2414:2414] CHIP:DMG: { - [1663141378.116160][2414:2414] CHIP:DMG: Endpoint = 0x1, - [1663141378.116208][2414:2414] CHIP:DMG: Cluster = 0x2f, - [1663141378.116247][2414:2414] CHIP:DMG: Attribute = 0x0000_0010, - [1663141378.116294][2414:2414] CHIP:DMG: } - [1663141378.116330][2414:2414] CHIP:DMG: - [1663141378.116372][2414:2414] CHIP:DMG: ], - [1663141378.116407][2414:2414] CHIP:DMG: - [1663141378.116450][2414:2414] CHIP:DMG: isFabricFiltered = true, - [1663141378.116481][2414:2414] CHIP:DMG: InteractionModelRevision = 1 - [1663141378.116521][2414:2414] CHIP:DMG: }, - [1663141378.116621][2414:2414] CHIP:DMG: IM RH moving to [GeneratingReports] + Verify that TH recieves "bat-replaceability" attribute with value 0 on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1686318315.534100][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318315.534102][108731:108731] CHIP:DMG: { + [1686318315.534104][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318315.534107][108731:108731] CHIP:DMG: [ + [1686318315.534108][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318315.534112][108731:108731] CHIP:DMG: { + [1686318315.534113][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318315.534116][108731:108731] CHIP:DMG: { + [1686318315.534118][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318315.534120][108731:108731] CHIP:DMG: AttributePathIB = + [1686318315.534122][108731:108731] CHIP:DMG: { + [1686318315.534124][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318315.534126][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318315.534129][108731:108731] CHIP:DMG: Attribute = 0x0000_0010, + [1686318315.534131][108731:108731] CHIP:DMG: } + [1686318315.534133][108731:108731] CHIP:DMG: + [1686318315.534136][108731:108731] CHIP:DMG: Data = 0, + [1686318315.534138][108731:108731] CHIP:DMG: }, + [1686318315.534141][108731:108731] CHIP:DMG: + [1686318315.534142][108731:108731] CHIP:DMG: }, + [1686318315.534145][108731:108731] CHIP:DMG: + [1686318315.534147][108731:108731] CHIP:DMG: ], + [1686318315.534150][108731:108731] CHIP:DMG: + [1686318315.534152][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318315.534153][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318315.534155][108731:108731] CHIP:DMG: } + [1686318315.534157][108731:108731] CHIP:DMG: + [1686318315.534179][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318315.534181][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages disabled: true - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" + "Step 2: DUT reads all supported optional attributes from TH one at a + time in a manufacturer specific order" PICS: PS.C.AO-READ verification: | - Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE + OPTIONAL ATTRIBUTES ARE NOT IMPLEMENTED IN SDK, If Implemented we will get the expected outcome that is value of below attributes as per Spec ./chip-tool powersource read wired-assessed-input-voltage 1 1 - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read wired-assessed-input-frequency 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read wired-current-type 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read wired-assessed-current 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read wired-nominal-voltage 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read wired-maximum-current 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read wired-present 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read active-wired-faults 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-voltage 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-percent-remaining 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-time-remaining 1 1 - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-present 1 1 + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: - Verify on the TH Log: - - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read active-bat-faults 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-replacement-description 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-common-designation 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-ansidesignation 1 1 - - Verify on the TH Log: - - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-iecdesignation 1 1 - - Verify on the TH Log: + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-approved-chemistry 1 1 - - Verify on the TH Log: - - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-capacity 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-quantity 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-charge-state 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-time-to-full-charge 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-functional-while-charging 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-charging-current 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE) " + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read active-bat-charge-faults 1 1 - - Verify on the TH Log: - General error: 0x86 (UNSUPPORTED_ATTRIBUTE)" + Verify that TH recieves the above attribute read command and provides a plausible value on the TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" + "Step 3: DUT writes a suitable value to all supported mandatory + attributes on the TH one at a time in a manufacturer specific order" PICS: PS.C.AM-WRITE verification: | This cluster doesn't have any writable attributes disabled: true - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" + "Step 4: DUT writes a suitable value to all supported optional + attributes on the TH one at a time in a manufacturer specific order" PICS: PS.C.AO-WRITE verification: | This cluster doesn't have any writable attributes disabled: true - label: - "Configure TH such that it implements mandatory and none of the - optional attributes of the server-side of the cluster, and that it + "Step 5: Configure TH such that it implements mandatory and none of + the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission DUT to TH again" verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) ./chip-tool powersource read feature-map 1 1 - verify the " feature-map response" on the TH (all-cluster-minimal-app) log: - [1678873672.092602][348369:348369] CHIP:IM: Received Read request - [1678873672.092651][348369:348369] CHIP:DMG: ReadRequestMessage = - [1678873672.092660][348369:348369] CHIP:DMG: { - [1678873672.092669][348369:348369] CHIP:DMG: AttributePathIBs = - [1678873672.092680][348369:348369] CHIP:DMG: [ - [1678873672.092706][348369:348369] CHIP:DMG: AttributePathIB = - [1678873672.092715][348369:348369] CHIP:DMG: { - [1678873672.092724][348369:348369] CHIP:DMG: Endpoint = 0x1, - [1678873672.092735][348369:348369] CHIP:DMG: Cluster = 0x2f, - [1678873672.092747][348369:348369] CHIP:DMG: Attribute = 0x0000_FFFC, - [1678873672.092757][348369:348369] CHIP:DMG: } - [1678873672.092770][348369:348369] CHIP:DMG: - [1678873672.092777][348369:348369] CHIP:DMG: ], - [1678873672.092791][348369:348369] CHIP:DMG: - [1678873672.092800][348369:348369] CHIP:DMG: isFabricFiltered = true, - [1678873672.092810][348369:348369] CHIP:DMG: InteractionModelRevision = 1 - [1678873672.092818][348369:348369] CHIP:DMG: }, - [1678873672.092858][348369:348369] CHIP:DMG: IM RH moving to [GeneratingReports] - [1678873672.092892][348369:348369] CHIP:DMG: Building Reports for ReadHandler - - - ./chip-tool powersource read attribute-list 1 0 - - verify the " attribute-list response" on the TH (all-cluster-minimal-app) log: - - [1659596771.124636][2409:2409] CHIP:IM: Received Read request - [1659596771.124765][2409:2409] CHIP:DMG: ReadRequestMessage = - [1659596771.124795][2409:2409] CHIP:DMG: { - [1659596771.124814][2409:2409] CHIP:DMG: AttributePathIBs = - [1659596771.124838][2409:2409] CHIP:DMG: [ - [1659596771.124859][2409:2409] CHIP:DMG: AttributePathIB = - [1659596771.124901][2409:2409] CHIP:DMG: { - [1659596771.124928][2409:2409] CHIP:DMG: Endpoint = 0x0, - [1659596771.124963][2409:2409] CHIP:DMG: Cluster = 0x2f, - [1659596771.124989][2409:2409] CHIP:DMG: Attribute = 0x0000_FFFB, - [1659596771.125020][2409:2409] CHIP:DMG: } - [1659596771.125045][2409:2409] CHIP:DMG: - [1659596771.125077][2409:2409] CHIP:DMG: ], - [1659596771.125102][2409:2409] CHIP:DMG: - [1659596771.125134][2409:2409] CHIP:DMG: isFabricFiltered = true, - [1659596771.125156][2409:2409] CHIP:DMG: InteractionModelRevision = 1 - [1659596771.125177][2409:2409] CHIP:DMG: }, - + Verify that TH recieves "featuremap" attribute with value 0 on the TH (all-clusters-minimal-app) log and below is the sample log provided for the raspi platform: + [1686319169.359277][108977:108977] CHIP:DMG: ReportDataMessage = + [1686319169.359279][108977:108977] CHIP:DMG: { + [1686319169.359280][108977:108977] CHIP:DMG: AttributeReportIBs = + [1686319169.359283][108977:108977] CHIP:DMG: [ + [1686319169.359285][108977:108977] CHIP:DMG: AttributeReportIB = + [1686319169.359288][108977:108977] CHIP:DMG: { + [1686319169.359290][108977:108977] CHIP:DMG: AttributeDataIB = + [1686319169.359292][108977:108977] CHIP:DMG: { + [1686319169.359295][108977:108977] CHIP:DMG: DataVersion = 0xb60028fe, + [1686319169.359297][108977:108977] CHIP:DMG: AttributePathIB = + [1686319169.359299][108977:108977] CHIP:DMG: { + [1686319169.359301][108977:108977] CHIP:DMG: Endpoint = 0x1, + [1686319169.359303][108977:108977] CHIP:DMG: Cluster = 0x2f, + [1686319169.359306][108977:108977] CHIP:DMG: Attribute = 0x0000_FFFC, + [1686319169.359308][108977:108977] CHIP:DMG: } + [1686319169.359310][108977:108977] CHIP:DMG: + [1686319169.359313][108977:108977] CHIP:DMG: Data = 0, + [1686319169.359315][108977:108977] CHIP:DMG: }, + [1686319169.359318][108977:108977] CHIP:DMG: + [1686319169.359319][108977:108977] CHIP:DMG: }, + [1686319169.359322][108977:108977] CHIP:DMG: + [1686319169.359324][108977:108977] CHIP:DMG: ], + [1686319169.359327][108977:108977] CHIP:DMG: + [1686319169.359329][108977:108977] CHIP:DMG: SuppressResponse = true, + [1686319169.359331][108977:108977] CHIP:DMG: InteractionModelRevision = 1 + [1686319169.359332][108977:108977] CHIP:DMG: } + [1686319169.359334][108977:108977] CHIP:DMG: + [1686319169.359357][108977:108977] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686319169.359360][108977:108977] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + + + ./chip-tool powersource read attribute-list 1 1 + Verify that TH recieves "attribute list" attribute with value 0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533 on the TH (all-clusters-minimal-app) log and below is the sample log provided for the raspi platform: + [1686319262.503993][108977:108977] CHIP:DMG: ReportDataMessage = + [1686319262.503995][108977:108977] CHIP:DMG: { + [1686319262.503996][108977:108977] CHIP:DMG: AttributeReportIBs = + [1686319262.504001][108977:108977] CHIP:DMG: [ + [1686319262.504003][108977:108977] CHIP:DMG: AttributeReportIB = + [1686319262.504006][108977:108977] CHIP:DMG: { + [1686319262.504009][108977:108977] CHIP:DMG: AttributeDataIB = + [1686319262.504011][108977:108977] CHIP:DMG: { + [1686319262.504013][108977:108977] CHIP:DMG: DataVersion = 0xb60028fe, + [1686319262.504015][108977:108977] CHIP:DMG: AttributePathIB = + [1686319262.504017][108977:108977] CHIP:DMG: { + [1686319262.504019][108977:108977] CHIP:DMG: Endpoint = 0x1, + [1686319262.504022][108977:108977] CHIP:DMG: Cluster = 0x2f, + [1686319262.504024][108977:108977] CHIP:DMG: Attribute = 0x0000_FFFB, + [1686319262.504026][108977:108977] CHIP:DMG: } + [1686319262.504028][108977:108977] CHIP:DMG: + [1686319262.504031][108977:108977] CHIP:DMG: Data = [ + [1686319262.504036][108977:108977] CHIP:DMG: 0, 1, 2, 65528, 65529, 65530, 65531, 65532, 65533, + [1686319262.504038][108977:108977] CHIP:DMG: ], + [1686319262.504040][108977:108977] CHIP:DMG: }, + [1686319262.504043][108977:108977] CHIP:DMG: + [1686319262.504045][108977:108977] CHIP:DMG: }, + [1686319262.504049][108977:108977] CHIP:DMG: + [1686319262.504050][108977:108977] CHIP:DMG: ], + [1686319262.504054][108977:108977] CHIP:DMG: + [1686319262.504056][108977:108977] CHIP:DMG: SuppressResponse = true, + [1686319262.504058][108977:108977] CHIP:DMG: InteractionModelRevision = 1 + [1686319262.504060][108977:108977] CHIP:DMG: } + [1686319262.504061][108977:108977] CHIP:DMG: + [1686319262.504089][108977:108977] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686319262.504091][108977:108977] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages ./chip-tool powersource read status 1 1 + Verify that TH recieves "status" attribute with value 0 on the TH (all-clusters-minimal-app) log and below is the sample log provided for the raspi platform: + + [1686318196.431501][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318196.431509][108731:108731] CHIP:DMG: { + [1686318196.431516][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318196.431531][108731:108731] CHIP:DMG: [ + [1686318196.431538][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318196.431552][108731:108731] CHIP:DMG: { + [1686318196.431560][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318196.431570][108731:108731] CHIP:DMG: { + [1686318196.431580][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318196.431590][108731:108731] CHIP:DMG: AttributePathIB = + [1686318196.431600][108731:108731] CHIP:DMG: { + [1686318196.431611][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318196.431621][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318196.431632][108731:108731] CHIP:DMG: Attribute = 0x0000_0000, + [1686318196.431641][108731:108731] CHIP:DMG: } + [1686318196.431653][108731:108731] CHIP:DMG: + [1686318196.431664][108731:108731] CHIP:DMG: Data = 0, + [1686318196.431672][108731:108731] CHIP:DMG: }, + [1686318196.431685][108731:108731] CHIP:DMG: + [1686318196.431693][108731:108731] CHIP:DMG: }, + [1686318196.431707][108731:108731] CHIP:DMG: + [1686318196.431713][108731:108731] CHIP:DMG: ], + [1686318196.431728][108731:108731] CHIP:DMG: + [1686318196.431736][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318196.431745][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318196.431752][108731:108731] CHIP:DMG: } + [1686318196.431761][108731:108731] CHIP:DMG: + [1686318196.431820][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318196.431829][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + - verify the " status response" on the TH (all-cluster-minimal-app) log: - - [1646155382.977534][33190:33190] CHIP:EM: Handling via exchange: 16568r, Delegate: 0xaaaace1730c8 - [1646155382.978021][33190:33190] CHIP:IM: Received Read request - [1646155382.978109][33190:33190] CHIP:DMG: ReadRequestMessage = - [1646155382.978143][33190:33190] CHIP:DMG: { - [1646155382.978167][33190:33190] CHIP:DMG: AttributePathIBs = - [1646155382.978204][33190:33190] CHIP:DMG: [ - [1646155382.978309][33190:33190] CHIP:DMG: AttributePathIB = - [1646155382.978369][33190:33190] CHIP:DMG: { - [1646155382.978408][33190:33190] CHIP:DMG: Endpoint = 0x1, - [1646155382.978459][33190:33190] CHIP:DMG: Cluster = 0x2f, - [1646155382.978513][33190:33190] CHIP:DMG: Attribute = 0x0000_0000, - [1646155382.978545][33190:33190] CHIP:DMG: } - [1646155382.978767][33190:33190] CHIP:DMG: - [1646155382.978804][33190:33190] CHIP:DMG: ], - [1646155382.978836][33190:33190] CHIP:DMG: - [1646155382.978872][33190:33190] CHIP:DMG: isFabricFiltered = false, - [1646155382.978901][33190:33190] CHIP:DMG: InteractionModelRevision = 1 - [1646155382.978927][33190:33190] CHIP:DMG: }, - [1646155382.978998][33190:33190] CHIP:DMG: IM RH moving to [GeneratingReports] - [1646155382.979658][33190:33190] CHIP:DMG: Cluster 2f, Attribute 0 is dirty - [1646155382.979729][33190:33190] CHIP:DMG: Reading attribute: Cluster=0x0000_002F Endpoint=1 AttributeId=0x0000_0000 (expanded=0) - [1646155382.979764][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002F e=1 p=v - [1646010346.974150][33190:33190] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=v ./chip-tool powersource read order 1 1 + Verify that TH recieves "order" attribute with value 2 on the TH (all-clusters-minimal-app) log and below is the sample log provided for the raspi platform: + + [1686318245.206127][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318245.206130][108731:108731] CHIP:DMG: { + [1686318245.206132][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318245.206137][108731:108731] CHIP:DMG: [ + [1686318245.206139][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318245.206145][108731:108731] CHIP:DMG: { + [1686318245.206147][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318245.206151][108731:108731] CHIP:DMG: { + [1686318245.206154][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318245.206157][108731:108731] CHIP:DMG: AttributePathIB = + [1686318245.206160][108731:108731] CHIP:DMG: { + [1686318245.206164][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318245.206167][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318245.206172][108731:108731] CHIP:DMG: Attribute = 0x0000_0001, + [1686318245.206175][108731:108731] CHIP:DMG: } + [1686318245.206178][108731:108731] CHIP:DMG: + [1686318245.206182][108731:108731] CHIP:DMG: Data = 2, + [1686318245.206185][108731:108731] CHIP:DMG: }, + [1686318245.206189][108731:108731] CHIP:DMG: + [1686318245.206192][108731:108731] CHIP:DMG: }, + [1686318245.206196][108731:108731] CHIP:DMG: + [1686318245.206199][108731:108731] CHIP:DMG: ], + [1686318245.206203][108731:108731] CHIP:DMG: + [1686318245.206206][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318245.206209][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318245.206211][108731:108731] CHIP:DMG: } + [1686318245.206214][108731:108731] CHIP:DMG: + [1686318245.206239][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318245.206243][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + + - verify the " order response" on the TH (all-cluster-minimal-app) log: - - [1653395573.862606][19412:19412] CHIP:IM: Received Read request - [1653395573.862690][19412:19412] CHIP:DMG: ReadRequestMessage = - [1653395573.862739][19412:19412] CHIP:DMG: { - [1653395573.862779][19412:19412] CHIP:DMG: AttributePathIBs = - [1653395573.862827][19412:19412] CHIP:DMG: [ - [1653395573.862872][19412:19412] CHIP:DMG: AttributePathIB = - [1653395573.862928][19412:19412] CHIP:DMG: { - [1653395573.862980][19412:19412] CHIP:DMG: Endpoint = 0x1, - [1653395573.863037][19412:19412] CHIP:DMG: Cluster = 0x2f, - [1653395573.863101][19412:19412] CHIP:DMG: Attribute = 0x0000_0001, - [1653395573.863161][19412:19412] CHIP:DMG: } - [1653395573.863217][19412:19412] CHIP:DMG: - [1653395573.863267][19412:19412] CHIP:DMG: ], - [1653395573.863319][19412:19412] CHIP:DMG: - [1653395573.863367][19412:19412] CHIP:DMG: isFabricFiltered = true, - [1653395573.863413][19412:19412] CHIP:DMG: InteractionModelRevision = 1 - [1653395573.863456][19412:19412] CHIP:DMG: }, - [1653395573.863589][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports] - [1653395573.863720][19412:19412] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 ./chip-tool powersource read description 1 1 + Verify that TH recieves "description" attribute with value B2 on the TH (all-clusters-minimal-app) log and below is the sample log provided for the raspi platform: + + [1686318263.400126][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318263.400128][108731:108731] CHIP:DMG: { + [1686318263.400129][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318263.400133][108731:108731] CHIP:DMG: [ + [1686318263.400134][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318263.400137][108731:108731] CHIP:DMG: { + [1686318263.400139][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318263.400142][108731:108731] CHIP:DMG: { + [1686318263.400144][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318263.400146][108731:108731] CHIP:DMG: AttributePathIB = + [1686318263.400148][108731:108731] CHIP:DMG: { + [1686318263.400150][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318263.400153][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318263.400155][108731:108731] CHIP:DMG: Attribute = 0x0000_0002, + [1686318263.400157][108731:108731] CHIP:DMG: } + [1686318263.400159][108731:108731] CHIP:DMG: + [1686318263.400162][108731:108731] CHIP:DMG: Data = "B2" (2 chars), + [1686318263.400164][108731:108731] CHIP:DMG: }, + [1686318263.400167][108731:108731] CHIP:DMG: + [1686318263.400169][108731:108731] CHIP:DMG: }, + [1686318263.400172][108731:108731] CHIP:DMG: + [1686318263.400173][108731:108731] CHIP:DMG: ], + [1686318263.400176][108731:108731] CHIP:DMG: + [1686318263.400178][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318263.400180][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318263.400182][108731:108731] CHIP:DMG: } + [1686318263.400183][108731:108731] CHIP:DMG: + [1686318263.400206][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318263.400209][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages - verify the " description response" on the TH (all-cluster-minimal-app) log: - - CHIP:IM: Received Read request - [1653395620.020314][19412:19412] CHIP:DMG: ReadRequestMessage = - [1653395620.020364][19412:19412] CHIP:DMG: { - [1653395620.020406][19412:19412] CHIP:DMG: AttributePathIBs = - [1653395620.020463][19412:19412] CHIP:DMG: [ - [1653395620.020511][19412:19412] CHIP:DMG: AttributePathIB = - [1653395620.020576][19412:19412] CHIP:DMG: { - [1653395620.020635][19412:19412] CHIP:DMG: Endpoint = 0x1, - [1653395620.020703][19412:19412] CHIP:DMG: Cluster = 0x2f, - [1653395620.020770][19412:19412] CHIP:DMG: Attribute = 0x0000_0002, - [1653395620.020833][19412:19412] CHIP:DMG: } - [1653395620.020893][19412:19412] CHIP:DMG: - [1653395620.020945][19412:19412] CHIP:DMG: ], - [1653395620.020999][19412:19412] CHIP:DMG: - [1653395620.021052][19412:19412] CHIP:DMG: isFabricFiltered = true, - [1653395620.021104][19412:19412] CHIP:DMG: InteractionModelRevision = 1 - [1653395620.021153][19412:19412] CHIP:DMG: }, - [1653395620.021252][19412:19412] CHIP:DMG: IM RH moving to [GeneratingReports] ./chip-tool powersource read bat-charge-level 1 1 - - Verify the ReadRequestMessage on TH(all-clusters-minimal-app) log - - [1663140804.059599][2414:2414] CHIP:IM: Received Read request - [1663140804.059679][2414:2414] CHIP:DMG: ReadRequestMessage = - [1663140804.059706][2414:2414] CHIP:DMG: { - [1663140804.059728][2414:2414] CHIP:DMG: AttributePathIBs = - [1663140804.059754][2414:2414] CHIP:DMG: [ - [1663140804.059779][2414:2414] CHIP:DMG: AttributePathIB = - [1663140804.059828][2414:2414] CHIP:DMG: { - [1663140804.059861][2414:2414] CHIP:DMG: Endpoint = 0x1, - [1663140804.059913][2414:2414] CHIP:DMG: Cluster = 0x2f, - [1663140804.059946][2414:2414] CHIP:DMG: Attribute = 0x0000_000E, - [1663140804.059976][2414:2414] CHIP:DMG: } - [1663140804.060006][2414:2414] CHIP:DMG: - [1663140804.060033][2414:2414] CHIP:DMG: ], - [1663140804.060060][2414:2414] CHIP:DMG: - [1663140804.060087][2414:2414] CHIP:DMG: isFabricFiltered = true, - [1663140804.060111][2414:2414] CHIP:DMG: InteractionModelRevision = 1 - [1663140804.060136][2414:2414] CHIP:DMG: }, + Verify that TH recieves "bat-charge-level" attribute with value 0 on the TH (all-clusters-minimal-app) log and below is the sample log provided for the raspi platform: + + [1686318283.452914][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318283.452916][108731:108731] CHIP:DMG: { + [1686318283.452918][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318283.452921][108731:108731] CHIP:DMG: [ + [1686318283.452923][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318283.452926][108731:108731] CHIP:DMG: { + [1686318283.452928][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318283.452930][108731:108731] CHIP:DMG: { + [1686318283.452932][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318283.452934][108731:108731] CHIP:DMG: AttributePathIB = + [1686318283.452936][108731:108731] CHIP:DMG: { + [1686318283.452939][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318283.452941][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318283.452943][108731:108731] CHIP:DMG: Attribute = 0x0000_000E, + [1686318283.452945][108731:108731] CHIP:DMG: } + [1686318283.452948][108731:108731] CHIP:DMG: + [1686318283.452950][108731:108731] CHIP:DMG: Data = 0, + [1686318283.452952][108731:108731] CHIP:DMG: }, + [1686318283.452955][108731:108731] CHIP:DMG: + [1686318283.452957][108731:108731] CHIP:DMG: }, + [1686318283.452959][108731:108731] CHIP:DMG: + [1686318283.452961][108731:108731] CHIP:DMG: ], + [1686318283.452964][108731:108731] CHIP:DMG: + [1686318283.452966][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318283.452968][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318283.452969][108731:108731] CHIP:DMG: } + [1686318283.452971][108731:108731] CHIP:DMG: + [1686318283.452997][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318283.452999][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages ./chip-tool powersource read bat-replacement-needed 1 1 + Verify that TH recieves "bat-replacement-needed" attribute with value false on the TH (all-clusters-minimal-app) log and below is the sample log provided for the raspi platform: + + [1686318298.844920][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318298.844922][108731:108731] CHIP:DMG: { + [1686318298.844924][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318298.844927][108731:108731] CHIP:DMG: [ + [1686318298.844929][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318298.844932][108731:108731] CHIP:DMG: { + [1686318298.844934][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318298.844936][108731:108731] CHIP:DMG: { + [1686318298.844938][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318298.844940][108731:108731] CHIP:DMG: AttributePathIB = + [1686318298.844942][108731:108731] CHIP:DMG: { + [1686318298.844945][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318298.844947][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318298.844949][108731:108731] CHIP:DMG: Attribute = 0x0000_000F, + [1686318298.844951][108731:108731] CHIP:DMG: } + [1686318298.844954][108731:108731] CHIP:DMG: + [1686318298.844957][108731:108731] CHIP:DMG: Data = false, + [1686318298.844958][108731:108731] CHIP:DMG: }, + [1686318298.844961][108731:108731] CHIP:DMG: + [1686318298.844963][108731:108731] CHIP:DMG: }, + [1686318298.844966][108731:108731] CHIP:DMG: + [1686318298.844967][108731:108731] CHIP:DMG: ], + [1686318298.844970][108731:108731] CHIP:DMG: + [1686318298.844972][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318298.844974][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318298.844975][108731:108731] CHIP:DMG: } + [1686318298.844977][108731:108731] CHIP:DMG: + [1686318298.845011][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318298.845014][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages + [1686318298.845016][108731:108731] CHIP:DMG: IM RH moving to [AwaitingDestruction] - Verify the ReadRequestMessage on TH(all-clusters-minimal-app) log - - [1663141268.348233][2414:2414] CHIP:IM: Received Read request - [1663141268.348332][2414:2414] CHIP:DMG: ReadRequestMessage = - [1663141268.348388][2414:2414] CHIP:DMG: { - [1663141268.348418][2414:2414] CHIP:DMG: AttributePathIBs = - [1663141268.348465][2414:2414] CHIP:DMG: [ - [1663141268.348498][2414:2414] CHIP:DMG: AttributePathIB = - [1663141268.348545][2414:2414] CHIP:DMG: { - [1663141268.348584][2414:2414] CHIP:DMG: Endpoint = 0x1, - [1663141268.348637][2414:2414] CHIP:DMG: Cluster = 0x2f, - [1663141268.348685][2414:2414] CHIP:DMG: Attribute = 0x0000_000F, - [1663141268.348735][2414:2414] CHIP:DMG: } - [1663141268.348774][2414:2414] CHIP:DMG: - [1663141268.348820][2414:2414] CHIP:DMG: ], - [1663141268.348857][2414:2414] CHIP:DMG: - [1663141268.348904][2414:2414] CHIP:DMG: isFabricFiltered = true, - [1663141268.348938][2414:2414] CHIP:DMG: InteractionModelRevision = 1 - [1663141268.348982][2414:2414] CHIP:DMG: }, - [1663141268.349086][2414:2414] CHIP:DMG: IM RH moving to [GeneratingReports] - [1663141268.349214][2414:2414] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1663141268.349251][2414:2414] CHIP:DMG: Cluster 2f, Attribute f is dirty ./chip-tool powersource read bat-replaceability 1 1 - - Verify the ReadRequestMessage on TH(all-clusters-minimal-app) log - - - [1663141378.115928][2414:2414] CHIP:DMG: ReadRequestMessage = - [1663141378.115978][2414:2414] CHIP:DMG: { - [1663141378.116006][2414:2414] CHIP:DMG: AttributePathIBs = - [1663141378.116050][2414:2414] CHIP:DMG: [ - [1663141378.116080][2414:2414] CHIP:DMG: AttributePathIB = - [1663141378.116124][2414:2414] CHIP:DMG: { - [1663141378.116160][2414:2414] CHIP:DMG: Endpoint = 0x1, - [1663141378.116208][2414:2414] CHIP:DMG: Cluster = 0x2f, - [1663141378.116247][2414:2414] CHIP:DMG: Attribute = 0x0000_0010, - [1663141378.116294][2414:2414] CHIP:DMG: } - [1663141378.116330][2414:2414] CHIP:DMG: - [1663141378.116372][2414:2414] CHIP:DMG: ], - [1663141378.116407][2414:2414] CHIP:DMG: - [1663141378.116450][2414:2414] CHIP:DMG: isFabricFiltered = true, - [1663141378.116481][2414:2414] CHIP:DMG: InteractionModelRevision = 1 - [1663141378.116521][2414:2414] CHIP:DMG: }, - [1663141378.116621][2414:2414] CHIP:DMG: IM RH moving to [GeneratingReports] + Verify that TH recieves "bat-replaceability" attribute with value 0 on the TH (all-clusters-minimal-app) log and below is the sample log provided for the raspi platform: + + [1686318315.534100][108731:108731] CHIP:DMG: ReportDataMessage = + [1686318315.534102][108731:108731] CHIP:DMG: { + [1686318315.534104][108731:108731] CHIP:DMG: AttributeReportIBs = + [1686318315.534107][108731:108731] CHIP:DMG: [ + [1686318315.534108][108731:108731] CHIP:DMG: AttributeReportIB = + [1686318315.534112][108731:108731] CHIP:DMG: { + [1686318315.534113][108731:108731] CHIP:DMG: AttributeDataIB = + [1686318315.534116][108731:108731] CHIP:DMG: { + [1686318315.534118][108731:108731] CHIP:DMG: DataVersion = 0x9b8b1ef2, + [1686318315.534120][108731:108731] CHIP:DMG: AttributePathIB = + [1686318315.534122][108731:108731] CHIP:DMG: { + [1686318315.534124][108731:108731] CHIP:DMG: Endpoint = 0x1, + [1686318315.534126][108731:108731] CHIP:DMG: Cluster = 0x2f, + [1686318315.534129][108731:108731] CHIP:DMG: Attribute = 0x0000_0010, + [1686318315.534131][108731:108731] CHIP:DMG: } + [1686318315.534133][108731:108731] CHIP:DMG: + [1686318315.534136][108731:108731] CHIP:DMG: Data = 0, + [1686318315.534138][108731:108731] CHIP:DMG: }, + [1686318315.534141][108731:108731] CHIP:DMG: + [1686318315.534142][108731:108731] CHIP:DMG: }, + [1686318315.534145][108731:108731] CHIP:DMG: + [1686318315.534147][108731:108731] CHIP:DMG: ], + [1686318315.534150][108731:108731] CHIP:DMG: + [1686318315.534152][108731:108731] CHIP:DMG: SuppressResponse = true, + [1686318315.534153][108731:108731] CHIP:DMG: InteractionModelRevision = 1 + [1686318315.534155][108731:108731] CHIP:DMG: } + [1686318315.534157][108731:108731] CHIP:DMG: + [1686318315.534179][108731:108731] CHIP:DMG: OnReportConfirm: NumReports = 0 + [1686318315.534181][108731:108731] CHIP:DMG: ReportsInFlight = 0 with readHandler 0, RE has no more messages disabled: true - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" + "Step 6: DUT reads all supported optional attributes from TH one at a + time in a manufacturer specific order" PICS: PS.C.AO-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -564,25 +680,25 @@ tests: ./chip-tool powersource read bat-charge-level 1 1 - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + on TH all-clusters-minimal-app verify status response as UNSUPPORTED_ATTRIBUTE General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-replacement-needed 1 1 - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + on TH all-clusters-minimal-app verify status response as UNSUPPORTED_ATTRIBUTE General error: 0x86 (UNSUPPORTED_ATTRIBUTE) ./chip-tool powersource read bat-replaceability 1 1 - on TH all-clusters-minimal-app verify status response a UNSUPPORTED_ATTRIBUTE + on TH all-clusters-minimal-app verify status response as UNSUPPORTED_ATTRIBUTE General error: 0x86 (UNSUPPORTED_ATTRIBUTE) disabled: true - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" + "Step 7: DUT writes a suitable value to all supported optional + attributes on the TH one at a time in a manufacturer specific order" PICS: PS.C.AO-WRITE verification: | This cluster doesn't have any writable attributes diff --git a/src/app/tests/suites/certification/Test_TC_REFALM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_REFALM_1_1.yaml new file mode 100644 index 00000000000000..57410bc6a0eed5 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_REFALM_1_1.yaml @@ -0,0 +1,110 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 223.1.1. [TC-REFALM-1.1] Global attributes with DUT as Server + +PICS: + - REFALM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute" + verification: | + ./chip-tool refrigeratoralarm read cluster-revision 1 1 + Verify the "ClusterRevision" value is of unit16 and reflects the highest revision number 1 on the TH(Chip-tool) and below is the sample log provided for the raspi platform: + + [1688447208.697823][4176:4178] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_FFFD DataVersion: 1386394810 + [1688447208.701428][4176:4178] CHIP:TOO: ClusterRevision: 1 + [1688447208.701860][4176:4178] CHIP:EM: <<< [E:62008i S:18101 M:251225540 (Ack:117573954)] (S) Msg TX to 1:0000000000000001 [5AF3] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: "Step 3: TH reads from the DUT the FeatureMap attribute" + verification: | + ./chip-tool refrigeratoralarm read feature-map 1 1 + On TH(chip-tool), verify that DUT responds the Featuremap value as 0 and below is the sample log provided for the raspi platform: + + [1689677380.469073][18361:18363] CHIP:DMG: InteractionModelRevision = 1 + [1689677380.469079][18361:18363] CHIP:DMG: } + [1689677380.469148][18361:18363] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_FFFC DataVersion: 1517282962 + [1689677380.469174][18361:18363] CHIP:TOO: FeatureMap: 0 + [1689677380.469235][18361:18363] CHIP:EM: <<< [E:58398i S:27283 M:10886148 (Ack:14508298)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689677380.469247][18361:18363] CHIP:IN: (S) Sending msg 10886148 on secure session with LSID: 27283 + [1689677380.469272][18361:18363] CHIP:EM: Flushed pending ack for MessageCounter:14508298 on exchange 58398i + disabled: true + + - label: "Step 4: TH reads from the DUT the AttributeList attribute" + verification: | + ./chip-tool refrigeratoralarm read attribute-list 1 1 + Verify " AttributeList " value consists the list of mandatory attributes (0, 2, 3, 65533, 65532, 65531, 65529, 65528)on the TH(Chip-tool) Log: + Below is the sample log provided for the raspi platform: + [1689677267.384744][18335:18337] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_FFFB DataVersion: 1517282962 + [1689677267.384781][18335:18337] CHIP:TOO: AttributeList: 9 entries + [1689677267.384792][18335:18337] CHIP:TOO: [1]: 0 + [1689677267.384799][18335:18337] CHIP:TOO: [2]: 2 + [1689677267.384806][18335:18337] CHIP:TOO: [3]: 3 + [1689677267.384821][18335:18337] CHIP:TOO: [4]: 65528 + [1689677267.384827][18335:18337] CHIP:TOO: [5]: 65529 + [1689677267.384834][18335:18337] CHIP:TOO: [6]: 65530 + [1689677267.384841][18335:18337] CHIP:TOO: [7]: 65531 + [1689677267.384848][18335:18337] CHIP:TOO: [8]: 65532 + [1689677267.384853][18335:18337] CHIP:TOO: [9]: 65533 + [1689677267.384918][18335:18337] CHIP:EM: <<< [E:37908i S:49245 M:71138788 (Ack:86010986)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689677267.384931][18335:18337] CHIP:IN: (S) Sending msg 71138788 on secure session with LSID: 49245 + disabled: true + + - label: "Step 5: TH reads from the DUT the EventList attribute." + verification: | + ./chip-tool refrigeratoralarm read event-list 1 1 + Verify " EventList attribute " consists the list may contain optional events(1) on the TH(Chip-tool) Log: + Below is the sample log provided for the raspi platform: + + [1689677416.105596][18367:18369] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_FFFA DataVersion: 1517282962 + [1689677416.105625][18367:18369] CHIP:TOO: EventList: 1 entries + [1689677416.105635][18367:18369] CHIP:TOO: [1]: 0 + [1689677416.105696][18367:18369] CHIP:EM: <<< [E:51484i S:36714 M:192916227 (Ack:1705890)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689677416.105710][18367:18369] CHIP:IN: (S) Sending msg 192916227 on secure session with LSID: 36714 + [1689677416.105737][18367:18369] CHIP:EM: Flushed pending ack for MessageCounter:1705890 on exchange 51484i + disabled: true + + - label: "Step 6: TH reads from the DUT the AcceptedCommandList attribute." + verification: | + ./chip-tool refrigeratoralarm read accepted-command-list 1 1 + Verify " AcceptedCommandList " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1688447421.513437][4196:4198] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_FFF9 DataVersion: 1386394810 + [1688447421.513582][4196:4198] CHIP:TOO: AcceptedCommandList: 0 entries + [1688447421.513880][4196:4198] CHIP:EM: <<< [E:43358i S:53509 M:77611862 (Ack:72266902)] (S) Msg TX to 1:0000000000000001 [5AF3] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: "Step 7: TH reads from the DUT the GeneratedCommandList attribute." + verification: | + ./chip-tool refrigeratoralarm read generated-command-list 1 1 + Verify " GeneratedCommandList " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1688447564.178537][4220:4222] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_FFF8 DataVersion: 1795162772 + [1688447564.178684][4220:4222] CHIP:TOO: GeneratedCommandList: 0 entries + [1688447564.178984][4220:4222] CHIP:EM: <<< [E:5540i S:25125 M:256711779 (Ack:197472718)] (S) Msg TX to 1:0000000000000001 [10DB] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_REFALM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_REFALM_2_1.yaml new file mode 100644 index 00000000000000..f254239933333e --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_REFALM_2_1.yaml @@ -0,0 +1,76 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 223.2.1. [TC-REFALM-2.1] Attributes with DUT as Server + +PICS: + - REFALM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" + verification: | + + disabled: true + + - label: + "Step 2: Ensure that the door alarm is not locally suppressed and the + door is closed" + verification: | + + disabled: true + + - label: "Step 3: TH reads from the DUT the Mask attribute" + PICS: REFALM.S.A0000 + verification: | + ./chip-tool refrigeratoralarm read mask 1 1 + On TH(chip-tool), Verify that the DUT response contains a 32-bit value with bit 0 set to 1. + [1688447677.832882][4229:4231] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_0000 DataVersion: 1795162772 + [1688447677.833165][4229:4231] CHIP:TOO: Mask: 1 + [1688447677.833494][4229:4231] CHIP:EM: <<< [E:27636i S:5449 M:199797248 (Ack:151091416)] (S) Msg TX to 1:0000000000000001 [10DB] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: "Step 4: TH reads from the DUT the State attribute" + PICS: REFALM.S.A0002 + verification: | + ./chip-tool refrigeratoralarm read state 1 1 + On TH(chip-tool), Verify that the DUT response contains a 32-bit value with bit 0 set to 0. + + [1688447820.603249][4247:4249] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_0002 DataVersion: 1795162772 + [1688447820.603415][4247:4249] CHIP:TOO: State: 0 + [1688447820.603708][4247:4249] CHIP:EM: <<< [E:2198i S:4260 M:156565261 (Ack:46517349)] (S) Msg TX to 1:0000000000000001 [10DB] --- Type 0000:10 (SecureChannel:StandaloneAck) + disabled: true + + - label: "Step 5: TH reads from the DUT the Supported attribute" + PICS: REFALM.S.A0003 + verification: | + ./chip-tool refrigeratoralarm read supported 1 1 + On TH(chip-tool), Verify that the DUT response contains a 32-bit value with bit 0 set to 1. + + [1689677642.708638][18413:18415] CHIP:DMG: SuppressResponse = true, + [1689677642.708645][18413:18415] CHIP:DMG: InteractionModelRevision = 1 + [1689677642.708651][18413:18415] CHIP:DMG: } + [1689677642.708726][18413:18415] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0057 Attribute 0x0000_0003 DataVersion: 1517282962 + [1689677642.708773][18413:18415] CHIP:TOO: Supported: 1 + [1689677642.708845][18413:18415] CHIP:EM: <<< [E:32432i S:53289 M:29829407 (Ack:142651059)] (S) Msg TX to 1:0000000000000001 [BFDE] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689677642.708859][18413:18415] CHIP:IN: (S) Sending msg 29829407 on secure session with LSID: 53289 + [1689677642.708900][18413:18415] CHIP:EM: Flushed pending ack for MessageCounter:142651059 on exchange 32432i + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_REFALM_2_2.yaml b/src/app/tests/suites/certification/Test_TC_REFALM_2_2.yaml new file mode 100644 index 00000000000000..108b767c66978f --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_REFALM_2_2.yaml @@ -0,0 +1,100 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 223.2.2. [TC-REFALM-2.2] Primary functionality with DUT as Server + +PICS: + - REFALM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" + verification: | + + disabled: true + + - label: "Step 2: Ensure that the door on the DUT is closed" + verification: | + + disabled: true + + - label: "Step 3: TH reads from the DUT the State attribute" + PICS: REFALM.S.A0002 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 0 + disabled: true + + - label: "Step 4: Manually open the door on the DUT" + verification: | + + disabled: true + + - label: "Step 5: after a few seconds, TH reads State attribute from DUT" + verification: | + Wait for the time defined in PIXIT.REFALM.AlarmThreshold + disabled: true + + - label: "Step 6: TH reads from the DUT the State attribute" + PICS: REFALM.S.A0002 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 1 + disabled: true + + - label: "Step 7: Ensure that the door on the DUT is closed" + verification: | + + disabled: true + + - label: "Step 8: TH reads from the DUT the State attribute" + PICS: REFALM.S.A0002 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 0 + disabled: true + + - label: "Step 9: TH sends Reset command to the DUT" + PICS: REFALM.S.C00.Rsp + verification: | + Verify DUT responds w/ status UNSUPPORTED_COMMAND(0x81) + disabled: true + + - label: "Step 10: TH sends ModifyEnabledAlarms command to the DUT" + PICS: REFALM.S.C01.Rsp + verification: | + Verify DUT responds w/ status UNSUPPORTED_COMMAND(0x81) + disabled: true + + - label: "Step 11: Set up subscription to the Notify event." + PICS: REFALM.S.E00 && REFALM.S.A0002 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 0 + disabled: true + + - label: "Step 12: Repeat steps 4 then 5" + PICS: REFALM.S.E00 + verification: | + After step 5 (repeated), receive a Notify event with the State attribute bit 0 set to 1. + disabled: true + + - label: "Step 13: Repeat step 7" + PICS: REFALM.S.E00 + verification: | + Receive a Notify event with the State attribute bit 0 set to 0. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_REFALM_2_3.yaml b/src/app/tests/suites/certification/Test_TC_REFALM_2_3.yaml new file mode 100644 index 00000000000000..ef4b026cf81dc5 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_REFALM_2_3.yaml @@ -0,0 +1,92 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 217.2.3. [TC-REFALM-2.3] Local suppression of the door alarm with DUT as + Server + +PICS: + - REFALM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" + verification: | + + disabled: true + + - label: "Step 2: Ensure that the door on the DUT is closed" + verification: | + + disabled: true + + - label: "Step 3: TH reads from the DUT the State attribute" + PICS: REFALM.S.A0002 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 0 + disabled: true + + - label: "Step 4: TH reads from the DUT the Mask attribute" + PICS: REFALM.S.A0000 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 1 + disabled: true + + - label: "Step 5: Manually open the door on the DUT" + verification: | + + disabled: true + + - label: "Step 6: Wait for the time defined in PIXIT.REFALM.AlarmThreshold" + verification: | + + disabled: true + + - label: "Step 7: TH reads from the DUT the State attribute" + PICS: REFALM.S.A0002 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 1 + disabled: true + + - label: + "Step 8: Invoke the on DUT sequence to suppress the alarm, do not + close the door" + verification: | + + disabled: true + + - label: "Step 9: TH reads from the DUT the State attribute" + PICS: REFALM.S.A0002 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 0 + disabled: true + + - label: "Step 10: TH reads from the DUT the Mask attribute" + PICS: REFALM.S.A0000 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 0 + disabled: true + + - label: "Step 11: TH reads from the DUT the Supported attribute" + PICS: REFALM.S.A0003 + verification: | + Verify that the DUT response contains a 32-bit value with bit 0 set to 1 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml new file mode 100644 index 00000000000000..de9ad5afadc025 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml @@ -0,0 +1,99 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 92.1.1. [TC-RVCCLEANM-1.1] Global attributes with DUT as Server + +PICS: + - RVCCLEANM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute." + verification: | + ./chip-tool rvcleanm read cluster-revision 1 1 + + Verify " ClusterRevision attribute has the value 2 " and reflects the highest revision number 2 on the TH(Chip-tool) and below is the sample log provided for the raspi platform: + + [1645775623.658997][3277:3282] CHIP:TOO: ClusterRevision: 1 + disabled: true + + - label: "Step 3: TH reads from the DUT the FeatureMap attribute." + verification: | + ./chip-tool rvcleanm read feature-map 1 1 + On the reference app we see featureMap value 1, This value changes depending on DUT implementing the features + Verify FeatureMap attribute On the TH(Chip-tool) Log + + [1649052001.646939][8355:8360] CHIP:TOO: FeatureMap: 1 + disabled: true + + - label: "Step 4: TH reads from the DUT the AttributeList attribute." + verification: | + ./chip-tool rvcleanm read attribute-list 1 1 + + Verify " AttributeList "should include the mandatory attributes (values 0, 2, 3) and + global attributes (value 65533, 65532, 65531, 65530, 65529 and 65528) + list may include optional attribute(value 0x0004), if RVCCLEANM.S.A0004(StartUpMode) supports, + list contains feature dependent attribute (values 0x0005),if RVCCLEANM.S.F00(DEPONOFF) is true on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1676288620.483812][4014:4016] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_FFFB DataVersion: 2649295313 + [1676288620.483850][4014:4016] CHIP:TOO: AttributeList: 13 entries + [1676288620.483861][4014:4016] CHIP:TOO: [1]: 0 + [1676288620.483870][4014:4016] CHIP:TOO: [2]: 1 + [1676288620.483878][4014:4016] CHIP:TOO: [3]: 65528 + [1676288620.483886][4014:4016] CHIP:TOO: [4]: 65529 + [1676288620.483892][4014:4016] CHIP:TOO: [5]: 65530 + [1676288620.483899][4014:4016] CHIP:TOO: [6]: 65531 + [1676288620.483906][4014:4016] CHIP:TOO: [7]: 4293984257 + [1676288620.483915][4014:4016] CHIP:TOO: [8]: 2 + [1676288620.483922][4014:4016] CHIP:TOO: [9]: 3 + [1676288620.483929][4014:4016] CHIP:TOO: [10]: 4 + [1676288620.483934][4014:4016] CHIP:TOO: [11]: 5 + [1676288620.483941][4014:4016] CHIP:TOO: [12]: 65532 + [1676288620.483947][4014:4016] CHIP:TOO: [13]: 65533 + [1676288620.484034][4014:4016] CHIP:EM: <<< [E:29816i M:167554497 (Ack:41020138)] (S) Msg TX to 1:000000000 + + + *NOTE* : This sample attribute list reflects the currently implemented attributes on the all-clusters-app. + disabled: true + + - label: "Step 5: TH reads from the DUT the AcceptedCommandList attribute." + verification: | + ./chip-tool rvcleanm read accepted-command-list 1 1 + + Verify the "AcceptedCommandList" contains feature dependent commands + + [1650274602.826352][8965:8970] CHIP:TOO: AcceptedCommandList: 1 entries + [1650274602.826442][8965:8970] CHIP:TOO: [1]: 0 + disabled: true + + - label: "Step 6: TH reads from the DUT the GeneratedCommandList attribute." + verification: | + ./chip-tool rvcleanm read generated-command-list 1 1 + + Verify "GeneratedCommandList" contains feature dependent commands + + [1650274662.075309][8972:8977] CHIP:TOO: GeneratedCommandList: 0 entries + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_2.yaml b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_2.yaml new file mode 100644 index 00000000000000..d9d98f55d8cfd6 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_2.yaml @@ -0,0 +1,108 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 92.2.1. [TC-RVCCLEANM-1.2] Cluster attributes with DUT as Server + +PICS: + - RVCCLEANM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: RVCCLEANM.S.A0000 + verification: | + ./chip-tool rvcleanm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute should contains atleast two ModeOptionsStruct entries with unique mode field value and label field value below is the sample log provided for the raspi platform: + + [1654595167.600241][14362:14367] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 + [1654595167.600345][14362:14367] CHIP:TOO: SupportedModes: 3 entries + [1654595167.600403][14362:14367] CHIP:TOO: [1]: { + [1654595167.600430][14362:14367] CHIP:TOO: Label: Black + [1654595167.600466][14362:14367] CHIP:TOO: Mode: 0 + [1654595167.600495][14362:14367] CHIP:TOO: SemanticTags: 1 entries + [1654595167.600564][14362:14367] CHIP:TOO: [1]: { + [1654595167.600589][14362:14367] CHIP:TOO: MfgCode: 0 + [1654595167.600612][14362:14367] CHIP:TOO: Value: 0 + [1654595167.600637][14362:14367] CHIP:TOO: } + [1654595167.600662][14362:14367] CHIP:TOO: } + [1654595167.600695][14362:14367] CHIP:TOO: [2]: { + [1654595167.600719][14362:14367] CHIP:TOO: Label: Cappuccino + [1654595167.600742][14362:14367] CHIP:TOO: Mode: 4 + [1654595167.600768][14362:14367] CHIP:TOO: SemanticTags: 1 entries + [1654595167.600796][14362:14367] CHIP:TOO: [1]: { + [1654595167.600820][14362:14367] CHIP:TOO: MfgCode: 0 + [1654595167.600842][14362:14367] CHIP:TOO: Value: 0 + [1654595167.600865][14362:14367] CHIP:TOO: } + [1654595167.600889][14362:14367] CHIP:TOO: } + [1654595167.600921][14362:14367] CHIP:TOO: [3]: { + [1654595167.600945][14362:14367] CHIP:TOO: Label: Espresso + [1654595167.600968][14362:14367] CHIP:TOO: Mode: 7 + [1654595167.600993][14362:14367] CHIP:TOO: SemanticTags: 1 entries + [1654595167.601022][14362:14367] CHIP:TOO: [1]: { + [1654595167.601046][14362:14367] CHIP:TOO: MfgCode: 0 + [1654595167.601068][14362:14367] CHIP:TOO: Value: 0 + [1654595167.601091][14362:14367] CHIP:TOO: } + [1654595167.601115][14362:14367] CHIP:TOO: } + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + ./chip-tool rvcleanm read current-mode 1 1 + + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer and the value is from supported_modes_dut and below is the sample log provided for the raspi platform: + + [1645776767.611140][4667:4672] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469718 + + [1645776767.611214][4667:4672] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: "Step 4: TH reads from the DUT the OnMode attribute." + PICS: RVCCLEANM.S.A0003 + verification: | + ./chip-tool rvcleanm read on-mode 1 1 + + Verify on TH(chip-tool) logs, OnMode attribute value is an integer and the value is from supported_modes_dut and below is the sample log provided for the raspi platform: + + + [1649676072.465968][10754:10759] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4277065072 + + [1649676072.466094][10754:10759] CHIP:TOO: OnMode: null + disabled: true + + - label: "Step 5: TH reads from the DUT the StartUpMode attribute." + PICS: RVCCLEANM.S.A0002 + verification: | + ./chip-tool rvcleanm read start-up-mode 1 1 + + Verify on TH(chip-tool) logs, StartUpMode attribute value is an integer and value is from supported_modes_dut, below is the sample log provided for the raspi platform: + + + [1649677014.496348][10778:10784] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0004 DataVersion: 4277065072 + + [1649677014.496469][10778:10784] CHIP:TOO: StartUpMode: 0 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_2_1.yaml new file mode 100644 index 00000000000000..1925f2b89c4066 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_2_1.yaml @@ -0,0 +1,176 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 92.3.1. [TC-RVCCLEANM-2.1] Change to Mode functionality with DUT as Server + +PICS: + - RVCCLEANM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: RVCCLEANM.S.A0000 + verification: | + ./chip-tool rvcleanm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute should contains two or more ModeOptionsStruct entries and save the Mode field values as supported_modes_dut, below is the sample log provided for the raspi platform: + + [1685018204.991818][16390:16392] CHIP:DMG: } + [1685018204.992182][16390:16392] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 3673378954 + [1685018204.992279][16390:16392] CHIP:TOO: SupportedModes: 3 entries + [1685018204.992320][16390:16392] CHIP:TOO: [1]: { + [1685018204.992331][16390:16392] CHIP:TOO: Label: Black + [1685018204.992350][16390:16392] CHIP:TOO: Mode: 0 + [1685018204.992376][16390:16392] CHIP:TOO: SemanticTags: 1 entries + [1685018204.992408][16390:16392] CHIP:TOO: [1]: { + [1685018204.992420][16390:16392] CHIP:TOO: MfgCode: 0 + [1685018204.992430][16390:16392] CHIP:TOO: Value: 0 + [1685018204.992440][16390:16392] CHIP:TOO: } + [1685018204.992452][16390:16392] CHIP:TOO: } + [1685018204.992482][16390:16392] CHIP:TOO: [2]: { + [1685018204.992492][16390:16392] CHIP:TOO: Label: Cappuccino + [1685018204.992504][16390:16392] CHIP:TOO: Mode: 4 + [1685018204.992525][16390:16392] CHIP:TOO: SemanticTags: 1 entries + [1685018204.992547][16390:16392] CHIP:TOO: [1]: { + [1685018204.992558][16390:16392] CHIP:TOO: MfgCode: 0 + [1685018204.992567][16390:16392] CHIP:TOO: Value: 0 + [1685018204.992578][16390:16392] CHIP:TOO: } + [1685018204.992588][16390:16392] CHIP:TOO: } + [1685018204.992610][16390:16392] CHIP:TOO: [3]: { + [1685018204.992619][16390:16392] CHIP:TOO: Label: Espresso + [1685018204.992628][16390:16392] CHIP:TOO: Mode: 7 + [1685018204.992641][16390:16392] CHIP:TOO: SemanticTags: 1 entries + [1685018204.992657][16390:16392] CHIP:TOO: [1]: { + [1685018204.992666][16390:16392] CHIP:TOO: MfgCode: 0 + [1685018204.992678][16390:16392] CHIP:TOO: Value: 0 + [1685018204.992687][16390:16392] CHIP:TOO: } + [1685018204.992695][16390:16392] CHIP:TOO: } + disabled: true + + - label: "Step 2: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + ./chip-tool rvcleanm read current-mode 1 1 + + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer value + - save tha value as old_current_mode_dut + - select a value from supported_modes_dut, different from old_current_mode_dut, and which corresponds to a mode the device can switch to, given its current state and save this value as new_mode_th + - select a value which is NOT in supported_modes_dut and save it as invalid_mode_th, + below is the sample log provided for the raspi platform: + + [1685018283.726571][16418:16420] CHIP:DMG: SuppressResponse = true, + [1685018283.726581][16418:16420] CHIP:DMG: InteractionModelRevision = 1 + [1685018283.726589][16418:16420] CHIP:DMG: } + [1685018283.726667][16418:16420] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3898153349 + [1685018283.726680][16418:16420] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: + "Step 3: TH sends a ChangeToMode command to the DUT with NewMode set + to old_current_mode_dut [Petru] note that currently this constraint is + not in the spec. The unapproved proposal is here: + https://github.com/CHIP-Specifications/connectedhomeip-spec/pull/7096 + Until that's approved, please skip this step." + PICS: RVCCLEANM.S.C00.Rsp + verification: | + ChangeToMode Command is not impleented. + disabled: true + + - label: + "Step 4: Manually put the device in a state from which it will FAIL to + transition to PIXIT.RVCCLEANM.MODE_CHANGE_FAIL" + verification: | + + disabled: true + + - label: "Step 5: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + + disabled: true + + - label: + "Step 6: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.RVCCLEANM.MODE_CHANGE_FAIL" + PICS: RVCCLEANM.S.C00.Rsp + verification: | + ChangeToMode Command is not impleented. + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + ./chip-tool rvcleanm read current-mode 1 1 + + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer value and equal to the new_mode_th, below is the sample log provided for the raspi platform: + + [1685018283.726571][16418:16420] CHIP:DMG: SuppressResponse = true, + [1685018283.726581][16418:16420] CHIP:DMG: InteractionModelRevision = 1 + [1685018283.726589][16418:16420] CHIP:DMG: } + [1685018283.726667][16418:16420] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3898153349 + [1685018283.726680][16418:16420] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: + "Step 8: Manually put the device in a state from which it will + SUCCESSFULLY transition to PIXIT.RVCCLEANM.MODE_CHANGE_OK" + verification: | + + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + + disabled: true + + - label: + "Step 10: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.RVCCLEANM.MODE_CHANGE_OK" + PICS: RVCCLEANM.S.C00.Rsp + verification: | + ChangeToMode Command is not impleented. + disabled: true + + - label: "Step 11: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + + disabled: true + + - label: + "Step 12: TH sends a ChangeToMode command to the DUT with NewMode set + to invalid_mode_th" + PICS: RVCCLEANM.S.C00.Rsp + verification: | + + disabled: true + + - label: "Step 13: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_1.yaml new file mode 100644 index 00000000000000..2a4df6ad202721 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_1.yaml @@ -0,0 +1,148 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 92.4.1. [TC-RVCCLEANM-3.1] On Mode functionality with DUT as Server + +PICS: + - RVCCLEANM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the OnMode attribute." + PICS: RVCCLEANM.S.A0003 && RVCCLEANM.S.F00 + verification: | + ./chip-tool rvcleanm read on-mode 1 1 + + On TH(chip-tool), Verify OnMode attribute value is an integer. save the value as on_mode_dut and below is the sample log provided for the raspi platform: + + [1649678983.679893][10871:10876] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4277065073 + [1649678983.680002][10871:10876] CHIP:TOO: OnMode: 0 + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 && RVCCLEANM.S.F00 + verification: | + ./chip-tool rvcleanm read current-mode 1 1 + + On TH(chip-tool), Verify CurrentMode attribute is an integer. save the value as old_current_mode_dut and below is the sample log provided for the raspi platform: + + [1649679034.895848][10879:10884] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073 + [1649679034.895972][10879:10884] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: RVCCLEANM.S.A0000 && RVCCLEANM.S.F00 + verification: | + ./chip-tool rvcleanm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and save the value as new_mode_th, below is the sample log provided for the raspi platform: + + [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 + [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries + [1654595268.854743][14400:14405] CHIP:TOO: [1]: { + [1654595268.854772][14400:14405] CHIP:TOO: Label: Black + [1654595268.854811][14400:14405] CHIP:TOO: Mode: 0 + [1654595268.854843][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.854891][14400:14405] CHIP:TOO: [1]: { + [1654595268.854918][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.854945][14400:14405] CHIP:TOO: Value: 0 + [1654595268.854971][14400:14405] CHIP:TOO: } + [1654595268.855000][14400:14405] CHIP:TOO: } + [1654595268.855038][14400:14405] CHIP:TOO: [2]: { + [1654595268.855064][14400:14405] CHIP:TOO: Label: Cappuccino + [1654595268.855089][14400:14405] CHIP:TOO: Mode: 4 + [1654595268.855117][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855149][14400:14405] CHIP:TOO: [1]: { + [1654595268.855175][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855199][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855223][14400:14405] CHIP:TOO: } + [1654595268.855249][14400:14405] CHIP:TOO: } + [1654595268.855284][14400:14405] CHIP:TOO: [3]: { + [1654595268.855310][14400:14405] CHIP:TOO: Label: Espresso + [1654595268.855332][14400:14405] CHIP:TOO: Mode: 7 + [1654595268.855360][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855390][14400:14405] CHIP:TOO: [1]: { + [1654595268.855416][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855440][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855464][14400:14405] CHIP:TOO: } + [1654595268.855490][14400:14405] CHIP:TOO: } + [1649677252.376226][10804:10809] CHIP:TOO: SemanticTag: 0 + [1649677252.376252][10804:10809] CHIP:TOO: } + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: RVCCLEANM.S.C00.Rsp && RVCCLEANM.S.F00 + verification: | + ./chip-tool rvcleanm change-to-mode 7 1 1 + + On TH(chip-tool) log, verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931013.571019][20667:20669] CHIP:DMG: + [1684931013.571021][20667:20669] CHIP:DMG: StatusIB = + [1684931013.571024][20667:20669] CHIP:DMG: { + [1684931013.571027][20667:20669] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931013.571030][20667:20669] CHIP:DMG: }, + [1684931013.571034][20667:20669] CHIP:DMG: + disabled: true + + - label: "Step 6: TH sends a Off command to the DUT" + PICS: OO.S.C00.Rsp && RVCCLEANM.S.F00 + verification: | + ./chip-tool onoff off 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931101.118656][20709:20711] CHIP:DMG: StatusIB = + [1684931101.118659][20709:20711] CHIP:DMG: { + [1684931101.118663][20709:20711] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931101.118665][20709:20711] CHIP:DMG: }, + disabled: true + + - label: "Step 7: TH sends a On command to the DUT" + PICS: OO.S.C01.Rsp && RVCCLEANM.S.F00 + verification: | + ./chip-tool onoff on 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931217.055514][20729:20731] CHIP:DMG: StatusIB = + [1684931217.055517][20729:20731] CHIP:DMG: { + [1684931217.055520][20729:20731] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931217.055523][20729:20731] CHIP:DMG: }, + disabled: true + + - label: "Step 8: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 && RVCCLEANM.S.F00 + verification: | + ./chip-tool rvcleanm read current-mode 1 1 + + On TH(chip-tool),verify that CurrentMode attribute value is an integer and value is equal to on_mode_dut. below is the sample log provided for the raspi platform: + + [1649679202.069163][10899:10904] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073 + [1649679202.069278][10899:10904] CHIP:TOO: CurrentMode: 0 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_2.yaml b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_2.yaml new file mode 100644 index 00000000000000..0861a1f2117d57 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_2.yaml @@ -0,0 +1,129 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 92.4.2. [TC-RVCCLEANM-3.2] Startup Mode functionality with DUT as Server + +PICS: + - RVCCLEANM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the StartUpMode attribute." + PICS: RVCCLEANM.S.A0002 + verification: | + ./chip-tool rvcleanm read start-up-mode 1 1 + + On TH(chip-tool), Verify StartUpMode attribute value is an integer. save the valueas startup_mode_dut and below is the sample log provided for the raspi platform: + + [1645777708.406864][4841:4846] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003DataVersion: 3781469721 + [1645777708.406933][4841:4846] CHIP:TOO: StartUpMode: 0 + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + ./chip-tool rvcleanm read current-mode 1 1 + + On TH(chip-tool), Verify CurrentMode attribute value is integer. save the value as old_current_mode_dut and below is the sample log provided for the raspi platform: + + [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 + [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 + + + If startup_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: RVCCLEANM.S.A0000 + verification: | + ./chip-tool rvcleanm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and Save the value as new_mode_th, below is the sample log provided for the raspi platform: + + [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 + [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries + [1654595268.854743][14400:14405] CHIP:TOO: [1]: { + [1654595268.854772][14400:14405] CHIP:TOO: Label: Black + [1654595268.854811][14400:14405] CHIP:TOO: Mode: 0 + [1654595268.854843][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.854891][14400:14405] CHIP:TOO: [1]: { + [1654595268.854918][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.854945][14400:14405] CHIP:TOO: Value: 0 + [1654595268.854971][14400:14405] CHIP:TOO: } + [1654595268.855000][14400:14405] CHIP:TOO: } + [1654595268.855038][14400:14405] CHIP:TOO: [2]: { + [1654595268.855064][14400:14405] CHIP:TOO: Label: Cappuccino + [1654595268.855089][14400:14405] CHIP:TOO: Mode: 4 + [1654595268.855117][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855149][14400:14405] CHIP:TOO: [1]: { + [1654595268.855175][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855199][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855223][14400:14405] CHIP:TOO: } + [1654595268.855249][14400:14405] CHIP:TOO: } + [1654595268.855284][14400:14405] CHIP:TOO: [3]: { + [1654595268.855310][14400:14405] CHIP:TOO: Label: Espresso + [1654595268.855332][14400:14405] CHIP:TOO: Mode: 7 + [1654595268.855360][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855390][14400:14405] CHIP:TOO: [1]: { + [1654595268.855416][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855440][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855464][14400:14405] CHIP:TOO: } + [1654595268.855490][14400:14405] CHIP:TOO: } + [1649677252.376226][10804:10809] CHIP:TOO: SemanticTag: 0 + [1649677252.376252][10804:10809] CHIP:TOO: } + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: RVCCLEANM.S.C00.Rsp + verification: | + ./chip-tool rvcleanm change-to-mode 4 1 1 + + + On TH(chip-tool) , Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931419.768138][20792:20794] CHIP:DMG: StatusIB = + [1684931419.768143][20792:20794] CHIP:DMG: { + [1684931419.768148][20792:20794] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931419.768152][20792:20794] CHIP:DMG: }, + disabled: true + + - label: "Step 6: Physically power cycle the device" + verification: | + Physically power cycle the device. + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + ./chip-tool rvcleanm read current-mode 1 1 + + on TH(chip-tool), Verify that CurrentMode attribute value is same as value recorded in step 1 and below is the sample log provided for the raspi platform: + + [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 + [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_3.yaml b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_3.yaml new file mode 100644 index 00000000000000..72998922dae970 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_3_3.yaml @@ -0,0 +1,200 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 92.4.3. [TC-RVCCLEANM-3.3] On Mode and Startup Mode functionality with DUT + as Server + +PICS: + - RVCCLEANM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the StartUpMode attribute." + PICS: RVCCLEANM.S.A0002 + verification: | + ./chip-tool rvcleanm read start-up-mode 1 1 + + On TH(chip-tool) log, Verify StartUpMode attribute value is an integer. save this value as startup_mode_dut and below is the sample log provided for the raspi platform: + + + [1651099663211] [82177:7560652] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0004 DataVersion: 2609052118 + [1651099663212] [82177:7560652] CHIP: [TOO] StartUpMode: 0 + disabled: true + + - label: "Step 3: TH reads from the DUT the OnMode attribute." + PICS: RVCCLEANM.S.A0003 && RVCCLEANM.S.A0002 + verification: | + ./chip-tool rvcleanm read on-mode 1 1 + + On TH(chip-tool) log, Verify OnMode attribute value is an integer. save the value as old_on_mode_dut and below is the sample log provided for the raspi platform: + + + [1654780979.979743][61542:61547] CHIP:DMG: } + [1654780979.980040][61542:61547] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 235764160 + [1654780979.980202][61542:61547] CHIP:TOO: OnMode: 4 + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: RVCCLEANM.S.A0000 && RVCCLEANM.S.A0002 + verification: | + NOTE: + If the StartUpMode and OnMode attributes have the same value, proceed to step 4, Otherwise proceed to step 6. + + ./chip-tool rvcleanm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and Save the value as new_mode_th, below is the sample log provided for the raspi platform: + + [1685020074.437287][16950:16952] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 3898153349 + [1685020074.437313][16950:16952] CHIP:TOO: SupportedModes: 3 entries + [1685020074.437620][16950:16952] CHIP:TOO: [1]: { + [1685020074.437632][16950:16952] CHIP:TOO: Label: Black + [1685020074.437635][16950:16952] CHIP:TOO: Mode: 0 + [1685020074.437823][16950:16952] CHIP:TOO: SemanticTags: 1 entries + [1685020074.437834][16950:16952] CHIP:TOO: [1]: { + [1685020074.437838][16950:16952] CHIP:TOO: MfgCode: 0 + [1685020074.437841][16950:16952] CHIP:TOO: Value: 0 + [1685020074.437843][16950:16952] CHIP:TOO: } + [1685020074.437846][16950:16952] CHIP:TOO: } + [1685020074.437852][16950:16952] CHIP:TOO: [2]: { + [1685020074.437854][16950:16952] CHIP:TOO: Label: Cappuccino + [1685020074.437857][16950:16952] CHIP:TOO: Mode: 4 + [1685020074.437861][16950:16952] CHIP:TOO: SemanticTags: 1 entries + [1685020074.437865][16950:16952] CHIP:TOO: [1]: { + [1685020074.437868][16950:16952] CHIP:TOO: MfgCode: 0 + [1685020074.437870][16950:16952] CHIP:TOO: Value: 0 + [1685020074.437873][16950:16952] CHIP:TOO: } + [1685020074.437876][16950:16952] CHIP:TOO: } + [1685020074.437881][16950:16952] CHIP:TOO: [3]: { + [1685020074.437883][16950:16952] CHIP:TOO: Label: Espresso + [1685020074.437885][16950:16952] CHIP:TOO: Mode: 7 + [1685020074.437889][16950:16952] CHIP:TOO: SemanticTags: 1 entries + [1685020074.437892][16950:16952] CHIP:TOO: [1]: { + [1685020074.437895][16950:16952] CHIP:TOO: MfgCode: 0 + [1685020074.437897][16950:16952] CHIP:TOO: Value: 0 + [1685020074.437900][16950:16952] CHIP:TOO: } + [1685020074.437902][16950:16952] CHIP:TOO: } + disabled: true + + - label: + "Step 5: TH writes to the DUT the OnMode attribute with the + new_mode_th value" + PICS: RVCCLEANM.S.A0003 + verification: | + ./chip-tool rvcleanm write on-mode 7 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1651099941884] [84269:7567211] CHIP: [DMG] WriteResponseMessage = + [1651099941884] [84269:7567211] CHIP: [DMG] { + [1651099941884] [84269:7567211] CHIP: [DMG] AttributeStatusIBs = + [1651099941884] [84269:7567211] CHIP: [DMG] [ + [1651099941884] [84269:7567211] CHIP: [DMG] AttributeStatusIB = + [1651099941884] [84269:7567211] CHIP: [DMG] { + [1651099941887] [84269:7567211] CHIP: [DMG] AttributePathIB = + [1651099941887] [84269:7567211] CHIP: [DMG] { + [1651099941887] [84269:7567211] CHIP: [DMG] Endpoint = 0x1, + [1651099941887] [84269:7567211] CHIP: [DMG] Cluster = 0x50, + [1651099941887] [84269:7567211] CHIP: [DMG] Attribute = 0x0000_0005, + [1651099941887] [84269:7567211] CHIP: [DMG] } + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] StatusIB = + [1651099941887] [84269:7567211] CHIP: [DMG] { + [1651099941887] [84269:7567211] CHIP: [DMG] status = 0x00 (SUCCESS), + [1651099941887] [84269:7567211] CHIP: [DMG] }, + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] }, + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] ], + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] InteractionModelRevision = 1 + [1651099941887] [84269:7567211] CHIP: [DMG] } + disabled: true + + - label: "Step 6: TH reads from the DUT the OnMode attribute." + PICS: RVCCLEANM.S.A0003 && RVCCLEANM.S.F00 + verification: | + ./chip-tool rvcleanm read on-mode 1 1 + + On TH(chip-tool) log, Verify OnMode attribute value is an integer. save the value as new_on_mode_dut and below is the sample log provided for the raspi platform: + + } + [1669190858.739158][4187:4189] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4107771634 + [1669190858.739222][4187:4189] CHIP:TOO: OnMode: 7 + disabled: true + + - label: + "Step 7: TH writes to the DUT the StartUpOnOff attribute with the + value 1." + PICS: OO.S.A4003 + verification: | + ./chip-tool onoff write start-up-on-off 1 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1651101661959] [90832:7598169] CHIP: [DMG] WriteResponseMessage = + [1651101661959] [90832:7598169] CHIP: [DMG] { + [1651101661959] [90832:7598169] CHIP: [DMG] AttributeStatusIBs = + [1651101661959] [90832:7598169] CHIP: [DMG] [ + [1651101661959] [90832:7598169] CHIP: [DMG] AttributeStatusIB = + [1651101661959] [90832:7598169] CHIP: [DMG] { + [1651101661960] [90832:7598169] CHIP: [DMG] AttributePathIB = + [1651101661960] [90832:7598169] CHIP: [DMG] { + [1651101661960] [90832:7598169] CHIP: [DMG] Endpoint = 0x1, + [1651101661960] [90832:7598169] CHIP: [DMG] Cluster = 0x6, + [1651101661960] [90832:7598169] CHIP: [DMG] Attribute = 0x0000_4003, + [1651101661960] [90832:7598169] CHIP: [DMG] } + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] StatusIB = + [1651101661960] [90832:7598169] CHIP: [DMG] { + [1651101661960] [90832:7598169] CHIP: [DMG] status = 0x00 (SUCCESS), + [1651101661960] [90832:7598169] CHIP: [DMG] }, + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] }, + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] ], + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] InteractionModelRevision = 1 + [1651101661960] [90832:7598169] CHIP: [DMG] } + disabled: true + + - label: "Step 8: Physically power cycle the device" + verification: | + Physically power cycle the device. + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentMode attribute." + PICS: RVCCLEANM.S.A0001 + verification: | + ./chip-tool rvcleanm read current-mode 1 1 + + + On TH(chip-tool),Verify CurrentMode attribute value is same as the value recorded in step 3 and below is the sample log provided for the raspi platform: + + } + [1669190936.869804][4194:4196] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3908583538 + [1669190936.869875][4194:4196] CHIP:TOO: CurrentMode: 7 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_1.yaml new file mode 100644 index 00000000000000..fc2ed926cc0fc5 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_1.yaml @@ -0,0 +1,95 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 226.2.1. [TC-RVCOPSTATE-2.1] Attribute verification [DUT as Server] + +PICS: + - RVCOPSTATE.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the PhaseList attribute" + PICS: RVCOPSTATE.S.A0000 + verification: | + ./chip-tool roboticvacuumoperationalstate read phaselist 1 1 + + Via the TH (chip-tool), verify: + - that PhaseList attribute value contains either null or a list of strings. + - that the list has no more than 32 entries. on TH(chip-tool) + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentPhase attribute" + PICS: RVCOPSTATE.S.A0001 + verification: | + ./chip-tool roboticvacuumoperationalstate read currentphase 1 1 + + Via the TH (chip-tool), verify: + - if the value from Step 1 was null, verify that this is also null. + - otherwise, verify that the CurrentPhase attribute value contains contains an integer between 0 and the size of the list from step 1 minus 1. + disabled: true + + - label: "Step 4: TH reads from the DUT the CountdownTime attribute" + PICS: RVCOPSTATE.S.A0002 + verification: | + ./chip-tool roboticvacuumoperationalstate read countdowntime 1 1 + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 0 to 259200 + disabled: true + + - label: "Step 5: TH reads from the DUT the OperationalStateList attribute" + PICS: RVCOPSTATE.S.A0003 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalstatelist 1 1 + + Via the TH (chip-tool), verify: + - the provided list contains the Error state (an entry with an ID of 0x03). + - all entries include an ID (enum8) and a label (string) + - all provided IDs are in the allowed range + disabled: true + + - label: "Step 6: TH reads from the DUT the OperationalState attribute" + PICS: RVCOPSTATE.S.A0004 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalstate 1 1 + + Via the TH (chip-tool), verify: + - the response includes an ID (enum8) amd a label (string) + - the provided ID is found in the set provided in step 4 + - the provided ID is in the allowed range + disabled: true + + - label: "Step 7: TH reads from the DUT the OperationalError attribute" + PICS: RVCOPSTATE.S.A0005 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalerror 1 1 + + Via the TH (chip-tool), verify: + - the response includes an ID (enum8), a label (string), and additional details (string) + - if the label is null, verify the additional details is also null + - the provided ID is in the allowed range + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_2.yaml b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_2.yaml new file mode 100644 index 00000000000000..bd3287652a5fdf --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_2.yaml @@ -0,0 +1,186 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 226.2.2. [TC-RVCOPSTATE-2.2] Start and Stop commands [DUT as Server] + +PICS: + - RVCOPSTATE.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" + verification: | + + disabled: true + + - label: + "Step 2: Manually put the DUT into a state wherein it can receive a + Start Command" + verification: | + + disabled: true + + - label: "Step 3: TH reads from the DUT the OperationalStateList attribute" + PICS: RVCOPSTATE.S.A0003 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalstatelist 1 1 + + Via the TH (chip-tool), verify: + - all entries include an ID (enum8) and a label (string) + - all provided IDs are in the allowed range + - the list includes IDs for Error (0x03), Running (0x01), and Stopped (0x00) + disabled: true + + - label: "Step 4: TH sends Start command to the DUT" + PICS: RVCOPSTATE.S.C02.Rsp && RVCOPSTATE.S.C04.Tx + verification: | + ./chip-tool roboticvacuumoperationalstate start 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 5: TH reads from the DUT the OperationalState attribute" + PICS: RVCOPSTATE.S.A0004 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalstate 1 1 + + Via the TH (chip-tool), verify: + - the response has an operationalstateID field that is set to 0x01 (Running) + disabled: true + + - label: "Step 6: TH reads from the DUT the OperationalError attribute" + PICS: RVCOPSTATE.S.A0005 + verification: | + ./chip-tool roboticvacuumoperationalstate read countdowntime 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of a uint32 + disabled: true + + - label: "Step 7: TH reads from the DUT the CountdownTime attribute" + PICS: RVCOPSTATE.S.A0002 + verification: | + ./chip-tool roboticvacuumoperationalstate read countdowntime 1 1 + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 1 to 259200 + - store the value in 'initialcountdown-time' + disabled: true + + - label: "Step 8: TH reads from the DUT the PhaseList attribute" + PICS: RVCOPSTATE.S.A0000 + verification: | + ./chip-tool roboticvacuumoperationalstate read phaselist 1 1 + + Via the TH (chip-tool), verify: + - that PhaseList attribute value contains either null or a list of strings. + + If not null, receord the number of entries in the list as 'phase-list-size'; execute step 7. + If null, go to step 8. + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentPhase attribute" + PICS: RVCOPSTATE.S.A0001 + verification: | + ./chip-tool roboticvacuumoperationalstate read currentphase 1 1 + + Via the TH (chip-tool), verify: + - that the CurrentPhase attribute value contains contains a uint8 value + - that the value is between 0 and 'phase-list-size - 1'. + disabled: true + + - label: + "Step 10: TH waits for a vendor defined wait time, this being a period + of time less than the expected duration of the operation that has been + started" + verification: | + + disabled: true + + - label: "Step 11: TH reads from the DUT the CountdownTime attribute" + PICS: RVCOPSTATE.S.A0002 + verification: | + ./chip-tool roboticvacuumoperationalstate read countdowntime 1 1 + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 1 to 259200 + - that the value is approximately 'initialcountdown-time minus the vendor defined wait time' + disabled: true + + - label: "Step 12: TH sends Start command to the DUT" + PICS: RVCOPSTATE.S.C02.Rsp && RVCOPSTATE.S.C04.Tx + verification: | + ./chip-tool roboticvacuumoperationalstate start 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 13: TH sends Stop command to the DUT" + PICS: RVCOPSTATE.S.C01.Rsp && RVCOPSTATE.S.C04.Tx + verification: | + ./chip-tool roboticvacuumoperationalstate stop 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 14: TH reads from the DUT the OperationalState attribute" + PICS: RVCOPSTATE.S.A0004 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalstate 1 1 + + Via the TH (chip-tool), verify: + - the response has an operationalstateID field that is set to 0x00 (Stopped) + disabled: true + + - label: "Step 15: TH sends Stop command to the DUT" + PICS: RVCOPSTATE.S.C01.Rsp && RVCOPSTATE.S.C04.Tx + verification: | + ./chip-tool roboticvacuumoperationalstate stop 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: + "Step 16: Manually put the DUT into a state wherein it cannot receive + a Start Command" + verification: | + + disabled: true + + - label: "Step 17: TH sends Start command to the DUT" + PICS: RVCOPSTATE.S.C02.Rsp && RVCOPSTATE.S.C04.Tx + verification: | + ./chip-tool roboticvacuumoperationalstate start 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x01 (UnableToStartOrResume) + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_3.yaml b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_3.yaml new file mode 100644 index 00000000000000..3152a828ee0935 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_2_3.yaml @@ -0,0 +1,136 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 226.2.3. [TC-RVCOPSTATE-2.3] Pause and Resume commands [DUT as Server] + +PICS: + - RVCOPSTATE.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: TH reads from the DUT the OperationalStateList attribute" + PICS: RVCOPSTATE.S.A0003 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalstatelist 1 1 + + Via the TH (chip-tool), verify: + - all entries include an ID (enum8) and a label (string) + - all provided IDs are in the allowed range + - the list includes IDs for Error (0x03), Running (0x01), and Paused (0x02) + disabled: true + + - label: "Step 2: TH sends Pause command to the DUT" + PICS: RVCOPSTATE.S.C00.Rsp + verification: | + ./chip-tool roboticvacuumoperationalstate pause 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 3: TH reads from the DUT the OperationalState attribute" + PICS: RVCOPSTATE.S.A0004 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalstate 1 1 + + Via the TH (chip-tool), verify: + - the response has an operationalstateID field that is set to 0x02 (Paused) + disabled: true + + - label: "Step 4: TH reads from the DUT the CountdownTime attribute" + PICS: RVCOPSTATE.S.A0002 + verification: | + ./chip-tool roboticvacuumoperationalstate read countdowntime 1 1 + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 1 to 259200 + - store the value in 'initialcountdown-time' + disabled: true + + - label: "Step 5: TH reads from the DUT the CountdownTime attribute" + PICS: RVCOPSTATE.S.A0002 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalerror 1 1 + + Via the TH (chip-tool), verify: + - that CountdownTime attribute contains either null our a uint32 value + - if non-null, verify that the value is in the range 1 to 259200 + - that the value is the same as 'initialcountdown-time' + disabled: true + + - label: "Step 6: TH sends Pause command to the DUT" + PICS: RVCOPSTATE.S.C00.Rsp + verification: | + ./chip-tool roboticvacuumoperationalstate pause 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 7: TH sends Resume command to the DUT" + PICS: RVCOPSTATE.S.C03.Rsp + verification: | + ./chip-tool roboticvacuumoperationalstate resume 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 8: TH reads from the DUT the OperationalState attribute" + PICS: RVCOPSTATE.S.A0004 + verification: | + ./chip-tool roboticvacuumoperationalstate read operationalstate 1 1 + + Via the TH (chip-tool), verify: + - the response has an operationalstateID field that is set to 0x01 (Running) + disabled: true + + - label: "Step 9: TH sends Resume command to the DUT" + PICS: RVCOPSTATE.S.C03.Rsp + verification: | + ./chip-tool roboticvacuumoperationalstate resume 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x00 (NoError) + disabled: true + + - label: "Step 10: TH sends Pause command to the DUT" + PICS: RVCOPSTATE.S.C00.Rsp + verification: | + ./chip-tool roboticvacuumoperationalstate pause 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x03 (CommandInvalidInState) + disabled: true + + - label: "Step 11: TH sends Resume command to the DUT" + PICS: RVCOPSTATE.S.C03.Rsp + verification: | + ./chip-tool roboticvacuumoperationalstate resume 1 1 + + Via the TH (chip-tool), verify: + - the response is an instance of OperationalCommandResponse + - The ErrorStateID field is set to 0x03 (CommandInvalidInState) + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml new file mode 100644 index 00000000000000..5ee4e7bdb9c9e6 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml @@ -0,0 +1,100 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 87.1.1. [TC-RVCRUNM-1.1] Global attributes with DUT as Server + +PICS: + - RVCRUNM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute." + verification: | + ./chip-tool rvcrunm read cluster-revision 1 1 + + Verify " ClusterRevision attribute has the value 2 " and reflects the highest revision number 2 on the TH(Chip-tool) and below is the sample log provided for the raspi platform: + + [1645775623.658997][3277:3282] CHIP:TOO: ClusterRevision: 1 + disabled: true + + - label: "Step 3: TH reads from the DUT the FeatureMap attribute." + verification: | + ./chip-tool rvcrunm read feature-map 1 1 + On the reference app we see featureMap value 1, This value changes depending on DUT implementing the features + Verify FeatureMap attribute On the TH(Chip-tool) Log + + [1649052001.646939][8355:8360] CHIP:TOO: FeatureMap: 1 + disabled: true + + - label: "Step 4: TH reads from the DUT the AttributeList attribute." + verification: | + ./chip-tool rvcrunm read attribute-list 1 1 + + Verify " AttributeList "should include the mandatory attributes (values 0, 2, 3) and + global attributes (value 65533, 65532, 65531, 65530, 65529 and 65528) + list may include optional attribute(value 0x0004), if RVCRUNM.S.A0004(StartUpMode) supports, + list contains feature dependent attribute (values 0x0005),if RVCRUNM.S.F00(DEPONOFF) is true on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1676288620.483812][4014:4016] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_FFFB DataVersion: 2649295313 + [1676288620.483850][4014:4016] CHIP:TOO: AttributeList: 13 entries + [1676288620.483861][4014:4016] CHIP:TOO: [1]: 0 + [1676288620.483870][4014:4016] CHIP:TOO: [2]: 1 + [1676288620.483878][4014:4016] CHIP:TOO: [3]: 65528 + [1676288620.483886][4014:4016] CHIP:TOO: [4]: 65529 + [1676288620.483892][4014:4016] CHIP:TOO: [5]: 65530 + [1676288620.483899][4014:4016] CHIP:TOO: [6]: 65531 + [1676288620.483906][4014:4016] CHIP:TOO: [7]: 4293984257 + [1676288620.483915][4014:4016] CHIP:TOO: [8]: 2 + [1676288620.483922][4014:4016] CHIP:TOO: [9]: 3 + [1676288620.483929][4014:4016] CHIP:TOO: [10]: 4 + [1676288620.483934][4014:4016] CHIP:TOO: [11]: 5 + [1676288620.483941][4014:4016] CHIP:TOO: [12]: 65532 + [1676288620.483947][4014:4016] CHIP:TOO: [13]: 65533 + [1676288620.484034][4014:4016] CHIP:EM: <<< [E:29816i M:167554497 (Ack:41020138)] (S) Msg TX to 1:000000000 + + + *NOTE* : This sample attribute list reflects the currently implemented attributes on the all-clusters-app. + disabled: true + + - label: "Step 5: TH reads from the DUT the AcceptedCommandList attribute." + verification: | + ./chip-tool rvcrunm read accepted-command-list 1 1 + + Verify the "AcceptedCommandList" contains feature dependent commands + + [1650274602.826352][8965:8970] CHIP:TOO: AcceptedCommandList: 1 entries + [1650274602.826442][8965:8970] CHIP:TOO: [1]: 0 + disabled: true + + - label: "Step 6: TH reads from the DUT the GeneratedCommandList attribute." + verification: | + ./chip-tool rvcrunm read generated-command-list 1 1 + + Verify "GeneratedCommandList" contains feature dependent commands + Value is 0 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1650274662.075309][8972:8977] CHIP:TOO: GeneratedCommandList: 0 entries + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_2.yaml b/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_2.yaml new file mode 100644 index 00000000000000..a07df119487273 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_2.yaml @@ -0,0 +1,108 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 87.2.1. [TC-RVCRUNM-1.2] Cluster attributes with DUT as Server + +PICS: + - RVCRUNM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: RVCRUNM.S.A0000 + verification: | + ./chip-tool rvcrunm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute should contains atleast two ModeOptionsStruct entries with unique mode field value and label field value below is the sample log provided for the raspi platform: + + [1654595167.600241][14362:14367] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 + [1654595167.600345][14362:14367] CHIP:TOO: SupportedModes: 3 entries + [1654595167.600403][14362:14367] CHIP:TOO: [1]: { + [1654595167.600430][14362:14367] CHIP:TOO: Label: Black + [1654595167.600466][14362:14367] CHIP:TOO: Mode: 0 + [1654595167.600495][14362:14367] CHIP:TOO: SemanticTags: 1 entries + [1654595167.600564][14362:14367] CHIP:TOO: [1]: { + [1654595167.600589][14362:14367] CHIP:TOO: MfgCode: 0 + [1654595167.600612][14362:14367] CHIP:TOO: Value: 0 + [1654595167.600637][14362:14367] CHIP:TOO: } + [1654595167.600662][14362:14367] CHIP:TOO: } + [1654595167.600695][14362:14367] CHIP:TOO: [2]: { + [1654595167.600719][14362:14367] CHIP:TOO: Label: Cappuccino + [1654595167.600742][14362:14367] CHIP:TOO: Mode: 4 + [1654595167.600768][14362:14367] CHIP:TOO: SemanticTags: 1 entries + [1654595167.600796][14362:14367] CHIP:TOO: [1]: { + [1654595167.600820][14362:14367] CHIP:TOO: MfgCode: 0 + [1654595167.600842][14362:14367] CHIP:TOO: Value: 0 + [1654595167.600865][14362:14367] CHIP:TOO: } + [1654595167.600889][14362:14367] CHIP:TOO: } + [1654595167.600921][14362:14367] CHIP:TOO: [3]: { + [1654595167.600945][14362:14367] CHIP:TOO: Label: Espresso + [1654595167.600968][14362:14367] CHIP:TOO: Mode: 7 + [1654595167.600993][14362:14367] CHIP:TOO: SemanticTags: 1 entries + [1654595167.601022][14362:14367] CHIP:TOO: [1]: { + [1654595167.601046][14362:14367] CHIP:TOO: MfgCode: 0 + [1654595167.601068][14362:14367] CHIP:TOO: Value: 0 + [1654595167.601091][14362:14367] CHIP:TOO: } + [1654595167.601115][14362:14367] CHIP:TOO: } + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + ./chip-tool rvcrunm read current-mode 1 1 + + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer and the value is from supported_modes_dut and below is the sample log provided for the raspi platform: + + [1645776767.611140][4667:4672] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469718 + + [1645776767.611214][4667:4672] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: "Step 4: TH reads from the DUT the OnMode attribute." + PICS: RVCRUNM.S.A0003 + verification: | + ./chip-tool rvcrunm read on-mode 1 1 + + Verify on TH(chip-tool) logs, OnMode attribute value is an integer and the value is from supported_modes_dut and below is the sample log provided for the raspi platform: + + + [1649676072.465968][10754:10759] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4277065072 + + [1649676072.466094][10754:10759] CHIP:TOO: OnMode: null + disabled: true + + - label: "Step 5: TH reads from the DUT the StartUpMode attribute." + PICS: RVCRUNM.S.A0002 + verification: | + ./chip-tool rvcrunm read start-up-mode 1 1 + + Verify on TH(chip-tool) logs, StartUpMode attribute value is an integer and value is from supported_modes_dut, below is the sample log provided for the raspi platform: + + + [1649677014.496348][10778:10784] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0004 DataVersion: 4277065072 + + [1649677014.496469][10778:10784] CHIP:TOO: StartUpMode: 0 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCRUNM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCRUNM_2_1.yaml new file mode 100644 index 00000000000000..9bee2e3539087c --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCRUNM_2_1.yaml @@ -0,0 +1,176 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 87.3.1. [TC-RVCRUNM-2.1] Change to Mode functionality with DUT as Server + +PICS: + - RVCRUNM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: RVCRUNM.S.A0000 + verification: | + ./chip-tool rvcrunm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute should contains two or more ModeOptionsStruct entries and save the Mode field values as supported_modes_dut, below is the sample log provided for the raspi platform: + + [1685018204.991818][16390:16392] CHIP:DMG: } + [1685018204.992182][16390:16392] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 3673378954 + [1685018204.992279][16390:16392] CHIP:TOO: SupportedModes: 3 entries + [1685018204.992320][16390:16392] CHIP:TOO: [1]: { + [1685018204.992331][16390:16392] CHIP:TOO: Label: Black + [1685018204.992350][16390:16392] CHIP:TOO: Mode: 0 + [1685018204.992376][16390:16392] CHIP:TOO: SemanticTags: 1 entries + [1685018204.992408][16390:16392] CHIP:TOO: [1]: { + [1685018204.992420][16390:16392] CHIP:TOO: MfgCode: 0 + [1685018204.992430][16390:16392] CHIP:TOO: Value: 0 + [1685018204.992440][16390:16392] CHIP:TOO: } + [1685018204.992452][16390:16392] CHIP:TOO: } + [1685018204.992482][16390:16392] CHIP:TOO: [2]: { + [1685018204.992492][16390:16392] CHIP:TOO: Label: Cappuccino + [1685018204.992504][16390:16392] CHIP:TOO: Mode: 4 + [1685018204.992525][16390:16392] CHIP:TOO: SemanticTags: 1 entries + [1685018204.992547][16390:16392] CHIP:TOO: [1]: { + [1685018204.992558][16390:16392] CHIP:TOO: MfgCode: 0 + [1685018204.992567][16390:16392] CHIP:TOO: Value: 0 + [1685018204.992578][16390:16392] CHIP:TOO: } + [1685018204.992588][16390:16392] CHIP:TOO: } + [1685018204.992610][16390:16392] CHIP:TOO: [3]: { + [1685018204.992619][16390:16392] CHIP:TOO: Label: Espresso + [1685018204.992628][16390:16392] CHIP:TOO: Mode: 7 + [1685018204.992641][16390:16392] CHIP:TOO: SemanticTags: 1 entries + [1685018204.992657][16390:16392] CHIP:TOO: [1]: { + [1685018204.992666][16390:16392] CHIP:TOO: MfgCode: 0 + [1685018204.992678][16390:16392] CHIP:TOO: Value: 0 + [1685018204.992687][16390:16392] CHIP:TOO: } + [1685018204.992695][16390:16392] CHIP:TOO: } + disabled: true + + - label: "Step 2: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + ./chip-tool rvcrunm read current-mode 1 1 + + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer value + - save tha value as old_current_mode_dut + - select a value from supported_modes_dut, different from old_current_mode_dut, and which corresponds to a mode the device can switch to, given its current state and save this value as new_mode_th + - select a value which is NOT in supported_modes_dut and save it as invalid_mode_th, + below is the sample log provided for the raspi platform: + + [1685018283.726571][16418:16420] CHIP:DMG: SuppressResponse = true, + [1685018283.726581][16418:16420] CHIP:DMG: InteractionModelRevision = 1 + [1685018283.726589][16418:16420] CHIP:DMG: } + [1685018283.726667][16418:16420] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3898153349 + [1685018283.726680][16418:16420] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: + "Step 3: TH sends a ChangeToMode command to the DUT with NewMode set + to old_current_mode_dut [Petru] note that currently this constraint is + not in the spec. The unapproved proposal is here: + https://github.com/CHIP-Specifications/connectedhomeip-spec/pull/7096 + Until that's approved, please skip this step." + PICS: RVCRUNM.S.C00.Rsp + verification: | + ChangeToMode Command is not impleented. + disabled: true + + - label: + "Step 4: Manually put the device in a state from which it will FAIL to + transition to PIXIT.RVCCLEANM.MODE_CHANGE_FAIL" + verification: | + + disabled: true + + - label: "Step 5: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + + disabled: true + + - label: + "Step 6: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.RVCCLEANM.MODE_CHANGE_FAIL" + PICS: RVCRUNM.S.C00.Rsp + verification: | + ChangeToMode Command is not impleented. + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + ./chip-tool rvcrunm read current-mode 1 1 + + Verify on TH(chip-tool) logs, CurrentMode attribute value is an integer value and equal to the new_mode_th, below is the sample log provided for the raspi platform: + + [1685018283.726571][16418:16420] CHIP:DMG: SuppressResponse = true, + [1685018283.726581][16418:16420] CHIP:DMG: InteractionModelRevision = 1 + [1685018283.726589][16418:16420] CHIP:DMG: } + [1685018283.726667][16418:16420] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3898153349 + [1685018283.726680][16418:16420] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: + "Step 8: Manually put the device in a state from which it will + SUCCESSFULLY transition to PIXIT.RVCCLEANM.MODE_CHANGE_OK" + verification: | + + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + + disabled: true + + - label: + "Step 10: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.RVCCLEANM.MODE_CHANGE_OK" + PICS: RVCRUNM.S.C00.Rsp + verification: | + ChangeToMode Command is not impleented. + disabled: true + + - label: "Step 11: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + + disabled: true + + - label: + "Step 12: TH sends a ChangeToMode command to the DUT with NewMode set + to invalid_mode_th" + PICS: RVCRUNM.S.C00.Rsp + verification: | + + disabled: true + + - label: "Step 13: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCRUNM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCRUNM_3_1.yaml new file mode 100644 index 00000000000000..e39f50f1870ba6 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCRUNM_3_1.yaml @@ -0,0 +1,148 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 87.4.1. [TC-RVCRUNM-3.1] On Mode functionality with DUT as Server + +PICS: + - RVCRUNM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the OnMode attribute." + PICS: RVCRUNM.S.A0003 && RVCRUNM.S.F00 + verification: | + ./chip-tool rvcrunm read on-mode 1 1 + + On TH(chip-tool), Verify OnMode attribute value is an integer. save the value as on_mode_dut and below is the sample log provided for the raspi platform: + + [1649678983.679893][10871:10876] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4277065073 + [1649678983.680002][10871:10876] CHIP:TOO: OnMode: 0 + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 && RVCRUNM.S.F00 + verification: | + ./chip-tool rvcrunm read current-mode 1 1 + + On TH(chip-tool), Verify CurrentMode attribute is an integer. save the value as old_current_mode_dut and below is the sample log provided for the raspi platform: + + [1649679034.895848][10879:10884] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073 + [1649679034.895972][10879:10884] CHIP:TOO: CurrentMode: 0 + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: RVCRUNM.S.A0000 && RVCRUNM.S.F00 + verification: | + ./chip-tool rvcrunm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and save the value as new_mode_th, below is the sample log provided for the raspi platform: + + [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 + [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries + [1654595268.854743][14400:14405] CHIP:TOO: [1]: { + [1654595268.854772][14400:14405] CHIP:TOO: Label: Black + [1654595268.854811][14400:14405] CHIP:TOO: Mode: 0 + [1654595268.854843][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.854891][14400:14405] CHIP:TOO: [1]: { + [1654595268.854918][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.854945][14400:14405] CHIP:TOO: Value: 0 + [1654595268.854971][14400:14405] CHIP:TOO: } + [1654595268.855000][14400:14405] CHIP:TOO: } + [1654595268.855038][14400:14405] CHIP:TOO: [2]: { + [1654595268.855064][14400:14405] CHIP:TOO: Label: Cappuccino + [1654595268.855089][14400:14405] CHIP:TOO: Mode: 4 + [1654595268.855117][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855149][14400:14405] CHIP:TOO: [1]: { + [1654595268.855175][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855199][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855223][14400:14405] CHIP:TOO: } + [1654595268.855249][14400:14405] CHIP:TOO: } + [1654595268.855284][14400:14405] CHIP:TOO: [3]: { + [1654595268.855310][14400:14405] CHIP:TOO: Label: Espresso + [1654595268.855332][14400:14405] CHIP:TOO: Mode: 7 + [1654595268.855360][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855390][14400:14405] CHIP:TOO: [1]: { + [1654595268.855416][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855440][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855464][14400:14405] CHIP:TOO: } + [1654595268.855490][14400:14405] CHIP:TOO: } + [1649677252.376226][10804:10809] CHIP:TOO: SemanticTag: 0 + [1649677252.376252][10804:10809] CHIP:TOO: } + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: RVCRUNM.S.C00.Rsp && RVCRUNM.S.F00 + verification: | + ./chip-tool rvcrunm change-to-mode 7 1 1 + + On TH(chip-tool) log, verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931013.571019][20667:20669] CHIP:DMG: + [1684931013.571021][20667:20669] CHIP:DMG: StatusIB = + [1684931013.571024][20667:20669] CHIP:DMG: { + [1684931013.571027][20667:20669] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931013.571030][20667:20669] CHIP:DMG: }, + [1684931013.571034][20667:20669] CHIP:DMG: + disabled: true + + - label: "Step 6: TH sends a Off command to the DUT" + PICS: OO.S.C00.Rsp && RVCRUNM.S.F00 + verification: | + ./chip-tool onoff off 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931101.118656][20709:20711] CHIP:DMG: StatusIB = + [1684931101.118659][20709:20711] CHIP:DMG: { + [1684931101.118663][20709:20711] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931101.118665][20709:20711] CHIP:DMG: }, + disabled: true + + - label: "Step 7: TH sends a On command to the DUT" + PICS: OO.S.C01.Rsp && RVCRUNM.S.F00 + verification: | + ./chip-tool onoff on 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931217.055514][20729:20731] CHIP:DMG: StatusIB = + [1684931217.055517][20729:20731] CHIP:DMG: { + [1684931217.055520][20729:20731] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931217.055523][20729:20731] CHIP:DMG: }, + disabled: true + + - label: "Step 8: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 && RVCRUNM.S.F00 + verification: | + ./chip-tool rvcrunm read current-mode 1 1 + + On TH(chip-tool),verify that CurrentMode attribute value is an integer and value is equal to on_mode_dut. below is the sample log provided for the raspi platform: + + [1649679202.069163][10899:10904] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073 + [1649679202.069278][10899:10904] CHIP:TOO: CurrentMode: 0 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCRUNM_3_2.yaml b/src/app/tests/suites/certification/Test_TC_RVCRUNM_3_2.yaml new file mode 100644 index 00000000000000..962f9c02e50dbe --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCRUNM_3_2.yaml @@ -0,0 +1,129 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 87.4.2. [TC-RVCRUNM-3.2] Startup Mode functionality with DUT as Server + +PICS: + - RVCRUNM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the StartUpMode attribute." + PICS: RVCRUNM.S.A0002 + verification: | + ./chip-tool rvcrunm read start-up-mode 1 1 + + On TH(chip-tool), Verify StartUpMode attribute value is an integer. save the valueas startup_mode_dut and below is the sample log provided for the raspi platform: + + [1645777708.406864][4841:4846] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003DataVersion: 3781469721 + [1645777708.406933][4841:4846] CHIP:TOO: StartUpMode: 0 + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + ./chip-tool rvcrunm read current-mode 1 1 + + On TH(chip-tool), Verify CurrentMode attribute value is integer. save the value as old_current_mode_dut and below is the sample log provided for the raspi platform: + + [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 + [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 + + + If startup_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: RVCRUNM.S.A0000 + verification: | + ./chip-tool rvcrunm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and Save the value as new_mode_th, below is the sample log provided for the raspi platform: + + [1654595268.854568][14400:14405] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 366231602 + [1654595268.854678][14400:14405] CHIP:TOO: SupportedModes: 3 entries + [1654595268.854743][14400:14405] CHIP:TOO: [1]: { + [1654595268.854772][14400:14405] CHIP:TOO: Label: Black + [1654595268.854811][14400:14405] CHIP:TOO: Mode: 0 + [1654595268.854843][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.854891][14400:14405] CHIP:TOO: [1]: { + [1654595268.854918][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.854945][14400:14405] CHIP:TOO: Value: 0 + [1654595268.854971][14400:14405] CHIP:TOO: } + [1654595268.855000][14400:14405] CHIP:TOO: } + [1654595268.855038][14400:14405] CHIP:TOO: [2]: { + [1654595268.855064][14400:14405] CHIP:TOO: Label: Cappuccino + [1654595268.855089][14400:14405] CHIP:TOO: Mode: 4 + [1654595268.855117][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855149][14400:14405] CHIP:TOO: [1]: { + [1654595268.855175][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855199][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855223][14400:14405] CHIP:TOO: } + [1654595268.855249][14400:14405] CHIP:TOO: } + [1654595268.855284][14400:14405] CHIP:TOO: [3]: { + [1654595268.855310][14400:14405] CHIP:TOO: Label: Espresso + [1654595268.855332][14400:14405] CHIP:TOO: Mode: 7 + [1654595268.855360][14400:14405] CHIP:TOO: SemanticTags: 1 entries + [1654595268.855390][14400:14405] CHIP:TOO: [1]: { + [1654595268.855416][14400:14405] CHIP:TOO: MfgCode: 0 + [1654595268.855440][14400:14405] CHIP:TOO: Value: 0 + [1654595268.855464][14400:14405] CHIP:TOO: } + [1654595268.855490][14400:14405] CHIP:TOO: } + [1649677252.376226][10804:10809] CHIP:TOO: SemanticTag: 0 + [1649677252.376252][10804:10809] CHIP:TOO: } + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: RVCRUNM.S.C00.Rsp + verification: | + ./chip-tool rvcrunm change-to-mode 4 1 1 + + + On TH(chip-tool) , Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1684931419.768138][20792:20794] CHIP:DMG: StatusIB = + [1684931419.768143][20792:20794] CHIP:DMG: { + [1684931419.768148][20792:20794] CHIP:DMG: status = 0x00 (SUCCESS), + [1684931419.768152][20792:20794] CHIP:DMG: }, + disabled: true + + - label: "Step 6: Physically power cycle the device" + verification: | + Physically power cycle the device. + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + ./chip-tool rvcrunm read current-mode 1 1 + + on TH(chip-tool), Verify that CurrentMode attribute value is same as value recorded in step 1 and below is the sample log provided for the raspi platform: + + [1645778146.171510][4876:4881] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000DataVersion: 3781469721 + [1645778146.171602][4876:4881] CHIP:TOO: CurrentMode: 0 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_RVCRUNM_3_3.yaml b/src/app/tests/suites/certification/Test_TC_RVCRUNM_3_3.yaml new file mode 100644 index 00000000000000..8f8df3e8e1ce51 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_RVCRUNM_3_3.yaml @@ -0,0 +1,200 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 87.4.3. [TC-RVCRUNM-3.3] On Mode and Startup Mode functionality with DUT as + Server + +PICS: + - RVCRUNM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the StartUpMode attribute." + PICS: RVCRUNM.S.A0002 + verification: | + ./chip-tool rvcrunm read start-up-mode 1 1 + + On TH(chip-tool) log, Verify StartUpMode attribute value is an integer. save this value as startup_mode_dut and below is the sample log provided for the raspi platform: + + + [1651099663211] [82177:7560652] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0004 DataVersion: 2609052118 + [1651099663212] [82177:7560652] CHIP: [TOO] StartUpMode: 0 + disabled: true + + - label: "Step 3: TH reads from the DUT the OnMode attribute." + PICS: RVCRUNM.S.A0003 && RVCRUNM.S.A0002 + verification: | + ./chip-tool rvcrunm read on-mode 1 1 + + On TH(chip-tool) log, Verify OnMode attribute value is an integer. save the value as old_on_mode_dut and below is the sample log provided for the raspi platform: + + + [1654780979.979743][61542:61547] CHIP:DMG: } + [1654780979.980040][61542:61547] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 235764160 + [1654780979.980202][61542:61547] CHIP:TOO: OnMode: 4 + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: RVCRUNM.S.A0000 && RVCRUNM.S.A0002 + verification: | + NOTE: + If the StartUpMode and OnMode attributes have the same value, proceed to step 4, Otherwise proceed to step 6. + + ./chip-tool rvcrunm read supported-modes 1 1 + + On TH(chip-tool) log, Verify SupportedModes attribute contains two or more ModeOptionsStruct entries. save the Mode field values as supported_modes_dut.Select a value from supported_modes_dut different from startup_mode_dut and Save the value as new_mode_th, below is the sample log provided for the raspi platform: + + [1685020074.437287][16950:16952] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 3898153349 + [1685020074.437313][16950:16952] CHIP:TOO: SupportedModes: 3 entries + [1685020074.437620][16950:16952] CHIP:TOO: [1]: { + [1685020074.437632][16950:16952] CHIP:TOO: Label: Black + [1685020074.437635][16950:16952] CHIP:TOO: Mode: 0 + [1685020074.437823][16950:16952] CHIP:TOO: SemanticTags: 1 entries + [1685020074.437834][16950:16952] CHIP:TOO: [1]: { + [1685020074.437838][16950:16952] CHIP:TOO: MfgCode: 0 + [1685020074.437841][16950:16952] CHIP:TOO: Value: 0 + [1685020074.437843][16950:16952] CHIP:TOO: } + [1685020074.437846][16950:16952] CHIP:TOO: } + [1685020074.437852][16950:16952] CHIP:TOO: [2]: { + [1685020074.437854][16950:16952] CHIP:TOO: Label: Cappuccino + [1685020074.437857][16950:16952] CHIP:TOO: Mode: 4 + [1685020074.437861][16950:16952] CHIP:TOO: SemanticTags: 1 entries + [1685020074.437865][16950:16952] CHIP:TOO: [1]: { + [1685020074.437868][16950:16952] CHIP:TOO: MfgCode: 0 + [1685020074.437870][16950:16952] CHIP:TOO: Value: 0 + [1685020074.437873][16950:16952] CHIP:TOO: } + [1685020074.437876][16950:16952] CHIP:TOO: } + [1685020074.437881][16950:16952] CHIP:TOO: [3]: { + [1685020074.437883][16950:16952] CHIP:TOO: Label: Espresso + [1685020074.437885][16950:16952] CHIP:TOO: Mode: 7 + [1685020074.437889][16950:16952] CHIP:TOO: SemanticTags: 1 entries + [1685020074.437892][16950:16952] CHIP:TOO: [1]: { + [1685020074.437895][16950:16952] CHIP:TOO: MfgCode: 0 + [1685020074.437897][16950:16952] CHIP:TOO: Value: 0 + [1685020074.437900][16950:16952] CHIP:TOO: } + [1685020074.437902][16950:16952] CHIP:TOO: } + disabled: true + + - label: + "Step 5: TH writes to the DUT the OnMode attribute with the + new_mode_th value" + PICS: RVCRUNM.S.A0003 + verification: | + ./chip-tool rvcrunm write on-mode 7 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1651099941884] [84269:7567211] CHIP: [DMG] WriteResponseMessage = + [1651099941884] [84269:7567211] CHIP: [DMG] { + [1651099941884] [84269:7567211] CHIP: [DMG] AttributeStatusIBs = + [1651099941884] [84269:7567211] CHIP: [DMG] [ + [1651099941884] [84269:7567211] CHIP: [DMG] AttributeStatusIB = + [1651099941884] [84269:7567211] CHIP: [DMG] { + [1651099941887] [84269:7567211] CHIP: [DMG] AttributePathIB = + [1651099941887] [84269:7567211] CHIP: [DMG] { + [1651099941887] [84269:7567211] CHIP: [DMG] Endpoint = 0x1, + [1651099941887] [84269:7567211] CHIP: [DMG] Cluster = 0x50, + [1651099941887] [84269:7567211] CHIP: [DMG] Attribute = 0x0000_0005, + [1651099941887] [84269:7567211] CHIP: [DMG] } + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] StatusIB = + [1651099941887] [84269:7567211] CHIP: [DMG] { + [1651099941887] [84269:7567211] CHIP: [DMG] status = 0x00 (SUCCESS), + [1651099941887] [84269:7567211] CHIP: [DMG] }, + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] }, + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] ], + [1651099941887] [84269:7567211] CHIP: [DMG] + [1651099941887] [84269:7567211] CHIP: [DMG] InteractionModelRevision = 1 + [1651099941887] [84269:7567211] CHIP: [DMG] } + disabled: true + + - label: "Step 6: TH reads from the DUT the OnMode attribute." + PICS: RVCRUNM.S.A0003 && RVCRUNM.S.F00 + verification: | + ./chip-tool rvcrunm read on-mode 1 1 + + On TH(chip-tool) log, Verify OnMode attribute value is an integer. save the value as new_on_mode_dut and below is the sample log provided for the raspi platform: + + } + [1669190858.739158][4187:4189] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4107771634 + [1669190858.739222][4187:4189] CHIP:TOO: OnMode: 7 + disabled: true + + - label: + "Step 7: TH writes to the DUT the StartUpOnOff attribute with the + value 1." + PICS: OO.S.A4003 + verification: | + ./chip-tool onoff write start-up-on-off 1 1 1 + + On TH(chip-tool) log, Verify DUT responds with a successful (value 0x00) status response and below is the sample log provided for the raspi platform: + + [1651101661959] [90832:7598169] CHIP: [DMG] WriteResponseMessage = + [1651101661959] [90832:7598169] CHIP: [DMG] { + [1651101661959] [90832:7598169] CHIP: [DMG] AttributeStatusIBs = + [1651101661959] [90832:7598169] CHIP: [DMG] [ + [1651101661959] [90832:7598169] CHIP: [DMG] AttributeStatusIB = + [1651101661959] [90832:7598169] CHIP: [DMG] { + [1651101661960] [90832:7598169] CHIP: [DMG] AttributePathIB = + [1651101661960] [90832:7598169] CHIP: [DMG] { + [1651101661960] [90832:7598169] CHIP: [DMG] Endpoint = 0x1, + [1651101661960] [90832:7598169] CHIP: [DMG] Cluster = 0x6, + [1651101661960] [90832:7598169] CHIP: [DMG] Attribute = 0x0000_4003, + [1651101661960] [90832:7598169] CHIP: [DMG] } + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] StatusIB = + [1651101661960] [90832:7598169] CHIP: [DMG] { + [1651101661960] [90832:7598169] CHIP: [DMG] status = 0x00 (SUCCESS), + [1651101661960] [90832:7598169] CHIP: [DMG] }, + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] }, + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] ], + [1651101661960] [90832:7598169] CHIP: [DMG] + [1651101661960] [90832:7598169] CHIP: [DMG] InteractionModelRevision = 1 + [1651101661960] [90832:7598169] CHIP: [DMG] } + disabled: true + + - label: "Step 8: Physically power cycle the device" + verification: | + Physically power cycle the device. + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentMode attribute." + PICS: RVCRUNM.S.A0001 + verification: | + ./chip-tool rvcrunm read current-mode 1 1 + + + On TH(chip-tool),Verify CurrentMode attribute value is same as the value recorded in step 3 and below is the sample log provided for the raspi platform: + + } + [1669190936.869804][4194:4196] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 3908583538 + [1669190936.869875][4194:4196] CHIP:TOO: CurrentMode: 7 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_1.yaml index fbf3a8e9911526..3bd0f23cbcbe8d 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_1.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 14.3.1. [TC-SC-3.1] Session Establishment +name: 22.3.1. [TC-SC-3.1] Session Establishment - REMOVED PICS: - MCORE.ROLE.COMMISSIONEE @@ -24,33 +24,177 @@ config: endpoint: 0 tests: + - label: "Precondition" + verification: | + execute the below mentioned command to put DUT into a commissionable state, Pls use equivalent command on the respective DUT + ./chip-all-clusters-app --trace_decode 1 + + Once DUT reach the commissionable state pls send below mentioned command on TH. Pls use equivalent command on the respective DUT + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + Verify the commissioning completed with success on TH(chip-tool) from DUT + [1650455358.501816][4366:4371] CHIP:TOO: Device commissioning completed with success + + # 1 Please use Interactive mode to Verify this test cases + Here the command to enter interactive mode:-- + ./chip-tool interactive start --trace_decode 1 + + #2. send a subscribe request from chip-tool + onoff subscribe on-time 10 100 1 1 --trace_decode 1 + disabled: true + - label: - "Initiator constructs and sends a TLV-encoded Sigma1 message + "Step 1: Initiator constructs and sends a TLV-encoded Sigma1 message containing a random initiation value, destination identifier, session identifier, the public key for its ephemeral key pair, and optional MRP parameters." verification: | - Verify that the message is properly formatted: 1. I Flag is set to 1 2. S flag and DIZ fields of message flags are set to 0 3. Encryption Type of security flags is set to 0 4. The message payload follows the sigma-1-struct TLV encoding format 5. The Session Key Type field is set to 0 6. The Protocol ID field is set to 0 and Protocol Opcode field is set to 48 (0x30) Verify that the responder receives the message. + On Initiator(chip-tool) verify that, Initiator(chip-tool) Initiator constructs and sends a TLV-encoded Sigma1 message containing a + random initiation value, + destination identifier, + session identifier, + the public key for its ephemeral key pair, and + optional MRP parameters. + + Verify that the message is properly formatted: + + 1. I Flag is set to 1 + 2. S flag and DIZ fields of message flags are set to 0 + 3. Encryption Type of security flags is set to 0 + 4. The message payload follows the sigma-1-struct TLV encoding format + 5. The Session Key Type field is set to 0 + 6. The Protocol ID field is set to 0 and Protocol Opcode field is set to 48 (0x30) + + here is the log to verify on chip-tool + + [1688031714.302565][2431:2433] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0f:19ff%eth0]:5540 | 248842226 | [Secure Channel (0) / Certificate Authenticated Session Establishment Sigma '1' (0x30) / Session = 0 / Exchange = 50244] + [1688031714.302684][2431:2433] CHIP:DMG: Header Flags = + [1688031714.302740][2431:2433] CHIP:DMG: { + [1688031714.302811][2431:2433] CHIP:DMG: Message (0x04) = + [1688031714.302864][2431:2433] CHIP:DMG: { + [1688031714.302919][2431:2433] CHIP:DMG: SourceNodeId = 23BBF785D3ABC710 + [1688031714.302971][2431:2433] CHIP:DMG: } + [1688031714.303049][2431:2433] CHIP:DMG: Exchange (0x05) = + [1688031714.303103][2431:2433] CHIP:DMG: { + [1688031714.303149][2431:2433] CHIP:DMG: Initiator = true + [1688031714.303199][2431:2433] CHIP:DMG: NeedsAck = true + [1688031714.303249][2431:2433] CHIP:DMG: } + [1688031714.303315][2431:2433] CHIP:DMG: } + [1688031714.303366][2431:2433] CHIP:DMG: + [1688031714.303431][2431:2433] CHIP:DMG: Encrypted Payload (166 bytes) = + [1688031714.303483][2431:2433] CHIP:DMG: { + [1688031714.303533][2431:2433] CHIP:DMG: data = 04000000f207d50e10c7abd385f7bb23053044c4000015300120e74196345c2e4d9f20bbebe1d1b2a12434b1f967f93b1391cf3eeeac6e34233c2502c55b300320770fd2eb6d97cbc32b4ab26637d77084cc9bc0e4f798098223fe57ebef74e4bc300441040e0f7a858f134c11bab5bcd788822e57e495e582a9966dfdbc3add489e523f952c8b568155cbe2c1f350ffa3df33fadca137279c84e68b0f4d40b1ab0b03432818 + [1688031714.303594][2431:2433] CHIP:DMG: buffer_ptr = 281473366155888 + [1688031714.303644][2431:2433] CHIP:DMG: } + [1688031714.303692][2431:2433] CHIP:DMG: + [1688031714.303764][2431:2433] CHIP:DMG: Decrypted Payload (144 bytes) = + [1688031714.303816][2431:2433] CHIP:DMG: { + [1688031714.303866][2431:2433] CHIP:DMG: data = 15300120e74196345c2e4d9f20bbebe1d1b2a12434b1f967f93b1391cf3eeeac6e34233c2502c55b300320770fd2eb6d97cbc32b4ab26637d77084cc9bc0e4f798098223fe57ebef74e4bc300441040e0f7a858f134c11bab5bcd788822e57e495e582a9966dfdbc3add489e523f952c8b568155cbe2c1f350ffa3df33fadca137279c84e68b0f4d40b1ab0b03432818 + [1688031714.303924][2431:2433] CHIP:DMG: } + [1688031714.303972][2431:2433] CHIP:DMG: + [1688031714.304092][2431:2433] CHIP:DMG: Parameters = + [1688031714.304146][2431:2433] CHIP:DMG: { + [1688031714.304233][2431:2433] CHIP:DMG: InitiatorRandom (32) = E74196345C2E4D9F20BBEBE1D1B2A12434B1F967F93B1391CF3EEEAC6E34233C + [1688031714.304288][2431:2433] CHIP:DMG: InitiatorSessionId = 23493 + [1688031714.304345][2431:2433] CHIP:DMG: DestinationId (32) = 770FD2EB6D97CBC32B4AB26637D77084CC9BC0E4F798098223FE57EBEF74E4BC + [1688031714.304406][2431:2433] CHIP:DMG: InitiatorEphPubKey (65) = 040E0F7A858F134C11BAB5BCD788822E57E495E582A9966DFDBC3ADD489E523F952C8B568155CBE2C1F350FFA3DF33FADCA137279C84E68B0F4D40B1AB0B034328 + [1688031714.304466][2431:2433] CHIP:DMG: } + [1688031714.304516][2431:2433] CHIP:DMG: + [1688031714.304566][2431:2433] CHIP:DMG: + + + On Responder(all-clusters-app), Verify that the responder receives the message. + [1688031714.287968][101345:101345] CHIP:EM: Handling via exchange: 50244r, Delegate: 0xaaaac5439360 + [1688031714.288066][101345:101345] CHIP:IN: CASE Server received Sigma1 message . Starting handshake. EC 0xaaaae8206290 + [1688031714.288121][101345:101345] CHIP:IN: CASE Server disabling CASE session setups + [1688031714.288188][101345:101345] CHIP:SC: Received Sigma1 msg + [1688031714.288283][101345:101345] CHIP:SC: Peer assigned session key ID 23493 + [1688031714.289272][101345:101345] CHIP:SC: CASE matched destination ID: fabricIndex 1, NodeID 0x0000000000000001 + [1688031714.295271][101345:101345] CHIP:EM: <<< [E:50244r S:0 M:19977399 (Ack:248842226)] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:31 (SecureChannel:CASE_Sigma2) + [1688031714.295651][101345:101345] CHIP:IN: (U) Sending msg 19977399 to IP address 'UDP:[fe80::e65f:1ff:fe0f:2877%eth0]:59102' disabled: true - label: - "Responder validates the destination identifier contained in the - message." + "Step 2: Responder validates the destination identifier contained in + the message." verification: | If the destination identifier matches a candidate destination id (as generated by the process in spec section 4.13.2.4), the responder proceeds to generate a Sigma 2 message. disabled: true - label: - "Responder constructs and sends a TLV-encoded Sigma2 message + "Step 3: Responder constructs and sends a TLV-encoded Sigma2 message containing a random responder value, responder session id, trusted root id, public key for its responder ephemeral key pair, and encrypted integrity data." verification: | - Verify that the message is properly formatted: 1. I flag is set to 0 2. S flag and DIZ fields of message flags are set to 0 3. Encryption Type of security flags is set to 0 4. The message payload follows the sigma-2-struct TLV encoding format 5. The Session Key Type field is set to 0 6. The Protocol ID field is set to 0 and Protocol Opcode field is set to 49 (0x31) Verify that the initiator receives the message. + On Responder(all-clusters-app), verify that Responder constructs and sends a TLV-encoded Sigma2 message containing a random responder value, responder session id, trusted root id, public key for its responder ephemeral key pair, and encrypted integrity data. + Verify that the message is properly formatted: + + 1. I flag is set to 0 + 2. S flag and DIZ fields of message flags are set to 0 + 3. Encryption Type of security flags is set to 0 + 4. The message payload follows the sigma-2-struct TLV encoding format + 5. The Session Key Type field is set to 0 + 6. The Protocol ID field is set to 0 and Protocol Opcode field is set to 49 (0x31) + + If your device has a provision to verify the DUT log, here is the log to verify on all-clusters-app + + [1688031714.288188][101345:101345] CHIP:SC: Received Sigma1 msg + [1688031714.288283][101345:101345] CHIP:SC: Peer assigned session key ID 23493 + [1688031714.289272][101345:101345] CHIP:SC: CASE matched destination ID: fabricIndex 1, NodeID 0x0000000000000001 + [1688031714.295271][101345:101345] CHIP:EM: <<< [E:50244r S:0 M:19977399 (Ack:248842226)] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:31 (SecureChannel:CASE_Sigma2) + [1688031714.295651][101345:101345] CHIP:IN: (U) Sending msg 19977399 to IP address 'UDP:[fe80::e65f:1ff:fe0f:2877%eth0]:59102' + [1688031714.296468][101345:101345] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0f:2877%eth0]:59102 | 19977399 | [Secure Channel (0) / Certificate Authenticated Session Establishment Sigma '2' (0x31) / Session = 0 / Exchange = 50244] + [1688031714.296560][101345:101345] CHIP:DMG: Header Flags = + [1688031714.296614][101345:101345] CHIP:DMG: { + [1688031714.296684][101345:101345] CHIP:DMG: Message (0x01) = + [1688031714.296735][101345:101345] CHIP:DMG: { + [1688031714.296789][101345:101345] CHIP:DMG: DestinationNodeId = 23BBF785D3ABC710 + [1688031714.296840][101345:101345] CHIP:DMG: } + [1688031714.296911][101345:101345] CHIP:DMG: Exchange (0x06) = + [1688031714.296962][101345:101345] CHIP:DMG: { + [1688031714.297016][101345:101345] CHIP:DMG: AckMsg = 248842226 + [1688031714.297065][101345:101345] CHIP:DMG: NeedsAck = true + [1688031714.297114][101345:101345] CHIP:DMG: } + [1688031714.297180][101345:101345] CHIP:DMG: } + [1688031714.297228][101345:101345] CHIP:DMG: + [1688031714.297298][101345:101345] CHIP:DMG: Encrypted Payload (721 bytes) = + [1688031714.297349][101345:101345] CHIP:DMG: { + [1688031714.297399][101345:101345] CHIP:DMG: data = 01000000b7d4300110c7abd385f7bb23063144c40000f207d50e1530012067099553353c99294801ed53986eaae5c13fcca4c2c832e01a8a6d20805a8ce22502ae8230034104ac6ac8bed847a07e83f2016eb4e169310e2546d6857589b82ff04f9a00d70a55635a041f64900ec9763a330943d80d85d6206d0073935bbc67bcd6adb36eedba31044602f8b9146dbda1448106f4e747b2d181a0e0de9688b7af4c150ecae495042aae83577f32eaba9b4da12518c8e4d67058eab679763f64ad9e96bb515f6df16b9d59a236f102382112fa25e0897078d988d3b4bd4e3b368fd236249efcc5aa385ccbb6292fd882a11a76f5a5dfc0c4fb3db6fc4c261d97fd6835ed5180fc4f91ef3c9fa1f81c1d60e9107d35bf2e13e234a0dc55bc3949df329bcef6222212011b5c048f558f2932bc2a553e5038d8148a3609758ccedcc15663e2ed38756109a7256c33dfc8086ff743e826162bdd5196e33ec6923e0cd0e7c4952e3ed292cc45e8aa2041dab23d5625869bd5959af20ac24832379db9de7e3be907cff4e1f8a885fc5c629c616f67b21167a319ce7b89946efaf82daf661bc45d23e638911f020690ee96876d44a6ed5ed66b4748311a8b06bd2bb0549ff79bdbf2faa8c92cd478fb73480a7768f9d7cde84e53be46bffae44f6bd54a71543b2a12af507d595d67dd161b5571dafccafb60b48c4d7ff985fa2da059ac7318a3ff2b4a594e3e23d52f6a0df7667396563c1962fb270c0611dfd1b0d6470e1ef7dd804e8ab1ae2b8b2eddf84b4055db501d173173589aca32ef0dfe24b923a32b512c6d615ec9b06147ed5b8222a20e2d12b7505a5f300f15b8467f3cf23713cbb06c9028f01b852816cf8033257fbb6cf3a59923e12ea8141972250bc0b866af2fefbef09867d49c455cf8d314232f282a4fc04923c5fa0eb3b587fa2ca86cc91ce87184a0701c13b705581488395ac522b74f843a71f4b30470b16c0f42c3d711bad9c89871615b4f811e552ff718 + [1688031714.297517][101345:101345] CHIP:DMG: buffer_ptr = 187651015603296 + [1688031714.297567][101345:101345] CHIP:DMG: } + [1688031714.297615][101345:101345] CHIP:DMG: + [1688031714.297689][101345:101345] CHIP:DMG: Decrypted Payload (695 bytes) = + [1688031714.297740][101345:101345] CHIP:DMG: { + [1688031714.297790][101345:101345] CHIP:DMG: data = 1530012067099553353c99294801ed53986eaae5c13fcca4c2c832e01a8a6d20805a8ce22502ae8230034104ac6ac8bed847a07e83f2016eb4e169310e2546d6857589b82ff04f9a00d70a55635a041f64900ec9763a330943d80d85d6206d0073935bbc67bcd6adb36eedba31044602f8b9146dbda1448106f4e747b2d181a0e0de9688b7af4c150ecae495042aae83577f32eaba9b4da12518c8e4d67058eab679763f64ad9e96bb515f6df16b9d59a236f102382112fa25e0897078d988d3b4bd4e3b368fd236249efcc5aa385ccbb6292fd882a11a76f5a5dfc0c4fb3db6fc4c261d97fd6835ed5180fc4f91ef3c9fa1f81c1d60e9107d35bf2e13e234a0dc55bc3949df329bcef6222212011b5c048f558f2932bc2a553e5038d8148a3609758ccedcc15663e2ed38756109a7256c33dfc8086ff743e826162bdd5196e33ec6923e0cd0e7c4952e3ed292cc45e8aa2041dab23d5625869bd5959af20ac24832379db9de7e3be907cff4e1f8a885fc5c629c616f67b21167a319ce7b89946efaf82daf661bc45d23e638911f020690ee96876d44a6ed5ed66b4748311a8b06bd2bb0549ff79bdbf2faa8c92cd478fb73480a7768f9d7cde84e53be46bffae44f6bd54a71543b2a12af507d595d67dd161b5571dafccafb60b48c4d7ff985fa2da059ac7318a3ff2b4a594e3e23d52f6a0df7667396563c1962fb270c0611dfd1b0d6470e1ef7dd804e8ab1ae2b8b2eddf84b4055db501d173173589aca32ef0dfe24b923a32b512c6d615ec9b06147ed5b8222a20e2d12b7505a5f300f15b8467f3cf23713cbb06c9028f01b852816cf8033257fbb6cf3a59923e12ea8141972250bc0b866af2fefbef09867d49c455cf8d314232f282a4fc04923c5fa0eb3b587fa2ca86cc91ce87184a0701c13b705581488395ac522b74f843a71f4b30470b16c0f42c3d711bad9c89871615b4f811e552ff718 + [1688031714.297901][101345:101345] CHIP:DMG: } + [1688031714.297948][101345:101345] CHIP:DMG: + [1688031714.298203][101345:101345] CHIP:DMG: Parameters = + [1688031714.298256][101345:101345] CHIP:DMG: { + [1688031714.298312][101345:101345] CHIP:DMG: ResponderRandom (32) = 67099553353C99294801ED53986EAAE5C13FCCA4C2C832E01A8A6D20805A8CE2 + [1688031714.298367][101345:101345] CHIP:DMG: ResponderSessionId = 33454 + [1688031714.298426][101345:101345] CHIP:DMG: ResponderEphPubKey (65) = 04AC6AC8BED847A07E83F2016EB4E169310E2546D6857589B82FF04F9A00D70A55635A041F64900EC9763A330943D80D85D6206D0073935BBC67BCD6ADB36EEDBA + [1688031714.298607][101345:101345] CHIP:DMG: Encrypted2 (582) = F8B9146DBDA1448106F4E747B2D181A0E0DE9688B7AF4C150ECAE495042AAE83577F32EABA9B4DA12518C8E4D67058EAB679763F64AD9E96BB515F6DF16B9D59A236F102382112FA25E0897078D988D3B4BD4E3B368FD236249EFCC5AA385CCBB6292FD882A11A76F5A5DFC0C4FB3DB6FC4C261D97FD6835ED5180FC4F91EF3C9FA1F81C1D60E9107D35BF2E13E234A0DC55BC3949DF329BCEF6222212011B5C048F558F2932BC2A553E5038D8148A3609758CCEDCC15663E2ED38756109A7256C33DFC8086FF743E826162BDD5196E33EC6923E0CD0E7C4952E3ED292CC45E8AA2041DAB23D5625869BD5959AF20AC24832379DB9DE7E3BE907CFF4E1F8A885FC5C629C616F67B21167A319CE7B89946EFAF82DAF661BC45D23E638911F020690EE96876D44A6ED5ED66B4748311A8B06BD2BB0549FF79BDBF2FAA8C92CD478FB73480A7768F9D7CDE84E53BE46BFFAE44F6BD54A71543B2A12AF507D595D67DD161B5571DAFCCAFB60B48C4D7FF985FA2DA059AC7318A3FF2B4A594E3E23D52F6A0DF7667396563C1962FB270C0611DFD1B0D6470E1EF7DD804E8AB1AE2B8B2EDDF84B4055DB501D173173589ACA32EF0DFE24B923A32B512C6D615EC9B06147ED5B8222A20E2D12B7505A5F300F15B8467F3CF23713CBB06C9028F01B852816CF8033257FBB6CF3A59923E12EA8141972250BC0B866AF2FEFBEF09867D49C455CF8D314232F282A4FC04923C5FA0EB3B587FA2CA86CC91CE87184A0701C13B705581488395AC522B74F843A71F4B30470B16C0F42C3D711BAD9C89871615B4F811E552FF7 + [1688031714.298727][101345:101345] CHIP:DMG: } + [1688031714.298775][101345:101345] CHIP:DMG: + [1688031714.298825][101345:101345] CHIP:DMG: + [1688031714.299226][101345:101345] CHIP:SC: Sent Sigma2 msg + [1688031714.317745][101345:101345] CHIP:DMG: << from UDP:[fe80::e65f:1ff:fe0f:2877%eth0]:59102 | 248842227 | [Secure Channel (0) / Certificate Authenticated Session Establishment Sigma '3' (0x32) / Session = 0 / Exchange = 50244] + + initiator(chip-tool), Verify that the initiator receives the message. + [1688031714.323047][2431:2433] CHIP:DMG: Additional Fields = + [1688031714.323101][2431:2433] CHIP:DMG: { + [1688031714.323159][2431:2433] CHIP:DMG: peer_address = UDP:[fe80::e65f:1ff:fe0f:19ff%eth0]:5540 + [1688031714.323212][2431:2433] CHIP:DMG: } + [1688031714.323261][2431:2433] CHIP:DMG: + [1688031714.323331][2431:2433] CHIP:EM: >>> [E:50244i S:0 M:19977399 (Ack:248842226)] (U) Msg RX from 0:0000000000000000 [0000] --- Type 0000:31 (SecureChannel:CASE_Sigma2) + [1688031714.323398][2431:2433] CHIP:EM: Found matching exchange: 50244i, Delegate: 0xffffa000d398 + [1688031714.323480][2431:2433] CHIP:EM: Rxd Ack; Removing MessageCounter:248842226 from Retrans Table on exchange 50244i + [1688031714.323574][2431:2433] CHIP:SC: Received Sigma2 msg + [1688031714.323644][2431:2433] CHIP:SC: Peer assigned session session ID 33454 disabled: true - label: - "Initiator generates a shared secret, generates a S2K key, and + "Step 4: Initiator generates a shared secret, generates a S2K key, and decrypts and verifies the message data, node operational certificate (NOC), and signature data." verification: | @@ -58,15 +202,54 @@ tests: disabled: true - label: - "Initiator constructs and sends a TLV-encoded Sigma3 message + "Step 5: Initiator constructs and sends a TLV-encoded Sigma3 message containing encrypted integrity data." verification: | Verify that the message is properly formatted: 1. I Flag is set to 1 2. S flag and DIZ fields of message flags are set to 0 3. Encryption Type of security flags is set to 0 4. The message payload follows the sigma-3-struct TLV encoding format 5. The Session Key Type field is set to 0 6. The Protocol ID field is set to 0 and Protocol Opcode field is set to 50 (0x32) Verify that the responder receives the message. disabled: true - label: - "Responder decrypts and verifies the message data, NOC, and signature - data." + "Step 6: Responder decrypts and verifies the message data, NOC, and + signature data." verification: | - If the verification succeed, the session is established and the responder sends a SigmaFinished StatusReport message with GeneralCode SUCCESS, ProtocolId PROTOCOL_ID_SECURE_CHANNEL, and ProtocolCode SessionEstablishmentSuccess. + On Initiator(chip-tool), verify If the verification succeed, the session is established and the responder sends a SigmaFinished StatusReport message with GeneralCode SUCCESS, ProtocolId PROTOCOL_ID_SECURE_CHANNEL, and ProtocolCode SessionEstablishmentSuccess. + [1686745149.979149][101507:101509] CHIP:DMG: << from UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:5540 | 47090891 | [Secure Channel (0) / Status Report (0x40) / Session = 0 / Exchange = 8254] + [1686745149.979178][101507:101509] CHIP:DMG: Header Flags = + [1686745149.979186][101507:101509] CHIP:DMG: { + [1686745149.979196][101507:101509] CHIP:DMG: Message (0x01) = + [1686745149.979202][101507:101509] CHIP:DMG: { + [1686745149.979209][101507:101509] CHIP:DMG: DestinationNodeId = 92D1722684235749 + [1686745149.979215][101507:101509] CHIP:DMG: } + [1686745149.979228][101507:101509] CHIP:DMG: Exchange (0x06) = + [1686745149.979233][101507:101509] CHIP:DMG: { + [1686745149.979240][101507:101509] CHIP:DMG: AckMsg = 174267096 + [1686745149.979247][101507:101509] CHIP:DMG: NeedsAck = true + [1686745149.979253][101507:101509] CHIP:DMG: } + [1686745149.979262][101507:101509] CHIP:DMG: } + [1686745149.979268][101507:101509] CHIP:DMG: + [1686745149.979277][101507:101509] CHIP:DMG: Encrypted Payload (34 bytes) = + [1686745149.979282][101507:101509] CHIP:DMG: { + [1686745149.979287][101507:101509] CHIP:DMG: data = 01000000cb8cce02495723842672d19206403e200000d81a630a0000000000000000 + [1686745149.979293][101507:101509] CHIP:DMG: buffer_ptr = 140478582433296 + [1686745149.979300][101507:101509] CHIP:DMG: } + [1686745149.979305][101507:101509] CHIP:DMG: + [1686745149.979317][101507:101509] CHIP:DMG: Decrypted Payload (8 bytes) = + [1686745149.979322][101507:101509] CHIP:DMG: { + [1686745149.979328][101507:101509] CHIP:DMG: data = 0000000000000000 + [1686745149.979332][101507:101509] CHIP:DMG: } + [1686745149.979337][101507:101509] CHIP:DMG: + [1686745149.979348][101507:101509] CHIP:DMG: Parameters = + [1686745149.979354][101507:101509] CHIP:DMG: { + [1686745149.979360][101507:101509] CHIP:DMG: GeneralStatusCode = 0 + [1686745149.979366][101507:101509] CHIP:DMG: ProtocolId = 0 + [1686745149.979372][101507:101509] CHIP:DMG: ProtocolCode = 0 + [1686745149.979378][101507:101509] CHIP:DMG: } + [1686745149.979385][101507:101509] CHIP:DMG: + [1686745149.979391][101507:101509] CHIP:DMG: + [1686745149.979403][101507:101509] CHIP:DMG: Additional Fields = + [1686745149.979409][101507:101509] CHIP:DMG: { + [1686745149.979416][101507:101509] CHIP:DMG: peer_address = UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:5540 + [1686745149.979422][101507:101509] CHIP:DMG: } + [1686745149.979427][101507:101509] CHIP:DMG: + [1686745149.979440][101507:101509] CHIP:EM: >>> [E:8254i S:0 M:47090891 (Ack:174267096)] (U) Msg RX from 0:0000000000000000 [0000] --- Type 0000:40 (SecureChannel:StatusReport) disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml index d127bd3fbb3322..a94810b980458b 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 14.3.2. [TC-SC-3.2] CASE Session Resumption [DUT - Responder] +name: 3.3.2. [TC-SC-3.2] CASE Session Resumption [DUT_Responder] - REMOVEDPICS PICS: - MCORE.ROLE.COMMISSIONEE @@ -25,8 +25,8 @@ config: tests: - label: - "Initiator constructs and sends a TLV-encoded Sigma1 message to - Responder with resumption containing initiatorRandom + "Step 1: Initiator constructs and sends a TLV-encoded Sigma1 message + to Responder with resumption containing initiatorRandom initiatorSessionId destinationId resumptionID initiatorResumeMIC initiatorEphPubKey initiatorSEDParams" verification: | @@ -68,7 +68,7 @@ tests: disabled: true - label: - "Initiator receives the Sigma2_Resume message and extracts the + "Step 3: Initiator receives the Sigma2_Resume message and extracts the following values resumptionID responderSessionID sigma2ResumeMIC responderMRPParams" verification: | @@ -134,7 +134,7 @@ tests: [1683884120.044461][5134:5136] CHIP:DMG: disabled: true - - label: "Initiator sends SigmaFinished message to Responder" + - label: "Step 4a: Initiator sends SigmaFinished message to Responder" verification: | On Responder(all-clusters-app), verify that responder(all-clusters-app) received the SigmaFinished(The status report should be GeneralCode:SUCCESS, ProtocolId:SECURE_CHANNEL, and ProtocolCode:SESSION_ESTABLISHMENT_SUCCESS). message from Initiator diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml index 91b99180b188a3..a47809f76897d9 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 14.3.3. [TC-SC-3.3] CASE Session Resumption [DUT - Initiator] +name: 3.3.3. [TC-SC-3.3] CASE Session Resumption [DUT_Initiator] - REMOVED PICS: - MCORE.ROLE.COMMISSIONER @@ -24,25 +24,225 @@ config: endpoint: 0 tests: + - label: "Precondition" + verification: | + execute the below mentioned command to put DUT into a commissionable state, Pls use equivalent command on the respective DUT + ./chip-all-clusters-app --trace_decode 1 + + Once DUT reach the commissionable state pls send below mentioned command on TH. Pls use equivalent command on the respective DUT + ./chip-tool pairing onnetwork 1 20202021 --trace_decode 1 + Verify the commissioning completed with success on TH(chip-tool) from DUT + [1650455358.501816][4366:4371] CHIP:TOO: Device commissioning completed with success + + # 1 Please use Interactive mode to Verify this test cases + Here the command to enter interactive mode:-- + ./chip-tool interactive start --trace_decode 1 + + #2. kill the app(all-clusters-app), by sending below mentioned command + sessionmanagement send-close-session 1 --evict-local-session true + + #3. send a read request from chip-tool + onoff read on-off 1 1 --trace_decode 1 + + In the response of above read request command, please verify the below test steps + disabled: true + - label: - "Responder receives the Sigma1 message and extracts the following - initiatorRandom initiatorSessionId destinationId resumptionID - initiatorResumeMIC initiatorEphPubKey initiatorSEDParams" + "Step 2b: Responder receives the Sigma1 message and extracts the + following initiatorRandom initiatorSessionId destinationId + resumptionID initiatorResumeMIC initiatorEphPubKey initiatorSEDParams" verification: | - Verify that the message is properly formatted: I Flag is set to 1 S flag and DIZ fields of message flags are set to 0 Encryption Type of security flags is set to 0 The Session Key Type field is set to 0 The Protocol ID field is set to 0x0000 and The Protocol Opcode field is set to 0x30 Verify that the initiatorRandom is of Octet String maximum of length 32 bytes Verify that the initiatorSessionId is of uint16 Verify that the destinationId is of Octet string Verify that the resumptionID from the Initiator matches with the precondition Verify that the resumptionID is of Octet String maximum of length 16 bytes Verify that the initiatorEphPubKey is of Octet string Verify that the initiatorResumeMIC is of Octet string Verify that the responderSEDParams is from any one of the following: SLEEPY_IDLE_INTERVAL Verify that it is of uint32 SLEEPY_ACTIVE_INTERVAL Verify that it is of uint32 + Responder(chip-tool) receives the Sigma1 message and extracts the following + and extracts the following values + initiatorRandom + initiatorSessionId + destinationId + resumptionID + initiatorResumeMIC + initiatorEphPubKey + initiatorSEDParams - optional flag + And + Verify that the message is properly formatted: + + I Flag is set to 1 + S flag and DIZ fields of message flags are set to 0 + Encryption Type of security flags is set to 0 + The Session Key Type field is set to 0 + The Protocol ID field is set to 0x0000 and + The Protocol Opcode field is set to 0x33 + resumptionID is of Octet String maximum of length 16 bytes + responderSessionID is of uint16 + sigma2ResumeMIC is of Octet String maximum of length 16 bytes + responderSEDParams is from any one of the following: + SLEEPY_IDLE_INTERVAL - Verify that it is of uint32 + SLEEPY_ACTIVE_INTERVAL - Verify that it is of uint32 + + + [1683973658.044236][21637:21637] CHIP:EM: Rxd Ack; Removing MessageCounter:113416101 from Retrans Table on exchange 32995r + [1683973662.299442][21637:21637] CHIP:DMG: << from UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:41363 | 167307433 | [Secure Channel (0) / Certificate Authenticated Session Establishment Sigma '1' (0x30) / Session = 0 / Exchange = 32997] + [1683973662.299477][21637:21637] CHIP:DMG: Header Flags = + [1683973662.299486][21637:21637] CHIP:DMG: { + [1683973662.299503][21637:21637] CHIP:DMG: Message (0x04) = + [1683973662.299512][21637:21637] CHIP:DMG: { + [1683973662.299523][21637:21637] CHIP:DMG: SourceNodeId = D379FA4FB43AD140 + [1683973662.299532][21637:21637] CHIP:DMG: } + [1683973662.299549][21637:21637] CHIP:DMG: Exchange (0x05) = + [1683973662.299557][21637:21637] CHIP:DMG: { + [1683973662.299564][21637:21637] CHIP:DMG: Initiator = true + [1683973662.299573][21637:21637] CHIP:DMG: NeedsAck = true + [1683973662.299581][21637:21637] CHIP:DMG: } + [1683973662.299597][21637:21637] CHIP:DMG: } + [1683973662.299605][21637:21637] CHIP:DMG: + [1683973662.299620][21637:21637] CHIP:DMG: Encrypted Payload (204 bytes) = + [1683973662.299628][21637:21637] CHIP:DMG: { + [1683973662.299637][21637:21637] CHIP:DMG: data = 04000000a9e8f80940d13ab44ffa79d30530e580000015300120d3e371ae41aeeeefec3ec8088649815c1e8c3a9f698bbc637d22bdff9840c88e2502eda430032072c5aa1f0f616a767207274761c0643407696db926c39fcb1c76a0587889d0a83004410445a43b226ae57e1668e2ce881570b9faffb6467f7cecbefe329604ba7de1864d3ec9b31a749590c2e099450556eb27522de7d89648453a89c74b2c3dfa77a011300610783082d937b2fa2c82593b64d1fc5e183007109a50249022efc01396950e9416cc4beb18 + [1683973662.299651][21637:21637] CHIP:DMG: buffer_ptr = 94717329512304 + [1683973662.299658][21637:21637] CHIP:DMG: } + [1683973662.299666][21637:21637] CHIP:DMG: + [1683973662.299682][21637:21637] CHIP:DMG: Decrypted Payload (182 bytes) = + [1683973662.299690][21637:21637] CHIP:DMG: { + [1683973662.299697][21637:21637] CHIP:DMG: data = 15300120d3e371ae41aeeeefec3ec8088649815c1e8c3a9f698bbc637d22bdff9840c88e2502eda430032072c5aa1f0f616a767207274761c0643407696db926c39fcb1c76a0587889d0a83004410445a43b226ae57e1668e2ce881570b9faffb6467f7cecbefe329604ba7de1864d3ec9b31a749590c2e099450556eb27522de7d89648453a89c74b2c3dfa77a011300610783082d937b2fa2c82593b64d1fc5e183007109a50249022efc01396950e9416cc4beb18 + [1683973662.299710][21637:21637] CHIP:DMG: } + [1683973662.299719][21637:21637] CHIP:DMG: + [1683973662.299759][21637:21637] CHIP:DMG: Parameters = + [1683973662.299766][21637:21637] CHIP:DMG: { + [1683973662.299780][21637:21637] CHIP:DMG: InitiatorRandom (32) = D3E371AE41AEEEEFEC3EC8088649815C1E8C3A9F698BBC637D22BDFF9840C88E + [1683973662.299789][21637:21637] CHIP:DMG: InitiatorSessionId = 42221 + [1683973662.299802][21637:21637] CHIP:DMG: DestinationId (32) = 72C5AA1F0F616A767207274761C0643407696DB926C39FCB1C76A0587889D0A8 + [1683973662.299817][21637:21637] CHIP:DMG: InitiatorEphPubKey (65) = 0445A43B226AE57E1668E2CE881570B9FAFFB6467F7CECBEFE329604BA7DE1864D3EC9B31A749590C2E099450556EB27522DE7D89648453A89C74B2C3DFA77A011 + [1683973662.299830][21637:21637] CHIP:DMG: ResumptionID (16) = 783082D937B2FA2C82593B64D1FC5E18 + [1683973662.299842][21637:21637] CHIP:DMG: InitiatorResumeMIC (16) = 9A50249022EFC01396950E9416CC4BEB + [1683973662.299853][21637:21637] CHIP:DMG: } + [1683973662.299861][21637:21637] CHIP:DMG: + [1683973662.299871][21637:21637] CHIP:DMG: + [1683973662.299890][21637:21637] CHIP:DMG: Additional Fields = + [1683973662.299898][21637:21637] CHIP:DMG: { + [1683973662.299907][21637:21637] CHIP:DMG: peer_address = UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:41363 + [1683973662.299915][21637:21637] CHIP:DMG: } + [1683973662.299922][21637:21637] CHIP:DMG: + [1683973662.299943][21637:21637] CHIP:EM: >>> [E:32997r S:0 M:167307433] (U) Msg RX from 0:D379FA4FB43AD140 [0000] --- Type 0000:30 (SecureChannel:CASE_Sigma1) disabled: true - label: - "Responder sends a TLV-encoded Sigma2_Resume message to Initiator - containing resumptionID responderSessionID sigma2ResumeMIC + "Step 2c: Responder sends a TLV-encoded Sigma2_Resume message to + Initiator containing resumptionID responderSessionID sigma2ResumeMIC responderMRPParams" verification: | - Verify that the Initiator receives the Sigma2_Resume message + Responder(chip-tool) sends a TLV-encoded Sigma2_Resume message to Initiator containing + resumptionID + responderSessionID + sigma2ResumeMIC + responderMRPParams + + AND Verify that the Initiator(all-clusters-app) receives the Sigma2_Resume message + + [1683973662.301394][21648:21650] CHIP:DMG: << from UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:5540 | 113416102 | [Secure Channel (0) / Certificate Authenticated Session Establishment Sigma '2' Resume (0x33) / Session = 0 / Exchange = 32997] + [1683973662.301425][21648:21650] CHIP:DMG: Header Flags = + [1683973662.301436][21648:21650] CHIP:DMG: { + [1683973662.301446][21648:21650] CHIP:DMG: Message (0x01) = + [1683973662.301452][21648:21650] CHIP:DMG: { + [1683973662.301460][21648:21650] CHIP:DMG: DestinationNodeId = D379FA4FB43AD140 + [1683973662.301466][21648:21650] CHIP:DMG: } + [1683973662.301478][21648:21650] CHIP:DMG: Exchange (0x06) = + [1683973662.301483][21648:21650] CHIP:DMG: { + [1683973662.301490][21648:21650] CHIP:DMG: AckMsg = 167307433 + [1683973662.301497][21648:21650] CHIP:DMG: NeedsAck = true + [1683973662.301502][21648:21650] CHIP:DMG: } + [1683973662.301513][21648:21650] CHIP:DMG: } + [1683973662.301521][21648:21650] CHIP:DMG: + [1683973662.301531][21648:21650] CHIP:DMG: Encrypted Payload (70 bytes) = + [1683973662.301537][21648:21650] CHIP:DMG: { + [1683973662.301543][21648:21650] CHIP:DMG: data = 01000000a697c20640d13ab44ffa79d30633e5800000a9e8f809153001108927f63ba4091ee14da61e238cccf5bc30021079fec088dac734a0be8c0ee0bf9145a72503b00218 + [1683973662.301551][21648:21650] CHIP:DMG: buffer_ptr = 140651656201648 + [1683973662.301557][21648:21650] CHIP:DMG: } + [1683973662.301562][21648:21650] CHIP:DMG: + [1683973662.301574][21648:21650] CHIP:DMG: Decrypted Payload (44 bytes) = + [1683973662.301580][21648:21650] CHIP:DMG: { + [1683973662.301586][21648:21650] CHIP:DMG: data = 153001108927f63ba4091ee14da61e238cccf5bc30021079fec088dac734a0be8c0ee0bf9145a72503b00218 + [1683973662.301592][21648:21650] CHIP:DMG: } + [1683973662.301599][21648:21650] CHIP:DMG: + [1683973662.301619][21648:21650] CHIP:DMG: Parameters = + [1683973662.301624][21648:21650] CHIP:DMG: { + [1683973662.301632][21648:21650] CHIP:DMG: ResumptionID (16) = 8927F63BA4091EE14DA61E238CCCF5BC + [1683973662.301640][21648:21650] CHIP:DMG: Sigma2ResumeMIC (16) = 79FEC088DAC734A0BE8C0EE0BF9145A7 + [1683973662.301647][21648:21650] CHIP:DMG: ResponderSessionId = 688 + [1683973662.301654][21648:21650] CHIP:DMG: } + [1683973662.301662][21648:21650] CHIP:DMG: + [1683973662.301668][21648:21650] CHIP:DMG: + [1683973662.301680][21648:21650] CHIP:DMG: Additional Fields = + [1683973662.301686][21648:21650] CHIP:DMG: { + [1683973662.301693][21648:21650] CHIP:DMG: peer_address = UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:5540 + [1683973662.301699][21648:21650] CHIP:DMG: } + [1683973662.301705][21648:21650] CHIP:DMG: + [1683973662.301717][21648:21650] CHIP:EM: >>> [E:32997i S:0 M:113416102 (Ack:167307433)] (U) Msg RX from 0:0000000000000000 [0000] --- Type 0000:33 (SecureChannel:CASE_Sigma2Resume) + [1683973662.301729][21648:21650] CHIP:EM: Found matching exchange: 32997i, Delegate: 0x7fec0400dc28 + [1683973662.301745][21648:21650] CHIP:EM: Rxd Ack; Removing MessageCounter:167307433 from Retrans Table on exchange 32997i + [1683973662.301764][21648:21650] CHIP:SC: Received Sigma2Resume msg + [1683973662.301880][21648:21650] CHIP:SC: Peer assigned session session ID 688 + disabled: true + + - label: + "Step 3a: Responder receives the SigmaFinished message and extracts + the following 1.ProtocolId 2.ProtocolCode" + verification: | + On Responder(chip-tool), verify that responder(chip-tool) received the SigmaFinished(The status report should be GeneralCode:SUCCESS, + ProtocolId:SECURE_CHANNEL, and ProtocolCode:SESSION_ESTABLISHMENT_SUCCESS). message from Initiator + + + [1683973662.304410][21637:21637] CHIP:DMG: Decrypted Payload (8 bytes) = + [1683973662.304419][21637:21637] CHIP:DMG: { + [1683973662.304428][21637:21637] CHIP:DMG: data = 0000000000000000 + [1683973662.304436][21637:21637] CHIP:DMG: } + [1683973662.304443][21637:21637] CHIP:DMG: + [1683973662.304456][21637:21637] CHIP:DMG: Parameters = + [1683973662.304465][21637:21637] CHIP:DMG: { + [1683973662.304472][21637:21637] CHIP:DMG: GeneralStatusCode = 0 + [1683973662.304479][21637:21637] CHIP:DMG: ProtocolId = 0 + [1683973662.304486][21637:21637] CHIP:DMG: ProtocolCode = 0 + [1683973662.304494][21637:21637] CHIP:DMG: } + [1683973662.304499][21637:21637] CHIP:DMG: + [1683973662.304507][21637:21637] CHIP:DMG: + [1683973662.304522][21637:21637] CHIP:DMG: Additional Fields = + [1683973662.304528][21637:21637] CHIP:DMG: { + [1683973662.304533][21637:21637] CHIP:DMG: peer_address = UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:41363 + [1683973662.304538][21637:21637] CHIP:DMG: } + [1683973662.304541][21637:21637] CHIP:DMG: + [1683973662.304552][21637:21637] CHIP:EM: >>> [E:32997r S:0 M:167307434 (Ack:113416102)] (U) Msg RX from 0:D379FA4FB43AD140 [0000] --- Type 0000:40 (SecureChannel:StatusReport) + [1683973662.304563][21637:21637] CHIP:EM: Found matching exchange: 32997r, Delegate: 0x56251895ef18 + [1683973662.304580][21637:21637] CHIP:EM: Rxd Ack; Removing MessageCounter:113416102 from Retrans Table on exchange 32997r + [1683973662.304598][21637:21637] CHIP:SC: Success status report received. Session was established + [1683973662.304775][21637:21637] CHIP:DL: writing settings to file (/tmp/chip_kvs-nwe4ab) disabled: true - label: - "Responder receives the SigmaFinished message and extracts the - following ProtcolId ProtocolCode" + "Step 3b: Verify that the Initiator sends a SigmaFinished message to + Responder" verification: | - Verify that the SigmaFinished Status report with the following GeneralCode as SUCCESS ProtcolId as SECURE_CHANNEL ProtocolCode as SESSION_ESTABLISHMENT_SUCCESS + On Responder(chip-tool), verify that responder(chip-tool) received the SigmaFinished(The status report should be GeneralCode:SUCCESS, + ProtocolId:SECURE_CHANNEL, and ProtocolCode:SESSION_ESTABLISHMENT_SUCCESS). message from Initiator + + + [1683973662.304410][21637:21637] CHIP:DMG: Decrypted Payload (8 bytes) = + [1683973662.304419][21637:21637] CHIP:DMG: { + [1683973662.304428][21637:21637] CHIP:DMG: data = 0000000000000000 + [1683973662.304436][21637:21637] CHIP:DMG: } + [1683973662.304443][21637:21637] CHIP:DMG: + [1683973662.304456][21637:21637] CHIP:DMG: Parameters = + [1683973662.304465][21637:21637] CHIP:DMG: { + [1683973662.304472][21637:21637] CHIP:DMG: GeneralStatusCode = 0 + [1683973662.304479][21637:21637] CHIP:DMG: ProtocolId = 0 + [1683973662.304486][21637:21637] CHIP:DMG: ProtocolCode = 0 + [1683973662.304494][21637:21637] CHIP:DMG: } + [1683973662.304499][21637:21637] CHIP:DMG: + [1683973662.304507][21637:21637] CHIP:DMG: + [1683973662.304522][21637:21637] CHIP:DMG: Additional Fields = + [1683973662.304528][21637:21637] CHIP:DMG: { + [1683973662.304533][21637:21637] CHIP:DMG: peer_address = UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:41363 + [1683973662.304538][21637:21637] CHIP:DMG: } + [1683973662.304541][21637:21637] CHIP:DMG: + [1683973662.304552][21637:21637] CHIP:EM: >>> [E:32997r S:0 M:167307434 (Ack:113416102)] (U) Msg RX from 0:D379FA4FB43AD140 [0000] --- Type 0000:40 (SecureChannel:StatusReport) + [1683973662.304563][21637:21637] CHIP:EM: Found matching exchange: 32997r, Delegate: 0x56251895ef18 + [1683973662.304580][21637:21637] CHIP:EM: Rxd Ack; Removing MessageCounter:113416102 from Retrans Table on exchange 32997r + [1683973662.304598][21637:21637] CHIP:SC: Success status report received. Session was established + [1683973662.304775][21637:21637] CHIP:DL: writing settings to file (/tmp/chip_kvs-nwe4ab) disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_6.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_6.yaml new file mode 100644 index 00000000000000..0a01a9cbb52d08 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_SC_3_6.yaml @@ -0,0 +1,310 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 22.3.6. [TC-SC-3.6] CASE Resource validation + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: RD1X, RD2X, RD3X, RD4X, RD5X each send 1 Subscribe Request + Messages to DUT.(Total - 15 active subscriptions) They can subscribe + to any attribute. Once all subscriptions are active, change the value + of the attribute that has been subscribed to" + verification: | + Send 1 Subscriptionrequest message from each Reference Device(Eg. RD1...) to DUT and verify all the subscription requests are succes, and change the value of all the attributes by sending write command, after sending write commanfd verify on each of these Reference Devices that the appropriate attribute value has been received. Example commands given below are using 4 reference device (User can use 15 reference device and send the below command in from each reference device) + + + on the first reference device enter: + + onoff subscribe on-time 10 100 1 1 + [1657715218.149357][5956:5961] CHIP:DMG: ReportDataMessage = + [1657715218.149399][5956:5961] CHIP:DMG: { + [1657715218.149432][5956:5961] CHIP:DMG: SubscriptionId = 0xea8e5b3b, + [1657715218.149465][5956:5961] CHIP:DMG: AttributeReportIBs = + [1657715218.149504][5956:5961] CHIP:DMG: [ + [1657715218.149535][5956:5961] CHIP:DMG: AttributeReportIB = + [1657715218.149581][5956:5961] CHIP:DMG: { + [1657715218.149619][5956:5961] CHIP:DMG: AttributeDataIB = + [1657715218.149663][5956:5961] CHIP:DMG: { + [1657715218.149711][5956:5961] CHIP:DMG: DataVersion = 0x734a2d83, + [1657715218.149755][5956:5961] CHIP:DMG: AttributePathIB = + [1657715218.149802][5956:5961] CHIP:DMG: { + [1657715218.149849][5956:5961] CHIP:DMG: Endpoint = 0x1, + [1657715218.149895][5956:5961] CHIP:DMG: Cluster = 0x6, + [1657715218.149942][5956:5961] CHIP:DMG: Attribute = 0x0000_4001, + [1657715218.149983][5956:5961] CHIP:DMG: } + [1657715218.150027][5956:5961] CHIP:DMG: + [1657715218.150075][5956:5961] CHIP:DMG: Data = 0, + [1657715218.150118][5956:5961] CHIP:DMG: }, + [1657715218.150165][5956:5961] CHIP:DMG: + [1657715218.150201][5956:5961] CHIP:DMG: }, + [1657715218.150245][5956:5961] CHIP:DMG: + [1657715218.150275][5956:5961] CHIP:DMG: ], + [1657715218.150313][5956:5961] CHIP:DMG: + [1657715218.150343][5956:5961] CHIP:DMG: InteractionModelRevision = 1 + [1657715218.150372][5956:5961] CHIP:DMG: } + [1657715218.150529][5956:5961] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_4001 DataVersion: 1934241155 + [1657715218.150599][5956:5961] CHIP:TOO: OnTime: 0 + [1657715218.150646][5956:5961] CHIP:DMG: MoveToState ReadClient[0xffff94008e40]: Moving to + + + On the 2nd reference device + + levelcontrol subscribe on-level 100 1000 1 1 + [1657715273.668717][5956:5961] CHIP:DMG: ReportDataMessage = + [1657715273.668784][5956:5961] CHIP:DMG: { + [1657715273.668846][5956:5961] CHIP:DMG: SubscriptionId = 0xb6497be6, + [1657715273.668908][5956:5961] CHIP:DMG: AttributeReportIBs = + [1657715273.668984][5956:5961] CHIP:DMG: [ + [1657715273.669046][5956:5961] CHIP:DMG: AttributeReportIB = + [1657715273.669126][5956:5961] CHIP:DMG: { + [1657715273.669190][5956:5961] CHIP:DMG: AttributeDataIB = + [1657715273.669261][5956:5961] CHIP:DMG: { + [1657715273.669378][5956:5961] CHIP:DMG: DataVersion = 0x319eeda7, + [1657715273.669460][5956:5961] CHIP:DMG: AttributePathIB = + [1657715273.669540][5956:5961] CHIP:DMG: { + [1657715273.669620][5956:5961] CHIP:DMG: Endpoint = 0x1, + [1657715273.669706][5956:5961] CHIP:DMG: Cluster = 0x8, + [1657715273.669792][5956:5961] CHIP:DMG: Attribute = 0x0000_0011, + [1657715273.669875][5956:5961] CHIP:DMG: } + [1657715273.669961][5956:5961] CHIP:DMG: + [1657715273.670043][5956:5961] CHIP:DMG: Data = NULL + [1657715273.670119][5956:5961] CHIP:DMG: }, + [1657715273.670199][5956:5961] CHIP:DMG: + [1657715273.670267][5956:5961] CHIP:DMG: }, + [1657715273.670341][5956:5961] CHIP:DMG: + [1657715273.670400][5956:5961] CHIP:DMG: ], + [1657715273.670474][5956:5961] CHIP:DMG: + [1657715273.670533][5956:5961] CHIP:DMG: InteractionModelRevision = 1 + [1657715273.670591][5956:5961] CHIP:DMG: } + [1657715273.670803][5956:5961] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 832499111 + [1657715273.670879][5956:5961] CHIP:TOO: on level: null + [1657715273.670967][5956:5961] CHIP:DMG: MoveToState ReadClient[0xffff94008f30]: Moving to [AwaitingSu] + + on 3rd reference device + + onoff subscribe start-up-on-off 100 1000 1 1 + [1657715343.924200][5956:5961] CHIP:DMG: ReportDataMessage = + [1657715343.924269][5956:5961] CHIP:DMG: { + [1657715343.924330][5956:5961] CHIP:DMG: SubscriptionId = 0x9fce63ae, + [1657715343.924392][5956:5961] CHIP:DMG: AttributeReportIBs = + [1657715343.924470][5956:5961] CHIP:DMG: [ + [1657715343.924532][5956:5961] CHIP:DMG: AttributeReportIB = + [1657715343.924612][5956:5961] CHIP:DMG: { + [1657715343.924678][5956:5961] CHIP:DMG: AttributeDataIB = + [1657715343.924750][5956:5961] CHIP:DMG: { + [1657715343.924833][5956:5961] CHIP:DMG: DataVersion = 0x734a2d84, + [1657715343.924909][5956:5961] CHIP:DMG: AttributePathIB = + [1657715343.924992][5956:5961] CHIP:DMG: { + [1657715343.925074][5956:5961] CHIP:DMG: Endpoint = 0x1, + [1657715343.925159][5956:5961] CHIP:DMG: Cluster = 0x6, + [1657715343.925245][5956:5961] CHIP:DMG: Attribute = 0x0000_4003, + [1657715343.925382][5956:5961] CHIP:DMG: } + [1657715343.925470][5956:5961] CHIP:DMG: + [1657715343.925561][5956:5961] CHIP:DMG: Data = NULL + [1657715343.925631][5956:5961] CHIP:DMG: }, + [1657715343.925713][5956:5961] CHIP:DMG: + [1657715343.925776][5956:5961] CHIP:DMG: }, + [1657715343.925851][5956:5961] CHIP:DMG: + [1657715343.925910][5956:5961] CHIP:DMG: ], + [1657715343.925985][5956:5961] CHIP:DMG: + [1657715343.926046][5956:5961] CHIP:DMG: InteractionModelRevision = 1 + [1657715343.926104][5956:5961] CHIP:DMG: } + [1657715343.926315][5956:5961] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_4003 DataVersion: 1934241156 + [1657715343.926395][5956:5961] CHIP:TOO: StartUpOnOff: null + [1657715343.926485][5956:5961] CHIP:DMG: MoveToState ReadClient[0xffff94008c80]: Moving to [AwaitingSu] + + on the 4th reference device + + basic subscribe node-label 10 100 1 0 + [1657715505.138806][5956:5961] CHIP:DMG: ReportDataMessage = + [1657715505.138881][5956:5961] CHIP:DMG: { + [1657715505.138943][5956:5961] CHIP:DMG: SubscriptionId = 0xd002abb6, + [1657715505.139045][5956:5961] CHIP:DMG: AttributeReportIBs = + [1657715505.139128][5956:5961] CHIP:DMG: [ + [1657715505.139190][5956:5961] CHIP:DMG: AttributeReportIB = + [1657715505.139498][5956:5961] CHIP:DMG: { + [1657715505.139600][5956:5961] CHIP:DMG: AttributeDataIB = + [1657715505.139713][5956:5961] CHIP:DMG: { + [1657715505.139824][5956:5961] CHIP:DMG: DataVersion = 0x1b93dc30, + [1657715505.139932][5956:5961] CHIP:DMG: AttributePathIB = + [1657715505.140020][5956:5961] CHIP:DMG: { + [1657715505.140112][5956:5961] CHIP:DMG: Endpoint = 0x0, + [1657715505.140202][5956:5961] CHIP:DMG: Cluster = 0x28, + [1657715505.140289][5956:5961] CHIP:DMG: Attribute = 0x0000_0005, + [1657715505.140370][5956:5961] CHIP:DMG: } + [1657715505.140560][5956:5961] CHIP:DMG: + [1657715505.140657][5956:5961] CHIP:DMG: Data = "", + [1657715505.140741][5956:5961] CHIP:DMG: }, + [1657715505.140825][5956:5961] CHIP:DMG: + [1657715505.140893][5956:5961] CHIP:DMG: }, + [1657715505.140972][5956:5961] CHIP:DMG: + [1657715505.141031][5956:5961] CHIP:DMG: ], + [1657715505.141105][5956:5961] CHIP:DMG: + [1657715505.141165][5956:5961] CHIP:DMG: InteractionModelRevision = 1 + [1657715505.141223][5956:5961] CHIP:DMG: } + [1657715505.141471][5956:5961] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 462674992 + [1657715505.141554][5956:5961] CHIP:TOO: NodeLabel: + [1657715505.141643][5956:5961] CHIP:DMG: MoveToState ReadClient[0xffff94008c80]: Moving to [AwaitingSu] + + + + on the first reference device enter below mentioned commands to change the attribute values + + onoff write on-time 1 1 1 + [1657715232.758666][5956:5961] CHIP:DMG: ReportDataMessage = + [1657715232.758698][5956:5961] CHIP:DMG: { + [1657715232.758724][5956:5961] CHIP:DMG: SubscriptionId = 0xea8e5b3b, + [1657715232.758753][5956:5961] CHIP:DMG: AttributeReportIBs = + [1657715232.758782][5956:5961] CHIP:DMG: [ + [1657715232.758803][5956:5961] CHIP:DMG: AttributeReportIB = + [1657715232.758832][5956:5961] CHIP:DMG: { + [1657715232.758854][5956:5961] CHIP:DMG: AttributeDataIB = + [1657715232.758880][5956:5961] CHIP:DMG: { + [1657715232.758911][5956:5961] CHIP:DMG: DataVersion = 0x734a2d84, + [1657715232.758936][5956:5961] CHIP:DMG: AttributePathIB = + [1657715232.758962][5956:5961] CHIP:DMG: { + [1657715232.758989][5956:5961] CHIP:DMG: Endpoint = 0x1, + [1657715232.759030][5956:5961] CHIP:DMG: Cluster = 0x6, + [1657715232.759071][5956:5961] CHIP:DMG: Attribute = 0x0000_4001, + [1657715232.759104][5956:5961] CHIP:DMG: } + [1657715232.759140][5956:5961] CHIP:DMG: + [1657715232.759174][5956:5961] CHIP:DMG: Data = 1, + [1657715232.759203][5956:5961] CHIP:DMG: }, + [1657715232.759235][5956:5961] CHIP:DMG: + [1657715232.759261][5956:5961] CHIP:DMG: }, + [1657715232.759292][5956:5961] CHIP:DMG: + [1657715232.759317][5956:5961] CHIP:DMG: ], + [1657715232.759348][5956:5961] CHIP:DMG: + [1657715232.759373][5956:5961] CHIP:DMG: InteractionModelRevision = 1 + [1657715232.759398][5956:5961] CHIP:DMG: } + [1657715232.759493][5956:5961] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_4001 DataVersion: 1934241156 + [1657715232.759530][5956:5961] CHIP:TOO: OnTime: 1 + [1657715232.759576][5956:5961] CHIP:DMG: Refresh LivenessCheckTime for 125000 milliseconds with SubscriptionId = 0xea8e5b3b + + + + on the 2nd reference device enter below mentioned commands to change the attribute values + + levelcontrol write on-level 1 1 1 + [1657715287.200431][5956:5961] CHIP:DMG: ReportDataMessage = + [1657715287.200491][5956:5961] CHIP:DMG: { + [1657715287.200557][5956:5961] CHIP:DMG: SubscriptionId = 0xb6497be6, + [1657715287.200622][5956:5961] CHIP:DMG: AttributeReportIBs = + [1657715287.200701][5956:5961] CHIP:DMG: [ + [1657715287.200765][5956:5961] CHIP:DMG: AttributeReportIB = + [1657715287.200848][5956:5961] CHIP:DMG: { + [1657715287.200921][5956:5961] CHIP:DMG: AttributeDataIB = + [1657715287.201012][5956:5961] CHIP:DMG: { + [1657715287.201094][5956:5961] CHIP:DMG: DataVersion = 0x319eeda8, + [1657715287.201180][5956:5961] CHIP:DMG: AttributePathIB = + [1657715287.201263][5956:5961] CHIP:DMG: { + [1657715287.201403][5956:5961] CHIP:DMG: Endpoint = 0x1, + [1657715287.201501][5956:5961] CHIP:DMG: Cluster = 0x8, + [1657715287.201596][5956:5961] CHIP:DMG: Attribute = 0x0000_0011, + [1657715287.201686][5956:5961] CHIP:DMG: } + [1657715287.201889][5956:5961] CHIP:DMG: + [1657715287.201987][5956:5961] CHIP:DMG: Data = 1, + [1657715287.202074][5956:5961] CHIP:DMG: }, + [1657715287.202157][5956:5961] CHIP:DMG: + [1657715287.202221][5956:5961] CHIP:DMG: }, + [1657715287.202296][5956:5961] CHIP:DMG: + [1657715287.202354][5956:5961] CHIP:DMG: ], + [1657715287.202429][5956:5961] CHIP:DMG: + [1657715287.202488][5956:5961] CHIP:DMG: InteractionModelRevision = 1 + [1657715287.202546][5956:5961] CHIP:DMG: } + [1657715287.202754][5956:5961] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 832499112 + [1657715287.202838][5956:5961] CHIP:TOO: on level: 1 + [1657715287.202937][5956:5961] CHIP:DMG: Refresh LivenessCheckTime for 125000 milliseconds with SubscriptionId = 0xb6497be6 Peer = 01:0000000000000001 + + + + + on the 3rd reference device enter below mentioned commands to change the attribute values + + onoff write start-up-on-off 1 1 1 + [1657715357.628508][5956:5961] CHIP:DMG: ReportDataMessage = + [1657715357.628536][5956:5961] CHIP:DMG: { + [1657715357.628561][5956:5961] CHIP:DMG: SubscriptionId = 0x9fce63ae, + [1657715357.628586][5956:5961] CHIP:DMG: AttributeReportIBs = + [1657715357.628618][5956:5961] CHIP:DMG: [ + [1657715357.628643][5956:5961] CHIP:DMG: AttributeReportIB = + [1657715357.628676][5956:5961] CHIP:DMG: { + [1657715357.628702][5956:5961] CHIP:DMG: AttributeDataIB = + [1657715357.628735][5956:5961] CHIP:DMG: { + [1657715357.628763][5956:5961] CHIP:DMG: DataVersion = 0x734a2d85, + [1657715357.628791][5956:5961] CHIP:DMG: AttributePathIB = + [1657715357.628822][5956:5961] CHIP:DMG: { + [1657715357.628853][5956:5961] CHIP:DMG: Endpoint = 0x1, + [1657715357.628882][5956:5961] CHIP:DMG: Cluster = 0x6, + [1657715357.628914][5956:5961] CHIP:DMG: Attribute = 0x0000_4003, + [1657715357.628944][5956:5961] CHIP:DMG: } + [1657715357.628977][5956:5961] CHIP:DMG: + [1657715357.629009][5956:5961] CHIP:DMG: Data = 1, + [1657715357.629037][5956:5961] CHIP:DMG: }, + [1657715357.629068][5956:5961] CHIP:DMG: + [1657715357.629093][5956:5961] CHIP:DMG: }, + [1657715357.629123][5956:5961] CHIP:DMG: + [1657715357.629147][5956:5961] CHIP:DMG: ], + [1657715357.629177][5956:5961] CHIP:DMG: + [1657715357.629201][5956:5961] CHIP:DMG: InteractionModelRevision = 1 + [1657715357.629225][5956:5961] CHIP:DMG: } + [1657715357.629340][5956:5961] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_4003 DataVersion: 1934241157 + [1657715357.629432][5956:5961] CHIP:TOO: StartUpOnOff: 1 + [1657715357.629480][5956:5961] CHIP:DMG: Refresh LivenessCheckTime for 125000 milliseconds with SubscriptionId = 0x9fce63ae Peer = 01:0000000000000001 + + + + + + + on the 4th reference device enter below mentioned commands to change the attribute values + + + basic write node-label 1 1 0 + [1657715530.832949][5956:5961] CHIP:DMG: ReportDataMessage = + [1657715530.832977][5956:5961] CHIP:DMG: { + [1657715530.833000][5956:5961] CHIP:DMG: SubscriptionId = 0xfd355fe5, + [1657715530.833024][5956:5961] CHIP:DMG: AttributeReportIBs = + [1657715530.833063][5956:5961] CHIP:DMG: [ + [1657715530.833091][5956:5961] CHIP:DMG: AttributeReportIB = + [1657715530.833133][5956:5961] CHIP:DMG: { + [1657715530.833165][5956:5961] CHIP:DMG: AttributeDataIB = + [1657715530.833205][5956:5961] CHIP:DMG: { + [1657715530.833243][5956:5961] CHIP:DMG: DataVersion = 0x1b93dc31, + [1657715530.833279][5956:5961] CHIP:DMG: AttributePathIB = + [1657715530.833342][5956:5961] CHIP:DMG: { + [1657715530.833382][5956:5961] CHIP:DMG: Endpoint = 0x0, + [1657715530.833422][5956:5961] CHIP:DMG: Cluster = 0x28, + [1657715530.833466][5956:5961] CHIP:DMG: Attribute = 0x0000_0005, + [1657715530.833505][5956:5961] CHIP:DMG: } + [1657715530.833546][5956:5961] CHIP:DMG: + [1657715530.833587][5956:5961] CHIP:DMG: Data = "1", + [1657715530.833623][5956:5961] CHIP:DMG: }, + [1657715530.833662][5956:5961] CHIP:DMG: + [1657715530.833693][5956:5961] CHIP:DMG: }, + [1657715530.833730][5956:5961] CHIP:DMG: + [1657715530.833760][5956:5961] CHIP:DMG: ], + [1657715530.833794][5956:5961] CHIP:DMG: + [1657715530.833822][5956:5961] CHIP:DMG: InteractionModelRevision = 1 + [1657715530.833851][5956:5961] CHIP:DMG: } + [1657715530.833959][5956:5961] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 462674993 + [1657715530.833999][5956:5961] CHIP:TOO: NodeLabel: 1 + [1657715530.834171][5956:5961] CHIP:DMG: Refresh LivenessCheckTime for 125000 milliseconds with SubscriptionId = 0xfd355fe5 Peer = 01:0000000000000001 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_2.yaml index 49f962ae6e7d0f..58623d4fd9e8d6 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 15.4.2. [TC-SC-4.2] Discovery [DUT as Commissioner] +name: 3.4.2. [TC-SC-4.2] Discovery [DUT as Commissioner] PICS: - MCORE.ROLE.COMMISSIONER @@ -30,23 +30,24 @@ tests: disabled: true - label: - "By any means, TH adds an unknown key/value pair in the advertised - data(e.g. AB=12345) and is in Commissioning Mode" + "Step 1: By any means, TH adds an unknown key/value pair in the + advertised data(e.g. AB=12345) and is in Commissioning Mode" verification: | Run all cluster app in one TH Terminal Run the unknown key/value pair on second TH Terminal with the same discriminator as the one in the first teminal: avahi-publish-service --subtype=_S3._sub._matterc._udp --subtype=_L840._sub._matterc._udp DD200C20D25AE5F7 --subtype=_CM._sub._matterc._udp _matterc._udp 11111 D=3840 CM=1 INVALID_TEST=40 SII=5000 SAI=300 PH=36 PI= VP=65521+3276 T=1 + TH(all-clusters-app) must advertise with new data added Established under name 'DD200C20D25AE5F7' disabled: true - - label: "DUT attempts to commission TH" + - label: "Step 2: DUT attempts to commission TH" verification: | Verify the DUT is able to commission the TH, in spite of the avahi publish with unknown key/value pair. As an example, In the case of chip-tool as commissioner, you can verify commissioning DUT with the below command, (Use the equivalent command on the DUT) - % sudo ./out/debug/chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 + ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00 [1661234861.142378][2599:2602] CHIP:BLE: New device scanned: E4:5F:01:0B:F6:6F [1661234861.142474][2599:2602] CHIP:BLE: Device discriminator match. Attempting to connect. diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_4.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_4.yaml index 7d7962bf6cd7b2..3d8149bf59eea5 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_4.yaml @@ -29,12 +29,12 @@ tests: Chip-tool command used below are an example to verify the DUT as controller test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. disabled: true - - label: "TH starts commissioning process with DUT" + - label: "Step 1: TH starts commissioning process with DUT" verification: | 1. Provision the DUT by TH (Chip-tool) disabled: true - - label: "DUT reads Vendor Id attribute from TH" + - label: "Step 2: DUT reads Vendor Id attribute from TH" PICS: BINFO.C.A0002 verification: | ./chip-tool basicinformation read vendor-id 1 0 @@ -71,12 +71,14 @@ tests: [1660776352.803699][3357:3357] CHIP:DMG: disabled: true - - label: "Change the IP address of TH by any means within the same network" + - label: + "Step 3: Change the IP address of TH by any means within the same + network" verification: | Connect the raspi running the TH to another router which is on the same network. Make sure that the DUT and TH are on the same network and can ping to each other. Observe that the TH gets a new IP address. Perform Step 4 disabled: true - - label: "DUT reads Vendor Id attribute from TH" + - label: "Step 4: DUT reads Vendor Id attribute from TH" PICS: BINFO.C.A0002 verification: | ./chip-tool basicinformation read vendor-id 1 0 diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_6.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_6.yaml index 912a59f46302df..f415e7319103ef 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_6.yaml @@ -32,13 +32,13 @@ tests: disabled: true - label: - "DUT is instructed to start advertising its presence as a commissioner - in the network" + "Step 1: DUT is instructed to start advertising its presence as a + commissioner in the network" verification: | To verify this test case use TV Reference app disabled: true - - label: "Check DNS-SD subtypes used by DUT" + - label: "Step 2: Check DNS-SD subtypes used by DUT" PICS: MCORE.SC.DEVTYPE_SUBTYPE && MCORE.SC.VP_KEY && MCORE.SC.DT_KEY && MCORE.SC.DN_KEY @@ -50,10 +50,10 @@ tests: ++ eth0 IPv6 8BA9B3B40B98E9BB _matterd._udp local = eth0 IPv6 8BA9B3B40B98E9BB _matterd._udp local - hostname = [E45F0149AE290000.local] - address = [fe80::e65f:1ff:fe49:ae29] - port = [5650] - txt = ["T=1" "SAI=300" "SII=5000" "DN=Test TV" "DT=35" "VP=65521+32769"] + hostname = [E45F0149AE290000.local] + address = [fe80::e65f:1ff:fe49:ae29] + port = [5650] + txt = ["T=1" "SAI=300" "SII=5000" "DN=Test TV" "DT=35" "VP=65521+32769"] diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_7.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_7.yaml index 4e7260ab210b42..7f0835e770fc28 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_7.yaml @@ -26,13 +26,13 @@ config: tests: - label: - "TH is instructed to start advertising its presence as a commissioner - in the network" + "Step 1: TH is instructed to start advertising its presence as a + commissioner in the network" verification: | To verify this test case use TV Reference app disabled: true - - label: "Scan for DNS-SD commissioner advertisements from TH" + - label: "Step 2: Scan for DNS-SD commissioner advertisements from TH" PICS: MCORE.SC.DEVTYPE_SUBTYPE && MCORE.SC.VP_KEY && MCORE.SC.DT_KEY && MCORE.SC.DN_KEY @@ -61,7 +61,7 @@ tests: +;eth0;IPv6;_matterd;_udp;local disabled: true - - label: "Scan for DNS-SD commissioner advertisements from TH" + - label: "Step 3: Scan for DNS-SD commissioner advertisements from TH" verification: | Verify the DUT is able to discover the TH. diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml index 43dfe03bc46693..94a7946279ce2f 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml @@ -31,99 +31,184 @@ tests: Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command. disabled: true - - label: "Commission TH1 to DUTs Fabric" + - label: "Step 1: Commission TH1 to DUTs Fabric" verification: | - 1. Provision the device using 1st controller chip-tool (as example commissioner) on the raspi (use the instructions), Pls use appropriate commands that the DUT (commissioner) supports. DUT can provision the TH (all-cluster-app) on raspi either via IP transport or on BLE transport. - In case of chip-tool provisioning over IP transport can be done using below command - ./chip-tool pairing onnetwork 2 20202021 - In case of chip-tool provisioning over BLE transport can be done using below command, use appropriate descriminator, passcode, nodeID - ./chip-tool pairing ble-wifi 1 chipsetup4 matter123 20202021 3841 - - Once the TH is provisioned run the below command on the raspi to know the TH (all-cluster-app) fabricID - - $avahi-browse _matter._tcp -rt - - Filter the node ID and identify the Compressed Fabric ID from the above command. - - eth0 IPv6 8840D142C33AB653-0000000000000001 _matter._tcp local - - on first controller open a commissioning window using below command (In TH2) - - ./chip-tool pairing open-commissioning-window 2 1 400 2000 3840 (Save the manualcode for 2nd Provision) + Execute the below mentioned command to put TH1(all-clusters-app) into a commissionable state, Pls use equivalent command on the respective reference app + ./chip-all-clusters-app + + Once TH1 reach the commissionable state pls send below mentioned command on DUT. Pls use equivalent command on the respective reference app + ./chip-tool pairing onnetwork 1 20202021 + Verify the commissioning completed with success on TH(chip-tool) from DUT + [1686292950.704507][64862:64862] CHIP:EM: <<< [E:19392r S:42475 M:231243250 (Ack:167107665)] (S) Msg TX to 1:000000000001B669 [A822] --- Type 0001:09 (IM:InvokeCommandResponse) + [1686292950.704551][64862:64862] CHIP:IN: (S) Sending msg 231243250 on secure session with LSID: 42475 + [1686292950.704796][64862:64862] CHIP:DMG: Command handler moving to [CommandSen] + [1686292950.704822][64862:64862] CHIP:DMG: Command handler moving to [AwaitingDe] + [1686292950.704857][64862:64862] CHIP:DL: HandlePlatformSpecificBLEEvent 32781 + [1686292950.704880][64862:64862] CHIP:SVR: Commissioning completed successfully + [1686292950.704920][64862:64862] CHIP:DIS: Updating services using commissioning mode 0 + [1686292950.714125][64862:64862] CHIP:DIS: CHIP minimal mDNS started advertising. + [1686292950.760019][64862:64862] CHIP:DL: Using wifi MAC for hostname + [1686292950.760072][64862:64862] CHIP:DIS: Advertise operational node 03C4C7333070A822-0000000000000001 + [1686292950.760120][64862:64862] CHIP:DIS: Responding with _matter._tcp.local + [1686292950.760141][64862:64862] CHIP:DIS: Responding with 03C4C7333070A822-0000000000000001._matter._tcp.local + [1686292950.760166][64862:64862] CHIP:DIS: Responding with 03C4C7333070A822-0000000000000001._matter._tcp.local + [1686292950.760184][64862:64862] CHIP:DIS: Responding with E45F010F28780000.local + [1686292950.760201][64862:64862] CHIP:DIS: Responding with E45F010F28780000.local + + + On TH1(all-clusters-app), Extract the Compressed Fabric ID assigned from DUT to TH1 and save the value for future use + [1686292950.701603][64862:64862] CHIP:DL: writing settings to file (/tmp/chip_kvs-H1eZH9) + [1686292950.702331][64862:64862] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686292950.702489][64862:64862] CHIP:DL: writing settings to file (/tmp/chip_kvs-Dmuetk) + [1686292950.703252][64862:64862] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686292950.703308][64862:64862] CHIP:ZCL: OpCreds: Fabric index 0x1 was committed to storage. Compressed Fabric Id 0x03C4C7333070A822, FabricId 0000000000000001, NodeId 0000000000000001, VendorId 0xFFF1 + [1686292950.703427][64862:64862] CHIP:DL: writing settings to file (/tmp/chip_kvs-IyQ8P3) + [1686292950.704135][64862:64862] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686292950.704185][64862:64862] CHIP:FS: GeneralCommissioning: Successfully commited pending fabric data + [1686292950.704213][64862:64862] CHIP:FS: Fail-safe cleanly disarmed disabled: true - - label: "Commission TH2 to DUTs Fabric" + - label: "Step 2: Commission TH2 to DUTs Fabric" verification: | - Using your DUT Controller provision the 2nd to the accessory (all-cluster-app). Follow the above steps + Execute the below mentioned command to put TH2(all-clusters-app) into a commissionable state, Pls use equivalent command on the respective reference app + ./chip-all-clusters-app + + Once TH1 reach the commissionable state pls send below mentioned command on DUT. Pls use equivalent command on the respective reference app + ./chip-tool pairing onnetwork 2 20202021 + Verify the commissioning completed with success on TH(chip-tool) from DUT + [1686293117.143110][56094:56094] CHIP:IN: (S) Sending msg 99387705 on secure session with LSID: 61285 + [1686293117.143428][56094:56094] CHIP:DMG: Command handler moving to [CommandSen] + [1686293117.143492][56094:56094] CHIP:DMG: Command handler moving to [AwaitingDe] + [1686293117.143570][56094:56094] CHIP:DL: HandlePlatformSpecificBLEEvent 32781 + [1686293117.143628][56094:56094] CHIP:SVR: Commissioning completed successfully + [1686293117.143720][56094:56094] CHIP:DIS: Updating services using commissioning mode 0 + [1686293117.168263][56094:56094] CHIP:DIS: CHIP minimal mDNS started advertising. + [1686293117.307513][56094:56094] CHIP:DL: Using wifi MAC for hostname + [1686293117.307620][56094:56094] CHIP:DIS: Advertise operational node 03C4C7333070A822-0000000000000002 + [1686293117.307731][56094:56094] CHIP:DIS: Responding with _matter._tcp.local - Below is the example when using chip tool as controller - ./chip-tool pairing code 2 mannualcode(take the manualcodefrom step 1) + On TH2(All-clusters-app), Extract the Compressed Fabric ID assigned from DUT to TH2 and save the value for future use + [1686293117.138462][56094:56094] CHIP:DL: writing settings to file (/tmp/chip_kvs-gmI7KQ) + [1686293117.140132][56094:56094] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293117.140260][56094:56094] CHIP:ZCL: OpCreds: Fabric index 0x1 was committed to storage. Compressed Fabric Id 0x03C4C7333070A822, FabricId 0000000000000001, NodeId 0000000000000002, VendorId 0xFFF1 + [1686293117.140525][56094:56094] CHIP:DL: writing settings to file (/tmp/chip_kvs-8j38kK) + [1686293117.142196][56094:56094] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293117.142319][56094:56094] CHIP:FS: GeneralCommissioning: Successfully commited pending fabric data - avahi-browse _matter._tcp -rt - Verify Compressed Fabric ID on the TH Log: - + eth0 IPv6 8840D142C33AB653-0000000000000001 _matter._tcp local + Verify that the value obtained from TH1 and TH2 are same disabled: true - - label: "Send RemoveFabric from DUT to TH1 and comission DUT to TH1 again" + - label: + "Step 3: Send RemoveFabric from DUT to TH1 and commission DUT to TH1 + again" verification: | - In the case of chip-tool as commissioner, we use the below commands to remove the fabric, Use the appropriate command in the DUT to remove the fabric - ./chip-tool operationalcredentials remove-fabric 1 1 0 + Send RemoveFabric command from DUT to TH1 - Verify in TH all-clusters-app log - - [1662499501.072571][34849:34849] CHIP:DMG: InvokeRequestMessage = - [1662499501.072631][34849:34849] CHIP:DMG: { - [1662499501.072653][34849:34849] CHIP:DMG: suppressResponse = false, - [1662499501.072679][34849:34849] CHIP:DMG: timedRequest = false, - [1662499501.072702][34849:34849] CHIP:DMG: InvokeRequests = - [1662499501.072770][34849:34849] CHIP:DMG: [ - [1662499501.072794][34849:34849] CHIP:DMG: CommandDataIB = - [1662499501.072859][34849:34849] CHIP:DMG: { - [1662499501.072903][34849:34849] CHIP:DMG: CommandPathIB = - [1662499501.072952][34849:34849] CHIP:DMG: { - [1662499501.073122][34849:34849] CHIP:DMG: EndpointId = 0x0, - [1662499501.073177][34849:34849] CHIP:DMG: ClusterId = 0x3e, - [1662499501.073266][34849:34849] CHIP:DMG: CommandId = 0xa, - [1662499501.073357][34849:34849] CHIP:DMG: }, - [1662499501.073404][34849:34849] CHIP:DMG: - [1662499501.073474][34849:34849] CHIP:DMG: CommandFields = - [1662499501.073523][34849:34849] CHIP:DMG: { - [1662499501.073600][34849:34849] CHIP:DMG: 0x0 = 1, - [1662499501.073698][34849:34849] CHIP:DMG: }, - [1662499501.073745][34849:34849] CHIP:DMG: }, - [1662499501.073824][34849:34849] CHIP:DMG: - [1662499501.073893][34849:34849] CHIP:DMG: ], - [1662499501.073977][34849:34849] CHIP:DMG: - [1662499501.074058][34849:34849] CHIP:DMG: InteractionModelRevision = 1 - [1662499501.074097][34849:34849] CHIP:DMG: }, - [1662499501.074235][34849:34849] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_003E e=0 p=a - [1662499501.074329][34849:34849] CHIP:DMG: AccessControl: allowed - [1662499501.074409][34849:34849] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003E Command=0x0000_000A - [1662499501.074459][34849:34849] CHIP:ZCL: OpCreds: Received a RemoveFabric Command for FabricIndex 0x1 - [1662499501.074496][34849:34849] CHIP:EM: Sending Standalone Ack for MessageCounter:249094434 on exchange 36677r - [1662499501.074988][34849:34849] CHIP:IN: Prepared secure message 0xffffcfc04af8 to 0x000000000001B669 (1) of type 0x10 and protocolId (0, 0) on exchange 36677r with MessageCounter:483 - - - Kill the all-cluster-app (rm -rf /tmp/chip* files) and relaunch the all-cluster-app again to put the device in commissionable state and follow instructions in step1 to provision the device - - ./chip-tool pairing ble-wifi 1 chipsetup4 matter123 20202021 3841 - - avahi-browse _matter._tcp -rt - - Verify Compressed Fabric ID on the TH Log: - - + eth0 IPv6 8840D142C33AB653-0000000000000001 _matter._tcp local - - Verify Compressed FabricID matches to the one saved in Step1 + ./chip-tool operationalcredentials remove-fabric 1 1 0 + [1686293276.612334][64862:64862] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293276.612456][64862:64862] CHIP:DL: writing settings to file (/tmp/chip_kvs-vK1UPi) + [1686293276.613051][64862:64862] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293276.613202][64862:64862] CHIP:DL: writing settings to file (/tmp/chip_kvs-GDj42p) + [1686293276.613742][64862:64862] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293276.613802][64862:64862] CHIP:ZCL: OpCreds: RemoveFabric successful + [1686293276.613839][64862:64862] CHIP:DMG: Command handler moving to [ Preparing] + [1686293276.613865][64862:64862] CHIP:DMG: Command handler moving to [AddingComm] + [1686293276.613890][64862:64862] CHIP:DMG: Command handler moving to [AddedComma] + [1686293276.613914][64862:64862] CHIP:IN: Expiring all sessions for fabric 0x1!! + [1686293276.613932][64862:64862] CHIP:IN: SecureSession[0xaaab194a0140]: MarkForEviction Type:2 LSID:42475 + [1686293276.613950][64862:64862] CHIP:SC: SecureSession[0xaaab194a0140]: Moving from state 'kActive' --> 'kPendingEviction' + [1686293276.613968][64862:64862] CHIP:IN: SecureSession[0xaaab194a0140]: Released - Type:2 LSID:42475 + [1686293276.613989][64862:64862] CHIP:IN: SecureSession[0xaaab194bc7d0]: MarkForEviction Type:2 LSID:42476 + [1686293276.614006][64862:64862] CHIP:SC: SecureSession[0xaaab194bc7d0]: Moving from state 'kActive' --> 'kPendingEviction' + + + To perform commissioning please kill and relaunch the TH1 + Execute the below mentioned command to put TH1(all-clusters-app) into a commissionable state, Pls use equivalent command on the respective reference app + ./chip-all-clusters-app + + Once TH1 reach the commissionable state pls send below mentioned command on DUT. Pls use equivalent command on the respective reference app + ./chip-tool pairing onnetwork 1 20202021 + Verify the commissioning completed with success on TH(chip-tool) from DUT + [1686293410.303276][65235:65235] CHIP:DMG: Command handler moving to [ Preparing] + [1686293410.303304][65235:65235] CHIP:DMG: Command handler moving to [AddingComm] + [1686293410.303331][65235:65235] CHIP:DMG: Command handler moving to [AddedComma] + [1686293410.303378][65235:65235] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0 + [1686293410.303491][65235:65235] CHIP:EM: <<< [E:60915r S:25073 M:122145546 (Ack:170627677)] (S) Msg TX to 1:000000000001B669 [A822] --- Type 0001:09 (IM:InvokeCommandResponse) + [1686293410.303534][65235:65235] CHIP:IN: (S) Sending msg 122145546 on secure session with LSID: 25073 + [1686293410.303791][65235:65235] CHIP:DMG: Command handler moving to [CommandSen] + [1686293410.303817][65235:65235] CHIP:DMG: Command handler moving to [AwaitingDe] + [1686293410.303852][65235:65235] CHIP:DL: HandlePlatformSpecificBLEEvent 32781 + [1686293410.303876][65235:65235] CHIP:SVR: Commissioning completed successfully + [1686293410.303915][65235:65235] CHIP:DIS: Updating services using commissioning mode 0 + [1686293410.312301][65235:65235] CHIP:DIS: CHIP minimal mDNS started advertising. + [1686293410.358484][65235:65235] CHIP:DL: Using wifi MAC for hostname + [1686293410.359010][65235:65235] CHIP:DIS: Advertise operational node 03C4C7333070A822-0000000000000001 + [1686293410.359062][65235:65235] CHIP:DIS: Responding with _matter._tcp.local + [1686293410.359083][65235:65235] CHIP:DIS: Responding with 03C4C7333070A822-0000000000000001._matter._tcp.local + [1686293410.359106][65235:65235] CHIP:DIS: Responding with 03C4C7333070A822-0000000000000001._matter._tcp.local + [1686293410.359124][65235:65235] CHIP:DIS: Responding with E45F010F28780000.local + [1686293410.359142][65235:65235] CHIP:DIS: Responding with E45F010F28780000.local + [1686293410.359166][65235:65235] CHIP:DIS: Responding with _I03C4C7333070A822._sub._matter._tcp.local + + + On TH1(all-clusters-app), Extract the Compressed Fabric ID assigned from DUT to TH1 and verify it is same as the value obtained in Step1 + [1686293410.302175][65235:65235] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293410.302230][65235:65235] CHIP:ZCL: OpCreds: Fabric index 0x1 was committed to storage. Compressed Fabric Id 0x03C4C7333070A822, FabricId 0000000000000001, NodeId 0000000000000001, VendorId 0xFFF1 + [1686293410.302339][65235:65235] CHIP:DL: writing settings to file (/tmp/chip_kvs-AmY1St) + [1686293410.303115][65235:65235] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293410.303167][65235:65235] CHIP:FS: GeneralCommissioning: Successfully commited pending fabric data disabled: true - - label: "Send RemoveFabric from DUT to TH2 and comission DUT to TH2 again" + - label: + "Step 4: Send RemoveFabric from DUT to TH2 and commission DUT to TH2 + again" verification: | - Repeat above step with TH2 i.e. 2nd all-cluster-app. - - Verify the compressed Fabric ID is the same as what is obtained in Step2 + Send RemoveFabric command from DUT to TH2 + + ./chip-tool operationalcredentials remove-fabric 1 2 0 + [1686293678.487042][56135:56135] CHIP:DL: writing settings to file (/tmp/chip_kvs-HJeN8j) + [1686293678.488371][56135:56135] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293678.488534][56135:56135] CHIP:ZCL: OpCreds: RemoveFabric successful + [1686293678.488621][56135:56135] CHIP:DMG: Command handler moving to [ Preparing] + [1686293678.488691][56135:56135] CHIP:DMG: Command handler moving to [AddingComm] + [1686293678.488758][56135:56135] CHIP:DMG: Command handler moving to [AddedComma] + [1686293678.488850][56135:56135] CHIP:IN: Expiring all sessions for fabric 0x1!! + [1686293678.488910][56135:56135] CHIP:IN: SecureSession[0xaaaaebd03220]: MarkForEviction Type:2 LSID:8074 + [1686293678.488962][56135:56135] CHIP:SC: SecureSession[0xaaaaebd03220, LSID:8074]: State change 'kActive' --> 'kPendingEviction' + [1686293678.489037][56135:56135] CHIP:IN: SecureSession[0xaaaaebd03220]: Released - Type:2 LSID:8074 + [1686293678.489097][56135:56135] CHIP:IN: SecureSession[0xaaaaebcfffd0]: MarkForEviction Type:2 LSID:8075 + + + To perform commissioning please kill and relaunch the TH2 + + Execute the below mentioned command to put TH2(all-clusters-app) into a commissionable state, Pls use equivalent command on the respective reference app + ./chip-all-clusters-app + + Once TH2 reach the commissionable state pls send below mentioned command on DUT. Pls use equivalent command on the respective reference app + ./chip-tool pairing onnetwork 2 20202021 + Verify the commissioning completed with success on TH(chip-tool) from DUT + 686293725.684989][56147:56147] CHIP:DMG: Command handler moving to [CommandSen] + [1686293725.685052][56147:56147] CHIP:DMG: Command handler moving to [AwaitingDe] + [1686293725.685130][56147:56147] CHIP:DL: HandlePlatformSpecificBLEEvent 32781 + [1686293725.685187][56147:56147] CHIP:SVR: Commissioning completed successfully + [1686293725.685276][56147:56147] CHIP:DIS: Updating services using commissioning mode 0 + [1686293725.710162][56147:56147] CHIP:DIS: CHIP minimal mDNS started advertising. + [1686293725.847432][56147:56147] CHIP:DL: Using wifi MAC for hostname + [1686293725.847540][56147:56147] CHIP:DIS: Advertise operational node 03C4C7333070A822-0000000000000002 + [1686293725.847651][56147:56147] CHIP:DIS: Responding with _matter._tcp.local + [1686293725.847713][56147:56147] CHIP:DIS: Responding with 03C4C7333070A822-0000000000000002._matter._tcp.local + [1686293725.847779][56147:56147] CHIP:DIS: Responding with 03C4C7333070A822-0000000000000002._matter._tcp.local + [1686293725.847833][56147:56147] CHIP:DIS: Responding with E45F010F1A010000.local + + On TH2(all-clusters-app), Extract the Compressed Fabric ID assigned from DUT to TH2 and verify it is same as the value obtained in Step2 + [1686293725.679297][56147:56147] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293725.679676][56147:56147] CHIP:DL: writing settings to file (/tmp/chip_kvs-SRjHIm) + [1686293725.681396][56147:56147] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) + [1686293725.681523][56147:56147] CHIP:ZCL: OpCreds: Fabric index 0x1 was committed to storage. Compressed Fabric Id 0x03C4C7333070A822, FabricId 0000000000000001, NodeId 0000000000000002, VendorId 0xFFF1 + [1686293725.681835][56147:56147] CHIP:DL: writing settings to file (/tmp/chip_kvs-xLVGmX) + [1686293725.683612][56147:56147] CHIP:DL: renamed tmp file to file (/tmp/chip_kvs) disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_9.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_9.yaml index 4be6dd5f419f57..eebb5cc840b5bb 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_9.yaml @@ -27,14 +27,15 @@ config: endpoint: 0 tests: - - label: "Using TH_CR1, commission the DUT_CE onto the Matter network" + - label: + "Step 1: Using TH_CR1, commission the DUT_CE onto the Matter network" verification: | Using chip-tool (TH_CR1) provision the device using cmd ./out/debug/chip-tool pairing ble-wifi node-id ssid password setup-pin-code discriminator disabled: true - - label: "Bring the TH_CR2 onto the thread network" + - label: "Step 2: Bring the TH_CR2 onto the thread network" verification: | Build openthread POSIX cli app with RCP and have it join the thread network that the BR is part of. @@ -69,11 +70,11 @@ tests: disabled: true - label: - "Using TH_CR2, using ICMPv6 echo to ping with a payload >= 32 bytes to - the the DUT_CE that is already commissioned to the Matter network. IP - address is determined by operational discovery of the DNS-SD - operational service record (_matter._tcp service instance) of DUT_CE - done by TH_CR2." + "Step 3: Using TH_CR2, using ICMPv6 echo to ping with a payload >= 32 + bytes to the the DUT_CE that is already commissioned to the Matter + network. IP address is determined by operational discovery of the + DNS-SD operational service record (_matter._tcp service instance) of + DUT_CE done by TH_CR2." verification: | In the RCP Shell , have the TH_CR2 discover the device IP address using > dns service 87E1B004E235A130-8FC7772401CD0696 _matter._tcp.default.service.arpa. diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_3.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_3.yaml index 24b8e69392dbec..9d915ebea90e86 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_5_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_5_3.yaml @@ -253,46 +253,65 @@ tests: field set to GroupID_2 and the GroupName set to an GroupName_2. The command is sent as a group command using GroupID_1" verification: | - ./chip-tool groups add-group 257 '' 0xffffffffffff0103 1 + ./chip-tool groups add-group 257 'grp2' 0xffffffffffff0103 0 + Verify that AddGroup command with GroupID as 257 and group name as "grp2" is generated as groupcast message from GroupID 259 is present on TH(Reference app)log: - 1684167429.420171][29723:29723] CHIP:EM: Received Groupcast Message with GroupId 0x0103 (259) - [1684167429.420179][29723:29723] CHIP:EM: Handling via exchange: 1950r, Delegate: 0x56422560dca8 - [1684166549.863617][29708:29710] CHIP:DMG: InvokeResponseMessage = - [1684166549.863619][29708:29710] CHIP:DMG: { - [1684166549.863621][29708:29710] CHIP:DMG: suppressResponse = false, - [1684166549.863623][29708:29710] CHIP:DMG: InvokeResponseIBs = - [1684166549.863627][29708:29710] CHIP:DMG: [ - [1684166549.863629][29708:29710] CHIP:DMG: InvokeResponseIB = - [1684166549.863632][29708:29710] CHIP:DMG: { - [1684166549.863634][29708:29710] CHIP:DMG: CommandDataIB = - [1684166549.863637][29708:29710] CHIP:DMG: { - [1684166549.863639][29708:29710] CHIP:DMG: CommandPathIB = - [1684166549.863641][29708:29710] CHIP:DMG: { - [1684166549.863644][29708:29710] CHIP:DMG: EndpointId = 0x1, - [1684166549.863646][29708:29710] CHIP:DMG: ClusterId = 0x4, - [1684166549.863649][29708:29710] CHIP:DMG: CommandId = 0x1, - [1684166549.863651][29708:29710] CHIP:DMG: }, - [1684166549.863653][29708:29710] CHIP:DMG: - [1684166549.863656][29708:29710] CHIP:DMG: CommandFields = - [1684166549.863658][29708:29710] CHIP:DMG: { - [1684166549.863661][29708:29710] CHIP:DMG: 0x0 = 0, - [1684166549.863664][29708:29710] CHIP:DMG: 0x1 = 257, - [1684166549.863667][29708:29710] CHIP:DMG: 0x2 = "grp2" (4 chars), - [1684166549.863669][29708:29710] CHIP:DMG: }, - [1684166549.863671][29708:29710] CHIP:DMG: }, - [1684166549.863674][29708:29710] CHIP:DMG: - [1684166549.863676][29708:29710] CHIP:DMG: }, - [1684166549.863679][29708:29710] CHIP:DMG: - [1684166549.863681][29708:29710] CHIP:DMG: ], - [1684166549.863685][29708:29710] CHIP:DMG: - [1684166549.863687][29708:29710] CHIP:DMG: InteractionModelRevision = 1 - [1684166549.863688][29708:29710] CHIP:DMG: }, - [1684167429.420308][29723:29723] CHIP:DMG: Received group command for Group=259 Cluster=0x0000_0004 Command=0x0000_0000 - [1684167429.420390][29723:29723] CHIP:DMG: Processing group command for Endpoint=1 Cluster=0x0000_0004 Command=0x0000_0000 - [1684167429.420398][29723:29723] CHIP:DMG: AccessControl: checking f=1 a=g s=0xFFFFFFFFFFFF0103 t= c=0x0000_0004 e=1 p=m - [1684167429.420406][29723:29723] CHIP:DMG: AccessControl: allowed + [1686319509.379776][8834:8834] CHIP:EM: Received Groupcast Message with GroupId 0x0103 (259) + [1686319509.379782][8834:8834] CHIP:EM: Handling via exchange: 28261r, Delegate: 0x558cfb749be8 + [1686319509.379795][8834:8834] CHIP:DMG: InvokeRequestMessage = + [1686319509.379797][8834:8834] CHIP:DMG: { + [1686319509.379800][8834:8834] CHIP:DMG: suppressResponse = false, + [1686319509.379803][8834:8834] CHIP:DMG: timedRequest = false, + [1686319509.379805][8834:8834] CHIP:DMG: InvokeRequests = + [1686319509.379810][8834:8834] CHIP:DMG: [ + [1686319509.379813][8834:8834] CHIP:DMG: CommandDataIB = + [1686319509.379816][8834:8834] CHIP:DMG: { + [1686319509.379819][8834:8834] CHIP:DMG: CommandPathIB = + [1686319509.379822][8834:8834] CHIP:DMG: { + [1686319509.379825][8834:8834] CHIP:DMG: ClusterId = 0x4, + [1686319509.379828][8834:8834] CHIP:DMG: CommandId = 0x0, + [1686319509.379831][8834:8834] CHIP:DMG: }, + [1686319509.379834][8834:8834] CHIP:DMG: + [1686319509.379837][8834:8834] CHIP:DMG: CommandFields = + [1686319509.379840][8834:8834] CHIP:DMG: { + [1686319509.379844][8834:8834] CHIP:DMG: 0x0 = 257, + [1686319509.379847][8834:8834] CHIP:DMG: 0x1 = "grp2" (4 chars), + [1686319509.379851][8834:8834] CHIP:DMG: }, + [1686319509.379854][8834:8834] CHIP:DMG: }, + [1686319509.379858][8834:8834] CHIP:DMG: + [1686319509.379860][8834:8834] CHIP:DMG: ], + [1686319509.379865][8834:8834] CHIP:DMG: + [1686319509.379867][8834:8834] CHIP:DMG: InteractionModelRevision = 1 + [1686319509.379870][8834:8834] CHIP:DMG: }, + [1686319509.379881][8834:8834] CHIP:DMG: Rec + + Verify the Destination Node ID matches the GroupID_1 On TH(all-cluster-app) log: + + [1689748128.875980][2588:2588] CHIP:DMG: Received group command for Group=259 Cluster=0x0000_0004 Command=0x0000_0000 + [1689748128.876384][2588:2588] CHIP:DMG: Processing group command for Endpoint=0 Cluster=0x0000_0004 Command=0x0000_0000 + [1689748128.876430][2588:2588] CHIP:DMG: AccessControl: checking f=1 a=g s=0xFFFFFFFFFFFF0103 t= c=0x0000_0004 e=0 p=m + [1689748128.876468][2588:2588] CHIP:DMG: AccessControl: allowed + + + Verify the IPv6 Destination Multicast address follows the format "FF35:0040:FD00: and UDP port is 5540 on TH(Reference app)log: [1684167429.421010][29723:29723] CHIP:IN: Joining Multicast Group with address UDP:[ff35:40:fd00::100:101]:5540 [1684167429.421129][29723:29723] CHIP:IN: Joined multicast group on interface wlp0s20f3 + + Verify the DSIZ flag is set to Group On TH(all-cluster-app) log: + (Here in below log the value recived is 0X04 = 0100 (decimal) - Here the bit 2 is enabled then DSIZ flag is set to group) + + [1686317564.742205][7679:7679] CHIP:DMG: Header Flags = + [1686317564.742207][7679:7679] CHIP:DMG: { + [1686317564.742212][7679:7679] CHIP:DMG: Message (0x04) = + [1686317564.742214][7679:7679] CHIP:DMG: { + [1686317564.742217][7679:7679] CHIP:DMG: SourceNodeId = C831420E9B16886B + [1686317564.742219][7679:7679] CHIP:DMG: } + [1686317564.742224][7679:7679] CHIP:DMG: Exchange (0x03) = + [1686317564.742226][7679:7679] CHIP:DMG: { + [1686317564.742228][7679:7679] CHIP:DMG: Initiator = true + [1686317564.742231][7679:7679] CHIP:DMG: AckMsg = 48718950 + [1686317564.742233][7679:7679] CHIP:DMG: } + [1686317564.742237][7679:7679] CHIP:DMG: } disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SU_1_1.yaml b/src/app/tests/suites/certification/Test_TC_SU_1_1.yaml index df6aabd8ba765d..5513faa276a563 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_1_1.yaml @@ -24,19 +24,18 @@ config: endpoint: 0 tests: - - label: "Commission OTA-P/TH2 to DUT/same fabric as in test setup." + - label: "Step 1: Commission OTA-P/TH2 to DUT/same fabric as in test setup." PICS: OTAR.C.M.AnnounceOTAProvider verification: | - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Verify on the OTA Requestor logs receives AnnounceOTAProvider: - Verify that the following mandatory fields. - ProviderNodeID of the OTA-P/TH2 on the accessing fabric. - Vendor Id of the node invoking this command. Should be same as it appears in the Node’s Basic Information Cluster. - AnnouncementReason - Should be SimpleAnnouncement. - Endpoint number of the OTA-P/TH2 on the ProviderNodeID. + Verify OTA Requestor receives AnnounceOTAProvider command with following mandatory fields + - ProviderNodeID of the OTA-P/TH2 on the accessing fabric. + - Vendor Id of the node invoking this command. Should be same as it appears in the Node’s Basic Information Cluster. + - AnnouncementReason - Should be SimpleAnnouncement. + - Endpoint number of the OTA-P/TH2 on the ProviderNodeID. [1673952476.703960][30227:30227] CHIP:SWU: OTA Requestor received AnnounceOTAProvider [1673952476.703992][30227:30227] CHIP:SWU: FabricIndex: 1 diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml index 5230980dfc9773..fdd83ab7c912c9 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_1.yaml @@ -24,27 +24,25 @@ config: endpoint: 0 tests: - - label: "DUT sends a QueryImage command to the TH/OTA-P" + - label: "Step 1: DUT sends a QueryImage command to the TH/OTA-P" verification: | - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID - - Verify on the OTA Provider logs received QueryImage: - Verify the QueryImage command has the following mandatory fields - VendorID - Should match the value reported by the Basic Information Cluster VendorId attribute of the DUT. - ProductID - Should match the value reported by the Basic Information Cluster ProductId attribute of the DUT. - SoftwareVersion - Should match the value reported by the Basic Information Cluster SoftwareVersion attribute of the DUT. - Verify the ProtocolsSupported lists the BDX Synchronous protocol. - HardwareVersion - If present, verify that it matches the value reported by the Basic Information Cluster HardwareVersion attribute of the DUT. - Location field is same as Basic Information Cluster Attribute of the DUT. - RequestorCanConsent field should be set to True. Otherwise it should be False. + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + Verify OTA Provider receives QueryImage command with following fields: + - VendorID - Should match the value reported by the Basic Information Cluster VendorId attribute of the DUT. + - ProductID - Should match the value reported by the Basic Information Cluster ProductId attribute of the DUT. + - SoftwareVersion - Should match the value reported by the Basic Information Cluster SoftwareVersion attribute of the DUT. + - Verify the ProtocolsSupported lists the BDX Synchronous protocol. + - HardwareVersion - If present, verify that it matches the value reported by the Basic Information Cluster HardwareVersion attribute of the DUT. + - Location field is same as Basic Information Cluster Attribute of the DUT. + - If (MCORE.OTA.RequestorConsent) RequestorCanConsent field should be set to True. Otherwise it should be False and below is the sample log provided for the raspi platform: [1645743053317] [97806:20280749] CHIP: [ZCL] OTA Provider received QueryImage [1645743053317] [97806:20280749] CHIP: [ZCL] VendorID: 0xfff1 [1645743053317] [97806:20280749] CHIP: [ZCL] ProductID: 32769 - [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 2 + [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 1 [1645743053317] [97806:20280749] CHIP: [ZCL] ProtocolsSupported: [ [1645743053317] [97806:20280749] CHIP: [ZCL] 0 [1645743053317] [97806:20280749] CHIP: [ZCL] ] @@ -54,32 +52,46 @@ tests: disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. Wait for 2 minutes." + "Step 2: DUT sends a QueryImage command to the TH/OTA-P. Wait for 2 + minutes." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator ${PROVIDER_LONG_DISCRIMINATOR} --secured-device-port ${PROVIDER_UDP_PORT} --KVS ${KVS_STORE_LOCATION} --filepath ${SW_IMAGE_FILE} -q busy - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 1 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Wait for 2 mins, Verify OTA Provider sent QueryImage command only once in that 2 minute interval and below is the sample log provided for the raspi platform: - Verify on the OTA Provider logs that the QueryImage command is sent only once in that 2 minute interval. + [1685440417.351366][20914:20914] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_0029 Command=0x0000_0000 + [1685440417.351432][20914:20914] CHIP:ZCL: OTA Provider received QueryImage + [1685440417.351457][20914:20914] CHIP:ZCL: VendorID: 0xfff1 + [1685440417.351481][20914:20914] CHIP:ZCL: ProductID: 32769 + [1685440417.351504][20914:20914] CHIP:ZCL: SoftwareVersion: 1 + [1685440417.351527][20914:20914] CHIP:ZCL: ProtocolsSupported: [ + [1685440417.351556][20914:20914] CHIP:ZCL: 0 + [1685440417.351580][20914:20914] CHIP:ZCL: ] + [1685440417.351603][20914:20914] CHIP:ZCL: HardwareVersion: 0 + [1685440417.351627][20914:20914] CHIP:ZCL: Location: XX + [1685440417.351651][20914:20914] CHIP:ZCL: RequestorCanConsent: 0 disabled: true - label: - "TH2/Administrator sends an AnnounceOTAProvider command to the DUT." + "Step 3: TH2/Administrator sends an AnnounceOTAProvider command to the + DUT." verification: | - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 1 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Verify on the OTA Provider logs received QueryImage: + Verify that the DUT queries the indicated OTA Provider at the ProviderLocation at its next upcoming OTA Provider query On OTA Provider log and below is the sample log provided for the raspi platform: [1645743053317] [97806:20280749] CHIP: [ZCL] OTA Provider received QueryImage [1645743053317] [97806:20280749] CHIP: [ZCL] VendorID: 0xfff1 [1645743053317] [97806:20280749] CHIP: [ZCL] ProductID: 32769 - [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 2 + [1645743053317] [97806:20280749] CHIP: [ZCL] SoftwareVersion: 1 [1645743053317] [97806:20280749] CHIP: [ZCL] ProtocolsSupported: [ [1645743053317] [97806:20280749] CHIP: [ZCL] 0 [1645743053317] [97806:20280749] CHIP: [ZCL] ] diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_2.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_2.yaml index 47e6e8ce1d8dd5..219e19f48a5174 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_2.yaml @@ -27,89 +27,107 @@ config: tests: - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to - 'UpdateAvailable' Set ImageURI to the location where the image is + "Step 1: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to + 'UpdateAvailable'. Set ImageURI to the location where the image is located." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator ${PROVIDER_LONG_DISCRIMINATOR} --secured-device-port ${PROVIDER_UDP_PORT} --KVS ${KVS_STORE_LOCATION} --filepath ${SW_IMAGE_FILE} -q updateAvailable - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Verify that the transfer of the software image happens all the way until the last Block is acknowledged on the OTA Provider logs: + Verify that the transfer of the software image happens all the way until the last Block is acknowledged from OTA Provider to DUT and below is the sample log provided for the raspi platform: [1645748688025] [99779:20370762] CHIP: [BDX] OutputEvent type: AckEOFReceived [1645748688025] [99779:20370762] CHIP: [BDX] Transfer completed, got AckEOF disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to 'Busy', + "Step 2: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to 'Busy', DelayedActionTime is set to 60 seconds." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator ${PROVIDER_LONG_DISCRIMINATOR} --secured-device-port ${PROVIDER_UDP_PORT} --KVS ${KVS_STORE_LOCATION} --filepath ${SW_IMAGE_FILE} -q busy -t 60 - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Verify that the DUT does not send a QueryImage command before the minimum interval defined by spec which is 2 minutes (120 seconds) from the last QueryImage command. + Verify that the DUT does not send a QueryImage command before the minimum interval defined by spec which is 2 minutes (120 seconds) from the last QueryImage command and below is the sample log provided for the raspi platform: + + [1685509007.911471][32186:32186] CHIP:SWU: QueryImageResponse: + [1685509007.911485][32186:32186] CHIP:SWU: status: 1 + [1685509007.911497][32186:32186] CHIP:SWU: delayedActionTime: 60 seconds + [1685509007.911511][32186:32186] CHIP:SWU: userConsentNeeded: 0 + [1685509007.911526][32186:32186] CHIP:SWU: Scheduling a retry; delay: 120 + [1685509007.911554][32186:32186] CHIP:DMG: Endpoint 0, Cluster 0x0000_002A update version to a098eea1 disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to 'NotAvailable'." + "Step 3: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to + 'NotAvailable'." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator ${PROVIDER_LONG_DISCRIMINATOR} --secured-device-port ${PROVIDER_UDP_PORT} --KVS ${KVS_STORE_LOCATION} --filepath ${SW_IMAGE_FILE} -q updateNotAvailable -t 60 - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID Verify that the DUT does not send a QueryImage command before the minimum interval defined by spec which is 2 minutes (120 seconds) from the last QueryImage command. disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to Busy, Set - DelayedActionTime to 3 minutes. On the subsequent QueryImage command, - TH/OTA-P sends a QueryImageResponse back to DUT. QueryStatus is set to - 'UpdateAvailable'." + "Step 4: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to Busy, + Set DelayedActionTime to 3 minutes. On the subsequent QueryImage + command, TH/OTA-P sends a QueryImageResponse back to DUT. QueryStatus + is set to 'UpdateAvailable'." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator ${PROVIDER_LONG_DISCRIMINATOR} --secured-device-port ${PROVIDER_UDP_PORT} --KVS ${KVS_STORE_LOCATION} --filepath ${SW_IMAGE_FILE} -q busy -t 180 - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID Verify that the DUT waits for the time mentioned in the DelayedActionTime (3 minutes) before issuing another QueryImage command to the TH/OTA-P. - Verify there is a transfer of the software image after the second QueryImageResponse with UpdateAvailable status from the TH/OTA-P to the DUT. + + [1686297156.871478][41968:41968] CHIP:DMG: }, + [1686297156.871552][41968:41968] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0029 Command=0x0000_0001 + [1686297156.871596][41968:41968] CHIP:SWU: QueryImageResponse: + [1686297156.871619][41968:41968] CHIP:SWU: status: 1 + [1686297156.871640][41968:41968] CHIP:SWU: delayedActionTime: 180 seconds + [1686297156.871663][41968:41968] CHIP:SWU: userConsentNeeded: 0 + [1686297156.871688][41968:41968] CHIP:SWU: Scheduling a retry; delay: 180 + + + Verify there is a transfer of the software image after the 180 second QueryImageResponse with UpdateAvailable status from the TH/OTA-P to the DUT. disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to + "Step 5: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to 'UpdateAvailable', ImageURI should have the https url from where the image can be downloaded." PICS: MCORE.OTA.HTTPS verification: | - Out of scope for V1.0 + Out of scope disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to + "Step 6: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to 'UpdateAvailable', Software Version should be set to the same or an older (numerically lower) version." verification: | @@ -119,25 +137,44 @@ tests: Software Version of the SW_IMAGE_FILE used in above command should be the same or an older (numerically lower) version than the DUT. - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Verify DUT does not start transferring of the software image. If Software Version is same or an older (numerically lower) version. - Verify that the DUT does not start transferring the software image. + [1687344602.016065][20388:20388] CHIP:SWU: QueryImageResponse: + [1687344602.016074][20388:20388] CHIP:SWU: status: 0 + [1687344602.016081][20388:20388] CHIP:SWU: imageURI: bdx://000000000000007B/ota-requestor-app.ota + [1687344602.016091][20388:20388] CHIP:SWU: softwareVersion: 2 + [1687344602.016099][20388:20388] CHIP:SWU: softwareVersionString: 2.0 + [1687344602.016111][20388:20388] CHIP:SWU: updateToken: 32 + [1687344602.016122][20388:20388] CHIP:SWU: userConsentNeeded: 0 + [1687344602.016140][20388:20388] CHIP:SWU: Available update version 2 is <= current version 2, update ignored + [1687344602.016165][20388:20388] CHIP:DMG: Endpoint 0, Cluster 0x0000_002A update version to b1977188 disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to + "Step 7: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to 'UpdateAvailable', ImageURI field contains an invalid BDX ImageURI." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator ${PROVIDER_LONG_DISCRIMINATOR} --secured-device-port ${PROVIDER_UDP_PORT} --KVS ${KVS_STORE_LOCATION} --filepath ${SW_IMAGE_FILE} -i bdx://0000000000000001 - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Verify DUT does not start transferring of the software image.If ImageURI field contains an invalid BDX ImageURI. - Verify that the DUT does not start transferring the software image. + [1687344102.587511][18508:18508] CHIP:SWU: QueryImageResponse: + [1687344102.587513][18508:18508] CHIP:SWU: status: 0 + [1687344102.587516][18508:18508] CHIP:SWU: imageURI: bdx://0000000000000001 + [1687344102.587518][18508:18508] CHIP:SWU: softwareVersion: 2 + [1687344102.587521][18508:18508] CHIP:SWU: softwareVersionString: 2.0 + [1687344102.587523][18508:18508] CHIP:SWU: updateToken: 32 + [1687344102.587525][18508:18508] CHIP:SWU: userConsentNeeded: 0 + [1687344102.587530][18508:18508] CHIP:SWU: QueryImageResponse contains invalid fields: src/protocols/bdx/BdxUri.cpp:43: CHIP Error 0x0000001E: Invalid string length disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_3.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_3.yaml index 00a84f6ba1152d..09e18d01b69f9c 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_3.yaml @@ -26,100 +26,76 @@ config: tests: - label: - "DUT sends a QueryImage command to the TH/OTA-P. RequestorCanConsent - is set to True by DUT. OTA-P/TH responds with a QueryImageResponse - with UserConsentNeeded field set to True." + "Step 1: DUT sends a QueryImage command to the TH/OTA-P. + RequestorCanConsent is set to True by DUT. OTA-P/TH responds with a + QueryImageResponse with UserConsentNeeded field set to True." PICS: MCORE.OTA.RequestorConsent verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator ${PROVIDER_LONG_DISCRIMINATOR} --secured-device-port ${PROVIDER_UDP_PORT} --KVS ${KVS_STORE_LOCATION} --filepath ${SW_IMAGE_FILE} -c - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID Verify that the DUT obtains user consent before transferring the image. This step is vendor specific. disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to + "Step 2: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to 'UpdateAvailable'. Set ImageURI to the location where the image is located." verification: | - "Run the OTA Provider App using the command: + Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator ${PROVIDER_LONG_DISCRIMINATOR} --secured-device-port ${PROVIDER_UDP_PORT} --KVS ${KVS_STORE_LOCATION} --filepath ${SW_IMAGE_FILE} -q updateAvailable - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Verify that the transfer of the software image happens all the way until the last Block is acknowledged on the OTA Provider logs: + Verify that the transfer of the software image happens all the way until the last Block is acknowledged from OTA Provider logs to DUT [1645748688025] [99779:20370762] CHIP: [BDX] OutputEvent type: AckEOFReceived - [1645748688025] [99779:20370762] CHIP: [BDX] Transfer completed, got AckEOF" + [1645748688025] [99779:20370762] CHIP: [BDX] Transfer completed, got AckEOF disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to + "Step 3: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to 'UpdateAvailable'. Set ImageURI with the https url of the software image." PICS: MCORE.OTA.HTTPS verification: | - Out of scope for V1.0 + Out of scope disabled: true - label: - "During the transfer of the image to the DUT, force fail the transfer - before it completely transfers the image. Wait for the Idle timeout so - that reading the UpdateState Attribute of the OTA Requestor returns - the value as Idle. Initiate another QueryImage Command from DUT to the - TH/OTA-P." + "Step 4: During the transfer of the image to the DUT, force fail the + transfer before it completely transfers the image. Wait for the Idle + timeout so that reading the UpdateState Attribute of the OTA Requestor + returns the value as Idle. Initiate another QueryImage Command from + DUT to the TH/OTA-P." verification: | - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID Kill the OTA Provider App during the transfer of the image to the DUT before it completely transfers the image. - Wait for atleast 5 minutes or more until reading the UpdateState Attribute of the OTA Requestor returns the value as Idle (Value 1) - ./chip-tool otasoftwareupdaterequestor read update-state 0x1234567890 0 - - [1651259701990] [18726:35135506] CHIP: [DMG] ReportDataMessage = - [1651259701990] [18726:35135506] CHIP: [DMG] { - [1651259701990] [18726:35135506] CHIP: [DMG] AttributeReportIBs = - [1651259701990] [18726:35135506] CHIP: [DMG] [ - [1651259701990] [18726:35135506] CHIP: [DMG] AttributeReportIB = - [1651259701990] [18726:35135506] CHIP: [DMG] { - [1651259701990] [18726:35135506] CHIP: [DMG] AttributeDataIB = - [1651259701990] [18726:35135506] CHIP: [DMG] { - [1651259701990] [18726:35135506] CHIP: [DMG] DataVersion = 0xa8a08a2a, - [1651259701990] [18726:35135506] CHIP: [DMG] AttributePathIB = - [1651259701990] [18726:35135506] CHIP: [DMG] { - [1651259701990] [18726:35135506] CHIP: [DMG] Endpoint = 0x0, - [1651259701990] [18726:35135506] CHIP: [DMG] Cluster = 0x2a, - [1651259701990] [18726:35135506] CHIP: [DMG] Attribute = 0x0000_0002, - [1651259701990] [18726:35135506] CHIP: [DMG] } - [1651259701990] [18726:35135506] CHIP: [DMG] - [1651259701990] [18726:35135506] CHIP: [DMG] Data = 1, - [1651259701990] [18726:35135506] CHIP: [DMG] }, - [1651259701990] [18726:35135506] CHIP: [DMG] - [1651259701990] [18726:35135506] CHIP: [DMG] }, - [1651259701990] [18726:35135506] CHIP: [DMG] - [1651259701990] [18726:35135506] CHIP: [DMG] ], - [1651259701990] [18726:35135506] CHIP: [DMG] - [1651259701990] [18726:35135506] CHIP: [DMG] SuppressResponse = true, - [1651259701990] [18726:35135506] CHIP: [DMG] InteractionModelRevision = 1 - [1651259701990] [18726:35135506] CHIP: [DMG] } + Wait for atleast 5 minutes or more and read the UpdateState Attribute . + + ./chip-tool otasoftwareupdaterequestor read update-state 321 0 + + Verify UpadeateState value is 1 On TH(chip-tool) log + [1653645452.044092][15281:15286] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0002 DataVersion: 1306504521 [1653645452.044186][15281:15286] CHIP:TOO: UpdateState: 1 - Relaunch the OTA Provider App and initiate another query - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 Verify that the DUT starts a new transfer of software image when sending another QueryImage request i.e. Start Offset field in ReceiveInit message received on OTA Provider side is 0 @@ -134,17 +110,19 @@ tests: disabled: true - label: - "During the transfer of the image to the DUT, force fail the transfer - before it completely transfers the image. Initiate another QueryImage - Command from DUT to the TH/OTA-P. Set the RC[STARTOFS] bit and - associated STARTOFS field in the ReceiveInit Message to indicate the - resumption of a transfer previously aborted." + "Step 5: During the transfer of the image to the DUT, force fail the + transfer before it completely transfers the image. Initiate another + QueryImage Command from DUT to the TH/OTA-P. Set the RC[STARTOFS] bit + and associated STARTOFS field in the ReceiveInit Message to indicate + the resumption of a transfer previously aborted." PICS: MCORE.OTA.Resume verification: | - Out of scope for V1.0 + Out of scope disabled: true - - label: "Perform the OTA Update on DUT using vendor specific mechanism." + - label: + "Step 6: Perform the OTA Update on DUT using vendor specific + mechanism." PICS: MCORE.OTA.VendorSpecific verification: | Use vendor specific steps to initiate OTA Update and verify that the software image is transferred to the DUT diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_4.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_4.yaml index e89bbc70a6856b..84ef136f9e856c 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_4.yaml @@ -27,12 +27,15 @@ config: tests: - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to + "Step 1: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to 'UpdateAvailable'. Set ImageURI to the location where the image is located. After the DUT transfers the image, the DUT should send ApplyUpdateRequest to the OTA-P." verification: | + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID Verify that the ApplyUpdateRequest message received on the OTA Provider with UpdateToken and NewVersion fields from DUT [1673956343.962557][17737:17737] CHIP:ZCL: OTA Provider received ApplyUpdateRequest diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_5.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_5.yaml index b9b957ead7ff58..60e55dc65e397b 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_5.yaml @@ -27,16 +27,21 @@ config: tests: - label: - "OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. Action - field is set to 'Proceed', DelayedActionTime is set to 0." + "Step 1: OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. + Action field is set to 'Proceed', DelayedActionTime is set to 0." verification: | + ./chip-ota-provider-app --discriminator 3840 --secured-device-port 5540 --KVS ~/provider/chip_kvs_provider --filepath ota-requestor-app.ota -a proceed -p 0 + + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + Verify that the DUT starts updating its software. Once the update is finished verify the software version on the DUT matches the version downloaded for the software update. - ./chip-ota-provider-app --discriminator 3840 --secured-device-port 5540 --KVS ~/provider/chip_kvs_provider --filepath ota-requestor-app.ota -a proceed -p 0 + ./chip-tool basicinformation read software-version 321 0 - - ./chip-tool basicinformation read software-version 0x1234567890 0 + Verify the Software-Version value is 2 On TH(chip-tool) log: [1653566686.505112][31729:31734] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_000A DataVersion: 259813380 [1653566686.505186][31729:31734] CHIP:TOO: SoftwareVersion: 2 @@ -46,89 +51,115 @@ tests: disabled: true - label: - "OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. Action - field is set to 'Proceed', DelayedActionTime is set to 3 minutes." + "Step 2: OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. + Action field is set to 'Proceed', DelayedActionTime is set to 3 + minutes." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -p 180 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + + Verify that the DUT starts updating its software after 3 minutes.Once the update is finished, verify the SoftwareVersion attribute from the Basic Information cluster on the DUT to match the version downloaded for the software update + [1653635778.270994][7933:7933] CHIP:SWU: ApplyUpdateResponse: [1653635778.271015][7933:7933] CHIP:SWU: action: 0 [1653635778.271031][7933:7933] CHIP:SWU: delayedActionTime: 180 seconds - Verify that the DUT starts updating its software after 3 minutes. Once the update is finished verify the software version on the DUT matches the version downloaded for the software update. + ./chip-tool basicinformation read software-version 321 0 - ./chip-tool basicinformation read software-version 0x1234567890 0 + Verify the Software-Version value is 2 On TH(chip-tool) log: [1653636406.637617][11116:11121] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_000A DataVersion: 1527020963 [1653636406.637708][11116:11121] CHIP:TOO: SoftwareVersion: 2 disabled: true - label: - "OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. Action - field is set to 'AwaitNextAction', DelayedActionTime is set to 1 - minute." + "Step 3: OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. + Action field is set to 'AwaitNextAction', DelayedActionTime is set to + 1 minute." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -a awaitNextAction -p 60 - [1653640038.385848][8303:8303] CHIP:SWU: ApplyUpdateResponse: - [1653640038.385873][8303:8303] CHIP:SWU: action: 1 - [1653640038.385895][8303:8303] CHIP:SWU: delayedActionTime: 60 seconds + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID Verify that the DUT waits for the minimum interval defined by spec which is 2 minutes before re-sending the ApplyUpdateRequest to the OTA-P. Verify that the DUT does not apply the software update within this time. + + [1653640038.385848][8303:8303] CHIP:SWU: ApplyUpdateResponse: + [1653640038.385873][8303:8303] CHIP:SWU: action: 1 + [1653640038.385895][8303:8303] CHIP:SWU: delayedActionTime: 60 seconds disabled: true - label: - "OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. Action - field is set to 'AwaitNextAction', DelayedActionTime is set to 3 - minutes. On the subsequent ApplyUpdateRequest command, TH/OTA-P sends - the ApplyUpdateResponse back to DUT. Action field is set to 'Proceed'." + "Step 4: OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. + Action field is set to 'AwaitNextAction', DelayedActionTime is set to + 3 minutes. On the subsequent ApplyUpdateRequest command, TH/OTA-P + sends the ApplyUpdateResponse back to DUT. Action field is set to + 'Proceed'." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -a awaitNextAction -p 180 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + + On OTA Requestor Verify that the DUT waits for 3 minutes before sending the ApplyUpdateRequest to the OTA-P. Verify that the DUT starts updating its software after the second ApplyUpdateResponse with Proceed action. Once the update is finished, verify the software version from the Basic Information cluster on the DUT to match the version downloaded for the software update. - ./chip-tool basicinformation read software-version 0x1234567890 0 + [1653651459.546867][9228:9228] CHIP:SWU: ApplyUpdateResponse: + [1653651459.546897][9228:9228] CHIP:SWU: action: 1 + [1653651459.546923][9228:9228] CHIP:SWU: delayedActionTime: 180 seconds + + ./chip-tool basicinformation read software-version 321 0 + Verify that SoftwareVersion value is 2 On TH(chip-tool) log: [1653636406.637617][11116:11121] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_000A DataVersion: 1527020963 [1653636406.637708][11116:11121] CHIP:TOO: SoftwareVersion: 2 disabled: true - label: - "OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. Action - field is set to 'Discontinue'." + "Step 5: OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. + Action field is set to 'Discontinue'." verification: | Run the OTA Provider App using the command: ./chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -a discontinue + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + Verify that the DUT does not send the NotifyUpdateApplied within a reasonable time. + Verify that the DUT clears its previously downloaded software image and resets the UpdateState Attribute to Idle (Value 1) - ./chip-tool otasoftwareupdaterequestor read update-state 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor read update-state 321 0 + + Verify the UpdateSate value is 1 On TH(chip-tool) log: [1655392988.539869][3147:3153] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0002 DataVersion: 1861243848 [1655392988.541680][3147:3153] CHIP:TOO: UpdateState: 1 - - Verify that the DUT does not send the NotifyUpdateApplied within a reasonable time. Verify the software version from the Basic Information cluster of the DUT to be the same as it was previously. + ./chip-tool basicinformation read software-version 321 0 - - ./chip-tool basicinformation read software-version 0x1234567890 0 + Verify the SoftwareVersion value is 1 On TH(chip-tool) log: [1653636406.637617][11116:11121] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_000A DataVersion: 1527020963 [1653636406.637708][11116:11121] CHIP:TOO: SoftwareVersion: 1 disabled: true - - label: "Apply the OTA Update on DUT using vendor specific mechanism." + - label: + "Step 6: Apply the OTA Update on DUT using vendor specific mechanism." PICS: MCORE.OTA.VendorSpecific verification: | Use vendor specific steps to apply OTA Update and verify that the DUT starts updating its software. diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_6.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_6.yaml index afb2ddc0930579..64e57a3face564 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_6.yaml @@ -25,10 +25,12 @@ config: tests: - label: - "DUT sends the NotifyUpdateApplied Command to the OTA-P after + "Step 1: DUT sends the NotifyUpdateApplied Command to the OTA-P after installing the software update." PICS: OTAR.C.M.NotifyUpdateApplied verification: | + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID Verify that the NotifyUpdateApplied message received on the OTA Provider with UpdateToken and SoftwareVersion fields from DUT [1673956344.449775][17737:17737] CHIP:ZCL: OTA Provider received NotifyUpdateApplied diff --git a/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml b/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml index a167392dc46690..981b863424629a 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_2_7.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.5.1. [TC-SU-2.7] Events generated by OTA-R(DUT) +name: 3.5.1. [TC-SU-2.7] Verifying Events on OTA-R(DUT) PICS: - MCORE.OTA.Requestor @@ -24,23 +24,23 @@ config: endpoint: 0 tests: - - label: "Perform a software update on the DUT." + - label: "Step 1: Perform a software update on the DUT." verification: | - ./chip-tool interactive start + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - Subscribe to StateTransition event using command + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0 + Please use Interactive mode to Verify the subscription of an event + + ./chip-tool interactive start - Trigger OTA query using command + Subscribe to StateTransition event using command - otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + otasoftwareupdaterequestor subscribe-event state-transition 5 10 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Verify that the OTA-Subscriber(TH) receives the SateTransition event notification for the state changes like Querying,Downloading,Applying,Idle(Optional). - Verify that the Chip-Tool receives the SateTransition event notification for the state changes like Querying,Downloading,Applying,Idle(Optional). - } [1673513950.693526][6070:6073] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Event 0x0000_0000 [1673513950.693585][6070:6073] CHIP:TOO: Event number: 65539 [1673513950.693687][6070:6073] CHIP:TOO: Priority: Info @@ -54,24 +54,21 @@ tests: disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P sends a - QueryImageResponse back to DUT. QueryStatus is set to 'Busy'." + "Step 2: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P + sends a QueryImageResponse back to DUT. QueryStatus is set to 'Busy'." verification: | - ./chip-tool interactive start - - Subscribe to StateTransition event using command + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0 + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Trigger OTA query using command - - otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + Please use Interactive mode to Verify the subscription of an event + ./chip-tool interactive start - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Subscribe to StateTransition event using command + otasoftwareupdaterequestor subscribe-event state-transition 5 10 321 0 - Verify that the Chip-Tool receives the SateTransition event notification for the state change to DelayedOnQuery + Verify that the OTA-Subscriber receives(TH) a StateTransition event notification for the state change to DelayedOnQuery. - } [1673514130.748245][6097:6099] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Event 0x0000_0000 [1673514130.748304][6097:6099] CHIP:TOO: Event number: 3 [1673514130.748349][6097:6099] CHIP:TOO: Priority: Info @@ -95,24 +92,22 @@ tests: disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P does not - respond back to DUT." + "Step 3: DUT sends a QueryImage command to the TH/OTA-P. TH/OTA-P does + not respond back to DUT." verification: | + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + + Please use Interactive mode to Verify the subscription of an event ./chip-tool interactive start Subscribe to StateTransition event using command - - otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0 + otasoftwareupdaterequestor subscribe-event state-transition 5 10 321 0 Kill OTA Provider App before issuing query using - otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 - - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID - - Verify that the Chip-Tool receives the SateTransition event notification for the state change to Idle - - } + Verify that the OTA-Subscriber receives(TH) a StateTransition event notification for the state change to Idle. [1673515600.737159][6193:6195] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Event 0x0000_0000 [1673515600.737213][6193:6195] CHIP:TOO: Event number: 6 [1673515600.737258][6193:6195] CHIP:TOO: Priority: Info @@ -126,46 +121,48 @@ tests: disabled: true - label: - "DUT sends a QueryImage command to the TH/OTA-P. RequestorCanConsent - is set to True by DUT. OTA-P/TH responds with a QueryImageResponse - with UserConsentNeeded field set to True." + "Step 4: DUT sends a QueryImage command to the TH/OTA-P. + RequestorCanConsent is set to True by DUT. OTA-P/TH responds with a + QueryImageResponse with UserConsentNeeded field set to True." PICS: MCORE.OTA.RequestorConsent verification: | Run the Provider App using ./chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -c - ./chip-tool interactive start - - Subscribe to StateTransition event using command - - otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - Trigger OTA query using command + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + Please use Interactive mode to Verify the subscription of an event + ./chip-tool interactive start - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Subscribe to StateTransition event using command + otasoftwareupdaterequestor subscribe-event state-transition 5 10 321 0 Verify that the OTA-Subscriber receives a StateTransition event notification for the state change to DelayedOnUserConsent. disabled: true - label: - "Force an error during the download of the OTA image to the DUT. Wait - for the Idle timeout which should be no less than 5 minutes." + "Step 5: Force an error during the download of the OTA image to the + DUT. Wait for the Idle timeout which should be no less than 5 minutes." verification: | - ../chip-tool interactive start - - Trigger OTA query using command + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Please use Interactive mode to Verify the subscription of an event + ./chip-tool interactive start Force an error during the download of the OTA image to the DUT. Wait for the Idle timeout which should be no less than 5 minutes. - otasoftwareupdaterequestor subscribe-event download-error 5 10 0x1234567890 0 --timeout 65535 + otasoftwareupdaterequestor subscribe-event download-error 5 10 321 0 --timeout 65535 - Verify that the chip-tool receives a DownloadError event notification on BDX Idle timeout which should be no less than 5 minutes. + Verify that the OTA-Subscribe(TH) receives a DownloadError event notification on BDX Idle timeout which should be no less than 5 minutes + Verify following fields: + - SoftwareVersion - Set to the value of the SoftwareVersion being downloaded. + - BytesDownloaded - Number of bytes that have been downloaded. + - ProgressPercent - Nearest Integer percent value reflecting how far within the transfer the failure occurred. IF the total length of the transfer is unknown, the value can be NULL. + - PlatformCode - Internal product-specific error code or NULL. [1651520178426] [98732:38086919] CHIP: [TOO] DownloadError: { [1651520178426] [98732:38086919] CHIP: [TOO] SoftwareVersion: 2 @@ -174,9 +171,9 @@ tests: [1651520178426] [98732:38086919] CHIP: [TOO] PlatformCode: null [1651520178426] [98732:38086919] CHIP: [TOO] } - otasoftwareupdaterequestor subscribe-event-by-id 0 30 60 0x1234567890 0 + otasoftwareupdaterequestor subscribe-event-by-id 0 30 60 321 0 - Verify that the chip-tool receives a StateTransition event notification for the state change to Idle. + Verify that the OTA-Subscribe(TH) receives a StateTransition event notification for the state change to Idle. [1654558704063] [57765:69159905] CHIP: [TOO] StateTransition: { [1654558704064] [57765:69159905] CHIP: [TOO] PreviousState: 4 @@ -187,23 +184,22 @@ tests: disabled: true - label: - "After the OTA image is transferred, DUT sends ApplyUpdateRequest to - the OTA-P. OTA-P/TH sends the ApplyUpdateResponse Command to the DUT. - Action field is set to 'AwaitNextAction'." + "Step 6: After the OTA image is transferred, DUT sends + ApplyUpdateRequest to the OTA-P. OTA-P/TH sends the + ApplyUpdateResponse Command to the DUT. Action field is set to + 'AwaitNextAction'." verification: | - ./chip-tool interactive start - - Subscribe to StateTransition event using command + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - otasoftwareupdaterequestor subscribe-event state-transition 5 10 0x1234567890 0 + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Trigger OTA query using command - - otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + Please use Interactive mode to Verify the subscription of an event + ./chip-tool interactive start - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Subscribe to StateTransition event using command + otasoftwareupdaterequestor subscribe-event state-transition 5 10 321 0 - Verify that the Chip-Tool receives the SateTransition event notification for the state change to DelayedOnApply + Verify that the OTA-Subscriber(TH) receives the SateTransition event notification for the state change to DelayedOnApply [1651283503471] [29332:35530821] CHIP: [TOO] StateTransition: { [1651283503471] [29332:35530821] CHIP: [TOO] PreviousState: 1 @@ -235,18 +231,22 @@ tests: disabled: true - label: - "DUT successfully finishes applying a software update, and the new - software image version is being executed on the DUT. OTA-Subscriber - sends a read request to read the VersionApplied event from the DUT." + "Step 7: DUT successfully finishes applying a software update, and the + new software image version is being executed on the DUT. + OTA-Subscriber sends a read request to read the VersionApplied event + from the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Read VersionApplied event once the DUT successfully finishes applying a software update . - Read VersionApplied event when a new version starts executing after being applied due to a software update. - ./chip-tool otasoftwareupdaterequestor read-event version-applied 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor read-event version-applied 321 0 - Verify that the chip-tool receives below VersionApplied event notification + Verify TH receives VersionApplied event with following fields: + - SoftwareVersion - Same as the one available in the SoftwareVersion attribute of the Basic Information Cluster for the newly executing version. + - ProductID - Same as what is available in the ProductID attribute of the Basic Information Cluster. [1645818271254] [21222:21170014] CHIP: [TOO] VersionApplied: { [1645818271254] [21222:21170014] CHIP: [TOO] SoftwareVersion: 2 diff --git a/src/app/tests/suites/certification/Test_TC_SU_3_1.yaml b/src/app/tests/suites/certification/Test_TC_SU_3_1.yaml index 17af847b34935e..b81566a641240d 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_3_1.yaml @@ -25,14 +25,15 @@ config: tests: - label: - "OTA-R/TH sends a QueryImage Command to the DUT. UserConsentNeeded - field is set to False." + "Step 1: OTA-R/TH sends a QueryImage Command to the DUT. + UserConsentNeeded field is set to False." verification: | - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Verify on the OTA Requestor logs receives QueryImageResponse + On OTA Requestor logs, + Verify that the DUT is able to query the server where the software update image is located. DUT should obtain the User Consent from the user. DUT should respond with the QueryImageResponse to the OTA-R/TH [1673337981.104652][28428:28428] CHIP:SWU: QueryImageResponse: [1673337981.104695][28428:28428] CHIP:SWU: status: 0 diff --git a/src/app/tests/suites/certification/Test_TC_SU_3_2.yaml b/src/app/tests/suites/certification/Test_TC_SU_3_2.yaml index cde5fde06a9d9c..6615f7b99a4420 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_3_2.yaml @@ -27,23 +27,24 @@ config: tests: - label: - "OTA-R/TH sends a QueryImage Command to the DUT. RequestorCanConsent - field can be set to either True or False in the QueryImage Command. - DUT responds with the QueryImageResponse to the OTA-R/TH." + "Step 1: OTA-R/TH sends a QueryImage Command to the DUT. + RequestorCanConsent field can be set to either True or False in the + QueryImage Command. DUT responds with the QueryImageResponse to the + OTA-R/TH." verification: | - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Verify on the OTA Requestor logs receives QueryImageResponse which contains the following + On the OTA Requestor log, + Verify DUT sends a QueryImageResponse with following fields: Status - UpdateAvailable DelayedActionTime if present should be of type uint32. ImageURI - contain a URI where the OTA Requestor SHOULD download a Software Image SoftwareVersion is the same as the new software image version. SoftwareVersionString - This is the string type of the Software version. UpdateToken - verify it is within 8-32 bytes. - - + UserConsentNeeded - Value is bool type. [1673337981.104652][28428:28428] CHIP:SWU: QueryImageResponse: [1673337981.104695][28428:28428] CHIP:SWU: status: 0 @@ -56,17 +57,19 @@ tests: disabled: true - label: - "There should not be any new software update available for the + "Step 2: There should not be any new software update available for the OTA-R/TH. OTA-R/TH sends a QueryImage Command to the DUT. DUT responds with the QueryImageResponse to the OTA-R/TH." verification: | ./chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -q updateNotAvailable - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Verify on the OTA Requestor logs receives QueryImageResponse with the Status as Not Available + Verify that the DUT sends a QueryImageResponse Command to the OTA-R/TH with followig fields: + - Status - NotAvailable + - UserConsentNeeded - value is bool type [1673423580.333750][2898:2898] CHIP:SWU: QueryImageResponse: [1673423580.333776][2898:2898] CHIP:SWU: status: 2 @@ -74,15 +77,27 @@ tests: disabled: true - label: - "OTA-R/TH sends a QueryImage Command to the DUT. ProtocolSupported - field should list BDX. DUT responds with the QueryImageResponse to the - OTA-R/TH." + "Step 3: OTA-R/TH sends a QueryImage Command to the DUT. + ProtocolSupported field should list BDX. DUT responds with the + QueryImageResponse to the OTA-R/TH." verification: | - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 - - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID - - Verify on the OTA Requestor logs receives QueryImageResponse + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + + Verify that the DUT sends a QueryImageResponse Command to the OTA-R/TH with following fields: + - Verify the following fields in the image URI field. + - Verify the URI’s scheme field is “bdx” in lowercase characters and authority field contains only the string representation of the Operational Node ID of the Node where to proceed with the download. + - Verify that the encoding of the Node ID in the host field uses an uppercase hexadecimal format, using exactly 16 characters to encode the network byte order value of the NodeID. + - Verify that the Operational Node ID in the host field matches with the NodeID of the OTA Provider responding with the QueryImageResponse. + - Verify that the the user section of the authority field is absent. + - Verify that the URI does not contain + Query field. + Fragment field. + - Verify that the path field has the absolute path to the software image. + - Verify that the path has only valid URI characters. + - Verify that the URI is 24 characters or longer. + - Verify the presence of prefix 'bdx://'. [1673417165.348812][2114:2114] CHIP:SWU: QueryImageResponse: [1673417165.348861][2114:2114] CHIP:SWU: status: 0 @@ -98,28 +113,30 @@ tests: disabled: true - label: - "OTA-R/TH sends a QueryImage Command to the DUT. ProtocolSupported - field should list 'https'. DUT responds with a QueryImageResponse to - the OTA-R/TH." + "Step 4: OTA-R/TH sends a QueryImage Command to the DUT. + ProtocolSupported field should list 'https'. DUT responds with a + QueryImageResponse to the OTA-R/TH." verification: | - Out of scope for V1.0 + Out of scope disabled: true - label: - "OTA-R/TH sends a QueryImage Command to the DUT. DUT responds with the - QueryImageResponse with QueryStatus set to 'Busy', DelayedActionTime - set to 3 minutes. On the subsequent QueryImage command, DUT sends a - QueryImageResponse back to OTA-R/TH. QueryStatus is set to - 'UpdateAvailable'." + "Step 5: OTA-R/TH sends a QueryImage Command to the DUT. DUT responds + with the QueryImageResponse with QueryStatus set to 'Busy', + DelayedActionTime set to 3 minutes. On the subsequent QueryImage + command, DUT sends a QueryImageResponse back to OTA-R/TH. QueryStatus + is set to 'UpdateAvailable'." PICS: OTAP.S.M.DelayedActionTime verification: | ./chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -q busy -t 180 - ./chip-tool otasoftwareupdaterequestor announce-otaprovider 0xDEADBEEF 0 0 0 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 - where 0x1234567890 is OTA Requestor node ID and 0xDEADBEEF is OTA Provider node ID + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID - Verify on the OTA Requestor logs receives QueryImageResponse with Status as busy and DelayedActionTime as 3 minutes + Wait for 3 mins, Verify that the DUT sends a QueryImageResponse Command to the OTA-R/TH with following fields: + - Status - Busy. + - DelayedActionTime - 3 minutes. [1673425035.586964][3055:3055] CHIP:SWU: QueryImageResponse: [1673425035.586994][3055:3055] CHIP:SWU: status: 1 @@ -140,4 +157,11 @@ tests: [1673425215.698801][3055:3055] CHIP:SWU: Update available from version 1 to 2 Verify that the Image downloaded by the OTA-R/TH is valid and is the same image that was supposed to be downloaded. + + ./chip-tool basicinformation read software-version 321 0 + + Verify that SoftwareVersion value is 2 On TH(chip-tool) log: + + [1653636406.637617][11116:11121] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_000A DataVersion: 1527020963 + [1653636406.637708][11116:11121] CHIP:TOO: SoftwareVersion: 2 disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SU_3_4.yaml b/src/app/tests/suites/certification/Test_TC_SU_3_4.yaml index 655fcef6d606ae..9027b34ada4924 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_3_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_3_4.yaml @@ -27,10 +27,16 @@ config: tests: - label: - "OTA-R/TH on completion of image download sends an ApplyUpdateRequest - Command to the DUT." + "Step 1: OTA-R/TH on completion of image download sends an + ApplyUpdateRequest Command to the DUT." verification: | - Verify on the OTA Requestor logs receives ApplyUpdateResponse + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + + Verify that the DUT sends an ApplyUpdateResponse Command to the OTA Requestor with following fields: + - Action - Proceed. + - DelayedActionTime - Zero or non zero. [1645743059328] [97809:20280957] CHIP: [SWU] ApplyUpdateResponse: [1645743059328] [97809:20280957] CHIP: [SWU] action: 0 @@ -38,11 +44,12 @@ tests: disabled: true - label: - "OTA-R/TH on completion of image download sends an ApplyUpdateRequest - command to the DUT. DUT responds with the ApplyUpdateResponse with - Action set to 'AwaitNextAction', DelayedActionTime set to 3 minutes. - On the subsequent ApplyUpdateRequest command, DUT sends a - ApplyUpdateResponse back to DUT. Action is set to Proceed." + "Step 2: OTA-R/TH on completion of image download sends an + ApplyUpdateRequest command to the DUT. DUT responds with the + ApplyUpdateResponse with Action set to 'AwaitNextAction', + DelayedActionTime set to 3 minutes. On the subsequent + ApplyUpdateRequest command, DUT sends a ApplyUpdateResponse back to + DUT. Action is set to Proceed." verification: | Run the OTA Requestor App using command @@ -50,7 +57,13 @@ tests: chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -a awaitNextAction -p 180 - Verify on the OTA Requestor logs receives ApplyUpdateResponse: + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + + Verify that the DUT sends an ApplyUpdateResponse Command to the OTA Requestor with following fields: + - Action - AwaitNextAction. + - DelayedActionTime - 3 minutes. [1651273867647] [25752:35374182] CHIP: [SWU] ApplyUpdateResponse: [1651273867647] [25752:35374182] CHIP: [SWU] action: 1 @@ -64,10 +77,10 @@ tests: disabled: true - label: - "OTA-R/TH on completion of image download sends an ApplyUpdateRequest - command to the DUT. DUT responds with the ApplyUpdateResponse with - Action set to 'Discontinue'. Initiate another QueryImage Command from - OTA-R/TH to the DUT." + "Step 3: OTA-R/TH on completion of image download sends an + ApplyUpdateRequest command to the DUT. DUT responds with the + ApplyUpdateResponse with Action set to 'Discontinue'. Initiate another + QueryImage Command from OTA-R/TH to the DUT." verification: | Run the OTA Requestor App using command @@ -75,17 +88,18 @@ tests: chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin -a discontinue - Verify on the OTA Requestor logs: + ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 + + Where 321 is OTA Requestor node ID and 123 is OTA Provider node ID + Verify that the DUT sends an ApplyUpdateResponse Command to the OTA Requestor with "Discontinue" in the action field of the response. [1651275906536] [26578:35409308] CHIP: [SWU] ApplyUpdateResponse: [1651275906536] [26578:35409308] CHIP: [SWU] action: 2 [1651275906536] [26578:35409308] CHIP: [SWU] delayedActionTime: 0 seconds - Verify on the OTA Requestor logs after subsequent ApplyUpdateRequest: + Verify that the entire OTA process is restarted on DUT when OTA-R/TH sends another QueryImage Request. [1651274047655] [25752:35376683] CHIP: [SWU] ApplyUpdateResponse: [1651274047655] [25752:35376683] CHIP: [SWU] action: 0 [1651274047655] [25752:35376683] CHIP: [SWU] delayedActionTime: 0 seconds - - Initiate another QueryImage Command from OTA-R/TH to the DUT and verify that the entire OTA process is restarted on DUT when OTA-R/TH sends another QueryImage Request. disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_SU_4_1.yaml b/src/app/tests/suites/certification/Test_TC_SU_4_1.yaml index 790e34dfc08ec4..0b8c8c91838c1d 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_4_1.yaml @@ -25,255 +25,272 @@ config: tests: - label: - "TH sends a write request for the DefaultOTAProviders Attribute on the - first fabric to the DUT. TH2 is set as the default Provider for the - fabric." + "Step 1: TH sends a write request for the DefaultOTAProviders + Attribute on the first fabric to the DUT. TH2 is set as the default + Provider for the fabric." verification: | - ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 3735928559, "endpoint": 0}]' 0x0000001234567890 0 + ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 123, "endpoint": 0}]' 321 0 --commissioner-name alpha - verify success response on chip-tool logs: + Verify SUCCESS status response On TH(chip-tool) log: - status = 0x00 (SUCCESS), + [1686306358.438747][30535:30537] CHIP:DMG: StatusIB = + [1686306358.438798][30535:30537] CHIP:DMG: { + [1686306358.438866][30535:30537] CHIP:DMG: status = 0x00 (SUCCESS), + [1686306358.438919][30535:30537] CHIP:DMG: }, disabled: true - label: - "TH sends a read request to read the DefaultOTAProviders Attribute on - the first fabric to the DUT." + "Step 2: TH sends a read request to read the DefaultOTAProviders + Attribute on the first fabric to the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor read default-otaproviders 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor read default-otaproviders 321 0 - verify DefaultOtaProviders on chip-tool logs: + Verify the attribute value is set to TH2 as the default OTA provider for the fabric On TH(chip-tool) log: [1651277342848] [26860:35431852] CHIP: [TOO] DefaultOtaProviders: 1 entries [1651277342848] [26860:35431852] CHIP: [TOO] [1]: { - [1651277342848] [26860:35431852] CHIP: [TOO] ProviderNodeID: 1 + [1651277342848] [26860:35431852] CHIP: [TOO] ProviderNodeID: 123 [1651277342848] [26860:35431852] CHIP: [TOO] Endpoint: 0 [1651277342848] [26860:35431852] CHIP: [TOO] FabricIndex: 1 [1651277342848] [26860:35431852] CHIP: [TOO] } disabled: true - label: - "TH sends a write request for the DefaultOTAProviders Attribute on the - second fabric to the DUT. TH3 is set as the default Provider for the - fabric." + "Step 3: TH sends a write request for the DefaultOTAProviders + Attribute on the second fabric to the DUT. TH3 is set as the default + Provider for the fabric." verification: | - ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 2, "providerNodeID": 1, "endpoint": 0}]' 0x858 0 --commissioner-name beta + ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 2, "providerNodeID": 222, "endpoint": 0}]' 321 0 --commissioner-name beta - verify success response in chip-tool logs: + Verify SUCCESS status response On TH(chip-tool) log: - status = 0x00 (SUCCESS), + [1686306358.438747][30535:30537] CHIP:DMG: StatusIB = + [1686306358.438798][30535:30537] CHIP:DMG: { + [1686306358.438866][30535:30537] CHIP:DMG: status = 0x00 (SUCCESS), + [1686306358.438919][30535:30537] CHIP:DMG: }, disabled: true - label: - "TH sends a read request to read the DefaultOTAProviders Attribute on - the first and second fabric to the DUT." + "Step 4: TH sends a read request to read the DefaultOTAProviders + Attribute on the first and second fabric to the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor read default-otaproviders 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor read default-otaproviders 321 0 --commissioner-name alpha - verify DefaultOtaProviders on chip-tool logs: + Verify the attribute value is set to TH2 as the default OTA provider for the fabric On TH(chip-tool) log: - [1651277342848] [26860:35431852] CHIP: [TOO] DefaultOtaProviders: 1 entries - [1651277342848] [26860:35431852] CHIP: [TOO] [1]: { - [1651277342848] [26860:35431852] CHIP: [TOO] ProviderNodeID: 1 - [1651277342848] [26860:35431852] CHIP: [TOO] Endpoint: 0 - [1651277342848] [26860:35431852] CHIP: [TOO] FabricIndex: 1 - [1651277342848] [26860:35431852] CHIP: [TOO] } + [1656423850.683263][5484:5489] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0000 DataVersion: 2031318700 + [1656423850.683355][5484:5489] CHIP:TOO: DefaultOtaProviders: 1 entries + [1656423850.683439][5484:5489] CHIP:TOO: [1]: { + [1656423850.683477][5484:5489] CHIP:TOO: ProviderNodeID: 123 + [1656423850.683514][5484:5489] CHIP:TOO: Endpoint: 0 + [1656423850.683548][5484:5489] CHIP:TOO: FabricIndex: 1 + [1656423850.683580][5484:5489] CHIP:TOO: } - ./chip-tool otasoftwareupdaterequestor read default-otaproviders 0x858 0 --commissioner-name beta + ./chip-tool otasoftwareupdaterequestor read default-otaproviders 321 0 --commissioner-name beta - verify DefaultOtaProviders on chip-tool logs: + Verify the attribute value is set to TH3 as the default OTA provider for the fabric On TH(chip-tool) log: - [1651277543492] [26864:35434761] CHIP: [TOO] DefaultOtaProviders: 1 entries - [1651277543492] [26864:35434761] CHIP: [TOO] [1]: { - [1651277543492] [26864:35434761] CHIP: [TOO] ProviderNodeID: 5 - [1651277543492] [26864:35434761] CHIP: [TOO] Endpoint: 0 - [1651277543492] [26864:35434761] CHIP: [TOO] FabricIndex: 2 - [1651277543492] [26864:35434761] CHIP: [TOO] } + [1656423863.419242][5490:5495] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0000 DataVersion: 2031318700 + [1656423863.419334][5490:5495] CHIP:TOO: DefaultOtaProviders: 1 entries + [1656423863.419418][5490:5495] CHIP:TOO: [1]: { + [1656423863.419455][5490:5495] CHIP:TOO: ProviderNodeID: 222 + [1656423863.419489][5490:5495] CHIP:TOO: Endpoint: 0 + [1656423863.419523][5490:5495] CHIP:TOO: FabricIndex: 2 + [1656423863.419665][5490:5495] CHIP:TOO: } disabled: true - label: - "TH sends a write request for the DefaultOTAProviders Attribute on the - first fabric to the DUT. TH4 is the first Provider location and TH2 is - the second Provider location in the same write request on the first - fabric. TH sends a read request to read the DefaultOTAProviders - Attribute on the first and second fabric to the DUT." + "Step 5: TH sends a write request for the DefaultOTAProviders + Attribute on the first fabric to the DUT. TH4 is the first Provider + location and TH2 is the second Provider location in the same write + request on the first fabric. TH sends a read request to read the + DefaultOTAProviders Attribute on the first and second fabric to the + DUT." verification: | - ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 10, "endpoint": 0}, {"fabricIndex": 1, "providerNodeID": 20, "endpoint": 0}]' 0x0000001234567890 0 + ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[{"fabricIndex": 1, "providerNodeID": 111, "endpoint": 0}, {"fabricIndex": 1, "providerNodeID": 123, "endpoint": 0}]' 321 0 --commissioner-name alpha - verify Constraint_Error on chip-tool logs: + Verify CONSTRAINT_ERROR response On TH(chip-tool) log: [1651278243153] [27005:35448520] CHIP: [TOO] Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR) - ./chip-tool otasoftwareupdaterequestor read default-otaproviders 0x1234567890 0 + ./chip-tool otasoftwareupdaterequestor read default-otaproviders 321 0 - verify DefaultOtaProviders on chip-tool logs: + Verify the attribute value is set to TH2 as the default OTA provider for the fabric On TH(chip-tool) log: + + [1686827497.598405][15892:15894] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0000 DataVersion: 2330409299 + [1686827497.598423][15892:15894] CHIP:TOO: DefaultOTAProviders: 1 entries + [1686827497.598433][15892:15894] CHIP:TOO: [1]: { + [1686827497.598439][15892:15894] CHIP:TOO: ProviderNodeID: 111 + [1686827497.598442][15892:15894] CHIP:TOO: Endpoint: 0 + [1686827497.598445][15892:15894] CHIP:TOO: FabricIndex: 1 + [1686827497.598447][15892:15894] CHIP:TOO: } - [1651277342848] [26860:35431852] CHIP: [TOO] DefaultOtaProviders: 1 entries - [1651277342848] [26860:35431852] CHIP: [TOO] [1]: { - [1651277342848] [26860:35431852] CHIP: [TOO] ProviderNodeID: 10 - [1651277342848] [26860:35431852] CHIP: [TOO] Endpoint: 0 - [1651277342848] [26860:35431852] CHIP: [TOO] FabricIndex: 1 - [1651277342848] [26860:35431852] CHIP: [TOO] } - ./chip-tool otasoftwareupdaterequestor read default-otaproviders 0x858 0 --commissioner-name beta + ./chip-tool otasoftwareupdaterequestor read default-otaproviders 321 0 --commissioner-name beta - verify DefaultOtaProviders on chip-tool logs: + Verify the attribute value is set to TH3 as the default OTA provider for the fabric On TH(chip-tool) log: - [1651277543492] [26864:35434761] CHIP: [TOO] DefaultOtaProviders: 1 entries - [1651277543492] [26864:35434761] CHIP: [TOO] [1]: { - [1651277543492] [26864:35434761] CHIP: [TOO] ProviderNodeID: 5 - [1651277543492] [26864:35434761] CHIP: [TOO] Endpoint: 0 - [1651277543492] [26864:35434761] CHIP: [TOO] FabricIndex: 2 - [1651277543492] [26864:35434761] CHIP: [TOO] } + [1656424135.466852][5550:5555] CHIP:TOO: DefaultOtaProviders: 1 entries + [1656424135.466920][5550:5555] CHIP:TOO: [1]: { + [1656424135.466949][5550:5555] CHIP:TOO: ProviderNodeID: 222 + [1656424135.466977][5550:5555] CHIP:TOO: Endpoint: 0 + [1656424135.467003][5550:5555] CHIP:TOO: FabricIndex: 2 + [1656424135.467028][5550:5555] CHIP:TOO: } disabled: true - label: - "TH sends a write request for the DefaultOTAProviders Attribute with - an empty provider list on the second fabric to the DUT. TH sends a - read request to read the DefaultOTAProviders Attribute on the first - and second fabric to the DUT." + "Step 6: TH sends a write request for the DefaultOTAProviders + Attribute with an empty provider list on the second fabric to the DUT. + TH sends a read request to read the DefaultOTAProviders Attribute on + the first and second fabric to the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[]' 0x858 0 --commissioner-name beta + ./chip-tool otasoftwareupdaterequestor write default-otaproviders '[]' 321 0 --commissioner-name beta - verify the Success response on chip-tool logs: + Verify SUCCESS status response On TH(chip-tool) log: - status = 0x00 (SUCCESS), + [1686306358.438747][30535:30537] CHIP:DMG: StatusIB = + [1686306358.438798][30535:30537] CHIP:DMG: { + [1686306358.438866][30535:30537] CHIP:DMG: status = 0x00 (SUCCESS), + [1686306358.438919][30535:30537] CHIP:DMG: }, + ./chip-tool otasoftwareupdaterequestor read default-otaproviders 321 0 - ./chip-tool otasoftwareupdaterequestor read default-otaproviders 0x1234567890 0 + Verify the attribute value is set to TH4 as the default OTA provider for the fabric On TH(chip-tool) log: - verify DefaultOtaProviders on chip-tool logs: - - [1651277342848] [26860:35431852] CHIP: [TOO] DefaultOtaProviders: 1 entries - [1651277342848] [26860:35431852] CHIP: [TOO] [1]: { - [1651277342848] [26860:35431852] CHIP: [TOO] ProviderNodeID: 10 - [1651277342848] [26860:35431852] CHIP: [TOO] Endpoint: 0 - [1651277342848] [26860:35431852] CHIP: [TOO] FabricIndex: 1 - [1651277342848] [26860:35431852] CHIP: [TOO] } + [1686827713.696617][15955:15957] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0000 DataVersion: 2330409312 + [1686827713.696633][15955:15957] CHIP:TOO: DefaultOTAProviders: 1 entries + [1686827713.696646][15955:15957] CHIP:TOO: [1]: { + [1686827713.696652][15955:15957] CHIP:TOO: ProviderNodeID: 111 + [1686827713.696655][15955:15957] CHIP:TOO: Endpoint: 0 + [1686827713.696657][15955:15957] CHIP:TOO: FabricIndex: 1 + [1686827713.696660][15955:15957] CHIP:TOO: } - ./chip-tool otasoftwareupdaterequestor read default-otaproviders 0x858 0 --commissioner-name beta + ./chip-tool otasoftwareupdaterequestor read default-otaproviders 321 0 --commissioner-name beta - verify DefaultOtaProviders on chip-tool logs: + Verify the DefaultOtaProviders entries is 0 On TH(chip-tool) log: [1651280268033] [27804:35481732] CHIP: [TOO] DefaultOtaProviders: 0 entries disabled: true - label: - "TH sends a read request to read the UpdatePossible attribute from the - DUT." + "Step 7: TH sends a read request to read the UpdatePossible attribute + from the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor read update-possible 0x1234567890 0 - - where 0x1234567890 is OTA Requestor node ID - - Verify update-possible on the chip-tool logs is set to True: - - [1645822694702] [22599:21229305] CHIP: [DMG] ReportDataMessage = - [1645822694702] [22599:21229305] CHIP: [DMG] { - [1645822694702] [22599:21229305] CHIP: [DMG] AttributeReportIBs = - [1645822694702] [22599:21229305] CHIP: [DMG] [ - [1645822694702] [22599:21229305] CHIP: [DMG] AttributeReportIB = - [1645822694702] [22599:21229305] CHIP: [DMG] { - [1645822694702] [22599:21229305] CHIP: [DMG] AttributeDataIB = - [1645822694702] [22599:21229305] CHIP: [DMG] { - [1645822694702] [22599:21229305] CHIP: [DMG] DataVersion = 0x3873a963, - [1645822694702] [22599:21229305] CHIP: [DMG] AttributePathIB = - [1645822694702] [22599:21229305] CHIP: [DMG] { - [1645822694702] [22599:21229305] CHIP: [DMG] Endpoint = 0x0, - [1645822694702] [22599:21229305] CHIP: [DMG] Cluster = 0x2a, - [1645822694702] [22599:21229305] CHIP: [DMG] Attribute = 0x0000_0001, - [1645822694702] [22599:21229305] CHIP: [DMG] } - [1645822694702] [22599:21229305] CHIP: [DMG] - [1645822694702] [22599:21229305] CHIP: [DMG] Data = true, - [1645822694702] [22599:21229305] CHIP: [DMG] }, - [1645822694702] [22599:21229305] CHIP: [DMG] - [1645822694702] [22599:21229305] CHIP: [DMG] }, - [1645822694702] [22599:21229305] CHIP: [DMG] - [1645822694702] [22599:21229305] CHIP: [DMG] ], - [1645822694702] [22599:21229305] CHIP: [DMG] - [1645822694702] [22599:21229305] CHIP: [DMG] SuppressResponse = true, - [1645822694702] [22599:21229305] CHIP: [DMG] InteractionModelRevision = 1 - [1645822694702] [22599:21229305] CHIP: [DMG] } + ./chip-tool otasoftwareupdaterequestor read update-possible 321 0 + + where 321 is OTA Requestor node ID + + Verify that the attribute value is set to True when there is an update possible On TH(chip-tool)log: + + [1656424270.512404][5586:5591] CHIP:DMG: ReportDataMessage = + [1656424270.512452][5586:5591] CHIP:DMG: { + [1656424270.512493][5586:5591] CHIP:DMG: AttributeReportIBs = + [1656424270.512549][5586:5591] CHIP:DMG: [ + [1656424270.512594][5586:5591] CHIP:DMG: AttributeReportIB = + [1656424270.512656][5586:5591] CHIP:DMG: { + [1656424270.512703][5586:5591] CHIP:DMG: AttributeDataIB = + [1656424270.512760][5586:5591] CHIP:DMG: { + [1656424270.512818][5586:5591] CHIP:DMG: DataVersion = 0x791376b1, + [1656424270.512881][5586:5591] CHIP:DMG: AttributePathIB = + [1656424270.512946][5586:5591] CHIP:DMG: { + [1656424270.513014][5586:5591] CHIP:DMG: Endpoint = 0x0, + [1656424270.513078][5586:5591] CHIP:DMG: Cluster = 0x2a, + [1656424270.513137][5586:5591] CHIP:DMG: Attribute = 0x0000_0001, + [1656424270.513197][5586:5591] CHIP:DMG: } + [1656424270.513255][5586:5591] CHIP:DMG: + [1656424270.513317][5586:5591] CHIP:DMG: Data = true, + [1656424270.513373][5586:5591] CHIP:DMG: }, + [1656424270.513432][5586:5591] CHIP:DMG: + [1656424270.513478][5586:5591] CHIP:DMG: }, + [1656424270.513532][5586:5591] CHIP:DMG: + [1656424270.513576][5586:5591] CHIP:DMG: ], + [1656424270.513629][5586:5591] CHIP:DMG: + [1656424270.513674][5586:5591] CHIP:DMG: SuppressResponse = true, + [1656424270.513722][5586:5591] CHIP:DMG: InteractionModelRevision = 1 + [1656424270.513765][5586:5591] CHIP:DMG: } + [1656424270.514027][5586:5591] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0001 DataVersion: 2031318705 + [1656424270.514089][5586:5591] CHIP:TOO: UpdatePossible: TRUE disabled: true - label: - "TH sends a read request to read the UpdateState Attribute from the - DUT." + "Step 8: TH sends a read request to read the UpdateState Attribute + from the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor read update-state 0x1234567890 0 - - where 0x1234567890 is OTA Requestor node ID - - verify UpdateState value on chip-tool logs as 1: - - Verify that the value is set to one of the valid attribute values based on the current update state on the chip-tool logs - [1655444388.600153][6051:6056] CHIP:DMG: ReportDataMessage = - [1655444388.600204][6051:6056] CHIP:DMG: { - [1655444388.600233][6051:6056] CHIP:DMG: AttributeReportIBs = - [1655444388.600274][6051:6056] CHIP:DMG: [ - [1655444388.600318][6051:6056] CHIP:DMG: AttributeReportIB = - [1655444388.600375][6051:6056] CHIP:DMG: { - [1655444388.600410][6051:6056] CHIP:DMG: AttributeDataIB = - [1655444388.600461][6051:6056] CHIP:DMG: { - [1655444388.600505][6051:6056] CHIP:DMG: DataVersion = 0xbaa8e8e3, - [1655444388.600560][6051:6056] CHIP:DMG: AttributePathIB = - [1655444388.600605][6051:6056] CHIP:DMG: { - [1655444388.600662][6051:6056] CHIP:DMG: Endpoint = 0x0, - [1655444388.600718][6051:6056] CHIP:DMG: Cluster = 0x2a, - [1655444388.600764][6051:6056] CHIP:DMG: Attribute = 0x0000_0002, - [1655444388.600819][6051:6056] CHIP:DMG: } - [1655444388.600876][6051:6056] CHIP:DMG: - [1655444388.600922][6051:6056] CHIP:DMG: Data = 1, - [1655444388.600975][6051:6056] CHIP:DMG: }, - [1655444388.601031][6051:6056] CHIP:DMG: - [1655444388.601069][6051:6056] CHIP:DMG: }, - [1655444388.601120][6051:6056] CHIP:DMG: - [1655444388.601153][6051:6056] CHIP:DMG: ], - [1655444388.601207][6051:6056] CHIP:DMG: - [1655444388.601242][6051:6056] CHIP:DMG: SuppressResponse = true, - [1655444388.601286][6051:6056] CHIP:DMG: InteractionModelRevision = 1 - [1655444388.601318][6051:6056] CHIP:DMG: } - [1655444388.601501][6051:6056] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0002 DataVersion: 3131631843 - [1655444388.601611][6051:6056] CHIP:TOO: UpdateState: 1 + ./chip-tool otasoftwareupdaterequestor read update-state 321 0 + + Verify that the attribute value is set to one of the following values. + Unknown, Idle, Querying, DelayedOnQuery, Downloading, Applying, DelayedOnApply, RollingBack, DelayedOnUserConsent. + + [1656424339.446486][5594:5599] CHIP:DMG: ReportDataMessage = + [1656424339.446517][5594:5599] CHIP:DMG: { + [1656424339.446542][5594:5599] CHIP:DMG: AttributeReportIBs = + [1656424339.446577][5594:5599] CHIP:DMG: [ + [1656424339.446605][5594:5599] CHIP:DMG: AttributeReportIB = + [1656424339.446641][5594:5599] CHIP:DMG: { + [1656424339.446670][5594:5599] CHIP:DMG: AttributeDataIB = + [1656424339.446711][5594:5599] CHIP:DMG: { + [1656424339.446752][5594:5599] CHIP:DMG: DataVersion = 0x791376b1, + [1656424339.446790][5594:5599] CHIP:DMG: AttributePathIB = + [1656424339.446829][5594:5599] CHIP:DMG: { + [1656424339.446867][5594:5599] CHIP:DMG: Endpoint = 0x0, + [1656424339.446907][5594:5599] CHIP:DMG: Cluster = 0x2a, + [1656424339.446946][5594:5599] CHIP:DMG: Attribute = 0x0000_0002, + [1656424339.446984][5594:5599] CHIP:DMG: } + [1656424339.447024][5594:5599] CHIP:DMG: + [1656424339.447062][5594:5599] CHIP:DMG: Data = 1, + [1656424339.447097][5594:5599] CHIP:DMG: }, + [1656424339.447135][5594:5599] CHIP:DMG: + [1656424339.447164][5594:5599] CHIP:DMG: }, + [1656424339.447196][5594:5599] CHIP:DMG: + [1656424339.447223][5594:5599] CHIP:DMG: ], + [1656424339.447258][5594:5599] CHIP:DMG: + [1656424339.447286][5594:5599] CHIP:DMG: SuppressResponse = true, + [1656424339.447315][5594:5599] CHIP:DMG: InteractionModelRevision = 1 + [1656424339.447341][5594:5599] CHIP:DMG: } + [1656424339.447490][5594:5599] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0002 DataVersion: 2031318705 + [1656424339.447554][5594:5599] CHIP:TOO: UpdateState: 1 disabled: true - label: - "DUT should start initiating the Software update process. While the - DUT is downloading the image, TH sends a read request to read the - UpdateStateProgress attribute from the DUT." + "Step 9: DUT should start initiating the Software update process. + While the DUT is downloading the image, TH sends a read request to + read the UpdateStateProgress attribute from the DUT." verification: | - ./chip-tool otasoftwareupdaterequestor read update-state-progress 0x1234567890 0 - - where 0x1234567890 is OTA Requestor node ID - - Verify that the field value is null if no ongoing update on the chip-tool logs - - [1645823750592] [22938:21245247] CHIP: [DMG] ReportDataMessage = - [1645823750592] [22938:21245247] CHIP: [DMG] { - [1645823750592] [22938:21245247] CHIP: [DMG] AttributeReportIBs = - [1645823750592] [22938:21245247] CHIP: [DMG] [ - [1645823750592] [22938:21245247] CHIP: [DMG] AttributeReportIB = - [1645823750592] [22938:21245247] CHIP: [DMG] { - [1645823750592] [22938:21245247] CHIP: [DMG] AttributeDataIB = - [1645823750592] [22938:21245247] CHIP: [DMG] { - [1645823750592] [22938:21245247] CHIP: [DMG] DataVersion = 0x3873a963, - [1645823750592] [22938:21245247] CHIP: [DMG] AttributePathIB = - [1645823750592] [22938:21245247] CHIP: [DMG] { - [1645823750592] [22938:21245247] CHIP: [DMG] Endpoint = 0x0, - [1645823750592] [22938:21245247] CHIP: [DMG] Cluster = 0x2a, - [1645823750592] [22938:21245247] CHIP: [DMG] Attribute = 0x0000_0003, - [1645823750592] [22938:21245247] CHIP: [DMG] } - [1645823750592] [22938:21245247] CHIP: [DMG] - [1645823750592] [22938:21245247] CHIP: [DMG] Data = NULL - [1645823750592] [22938:21245247] CHIP: [DMG] }, - [1645823750592] [22938:21245247] CHIP: [DMG] - [1645823750592] [22938:21245247] CHIP: [DMG] }, - [1645823750592] [22938:21245247] CHIP: [DMG] - [1645823750592] [22938:21245247] CHIP: [DMG] ], - [1645823750592] [22938:21245247] CHIP: [DMG] - [1645823750592] [22938:21245247] CHIP: [DMG] SuppressResponse = true, - [1645823750592] [22938:21245247] CHIP: [DMG] InteractionModelRevision = 1 - [1645823750592] [22938:21245247] CHIP: [DMG] } + ./chip-tool otasoftwareupdaterequestor read update-state-progress 321 0 + + where 321 is OTA Requestor node ID + + Verify that the field value is null if no ongoing update on TH(chip-tool) logs: + + [1656424455.480729][5607:5612] CHIP:DMG: ReportDataMessage = + [1656424455.480766][5607:5612] CHIP:DMG: { + [1656424455.480795][5607:5612] CHIP:DMG: AttributeReportIBs = + [1656424455.480836][5607:5612] CHIP:DMG: [ + [1656424455.480869][5607:5612] CHIP:DMG: AttributeReportIB = + [1656424455.480919][5607:5612] CHIP:DMG: { + [1656424455.480956][5607:5612] CHIP:DMG: AttributeDataIB = + [1656424455.481001][5607:5612] CHIP:DMG: { + [1656424455.481039][5607:5612] CHIP:DMG: DataVersion = 0x791376b1, + [1656424455.481080][5607:5612] CHIP:DMG: AttributePathIB = + [1656424455.481124][5607:5612] CHIP:DMG: { + [1656424455.481169][5607:5612] CHIP:DMG: Endpoint = 0x0, + [1656424455.481215][5607:5612] CHIP:DMG: Cluster = 0x2a, + [1656424455.481261][5607:5612] CHIP:DMG: Attribute = 0x0000_0003, + [1656424455.481305][5607:5612] CHIP:DMG: } + [1656424455.481351][5607:5612] CHIP:DMG: + [1656424455.481396][5607:5612] CHIP:DMG: Data = NULL + [1656424455.481441][5607:5612] CHIP:DMG: }, + [1656424455.481485][5607:5612] CHIP:DMG: + [1656424455.481522][5607:5612] CHIP:DMG: }, + [1656424455.481562][5607:5612] CHIP:DMG: + [1656424455.481594][5607:5612] CHIP:DMG: ], + [1656424455.481634][5607:5612] CHIP:DMG: + [1656424455.481666][5607:5612] CHIP:DMG: SuppressResponse = true, + [1656424455.481700][5607:5612] CHIP:DMG: InteractionModelRevision = 1 + [1656424455.481731][5607:5612] CHIP:DMG: } + [1656424455.482023][5607:5612] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_0003 DataVersion: 2031318705 + [1656424455.482074][5607:5612] CHIP:TOO: UpdateStateProgress: null + Verify that the field value is anything between 1 to 100 for an ongoing update on the chip-tool logs diff --git a/src/app/tests/suites/certification/Test_TC_SU_4_2.yaml b/src/app/tests/suites/certification/Test_TC_SU_4_2.yaml index a8d453f38b8ca0..409fdf5b82f1ec 100644 --- a/src/app/tests/suites/certification/Test_TC_SU_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SU_4_2.yaml @@ -26,8 +26,8 @@ config: tests: - label: - "DUT sends a write request for the DefaultOTAProviders Attribute to - the TH." + "Step 1: DUT sends a write request for the DefaultOTAProviders + Attribute to the TH." verification: | Verify that the OTA Requestor App receives the write command and does not reject the value as invalid. @@ -85,12 +85,11 @@ tests: disabled: true - label: - "DUT sends a read request to read the DefaultOTAProviders Attribute to - the TH." + "Step 2: DUT sends a read request to read the DefaultOTAProviders + Attribute to the TH." verification: | Verify that the OTA Requestor App responds to the read command - ./chip-tool otasoftwareupdaterequestor read default-otaproviders 321 0 Verify read request for the DefaultOTAProviders attribute on TH [OTA-REQ] Logs: @@ -109,19 +108,11 @@ tests: [1662651381.709127][30167:30167] CHIP:DMG: ], [1662651381.709159][30167:30167] CHIP:DMG: [1662651381.709189][30167:30167] CHIP:DMG: isFabricFiltered = true, - [1662651381.709216][30167:30167] CHIP:DMG: InteractionModelRevision = 1 - [1662651381.709240][30167:30167] CHIP:DMG: }, - [1662651381.709323][30167:30167] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662651381.709451][30167:30167] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662651381.709485][30167:30167] CHIP:DMG: Cluster 2a, Attribute 0 is dirty - [1662651381.709507][30167:30167] CHIP:DMG: Reading attribute: Cluster=0x0000_002A Endpoint=0 AttributeId=0x0000_0000 (expanded=0) - [1662651381.709537][30167:30167] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002A e=0 p=v - [1662651381.709572][30167:30167] CHIP:DMG: AccessControl: allowed disabled: true - label: - "DUT sends a read request to read the UpdatePossible attribute from - the TH." + "Step 3: DUT sends a read request to read the UpdatePossible attribute + from the TH." verification: | Verify that the OTA Requestor App responds to the read command @@ -143,18 +134,11 @@ tests: [1662651426.055654][30167:30167] CHIP:DMG: [1662651426.055701][30167:30167] CHIP:DMG: ], [1662651426.055747][30167:30167] CHIP:DMG: - [1662651426.055828][30167:30167] CHIP:DMG: isFabricFiltered = true, - [1662651426.055877][30167:30167] CHIP:DMG: InteractionModelRevision = 1 - [1662651426.055918][30167:30167] CHIP:DMG: }, - [1662651426.056030][30167:30167] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662651426.056216][30167:30167] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662651426.056270][30167:30167] CHIP:DMG: Cluster 2a, Attribute 1 is dirty - [1662651426.056307][30167:30167] CHIP:DMG: Reading attribute: Cluster=0x0000_002A Endpoint=0 AttributeId=0x0000_0001 (expanded=0) disabled: true - label: - "DUT sends a read request to read the UpdateState Attribute from the - TH." + "Step 4: DUT sends a read request to read the UpdateState Attribute + from the TH." verification: | Verify that the OTA Requestor App responds to the read command @@ -176,25 +160,22 @@ tests: [1662651459.325138][30167:30167] CHIP:DMG: [1662651459.325188][30167:30167] CHIP:DMG: ], [1662651459.325240][30167:30167] CHIP:DMG: - [1662651459.325292][30167:30167] CHIP:DMG: isFabricFiltered = true, - [1662651459.325341][30167:30167] CHIP:DMG: InteractionModelRevision = 1 - [1662651459.325386][30167:30167] CHIP:DMG: }, - [1662651459.325513][30167:30167] CHIP:DMG: IM RH moving to [GeneratingReports] - [1662651459.325681][30167:30167] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0 - [1662651459.325737][30167:30167] CHIP:DMG: Cluster 2a, Attribute 2 is dirty - [1662651459.325778][30167:30167] CHIP:DMG: Reading attribute: Cluster=0x0000_002A Endpoint=0 AttributeId=0x0000_0002 (expanded=0) - [1662651459.325829][30167:30167] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002A e=0 p=v disabled: true - label: - "TH should start initiating the Software update process. While the TH - is downloading the image, DUT sends a read request to read the + "Step 5: TH should start initiating the Software update process. While + the TH is downloading the image, DUT sends a read request to read the UpdateStateProgress attribute from the TH." verification: | Write the acl entry to allow the software update: ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [321], "targets": null}]' 123 0 + [1686306394.095355][30543:30545] CHIP:DMG: StatusIB = + [1686306394.095380][30543:30545] CHIP:DMG: { + [1686306394.095404][30543:30545] CHIP:DMG: status = 0x00 (SUCCESS), + [1686306394.095436][30543:30545] CHIP:DMG: }, + Run the announce ota provider command to start the software update and check the UpdateStateProgress ./chip-tool otasoftwareupdaterequestor announce-otaprovider 123 0 0 0 321 0 diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml index 0d0f9abf4ad9f7..be26810aa15ea1 100644 --- a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml @@ -37,25 +37,34 @@ tests: 5. Follow the Verification step below to generate the event in 2nd terminal of DUT disabled: true - - label: "Commission DUT to TH (can be skipped if done in a preceding test)" + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)" verification: | Commission DUT to TH disabled: true - - label: "Set up subscription to SwitchLatched event" + - label: "Step 2a: Set up subscription to SwitchLatched event" PICS: SWTCH.S.F00 verification: | - On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) - + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT + (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) echo '{"Name":"SwitchLatched","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Please use Interactive mode to Verify the subscription of an event + Verify DUT generated the SwitchLachted event : + + [1687169759.564727][21941:21943] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":1}" + [1687169759.565067][21941:21941] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 5f83636d + [1687169759.565099][21941:21941] CHIP:-: The latching switch is moved to a new position:1 + [1687169759.565108][21941:21941] CHIP:ZCL: SwitchServer: OnSwitchLatch + + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event switch-latched 1 100 1 1 + 2. switch subscribe-event switch-latched 1 100 1 1 - Verify SwitchLatched event in TH(chip-tool) Log: + Verify SwitchLatched event On TH(chip-tool) Log and below is the sample log provided for the raspi platform: [1659527630.476706][4774:4779] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659527630.476742][4774:4779] CHIP:TOO: Event number: 4 @@ -66,90 +75,127 @@ tests: [1659527630.476969][4774:4779] CHIP:TOO: } disabled: true - - label: "Operator sets switch to first position" + - label: "Step 2b: Operator sets switch to first position" PICS: SWTCH.S.F00 verification: | - On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) - + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT + (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) echo '{"Name":"SwitchLatched","NewPosition":0}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify SwitchLatched event with NewPosition set to 0 on DUT(all-cluster-app) log: + DUT generated the SwitchLatched event with NewPosition 0: - [1659599702.921797][7312:7312] CHIP:IN: SecureSession[0xaaaacdb77710]: MarkAsDefunct Type:2 LSID:24961 - [1659599703.232994][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":0}" - [1659599703.233543][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409b - [1659599703.233624][7312:7312] CHIP:-: The latching switch is moved to a new position:0 - [1659599703.233682][7312:7312] CHIP:ZCL: SwitchServer: OnSwitchLatch + [1686289860.323236][30125:30127] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":0}" + [1686289860.323565][30125:30125] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 89759737 + [1686289860.323602][30125:30125] CHIP:-: The latching switch is moved to a new position:0 + [1686289860.323618][30125:30125] CHIP:ZCL: SwitchServer: OnSwitchLatch + + ./chip-tool switch read-event switch-latched 1 1 + + Verify SwitchLatched event with NewPosition set to 0 on TH(Chip-tool) log and below is the sample log provided for the raspi platform: + + [1687257759.711008][17346:17348] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 + [1687257759.711011][17346:17348] CHIP:TOO: Event number: 5 + [1687257759.711013][17346:17348] CHIP:TOO: Priority: Info + [1687257759.711015][17346:17348] CHIP:TOO: Timestamp: 1687256995382 + [1687257759.711018][17346:17348] CHIP:TOO: SwitchLatched: { + [1687257759.711021][17346:17348] CHIP:TOO: NewPosition: 0 + [1687257759.711024][17346:17348] CHIP:TOO: } disabled: true - - label: "Read CurrentPosition attribute" + - label: "Step 2c: Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - 1. ./chip-tool interactive start - 2. switch read current-position 1 1 + ./chip-tool switch read current-position 1 1 - Verify CurrentPosition value is 0 in TH(chip-tool) Log: + Verify CurrentPosition value is 0 in TH(chip-tool) Log and below is the sample log provided for the raspi platform: [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661 - [1646209289.746228][2617:2622] CHIP:TOO: current position: 0 + [1646209289.746228][2617:2622] CHIP:TOO: CurrentPosition: 0 disabled: true - - label: "Operator sets switch to second position" + - label: "Step 2d: Operator sets switch to second position" PICS: SWTCH.S.F00 verification: | - On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT + (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) echo '{"Name":"SwitchLatched","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify SwitchLatched event with NewPosition set to 1 on DUT(all-cluster-app) log: + DUT generated the SwitchLatched event with NewPosition set to 1: [1659600080.279936][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":1}" [1659600080.280318][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409c [1659600080.280376][7312:7312] CHIP:-: The latching switch is moved to a new position:1 [1659600080.280412][7312:7312] CHIP:ZCL: SwitchServer: OnSwitchLatch [1659600080.280503][7312:7312] CHIP:EVL: LogEvent event number: 0x0000000000020005 priority: 1, endpoint id: 0x1 cluster id: 0x0000_003B event id: 0x0 Sys timestamp: 0x0000000000EB91B3 + + ./chip-tool switch read-event switch-latched 1 1 + + Verify SwitchLatched event with NewPosition set to 1 on TH(Chip-tool) log and below is the sample log provided for the raspi platform: + + [1687257297.110327][17168:17170] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 + [1687257297.110330][17168:17170] CHIP:TOO: Event number: 7 + [1687257297.110333][17168:17170] CHIP:TOO: Priority: Info + [1687257297.110336][17168:17170] CHIP:TOO: Timestamp: 1687257190679 + [1687257297.110341][17168:17170] CHIP:TOO: SwitchLatched: { + [1687257297.110345][17168:17170] CHIP:TOO: NewPosition: 1 + [1687257297.110349][17168:17170] CHIP:TOO: } disabled: true - - label: "Read CurrentPosition attribute" + - label: "Step 2e: Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - 1. ./chip-tool interactive start - 2. switch read current-position 1 1 + ./chip-tool switch read current-position 1 1 - Verify CurrentPosition value is 1 in TH(chip-tool) Log: + Verify CurrentPosition value is 1 in TH(chip-tool) Log and below is the sample log provided for the raspi platform: [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661 - [1646209289.746228][2617:2622] CHIP:TOO: current position: 1 + [1646209289.746228][2617:2622] CHIP:TOO: CurrentPosition: 1 disabled: true - label: - "If NumberOfPositions>2 (see 2a of TC-SWTCH-2.1) : - Operator sets - switch to next position - Read CurrentPosition attribute" + "Step 2f: If NumberOfPositions>2 (see 2a of TC-SWTCH-2.1) : - Operator + sets switch to next position - Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - In the current SDK development, Max number of positions is configured as 2, hence the current test step should fail as NewPosition reached more than the Max NumberOfPositions. - If the DUT supports more number of positions, then for the command in previous step, position should increase to the next level. Below is the sample command to execute, if the DUT supports NumberOfPositions > 2 . + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT + (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) - ./chip-tool switch read current-position 1 1 + echo '{"Name":"SwitchLatched","NewPosition":2}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + + DUT generated the SwitchLatched event with NewPosition set to 2: - Verify CurrentPosition value in TH(chip-tool) Log: + [1659600438.058928][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":2}" + [1659600438.059436][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409d + [1659600438.059519][7312:7312] CHIP:-: The latching switch is moved to a new position:2 + [1659600438.059644][7312:7312] CHIP:ZCL: SwitchServer: OnSwitchLatch + [1659600438.059857][7312:7312] CHIP:EVL: LogEvent event number: 0x0000000000020006 priority: 1, endpoint id: 0x1 cluster id: 0x0000_003B event id: 0x0 Sys timestamp: 0x0000000000F10746 - [1659600502.023560][4306:4311] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 391463069 - [1659600502.023631][4306:4311] CHIP:TOO: current position: 2 + ./chip-tool switch read-event switch-latched 1 1 + + Verify SwitchLatched event with NewPosition set to 2 on TH(Chip-tool) log and below is the sample log provided for the raspi platform: + + [1687257759.711126][17346:17348] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 + [1687257759.711129][17346:17348] CHIP:TOO: Event number: 8 + [1687257759.711131][17346:17348] CHIP:TOO: Priority: Info + [1687257759.711133][17346:17348] CHIP:TOO: Timestamp: 1687257552953 + [1687257759.711136][17346:17348] CHIP:TOO: SwitchLatched: { + [1687257759.711140][17346:17348] CHIP:TOO: NewPosition: 2 + [1687257759.711141][17346:17348] CHIP:TOO: } disabled: true - label: - "If NumberOfPositions>3 : - Repeat step 2f for NumberOfPositions-3 - times - After each time Operator has set switch to next position, - - Read CurrentPosition attribute" + "Step 2g: If NumberOfPositions>3 : - Repeat step 2f for + NumberOfPositions-3 times - After each time Operator has set switch to + next position, - Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | In Raspi platform to change the switch to third position use the below sample command, its required to use equivalent command on the respective DUT. Open one more terminal on DUT side to execute the echo command . echo '{"Name":"SwitchLatched","NewPosition":3}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify SwitchLatched event with NewPosition set to 3 on DUT(all-cluster-app) log: + DUT generated the SwitchLatched event with NewPosition set to 3: [1659600438.058928][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":3}" [1659600438.059436][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409d @@ -157,52 +203,69 @@ tests: [1659600438.059644][7312:7312] CHIP:ZCL: SwitchServer: OnSwitchLatch [1659600438.059857][7312:7312] CHIP:EVL: LogEvent event number: 0x0000000000020006 priority: 1, endpoint id: 0x1 cluster id: 0x0000_003B event id: 0x0 Sys timestamp: 0x0000000000F10746 - In the current SDK development, Max number of positions are configured as 2, hence the current test step should fail as its reached more than the numberof position. If the DUT supports more number of positions, then for the above command, it should increase to the next level. Below is the sample command to execute , if the DUT supports more than 2 NumberOfPositions. - - ./chip-tool switch read current-position 1 1 + ./chip-tool switch read-event switch-latched 1 1 - Verify CurrentPosition value in TH(chip-tool) Log: + Verify SwitchLatched event with NewPosition set to 3 on TH(Chip-tool) log and below is the sample log provided for the raspi platform: - [1659600502.023560][4306:4311] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 391463069 - [1659600502.023631][4306:4311] CHIP:TOO: current position: 3 + [1687258513.235224][17561:17563] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 + [1687258513.235227][17561:17563] CHIP:TOO: Event number: 9 + [1687258513.235230][17561:17563] CHIP:TOO: Priority: Info + [1687258513.235231][17561:17563] CHIP:TOO: Timestamp: 1687258318347 + [1687258513.235235][17561:17563] CHIP:TOO: SwitchLatched: { + [1687258513.235238][17561:17563] CHIP:TOO: NewPosition: 3 + [1687258513.235239][17561:17563] CHIP:TOO: } disabled: true - - label: "Operator returns switch to first position" + - label: "Step 2h: Operator returns switch to first position" PICS: SWTCH.S.F00 verification: | On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"SwitchLatched","NewPosition":0}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify SwitchLatched event with NewPosition set to 0 on DUT(all-cluster-app) log: + DUT generated the SwitchLatched event with NewPosition set to 0: - [1659599702.921797][7312:7312] CHIP:IN: SecureSession[0xaaaacdb77710]: MarkAsDefunct Type:2 LSID:24961 [1659599703.232994][7312:7321] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":0}" [1659599703.233543][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 1755409b [1659599703.233624][7312:7312] CHIP:-: The latching switch is moved to a new position:0 [1659599703.233682][7312:7312] CHIP:ZCL: SwitchServer: OnSwitchLatch + + ./chip-tool switch read-event switch-latched 1 1 + + Verify SwitchLatched event with NewPosition set to 0 on TH(Chip-tool) log and below is the sample log provided for the raspi platform: + + [1687258655.138839][17617:17619] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 + [1687258655.138841][17617:17619] CHIP:TOO: Event number: 10 + [1687258655.138844][17617:17619] CHIP:TOO: Priority: Info + [1687258655.138846][17617:17619] CHIP:TOO: Timestamp: 1687258651896 + [1687258655.138849][17617:17619] CHIP:TOO: SwitchLatched: { + [1687258655.138851][17617:17619] CHIP:TOO: NewPosition: 0 + [1687258655.138853][17617:17619] CHIP:TOO: } disabled: true - - label: "Read CurrentPosition attribute" + - label: "Step 2i: Read CurrentPosition attribute" PICS: SWTCH.S.F00 verification: | - 1. ./chip-tool interactive start - 2. switch read current-position 1 1 - + ./chip-tool switch read current-position 1 1 - Verify CurrentPosition value is 0 in TH(chip-tool) Log: + Verify CurrentPosition value is 0 On TH(chip-tool) Log and below is the sample log provided for the raspi platform: [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661 - [1646209289.746228][2617:2622] CHIP:TOO: current position: 0 + [1646209289.746228][2617:2622] CHIP:TOO: CurrentPosition: 0 disabled: true - - label: "Set up subscription to InitialPress event" + - label: "Step 3a: Set up subscription to InitialPress event" PICS: SWTCH.S.F01 verification: | - On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT + (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) echo '{"Name":"InitialPress","NewPosition":0}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + DUT generated the InitialPress event with NewPosition set to 0: + [1659612230.311864][7312:7321] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":0}" [1659612230.312345][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 175540a4 [1659612230.312422][7312:7312] CHIP:-: The new position when the momentary switch starts to be pressed:0 @@ -214,7 +277,7 @@ tests: 1. ./chip-tool interactive start 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 0 on DUT(all-cluster-app) log: + Verify InitialPress event with NewPosition set to 0 On TH(chip-tool) Log and below is the sample log provided for the raspi platform: [1659612272.121119][4957:4962] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659612272.121143][4957:4962] CHIP:TOO: Event number: 131085 @@ -225,31 +288,34 @@ tests: [1659612272.121369][4957:4962] CHIP:TOO: } disabled: true - - label: "Operator does not operate switch" + - label: "Step 3b: Operator does not operate switch" PICS: SWTCH.S.F01 verification: | no Matter messages disabled: true - - label: "Read CurrentPosition attribute" + - label: "Step 3c: Read CurrentPosition attribute" PICS: SWTCH.S.F01 verification: | ./chip-tool switch read current-position 1 1 - Verify CurrentPosition value in TH (chip-tool) Log: + Verify CurrentPosition value is 0 On TH (chip-tool) Log and below is the sample log provided for the raspi platform: [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661 - [1646209289.746228][2617:2622] CHIP:TOO: current position: 0 + [1687847957.516951][19394:19396] CHIP:TOO: CurrentPosition: 0 disabled: true - - label: "Operator operates switch (keep it pressed)" + - label: "Step 3d: Operator operates switch (keep it pressed)" PICS: SWTCH.S.F01 verification: | - On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event) + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT + (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify InitialPress event with NewPosition set to 1 on DUT(all-cluster-app) log: + DUT generated the InitialPress event with NewPosition set to 1: [1659612460.072098][7312:7321] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659612460.072562][7312:7312] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 175540a5 @@ -258,25 +324,28 @@ tests: [1659612460.073008][7312:7312] CHIP:EVL: Copy Event to next buffer with priority 1 disabled: true - - label: "Read CurrentPosition attribute" + - label: "Step 3e: Read CurrentPosition attribute" PICS: SWTCH.S.F01 verification: | ./chip-tool switch read current-position 1 1 - Verify CurrentPosition value is 1 TH(chip-tool) Log: + Verify CurrentPosition value is 1 On TH(chip-tool) Log and below is the sample log provided for the raspi platform: + [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661 - [1646209289.746228][2617:2622] CHIP:TOO: current position: 1 + [1687847982.359195][19398:19400] CHIP:TOO: CurrentPosition: 1 disabled: true - - label: "Operator releases switch" + - label: "Step 3f: Operator releases switch" PICS: SWTCH.S.F01 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have the capability to generate this event) echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log: + Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1669874154.289653][2239:2241] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1669874154.290189][2239:2239] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 2c2733fa @@ -285,27 +354,30 @@ tests: [1669874154.290460][2239:2239] CHIP:EVL: LogEvent event number: 0x000000000000000C priority: 1, endpoint id: 0x1 cluster id: 0x0000_003B event id: 0x3 Sys timestamp: 0x00000000004B0B8D disabled: true - - label: "Read CurrentPosition attribute" + - label: "Step 3g: Read CurrentPosition attribute" PICS: SWTCH.S.F01 verification: | ./chip-tool switch read current-position 1 1 - Verify CurrentPosition value in TH(chip-tool) Log: + Verify CurrentPosition value is 0 On TH(chip-tool) Log and below is the sample log provided for the raspi platform: [1646209289.746157][2617:2622] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001DataVersion: 1206711661 - [1646209289.746228][2617:2622] CHIP:TOO: current position: 0 + [1687848004.040125][19402:19404] CHIP:TOO: CurrentPosition: 0 disabled: true - - label: "Set up subscription to InitialPress and ShortRelease events" + - label: + "Step 4a: Set up subscription to InitialPress and ShortRelease events" PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) Verify InitialPress and ShortRelease events has been subscribed: echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify InitialPress event with NewPosition set to 1 on DUT(all-cluster-app) log: + Verify InitialPress event with NewPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659686596.526276][2530:2538] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659686596.526734][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e771a @@ -316,7 +388,7 @@ tests: echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log: + Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659686852.011134][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659686852.011424][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e771b @@ -324,22 +396,24 @@ tests: [1659686852.011490][2530:2530] CHIP:ZCL: SwitchServer: OnShortRelease disabled: true - - label: "Operator does not operate switch" + - label: "Step 4b: Operator does not operate switch" PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 verification: | no Matter messages disabled: true - - label: "Operator operates switch (press briefly)" + - label: "Step 4c: Operator operates switch (press briefly)" PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659686631.947247][3045:3050] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659686631.947272][3045:3050] CHIP:TOO: Event number: 23 @@ -350,16 +424,18 @@ tests: [1659686631.947397][3045:3050] CHIP:TOO: } disabled: true - - label: "Operator releases switch" + - label: "Step 4d: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event short-release 1 100 1 1 --keepSubscriptions true + 2. switch subscribe-event short-release 1 100 1 1 --keepSubscriptions true - Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log: + Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659686907.770389][3061:3066] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659686907.770413][3061:3066] CHIP:TOO: Event number: 24 @@ -371,14 +447,17 @@ tests: disabled: true - label: - "Operator operates switch (keep pressed for long time, e.g. 5 seconds)" + "Step 4e: Operator operates switch (keep pressed for long time, e.g. 5 + seconds)" PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify InitialPress event with NewPosition set to 1 on DUT(all-cluster-app) log: + Verify InitialPress event with NewPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659686596.526276][2530:2538] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659686596.526734][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e771a @@ -389,9 +468,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH (chip-tool) log and below is the sample log provided for the raspi platform: [1659692069.006090][3668:3674] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659692069.006114][3668:3674] CHIP:TOO: Event number: 26 @@ -402,14 +481,16 @@ tests: [1659692069.006233][3668:3674] CHIP:TOO: } disabled: true - - label: "Operator releases switch" + - label: "Step 4f: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log: + Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659686852.011134][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659686852.011424][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e771b @@ -422,7 +503,7 @@ tests: 1. ./chip-tool interactive start 2. switch subscribe-event short-release 1 100 1 1 - Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log: + Verify ShortRelease event with PreviousPosition set to 1 on TH (chip-tool) log and below is the sample log provided for the raspi platform: [1659692123.069593][3675:3680] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659692123.069616][3675:3680] CHIP:TOO: Event number: 27 @@ -434,15 +515,17 @@ tests: disabled: true - label: - "Set up subscription to InitialPress, LongPress, ShortRelease, - LongRelease events" + "Step 5a: Set up subscription to InitialPress, LongPress, + ShortRelease, LongRelease events" PICS: SWTCH.S.F01 && SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify InitialPress event with NewPosition set to 1 on DUT(all-cluster-app) log: + Verify InitialPress event with NewPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659693098.031462][2530:2538] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659693098.031812][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7724 @@ -453,7 +536,7 @@ tests: echo '{"Name":"LongPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify LongPress event with NewPosition set to 1 on DUT(all-cluster-app) log: + Verify LongPress event with NewPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: 1659693130.924755][2530:2538] CHIP:-: Received payload: "{"Name":"LongPress","NewPosition":1}" [1659693130.925030][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7725 @@ -464,7 +547,7 @@ tests: echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log: + Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659693174.708920][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659693174.709388][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7726 @@ -475,7 +558,7 @@ tests: echo '{"Name":"LongRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify LongRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log: + Verify LongRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1674036547.915803][19172:19174] CHIP:-: Received payload: "{"Name":"LongRelease","PreviousPosition":1}" [1674036547.916262][19172:19172] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 40105288 @@ -483,22 +566,24 @@ tests: [1674036547.916493][19172:19172] CHIP:ZCL: SwitchServer: OnLongRelease disabled: true - - label: "Operator does not operate switch" + - label: "Step 5b: Operator does not operate switch" PICS: SWTCH.S.F01 && SWTCH.S.F03 verification: | no Matter messages disabled: true - - label: "Operator operates switch (press briefly)" + - label: "Step 5c: Operator operates switch (press briefly)" PICS: SWTCH.S.F01 && SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659692507.869323][3696:3701] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659692507.869342][3696:3701] CHIP:TOO: Event number: 28 @@ -509,16 +594,18 @@ tests: [1659692507.869440][3696:3701] CHIP:TOO: } disabled: true - - label: "Operator releases switch" + - label: "Step 5d: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event short-release 1 100 1 1 + 2. switch subscribe-event short-release 1 100 1 1 - Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log: + Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659692890.665344][3721:3726] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659692890.665369][3721:3726] CHIP:TOO: Event number: 31 @@ -530,16 +617,19 @@ tests: disabled: true - label: - "Operator operates switch (keep pressed for long time, e.g. 5 seconds)" + "Step 5e: Operator operates switch (keep pressed for long time, e.g. 5 + seconds)" PICS: SWTCH.S.F01 && SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659692507.869323][3696:3701] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659692507.869342][3696:3701] CHIP:TOO: Event number: 28 @@ -553,9 +643,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event long-press 1 100 1 1 + 2. switch subscribe-event long-press 1 100 1 1 - Verify longPress event with NewPosition set to 1 on TH chip-tool log: + Verify longPress event with NewPosition set to 1 on TH (chip-tool) log and below is the sample log provided for the raspi platform: [1659692638.993482][3706:3712] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0002 [1659692638.993504][3706:3712] CHIP:TOO: Event number: 30 @@ -566,16 +656,18 @@ tests: [1659692638.993615][3706:3712] CHIP:TOO: } disabled: true - - label: "Operator releases switch" + - label: "Step 5f: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F03 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event long-release 1 100 1 1 + 2. switch subscribe-event long-release 1 100 1 1 - Verify longrelease event with previousPosition set to 1 on TH chip-tool log: + Verify LongRelease event with previousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659693001.739969][3732:3737] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0004 [1659693001.740012][3732:3737] CHIP:TOO: Event number: 32 @@ -587,15 +679,17 @@ tests: disabled: true - label: - "Set up subscription to InitialPress, ShortRelease, MultiPressOngoing, - MultiPressComplete events" + "Step 6a: Set up subscription to InitialPress, ShortRelease, + MultiPressOngoing, MultiPressComplete events" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify InitialPress event with NewPosition set to 1 on DUT(all-cluster-app) log: + Verify InitialPress event with NewPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659693098.031462][2530:2538] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659693098.031812][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7724 @@ -606,7 +700,7 @@ tests: echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log: + Verify ShortRelease event with PreviousPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659694387.719620][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659694387.720095][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7729 @@ -617,7 +711,7 @@ tests: echo '{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify MultiPressComplete event with PreviousPosition set to 1 on DUT(all-cluster-app) log: + Verify MultiPressComplete event with PreviousPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659694592.347850][2530:2538] CHIP:-: Received payload: "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":1}" [1659694592.348389][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e772b @@ -627,7 +721,7 @@ tests: echo '{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify MultiPressOngoing event with NewPosition set to 1 on DUT(all-cluster-app) log: + Verify MultiPressOngoing event with NewPosition set to 1 on DUT(all-cluster-app) log and below is the sample log provided for the raspi platform: [1659695302.038797][2530:2538] CHIP:-: Received payload: "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}" [1659695302.039933][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7730 @@ -638,22 +732,24 @@ tests: [1659694592.348585][2530:2530] CHIP:ZCL: SwitchServer: OnMultiPressOngoing disabled: true - - label: "Operator does not operate switch" + - label: "Step 6b: Operator does not operate switch" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | no Matter messages for this step disabled: true - - label: "Operator operates switch (press briefly)" + - label: "Step 6c: Operator operates switch (press briefly)" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659694345.040034][3787:3792] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659694345.040059][3787:3792] CHIP:TOO: Event number: 37 @@ -663,16 +759,18 @@ tests: [1659694345.040160][3787:3792] CHIP:TOO: NewPosition: 1 disabled: true - - label: "Operator releases switch" + - label: "Step 6d: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event short-release 1 100 1 1 + 2. switch subscribe-event short-release 1 100 1 1 - Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log: + Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659694426.794832][3797:3802] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659694426.794853][3797:3802] CHIP:TOO: Event number: 38 @@ -687,9 +785,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event multi-press-complete 1 100 1 1 + 2. switch subscribe-event multi-press-complete 1 100 1 1 - Verify MultiPressComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 1 on TH chip-tool log: + Verify MultiPressComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659695330.923244][3912:3918] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005 [1659695330.923264][3912:3918] CHIP:TOO: Event number: 45 @@ -701,16 +799,18 @@ tests: [1659695330.923385][3912:3918] CHIP:TOO: } disabled: true - - label: "Operator operates switch (press briefly)" + - label: "Step 6e: Operator operates switch (press briefly)" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659695901.066563][3955:3960] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659695901.066583][3955:3960] CHIP:TOO: Event number: 46 @@ -721,16 +821,18 @@ tests: [1659695901.066708][3955:3960] CHIP:TOO: } disabled: true - - label: "Operator releases switch" + - label: "Step 6f: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event short-release 1 100 1 1 + 2. switch subscribe-event short-release 1 100 1 1 - Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log: + Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659694426.794832][3797:3802] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659694426.794853][3797:3802] CHIP:TOO: Event number: 38 @@ -741,16 +843,20 @@ tests: [1659694426.794952][3797:3802] CHIP:TOO: } disabled: true - - label: "Briefly after 6f, operator operates switch again (press briefly)" + - label: + "Step 6g: Briefly after 6f, operator operates switch again (press + briefly)" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659694345.040034][3787:3792] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659694345.040059][3787:3792] CHIP:TOO: Event number: 37 @@ -763,9 +869,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event multi-press-ongoing 1 100 1 1 + 2. switch subscribe-event multi-press-ongoing 1 100 1 1 - Verify MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 2 on TH chip-tool log: + Verify MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 2 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659695330.923244][3912:3918] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005 [1659695330.923264][3912:3918] CHIP:TOO: Event number: 45 @@ -777,16 +883,18 @@ tests: [1659695330.923385][3912:3918] CHIP:TOO: } disabled: true - - label: "Operator releases switch" + - label: "Step 6h: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event short-release 1 100 1 1 + 2. switch subscribe-event short-release 1 100 1 1 - Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log: + Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659696223.568247][3981:3986] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659696223.568272][3981:3986] CHIP:TOO: Event number: 53 @@ -805,9 +913,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event multi-press-complete 1 100 1 1 + 2. switch subscribe-event multi-press-complete 1 100 1 1 - Verify MultiPressComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 2 on TH chip-tool log: + Verify MultiPressComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 2 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659695330.923244][3912:3918] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005 [1659695330.923264][3912:3918] CHIP:TOO: Event number: 45 @@ -820,22 +928,25 @@ tests: disabled: true - label: - "If MultiPressMax == 2 (see 2c of TC-SWTCH-2.1), skip steps 6j .. 6o" + "Step 6i: If MultiPressMax == 2 (see 2c of TC-SWTCH-2.1), skip steps + 6j .. 6o" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | no Matter messages for this step disabled: true - - label: "Operator operates switch (press briefly)" + - label: "Step 6j: Operator operates switch (press briefly)" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659695901.066563][3955:3960] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659695901.066583][3955:3960] CHIP:TOO: Event number: 46 @@ -846,16 +957,18 @@ tests: [1659695901.066708][3955:3960] CHIP:TOO: } disabled: true - - label: "Operator releases switch" + - label: "Step 6k: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event short-release 1 100 1 1 + 2. switch subscribe-event short-release 1 100 1 1 - Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log: + Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659694426.794832][3797:3802] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659694426.794853][3797:3802] CHIP:TOO: Event number: 38 @@ -866,16 +979,20 @@ tests: [1659694426.794952][3797:3802] CHIP:TOO: } disabled: true - - label: "Briefly after 6k, operator operates switch again (press briefly)" + - label: + "Step 6l: Briefly after 6k, operator operates switch again (press + briefly)" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659694345.040034][3787:3792] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659694345.040059][3787:3792] CHIP:TOO: Event number: 37 @@ -888,9 +1005,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event multi-press-ongoing 1 100 1 1 + 2. switch subscribe-event multi-press-ongoing 1 100 1 1 - Verify MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 2 on TH chip-tool log: + Verify MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 2 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659695330.923244][3912:3918] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005 [1659695330.923264][3912:3918] CHIP:TOO: Event number: 45 @@ -902,16 +1019,18 @@ tests: [1659695330.923385][3912:3918] CHIP:TOO: } disabled: true - - label: "Operator releases switch" + - label: "Step 6m: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event short-release 1 100 1 1 + 2. switch subscribe-event short-release 1 100 1 1 - Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log: + Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659694426.794832][3797:3802] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659694426.794853][3797:3802] CHIP:TOO: Event number: 38 @@ -922,16 +1041,20 @@ tests: [1659694426.794952][3797:3802] CHIP:TOO: } disabled: true - - label: "Briefly after 6m, operator operates switch again (press briefly)" + - label: + "Step 6n: Briefly after 6m, operator operates switch again (press + briefly)" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 - Verify InitialPress event with NewPosition set to 1 on TH chip-tool log: + Verify InitialPress event with NewPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659694345.040034][3787:3792] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659694345.040059][3787:3792] CHIP:TOO: Event number: 37 @@ -944,13 +1067,21 @@ tests: echo '{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":3}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 3 on TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + + [1686290991.699382][30125:30127] CHIP:-: Received payload: "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":3}" + [1686290991.699646][30125:30125] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 89759738 + [1686290991.699678][30125:30125] CHIP:-: The new position when the momentary switch has been pressed in a multi-press sequence:1 + [1686290991.699687][30125:30125] CHIP:-: 3 times the momentary switch has been pressed + [1686290991.699694][30125:30125] CHIP:ZCL: SwitchServer: OnMultiPressOngoing + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event multi-press-ongoing 1 100 1 1 + 2. switch subscribe-event multi-press-ongoing 1 100 1 1 - Verify MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 3 on TH chip-tool log: + Verify MultiPressongoing event with NewPosition set to 1 and CurrentNumberOfPressesCounted set to 3 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659698336.786184][4081:4086] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005 [1659698336.786209][4081:4086] CHIP:TOO: Event number: 57 @@ -962,14 +1093,18 @@ tests: [1659698336.786360][4081:4086] CHIP:TOO: } disabled: true - - label: "Operator releases switch" + - label: "Step 6o: Operator releases switch" PICS: SWTCH.S.F01 && SWTCH.S.F04 verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event short-release 1 100 1 1 + 2. switch subscribe-event short-release 1 100 1 1 + + Verify ShortRelease event with PreviousPosition set to 1 on TH chip-tool log and below is the sample log provided for the raspi platform: [1659696223.568247][3981:3986] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659696223.568272][3981:3986] CHIP:TOO: Event number: 53 @@ -984,6 +1119,8 @@ tests: echo '{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":3}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify MultiPressonComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 3 on TH (all-cluster-app) log and below is the sample log provided for the raspi platform: + [1659694592.347850][2530:2538] CHIP:-: Received payload: "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":3}" [1659694592.348389][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e772b [1659694592.348481][2530:2530] CHIP:-: The new position when the momentary switch has been pressed in a multi-press sequence:1 @@ -992,7 +1129,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event multi-press-complete 1 100 1 1 + 2. switch subscribe-event multi-press-complete 1 100 1 1 + + Verify MultiPressonComplete event with PreviousPosition set to 1 and TotalNumberOfPressesCounted set to 3 on TH (chip-tool) log and below is the sample log provided for the raspi platform: [1659695330.923244][3912:3918] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0005 [1659695330.923264][3912:3918] CHIP:TOO: Event number: 45 diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml index dfe967941e2042..7a933ed6eaac04 100644 --- a/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 73.3.3. [TC-SWTCH-3.2] Primary functionality with client as DUT +name: 74.3.2. [TC-SWTCH-3.2] Primary functionality with client as DUT PICS: - SWTCH.C @@ -43,31 +43,31 @@ tests: disabled: true - label: - "FAIL the test - at least one of SWTCH.C.F00(LS) and SWTCH.C.F01(MS) - has to be supported" + "Step 0a: FAIL the test - at least one of SWTCH.C.F00(LS) and + SWTCH.C.F01(MS) has to be supported" PICS: "!SWTCH.C.F00 && !SWTCH.C.F01" verification: | no messages needed, TH checks consistency of PICS flags disabled: true - label: - "FAIL the test - when supporting SWTCH.C.F02(MSR) also SWTCH.C.F01(MS) - must be supported" + "Step 0b: FAIL the test - when supporting SWTCH.C.F02(MSR) also + SWTCH.C.F01(MS) must be supported" PICS: SWTCH.C.F02 && !SWTCH.C.F01 verification: | no messages needed, TH checks consistency of PICS flags disabled: true - label: - "FAIL the test - when supporting SWTCH.C.F03(MSL) also SWTCH.C.F01(MS) - must be supported" + "Step 0c: FAIL the test - when supporting SWTCH.C.F03(MSL) also + SWTCH.C.F01(MS) must be supported" PICS: SWTCH.C.F03 && !SWTCH.C.F01 verification: | no messages needed, TH checks consistency of PICS flags disabled: true - label: - "FAIL the test - when supporting SWTCH.C.F03(MSL) also + "Step 0d: FAIL the test - when supporting SWTCH.C.F03(MSL) also SWTCH.C.F02(MSR) must be supported" PICS: SWTCH.C.F03 && !SWTCH.C.F02 verification: | @@ -75,15 +75,15 @@ tests: disabled: true - label: - "FAIL the test - when supporting SWTCH.C.F04(MSM) also SWTCH.C.F01(MS) - must be supported" + "Step 0e: FAIL the test - when supporting SWTCH.C.F04(MSM) also + SWTCH.C.F01(MS) must be supported" PICS: SWTCH.C.F04 && !SWTCH.C.F01 verification: | no messages needed, TH checks consistency of PICS flags disabled: true - label: - "FAIL the test - when supporting SWTCH.C.F04(MSM) also + "Step 0f: FAIL the test - when supporting SWTCH.C.F04(MSM) also SWTCH.C.F02(MSR) must be supported" PICS: SWTCH.C.F04 && !SWTCH.C.F02 verification: | @@ -91,18 +91,18 @@ tests: disabled: true - label: - "FAIL the test - at least one of SWTCH.C.M.RA and SWTCH.C.M.EV must be - supported" + "Step 0g: FAIL the test - at least one of SWTCH.C.M.RA and + SWTCH.C.M.EV must be supported" PICS: "!SWTCH.C.M.RA && !SWTCH.C.M.EV" verification: | no messages needed, TH checks consistency of PICS flags disabled: true - label: - "Commission DUT to TH. Use client mechanism to set it up so switch - state can be observed (e.g. UI shows state of switch) and/or other - device is controlled (e.g. light on same fabric gets controlled by the - switch TH has to simulate that light). While commissioning and + "Step 1a: Commission DUT to TH. Use client mechanism to set it up so + switch state can be observed (e.g. UI shows state of switch) and/or + other device is controlled (e.g. light on same fabric gets controlled + by the switch TH has to simulate that light). While commissioning and configuring, TH records and reacts to the messages relating to the switch functionality detailed in the steps below. The order of the messages received may be different from the order of the sub-steps @@ -112,13 +112,12 @@ tests: disabled: true - - label: "DUT reads global attribute FeatureMap." + - label: "Step 1b: DUT reads global attribute FeatureMap." PICS: SWTCH.C.F00 verification: | ./chip-tool switch read feature-map 1 1 - - Verify FeatureMap value is 1 in TH all-clusters-app log + Verify FeatureMap value is 1 On TH (all-clusters-app) log and below is the sample log provided for the raspi platform: ReportDataMessage = [1671450600.457719][8426:8426] CHIP:DMG: { @@ -148,12 +147,12 @@ tests: [1671450600.458286][8426:8426] CHIP:DMG: } disabled: true - - label: "DUT reads attribute NumberOfPositions." + - label: "Step 1c: DUT reads attribute NumberOfPositions." PICS: SWTCH.C.F00 verification: | ./chip-tool switch read number-of-positions 1 1 - Verify number of positions value is 2 in TH all-clusters-app log + Verify NumberOfPositions value is 2 On TH (all-clusters-app) log and below is the sample log provided for the raspi platform: ReportDataMessage = [1671450651.817816][8426:8426] CHIP:DMG: { @@ -184,14 +183,16 @@ tests: disabled: true - label: - "DUT sets up eventing (SwitchLatched) so it will receive events when - the switch is operated." + "Step 1d: DUT sets up eventing (SwitchLatched) so it will receive + events when the switch is operated." PICS: SWTCH.C.F00 && SWTCH.C.M.EV verification: | On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"SwitchLatched","NewPosition":0}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify SwitchLatched event with NewPosition set to 0 on TH(all-cluster-app) log and below is the sample log provided for the raspi platform: + [1659679728.732056][2530:2538] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":0}" [1659679728.732389][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7706 [1659679728.732429][2530:2530] CHIP:-: The latching switch is moved to a new position:0 @@ -203,7 +204,7 @@ tests: 1. ./chip-tool interactive start 2. switch subscribe-event switch-latched 1 100 1 1 - Verify switch latched event has newposition set to 0 on DUT (chip-tool) logs: + Verify switch latched event has newposition set to 0 on DUT (chip-tool) logs and below is the sample log provided for the raspi platform: [1659679766.774013][2535:2540] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659679766.774035][2535:2540] CHIP:TOO: Event number: 3 @@ -215,51 +216,117 @@ tests: disabled: true - label: - "TH simulates operation of the switch by changing state (attribute - CurrentPosition) from 0 to 1 and back every 10 seconds (over a 1 - minute period) DUT reads attribute CurrentPosition regularly," + "Step 2a: TH simulates operation of the switch by changing state + (attribute CurrentPosition) from 0 to 1 and back every 10 seconds + (over a 1 minute period) DUT reads attribute CurrentPosition regularly" PICS: SWTCH.C.F00 && SWTCH.C.M.RA verification: | On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"SwitchLatched","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify SwitchLatched event with NewPosition set to 1 on TH(all-cluster-app) log: + [1659621148.831745][8590:8596] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":1}" [1659621148.832236][8590:8590] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4be58f54 [1659621148.832320][8590:8590] CHIP:-: The latching switch is moved to a new position:1 [1659621148.832380][8590:8590] CHIP:ZCL: SwitchServer: OnSwitchLatch [1659621148.832494][8590:8590] CHIP:EVL: LogEvent event number: 0x0000000000000007 priority: 1, endpoint id: 0x1 cluster id: 0x0000_003B event id: 0x0 Sys timestamp: 0x00000000022D0CBB - After 10 seconds, repeat the command with /tmp/chip_all_clusters_fifo using with value 0 as position + In parallel to this Check the CurrentPosition value. - After another 10 seconds, repeat the command with /tmp/chip_all_clusters_fifo using with value 1 as position + 1. ./chip-tool interactive start + 2. switch read current-position 1 1 - Repeat this toggling every 10 seconds for 1 minute total. + Verify CurrentPosition value is 1 on TH (all-cluster-app) logs + + [1686292319.379553][30986:30986] CHIP:DMG: ReportDataMessage = + [1686292319.379564][30986:30986] CHIP:DMG: { + [1686292319.379572][30986:30986] CHIP:DMG: AttributeReportIBs = + [1686292319.379590][30986:30986] CHIP:DMG: [ + [1686292319.379599][30986:30986] CHIP:DMG: AttributeReportIB = + [1686292319.379616][30986:30986] CHIP:DMG: { + [1686292319.379625][30986:30986] CHIP:DMG: AttributeDataIB = + [1686292319.379637][30986:30986] CHIP:DMG: { + [1686292319.379648][30986:30986] CHIP:DMG: DataVersion = 0xbae40564, + [1686292319.379659][30986:30986] CHIP:DMG: AttributePathIB = + [1686292319.379670][30986:30986] CHIP:DMG: { + [1686292319.379682][30986:30986] CHIP:DMG: Endpoint = 0x1, + [1686292319.379695][30986:30986] CHIP:DMG: Cluster = 0x3b, + [1686292319.379707][30986:30986] CHIP:DMG: Attribute = 0x0000_0001, + [1686292319.379717][30986:30986] CHIP:DMG: } + [1686292319.379731][30986:30986] CHIP:DMG: + [1686292319.379744][30986:30986] CHIP:DMG: Data = 1, + [1686292319.379754][30986:30986] CHIP:DMG: }, + [1686292319.379769][30986:30986] CHIP:DMG: + [1686292319.379778][30986:30986] CHIP:DMG: }, + [1686292319.379794][30986:30986] CHIP:DMG: + [1686292319.379803][30986:30986] CHIP:DMG: ], + [1686292319.379819][30986:30986] CHIP:DMG: + [1686292319.379829][30986:30986] CHIP:DMG: SuppressResponse = true, + [1686292319.379839][30986:30986] CHIP:DMG: InteractionModelRevision = 1 + [1686292319.379847][30986:30986] CHIP:DMG: } + + + TH simulates operation of the switch by changing state (attribute CurrentPosition) from 0 to 1 and back every 10 seconds (over a 1 minute period), DUT reads attribute CurrentPosition regularly - In parallel to this, watch whether DUT reads attribute CurrentPosition (expected to read multiple times to be aware of the changes in the switch position resp. the corresponding attribute) + After 10 seconds, repeat the command with /tmp/chip_all_clusters_fifo using with value 0 as position - 1. ./chip-tool interactive start - 2. switch read current-position 1 1 (in practice, DUT will issue this command, TH answers) + echo '{"Name":"SwitchLatched","NewPosition":0}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify switch latched event has newposition set to 1 on DUT (chip-tool) logs: + [1686292713.872327][30986:30989] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":0}" + [1686292713.872583][30986:30986] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to bae40566 + [1686292713.872617][30986:30986] CHIP:-: The latching switch is moved to a new position:0 + [1686292713.872629][30986:30986] CHIP:ZCL: SwitchServer: OnSwitchLatch - [1659621181.542124][5668:5673] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 1273335636 - [1659621181.542207][5668:5673] CHIP:TOO: current position: 1 + In parallel to this Check the CurrentPosition value. - Watch whether DUT presents state of simulated switch and/or controls another device based on the state of the switch. + 1. ./chip-tool interactive start + 2. switch read current-position 1 1 + + Verify CurrentPosition value is 1 on TH (all-cluster-app) logs + + [1686293150.796547][30986:30986] CHIP:DMG: ReportDataMessage = + [1686293150.796549][30986:30986] CHIP:DMG: { + [1686293150.796551][30986:30986] CHIP:DMG: AttributeReportIBs = + [1686293150.796555][30986:30986] CHIP:DMG: [ + [1686293150.796557][30986:30986] CHIP:DMG: AttributeReportIB = + [1686293150.796561][30986:30986] CHIP:DMG: { + [1686293150.796564][30986:30986] CHIP:DMG: AttributeDataIB = + [1686293150.796567][30986:30986] CHIP:DMG: { + [1686293150.796570][30986:30986] CHIP:DMG: DataVersion = 0xbae40566, + [1686293150.796572][30986:30986] CHIP:DMG: AttributePathIB = + [1686293150.796575][30986:30986] CHIP:DMG: { + [1686293150.796578][30986:30986] CHIP:DMG: Endpoint = 0x1, + [1686293150.796581][30986:30986] CHIP:DMG: Cluster = 0x3b, + [1686293150.796584][30986:30986] CHIP:DMG: Attribute = 0x0000_0001, + [1686293150.796587][30986:30986] CHIP:DMG: } + [1686293150.796590][30986:30986] CHIP:DMG: + [1686293150.796594][30986:30986] CHIP:DMG: Data = 0, + [1686293150.796597][30986:30986] CHIP:DMG: }, + [1686293150.796601][30986:30986] CHIP:DMG: + [1686293150.796603][30986:30986] CHIP:DMG: }, + [1686293150.796607][30986:30986] CHIP:DMG: + [1686293150.796609][30986:30986] CHIP:DMG: ], + [1686293150.796613][30986:30986] CHIP:DMG: + [1686293150.796616][30986:30986] CHIP:DMG: SuppressResponse = true, + [1686293150.796618][30986:30986] CHIP:DMG: InteractionModelRevision = 1 + [1686293150.796620][30986:30986] CHIP:DMG: } disabled: true - label: - "TH simulates operation of the switch by changing state (attribute - CurrentPosition) from 0 to 1 and back every 10 seconds (over a 1 - minute period), and sending the event SwitchLatched (with field - NewPosition reflecting the new state) on every change" + "Step 2b: TH simulates operation of the switch by changing state + (attribute CurrentPosition) from 0 to 1 and back every 10 seconds + (over a 1 minute period), and sending the event SwitchLatched (with + field NewPosition reflecting the new state) on every change" PICS: SWTCH.C.F00 && SWTCH.C.M.EV verification: | On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"SwitchLatched","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify SwitchLatched event with NewPosition set to 1 on TH(all-cluster-app) log: + [1659621148.831745][8590:8596] CHIP:-: Received payload: "{"Name":"SwitchLatched","NewPosition":1}" [1659621148.832236][8590:8590] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4be58f54 [1659621148.832320][8590:8590] CHIP:-: The latching switch is moved to a new position:1 @@ -274,10 +341,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event switch-latched 1 100 1 1 + 2. switch subscribe-event switch-latched 1 100 1 1 - all-clusters app will emit events to the subscriber (DUT-client), e.g. - Verify Position is changing for 0 to 1 on DUT(chip-tool) Log: + Verify SwitchLatched Position is changing for 0 to 1 on DUT(chip-tool) Log: [1659680091.149404][2592:2597] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659680091.149428][2592:2597] CHIP:TOO: Event number: 3 @@ -327,10 +393,10 @@ tests: disabled: true - label: - "Commission DUT to TH. Use client mechanism to set it up so switch - state can be observed (e.g. UI shows state of switch) and/or other - device is controlled (e.g. light on same fabric gets controlled by the - switch TH has to simulate that light). While commissioning and + "Step 3a: Commission DUT to TH. Use client mechanism to set it up so + switch state can be observed (e.g. UI shows state of switch) and/or + other device is controlled (e.g. light on same fabric gets controlled + by the switch TH has to simulate that light). While commissioning and configuring, TH records and reacts to the messages relating to the switch functionality detailed in the steps below. The order of the messages received may be different from the order of the sub-steps @@ -340,16 +406,15 @@ tests: disabled: true - - label: "DUT reads global attribute FeatureMap." + - label: "Step 3b: DUT reads global attribute FeatureMap" PICS: SWTCH.C.F01 verification: | 1. ./chip-tool interactive start - 2. switch read feature-map 1 1 + Verify FeatureMap value is 1 On TH (all-clusters-app) log - Verify FeatureMap value is 1 in TH all-clusters-app log - ] CHIP:DMG: ReportDataMessage = + CHIP:DMG: ReportDataMessage = [1671450600.457719][8426:8426] CHIP:DMG: { [1671450600.457728][8426:8426] CHIP:DMG: AttributeReportIBs = [1671450600.457747][8426:8426] CHIP:DMG: [ @@ -377,14 +442,14 @@ tests: [1671450600.458286][8426:8426] CHIP:DMG: } disabled: true - - label: "DUT reads attribute NumberOfPositions" + - label: "Step 3c: DUT reads attribute NumberOfPositions" PICS: SWTCH.C.F01 verification: | - 1. ./chip-tool interactive start - + 1 ./chip-tool interactive start 2. switch read number-of-positions 1 1 - Verify number of positions value is 2 in TH all-clusters-app log + Verify NumberOfPositions value is 2 in TH (all-clusters-app) log + DMG: ReportDataMessage = [1671450651.817816][8426:8426] CHIP:DMG: { [1671450651.817819][8426:8426] CHIP:DMG: AttributeReportIBs = @@ -414,15 +479,19 @@ tests: disabled: true - label: - "DUT sets up eventing (InitialPress and ShortRelease; if + "Step 3d: DUT sets up eventing (InitialPress and ShortRelease; if SWTCH.C.F03(MSL) also LongPress and LongRelease) so it will receive events when the switch is operated" PICS: SWTCH.C.F01 && SWTCH.C.M.EV verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"InitialPress","NewPosition":0}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify InitialPress event with NewPosition set to 0 on TH(all-cluster-app) log: + [1659624126.646996][8590:8596] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":0}" [1659624126.647380][8590:8590] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4be58f55 [1659624126.647438][8590:8590] CHIP:-: The new position when the momentary switch starts to be pressed:1 @@ -434,7 +503,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event initial-press 1 100 1 1 + 2. switch subscribe-event initial-press 1 100 1 1 + + Verify InitialPress event with NewPosition set to 0 on DUT(chip-tool) log: [1659683181.743214][2829:2835] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0001 [1659683181.743251][2829:2835] CHIP:TOO: Event number: 10 @@ -445,7 +516,8 @@ tests: [1659683181.743506][2829:2835] CHIP:TOO: } echo '{"Name":"ShortRelease","PreviousPosition":0}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - Verify for ShortRelease event in DUT(chip-tool) Log: + + Verify ShortRelease event with PreviousPosition set to 0 on TH(all-cluster-app) log: [1659683678.805455][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":0}" [1659683678.805739][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7715 @@ -456,7 +528,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event short-release 1 100 1 1 + 2. switch subscribe-event short-release 1 100 1 1 + + Verify ShortRelease event with PreviousPosition set to 0 on DUT(chip-tool) log: [1659683195.217253][2838:2843] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0003 [1659683195.217275][2838:2843] CHIP:TOO: Event number: 11 @@ -470,12 +544,21 @@ tests: echo '{"Name":"LongPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify LongPress event with NewPosition set to 1 on TH(all-cluster-app) log: + + [1686294416.290491][30986:30989] CHIP:-: Received payload: "{"Name":"LongPress","NewPosition":1}" + [1686294416.290729][30986:30986] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to bae40568 + [1686294416.290761][30986:30986] CHIP:-: The new position when the momentary switch has been pressed for a long time:1 + [1686294416.290775][30986:30986] CHIP:ZCL: SwitchServer: OnLongPress + + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event long-press 1 100 1 1 + 2. switch subscribe-event long-press 1 100 1 1 + Verify LongPress event with NewPosition set to 1 on TH(chip-tool) log: [1659527630.476706][4774:4779] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659527630.476742][4774:4779] CHIP:TOO: Event number: 5 @@ -487,12 +570,20 @@ tests: echo '{"Name":"LongRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify LongRelease event with PreviousPosition set to 1 on TH(all-cluster-app) log: + + [1686294209.671991][30986:30989] CHIP:-: Received payload: "{"Name":"LongRelease","PreviousPosition":1}" + [1686294209.672192][30986:30986] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to bae40567 + [1686294209.672219][30986:30986] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released after having been pressed for a long time:1 + [1686294209.672229][30986:30986] CHIP:ZCL: SwitchServer: OnLongRelease + Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event long-release 1 100 1 1 + 2. switch subscribe-event long-release 1 100 1 1 + Verify LongRelease event with PreviousPosition set to 1 on DUT(chip-tool) log: [1659527630.476706][4774:4779] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659527630.476742][4774:4779] CHIP:TOO: Event number: 6 @@ -504,65 +595,126 @@ tests: disabled: true - label: - "TH simulates operation of the switch by repeating these steps (over a - 1 minute period) change state (attribute CurrentPosition) from 0 to 1 - wait 0.2 seconds change state (attribute CurrentPosition) from 1 to 0 - wait 10 seconds DUT reads attribute CurrentPosition regularly" + "Step 4a: TH simulates operation of the switch by repeating these + steps (over a 1 minute period) change state (attribute + CurrentPosition) from 0 to 1 wait 0.2 seconds change state (attribute + CurrentPosition) from 1 to 0 wait 10 seconds DUT reads attribute + CurrentPosition regularly" PICS: SWTCH.C.F01 && SWTCH.C.M.RA verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) + TH simulates operation of the switch by repeating these steps (over a 1 minute period) + echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify InitialPress event with NewPosition set to 1 on TH(all-cluster-app) log: + [1659624126.646996][8590:8596] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659624126.647380][8590:8590] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4be58f55 [1659624126.647438][8590:8590] CHIP:-: The new position when the momentary switch starts to be pressed:1 [1659624126.647480][8590:8590] CHIP:ZCL: SwitchServer: OnInitialPress + In parallel to this, Read the CurrentPosition attribute + + 1. ./chip-tool interactive start + 2. switch read current-position 1 1 + + Verify CurrentPosition value is 1 On TH(all-cluster-app) log + + [1686294581.633942][30986:30986] CHIP:DMG: ReportDataMessage = + [1686294581.633954][30986:30986] CHIP:DMG: { + [1686294581.633961][30986:30986] CHIP:DMG: AttributeReportIBs = + [1686294581.633979][30986:30986] CHIP:DMG: [ + [1686294581.633987][30986:30986] CHIP:DMG: AttributeReportIB = + [1686294581.634004][30986:30986] CHIP:DMG: { + [1686294581.634014][30986:30986] CHIP:DMG: AttributeDataIB = + [1686294581.634025][30986:30986] CHIP:DMG: { + [1686294581.634038][30986:30986] CHIP:DMG: DataVersion = 0xbae40569, + [1686294581.634048][30986:30986] CHIP:DMG: AttributePathIB = + [1686294581.634059][30986:30986] CHIP:DMG: { + [1686294581.634071][30986:30986] CHIP:DMG: Endpoint = 0x1, + [1686294581.634083][30986:30986] CHIP:DMG: Cluster = 0x3b, + [1686294581.634095][30986:30986] CHIP:DMG: Attribute = 0x0000_0001, + [1686294581.634119][30986:30986] CHIP:DMG: } + [1686294581.634124][30986:30986] CHIP:DMG: + [1686294581.634127][30986:30986] CHIP:DMG: Data = 1, + [1686294581.634130][30986:30986] CHIP:DMG: }, + [1686294581.634134][30986:30986] CHIP:DMG: + [1686294581.634136][30986:30986] CHIP:DMG: }, + [1686294581.634141][30986:30986] CHIP:DMG: + [1686294581.634143][30986:30986] CHIP:DMG: ], + [1686294581.634147][30986:30986] CHIP:DMG: + [1686294581.634150][30986:30986] CHIP:DMG: SuppressResponse = true, + [1686294581.634152][30986:30986] CHIP:DMG: InteractionModelRevision = 1 + [1686294581.634154][30986:30986] CHIP:DMG: } + + After 0.2 seconds, send this command echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify ShortRelease event with PreviousPosition set to 1 on TH(all-cluster-app) log: + [1659683678.805455][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659683678.805739][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7715 [1659683678.805777][2530:2530] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1 [1659683678.805858][2530:2530] CHIP:ZCL: SwitchServer: OnShortRelease - - After 10 seconds, repeat these commands (again with 0.2 s between them). - Repeat this for 1 minute total. - - In parallel to this, watch whether DUT reads attribute CurrentPosition (expected to read multiple times to be aware of the changes in the switch position resp. the corresponding attribute) - - - 1. ./chip-tool interactive start - 2. switch read current-position 1 1 (in practice, DUT will issue this command, TH answers) - - [1659621181.542124][5668:5673] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 1273335636 - [1659621181.542207][5668:5673] CHIP:TOO: current position: 1 - + In parallel to this, Read the CurrentPosition attribute 1. ./chip-tool interactive start 2. switch read current-position 1 1 - [1659683735.960098][2900:2905] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Attribute 0x0000_0001 DataVersion: 3999168277 - [1659683735.960157][2900:2905] CHIP:TOO: current position: 0 <= value will toggle between 1 and 0 - - Watch whether DUT presents state of simulated switch and/or controls another device based on the state of the switch. + Verify CurrentPosition value is 0 On TH(all-cluster-app) log + + [1686294592.640335][30986:30986] CHIP:DMG: ReportDataMessage = + [1686294592.640348][30986:30986] CHIP:DMG: { + [1686294592.640360][30986:30986] CHIP:DMG: AttributeReportIBs = + [1686294592.640386][30986:30986] CHIP:DMG: [ + [1686294592.640397][30986:30986] CHIP:DMG: AttributeReportIB = + [1686294592.640425][30986:30986] CHIP:DMG: { + [1686294592.640440][30986:30986] CHIP:DMG: AttributeDataIB = + [1686294592.640456][30986:30986] CHIP:DMG: { + [1686294592.640474][30986:30986] CHIP:DMG: DataVersion = 0xbae4056a, + [1686294592.640490][30986:30986] CHIP:DMG: AttributePathIB = + [1686294592.640507][30986:30986] CHIP:DMG: { + [1686294592.640525][30986:30986] CHIP:DMG: Endpoint = 0x1, + [1686294592.640543][30986:30986] CHIP:DMG: Cluster = 0x3b, + [1686294592.640563][30986:30986] CHIP:DMG: Attribute = 0x0000_0001, + [1686294592.640580][30986:30986] CHIP:DMG: } + [1686294592.640602][30986:30986] CHIP:DMG: + [1686294592.640619][30986:30986] CHIP:DMG: Data = 0, + [1686294592.640633][30986:30986] CHIP:DMG: }, + [1686294592.640658][30986:30986] CHIP:DMG: + [1686294592.640668][30986:30986] CHIP:DMG: }, + [1686294592.640690][30986:30986] CHIP:DMG: + [1686294592.640702][30986:30986] CHIP:DMG: ], + [1686294592.640726][30986:30986] CHIP:DMG: + [1686294592.640739][30986:30986] CHIP:DMG: SuppressResponse = true, + [1686294592.640755][30986:30986] CHIP:DMG: InteractionModelRevision = 1 + [1686294592.640768][30986:30986] CHIP:DMG: } disabled: true - label: - "TH simulates operation of the switch by repeating these steps (over a - 1 minute period) change state (attribute CurrentPosition) from 0 to 1, - and send the event InitialPress (with field NewPosition=1) wait 0.2 - seconds change state (attribute CurrentPosition) from 1 to 0, and send - the event ShortRelease (with field PreviousPosition=1) wait 10 seconds" + "Step 4b: TH simulates operation of the switch by repeating these + steps (over a 1 minute period) change state (attribute + CurrentPosition) from 0 to 1, and send the event InitialPress (with + field NewPosition=1) wait 0.2 seconds change state (attribute + CurrentPosition) from 1 to 0, and send the event ShortRelease (with + field PreviousPosition=1) wait 10 seconds" PICS: SWTCH.C.F01 && SWTCH.C.M.EV verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify InitialPress event with NewPosition set to 1 on TH(all-cluster-app) log: + [1659624126.646996][8590:8596] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" [1659624126.647380][8590:8590] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to 4be58f55 [1659624126.647438][8590:8590] CHIP:-: The new position when the momentary switch starts to be pressed:1 @@ -572,24 +724,21 @@ tests: echo '{"Name":"ShortRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify ShortRelease event with PreviousPosition set to 1 on TH(all-cluster-app) log: + [1659684051.064329][2530:2538] CHIP:-: Received payload: "{"Name":"ShortRelease","PreviousPosition":1}" [1659684051.064820][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e7716 [1659684051.064904][2530:2530] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1 [1659684051.064994][2530:2530] CHIP:ZCL: SwitchServer: OnShortRelease - After 10 seconds, repeat these commands (again with 0.2 s between them). - Repeat this for 1 minute total. - - - all-clusters app will emit events to the subscriber (DUT-client), e.g. - Verify in TH Log: - Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- 1. ./chip-tool interactive start 2. switch subscribe-event initial-press 1 100 1 1 + Verify InitialPress event with NewPosition set to 1 on DUT(chip-tool) log: + [1659527630.476706][4774:4779] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659527630.476742][4774:4779] CHIP:TOO: Event number: 4 [1659527630.476771][4774:4779] CHIP:TOO: Priority: Info @@ -604,6 +753,8 @@ tests: 1. ./chip-tool interactive start 2. switch subscribe-event short-release 1 100 1 1 + Verify ShortRelease event with PreviousPosition set to 1 on DUT(chip-tool) log: + [1659527630.476706][4774:4779] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659527630.476742][4774:4779] CHIP:TOO: Event number: 5 [1659527630.476771][4774:4779] CHIP:TOO: Priority: Info @@ -612,36 +763,56 @@ tests: [1659527630.476934][4774:4779] CHIP:TOO: PreviousPosition: 1 [1659527630.476969][4774:4779] CHIP:TOO: } + After 10 seconds, repeat these commands (again with 0.2 s between them). + Repeat this for 1 minute total. + Watch whether DUT presents state of simulated switch and/or controls another device based on the state of the switch. disabled: true - label: - "TH simulates operation of the switch by repeating these steps (over a - 1 minute period) change state (field CurrentPosition) from 0 to 1, and - send the event InitialPress (with field NewPosition=1) wait 0.75 - seconds send the event LongPress (field NewPosition=1) wait 2 seconds - change state (field CurrentPosition) from 1 to 0, and send the event - LongRelease (with field PreviousPosition=1) wait 8 seconds" + "Step 4c: TH simulates operation of the switch by repeating these + steps (over a 1 minute period) change state (field CurrentPosition) + from 0 to 1, and send the event InitialPress (with field + NewPosition=1) wait 0.75 seconds send the event LongPress (field + NewPosition=1) wait 2 seconds change state (field CurrentPosition) + from 1 to 0, and send the event LongRelease (with field + PreviousPosition=1) wait 8 seconds" PICS: SWTCH.C.F01 && SWTCH.C.F03 && SWTCH.C.M.EV verification: | + Note : Please skip this step if LATCH SWITCH feature is implemented, because a device can support either a latching switch or a momentary switch. + On Raspi platform to trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor DUT should have capability to generate this event) echo '{"Name":"InitialPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify InitialPress event with NewPosition set to 1 on TH(all-cluster-app) log: + + [1686295316.319181][30986:30989] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" + [1686295316.319478][30986:30986] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to bae4056b + [1686295316.319509][30986:30986] CHIP:-: The new position when the momentary switch starts to be pressed:1 + [1686295316.319518][30986:30986] CHIP:ZCL: SwitchServer: OnInitialPress + After 0.75 seconds, send this command echo '{"Name":"LongPress","NewPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) + Verify LongPress event with NewPosition set to 1 on TH(all-cluster-app) log: + + [1686295316.319181][30986:30989] CHIP:-: Received payload: "{"Name":"InitialPress","NewPosition":1}" + [1686295316.319478][30986:30986] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to bae4056b + [1686295316.319509][30986:30986] CHIP:-: The new position when the momentary switch starts to be pressed:1 + [1686295316.319518][30986:30986] CHIP:ZCL: SwitchServer: OnInitialPress + After 2 seconds, send this command echo '{"Name":"LongRelease","PreviousPosition":1}' > /tmp/chip_all_clusters_fifo_ (PID of DUT) - After 8 seconds, repeat this set of commands - Repeat this for 1 minute total. - + Verify LonglRelease event with PreviousPosition set to 1 on TH(all-cluster-app) log: - all-clusters app will emit events to the subscriber (DUT-client), e.g. - Verify in TH Log: + [1686295393.569670][30986:30989] CHIP:-: Received payload: "{"Name":"LongRelease","PreviousPosition":1}" + [1686295393.569925][30986:30986] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to bae4056d + [1686295393.569959][30986:30986] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released after having been pressed for a long time:1 + [1686295393.569976][30986:30986] CHIP:ZCL: SwitchServer: OnLongRelease Please use Interactive mode to Verify the subscription of an event Here the command to enter interactive mode:-- @@ -649,6 +820,8 @@ tests: 1. ./chip-tool interactive start 2. switch subscribe-event initial-press 1 100 1 1 + Verify InitialPress event with NewPosition set to 1 on TH(chip-tool) log: + [1659527630.476706][4774:4779] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659527630.476742][4774:4779] CHIP:TOO: Event number: 4 [1659527630.476771][4774:4779] CHIP:TOO: Priority: Info @@ -663,6 +836,8 @@ tests: 1. ./chip-tool interactive start 2. switch subscribe-event long-press 1 100 1 1 + Verify LongPress event with NewPosition set to 1 on TH(chip-tool) log: + [1659527630.476706][4774:4779] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659527630.476742][4774:4779] CHIP:TOO: Event number: 5 [1659527630.476771][4774:4779] CHIP:TOO: Priority: Info @@ -675,7 +850,9 @@ tests: Here the command to enter interactive mode:-- 1. ./chip-tool interactive start - 2. switch subscribe-event long-release 1 100 1 1 + 2. switch subscribe-event long-release 1 100 1 1 + + Verify LonglRelease event with PreviousPosition set to 1 on TH(chip-tool) log: [1659527630.476706][4774:4779] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_003B Event 0x0000_0000 [1659527630.476742][4774:4779] CHIP:TOO: Event number: 6 @@ -685,5 +862,8 @@ tests: [1659527630.476934][4774:4779] CHIP:TOO: PreviousPosition: 1 [1659527630.476969][4774:4779] CHIP:TOO: } + After 8 seconds, repeat this set of commands + Repeat this for 1 minute total. + Watch whether DUT presents state of simulated switch and/or controls another device based on the state of the switch. disabled: true 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 new file mode 100644 index 00000000000000..552d5343fdb669 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_S_2_5.yaml @@ -0,0 +1,313 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 132.2.5. [TC-S-2.5] RemainingCapacity functionality with DUT as Server + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "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: GroupKeySetID: 0x01a1 + GroupKeySecurityPolicy: TrustFirst (0) EpochKey0: + d0d1d2d3d4d5d6d7d8d9dadbdcdddedf EpochStartTime0: 2220000 EpochKey1: + d1d1d2d3d4d5d6d7d8d9dadbdcdddedf EpochStartTime1: 2220001 EpochKey2: + d2d1d2d3d4d5d6d7d8d9dadbdcdddedf EpochStartTime2: 2220002" + verification: | + ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 1, + "groupKeySecurityPolicy": 0, "epochKey0": + "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": + "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": + "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0 + + Verify the "status is success" on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1658316948.574526][4039:4044] CHIP:DMG: StatusIB = + [1658316948.574561][4039:4044] CHIP:DMG: { + [1658316948.574597][4039:4044] CHIP:DMG: status = 0x00 (SUCCESS), + [1658316948.574632][4039:4044] CHIP:DMG: }, + disabled: true + + - label: + "Step 0b: TH binds GroupId 0x0001 with GroupKeySetID 0x01a1 in the + GroupKeyMap attribute list on GroupKeyManagement cluster by writing + the GroupKeyMap attribute with one entry as follows: List item 1: + FabricIndex: 1 GroupId: 0x0001 GroupKeySetId: 0x01a1" + verification: | + ./chip-tool groupkeymanagement write group-key-map '[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1}]' 1 0 + + [1688019387.509419][1710:1712] CHIP:DMG: } + [1688019387.509461][1710:1712] CHIP:DMG: + [1688019387.509497][1710:1712] CHIP:DMG: StatusIB = + [1688019387.509534][1710:1712] CHIP:DMG: { + [1688019387.509572][1710:1712] CHIP:DMG: status = 0x00 (SUCCESS), + [1688019387.509610][1710:1712] CHIP:DMG: }, + disabled: true + + - label: "Step 1: TH sends a RemoveAllGroups command to DUT." + PICS: G.S.C04.Rsp + verification: | + ./chip-tool groups remove-all-groups 1 1 + + [1688019423.251477][1716:1718] CHIP:DMG: }, + [1688019423.251524][1716:1718] CHIP:DMG: + [1688019423.251561][1716:1718] CHIP:DMG: StatusIB = + [1688019423.251602][1716:1718] CHIP:DMG: { + [1688019423.251643][1716:1718] CHIP:DMG: status = 0x00 (SUCCESS), + [1688019423.251686][1716:1718] CHIP:DMG: }, + [1688019423.251727][1716:1718] CHIP:DMG: + disabled: true + + - label: + "Step 2: TH sends a AddGroup command to DUT with the GroupID field set + to 0x0001." + PICS: G.S.C00.Rsp + verification: | + ./chip-tool groups add-group 0x0001 grp1 1 1 + + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000 + CHIP:TOO: AddGroupResponse: { + CHIP:TOO: status: 0 + CHIP:TOO: groupID: 1 + CHIP:TOO: } + disabled: true + + - label: + "Step 3: TH sends a RemoveAllScenes command to DUT with the GroupID + field set to 0x0001." + PICS: S.S.C03.Rsp + verification: | + ./chip-tool scenes remove-all-scenes 0x0001 1 1 + + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003 + CHIP:TOO: RemoveAllScenesResponse: { + CHIP:TOO: status: 1 + CHIP:TOO: groupID: 1 + CHIP:TOO: } + 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 + + [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 + disabled: true + + - label: + "Step 4b: TH sends a subscription request action for RemainingCapacity + to the DUT." + PICS: S.S.A0007 + verification: | + ./chip-tool interactive start + + >> scenes subscribe remaining-capacity 10 100 1 1 + + [1688019515.541743][1731:1733] CHIP:DMG: ReportDataMessage = + [1688019515.541783][1731:1733] CHIP:DMG: { + [1688019515.541816][1731:1733] CHIP:DMG: SubscriptionId = 0x86424e60, + [1688019515.541848][1731:1733] CHIP:DMG: AttributeReportIBs = + [1688019515.541889][1731:1733] CHIP:DMG: [ + [1688019515.541920][1731:1733] CHIP:DMG: AttributeReportIB = + [1688019515.541961][1731:1733] CHIP:DMG: { + [1688019515.541995][1731:1733] CHIP:DMG: AttributeDataIB = + [1688019515.542032][1731:1733] CHIP:DMG: { + [1688019515.542071][1731:1733] CHIP:DMG: DataVersion = 0x5c66a0ed, + [1688019515.542109][1731:1733] CHIP:DMG: AttributePathIB = + [1688019515.542149][1731:1733] CHIP:DMG: { + [1688019515.542189][1731:1733] CHIP:DMG: Endpoint = 0x1, + [1688019515.542230][1731:1733] CHIP:DMG: Cluster = 0x5, + [1688019515.542273][1731:1733] CHIP:DMG: Attribute = 0x0000_0007, + [1688019515.542313][1731:1733] CHIP:DMG: } + [1688019515.542355][1731:1733] CHIP:DMG: + [1688019515.542396][1731:1733] CHIP:DMG: Data = 0, + [1688019515.542433][1731:1733] CHIP:DMG: }, + [1688019515.542474][1731:1733] CHIP:DMG: + [1688019515.542507][1731:1733] CHIP:DMG: }, + [1688019515.542546][1731:1733] CHIP:DMG: + [1688019515.542575][1731:1733] CHIP:DMG: ], + [1688019515.542614][1731:1733] CHIP:DMG: + [1688019515.542644][1731:1733] CHIP:DMG: InteractionModelRevision = 1 + [1688019515.542673][1731:1733] CHIP:DMG: } + [1688019515.542841][1731:1733] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 1550229741 + [1688019515.542905][1731:1733] CHIP:TOO: RemainingCapacity: 0 + [1688019515.542968][1731:1733] CHIP:DMG: MoveToState ReadClient[0xffffac012a80]: Moving to [AwaitingSu] + [1688019515.543104][1731:1733] CHIP:EM: <<< [E:47710i S:27355 M:73821372 (Ack:265285849)] (S) Msg TX to 1:0000000000000001 [2867] --- Type 0001:01 (IM:StatusResponse) + [1688019515.543154][1731:1733] CHIP:IN: (S) Sending msg 73821372 on secure session with LSID: 27355 + [1688019515.544315][1731:1733] CHIP:EM: >>> [E:47710i S:27355 M:265285850 (Ack:73821372)] (S) Msg RX from 1:0000000000000001 [2867] --- Type 0001:04 (IM:SubscribeResponse) + [1688019515.544359][1731:1733] CHIP:EM: Found matching exchange: 47710i, Delegate: 0xffffac012a90 + [1688019515.544401][1731:1733] CHIP:EM: Rxd Ack; Removing MessageCounter:73821372 from Retrans Table on exchange 47710i + [1688019515.544478][1731:1733] CHIP:DMG: SubscribeResponse is received + [1688019515.544530][1731:1733] CHIP:DMG: SubscribeResponseMessage = + [1688019515.544562][1731:1733] CHIP:DMG: { + [1688019515.544592][1731:1733] CHIP:DMG: SubscriptionId = 0x86424e60, + [1688019515.544625][1731:1733] CHIP:DMG: MaxInterval = 0x64, + [1688019515.544657][1731:1733] CHIP:DMG: InteractionModelRevision = 1 + [1688019515.544687][1731:1733] CHIP:DMG: } + disabled: true + + - label: + "Step 4c: Keep subscription session active for the remainder of the + test" + verification: | + + disabled: true + + - label: + "Step 5a: TH sends a AddScene command to DUT with the GroupID field + set to 0x0001, the SceneID field set to 0x01, the TransitionTime field + set to 0x0014 (20s) and no extension field sets." + PICS: S.S.C00.Rsp + verification: | + ./chip-tool scenes add-scene 0x0001 0x1 0x0014 scene1 [] 1 1 + + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000 + CHIP:TOO: AddSceneResponse: { + CHIP:TOO: status: 0 + CHIP:TOO: groupID: 1 + CHIP:TOO: sceneID: 1 + CHIP:TOO: } + 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 + (MaxRemainingCapacity-1)." + PICS: S.S.A0007 + verification: | + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536935 + CHIP:TOO: RemainingCapacity: 7 + disabled: true + + - label: + "Step 6a: If RemainingCapacity is greater than 0, TH sends a + StoreScene command to DUT with the GroupID field set to 0x0001 and the + SceneID field set to 0x02. If RemainingCapacity is 0, continue to Step + 8a." + PICS: S.S.C04.Rsp + verification: | + ./chip-tool scenes add-scene 0x0001 0x2 0x0014 scene2 [] 1 1 + + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000 + CHIP:TOO: AddSceneResponse: { + CHIP:TOO: status: 0 + CHIP:TOO: groupID: 1 + CHIP:TOO: sceneID: 2 + CHIP:TOO: } + 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 + (MaxRemainingCapacity-2)." + PICS: S.S.A0007 + verification: | + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536935 + CHIP:TOO: RemainingCapacity: 6 + disabled: true + + - label: + "Step 7a: If RemainingCapacity is greater than 0, TH sends a AddScene + command to DUT with the GroupID field set to 0x0001, the SceneID field + set to 0x03, the TransitionTime field set to 0x0014 (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 + 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 + (MaxRemainingCapacity-3)." + PICS: S.S.A0007 + verification: | + ./chip-tool scenes add-scene 0x0001 0x3 0x0014 scene3 [] 1 1 + disabled: true + + - label: + "Step 8a: TH sends a RemoveScene command to DUT with the GroupID field + set to 0x0001 and the SceneID field set to 0x01." + PICS: S.S.C02.Rsp + verification: | + ./chip-tool scenes remove-scene 0x0001 0x1 1 1 + + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0002 + CHIP:TOO: RemoveSceneResponse: { + CHIP:TOO: status: 0 + CHIP:TOO: groupID: 1 + CHIP:TOO: sceneID: 1 + CHIP:TOO: } + 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 + (MaxRemainingCapacity-2)." + PICS: S.S.A0007 + verification: | + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536935 + CHIP:TOO: RemainingCapacity: 6 + disabled: true + + - label: + "Step 9a: TH sends a RemoveAllScenes command to DUT with the GroupID + field set to 0x0001." + PICS: S.S.C03.Rsp + verification: | + ./chip-tool scenes remove-all-scenes 0x0001 1 1 + + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003 + CHIP:TOO: RemoveAllScenesResponse: { + CHIP:TOO: status: 0 + CHIP:TOO: groupID: 1 + CHIP:TOO: } + 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 + (MaxRemainingCapacity)." + PICS: S.S.A0007 + verification: | + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536935 + CHIP:TOO: RemainingCapacity: 8 + disabled: true + + - label: + "Step 10: 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" + verification: | + ./chip-tool groupkeymanagement key-set-remove 1 1 0 + + [1688019719.867880][1746:1748] CHIP:DMG: }, + [1688019719.867923][1746:1748] CHIP:DMG: + [1688019719.867956][1746:1748] CHIP:DMG: StatusIB = + [1688019719.867995][1746:1748] CHIP:DMG: { + [1688019719.868033][1746:1748] CHIP:DMG: status = 0x00 (SUCCESS), + [1688019719.868071][1746:1748] CHIP:DMG: }, + disabled: true 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 new file mode 100644 index 00000000000000..54407196bc8f9d --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_S_2_6.yaml @@ -0,0 +1,252 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 132.2.6. [TC-S-2.6] RemainingCapacity functionality with DUT as Server - + Multi-Fabric + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1a: 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:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003 + CHIP:TOO: RemoveAllScenesResponse: { + CHIP:TOO: status: 0 + CHIP:TOO: groupID: 0 + CHIP:TOO: } + disabled: true + + - 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 + 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:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0006 DataVersion: 2793536935 + CHIP:TOO: SceneTableSize: 16 + disabled: true + + - label: + "Step 2b: TH1 sends a subscription request action for + RemainingCapacity to the DUT." + PICS: S.S.A0007 + verification: | + ./chip-tool interactive start + + >> scenes subscribe remaining-capacity 10 100 1 1 --keepSubscriptions 1 + + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536968 + CHIP:TOO: RemainingCapacity: 8 + CHIP:DMG: MoveToState ReadClient[0xffff94002990]: Moving to [AwaitingSu] + CHIP:EM: <<< [E:32066i S:31983 M:88286544 (Ack:232770518)] (S) Msg TX to 1:0000000000000001 [573B] --- Type 0001:01 (IM:StatusResponse) + CHIP:IN: (S) Sending msg 88286544 on secure session with LSID: 31983 + CHIP:EM: >>> [E:32066i S:31983 M:232770519 (Ack:88286544)] (S) Msg RX from 1:0000000000000001 [573B] --- Type 0001:04 (IM:SubscribeResponse) + CHIP:EM: Found matching exchange: 32066i, Delegate: 0xffff940029a0 + CHIP:EM: Rxd Ack; Removing MessageCounter:88286544 from Retrans Table on exchange 32066i + CHIP:DMG: SubscribeResponse is received + CHIP:DMG: SubscribeResponseMessage = + CHIP:DMG: { + CHIP:DMG: SubscriptionId = 0xf2e8c40c, + CHIP:DMG: MaxInterval = 0x64, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: } + disabled: true + + - label: + "Step 2c: Keep subscription session active for the remaining of the + test" + verification: | + + 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 + TH3: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536968 + CHIP:TOO: RemainingCapacity: 8 + 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." + PICS: S.S.C00.Rsp + verification: | + ./chip-tool scenes add-scene 0x0000 0x1 0x0014 scene1 [] 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: 1 + CHIP:TOO: } + disabled: true + + - label: + "Step 4a: TH1 sends AddScene command to DUT with same GroupID and + SceneID value starting at 2 and incrementing for each iteration for + RemainingCapacity1 more times until reported value to TH1 (after + MinIntervalFloor) for RemainingCapacity becomes 0." + PICS: S.S.C00.Rsp && S.S.A0007 + verification: | + ./chip-tool scenes add-scene 0x0000 0x2 0x0014 scene2 [] 1 1 + + Repeat till RemainingCapacity is 0 + 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 + field sets." + PICS: S.S.C00.Rsp + verification: | + ./chip-tool scenes add-scene 0x0000 0x10 0x0014 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: } + disabled: true + + - label: "Step 5a: Repeat Step 4a with TH2" + PICS: S.S.C00.Rsp && S.S.A0007 + verification: | + ./chip-tool scenes add-scene 0x0000 0x1 0x0014 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: } + + TH2: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536968 + CHIP:TOO: RemainingCapacity: 7 + TH3: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536968 + CHIP:TOO: RemainingCapacity: 7 + + Repeat on TH2 till RemainingCapacity reaches 0 + TH2: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536968 + CHIP:TOO: RemainingCapacity: 0 + TH3: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536968 + CHIP:TOO: RemainingCapacity: 0 + 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:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0000 + CHIP:TOO: AddSceneResponse: { + CHIP:TOO: status: 137 + CHIP:TOO: groupID: 0 + CHIP:TOO: sceneID: 17 + 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." + PICS: S.S.C00.Rsp + verification: | + ./chip-tool scenes add-scene 0x0000 0x12 0x0014 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: } + disabled: true + + - label: + "Step 7a: 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:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003 + CHIP:TOO: RemoveAllScenesResponse: { + CHIP:TOO: status: 0 + CHIP:TOO: groupID: 0 + CHIP:TOO: } + disabled: true + + - label: + "Step 7b: Verify that the DUT sends a report data to TH1 for + RemainingCapacity after the MinIntervalFloor time; store this value + into RemainingCapacity1; verify RemainingCapacity1 equals + (MaxRemainingCapacity)." + PICS: S.S.A0007 + verification: | + CHIP:DMG: ReportDataMessage = + CHIP:DMG: { + CHIP:DMG: SubscriptionId = 0xa9f0f186, + CHIP:DMG: InteractionModelRevision = 1 + CHIP:DMG: } + disabled: true + + - label: + "Step 8a: 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:TOO: Endpoint: 1 Cluster: 0x0000_0005 Command 0x0000_0003 + CHIP:TOO: RemoveAllScenesResponse: { + CHIP:TOO: status: 0 + CHIP:TOO: groupID: 0 + CHIP:TOO: } + 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 + verification: | + TH2: + CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0005 Attribute 0x0000_0007 DataVersion: 2793536968 + CHIP:TOO: RemainingCapacity: 8 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_S_3_1.yaml b/src/app/tests/suites/certification/Test_TC_S_3_1.yaml index 7523eb6e9fed07..3bc443f3cb3866 100644 --- a/src/app/tests/suites/certification/Test_TC_S_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_S_3_1.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Project CHIP Authors +# 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. @@ -13,7 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 123.3.1. [TC-S-3.1] Functionality with client as DUT +name: 132.3.1. [TC-S-3.1] Functionality with DUT as Client PICS: - S.C @@ -28,96 +28,581 @@ config: endpoint: 0 tests: - - label: "read mandatory attributes" - verification: | - read mandatory attributes - disabled: true - - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" + "Step 1: DUT reads all supported mandatory attributes from TH one at a + time in a manufacturer specific order." + PICS: S.C.AM-READ verification: | - - TH receives the read command and knows this attribute for this cluster and provides a plausible value. - DUT processes the values and operates normally (does not crash, continues with next steps) - disabled: true + ./chip-tool scenes read scene-count 1 1 - - label: - "read optional attributes (TH simulates a server cluster which - supports all optional attributes)" - verification: | - read optional attributes (TH simulates a server cluster which supports all optional attributes) - disabled: true + [1689664978.443091][2339:2341] CHIP:DMG: ReportDataMessage = + [1689664978.443128][2339:2341] CHIP:DMG: { + [1689664978.443156][2339:2341] CHIP:DMG: AttributeReportIBs = + [1689664978.443196][2339:2341] CHIP:DMG: [ + [1689664978.443226][2339:2341] CHIP:DMG: AttributeReportIB = + [1689664978.443268][2339:2341] CHIP:DMG: { + [1689664978.443300][2339:2341] CHIP:DMG: AttributeDataIB = + [1689664978.443341][2339:2341] CHIP:DMG: { + [1689664978.443381][2339:2341] CHIP:DMG: DataVersion = 0xff333f87, + [1689664978.443420][2339:2341] CHIP:DMG: AttributePathIB = + [1689664978.443462][2339:2341] CHIP:DMG: { + [1689664978.443503][2339:2341] CHIP:DMG: Endpoint = 0x1, + [1689664978.443546][2339:2341] CHIP:DMG: Cluster = 0x5, + [1689664978.443589][2339:2341] CHIP:DMG: Attribute = 0x0000_0000, + [1689664978.443630][2339:2341] CHIP:DMG: } + [1689664978.443672][2339:2341] CHIP:DMG: + [1689664978.443714][2339:2341] CHIP:DMG: Data = 0, + [1689664978.443752][2339:2341] CHIP:DMG: }, + [1689664978.443793][2339:2341] CHIP:DMG: + [1689664978.443857][2339:2341] CHIP:DMG: }, + [1689664978.443900][2339:2341] CHIP:DMG: + [1689664978.443929][2339:2341] CHIP:DMG: ], + [1689664978.443968][2339:2341] CHIP:DMG: + [1689664978.443999][2339:2341] CHIP:DMG: SuppressResponse = true, + [1689664978.444030][2339:2341] CHIP:DMG: InteractionModelRevision = 1 + [1689664978.444059][2339:2341] CHIP:DMG: } - - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" - verification: | - - TH receives the read command and provides a plausible value - DUT processes the values and operates normally (does not crash, continues with next steps) - disabled: true + ./chip-tool scenes read current-scene 1 1 - - label: "write mandatory attributes" - verification: | - write mandatory attributes - disabled: true + [1689664981.268319][2343:2346] CHIP:DMG: ReportDataMessage = + [1689664981.268356][2343:2346] CHIP:DMG: { + [1689664981.268420][2343:2346] CHIP:DMG: AttributeReportIBs = + [1689664981.268462][2343:2346] CHIP:DMG: [ + [1689664981.268492][2343:2346] CHIP:DMG: AttributeReportIB = + [1689664981.268530][2343:2346] CHIP:DMG: { + [1689664981.268561][2343:2346] CHIP:DMG: AttributeDataIB = + [1689664981.268595][2343:2346] CHIP:DMG: { + [1689664981.268631][2343:2346] CHIP:DMG: DataVersion = 0xff333f87, + [1689664981.268666][2343:2346] CHIP:DMG: AttributePathIB = + [1689664981.268703][2343:2346] CHIP:DMG: { + [1689664981.268740][2343:2346] CHIP:DMG: Endpoint = 0x1, + [1689664981.268779][2343:2346] CHIP:DMG: Cluster = 0x5, + [1689664981.268817][2343:2346] CHIP:DMG: Attribute = 0x0000_0001, + [1689664981.268854][2343:2346] CHIP:DMG: } + [1689664981.268893][2343:2346] CHIP:DMG: + [1689664981.268932][2343:2346] CHIP:DMG: Data = 0, + [1689664981.268966][2343:2346] CHIP:DMG: }, + [1689664981.269003][2343:2346] CHIP:DMG: + [1689664981.269033][2343:2346] CHIP:DMG: }, + [1689664981.269068][2343:2346] CHIP:DMG: + [1689664981.269095][2343:2346] CHIP:DMG: ], + [1689664981.269131][2343:2346] CHIP:DMG: + [1689664981.269160][2343:2346] CHIP:DMG: SuppressResponse = true, + [1689664981.269189][2343:2346] CHIP:DMG: InteractionModelRevision = 1 + [1689664981.269216][2343:2346] CHIP:DMG: } - - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" - verification: | - TH receives the write command, checks whether the value is valid. If value invalid, provide appropriate feedback to DUT and flag test as FAIL - DUT operates normally (does not crash, continues with next steps) - disabled: true - - label: - "write optional attributes (TH simulates a server cluster which - supports all optional attributes)" - verification: | - write optional attributes (TH simulates a server cluster which supports all optional attributes) + ./chip-tool scenes read current-group 1 1 + + [1689664983.848116][2348:2351] CHIP:DMG: ReportDataMessage = + [1689664983.848153][2348:2351] CHIP:DMG: { + [1689664983.848182][2348:2351] CHIP:DMG: AttributeReportIBs = + [1689664983.848226][2348:2351] CHIP:DMG: [ + [1689664983.848257][2348:2351] CHIP:DMG: AttributeReportIB = + [1689664983.848296][2348:2351] CHIP:DMG: { + [1689664983.848326][2348:2351] CHIP:DMG: AttributeDataIB = + [1689664983.848364][2348:2351] CHIP:DMG: { + [1689664983.848400][2348:2351] CHIP:DMG: DataVersion = 0xff333f87, + [1689664983.848437][2348:2351] CHIP:DMG: AttributePathIB = + [1689664983.848475][2348:2351] CHIP:DMG: { + [1689664983.848513][2348:2351] CHIP:DMG: Endpoint = 0x1, + [1689664983.848553][2348:2351] CHIP:DMG: Cluster = 0x5, + [1689664983.848593][2348:2351] CHIP:DMG: Attribute = 0x0000_0002, + [1689664983.848631][2348:2351] CHIP:DMG: } + [1689664983.848671][2348:2351] CHIP:DMG: + [1689664983.848710][2348:2351] CHIP:DMG: Data = 0, + [1689664983.848745][2348:2351] CHIP:DMG: }, + [1689664983.848783][2348:2351] CHIP:DMG: + [1689664983.848813][2348:2351] CHIP:DMG: }, + [1689664983.848850][2348:2351] CHIP:DMG: + [1689664983.848877][2348:2351] CHIP:DMG: ], + [1689664983.848913][2348:2351] CHIP:DMG: + [1689664983.848941][2348:2351] CHIP:DMG: SuppressResponse = true, + [1689664983.848970][2348:2351] CHIP:DMG: InteractionModelRevision = 1 + [1689664983.848997][2348:2351] CHIP:DMG: } + + + ./chip-tool scenes read scene-valid 1 1 + + [1689664986.197422][2352:2354] CHIP:DMG: ReportDataMessage = + [1689664986.197461][2352:2354] CHIP:DMG: { + [1689664986.197492][2352:2354] CHIP:DMG: AttributeReportIBs = + [1689664986.197534][2352:2354] CHIP:DMG: [ + [1689664986.197565][2352:2354] CHIP:DMG: AttributeReportIB = + [1689664986.197610][2352:2354] CHIP:DMG: { + [1689664986.197643][2352:2354] CHIP:DMG: AttributeDataIB = + [1689664986.197682][2352:2354] CHIP:DMG: { + [1689664986.197722][2352:2354] CHIP:DMG: DataVersion = 0xff333f87, + [1689664986.197762][2352:2354] CHIP:DMG: AttributePathIB = + [1689664986.197803][2352:2354] CHIP:DMG: { + [1689664986.197845][2352:2354] CHIP:DMG: Endpoint = 0x1, + [1689664986.197889][2352:2354] CHIP:DMG: Cluster = 0x5, + [1689664986.197935][2352:2354] CHIP:DMG: Attribute = 0x0000_0003, + [1689664986.197978][2352:2354] CHIP:DMG: } + [1689664986.198021][2352:2354] CHIP:DMG: + [1689664986.198064][2352:2354] CHIP:DMG: Data = false, + [1689664986.198102][2352:2354] CHIP:DMG: }, + [1689664986.198144][2352:2354] CHIP:DMG: + [1689664986.198177][2352:2354] CHIP:DMG: }, + [1689664986.198217][2352:2354] CHIP:DMG: + [1689664986.198247][2352:2354] CHIP:DMG: ], + [1689664986.198285][2352:2354] CHIP:DMG: + [1689664986.198315][2352:2354] CHIP:DMG: SuppressResponse = true, + [1689664986.198347][2352:2354] CHIP:DMG: InteractionModelRevision = 1 + [1689664986.198376][2352:2354] CHIP:DMG: } + + ./chip-tool scenes read name-support 1 1 + + [1689664990.166849][2355:2357] CHIP:DMG: ReportDataMessage = + [1689664990.166908][2355:2357] CHIP:DMG: { + [1689664990.166933][2355:2357] CHIP:DMG: AttributeReportIBs = + [1689664990.166966][2355:2357] CHIP:DMG: [ + [1689664990.166992][2355:2357] CHIP:DMG: AttributeReportIB = + [1689664990.167030][2355:2357] CHIP:DMG: { + [1689664990.167058][2355:2357] CHIP:DMG: AttributeDataIB = + [1689664990.167090][2355:2357] CHIP:DMG: { + [1689664990.167125][2355:2357] CHIP:DMG: DataVersion = 0xff333f87, + [1689664990.167157][2355:2357] CHIP:DMG: AttributePathIB = + [1689664990.167193][2355:2357] CHIP:DMG: { + [1689664990.167228][2355:2357] CHIP:DMG: Endpoint = 0x1, + [1689664990.167265][2355:2357] CHIP:DMG: Cluster = 0x5, + [1689664990.167302][2355:2357] CHIP:DMG: Attribute = 0x0000_0004, + [1689664990.167338][2355:2357] CHIP:DMG: } + [1689664990.167374][2355:2357] CHIP:DMG: + [1689664990.167410][2355:2357] CHIP:DMG: Data = 128, + [1689664990.167442][2355:2357] CHIP:DMG: }, + [1689664990.167477][2355:2357] CHIP:DMG: + [1689664990.167505][2355:2357] CHIP:DMG: }, + [1689664990.167538][2355:2357] CHIP:DMG: + [1689664990.167564][2355:2357] CHIP:DMG: ], + [1689664990.167596][2355:2357] CHIP:DMG: + [1689664990.167623][2355:2357] CHIP:DMG: SuppressResponse = true, + [1689664990.167650][2355:2357] CHIP:DMG: InteractionModelRevision = 1 + [1689664990.167674][2355:2357] CHIP:DMG: } + + ./chip-tool scenes read scene-table-size 1 1 + + [1689664998.402942][2361:2363] CHIP:DMG: ReportDataMessage = + [1689664998.402980][2361:2363] CHIP:DMG: { + [1689664998.403009][2361:2363] CHIP:DMG: AttributeReportIBs = + [1689664998.403051][2361:2363] CHIP:DMG: [ + [1689664998.403085][2361:2363] CHIP:DMG: AttributeReportIB = + [1689664998.403173][2361:2363] CHIP:DMG: { + [1689664998.403212][2361:2363] CHIP:DMG: AttributeDataIB = + [1689664998.403256][2361:2363] CHIP:DMG: { + [1689664998.403300][2361:2363] CHIP:DMG: DataVersion = 0xff333f87, + [1689664998.403341][2361:2363] CHIP:DMG: AttributePathIB = + [1689664998.403386][2361:2363] CHIP:DMG: { + [1689664998.403431][2361:2363] CHIP:DMG: Endpoint = 0x1, + [1689664998.403487][2361:2363] CHIP:DMG: Cluster = 0x5, + [1689664998.403534][2361:2363] CHIP:DMG: Attribute = 0x0000_0006, + [1689664998.403578][2361:2363] CHIP:DMG: } + [1689664998.403623][2361:2363] CHIP:DMG: + [1689664998.403669][2361:2363] CHIP:DMG: Data = 0, + [1689664998.403710][2361:2363] CHIP:DMG: }, + [1689664998.403756][2361:2363] CHIP:DMG: + [1689664998.403793][2361:2363] CHIP:DMG: }, + [1689664998.403868][2361:2363] CHIP:DMG: + [1689664998.403903][2361:2363] CHIP:DMG: ], + [1689664998.403947][2361:2363] CHIP:DMG: + [1689664998.403981][2361:2363] CHIP:DMG: SuppressResponse = true, + [1689664998.404016][2361:2363] CHIP:DMG: InteractionModelRevision = 1 + [1689664998.404048][2361:2363] CHIP:DMG: } + + ./chip-tool scenes read remaining-capacity 1 1 + + [1689665008.860825][2364:2366] CHIP:DMG: ReportDataMessage = + [1689665008.860866][2364:2366] CHIP:DMG: { + [1689665008.860922][2364:2366] CHIP:DMG: AttributeReportIBs = + [1689665008.860964][2364:2366] CHIP:DMG: [ + [1689665008.860995][2364:2366] CHIP:DMG: AttributeReportIB = + [1689665008.861039][2364:2366] CHIP:DMG: { + [1689665008.861072][2364:2366] CHIP:DMG: AttributeDataIB = + [1689665008.861108][2364:2366] CHIP:DMG: { + [1689665008.861147][2364:2366] CHIP:DMG: DataVersion = 0xff333f87, + [1689665008.861187][2364:2366] CHIP:DMG: AttributePathIB = + [1689665008.861228][2364:2366] CHIP:DMG: { + [1689665008.861269][2364:2366] CHIP:DMG: Endpoint = 0x1, + [1689665008.861312][2364:2366] CHIP:DMG: Cluster = 0x5, + [1689665008.861355][2364:2366] CHIP:DMG: Attribute = 0x0000_0007, + [1689665008.861396][2364:2366] CHIP:DMG: } + [1689665008.861438][2364:2366] CHIP:DMG: + [1689665008.861481][2364:2366] CHIP:DMG: Data = 0, + [1689665008.861518][2364:2366] CHIP:DMG: }, + [1689665008.861559][2364:2366] CHIP:DMG: + [1689665008.861592][2364:2366] CHIP:DMG: }, + [1689665008.861631][2364:2366] CHIP:DMG: + [1689665008.861660][2364:2366] CHIP:DMG: ], + [1689665008.861698][2364:2366] CHIP:DMG: + [1689665008.861729][2364:2366] CHIP:DMG: SuppressResponse = true, + [1689665008.861760][2364:2366] CHIP:DMG: InteractionModelRevision = 1 + [1689665008.861789][2364:2366] CHIP:DMG: } disabled: true - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" + "Step 2: DUT reads all supported optional attributes from TH one at a + time in a manufacturer specific order." + PICS: S.C.AO-READ verification: | - - TH receives the write command, checks whether the value is valid. If value invalid, provide appropriate feedback to DUT and flag test as FAIL - DUT operates normally (does not crash, continues with next steps) - disabled: true + ./chip-tool scenes read last-configured-by 1 1 - - label: "Change configuration - TH does not support optional attributes" - verification: | - Change configuration - TH does not support optional attributes + [1689664994.730050][2358:2360] CHIP:DMG: ReportDataMessage = + [1689664994.730079][2358:2360] CHIP:DMG: { + [1689664994.730102][2358:2360] CHIP:DMG: AttributeReportIBs = + [1689664994.730136][2358:2360] CHIP:DMG: [ + [1689664994.730162][2358:2360] CHIP:DMG: AttributeReportIB = + [1689664994.730201][2358:2360] CHIP:DMG: { + [1689664994.730229][2358:2360] CHIP:DMG: AttributeDataIB = + [1689664994.730262][2358:2360] CHIP:DMG: { + [1689664994.730296][2358:2360] CHIP:DMG: DataVersion = 0xff333f87, + [1689664994.730329][2358:2360] CHIP:DMG: AttributePathIB = + [1689664994.730364][2358:2360] CHIP:DMG: { + [1689664994.730399][2358:2360] CHIP:DMG: Endpoint = 0x1, + [1689664994.730437][2358:2360] CHIP:DMG: Cluster = 0x5, + [1689664994.730473][2358:2360] CHIP:DMG: Attribute = 0x0000_0005, + [1689664994.730508][2358:2360] CHIP:DMG: } + [1689664994.730544][2358:2360] CHIP:DMG: + [1689664994.730580][2358:2360] CHIP:DMG: Data = NULL + [1689664994.730610][2358:2360] CHIP:DMG: }, + [1689664994.730646][2358:2360] CHIP:DMG: + [1689664994.730674][2358:2360] CHIP:DMG: }, + [1689664994.730707][2358:2360] CHIP:DMG: + [1689664994.730732][2358:2360] CHIP:DMG: ], + [1689664994.730765][2358:2360] CHIP:DMG: + [1689664994.730791][2358:2360] CHIP:DMG: SuppressResponse = true, + [1689664994.730818][2358:2360] CHIP:DMG: InteractionModelRevision = 1 + [1689664994.730843][2358:2360] CHIP:DMG: } disabled: true - label: - "Configure TH such that it implements mandatory and none of the - optional attributes of the server-side of the cluster, and that it - also reflects this in global attributes such as FeatureMap and - AttributeList. Commission DUT to TH again" + "Step 3: DUT writes a suitable value to all supported mandatory + attributes on the TH one at a time in a manufacturer specific order." + PICS: S.C.AM-WRITE verification: | - DUT is aware of the new configuration. + This cluster doesn't have any writable attributes disabled: true - label: - "read optional attributes (TH simulates a server cluster which does - not support any optional attributes)" + "Step 4: DUT writes a suitable value to all supported optional + attributes on the TH one at a time in a manufacturer specific order." + PICS: S.C.AO-WRITE verification: | - read optional attributes (TH simulates a server cluster which does not support any optional attributes) + This cluster doesn't have any writable attributes disabled: true - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" + "Step 5: Configure TH such that it implements mandatory and none of + the optional attributes of the server-side of the cluster, and that it + also reflects this in global attributes such as FeatureMap and + AttributeList. Commission DUT to TH again." verification: | - - TH receives the read command, and responds that this attribute is not available - DUT processes the error response and operates normally (does not crash, continues with next steps) Alternative allowed DUT behavior: - DUT is aware (from the global attributes it may have read in step 5) that the optional attributes are not available, and does not issue read requests for the attributes which it did read in step 2 + ./chip-tool scenes read attribute-list 1 1 + + [1689666789.967807][4742:4744] CHIP:DMG: ReportDataMessage = + [1689666789.967886][4742:4744] CHIP:DMG: { + [1689666789.967916][4742:4744] CHIP:DMG: AttributeReportIBs = + [1689666789.967966][4742:4744] CHIP:DMG: [ + [1689666789.967997][4742:4744] CHIP:DMG: AttributeReportIB = + [1689666789.968046][4742:4744] CHIP:DMG: { + [1689666789.968079][4742:4744] CHIP:DMG: AttributeDataIB = + [1689666789.968117][4742:4744] CHIP:DMG: { + [1689666789.968158][4742:4744] CHIP:DMG: DataVersion = 0xf12a63c8, + [1689666789.968197][4742:4744] CHIP:DMG: AttributePathIB = + [1689666789.968238][4742:4744] CHIP:DMG: { + [1689666789.968279][4742:4744] CHIP:DMG: Endpoint = 0x1, + [1689666789.968322][4742:4744] CHIP:DMG: Cluster = 0x5, + [1689666789.968366][4742:4744] CHIP:DMG: Attribute = 0x0000_FFFB, + [1689666789.968407][4742:4744] CHIP:DMG: } + [1689666789.968449][4742:4744] CHIP:DMG: + [1689666789.968488][4742:4744] CHIP:DMG: Data = [ + [1689666789.968579][4742:4744] CHIP:DMG: 0, 1, 2, 3, 4, 5, 6, 7, 65528, 65529, 65530, 65531, 65532, 65533, + [1689666789.968630][4742:4744] CHIP:DMG: ], + [1689666789.968668][4742:4744] CHIP:DMG: }, + [1689666789.968716][4742:4744] CHIP:DMG: + [1689666789.968749][4742:4744] CHIP:DMG: }, + [1689666789.968795][4742:4744] CHIP:DMG: + [1689666789.968825][4742:4744] CHIP:DMG: ], + [1689666789.968871][4742:4744] CHIP:DMG: + [1689666789.968902][4742:4744] CHIP:DMG: SuppressResponse = true, + [1689666789.968934][4742:4744] CHIP:DMG: InteractionModelRevision = 1 + [1689666789.968963][4742:4744] CHIP:DMG: } + + + ./chip-tool scenes read feature-map 1 1 + + [1689666905.399488][4746:4748] CHIP:DMG: ReportDataMessage = + [1689666905.399526][4746:4748] CHIP:DMG: { + [1689666905.399556][4746:4748] CHIP:DMG: AttributeReportIBs = + [1689666905.399600][4746:4748] CHIP:DMG: [ + [1689666905.399632][4746:4748] CHIP:DMG: AttributeReportIB = + [1689666905.399680][4746:4748] CHIP:DMG: { + [1689666905.399715][4746:4748] CHIP:DMG: AttributeDataIB = + [1689666905.399761][4746:4748] CHIP:DMG: { + [1689666905.399799][4746:4748] CHIP:DMG: DataVersion = 0xf12a63c8, + [1689666905.399868][4746:4748] CHIP:DMG: AttributePathIB = + [1689666905.399908][4746:4748] CHIP:DMG: { + [1689666905.399951][4746:4748] CHIP:DMG: Endpoint = 0x1, + [1689666905.399994][4746:4748] CHIP:DMG: Cluster = 0x5, + [1689666905.400038][4746:4748] CHIP:DMG: Attribute = 0x0000_FFFC, + [1689666905.400079][4746:4748] CHIP:DMG: } + [1689666905.400121][4746:4748] CHIP:DMG: + [1689666905.400163][4746:4748] CHIP:DMG: Data = 1, + [1689666905.400200][4746:4748] CHIP:DMG: }, + [1689666905.400281][4746:4748] CHIP:DMG: + [1689666905.400316][4746:4748] CHIP:DMG: }, + [1689666905.400355][4746:4748] CHIP:DMG: + [1689666905.400385][4746:4748] CHIP:DMG: ], + [1689666905.400424][4746:4748] CHIP:DMG: + [1689666905.400455][4746:4748] CHIP:DMG: SuppressResponse = true, + [1689666905.400487][4746:4748] CHIP:DMG: InteractionModelRevision = 1 + [1689666905.400517][4746:4748] CHIP:DMG: } + + + ./chip-tool scenes read scene-count 1 1 + + [1689664978.443091][2339:2341] CHIP:DMG: ReportDataMessage = + [1689664978.443128][2339:2341] CHIP:DMG: { + [1689664978.443156][2339:2341] CHIP:DMG: AttributeReportIBs = + [1689664978.443196][2339:2341] CHIP:DMG: [ + [1689664978.443226][2339:2341] CHIP:DMG: AttributeReportIB = + [1689664978.443268][2339:2341] CHIP:DMG: { + [1689664978.443300][2339:2341] CHIP:DMG: AttributeDataIB = + [1689664978.443341][2339:2341] CHIP:DMG: { + [1689664978.443381][2339:2341] CHIP:DMG: DataVersion = 0xff333f87, + [1689664978.443420][2339:2341] CHIP:DMG: AttributePathIB = + [1689664978.443462][2339:2341] CHIP:DMG: { + [1689664978.443503][2339:2341] CHIP:DMG: Endpoint = 0x1, + [1689664978.443546][2339:2341] CHIP:DMG: Cluster = 0x5, + [1689664978.443589][2339:2341] CHIP:DMG: Attribute = 0x0000_0000, + [1689664978.443630][2339:2341] CHIP:DMG: } + [1689664978.443672][2339:2341] CHIP:DMG: + [1689664978.443714][2339:2341] CHIP:DMG: Data = 0, + [1689664978.443752][2339:2341] CHIP:DMG: }, + [1689664978.443793][2339:2341] CHIP:DMG: + [1689664978.443857][2339:2341] CHIP:DMG: }, + [1689664978.443900][2339:2341] CHIP:DMG: + [1689664978.443929][2339:2341] CHIP:DMG: ], + [1689664978.443968][2339:2341] CHIP:DMG: + [1689664978.443999][2339:2341] CHIP:DMG: SuppressResponse = true, + [1689664978.444030][2339:2341] CHIP:DMG: InteractionModelRevision = 1 + [1689664978.444059][2339:2341] CHIP:DMG: } + + ./chip-tool scenes read current-scene 1 1 + + [1689664981.268319][2343:2346] CHIP:DMG: ReportDataMessage = + [1689664981.268356][2343:2346] CHIP:DMG: { + [1689664981.268420][2343:2346] CHIP:DMG: AttributeReportIBs = + [1689664981.268462][2343:2346] CHIP:DMG: [ + [1689664981.268492][2343:2346] CHIP:DMG: AttributeReportIB = + [1689664981.268530][2343:2346] CHIP:DMG: { + [1689664981.268561][2343:2346] CHIP:DMG: AttributeDataIB = + [1689664981.268595][2343:2346] CHIP:DMG: { + [1689664981.268631][2343:2346] CHIP:DMG: DataVersion = 0xff333f87, + [1689664981.268666][2343:2346] CHIP:DMG: AttributePathIB = + [1689664981.268703][2343:2346] CHIP:DMG: { + [1689664981.268740][2343:2346] CHIP:DMG: Endpoint = 0x1, + [1689664981.268779][2343:2346] CHIP:DMG: Cluster = 0x5, + [1689664981.268817][2343:2346] CHIP:DMG: Attribute = 0x0000_0001, + [1689664981.268854][2343:2346] CHIP:DMG: } + [1689664981.268893][2343:2346] CHIP:DMG: + [1689664981.268932][2343:2346] CHIP:DMG: Data = 0, + [1689664981.268966][2343:2346] CHIP:DMG: }, + [1689664981.269003][2343:2346] CHIP:DMG: + [1689664981.269033][2343:2346] CHIP:DMG: }, + [1689664981.269068][2343:2346] CHIP:DMG: + [1689664981.269095][2343:2346] CHIP:DMG: ], + [1689664981.269131][2343:2346] CHIP:DMG: + [1689664981.269160][2343:2346] CHIP:DMG: SuppressResponse = true, + [1689664981.269189][2343:2346] CHIP:DMG: InteractionModelRevision = 1 + [1689664981.269216][2343:2346] CHIP:DMG: } + + + ./chip-tool scenes read current-group 1 1 + + [1689664983.848116][2348:2351] CHIP:DMG: ReportDataMessage = + [1689664983.848153][2348:2351] CHIP:DMG: { + [1689664983.848182][2348:2351] CHIP:DMG: AttributeReportIBs = + [1689664983.848226][2348:2351] CHIP:DMG: [ + [1689664983.848257][2348:2351] CHIP:DMG: AttributeReportIB = + [1689664983.848296][2348:2351] CHIP:DMG: { + [1689664983.848326][2348:2351] CHIP:DMG: AttributeDataIB = + [1689664983.848364][2348:2351] CHIP:DMG: { + [1689664983.848400][2348:2351] CHIP:DMG: DataVersion = 0xff333f87, + [1689664983.848437][2348:2351] CHIP:DMG: AttributePathIB = + [1689664983.848475][2348:2351] CHIP:DMG: { + [1689664983.848513][2348:2351] CHIP:DMG: Endpoint = 0x1, + [1689664983.848553][2348:2351] CHIP:DMG: Cluster = 0x5, + [1689664983.848593][2348:2351] CHIP:DMG: Attribute = 0x0000_0002, + [1689664983.848631][2348:2351] CHIP:DMG: } + [1689664983.848671][2348:2351] CHIP:DMG: + [1689664983.848710][2348:2351] CHIP:DMG: Data = 0, + [1689664983.848745][2348:2351] CHIP:DMG: }, + [1689664983.848783][2348:2351] CHIP:DMG: + [1689664983.848813][2348:2351] CHIP:DMG: }, + [1689664983.848850][2348:2351] CHIP:DMG: + [1689664983.848877][2348:2351] CHIP:DMG: ], + [1689664983.848913][2348:2351] CHIP:DMG: + [1689664983.848941][2348:2351] CHIP:DMG: SuppressResponse = true, + [1689664983.848970][2348:2351] CHIP:DMG: InteractionModelRevision = 1 + [1689664983.848997][2348:2351] CHIP:DMG: } + + + ./chip-tool scenes read scene-valid 1 1 + + [1689664986.197422][2352:2354] CHIP:DMG: ReportDataMessage = + [1689664986.197461][2352:2354] CHIP:DMG: { + [1689664986.197492][2352:2354] CHIP:DMG: AttributeReportIBs = + [1689664986.197534][2352:2354] CHIP:DMG: [ + [1689664986.197565][2352:2354] CHIP:DMG: AttributeReportIB = + [1689664986.197610][2352:2354] CHIP:DMG: { + [1689664986.197643][2352:2354] CHIP:DMG: AttributeDataIB = + [1689664986.197682][2352:2354] CHIP:DMG: { + [1689664986.197722][2352:2354] CHIP:DMG: DataVersion = 0xff333f87, + [1689664986.197762][2352:2354] CHIP:DMG: AttributePathIB = + [1689664986.197803][2352:2354] CHIP:DMG: { + [1689664986.197845][2352:2354] CHIP:DMG: Endpoint = 0x1, + [1689664986.197889][2352:2354] CHIP:DMG: Cluster = 0x5, + [1689664986.197935][2352:2354] CHIP:DMG: Attribute = 0x0000_0003, + [1689664986.197978][2352:2354] CHIP:DMG: } + [1689664986.198021][2352:2354] CHIP:DMG: + [1689664986.198064][2352:2354] CHIP:DMG: Data = false, + [1689664986.198102][2352:2354] CHIP:DMG: }, + [1689664986.198144][2352:2354] CHIP:DMG: + [1689664986.198177][2352:2354] CHIP:DMG: }, + [1689664986.198217][2352:2354] CHIP:DMG: + [1689664986.198247][2352:2354] CHIP:DMG: ], + [1689664986.198285][2352:2354] CHIP:DMG: + [1689664986.198315][2352:2354] CHIP:DMG: SuppressResponse = true, + [1689664986.198347][2352:2354] CHIP:DMG: InteractionModelRevision = 1 + [1689664986.198376][2352:2354] CHIP:DMG: } + + ./chip-tool scenes read name-support 1 1 + + [1689664990.166849][2355:2357] CHIP:DMG: ReportDataMessage = + [1689664990.166908][2355:2357] CHIP:DMG: { + [1689664990.166933][2355:2357] CHIP:DMG: AttributeReportIBs = + [1689664990.166966][2355:2357] CHIP:DMG: [ + [1689664990.166992][2355:2357] CHIP:DMG: AttributeReportIB = + [1689664990.167030][2355:2357] CHIP:DMG: { + [1689664990.167058][2355:2357] CHIP:DMG: AttributeDataIB = + [1689664990.167090][2355:2357] CHIP:DMG: { + [1689664990.167125][2355:2357] CHIP:DMG: DataVersion = 0xff333f87, + [1689664990.167157][2355:2357] CHIP:DMG: AttributePathIB = + [1689664990.167193][2355:2357] CHIP:DMG: { + [1689664990.167228][2355:2357] CHIP:DMG: Endpoint = 0x1, + [1689664990.167265][2355:2357] CHIP:DMG: Cluster = 0x5, + [1689664990.167302][2355:2357] CHIP:DMG: Attribute = 0x0000_0004, + [1689664990.167338][2355:2357] CHIP:DMG: } + [1689664990.167374][2355:2357] CHIP:DMG: + [1689664990.167410][2355:2357] CHIP:DMG: Data = 128, + [1689664990.167442][2355:2357] CHIP:DMG: }, + [1689664990.167477][2355:2357] CHIP:DMG: + [1689664990.167505][2355:2357] CHIP:DMG: }, + [1689664990.167538][2355:2357] CHIP:DMG: + [1689664990.167564][2355:2357] CHIP:DMG: ], + [1689664990.167596][2355:2357] CHIP:DMG: + [1689664990.167623][2355:2357] CHIP:DMG: SuppressResponse = true, + [1689664990.167650][2355:2357] CHIP:DMG: InteractionModelRevision = 1 + [1689664990.167674][2355:2357] CHIP:DMG: } + + ./chip-tool scenes read scene-table-size 1 1 + + [1689664998.402942][2361:2363] CHIP:DMG: ReportDataMessage = + [1689664998.402980][2361:2363] CHIP:DMG: { + [1689664998.403009][2361:2363] CHIP:DMG: AttributeReportIBs = + [1689664998.403051][2361:2363] CHIP:DMG: [ + [1689664998.403085][2361:2363] CHIP:DMG: AttributeReportIB = + [1689664998.403173][2361:2363] CHIP:DMG: { + [1689664998.403212][2361:2363] CHIP:DMG: AttributeDataIB = + [1689664998.403256][2361:2363] CHIP:DMG: { + [1689664998.403300][2361:2363] CHIP:DMG: DataVersion = 0xff333f87, + [1689664998.403341][2361:2363] CHIP:DMG: AttributePathIB = + [1689664998.403386][2361:2363] CHIP:DMG: { + [1689664998.403431][2361:2363] CHIP:DMG: Endpoint = 0x1, + [1689664998.403487][2361:2363] CHIP:DMG: Cluster = 0x5, + [1689664998.403534][2361:2363] CHIP:DMG: Attribute = 0x0000_0006, + [1689664998.403578][2361:2363] CHIP:DMG: } + [1689664998.403623][2361:2363] CHIP:DMG: + [1689664998.403669][2361:2363] CHIP:DMG: Data = 0, + [1689664998.403710][2361:2363] CHIP:DMG: }, + [1689664998.403756][2361:2363] CHIP:DMG: + [1689664998.403793][2361:2363] CHIP:DMG: }, + [1689664998.403868][2361:2363] CHIP:DMG: + [1689664998.403903][2361:2363] CHIP:DMG: ], + [1689664998.403947][2361:2363] CHIP:DMG: + [1689664998.403981][2361:2363] CHIP:DMG: SuppressResponse = true, + [1689664998.404016][2361:2363] CHIP:DMG: InteractionModelRevision = 1 + [1689664998.404048][2361:2363] CHIP:DMG: } + + ./chip-tool scenes read remaining-capacity 1 1 + + [1689665008.860825][2364:2366] CHIP:DMG: ReportDataMessage = + [1689665008.860866][2364:2366] CHIP:DMG: { + [1689665008.860922][2364:2366] CHIP:DMG: AttributeReportIBs = + [1689665008.860964][2364:2366] CHIP:DMG: [ + [1689665008.860995][2364:2366] CHIP:DMG: AttributeReportIB = + [1689665008.861039][2364:2366] CHIP:DMG: { + [1689665008.861072][2364:2366] CHIP:DMG: AttributeDataIB = + [1689665008.861108][2364:2366] CHIP:DMG: { + [1689665008.861147][2364:2366] CHIP:DMG: DataVersion = 0xff333f87, + [1689665008.861187][2364:2366] CHIP:DMG: AttributePathIB = + [1689665008.861228][2364:2366] CHIP:DMG: { + [1689665008.861269][2364:2366] CHIP:DMG: Endpoint = 0x1, + [1689665008.861312][2364:2366] CHIP:DMG: Cluster = 0x5, + [1689665008.861355][2364:2366] CHIP:DMG: Attribute = 0x0000_0007, + [1689665008.861396][2364:2366] CHIP:DMG: } + [1689665008.861438][2364:2366] CHIP:DMG: + [1689665008.861481][2364:2366] CHIP:DMG: Data = 0, + [1689665008.861518][2364:2366] CHIP:DMG: }, + [1689665008.861559][2364:2366] CHIP:DMG: + [1689665008.861592][2364:2366] CHIP:DMG: }, + [1689665008.861631][2364:2366] CHIP:DMG: + [1689665008.861660][2364:2366] CHIP:DMG: ], + [1689665008.861698][2364:2366] CHIP:DMG: + [1689665008.861729][2364:2366] CHIP:DMG: SuppressResponse = true, + [1689665008.861760][2364:2366] CHIP:DMG: InteractionModelRevision = 1 + [1689665008.861789][2364:2366] CHIP:DMG: } disabled: true - label: - "write optional attributes (TH simulates a server cluster which does - not support any optional attributes)" + "Step 6: DUT reads all supported optional attributes from TH one at a + time in a manufacturer specific order." + PICS: S.C.AO-READ verification: | - write optional attributes (TH simulates a server cluster which does not support any optional attributes) + ./chip-tool scenes read last-configured-by 1 1 + + [1689666947.328580][4750:4752] CHIP:DMG: ReportDataMessage = + [1689666947.328619][4750:4752] CHIP:DMG: { + [1689666947.328650][4750:4752] CHIP:DMG: AttributeReportIBs = + [1689666947.328692][4750:4752] CHIP:DMG: [ + [1689666947.328723][4750:4752] CHIP:DMG: AttributeReportIB = + [1689666947.328771][4750:4752] CHIP:DMG: { + [1689666947.328806][4750:4752] CHIP:DMG: AttributeDataIB = + [1689666947.328851][4750:4752] CHIP:DMG: { + [1689666947.328892][4750:4752] CHIP:DMG: DataVersion = 0xf12a63c8, + [1689666947.328932][4750:4752] CHIP:DMG: AttributePathIB = + [1689666947.328974][4750:4752] CHIP:DMG: { + [1689666947.329015][4750:4752] CHIP:DMG: Endpoint = 0x1, + [1689666947.329060][4750:4752] CHIP:DMG: Cluster = 0x5, + [1689666947.329105][4750:4752] CHIP:DMG: Attribute = 0x0000_0005, + [1689666947.329146][4750:4752] CHIP:DMG: } + [1689666947.329189][4750:4752] CHIP:DMG: + [1689666947.329231][4750:4752] CHIP:DMG: Data = NULL + [1689666947.329270][4750:4752] CHIP:DMG: }, + [1689666947.329312][4750:4752] CHIP:DMG: + [1689666947.329346][4750:4752] CHIP:DMG: }, + [1689666947.329386][4750:4752] CHIP:DMG: + [1689666947.329416][4750:4752] CHIP:DMG: ], + [1689666947.329455][4750:4752] CHIP:DMG: + [1689666947.329486][4750:4752] CHIP:DMG: SuppressResponse = true, + [1689666947.329518][4750:4752] CHIP:DMG: InteractionModelRevision = 1 + [1689666947.329547][4750:4752] CHIP:DMG: } disabled: true - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" + "Step 7: DUT writes a suitable value to all supported optional + attributes on the TH one at a time in a manufacturer specific order." + PICS: S.C.AO-WRITE verification: | - - TH receives the write command and responds that this attribute is not available - DUT processes the error response and operates normally (does not crash, continues with next steps if any) Alternative allowed DUT behavior: - DUT is aware (from the global attributes it may have read in step 5) that the optional attributes are not available, and does not issue write requests for the attributes which it did write in step 4 + This cluster doesn't have any writable attributes disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCCM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TCCM_1_1.yaml new file mode 100644 index 00000000000000..c6b39dba4f8fa3 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCCM_1_1.yaml @@ -0,0 +1,94 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 219.1.1. [TC-TCCM-1.1] Global attributes with DUT as Server + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute." + verification: | + Verify that the DUT response contains the ClusterRevision attribute and has the value 1. + disabled: true + + - label: "Step 3: TH reads from the DUT the FeatureMap attribute." + verification: | + Verify that the DUT response contains the FeatureMap attribute and have the following bit set: + + bit 0: SHALL be 1 if and only if TCCM.S.F00(DEPONOFF) + disabled: true + + - label: "Step 4: TH reads from the DUT the AttributeList attribute." + verification: | + Verify that the DUT response contains the AttributeList attribute and have the list of supported attributes: + + The list SHALL include all the mandatory entries: + 0x0000, 0x0001, 0xfff8, 0xfff9, 0xfffa, 0xfffb, 0xfffc & 0xfffd. + + The list MAY include these optional entries: + - 0x0002: SHALL be included if and only if TCCM.S.A0002(StartUpMode) + + The list include entries based on feature support: + + + 0x0003 SHALL be included if and only if TCCM.S.F00(DEPONOFF) + + + and SHALL NOT be included otherwise. + + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_4FFF) and (0x0000_F000 - 0x0000_FFFE) + + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_4FFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_5000 - 0x0000_EFFF and 0x0000_FFFF), (0xXXXX_5000 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true + + - label: "Step 5: TH reads from the DUT the AcceptedCommandList attribute." + verification: | + Verify that the DUT response contains the AcceptedCommandList attribute and have the list of Accepted Command: + The list SHALL include all the mandatory entries: + + 0x00 + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true + + - label: "Step 6: TH reads from the DUT the GeneratedCommandList attribute." + verification: | + Verify that the DUT response contains the GeneratedCommandList attribute and have the list of Generated Command: + The list SHALL include all the mandatory entries: + + 0x01 + The list SHALL NOT contain any additional values in the standard or scoped range: (0x0000_0000 - 0x0000_00FF) + + The list MAY contain values in the Manufacturer Extensible Identifier (MEI) range: (0xXXXX_0000 - 0xXXXX_00FF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1), these values SHALL be ignored. + + The list SHALL NOT contain any values in the Test Vendor or invalid range: (0x0000_0100 - 0x0000_FFFF), (0xXXXX_0100 - 0xXXXX_FFFF) and (0xFFF1_0000 - 0xFFFF_FFFF), where XXXX is the allowed MEI range (0x0001 - 0xFFF1) + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCCM_1_2.yaml b/src/app/tests/suites/certification/Test_TC_TCCM_1_2.yaml new file mode 100644 index 00000000000000..7dec81834b44c9 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCCM_1_2.yaml @@ -0,0 +1,75 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 219.1.2. [TC-TCCM-1.2] Cluster attributes with DUT as Server + +PICS: + - TCCM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: TCCM.S.A0000 + verification: | + Verify that the DUT response contains a list of ModeOptionsStruct entries + + Verify that the list has at least one entry + + Verify that each ModeOptionsStruct entry has a unique Mode field value + + Verify that each ModeOptionsStruct entry has a unique Label field value + + Verify that each ModeOptionsStruct entry’s ModeTags field, if not empty, has: + the values of the Value fields that are not larger than 16 bits + + for each Value field: Is the semantic tag value a defined common tag value (Auto(0x0000), Quick(0x0001), Quiet(0x0002), LowNoise(0x0003), LowEnergy(0x0004), Vacation(0x0005), Min(0x0006), Max(0x0007), Night(0x0008), Day(0x0009)) or a defined cluster alias tag value (RapidCool, RapidFreeze) or in the MfgTags (0x8000 to 0xBFFF) range + + if the Value field is in the MfgTags (0x8000 to 0xBFFF) range, the TagName field is a string with a length between 1 and 64 + + + + Verify that at least one ModeOptionsStruct entry includes either the RapidCool semantic tag or the RapidFreeze semantic tag in the SemanticTags field + + Save the Mode field values as supported_modes_dut + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer from supported_modes_dut + disabled: true + + - label: "Step 4: TH reads from the DUT the OnMode attribute." + PICS: TCCM.S.A0003 + verification: | + Verify that the DUT response contains an integer from supported_modes_dut + disabled: true + + - label: "Step 5: TH reads from the DUT the StartUpMode attribute." + PICS: TCCM.S.A0002 + verification: | + Verify that the DUT response contains an integer from supported_modes_dut + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCCM_2_1.yaml b/src/app/tests/suites/certification/Test_TC_TCCM_2_1.yaml new file mode 100644 index 00000000000000..1978da84910f03 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCCM_2_1.yaml @@ -0,0 +1,140 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 219.2.1. [TC-TCCM-2.1] ChangeToMode verification with DUT as Server + +PICS: + - TCCM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the SupportedModes attribute." + PICS: TCCM.S.A0000 + verification: | + Verify that the DUT response contains a list of ModeOptionsStruct entries + + Verify that the list has two or more entries + + Save the Mode field values as supported_modes_dut + disabled: true + + - label: "Step 2: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + + Select a value which is NOT in supported_modes_dut and save it as invalid_mode_th + disabled: true + + - label: + "Step 3: TH sends a ChangeToMode command to the DUT with NewMode set + to old_current_mode_dut" + PICS: TCCM.S.C00.Rsp + verification: | + Verify that the DUT response contains a ChangeToModeResponse command w/ data fields: * Status, set to Success(0x00). + disabled: true + + - label: + "Step 4: Manually put the device in a state from which it will FAIL to + transition to PIXIT.TCCM.MODE_CHANGE_FAIL" + verification: | + + disabled: true + + - label: "Step 5: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + disabled: true + + - label: + "Step 6: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.TCCM.MODE_CHANGE_FAIL" + PICS: TCCM.S.C00.Rsp + verification: | + Verify that the DUT responds with a ChangeToModeResponse command. + + Verify that the Status field is set to GenericFailure(0x02) or in the MfgCodes (0x80 to 0xBF) range + + Verify that the StatusText field has a length between 1 and 64 + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer value equal to old_current_mode_dut + disabled: true + + - label: + "Step 8: Manually put the device in a state from which it will + SUCCESSFULLY transition to PIXIT.TCCM.MODE_CHANGE_OK" + verification: | + + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + disabled: true + + - label: + "Step 10: TH sends a ChangeToMode command to the DUT with NewMode set + to PIXIT.TCCM.MODE_CHANGE_OK" + PICS: TCCM.S.C00.Rsp + verification: | + Verify that the DUT responds with a ChangeToModeResponse command. + + Verify that the Status field is set to Success(0x00) + disabled: true + + - label: "Step 11: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer value equal to PIXIT.TCCM.MODE_CHANGE_OK + disabled: true + + - label: + "Step 12: TH sends a ChangeToMode command to the DUT with NewMode set + to invalid_mode_th" + PICS: TCCM.S.C00.Rsp + verification: | + Verify that the DUT responds with a ChangeToModeResponse command. + + Verify that the Status field is set to UnsupportedMode(0x01). + disabled: true + + - label: "Step 13: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer value equal to PIXIT.TCCM.MODE_CHANGE_OK + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCCM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TCCM_3_1.yaml new file mode 100644 index 00000000000000..030a1fd97419d5 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCCM_3_1.yaml @@ -0,0 +1,87 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 219.3.1. [TC-TCCM-3.1] On Mode functionality with DUT as Server + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the OnMode attribute." + PICS: TCCM.S.A0003 && TCCM.S.F00 + verification: | + Verify that the DUT response contains an integer value + + Save the value as on_mode_dut + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 && TCCM.S.F00 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + + If on_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: TCCM.S.A0000 && TCCM.S.F00 + verification: | + Verify that the DUT response contains a list of ModeOptionsStruct entries + + Verify that the list has two or more entries + + Save the Mode field values as supported_modes_dut + + Select a value from supported_modes_dut different from on_mode_dut. Save the value as new_mode_th. + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: TCCM.S.C00.Rsp && TCCM.S.F00 + verification: | + Verify that the DUT response contains a ChangeToModeResponse command w/ data fields: * Status, set to Success(0x00). + disabled: true + + - label: "Step 6: TH sends a Off command to the DUT" + PICS: OO.S.C00.Rsp && TCCM.S.F00 + verification: | + Verify DUT responds w/ status SUCCESS(0x00) + disabled: true + + - label: "Step 7: TH sends a On command to the DUT" + PICS: OO.S.C01.Rsp && TCCM.S.F00 + verification: | + Verify DUT responds w/ status SUCCESS(0x00) + disabled: true + + - label: "Step 8: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 && TCCM.S.F00 + verification: | + Verify that the DUT response contains an integer value + + The value is equal to on_mode_dut + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCCM_3_2.yaml b/src/app/tests/suites/certification/Test_TC_TCCM_3_2.yaml new file mode 100644 index 00000000000000..7c2b43de5486f5 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCCM_3_2.yaml @@ -0,0 +1,83 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 219.3.2. [TC-TCCM-3.2] Startup Mode functionality with DUT as Server + +PICS: + - TCCM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the StartUpMode attribute." + PICS: TCCM.S.A0002 + verification: | + Verify that the DUT response contains an integer value + + Save the value as startup_mode_dut + disabled: true + + - label: "Step 3: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_current_mode_dut + + If startup_mode_dut is equal to old_current_mode_dut proceed to step 4. Else proceed to step 6. + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: TCCM.S.A0000 + verification: | + Verify that the DUT response contains a list of ModeOptionsStruct entries + + Verify that the list has two or more entries + + Save the Mode field values as supported_modes_dut + + Select a value from supported_modes_dut different from startup_mode_dut. Save the value as new_mode_th. + disabled: true + + - label: + "Step 5: TH sends a ChangeToMode command to the DUT with NewMode set + to new_mode_th" + PICS: TCCM.S.C00.Rsp + verification: | + Verify that the DUT response contains a ChangeToModeResponse command w/ data fields: * Status, set to Success(0x00). + disabled: true + + - label: "Step 6: Physically power cycle the device" + verification: | + + disabled: true + + - label: "Step 7: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + The value is equal to startup_mode_dut + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCCM_3_3.yaml b/src/app/tests/suites/certification/Test_TC_TCCM_3_3.yaml new file mode 100644 index 00000000000000..86efebd44626e1 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCCM_3_3.yaml @@ -0,0 +1,103 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 219.3.3. [TC-TCCM-3.3] On Mode and Startup Mode functionality with DUT as + Server + +PICS: + - TCCM.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the StartUpMode attribute." + PICS: TCCM.S.A0002 + verification: | + Verify that the DUT response contains an integer value + + Save the value as startup_mode_dut + disabled: true + + - label: "Step 3: TH reads from the DUT the OnMode attribute." + PICS: TCCM.S.A0003 && TCCM.S.A0002 + verification: | + Verify that the DUT response contains an integer value + + Save the value as old_on_mode_dut + + If startup_mode_dut is equal to old_on_mode_dut proceed to step 4. Else proceed to step 6. + disabled: true + + - label: "Step 4: TH reads from the DUT the SupportedModes attribute." + PICS: TCCM.S.A0000 && TCCM.S.A0002 + verification: | + Verify that the DUT response contains a list of ModeOptionsStruct entries + + Verify that the list has two or more entries + + Save the Mode field values as supported_modes_dut + + Select a value from supported_modes_dut different from startup_mode_dut. Save the value as new_mode_th. + disabled: true + + - label: + "Step 5: TH writes to the DUT the OnMode attribute with the + new_mode_th value" + PICS: TCCM.S.A0003 + verification: | + Verify DUT responds w/ status SUCCESS(0x00) + disabled: true + + - label: "Step 6: TH reads from the DUT the OnMode attribute." + PICS: TCCM.S.A0003 && TCCM.S.F00 + verification: | + Verify that the DUT response contains an integer value + + Save the value as new_on_mode_dut + + The value is equal to new_mode_th + disabled: true + + - label: + "Step 7: TH writes to the DUT the StartUpOnOff attribute with the + value 1." + PICS: OO.S.A4003 + verification: | + Verify DUT responds w/ status SUCCESS(0x00) + disabled: true + + - label: "Step 8: Physically power cycle the device" + verification: | + + disabled: true + + - label: "Step 9: TH reads from the DUT the CurrentMode attribute." + PICS: TCCM.S.A0001 + verification: | + Verify that the DUT response contains an integer value + + The value is equal to new_on_mode_dut + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCTL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TCTL_1_1.yaml new file mode 100644 index 00000000000000..1f847993f8e79f --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCTL_1_1.yaml @@ -0,0 +1,131 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 178.1.1. [TC-TCTL-1.1] Global attributes with DUT as Server + +PICS: + - TCTL.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: Commission DUT to TH (can be skipped if done in a preceding + test)." + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute" + verification: | + ./chip-tool temperaturecontrol read cluster-revision 1 1 + Verify the "ClusterRevision" value is of unit16 and reflects the highest revision number 1 on the TH(Chip-tool) and below is the sample log provided for the raspi platform: + + [1689770372.878629][9188:9190] CHIP:DMG: } + [1689770372.878690][9188:9190] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0056 Attribute 0x0000_FFFD DataVersion: 2844459846 + [1689770372.878714][9188:9190] CHIP:TOO: ClusterRevision: 1 + [1689770372.878763][9188:9190] CHIP:EM: <<< [E:16332i S:45296 M:45197941 (Ack:243112600)] (S) Msg TX to 1:0000000000000001 [9CA1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689770372.878774][9188:9190] CHIP:IN: (S) Sending msg 45197941 on secure session with LSID: 45296 + [1689770372.878797][9188:9190] CHIP:EM: Flushed pending ack for MessageCounter:243112600 on exchange 16332i + disabled: true + + - label: "Step 3: TH reads from the DUT the FeatureMap attribute." + verification: | + ./chip-tool temperaturecontrol read feature-map 1 1 + On TH(chip-tool), verify that DUT responds the Featuremap value as 2 and below is the sample log provided for the raspi platform: + + [1689770405.503132][9196:9198] CHIP:DMG: InteractionModelRevision = 1 + [1689770405.503140][9196:9198] CHIP:DMG: } + [1689770405.503215][9196:9198] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0056 Attribute 0x0000_FFFC DataVersion: 2844459846 + [1689770405.503248][9196:9198] CHIP:TOO: FeatureMap: 2 + [1689770405.503310][9196:9198] CHIP:EM: <<< [E:40699i S:20178 M:144688303 (Ack:177462983)] (S) Msg TX to 1:0000000000000001 [9CA1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689770405.503325][9196:9198] CHIP:IN: (S) Sending msg 144688303 on secure session with LSID: 20178 + [1689770405.503372][9196:9198] CHIP:EM: Flushed pending ack for MessageCounter:177462983 on exchange 40699i + disabled: true + + - label: "Step 4: TH reads from the DUT the AttributeList attribute." + verification: | + ./chip-tool temperaturecontrol read attribute-list 1 1 + + Verify " AttributeList " value consists the list of mandatory attributes (65533, 65532, 65531, 65529, 65528) and it may include the optional attributes(0, 1, 2,3,4 and 5) on the TH(Chip-tool) Log: + Below is the sample log provided for the raspi platform: + [1689770447.604182][9210:9212] CHIP:DMG: InteractionModelRevision = 1 + [1689770447.604188][9210:9212] CHIP:DMG: } + [1689770447.604313][9210:9212] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0056 Attribute 0x0000_FFFB DataVersion: 2844459846 + [1689770447.604352][9210:9212] CHIP:TOO: AttributeList: 8 entries + [1689770447.604362][9210:9212] CHIP:TOO: [1]: 4 + [1689770447.604369][9210:9212] CHIP:TOO: [2]: 5 + [1689770447.604384][9210:9212] CHIP:TOO: [3]: 65528 + [1689770447.604390][9210:9212] CHIP:TOO: [4]: 65529 + [1689770447.604396][9210:9212] CHIP:TOO: [5]: 65530 + [1689770447.604402][9210:9212] CHIP:TOO: [6]: 65531 + [1689770447.604409][9210:9212] CHIP:TOO: [7]: 65532 + [1689770447.604415][9210:9212] CHIP:TOO: [8]: 65533 + [1689770447.604475][9210:9212] CHIP:EM: <<< [E:34971i S:24852 M:231380196 (Ack:110557130)] (S) Msg TX to 1:0000000000000001 [9CA1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689770447.604489][9210:9212] CHIP:IN: (S) Sending msg 231380196 on secure session with LSID: 24852 + [1689770447.604514][9210:9212] CHIP:EM: Flushed pending ack for MessageCounter:110557130 on exchange 34971i + [1689770447.604623][9210:9210] CHIP:CTL: Shutting down the commissioner + disabled: true + + - label: "Step 5: TH reads from the DUT the AcceptedCommandList attribute." + verification: | + ./chip-tool temperaturecontrol read accepted-command-list 1 1 + + Verify " AcceptedCommandList " consists the list of all mandatory commands(0) on the TH(Chip-tool) Log: + Below is the sample log provided for the raspi platform: + + [1689770504.251374][9226:9228] CHIP:DMG: InteractionModelRevision = 1 + [1689770504.251377][9226:9228] CHIP:DMG: } + [1689770504.251408][9226:9228] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0056 Attribute 0x0000_FFF9 DataVersion: 2844459846 + [1689770504.251418][9226:9228] CHIP:TOO: AcceptedCommandList: 1 entries + [1689770504.251423][9226:9228] CHIP:TOO: [1]: 0 + [1689770504.251446][9226:9228] CHIP:EM: <<< [E:6933i S:52597 M:176057927 (Ack:264727649)] (S) Msg TX to 1:0000000000000001 [9CA1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689770504.251450][9226:9228] CHIP:IN: (S) Sending msg 176057927 on secure session with LSID: 52597 + [1689770504.251461][9226:9228] CHIP:EM: Flushed pending ack for MessageCounter:264727649 on exchange 6933i + disabled: true + + - label: "Step 6: TH reads from the DUT the GeneratedCommandList attribute." + verification: | + ./chip-tool temperaturecontrol read generated-command-list 1 1 + Verify " GeneratedCommandList " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + + [1689770475.939806][9215:9217] CHIP:DMG: InteractionModelRevision = 1 + [1689770475.939807][9215:9217] CHIP:DMG: } + [1689770475.939834][9215:9217] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0056 Attribute 0x0000_FFF8 DataVersion: 2844459846 + [1689770475.939846][9215:9217] CHIP:TOO: GeneratedCommandList: 0 entries + [1689770475.939868][9215:9217] CHIP:EM: <<< [E:56043i S:30992 M:36313621 (Ack:205412119)] (S) Msg TX to 1:0000000000000001 [9CA1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689770475.939872][9215:9217] CHIP:IN: (S) Sending msg 36313621 on secure session with LSID: 30992 + [1689770475.939880][9215:9217] CHIP:EM: Flushed pending ack for MessageCounter:205412119 on exchange 56043i + disabled: true + + - label: "Step 7: TH reads from the DUT the EventList attribute." + verification: | + ./chip-tool temperaturecontrol read event-list 1 1 + Verify " EventList attribute " consists the list of supported events, which for this cluster should be an empty list on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + + [1689770528.788582][9233:9235] CHIP:DMG: InteractionModelRevision = 1 + [1689770528.788587][9233:9235] CHIP:DMG: } + [1689770528.788671][9233:9235] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0056 Attribute 0x0000_FFFA DataVersion: 2844459846 + [1689770528.788703][9233:9235] CHIP:TOO: EventList: 0 entries + [1689770528.788768][9233:9235] CHIP:EM: <<< [E:60387i S:1870 M:236365893 (Ack:64478273)] (S) Msg TX to 1:0000000000000001 [9CA1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689770528.788782][9233:9235] CHIP:IN: (S) Sending msg 236365893 on secure session with LSID: 1870 + [1689770528.788826][9233:9235] CHIP:EM: Flushed pending ack for MessageCounter:64478273 on exchange 60387i + [1689770528.788927][9233:9233] CHIP:CTL: Shutting down the commissioner + [1689770528.788948][9233:9233] CHIP:CTL: Stopping commissioning discovery over DNS-SD + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCTL_2_1.yaml b/src/app/tests/suites/certification/Test_TC_TCTL_2_1.yaml new file mode 100644 index 00000000000000..f70fad20638661 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCTL_2_1.yaml @@ -0,0 +1,38 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 178.2.1. [TC-TCTL-2.1] Attributes with DUT as Server + +PICS: + - TCTL.S + - TCTL.S.F02 + - TCTL.S.F00 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the TCTL.S.A0003(Step) attribute" + PICS: TCTL.S.A0003 + verification: | + ./chip-tool temperaturecontrol read step 1 1 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCTL_2_2.yaml b/src/app/tests/suites/certification/Test_TC_TCTL_2_2.yaml new file mode 100644 index 00000000000000..398788f4ed8802 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCTL_2_2.yaml @@ -0,0 +1,51 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 178.2.2. [TC-TCTL-2.2] Optional Temperature number attributes with DUT as + Server + +PICS: + - TCTL.S + - TCTL.S.F00 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the TemperatureSetpoint attribute" + PICS: TCTL.S.A0000 + verification: | + ./chip-tool temperaturecontrol read temperature-setpoint 1 1 + disabled: true + + - label: "Step 3: TH reads from the DUT the MinTemperature attribute" + PICS: TCTL.S.A0001 + verification: | + ./chip-tool temperaturecontrol read min-temperature 1 1 + disabled: true + + - label: "Step 4: TH reads from the DUT the MaxTemperature attribute" + PICS: TCTL.S.A0002 + verification: | + ./chip-tool temperaturecontrol read max-temperature 1 1 + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCTL_2_3.yaml b/src/app/tests/suites/certification/Test_TC_TCTL_2_3.yaml new file mode 100644 index 00000000000000..e901d20aff6a9c --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCTL_2_3.yaml @@ -0,0 +1,71 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 178.2.3. [TC-TCTL-2.3] Optional temperature level attributes with DUT as + Server + +PICS: + - TCTL.S + - TCTL.S.F01 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: + "Step 2: TH reads from the DUT the SelectedTemperatureLevel attribute" + PICS: TCTL.S.A0004 + verification: | + ./chip-tool temperaturecontrol read selected-temperature-level 1 1 + On TH(chip-tool), Verify that the DUT response contains a uint8 with value between 0 and 31 inclusive. + + [1689770673.417838][9280:9282] CHIP:DMG: SuppressResponse = true, + [1689770673.417845][9280:9282] CHIP:DMG: InteractionModelRevision = 1 + [1689770673.417851][9280:9282] CHIP:DMG: } + [1689770673.417920][9280:9282] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0056 Attribute 0x0000_0004 DataVersion: 2844459846 + [1689770673.417946][9280:9282] CHIP:TOO: SelectedTemperatureLevel: 0 + [1689770673.418017][9280:9282] CHIP:EM: <<< [E:21789i S:28147 M:181187483 (Ack:172880761)] (S) Msg TX to 1:0000000000000001 [9CA1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689770673.418031][9280:9282] CHIP:IN: (S) Sending msg 181187483 on secure session with LSID: 28147 + [1689770673.418076][9280:9282] CHIP:EM: Flushed pending ack for MessageCounter:172880761 on exchange 21789i + [1689770673.418170][9280:9280] CHIP:CTL: Shutting down the commissioner + disabled: true + + - label: + "Step 3: TH reads from the DUT the SupportedTemperatureLevels + attribute" + PICS: TCTL.S.A0005 + verification: | + ./chip-tool temperaturecontrol read supported-temperature-levels 1 1 + On TH(chip-tool), Verify that the DUT response contains a list of up to 32 strings with each string length not exceeding 16 characters. + [1689770716.974439][9291:9293] CHIP:DMG: SuppressResponse = true, + [1689770716.974446][9291:9293] CHIP:DMG: InteractionModelRevision = 1 + [1689770716.974451][9291:9293] CHIP:DMG: } + [1689770716.974558][9291:9293] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0056 Attribute 0x0000_0005 DataVersion: 2844459846 + [1689770716.974594][9291:9293] CHIP:TOO: SupportedTemperatureLevels: 3 entries + [1689770716.974607][9291:9293] CHIP:TOO: [1]: Hot + [1689770716.974614][9291:9293] CHIP:TOO: [2]: Warm + [1689770716.974620][9291:9293] CHIP:TOO: [3]: Freezing + [1689770716.974685][9291:9293] CHIP:EM: <<< [E:59031i S:44407 M:101895658 (Ack:80765321)] (S) Msg TX to 1:0000000000000001 [9CA1] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1689770716.974699][9291:9293] CHIP:IN: (S) Sending msg 101895658 on secure session with LSID: 44407 + [1689770716.974728][9291:9293] CHIP:EM: Flushed pending ack for MessageCounter:80765321 on exchange 59031i + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCTL_3_2.yaml b/src/app/tests/suites/certification/Test_TC_TCTL_3_2.yaml new file mode 100644 index 00000000000000..11d43b19367a6e --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCTL_3_2.yaml @@ -0,0 +1,61 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 178.2.4. [TC-TCTL-3.2] Optional temperature number functionality with DUT as + Server + +PICS: + - TCTL.S + - TCTL.S.F00 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2: TH writes a valid value to DUT" + PICS: TCTL.S.C00.Rsp + verification: | + ./chip-tool temperaturecontrol set-temperature 1 1 + disabled: true + + - label: + "Step 3: after a few seconds, TH reads from the DUT the + TemperatureSetpoint attribute" + PICS: TCTL.S.A0000 + verification: | + + disabled: true + + - label: "Step 4: TH writes an invalid value to DUT" + PICS: TCTL.S.C00.Rsp + verification: | + + disabled: true + + - label: + "Step 5: after a few seconds, TH reads from the DUT the + TemperatureSetpoint attribute" + PICS: TCTL.S.A0000 + verification: | + + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TCTL_3_3.yaml b/src/app/tests/suites/certification/Test_TC_TCTL_3_3.yaml new file mode 100644 index 00000000000000..24b4c98c3040a8 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TCTL_3_3.yaml @@ -0,0 +1,49 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 178.2.5. [TC-TCTL-3.3] Optional temperature level functionality with DUT as + Server + +PICS: + - TCTL.S + - TCTL.S.F01 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: + "Step 2: TH writes a valid value to DUT within the range of + SupportedTemperatureLevels" + PICS: TCTL.S.C00.Rsp + verification: | + + disabled: true + + - label: + "Step 3: after a few seconds, TH reads from the DUT the + SelectedTemperatureLevel attribute" + PICS: TCTL.S.A0004 + verification: | + + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TGTNAV_8_2.yaml b/src/app/tests/suites/certification/Test_TC_TGTNAV_8_2.yaml index ca8c292f74f10a..bae00f38cad113 100644 --- a/src/app/tests/suites/certification/Test_TC_TGTNAV_8_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_TGTNAV_8_2.yaml @@ -29,7 +29,7 @@ tests: Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT. disabled: true - - label: "DUT sends NavigateTarget command to TH" + - label: "Step 1: DUT sends NavigateTarget command to TH" PICS: TGTNAV.C.C00.Tx verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee): @@ -37,8 +37,7 @@ tests: ./chip-tool targetnavigator navigate-target 1 1 1 ./chip-tv-casting-app targetnavigator navigate-target 1 1 1 - - The log below shows the resulting log on the TH (tv-app or all-clusters-app): + On TH (tv-app), Verify the navigate target command is received successfully. [1658531406475] [21924:325733] CHIP: [DMG] InvokeRequestMessage = [1658531406475] [21924:325733] CHIP: [DMG] { diff --git a/src/app/tests/suites/certification/Test_TC_TIMESYNC_2_15.yaml b/src/app/tests/suites/certification/Test_TC_TIMESYNC_2_15.yaml new file mode 100644 index 00000000000000..dea7e182c42dd1 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_TIMESYNC_2_15.yaml @@ -0,0 +1,163 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 142.2.15. [TC-TIMESYNC-2.15] Endpoint composition with DUT as Server + +PICS: + - TIMESYNC.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: + "Step 1: TH does a wildcard read of the time sync cluster UTCTime + attribute across all endpoints." + verification: | + ./chip-tool timesynchronization read utctime 1 0xFFFF + + On TH(Chip-tool), Verify that only one AttributeReportIB is returned for endpoint 0. + + [1688724683.563762][13887:13889] CHIP:DMG: } + [1688724683.563834][13887:13889] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0038 Attribute 0x0000_0000 DataVersion: 2061582322 + [1688724683.563870][13887:13889] CHIP:TOO: UTCTime: 742039883563331 + [1688724683.563926][13887:13889] CHIP:EM: <<< [E:22156i S:9939 M:104620514 (Ack:265588578)] (S) Msg TX to 1:0000000000000001 [8979] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1688724683.563939][13887:13889] CHIP:IN: (S) Sending msg 104620514 on secure session with LSID: 9939 + [1688724683.563964][13887:13889] CHIP:EM: Flushed pending ack for MessageCounter:265588578 on exchange 22156i + disabled: true + + - label: + "Step 2: TH does a wildcard read of the descriptor cluster ServerList + attribute across all endpoint." + verification: | + ./chip-tool descriptor read server-list 1 0xFFFF + On TH(Chip-tool), Verify that the time synchronization cluster id - 0x0038(56) is listed in the ServerList attribute from endpoint 0 and is not listed in the ServerList attribute for any other endpoints. + + [1688724759.304134][13899:13901] CHIP:DMG: } + [1688724759.304525][13899:13901] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 2397850349 + [1688724759.304584][13899:13901] CHIP:TOO: ServerList: 29 entries + [1688724759.304598][13899:13901] CHIP:TOO: [1]: 3 + [1688724759.304607][13899:13901] CHIP:TOO: [2]: 4 + [1688724759.304617][13899:13901] CHIP:TOO: [3]: 29 + [1688724759.304627][13899:13901] CHIP:TOO: [4]: 30 + [1688724759.304637][13899:13901] CHIP:TOO: [5]: 31 + [1688724759.304646][13899:13901] CHIP:TOO: [6]: 40 + [1688724759.304656][13899:13901] CHIP:TOO: [7]: 42 + [1688724759.304666][13899:13901] CHIP:TOO: [8]: 43 + [1688724759.304676][13899:13901] CHIP:TOO: [9]: 44 + [1688724759.304686][13899:13901] CHIP:TOO: [10]: 45 + [1688724759.304695][13899:13901] CHIP:TOO: [11]: 46 + [1688724759.304705][13899:13901] CHIP:TOO: [12]: 47 + [1688724759.304715][13899:13901] CHIP:TOO: [13]: 48 + [1688724759.304725][13899:13901] CHIP:TOO: [14]: 49 + [1688724759.304734][13899:13901] CHIP:TOO: [15]: 50 + [1688724759.304744][13899:13901] CHIP:TOO: [16]: 51 + [1688724759.304754][13899:13901] CHIP:TOO: [17]: 52 + [1688724759.304764][13899:13901] CHIP:TOO: [18]: 53 + [1688724759.304773][13899:13901] CHIP:TOO: [19]: 54 + [1688724759.304783][13899:13901] CHIP:TOO: [20]: 55 + [1688724759.304793][13899:13901] CHIP:TOO: [21]: 56 + [1688724759.304802][13899:13901] CHIP:TOO: [22]: 60 + [1688724759.304813][13899:13901] CHIP:TOO: [23]: 62 + [1688724759.304823][13899:13901] CHIP:TOO: [24]: 63 + [1688724759.304832][13899:13901] CHIP:TOO: [25]: 64 + [1688724759.304842][13899:13901] CHIP:TOO: [26]: 65 + [1688724759.304852][13899:13901] CHIP:TOO: [27]: 70 + [1688724759.304862][13899:13901] CHIP:TOO: [28]: 1029 + [1688724759.304872][13899:13901] CHIP:TOO: [29]: 4294048774 + [1688724759.305115][13899:13901] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1621835978 + [1688724759.305168][13899:13901] CHIP:TOO: ServerList: 69 entries + [1688724759.305177][13899:13901] CHIP:TOO: [1]: 3 + [1688724759.305187][13899:13901] CHIP:TOO: [2]: 4 + [1688724759.305197][13899:13901] CHIP:TOO: [3]: 5 + [1688724759.305207][13899:13901] CHIP:TOO: [4]: 6 + [1688724759.305217][13899:13901] CHIP:TOO: [5]: 7 + [1688724759.305226][13899:13901] CHIP:TOO: [6]: 8 + [1688724759.305236][13899:13901] CHIP:TOO: [7]: 15 + [1688724759.305246][13899:13901] CHIP:TOO: [8]: 29 + [1688724759.305256][13899:13901] CHIP:TOO: [9]: 30 + [1688724759.305265][13899:13901] CHIP:TOO: [10]: 37 + [1688724759.305275][13899:13901] CHIP:TOO: [11]: 47 + [1688724759.305285][13899:13901] CHIP:TOO: [12]: 59 + [1688724759.305295][13899:13901] CHIP:TOO: [13]: 64 + [1688724759.305304][13899:13901] CHIP:TOO: [14]: 65 + [1688724759.305314][13899:13901] CHIP:TOO: [15]: 69 + [1688724759.305323][13899:13901] CHIP:TOO: [16]: 80 + [1688724759.305333][13899:13901] CHIP:TOO: [17]: 87 + [1688724759.305343][13899:13901] CHIP:TOO: [18]: 91 + [1688724759.305353][13899:13901] CHIP:TOO: [19]: 113 + [1688724759.305362][13899:13901] CHIP:TOO: [20]: 114 + [1688724759.305372][13899:13901] CHIP:TOO: [21]: 115 + [1688724759.305382][13899:13901] CHIP:TOO: [22]: 116 + [1688724759.305392][13899:13901] CHIP:TOO: [23]: 117 + [1688724759.305402][13899:13901] CHIP:TOO: [24]: 118 + [1688724759.305411][13899:13901] CHIP:TOO: [25]: 119 + [1688724759.305421][13899:13901] CHIP:TOO: [26]: 120 + [1688724759.305431][13899:13901] CHIP:TOO: [27]: 121 + [1688724759.305441][13899:13901] CHIP:TOO: [28]: 122 + [1688724759.305450][13899:13901] CHIP:TOO: [29]: 123 + [1688724759.305460][13899:13901] CHIP:TOO: [30]: 124 + [1688724759.305470][13899:13901] CHIP:TOO: [31]: 257 + [1688724759.305480][13899:13901] CHIP:TOO: [32]: 258 + [1688724759.305490][13899:13901] CHIP:TOO: [33]: 259 + [1688724759.305499][13899:13901] CHIP:TOO: [34]: 512 + [1688724759.305509][13899:13901] CHIP:TOO: [35]: 513 + [1688724759.305519][13899:13901] CHIP:TOO: [36]: 514 + [1688724759.305529][13899:13901] CHIP:TOO: [37]: 516 + [1688724759.305539][13899:13901] CHIP:TOO: [38]: 768 + [1688724759.305549][13899:13901] CHIP:TOO: [39]: 769 + [1688724759.305558][13899:13901] CHIP:TOO: [40]: 1024 + [1688724759.305568][13899:13901] CHIP:TOO: [41]: 1026 + [1688724759.305578][13899:13901] CHIP:TOO: [42]: 1027 + [1688724759.305588][13899:13901] CHIP:TOO: [43]: 1028 + [1688724759.305598][13899:13901] CHIP:TOO: [44]: 1029 + [1688724759.305607][13899:13901] CHIP:TOO: [45]: 1030 + [1688724759.305617][13899:13901] CHIP:TOO: [46]: 1036 + [1688724759.305627][13899:13901] CHIP:TOO: [47]: 1037 + [1688724759.305637][13899:13901] CHIP:TOO: [48]: 1043 + [1688724759.305647][13899:13901] CHIP:TOO: [49]: 1045 + [1688724759.305657][13899:13901] CHIP:TOO: [50]: 1066 + [1688724759.305667][13899:13901] CHIP:TOO: [51]: 1067 + [1688724759.305676][13899:13901] CHIP:TOO: [52]: 1068 + [1688724759.305686][13899:13901] CHIP:TOO: [53]: 1069 + [1688724759.305696][13899:13901] CHIP:TOO: [54]: 1070 + [1688724759.305705][13899:13901] CHIP:TOO: [55]: 1071 + [1688724759.305715][13899:13901] CHIP:TOO: [56]: 1283 + [1688724759.305725][13899:13901] CHIP:TOO: [57]: 1284 + [1688724759.305734][13899:13901] CHIP:TOO: [58]: 1285 + [1688724759.305744][13899:13901] CHIP:TOO: [59]: 1286 + [1688724759.305754][13899:13901] CHIP:TOO: [60]: 1287 + [1688724759.305764][13899:13901] CHIP:TOO: [61]: 1288 + [1688724759.305773][13899:13901] CHIP:TOO: [62]: 1289 + [1688724759.305783][13899:13901] CHIP:TOO: [63]: 1290 + [1688724759.305793][13899:13901] CHIP:TOO: [64]: 1291 + [1688724759.305802][13899:13901] CHIP:TOO: [65]: 1292 + [1688724759.305812][13899:13901] CHIP:TOO: [66]: 1293 + [1688724759.305822][13899:13901] CHIP:TOO: [67]: 1294 + [1688724759.305832][13899:13901] CHIP:TOO: [68]: 2820 + [1688724759.305842][13899:13901] CHIP:TOO: [69]: 4294048773 + [1688724759.305881][13899:13901] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1550598832 + [1688724759.305897][13899:13901] CHIP:TOO: ServerList: 5 entries + [1688724759.305906][13899:13901] CHIP:TOO: [1]: 4 + [1688724759.305916][13899:13901] CHIP:TOO: [2]: 6 + [1688724759.305926][13899:13901] CHIP:TOO: [3]: 29 + [1688724759.305936][13899:13901] CHIP:TOO: [4]: 47 + [1688724759.305945][13899:13901] CHIP:TOO: [5]: 1030 + [1688724759.306032][13899:13901] CHIP:EM: <<< [E:9189i S:12449 M:231725041 (Ack:22667687)] (S) Msg TX to 1:0000000000000001 [8979] --- Type 0000:10 (SecureChannel:StandaloneAck) + [1688724759.306046][13899:13901] CHIP:IN: (S) Sending msg 231725041 on secure session with LSID: 12449 + [1688724759.306081][13899:13901] CHIP:EM: Flushed pending ack for MessageCounter:22667687 on exchange 9189i + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml index f81974cbd7cda8..2166efc583592e 100644 --- a/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml @@ -34,8 +34,8 @@ tests: disabled: true - label: - "DUT reads all supported mandatory attributes from TH one at a time in - a manufacturer specific order" + "Step 1: DUT reads all supported mandatory attributes from TH one at a + time in a manufacturer specific order" PICS: TSTAT.C.AM-READ verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -254,8 +254,8 @@ tests: disabled: true - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" + "Step 2: DUT reads all supported optional attributes from TH one at a + time in a manufacturer specific order" PICS: TSTAT.C.AO-READ verification: | Most of optional attribute is not implemented in SDK @@ -265,8 +265,8 @@ tests: disabled: true - label: - "DUT writes a suitable value to all supported mandatory attributes on - the TH one at a time in a manufacturer specific order" + "Step 3: DUT writes a suitable value to all supported mandatory + attributes on the TH one at a time in a manufacturer specific order" PICS: TSTAT.C.AM-WRITE verification: | Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client) @@ -422,8 +422,8 @@ tests: disabled: true - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" + "Step 4: DUT writes a suitable value to all supported optional + attributes on the TH one at a time in a manufacturer specific order" PICS: TSTAT.C.AO-WRITE verification: | Verify by sending the optional attribute which is mentioned in spec @@ -432,8 +432,8 @@ tests: disabled: true - label: - "Configure TH such that it implements mandatory and none of the - optional attributes of the server-side of the cluster, and that it + "Step 5: Configure TH such that it implements mandatory and none of + the optional attributes of the server-side of the cluster, and that it also reflects this in global attributes such as FeatureMap and AttributeList. Commission DUT to TH again" verification: | @@ -959,8 +959,8 @@ tests: disabled: true - label: - "DUT reads all supported optional attributes from TH one at a time in - a manufacturer specific order" + "Step 6: DUT reads all supported optional attributes from TH one at a + time in a manufacturer specific order" PICS: TSTAT.C.AO-READ verification: | Verify by sending the optional attribute which is mentioned in spec @@ -969,8 +969,8 @@ tests: disabled: true - label: - "DUT writes a suitable value to all supported optional attributes on - the TH one at a time in a manufacturer specific order" + "Step 7: DUT writes a suitable value to all supported optional + attributes on the TH one at a time in a manufacturer specific order" PICS: TSTAT.C.AO-WRITE verification: | Verify by sending the optional attribute which is mentioned in spec diff --git a/src/app/tests/suites/certification/Test_TC_WASHERCTRL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_1_1.yaml new file mode 100644 index 00000000000000..3d77641d7fd962 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_1_1.yaml @@ -0,0 +1,76 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 256.1.1. [TC-WASHERCTRL-1.1] Global attributes with server as DUT + +PICS: + - WASHERCTRL.S + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the ClusterRevision attribute" + verification: | + ./chip-tool laundrywashercontrols read cluster-revision 1 1 + + On TH(Chip-tool) Verify the cluster-revision value is 1 + disabled: true + + - label: "Step 3: TH reads from the DUT the FeatureMap attribute" + verification: | + ./chip-tool laundrywashercontrols read feature-map 1 1 + + On TH(chip-tool), verify that DUT sends FeatureMap attribute + Below is the example value which is observed in the RPI platform the value may be differ based on the dut implementation. + disabled: true + + - label: "Step 4: TH reads from the DUT the AttributeList attribute" + verification: | + ./chip-tool laundrywashercontrols read attribute-list 1 1 + + Verify we are getting supported attribute list sent in the above command on TH(chip-tool) log + Below is the example value which is observed in the RPI platform the value may be differ based on the dut implementation. + disabled: true + + - label: "Step 5: TH reads from the DUT the (0xFFFA) EventList attribute" + verification: | + ./chip-tool laundrywashercontrols read event-list 1 1 + + ON TH(Chip-tool) verify the Event-list value is 0 entries + disabled: true + + - label: "Step 6: TH reads from the DUT the AcceptedCommandList attribute" + verification: | + ./chip-tool laundrywashercontrols read accepted-command-list 1 1 + + ON TH(Chip-tool) verify the Accepted-command-list value is 0 entries + disabled: true + + - label: + "Step 7: TH reads from the DUT the (0xFFF8) GeneratedCommandList + attribute" + verification: | + ./chip-tool laundrywashercontrols read generated-command-list 1 1 + + ON TH(Chip-tool) verify the Generated-command-list value is 0 entries + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WASHERCTRL_2_1.yaml b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_2_1.yaml new file mode 100644 index 00000000000000..ddbf6913e957b0 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_2_1.yaml @@ -0,0 +1,42 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 185.2.1. [TC-WASHERCTRL-2.1] Optional Spin attributes with DUT as Server + +PICS: + - WASHERCTRL.S.F00 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the the SpinSpeeds attribute" + PICS: WASHERCTRL.S.A0000 + verification: | + Verify that the DUT response contains a list of strings with a maximum number of 16. + disabled: true + + - label: "Step 3: TH reads from the DUT the the SpinSpeedCurrent attribute" + PICS: WASHERCTRL.S.A0001 + verification: | + Verify that the DUT response contains a uint8 with value between 0 and 15 inclusive. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WASHERCTRL_2_2.yaml b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_2_2.yaml new file mode 100644 index 00000000000000..891067997f6525 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_2_2.yaml @@ -0,0 +1,42 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 185.2.2. [TC-WASHERCTRL-2.2] Optional rinse attributes with DUT as Server + +PICS: + - WASHERCTRL.S.F00 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: "Step 2: TH reads from the DUT the the NumberOfRinses attribute" + PICS: WASHERCTRL.S.A0002 + verification: | + Verify that the DUT response contains if not null, an enum with up to 4 values. + disabled: true + + - label: "Step 3: TH reads from the DUT the the SupportedRinses attribute" + PICS: WASHERCTRL.S.A0003 + verification: | + Verify that the DUT response contains a list of enums each containing up to 4 values. + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WASHERCTRL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_3_1.yaml new file mode 100644 index 00000000000000..1984d4bf492274 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_3_1.yaml @@ -0,0 +1,54 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: 185.2.3. [TC-WASHERCTRL-3.1] Rinse functionality with DUT as Server + +PICS: + - WASHERCTRL.S.F01 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: + "Step 2: TH writes a supported NumberOfRinses attribute to DUT within + the range of the enum provided with a max value of 4." + PICS: WASHERCTRL.S.A0002 + verification: | + Verify DUT responds w/ status SUCCESS(0x00) + disabled: true + + - label: + "Step 3: after a few seconds, TH reads from the DUT the NumberOfRinses + attribute" + PICS: WASHERCTRL.S.A0002 + verification: | + Value is the same as was written in step 2 + disabled: true + + - label: + "Step 4: TH writes an unsupported NumberOfRinses attribute to DUT + while DUT is not in a valid state." + PICS: WASHERCTRL.S.A0002 + verification: | + Verify that the DUT response contains Status INVALID_IN_STATE response + disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_WASHERCTRL_3_2.yaml b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_3_2.yaml new file mode 100644 index 00000000000000..77887e90905629 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_WASHERCTRL_3_2.yaml @@ -0,0 +1,55 @@ +# 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. +# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default + +name: + 185.2.4. [TC-WASHERCTRL-3.2] Optional spin functionality with DUT as Server + +PICS: + - WASHERCTRL.S.F00 + +config: + nodeId: 0x12344321 + cluster: "Basic Information" + endpoint: 0 + +tests: + - label: "Step 1: Commission DUT to TH" + verification: | + + disabled: true + + - label: + "Step 2: TH writes a supported SpinSpeedCurrent attribute that is + other than 0 to DUT" + PICS: WASHERCTRL.S.A0001 + verification: | + Verify DUT responds w/ status SUCCESS(0x00) + disabled: true + + - label: + "Step 3: after a few seconds, TH reads from the DUT the + SpinSpeedCurrent attribute" + PICS: WASHERCTRL.S.A0001 + verification: | + Value is the same as was written in step 2 + disabled: true + + - label: + "Step 4: TH writes an unsupported SpinSpeedCurrent attribute that is + other than 0 to DUT" + PICS: WASHERCTRL.S.A0001 + verification: | + Verify that the DUT response contains Status CONSTRAINT_ERROR response + disabled: true diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index 32aa633543408f..d23c78d100b04d 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -304,6 +304,41 @@ CC.C.F02=0 CC.C.F03=0 CC.C.F04=0 + +# DISHWASHER ALARM CLUSTER + +DISHALM.S=1 +DISHALM.C=1 +DISHALM.S.F00=1 +DISHALM.S.E00=1 + +#Server +DISHALM.S.A0000=1 +DISHALM.S.A0001=1 +DISHALM.S.A0002=1 +DISHALM.S.A0003=1 +DISHALM.M.ManuallyControlled=1 + +#Commands +DISHALM.S.C00.Rsp=1 +DISHALM.S.C01.Rsp=1 + + +# DISHWASHER MODE CLUSTER + +DISHM.S=1 +DISHM.S.F00=1 + +#Server +DISHM.S.A0000=1 +DISHM.S.A0001=1 +DISHM.S.A0002=1 +DISHM.S.A0003=1 + +#Command +DISHM.S.C00.Rsp=1 +DISHM.S.C01.Tx=1 + # MEDIA CLUSTER # App Launcher APPLAUNCHER.S=1 @@ -725,6 +760,20 @@ CGEN.S.C05.Tx=1 CGEN.C=1 +# LAUNDRY WASHER MODE CLUSTER +LWM.S=1 +LWM.S.A0000=1 +LWM.S.A0001=1 +LWM.S.A0003=1 +LWM.S.A0002=1 + +#Feature +LWM.S.F00=1 + +#Command +LWM.S.C00.Rsp=1 +LWM.S.C01.Tx=1 + # Time Format Localization Cluster LTIME.S=1 LTIME.S.A0000=1 @@ -776,8 +825,8 @@ LUNIT.C.Afffd=1 LUNIT.C=1 # Multiple Fabrics -CADMIN.UserInterfaceDisplay=1 -CADMIN.AudioInterface=1 +CADMIN.M.UserInterfaceDisplay=1 +CADMIN.M.AudioInterface=1 CADMIN.S.C00.Rsp=1 CADMIN.S.C01.Rsp=1 CADMIN.S.C02.Rsp=1 @@ -1864,10 +1913,25 @@ OPCREDS.C.C0a.Tx=1 OPCREDS.C.C0b.Tx=1 # Operational State + +OPSTATE.S=1 +OPSTATE.C=1 + # Server Attributes +OPSTATE.S.A0000=1 +OPSTATE.S.A0001=1 OPSTATE.S.A0002=1 +OPSTATE.S.A0003=1 +OPSTATE.S.A0004=1 +OPSTATE.S.A0005=1 +OPSTATE.S.C00.Rsp=1 +OPSTATE.S.C01.Rsp=1 +OPSTATE.S.C02.Rsp=1 +OPSTATE.S.C03.Rsp=1 +OPSTATE.S.C04.Tx=1 # Server Events +OPSTATE.S.E00=1 OPSTATE.S.E01=1 # Server Commands @@ -2475,6 +2539,29 @@ TVOCCONC.S.Afffb=1 TVOCCONC.S.Afffc=1 TVOCCONC.S.Afffd=1 +# TEMPERATURE CONTROL CLUSTER + +TCTL.S=1 +TCTL.C=1 + +TCTL.S.F00=1 +TCTL.S.F01=1 +TCTL.S.F02=1 + +#Server +TCTL.S.A0000=1 +TCTL.S.A0001=1 +TCTL.S.A0002=1 +TCTL.S.A0003=1 +TCTL.S.A0004=1 +TCTL.S.A0005=1 +TCC.M.ManuallyControlledTemperature=1 + +#Command +TCTL.S.C00.Rsp=1 +TCTL.C.C00.Tx=1 + + RNCONC.C=0 RNCONC.S=1 RNCONC.S.F00=1 @@ -2501,8 +2588,98 @@ RNCONC.S.Afffb=1 RNCONC.S.Afffc=1 RNCONC.S.Afffd=1 -# Fan Control +# REFRIGERATOR ALARM CLUSTER +REFALM.S=1 +REFALM.C=1 + +#Server +REFALM.S.A0000=1 +REFALM.S.A0001=1 +REFALM.S.A0002=1 +REFALM.S.A0003=1 + +REFALM.S.E00=1 +#Commands +REFALM.S.C00.Rsp=1 +REFALM.S.C01.Rsp=1 + +# RVC CLEAN MODE CLUSTER + +RVCCLEANM.S=1 + +#Server +RVCCLEANM.S.A0000=1 +RVCCLEANM.S.A0001=1 +RVCCLEANM.S.A0002=1 +RVCCLEANM.S.A0003=1 + +#Feature +RVCCLEANM.S.F00=1 + +#commands +RVCCLEANM.S.C00.Rsp=1 +RVCCLEANM.S.C01.Tx=1 + +# RVC OPERATIONAL STATE CLUSTER +RVCOPSTATE.S=1 +RVCOPSTATE.C=1 + +#Events +RVCOPSTATE.S.E00=1 +RVCOPSTATE.S.E01=1 + +#Server +RVCOPSTATE.S.A0000=1 +RVCOPSTATE.S.A0001=1 +RVCOPSTATE.S.A0002=1 +RVCOPSTATE.S.A0003=1 +RVCOPSTATE.S.A0004=1 +RVCOPSTATE.S.A0005=1 + +#Commands +RVCOPSTATE.S.C00.Rsp=1 +RVCOPSTATE.S.C01.Rsp=1 +RVCOPSTATE.S.C02.Rsp=1 +RVCOPSTATE.S.C03.Rsp=1 +RVCOPSTATE.S.C04.Tx=1 +RVCOPSTATE.C.C00.Tx=1 +RVCOPSTATE.C.C01.Tx=1 +RVCOPSTATE.C.C02.Tx=1 +RVCOPSTATE.C.C04.Tx=1 + + +# RVC RUN MODE CLUSTER +RVCRUNM.S=1 +RVCRUNM.S.F00=1 + +#Server +RVCRUNM.S.A0000=1 +RVCRUNM.S.A0001=1 +RVCRUNM.S.A0002=1 +RVCRUNM.S.A0003=1 + +#Commands +RVCRUNM.S.C00.Rsp=1 +RVCRUNM.S.C01.Tx=1 + +#Refrigerator and Temperature Controlled Cabinet Mode Cluster(TCCM) + +TCCM.S=1 +TCCM.S.F00=1 + +#Server +TCCM.S.A0000=1 +TCCM.S.A0001=1 +TCCM.S.A0002=1 +TCCM.S.A0003=1 + +#Commands +TCCM.S.C00.Rsp=1 +TCCM.S.C01.Tx=1 + + +# Fan Control #Features FAN.S.F00=1 FAN.S.F01=1 @@ -2538,11 +2715,24 @@ ICDM.S.A0003=1 ICDM.S.A0004=1 ICDM.S.A0005=1 +#Client Attribute +ICDM.C.A0000=1 +ICDM.C.A0001=1 +ICDM.C.A0002=1 +ICDM.C.A0003=1 +ICDM.C.A0004=1 +ICDM.C.A0005=1 + + #Features ICDM.S.F00=1 #Commands +ICDM.S.C00.Rsp=1 +ICDM.S.C02.Rsp=1 ICDM.S.C03.Rsp=1 +ICDM.C.C00.Rsp=1 +ICDM.S.C01.Tx=1 #RVC Clean Mode Select RVCCLEANMS.S.F00=1 @@ -2557,3 +2747,99 @@ RVCCLEANMS.S.A0005=1 RVCCLEANMS.S.C00.Rsp=1 RVCCLEANMS.S.C01.Rsp=1 RVCCLEANMS.S.C03.Tx=1 + +# Smoke CO Alarm Cluster +SMCO.S=1 +SMCO.S.F00=1 +SMCO.S.F01=1 +SMCO.S.A0000=1 +SMCO.S.A0001=1 +SMCO.S.A0002=1 +SMCO.S.A0003=1 +SMCO.S.A0004=1 +SMCO.S.A0005=1 +SMCO.S.A0006=1 +SMCO.S.A0007=1 +SMCO.S.A0008=1 +SMCO.S.A0009=1 +SMCO.S.A0010=1 +SMCO.S.A0011=1 +SMCO.S.A0012=1 +SMCO.S.A000a=1 +SMCO.S.A000b=1 +SMCO.S.A000c=1 +SMCO.S.E00=1 +SMCO.S.E01=1 +SMCO.S.E02=1 +SMCO.S.E03=1 +SMCO.S.E04=1 +SMCO.S.E05=1 +SMCO.S.E06=1 +SMCO.S.E07=1 +SMCO.S.E08=1 +SMCO.S.E09=1 +SMCO.S.E10=1 +SMCO.M.ManuallyControlledTest=1 +SMCO.M.ManuallyControlledMute=1 +SMCO.S.C00.Rsp=1 +SMCO.C=1 + +#Temperature Controlled Cabinet Mode Cluster +TCCM.S=1 +TCCM.S.F00=1 +TCCM.S.A0000=1 +TCCM.S.A0001=1 +TCCM.S.A0002=1 +TCCM.S.A0003=1 +TCCM.S.C00.Rsp=1 +TCCM.S.C01.Tx=1 + +#Temperature Control +TCTL.S=1 +TCTL.C=1 +TCTL.S.F00=1 +TCTL.S.F01=1 +TCTL.S.F02=1 +TCTL.S.A0000=1 +TCTL.S.A0001=1 +TCTL.S.A0002=1 +TCTL.S.A0003=1 +TCTL.S.A0004=1 +TCTL.S.A0005=1 +TCC.M.ManuallyControlledTemperature=1 +TCTL.S.C00.Rsp=1 +TCTL.C.C00.Tx=1 + +#Washer Controls +WASHERCTRL.S=1 +WASHERCTRL.C=1 +WASHERCTRL.S.F00=1 +WASHERCTRL.S.F01=1 +#Server +WASHERCTRL.S.A0000=1 +WASHERCTRL.S.A0001=1 +WASHERCTRL.S.A0002=1 +WASHERCTRL.S.A0003=1 +WASHERCTRL.S.M.ManuallyControlledSpin=1 +WASHERCTRL.S.M.ManuallyControlledRinse=1 + +#RVC Run Mode +RVCRUNM.S=1 +RVCRUNM.S.F00=1 +RVCRUNM.S.A0000=1 +RVCRUNM.S.A0001=1 +RVCRUNM.S.A0002=1 +RVCRUNM.S.A0003=1 +RVCRUNM.S.C00.Rsp=1 +RVCRUNM.S.C01.Tx=1 + +#Refrigerator Alarm +REFALM.S=1 +REFALM.C=1 +REFALM.S.A0000=1 +REFALM.S.A0001=1 +REFALM.S.A0002=1 +REFALM.S.A0003=1 +REFALM.S.E00=1 +REFALM.S.C00.Rsp=1 +REFALM.S.C01.Rsp=1 \ No newline at end of file diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json index 40f9c8978790c1..fbb8340a50c75b 100644 --- a/src/app/tests/suites/ciTests.json +++ b/src/app/tests/suites/ciTests.json @@ -48,6 +48,7 @@ "Test_TC_OPCREDS_1_2", "Test_TC_BINFO_1_1", "Test_TC_BINFO_2_1", + "Test_TC_BINFO_2_2", "Test_TC_CNET_1_3" ], "Descriptor": ["Test_TC_DESC_1_1"], diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json index 4ab6e63c4845c0..cde28a356d9e97 100644 --- a/src/app/tests/suites/manualTests.json +++ b/src/app/tests/suites/manualTests.json @@ -62,8 +62,26 @@ "Test_TC_DA_1_4", "Test_TC_DA_1_6" ], + "DishwasherAlarm": [ + "Test_TC_DISHALM_1_1", + "Test_TC_DISHALM_2_1", + "Test_TC_DISHALM_3_1", + "Test_TC_DISHALM_3_2", + "Test_TC_DISHALM_3_3", + "Test_TC_DISHALM_3_4", + "Test_TC_DISHALM_3_5", + "Test_TC_DISHALM_3_6" + ], + "DishwasherMode": [ + "Test_TC_DISHM_1_1", + "Test_TC_DISHM_1_2", + "Test_TC_DISHM_2_1", + "Test_TC_DISHM_3_1", + "Test_TC_DISHM_3_2", + "Test_TC_DISHM_3_3" + ], "DeviceManagement": [ - "Test_TC_BINFO_2_4", + "Test_TC_BINFO_3_1", "Test_TC_OPCREDS_3_1", "Test_TC_OPCREDS_3_2", "Test_TC_OPCREDS_3_3", @@ -97,6 +115,7 @@ "Test_TC_DLOG_3_1" ], "Descriptor": ["Test_TC_DESC_2_1"], + "FanControl": ["Test_TC_FAN_3_3", "Test_TC_FAN_3_5"], "GeneralCommissioning": ["Test_TC_CGEN_2_2"], "GeneralDiagnostics": [ "Test_TC_DGGEN_2_2", @@ -104,6 +123,7 @@ "Test_TC_DGGEN_3_1" ], "Identify": ["Test_TC_I_3_2"], + "IcdManagement": ["Test_TC_ICDM_2_2", "Test_TC_ICDM_2_3"], "IlluminanceMeasurement": [], "InteractionDataModel": [ "Test_TC_IDM_1_1", @@ -175,10 +195,12 @@ ], "ModeSelect": [ "Test_TC_MOD_1_2", + "Test_TC_MOD_1_3", "Test_TC_MOD_2_1", - "Test_TC_MOD_2_3", + "Test_TC_MOD_2_2", "Test_TC_MOD_3_1", "Test_TC_MOD_3_2", + "Test_TC_MOD_3_3", "Test_TC_MOD_3_4" ], "OTASoftwareUpdate": [ @@ -248,16 +270,73 @@ "DoorLock": ["Test_TC_DRLK_2_10", "Test_TC_DRLK_3_2", "Test_TC_DRLK_3_3"], "LocalizationConfiguration": ["Test_TC_LCFG_2_1"], "LevelControl": ["Test_TC_LVL_8_1"], + "LaundryWasherMode": [ + "Test_TC_LWM_1_1", + "Test_TC_LWM_1_2", + "Test_TC_LWM_2_1", + "Test_TC_LWM_3_1", + "Test_TC_LWM_3_2" + ], "OnOff": ["Test_TC_OO_2_3"], + "OperationalState": [ + "Test_TC_OPSTATE_2_1", + "Test_TC_OPSTATE_2_2", + "Test_TC_OPSTATE_2_3", + "Test_TC_OPSTATE_2_4" + ], "RelativeHumidityMeasurement": ["Test_TC_RH_2_2"], "SmokeCOAlarm": [], + "RefrigeratorAlarm": [ + "Test_TC_REFALM_1_1", + "Test_TC_REFALM_2_1", + "Test_TC_REFALM_2_2", + "Test_TC_REFALM_2_3" + ], + "RVCCleanMode": [ + "Test_TC_RVCCLEANM_1_1", + "Test_TC_RVCCLEANM_1_2", + "Test_TC_RVCCLEANM_2_1", + "Test_TC_RVCCLEANM_3_1", + "Test_TC_RVCCLEANM_3_2", + "Test_TC_RVCCLEANM_3_3" + ], + "RVCOperationalState": [ + "Test_TC_RVCOPSTATE_2_1", + "Test_TC_RVCOPSTATE_2_2", + "Test_TC_RVCOPSTATE_2_3" + ], + "RVCRunMode": [ + "Test_TC_RVCRUNM_1_1", + "Test_TC_RVCRUNM_1_2", + "Test_TC_RVCRUNM_2_1", + "Test_TC_RVCRUNM_3_1", + "Test_TC_RVCRUNM_3_2", + "Test_TC_RVCRUNM_3_3" + ], + "TemperatureControlledCabinetMode": [ + "Test_TC_TCCM_1_1", + "Test_TC_TCCM_1_2", + "Test_TC_TCCM_2_1", + "Test_TC_TCCM_3_1", + "Test_TC_TCCM_3_2", + "Test_TC_TCCM_3_3" + ], "Switch": ["Test_TC_SWTCH_2_2", "Test_TC_SWTCH_3_2"], + "TemperatureControl": [ + "Test_TC_TCTL_1_1", + "Test_TC_TCTL_2_1", + "Test_TC_TCTL_2_2", + "Test_TC_TCTL_2_3", + "Test_TC_TCTL_3_2", + "Test_TC_TCTL_3_3" + ], "TemperatureMeasurement": ["Test_TC_TMP_2_2"], "Thermostat": ["Test_TC_TSTAT_3_1", "Test_TC_TSTAT_3_2"], "ThermostatUserConfiguration": [], "ThreadNetworkDiagnostics": ["Test_TC_DGTHREAD_2_5"], "Actions": ["Test_TC_ACT_2_1", "Test_TC_ACT_2_2", "Test_TC_ACT_3_2"], "TimeFormatLocalization": ["Test_TC_LTIME_2_1", "Test_TC_LTIME_3_1"], + "TimeSynchronization": ["Test_TC_TIMESYNC_2_15"], "UnitLocalization": [], "Binding": ["Test_TC_BIND_2_1", "Test_TC_BIND_2_2", "Test_TC_BIND_2_3"], "Scenes": [ @@ -266,6 +345,8 @@ "Test_TC_S_2_2", "Test_TC_S_2_3", "Test_TC_S_2_4", + "Test_TC_S_2_5", + "Test_TC_S_2_6", "Test_TC_S_3_1" ], "PumpConfigurationControl": [], @@ -273,7 +354,14 @@ "UserLabel": [], "BridgedDeviceBasicInformation": [ "Test_TC_BRBINFO_2_2", - "Test_TC_BRBINFO_2_3" + "Test_TC_BRBINFO_3_1" + ], + "WasherControls": [ + "Test_TC_WASHERCTRL_1_1", + "Test_TC_WASHERCTRL_2_1", + "Test_TC_WASHERCTRL_2_2", + "Test_TC_WASHERCTRL_3_1", + "Test_TC_WASHERCTRL_3_2" ], "AccessControlEnforcement": [], "collection": [ @@ -284,10 +372,14 @@ "DeviceAttestation", "DeviceManagement", "DiagnosticsLogs", + "DishwasherAlarm", + "DishwasherMode", "Descriptor", + "FanControl", "EthernetNetworkDiagnostics", "GeneralCommissioning", "GeneralDiagnostics", + "IcdManagement", "Identify", "IlluminanceMeasurement", "InteractionDataModel", @@ -309,16 +401,26 @@ "DoorLock", "LocalizationConfiguration", "LevelControl", + "LaundryWasherMode", "OnOff", + "OperationalState", "RelativeHumidityMeasurement", "SmokeCOAlarm", + "RefrigeratorAlarm", + "RVCCleanMode", + "RVCOperationalState", + "RVCRunMode", "Switch", + "SmokeCOAlarm", + "TemperatureControlledCabinetMode", + "TemperatureControl", "TemperatureMeasurement", "Thermostat", "ThermostatUserConfiguration", "ThreadNetworkDiagnostics", "Actions", "TimeFormatLocalization", + "TimeSynchronization", "UnitLocalization", "Binding", "Scenes", @@ -326,6 +428,7 @@ "AccessControl", "UserLabel", "BridgedDeviceBasicInformation", - "AccessControlEnforcement" + "AccessControlEnforcement", + "WasherControls" ] } diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index ba960be297db89..a06eeaa75b5ed5 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -101,6 +101,7 @@ class TestList : public Command printf("Test_TC_OPCREDS_1_2\n"); printf("Test_TC_BINFO_1_1\n"); printf("Test_TC_BINFO_2_1\n"); + printf("Test_TC_BINFO_2_2\n"); printf("Test_TC_CNET_1_3\n"); printf("Test_TC_DESC_1_1\n"); printf("Test_TC_DLOG_1_1\n"); @@ -393,7 +394,7 @@ class ManualTestList : public Command printf("Test_TC_DA_1_3\n"); printf("Test_TC_DA_1_4\n"); printf("Test_TC_DA_1_6\n"); - printf("Test_TC_BINFO_2_4\n"); + printf("Test_TC_BINFO_3_1\n"); printf("Test_TC_OPCREDS_3_1\n"); printf("Test_TC_OPCREDS_3_2\n"); printf("Test_TC_OPCREDS_3_3\n"); @@ -423,11 +424,29 @@ class ManualTestList : public Command printf("Test_TC_DLOG_2_1\n"); printf("Test_TC_DLOG_2_2\n"); printf("Test_TC_DLOG_3_1\n"); + printf("Test_TC_DISHALM_1_1\n"); + printf("Test_TC_DISHALM_2_1\n"); + printf("Test_TC_DISHALM_3_1\n"); + printf("Test_TC_DISHALM_3_2\n"); + printf("Test_TC_DISHALM_3_3\n"); + printf("Test_TC_DISHALM_3_4\n"); + printf("Test_TC_DISHALM_3_5\n"); + printf("Test_TC_DISHALM_3_6\n"); + printf("Test_TC_DISHM_1_1\n"); + printf("Test_TC_DISHM_1_2\n"); + printf("Test_TC_DISHM_2_1\n"); + printf("Test_TC_DISHM_3_1\n"); + printf("Test_TC_DISHM_3_2\n"); + printf("Test_TC_DISHM_3_3\n"); printf("Test_TC_DESC_2_1\n"); + printf("Test_TC_FAN_3_3\n"); + printf("Test_TC_FAN_3_5\n"); printf("Test_TC_CGEN_2_2\n"); printf("Test_TC_DGGEN_2_2\n"); printf("Test_TC_DGGEN_2_3\n"); printf("Test_TC_DGGEN_3_1\n"); + printf("Test_TC_ICDM_2_2\n"); + printf("Test_TC_ICDM_2_3\n"); printf("Test_TC_I_3_2\n"); printf("Test_TC_IDM_1_1\n"); printf("Test_TC_IDM_2_1\n"); @@ -492,10 +511,12 @@ class ManualTestList : public Command printf("Test_TC_CADMIN_1_23\n"); printf("Test_TC_CADMIN_1_24\n"); printf("Test_TC_MOD_1_2\n"); + printf("Test_TC_MOD_1_3\n"); printf("Test_TC_MOD_2_1\n"); - printf("Test_TC_MOD_2_3\n"); + printf("Test_TC_MOD_2_2\n"); printf("Test_TC_MOD_3_1\n"); printf("Test_TC_MOD_3_2\n"); + printf("Test_TC_MOD_3_3\n"); printf("Test_TC_MOD_3_4\n"); printf("Test_TC_SU_1_1\n"); printf("Test_TC_SU_2_1\n"); @@ -556,10 +577,50 @@ class ManualTestList : public Command printf("Test_TC_DRLK_3_3\n"); printf("Test_TC_LCFG_2_1\n"); printf("Test_TC_LVL_8_1\n"); + printf("Test_TC_LWM_1_1\n"); + printf("Test_TC_LWM_1_2\n"); + printf("Test_TC_LWM_2_1\n"); + printf("Test_TC_LWM_3_1\n"); + printf("Test_TC_LWM_3_2\n"); printf("Test_TC_OO_2_3\n"); + printf("Test_TC_OPSTATE_2_1\n"); + printf("Test_TC_OPSTATE_2_2\n"); + printf("Test_TC_OPSTATE_2_3\n"); + printf("Test_TC_OPSTATE_2_4\n"); printf("Test_TC_RH_2_2\n"); + printf("Test_TC_REFALM_1_1\n"); + printf("Test_TC_REFALM_2_1\n"); + printf("Test_TC_REFALM_2_2\n"); + printf("Test_TC_REFALM_2_3\n"); + printf("Test_TC_RVCCLEANM_1_1\n"); + printf("Test_TC_RVCCLEANM_1_2\n"); + printf("Test_TC_RVCCLEANM_2_1\n"); + printf("Test_TC_RVCCLEANM_3_1\n"); + printf("Test_TC_RVCCLEANM_3_2\n"); + printf("Test_TC_RVCCLEANM_3_3\n"); + printf("Test_TC_RVCOPSTATE_2_1\n"); + printf("Test_TC_RVCOPSTATE_2_2\n"); + printf("Test_TC_RVCOPSTATE_2_3\n"); + printf("Test_TC_RVCRUNM_1_1\n"); + printf("Test_TC_RVCRUNM_1_2\n"); + printf("Test_TC_RVCRUNM_2_1\n"); + printf("Test_TC_RVCRUNM_3_1\n"); + printf("Test_TC_RVCRUNM_3_2\n"); + printf("Test_TC_RVCRUNM_3_3\n"); printf("Test_TC_SWTCH_2_2\n"); printf("Test_TC_SWTCH_3_2\n"); + printf("Test_TC_TCCM_1_1\n"); + printf("Test_TC_TCCM_1_2\n"); + printf("Test_TC_TCCM_2_1\n"); + printf("Test_TC_TCCM_3_1\n"); + printf("Test_TC_TCCM_3_2\n"); + printf("Test_TC_TCCM_3_3\n"); + printf("Test_TC_TCTL_1_1\n"); + printf("Test_TC_TCTL_2_1\n"); + printf("Test_TC_TCTL_2_2\n"); + printf("Test_TC_TCTL_2_3\n"); + printf("Test_TC_TCTL_3_2\n"); + printf("Test_TC_TCTL_3_3\n"); printf("Test_TC_TMP_2_2\n"); printf("Test_TC_TSTAT_3_1\n"); printf("Test_TC_TSTAT_3_2\n"); @@ -569,6 +630,7 @@ class ManualTestList : public Command printf("Test_TC_ACT_3_2\n"); printf("Test_TC_LTIME_2_1\n"); printf("Test_TC_LTIME_3_1\n"); + printf("Test_TC_TIMESYNC_2_15\n"); printf("Test_TC_BIND_2_1\n"); printf("Test_TC_BIND_2_2\n"); printf("Test_TC_BIND_2_3\n"); @@ -577,9 +639,16 @@ class ManualTestList : public Command printf("Test_TC_S_2_2\n"); printf("Test_TC_S_2_3\n"); printf("Test_TC_S_2_4\n"); + printf("Test_TC_S_2_5\n"); + printf("Test_TC_S_2_6\n"); printf("Test_TC_S_3_1\n"); printf("Test_TC_BRBINFO_2_2\n"); - printf("Test_TC_BRBINFO_2_3\n"); + printf("Test_TC_BRBINFO_3_1\n"); + printf("Test_TC_WASHERCTRL_1_1\n"); + printf("Test_TC_WASHERCTRL_2_1\n"); + printf("Test_TC_WASHERCTRL_2_2\n"); + printf("Test_TC_WASHERCTRL_3_1\n"); + printf("Test_TC_WASHERCTRL_3_2\n"); return CHIP_NO_ERROR; } @@ -14684,8 +14753,8 @@ class Test_TC_CC_3_2Suite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value", value, 8U)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 12U)); + VerifyOrReturn(CheckConstraintMinValue("value", value, 4U)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 16U)); } break; case 20: @@ -34015,6 +34084,279 @@ class Test_TC_BINFO_2_1Suite : public TestCommand } }; +class Test_TC_BINFO_2_2Suite : public TestCommand +{ +public: + Test_TC_BINFO_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BINFO_2_2", 14, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_BINFO_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + uint32_t SoftwareVersionValue; + bool ReachableValue; + uint8_t CurrentFabricIndexValue; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + SoftwareVersionValue = value; + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("reachable", value, true)); + ReachableValue = value; + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + CurrentFabricIndexValue = value; + } + break; + case 4: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::BasicInformation::Events::StartUp::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "StartUp", "StartUp")); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 5: + switch (mTestSubStepIndex) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 6: + switch (mTestSubStepIndex) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 10: + switch (mTestSubStepIndex) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::BasicInformation::Events::StartUp::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("startUp.softwareVersion", value.softwareVersion, SoftwareVersionValue)); + } + mTestSubStepIndex++; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 12: + switch (mTestSubStepIndex) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + break; + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Step 0: Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Precondition: TH reads SoftwareVersion attribute from DUT and saves for future use"); + VerifyOrDo(!ShouldSkip("BINFO.S.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, + BasicInformation::Attributes::SoftwareVersion::Id, true, chip::NullOptional); + } + case 2: { + LogStep(2, "Precondition: TH reads Reachable attribute from DUT and saves for future use"); + VerifyOrDo(!ShouldSkip("BINFO.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::Reachable::Id, + true, chip::NullOptional); + } + case 3: { + LogStep(3, "Precondition: TH saves the FabricIndex during commissioning"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(0), OperationalCredentials::Id, + OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, "Precondition: TH subscribes to StartUp event on the Basic Information cluster of the DUT"); + VerifyOrDo(!ShouldSkip("BINFO.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return SubscribeEvent(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Events::StartUp::Id, 30, + 100, false, chip::NullOptional, chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 5: { + LogStep(5, "Precondition: TH subscribes to ShutDown event on the Basic Information cluster of the DUT"); + VerifyOrDo(!ShouldSkip("BINFO.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 0; + return SubscribeEvent(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Events::ShutDown::Id, 30, + 100, false, chip::NullOptional, chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 6: { + LogStep(6, "Precondition: TH subscribes to Leave event on the Basic Information cluster of the DUT"); + VerifyOrDo(!ShouldSkip("BINFO.S.E02"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 0; + return SubscribeEvent(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Events::Leave::Id, 30, + 100, false, chip::NullOptional, chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 7: { + LogStep(7, "Step 1: Reboot the DUT"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::SystemCommands::Commands::Reboot::Type value; + return Reboot(kIdentityAlpha, value); + } + case 8: { + LogStep(8, "Step 1: Reboot target device(DUT)"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = + chip::Span("Please reboot the DUT and enter 'y' after DUT startsgarbage: not in length on purpose", 52); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 9: { + LogStep(9, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 10: { + LogStep(10, "Step 2: TH reads the StartUp event from DUT"); + VerifyOrDo(!ShouldSkip("BINFO.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 1; + return ReadEvent(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Events::StartUp::Id, false, + chip::NullOptional); + } + case 11: { + LogStep(11, "Verify that StartUp event has priority set as CRITICAL"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && BINFO.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = + chip::Span("If priority set as CRITICAL enter 'y' for successgarbage: not in length on purpose", 49); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 12: { + LogStep(12, "Step 3: TH subscribes to the ShutDown event on the DUT. Shutdown DUT."); + VerifyOrDo(!ShouldSkip("BINFO.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + mTestSubStepCount = 0; + return SubscribeEvent(kIdentityAlpha, GetEndpoint(0), BasicInformation::Id, BasicInformation::Events::ShutDown::Id, 30, + 100, false, chip::NullOptional, chip::NullOptional, /* autoResubscribe = */ chip::NullOptional); + } + case 13: { + LogStep(13, "Verify that ShutDown event has priority set as CRITICAL"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && BINFO.S.E01"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = + chip::Span("If priority set as CRITICAL enter 'y' for successgarbage: not in length on purpose", 49); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + } + return CHIP_NO_ERROR; + } +}; + class Test_TC_CNET_1_3Suite : public TestCommand { public: @@ -49767,7 +50109,7 @@ class Test_TC_MEDIAPLAYBACK_6_3Suite : public TestCommand ); } case 2: { - LogStep(2, "Step 1: Sends a Seek command"); + LogStep(2, "Step 1: TH sends a Seek command to the DUT with a Position value of 10000"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0b.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::Seek::Type value; @@ -49789,7 +50131,7 @@ class Test_TC_MEDIAPLAYBACK_6_3Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 4: { - LogStep(4, "Step 2: Reads the SampledPosition attribute"); + LogStep(4, "Step 2: TH reads the SampledPosition attribute from the DUT"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.A0003 && MEDIAPLAYBACK.S.C0b.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaPlayback::Id, MediaPlayback::Attributes::SampledPosition::Id, @@ -49836,7 +50178,9 @@ class Test_TC_MEDIAPLAYBACK_6_3Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 9: { - LogStep(9, "Step 7: Sends a Seek command Position value beyond the furthest valid position"); + LogStep(9, + "Step 7: TH sends a Seek command to the DUT with a Position value beyond the furthest valid position (ex: " + "beyond the duration of the media)"); VerifyOrDo(!ShouldSkip("MEDIAPLAYBACK.S.C0b.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::MediaPlayback::Commands::Seek::Type value; @@ -52452,12 +52796,7 @@ class Test_TC_MOD_1_1Suite : public TestCommand break; case 1: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - uint16_t value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("clusterRevision", value, 1U)); - VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); - } + shouldContinue = true; break; case 2: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -52570,8 +52909,13 @@ class Test_TC_MOD_1_1Suite : public TestCommand } case 1: { LogStep(1, "Step 2: TH reads the ClusterRevision attribute from the DUT"); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ModeSelect::Id, ModeSelect::Attributes::ClusterRevision::Id, true, - chip::NullOptional); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); } case 2: { LogStep(2, "Step 3a: TH reads the FeatureMap attribute from the DUT"); @@ -55747,7 +56091,7 @@ class Test_TC_PS_2_1Suite : public TestCommand PowerSource::Attributes::ActiveBatChargeFaults::Id, true, chip::NullOptional); } case 32: { - LogStep(32, "Test Harness Client reads EndpointList from Server DUT"); + LogStep(32, "Step 33: Test Harness Client reads EndpointList from Server DUT"); VerifyOrDo(!ShouldSkip("PS.S.A001f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::EndpointList::Id, true, chip::NullOptional); @@ -57975,7 +58319,7 @@ class Test_TC_PCC_2_3Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 1: { - LogStep(1, "Step 2a: Write 0 to the OperationMode attribute to DUT"); + LogStep(1, "Step 2a: TH write 0 (Normal) to the OperationMode attribute to DUT."); VerifyOrDo(!ShouldSkip("PCC.S.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::PumpConfigurationAndControl::OperationModeEnum value; @@ -57985,13 +58329,13 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::NullOptional); } case 2: { - LogStep(2, "Step 2b: Reads the attribute: EffectiveOperationMode"); + LogStep(2, "Step 2b: TH reads from the DUT the EffectiveOperationMode attribute"); VerifyOrDo(!ShouldSkip("PCC.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id, true, chip::NullOptional); } case 3: { - LogStep(3, "Step 3a: Write 0 to the ControlMode attribute to DUT"); + LogStep(3, "Step 3a: TH write 0 (ConstantSpeed) to the ControlMode attribute to DUT one at a time."); VerifyOrDo(!ShouldSkip("PCC.S.F03 && PCC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value; @@ -58001,13 +58345,13 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::NullOptional); } case 4: { - LogStep(4, "Step 3b: Reads the attribute: EffectiveControlMode"); + LogStep(4, "Step 3b: TH reads from the DUT the EffectiveControlMode attribute."); VerifyOrDo(!ShouldSkip("PCC.S.F03 && PCC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 5: { - LogStep(5, "Step 4a: Write 1 to the ControlMode attribute to DUT"); + LogStep(5, "Step 4a: TH write 1 (ConstantPressure) to the ControlMode attribute to DUT one at a time."); VerifyOrDo(!ShouldSkip("PCC.S.F00 && PCC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value; @@ -58017,13 +58361,13 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::NullOptional); } case 6: { - LogStep(6, "Step 4b: Reads the attribute: EffectiveControlMode"); + LogStep(6, "Step 4b: TH reads from the DUT the EffectiveControlMode attribute."); VerifyOrDo(!ShouldSkip("PCC.S.F00 && PCC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 7: { - LogStep(7, "Step 5a: Write 2 to the ControlMode attribute to DUT"); + LogStep(7, "Step 5a: TH write 2 (ProportionalPressure) to the ControlMode attribute to DUT one at a time."); VerifyOrDo(!ShouldSkip("PCC.S.F01 && PCC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value; @@ -58033,13 +58377,13 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::NullOptional); } case 8: { - LogStep(8, "Step 5b: Reads the attribute: EffectiveControlMode"); + LogStep(8, "Step 5b: TH reads from the DUT the EffectiveControlMode attribute."); VerifyOrDo(!ShouldSkip("PCC.S.F01 && PCC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 9: { - LogStep(9, "Step 6a: Write 3 to the ControlMode attribute to DUT"); + LogStep(9, "Step 6a: TH write 3 (ConstantFlow) to the ControlMode attribute to DUT one at a time."); VerifyOrDo(!ShouldSkip("PCC.S.F02 && PCC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value; @@ -58049,13 +58393,13 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::NullOptional); } case 10: { - LogStep(10, "Step 6b: Reads the attribute: EffectiveControlMode"); + LogStep(10, "Step 6b: TH reads from the DUT the _EffectiveControlMode attribute."); VerifyOrDo(!ShouldSkip("PCC.S.F02 && PCC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 11: { - LogStep(11, "Step 7a: Write 5 to the ControlMode attribute to DUT"); + LogStep(11, "Step 7a: TH write 5 (ConstantTemperature) to the ControlMode attribute to DUT one at a time."); VerifyOrDo(!ShouldSkip("PCC.S.F04 && PCC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value; @@ -58065,13 +58409,13 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::NullOptional); } case 12: { - LogStep(12, "Step 7b: Reads the attribute: EffectiveControlMode"); + LogStep(12, "Step 7b: TH reads from the DUT the EffectiveControlMode attribute."); VerifyOrDo(!ShouldSkip("PCC.S.F04 && PCC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); } case 13: { - LogStep(13, "Step 8a: Write 7 to the ControlMode attribute to DUT"); + LogStep(13, "Step 8a: TH write 7 (Automatic) to the ControlMode attribute to DUT one at a time."); VerifyOrDo(!ShouldSkip("PCC.S.F05 && PCC.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value; @@ -58081,7 +58425,7 @@ class Test_TC_PCC_2_3Suite : public TestCommand chip::NullOptional); } case 14: { - LogStep(14, "Step 8b: Reads the attribute: EffectiveControlMode"); + LogStep(14, "Step 8b: TH reads from the DUT the EffectiveControlMode attribute."); VerifyOrDo(!ShouldSkip("PCC.S.F05 && PCC.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PumpConfigurationAndControl::Id, PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id, true, chip::NullOptional); @@ -117326,10 +117670,10 @@ class Test_TC_DA_1_6Suite : public TestCommand } }; -class Test_TC_BINFO_2_4Suite : public TestCommand +class Test_TC_BINFO_3_1Suite : public TestCommand { public: - Test_TC_BINFO_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BINFO_2_4", 0, credsIssuerConfig) + Test_TC_BINFO_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BINFO_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -117337,7 +117681,7 @@ class Test_TC_BINFO_2_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_BINFO_2_4Suite() {} + ~Test_TC_BINFO_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -118982,10 +119326,11 @@ class Test_TC_DLOG_3_1Suite : public TestCommand } }; -class Test_TC_DESC_2_1Suite : public TestCommand +class Test_TC_DISHALM_1_1Suite : public TestCommand { public: - Test_TC_DESC_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DESC_2_1", 0, credsIssuerConfig) + Test_TC_DISHALM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DISHALM_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -118993,7 +119338,7 @@ class Test_TC_DESC_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DESC_2_1Suite() {} + ~Test_TC_DISHALM_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119037,10 +119382,11 @@ class Test_TC_DESC_2_1Suite : public TestCommand } }; -class Test_TC_CGEN_2_2Suite : public TestCommand +class Test_TC_DISHALM_2_1Suite : public TestCommand { public: - Test_TC_CGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_2_2", 0, credsIssuerConfig) + Test_TC_DISHALM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DISHALM_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119048,7 +119394,7 @@ class Test_TC_CGEN_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CGEN_2_2Suite() {} + ~Test_TC_DISHALM_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119092,120 +119438,11 @@ class Test_TC_CGEN_2_2Suite : public TestCommand } }; -class Test_TC_DGGEN_2_2Suite : public TestCommand -{ -public: - Test_TC_DGGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_2", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DGGEN_2_2Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_DGGEN_2_3Suite : public TestCommand -{ -public: - Test_TC_DGGEN_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_3", 0, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DGGEN_2_3Suite() {} - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - {} - return CHIP_NO_ERROR; - } -}; - -class Test_TC_DGGEN_3_1Suite : public TestCommand +class Test_TC_DISHALM_3_1Suite : public TestCommand { public: - Test_TC_DGGEN_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_3_1", 0, credsIssuerConfig) + Test_TC_DISHALM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DISHALM_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119213,7 +119450,7 @@ class Test_TC_DGGEN_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGGEN_3_1Suite() {} + ~Test_TC_DISHALM_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119257,10 +119494,11 @@ class Test_TC_DGGEN_3_1Suite : public TestCommand } }; -class Test_TC_I_3_2Suite : public TestCommand +class Test_TC_DISHALM_3_2Suite : public TestCommand { public: - Test_TC_I_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_2", 0, credsIssuerConfig) + Test_TC_DISHALM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DISHALM_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119268,7 +119506,7 @@ class Test_TC_I_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_I_3_2Suite() {} + ~Test_TC_DISHALM_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119312,10 +119550,11 @@ class Test_TC_I_3_2Suite : public TestCommand } }; -class Test_TC_IDM_1_1Suite : public TestCommand +class Test_TC_DISHALM_3_3Suite : public TestCommand { public: - Test_TC_IDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_1", 0, credsIssuerConfig) + Test_TC_DISHALM_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DISHALM_3_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119323,7 +119562,7 @@ class Test_TC_IDM_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_1_1Suite() {} + ~Test_TC_DISHALM_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119367,10 +119606,11 @@ class Test_TC_IDM_1_1Suite : public TestCommand } }; -class Test_TC_IDM_2_1Suite : public TestCommand +class Test_TC_DISHALM_3_4Suite : public TestCommand { public: - Test_TC_IDM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_1", 0, credsIssuerConfig) + Test_TC_DISHALM_3_4Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DISHALM_3_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119378,7 +119618,7 @@ class Test_TC_IDM_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_2_1Suite() {} + ~Test_TC_DISHALM_3_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119422,10 +119662,11 @@ class Test_TC_IDM_2_1Suite : public TestCommand } }; -class Test_TC_IDM_2_2Suite : public TestCommand +class Test_TC_DISHALM_3_5Suite : public TestCommand { public: - Test_TC_IDM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_2", 0, credsIssuerConfig) + Test_TC_DISHALM_3_5Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DISHALM_3_5", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119433,7 +119674,7 @@ class Test_TC_IDM_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_2_2Suite() {} + ~Test_TC_DISHALM_3_5Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119477,10 +119718,11 @@ class Test_TC_IDM_2_2Suite : public TestCommand } }; -class Test_TC_IDM_3_1Suite : public TestCommand +class Test_TC_DISHALM_3_6Suite : public TestCommand { public: - Test_TC_IDM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_1", 0, credsIssuerConfig) + Test_TC_DISHALM_3_6Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DISHALM_3_6", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119488,7 +119730,7 @@ class Test_TC_IDM_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_3_1Suite() {} + ~Test_TC_DISHALM_3_6Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119532,10 +119774,10 @@ class Test_TC_IDM_3_1Suite : public TestCommand } }; -class Test_TC_IDM_3_2Suite : public TestCommand +class Test_TC_DISHM_1_1Suite : public TestCommand { public: - Test_TC_IDM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_2", 0, credsIssuerConfig) + Test_TC_DISHM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DISHM_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119543,7 +119785,7 @@ class Test_TC_IDM_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_3_2Suite() {} + ~Test_TC_DISHM_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119587,10 +119829,10 @@ class Test_TC_IDM_3_2Suite : public TestCommand } }; -class Test_TC_IDM_4_1Suite : public TestCommand +class Test_TC_DISHM_1_2Suite : public TestCommand { public: - Test_TC_IDM_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_1", 0, credsIssuerConfig) + Test_TC_DISHM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DISHM_1_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119598,7 +119840,7 @@ class Test_TC_IDM_4_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_1Suite() {} + ~Test_TC_DISHM_1_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119642,10 +119884,10 @@ class Test_TC_IDM_4_1Suite : public TestCommand } }; -class Test_TC_IDM_4_2Suite : public TestCommand +class Test_TC_DISHM_2_1Suite : public TestCommand { public: - Test_TC_IDM_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_2", 0, credsIssuerConfig) + Test_TC_DISHM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DISHM_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119653,7 +119895,7 @@ class Test_TC_IDM_4_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_2Suite() {} + ~Test_TC_DISHM_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119697,10 +119939,10 @@ class Test_TC_IDM_4_2Suite : public TestCommand } }; -class Test_TC_IDM_4_3Suite : public TestCommand +class Test_TC_DISHM_3_1Suite : public TestCommand { public: - Test_TC_IDM_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_3", 0, credsIssuerConfig) + Test_TC_DISHM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DISHM_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119708,7 +119950,7 @@ class Test_TC_IDM_4_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_3Suite() {} + ~Test_TC_DISHM_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119752,10 +119994,10 @@ class Test_TC_IDM_4_3Suite : public TestCommand } }; -class Test_TC_IDM_4_4Suite : public TestCommand +class Test_TC_DISHM_3_2Suite : public TestCommand { public: - Test_TC_IDM_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_4", 0, credsIssuerConfig) + Test_TC_DISHM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DISHM_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119763,7 +120005,7 @@ class Test_TC_IDM_4_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_4_4Suite() {} + ~Test_TC_DISHM_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119807,10 +120049,10 @@ class Test_TC_IDM_4_4Suite : public TestCommand } }; -class Test_TC_IDM_5_1Suite : public TestCommand +class Test_TC_DISHM_3_3Suite : public TestCommand { public: - Test_TC_IDM_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_1", 0, credsIssuerConfig) + Test_TC_DISHM_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DISHM_3_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119818,7 +120060,7 @@ class Test_TC_IDM_5_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_5_1Suite() {} + ~Test_TC_DISHM_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119862,10 +120104,10 @@ class Test_TC_IDM_5_1Suite : public TestCommand } }; -class Test_TC_IDM_5_2Suite : public TestCommand +class Test_TC_DESC_2_1Suite : public TestCommand { public: - Test_TC_IDM_5_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_2", 0, credsIssuerConfig) + Test_TC_DESC_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DESC_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119873,7 +120115,7 @@ class Test_TC_IDM_5_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_5_2Suite() {} + ~Test_TC_DESC_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119917,10 +120159,10 @@ class Test_TC_IDM_5_2Suite : public TestCommand } }; -class Test_TC_IDM_6_1Suite : public TestCommand +class Test_TC_FAN_3_3Suite : public TestCommand { public: - Test_TC_IDM_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_1", 0, credsIssuerConfig) + Test_TC_FAN_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FAN_3_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119928,7 +120170,7 @@ class Test_TC_IDM_6_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_1Suite() {} + ~Test_TC_FAN_3_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -119972,10 +120214,10 @@ class Test_TC_IDM_6_1Suite : public TestCommand } }; -class Test_TC_IDM_6_2Suite : public TestCommand +class Test_TC_FAN_3_5Suite : public TestCommand { public: - Test_TC_IDM_6_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_2", 0, credsIssuerConfig) + Test_TC_FAN_3_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_FAN_3_5", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -119983,7 +120225,7 @@ class Test_TC_IDM_6_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_2Suite() {} + ~Test_TC_FAN_3_5Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120027,10 +120269,10 @@ class Test_TC_IDM_6_2Suite : public TestCommand } }; -class Test_TC_IDM_6_3Suite : public TestCommand +class Test_TC_CGEN_2_2Suite : public TestCommand { public: - Test_TC_IDM_6_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_3", 0, credsIssuerConfig) + Test_TC_CGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CGEN_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120038,7 +120280,7 @@ class Test_TC_IDM_6_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_3Suite() {} + ~Test_TC_CGEN_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120082,10 +120324,10 @@ class Test_TC_IDM_6_3Suite : public TestCommand } }; -class Test_TC_IDM_6_4Suite : public TestCommand +class Test_TC_DGGEN_2_2Suite : public TestCommand { public: - Test_TC_IDM_6_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_4", 0, credsIssuerConfig) + Test_TC_DGGEN_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120093,7 +120335,7 @@ class Test_TC_IDM_6_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_6_4Suite() {} + ~Test_TC_DGGEN_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120137,10 +120379,10 @@ class Test_TC_IDM_6_4Suite : public TestCommand } }; -class Test_TC_IDM_7_1Suite : public TestCommand +class Test_TC_DGGEN_2_3Suite : public TestCommand { public: - Test_TC_IDM_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_7_1", 0, credsIssuerConfig) + Test_TC_DGGEN_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120148,7 +120390,7 @@ class Test_TC_IDM_7_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_7_1Suite() {} + ~Test_TC_DGGEN_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120192,10 +120434,10 @@ class Test_TC_IDM_7_1Suite : public TestCommand } }; -class Test_TC_IDM_8_1Suite : public TestCommand +class Test_TC_DGGEN_3_1Suite : public TestCommand { public: - Test_TC_IDM_8_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_8_1", 0, credsIssuerConfig) + Test_TC_DGGEN_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGGEN_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120203,7 +120445,7 @@ class Test_TC_IDM_8_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_IDM_8_1Suite() {} + ~Test_TC_DGGEN_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120247,11 +120489,10 @@ class Test_TC_IDM_8_1Suite : public TestCommand } }; -class Test_TC_LOWPOWER_2_2Suite : public TestCommand +class Test_TC_ICDM_2_2Suite : public TestCommand { public: - Test_TC_LOWPOWER_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_LOWPOWER_2_2", 0, credsIssuerConfig) + Test_TC_ICDM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ICDM_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120259,7 +120500,7 @@ class Test_TC_LOWPOWER_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_LOWPOWER_2_2Suite() {} + ~Test_TC_ICDM_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120303,11 +120544,10 @@ class Test_TC_LOWPOWER_2_2Suite : public TestCommand } }; -class Test_TC_APPLAUNCHER_3_7_1Suite : public TestCommand +class Test_TC_ICDM_2_3Suite : public TestCommand { public: - Test_TC_APPLAUNCHER_3_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_APPLAUNCHER_3_7_1", 0, credsIssuerConfig) + Test_TC_ICDM_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ICDM_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120315,7 +120555,7 @@ class Test_TC_APPLAUNCHER_3_7_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_APPLAUNCHER_3_7_1Suite() {} + ~Test_TC_ICDM_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120359,11 +120599,10 @@ class Test_TC_APPLAUNCHER_3_7_1Suite : public TestCommand } }; -class Test_TC_APPLAUNCHER_3_8_1Suite : public TestCommand +class Test_TC_I_3_2Suite : public TestCommand { public: - Test_TC_APPLAUNCHER_3_8_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_APPLAUNCHER_3_8_1", 0, credsIssuerConfig) + Test_TC_I_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_I_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120371,7 +120610,7 @@ class Test_TC_APPLAUNCHER_3_8_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_APPLAUNCHER_3_8_1Suite() {} + ~Test_TC_I_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120415,11 +120654,10 @@ class Test_TC_APPLAUNCHER_3_8_1Suite : public TestCommand } }; -class Test_TC_APPLAUNCHER_3_9_1Suite : public TestCommand +class Test_TC_IDM_1_1Suite : public TestCommand { public: - Test_TC_APPLAUNCHER_3_9_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_APPLAUNCHER_3_9_1", 0, credsIssuerConfig) + Test_TC_IDM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120427,7 +120665,7 @@ class Test_TC_APPLAUNCHER_3_9_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_APPLAUNCHER_3_9_1Suite() {} + ~Test_TC_IDM_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120471,11 +120709,10 @@ class Test_TC_APPLAUNCHER_3_9_1Suite : public TestCommand } }; -class Test_TC_MEDIAINPUT_3_14Suite : public TestCommand +class Test_TC_IDM_2_1Suite : public TestCommand { public: - Test_TC_MEDIAINPUT_3_14Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAINPUT_3_14", 0, credsIssuerConfig) + Test_TC_IDM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120483,7 +120720,7 @@ class Test_TC_MEDIAINPUT_3_14Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_MEDIAINPUT_3_14Suite() {} + ~Test_TC_IDM_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120527,11 +120764,10 @@ class Test_TC_MEDIAINPUT_3_14Suite : public TestCommand } }; -class Test_TC_MEDIAINPUT_3_15Suite : public TestCommand +class Test_TC_IDM_2_2Suite : public TestCommand { public: - Test_TC_MEDIAINPUT_3_15Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAINPUT_3_15", 0, credsIssuerConfig) + Test_TC_IDM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120539,7 +120775,7 @@ class Test_TC_MEDIAINPUT_3_15Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_MEDIAINPUT_3_15Suite() {} + ~Test_TC_IDM_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120583,11 +120819,10 @@ class Test_TC_MEDIAINPUT_3_15Suite : public TestCommand } }; -class Test_TC_MEDIAINPUT_3_16Suite : public TestCommand +class Test_TC_IDM_3_1Suite : public TestCommand { public: - Test_TC_MEDIAINPUT_3_16Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAINPUT_3_16", 0, credsIssuerConfig) + Test_TC_IDM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120595,7 +120830,7 @@ class Test_TC_MEDIAINPUT_3_16Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_MEDIAINPUT_3_16Suite() {} + ~Test_TC_IDM_3_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120639,11 +120874,10 @@ class Test_TC_MEDIAINPUT_3_16Suite : public TestCommand } }; -class Test_TC_MEDIAINPUT_3_17Suite : public TestCommand +class Test_TC_IDM_3_2Suite : public TestCommand { public: - Test_TC_MEDIAINPUT_3_17Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAINPUT_3_17", 0, credsIssuerConfig) + Test_TC_IDM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120651,7 +120885,7 @@ class Test_TC_MEDIAINPUT_3_17Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_MEDIAINPUT_3_17Suite() {} + ~Test_TC_IDM_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120695,11 +120929,10 @@ class Test_TC_MEDIAINPUT_3_17Suite : public TestCommand } }; -class Test_TC_CHANNEL_5_4Suite : public TestCommand +class Test_TC_IDM_4_1Suite : public TestCommand { public: - Test_TC_CHANNEL_5_4Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CHANNEL_5_4", 0, credsIssuerConfig) + Test_TC_IDM_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120707,7 +120940,7 @@ class Test_TC_CHANNEL_5_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CHANNEL_5_4Suite() {} + ~Test_TC_IDM_4_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120751,11 +120984,10 @@ class Test_TC_CHANNEL_5_4Suite : public TestCommand } }; -class Test_TC_CHANNEL_5_5Suite : public TestCommand +class Test_TC_IDM_4_2Suite : public TestCommand { public: - Test_TC_CHANNEL_5_5Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CHANNEL_5_5", 0, credsIssuerConfig) + Test_TC_IDM_4_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120763,7 +120995,7 @@ class Test_TC_CHANNEL_5_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CHANNEL_5_5Suite() {} + ~Test_TC_IDM_4_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120807,11 +121039,10 @@ class Test_TC_CHANNEL_5_5Suite : public TestCommand } }; -class Test_TC_CHANNEL_5_6Suite : public TestCommand +class Test_TC_IDM_4_3Suite : public TestCommand { public: - Test_TC_CHANNEL_5_6Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CHANNEL_5_6", 0, credsIssuerConfig) + Test_TC_IDM_4_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120819,7 +121050,7 @@ class Test_TC_CHANNEL_5_6Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CHANNEL_5_6Suite() {} + ~Test_TC_IDM_4_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120863,11 +121094,10 @@ class Test_TC_CHANNEL_5_6Suite : public TestCommand } }; -class Test_TC_KEYPADINPUT_3_1Suite : public TestCommand +class Test_TC_IDM_4_4Suite : public TestCommand { public: - Test_TC_KEYPADINPUT_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_KEYPADINPUT_3_1", 0, credsIssuerConfig) + Test_TC_IDM_4_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_4_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120875,7 +121105,7 @@ class Test_TC_KEYPADINPUT_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_KEYPADINPUT_3_1Suite() {} + ~Test_TC_IDM_4_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120919,11 +121149,10 @@ class Test_TC_KEYPADINPUT_3_1Suite : public TestCommand } }; -class Test_TC_MEDIAPLAYBACK_6_5Suite : public TestCommand +class Test_TC_IDM_5_1Suite : public TestCommand { public: - Test_TC_MEDIAPLAYBACK_6_5Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAPLAYBACK_6_5", 0, credsIssuerConfig) + Test_TC_IDM_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120931,7 +121160,7 @@ class Test_TC_MEDIAPLAYBACK_6_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_MEDIAPLAYBACK_6_5Suite() {} + ~Test_TC_IDM_5_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -120975,11 +121204,10 @@ class Test_TC_MEDIAPLAYBACK_6_5Suite : public TestCommand } }; -class Test_TC_MEDIAPLAYBACK_6_7Suite : public TestCommand +class Test_TC_IDM_5_2Suite : public TestCommand { public: - Test_TC_MEDIAPLAYBACK_6_7Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_MEDIAPLAYBACK_6_7", 0, credsIssuerConfig) + Test_TC_IDM_5_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_5_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -120987,7 +121215,7 @@ class Test_TC_MEDIAPLAYBACK_6_7Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_MEDIAPLAYBACK_6_7Suite() {} + ~Test_TC_IDM_5_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121031,11 +121259,10 @@ class Test_TC_MEDIAPLAYBACK_6_7Suite : public TestCommand } }; -class Test_TC_AUDIOOUTPUT_7_3Suite : public TestCommand +class Test_TC_IDM_6_1Suite : public TestCommand { public: - Test_TC_AUDIOOUTPUT_7_3Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_AUDIOOUTPUT_7_3", 0, credsIssuerConfig) + Test_TC_IDM_6_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121043,7 +121270,7 @@ class Test_TC_AUDIOOUTPUT_7_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_AUDIOOUTPUT_7_3Suite() {} + ~Test_TC_IDM_6_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121087,11 +121314,10 @@ class Test_TC_AUDIOOUTPUT_7_3Suite : public TestCommand } }; -class Test_TC_AUDIOOUTPUT_7_4Suite : public TestCommand +class Test_TC_IDM_6_2Suite : public TestCommand { public: - Test_TC_AUDIOOUTPUT_7_4Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_AUDIOOUTPUT_7_4", 0, credsIssuerConfig) + Test_TC_IDM_6_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121099,7 +121325,7 @@ class Test_TC_AUDIOOUTPUT_7_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_AUDIOOUTPUT_7_4Suite() {} + ~Test_TC_IDM_6_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121143,11 +121369,10 @@ class Test_TC_AUDIOOUTPUT_7_4Suite : public TestCommand } }; -class Test_TC_CONTENTLAUNCHER_10_4Suite : public TestCommand +class Test_TC_IDM_6_3Suite : public TestCommand { public: - Test_TC_CONTENTLAUNCHER_10_4Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CONTENTLAUNCHER_10_4", 0, credsIssuerConfig) + Test_TC_IDM_6_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121155,7 +121380,7 @@ class Test_TC_CONTENTLAUNCHER_10_4Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CONTENTLAUNCHER_10_4Suite() {} + ~Test_TC_IDM_6_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121199,10 +121424,10 @@ class Test_TC_CONTENTLAUNCHER_10_4Suite : public TestCommand } }; -class Test_TC_MC_11_1Suite : public TestCommand +class Test_TC_IDM_6_4Suite : public TestCommand { public: - Test_TC_MC_11_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MC_11_1", 0, credsIssuerConfig) + Test_TC_IDM_6_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_6_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121210,7 +121435,7 @@ class Test_TC_MC_11_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_MC_11_1Suite() {} + ~Test_TC_IDM_6_4Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121254,10 +121479,10 @@ class Test_TC_MC_11_1Suite : public TestCommand } }; -class Test_TC_MC_11_2Suite : public TestCommand +class Test_TC_IDM_7_1Suite : public TestCommand { public: - Test_TC_MC_11_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MC_11_2", 0, credsIssuerConfig) + Test_TC_IDM_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_7_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121265,7 +121490,7 @@ class Test_TC_MC_11_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_MC_11_2Suite() {} + ~Test_TC_IDM_7_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121309,11 +121534,10 @@ class Test_TC_MC_11_2Suite : public TestCommand } }; -class Test_TC_ALOGIN_12_2Suite : public TestCommand +class Test_TC_IDM_8_1Suite : public TestCommand { public: - Test_TC_ALOGIN_12_2Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_ALOGIN_12_2", 0, credsIssuerConfig) + Test_TC_IDM_8_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_IDM_8_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121321,7 +121545,7 @@ class Test_TC_ALOGIN_12_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ALOGIN_12_2Suite() {} + ~Test_TC_IDM_8_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121365,10 +121589,11 @@ class Test_TC_ALOGIN_12_2Suite : public TestCommand } }; -class Test_TC_TGTNAV_8_2Suite : public TestCommand +class Test_TC_LOWPOWER_2_2Suite : public TestCommand { public: - Test_TC_TGTNAV_8_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TGTNAV_8_2", 0, credsIssuerConfig) + Test_TC_LOWPOWER_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_LOWPOWER_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121376,7 +121601,7 @@ class Test_TC_TGTNAV_8_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_TGTNAV_8_2Suite() {} + ~Test_TC_LOWPOWER_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121420,10 +121645,11 @@ class Test_TC_TGTNAV_8_2Suite : public TestCommand } }; -class Test_TC_CADMIN_1_1Suite : public TestCommand +class Test_TC_APPLAUNCHER_3_7_1Suite : public TestCommand { public: - Test_TC_CADMIN_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CADMIN_1_1", 0, credsIssuerConfig) + Test_TC_APPLAUNCHER_3_7_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_APPLAUNCHER_3_7_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121431,7 +121657,7 @@ class Test_TC_CADMIN_1_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CADMIN_1_1Suite() {} + ~Test_TC_APPLAUNCHER_3_7_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121475,10 +121701,11 @@ class Test_TC_CADMIN_1_1Suite : public TestCommand } }; -class Test_TC_CADMIN_1_2Suite : public TestCommand +class Test_TC_APPLAUNCHER_3_8_1Suite : public TestCommand { public: - Test_TC_CADMIN_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CADMIN_1_2", 0, credsIssuerConfig) + Test_TC_APPLAUNCHER_3_8_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_APPLAUNCHER_3_8_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121486,7 +121713,7 @@ class Test_TC_CADMIN_1_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CADMIN_1_2Suite() {} + ~Test_TC_APPLAUNCHER_3_8_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121530,10 +121757,11 @@ class Test_TC_CADMIN_1_2Suite : public TestCommand } }; -class Test_TC_CADMIN_1_7Suite : public TestCommand +class Test_TC_APPLAUNCHER_3_9_1Suite : public TestCommand { public: - Test_TC_CADMIN_1_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CADMIN_1_7", 0, credsIssuerConfig) + Test_TC_APPLAUNCHER_3_9_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_APPLAUNCHER_3_9_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121541,7 +121769,7 @@ class Test_TC_CADMIN_1_7Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CADMIN_1_7Suite() {} + ~Test_TC_APPLAUNCHER_3_9_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121585,10 +121813,11 @@ class Test_TC_CADMIN_1_7Suite : public TestCommand } }; -class Test_TC_CADMIN_1_8Suite : public TestCommand +class Test_TC_MEDIAINPUT_3_14Suite : public TestCommand { public: - Test_TC_CADMIN_1_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CADMIN_1_8", 0, credsIssuerConfig) + Test_TC_MEDIAINPUT_3_14Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_MEDIAINPUT_3_14", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121596,7 +121825,7 @@ class Test_TC_CADMIN_1_8Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CADMIN_1_8Suite() {} + ~Test_TC_MEDIAINPUT_3_14Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121640,11 +121869,11 @@ class Test_TC_CADMIN_1_8Suite : public TestCommand } }; -class Test_TC_CADMIN_1_11Suite : public TestCommand +class Test_TC_MEDIAINPUT_3_15Suite : public TestCommand { public: - Test_TC_CADMIN_1_11Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_11", 0, credsIssuerConfig) + Test_TC_MEDIAINPUT_3_15Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_MEDIAINPUT_3_15", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121652,7 +121881,7 @@ class Test_TC_CADMIN_1_11Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CADMIN_1_11Suite() {} + ~Test_TC_MEDIAINPUT_3_15Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121696,11 +121925,11 @@ class Test_TC_CADMIN_1_11Suite : public TestCommand } }; -class Test_TC_CADMIN_1_12Suite : public TestCommand +class Test_TC_MEDIAINPUT_3_16Suite : public TestCommand { public: - Test_TC_CADMIN_1_12Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_12", 0, credsIssuerConfig) + Test_TC_MEDIAINPUT_3_16Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_MEDIAINPUT_3_16", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121708,7 +121937,7 @@ class Test_TC_CADMIN_1_12Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CADMIN_1_12Suite() {} + ~Test_TC_MEDIAINPUT_3_16Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121752,11 +121981,11 @@ class Test_TC_CADMIN_1_12Suite : public TestCommand } }; -class Test_TC_CADMIN_1_14Suite : public TestCommand +class Test_TC_MEDIAINPUT_3_17Suite : public TestCommand { public: - Test_TC_CADMIN_1_14Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_14", 0, credsIssuerConfig) + Test_TC_MEDIAINPUT_3_17Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_MEDIAINPUT_3_17", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121764,7 +121993,7 @@ class Test_TC_CADMIN_1_14Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CADMIN_1_14Suite() {} + ~Test_TC_MEDIAINPUT_3_17Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -121808,11 +122037,11 @@ class Test_TC_CADMIN_1_14Suite : public TestCommand } }; -class Test_TC_CADMIN_1_15Suite : public TestCommand +class Test_TC_CHANNEL_5_4Suite : public TestCommand { public: - Test_TC_CADMIN_1_15Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_CADMIN_1_15", 0, credsIssuerConfig) + Test_TC_CHANNEL_5_4Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CHANNEL_5_4", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -121820,7 +122049,1120 @@ class Test_TC_CADMIN_1_15Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_CADMIN_1_15Suite() {} + ~Test_TC_CHANNEL_5_4Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CHANNEL_5_5Suite : public TestCommand +{ +public: + Test_TC_CHANNEL_5_5Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CHANNEL_5_5", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CHANNEL_5_5Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CHANNEL_5_6Suite : public TestCommand +{ +public: + Test_TC_CHANNEL_5_6Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CHANNEL_5_6", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CHANNEL_5_6Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_KEYPADINPUT_3_1Suite : public TestCommand +{ +public: + Test_TC_KEYPADINPUT_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_KEYPADINPUT_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_KEYPADINPUT_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_MEDIAPLAYBACK_6_5Suite : public TestCommand +{ +public: + Test_TC_MEDIAPLAYBACK_6_5Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_MEDIAPLAYBACK_6_5", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_MEDIAPLAYBACK_6_5Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_MEDIAPLAYBACK_6_7Suite : public TestCommand +{ +public: + Test_TC_MEDIAPLAYBACK_6_7Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_MEDIAPLAYBACK_6_7", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_MEDIAPLAYBACK_6_7Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_AUDIOOUTPUT_7_3Suite : public TestCommand +{ +public: + Test_TC_AUDIOOUTPUT_7_3Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_AUDIOOUTPUT_7_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_AUDIOOUTPUT_7_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_AUDIOOUTPUT_7_4Suite : public TestCommand +{ +public: + Test_TC_AUDIOOUTPUT_7_4Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_AUDIOOUTPUT_7_4", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_AUDIOOUTPUT_7_4Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CONTENTLAUNCHER_10_4Suite : public TestCommand +{ +public: + Test_TC_CONTENTLAUNCHER_10_4Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CONTENTLAUNCHER_10_4", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CONTENTLAUNCHER_10_4Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_MC_11_1Suite : public TestCommand +{ +public: + Test_TC_MC_11_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MC_11_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_MC_11_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_MC_11_2Suite : public TestCommand +{ +public: + Test_TC_MC_11_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MC_11_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_MC_11_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_ALOGIN_12_2Suite : public TestCommand +{ +public: + Test_TC_ALOGIN_12_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_ALOGIN_12_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ALOGIN_12_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TGTNAV_8_2Suite : public TestCommand +{ +public: + Test_TC_TGTNAV_8_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TGTNAV_8_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TGTNAV_8_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_1Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CADMIN_1_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CADMIN_1_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_2Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CADMIN_1_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CADMIN_1_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_7Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_7Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CADMIN_1_7", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CADMIN_1_7Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_8Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_8Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_CADMIN_1_8", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CADMIN_1_8Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_11Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_11Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CADMIN_1_11", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CADMIN_1_11Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_12Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_12Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CADMIN_1_12", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CADMIN_1_12Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_14Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_14Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CADMIN_1_14", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CADMIN_1_14Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_CADMIN_1_15Suite : public TestCommand +{ +public: + Test_TC_CADMIN_1_15Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_CADMIN_1_15", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_CADMIN_1_15Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -122666,7 +124008,7 @@ class Test_TC_CADMIN_1_21Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 3: { - LogStep(3, "Step 2: TH_CR1 opens a commissioning window on DUT_CE using BCM"); + LogStep(3, "Step 2: TH_CR1 opens a commissioning window on DUT_CE using BCM with a value of 900 seconds"); VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; @@ -122678,7 +124020,7 @@ class Test_TC_CADMIN_1_21Suite : public TestCommand ); } case 4: { - LogStep(4, "Step 3: Wait for commissioning Window to 901 seconds"); + LogStep(4, "Step 3: Wait 901 seconds for commissioning Window to be closed"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 901000UL; @@ -122691,7 +124033,7 @@ class Test_TC_CADMIN_1_21Suite : public TestCommand AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 5: TH_CR1 opens a commissioning window on DUT_CE"); + LogStep(6, "Step 5: TH_CR1 opens a commissioning window on DUT_CE using BCM with a value of 901 seconds"); VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; @@ -123694,7 +125036,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand ); } case 4: { - LogStep(4, "Step 3a: Verify that the DNS-SD advertisement shows CM=1"); + LogStep(4, "Step 3: Verify that the DNS-SD advertisement shows CM=1"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -123704,7 +125046,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 5: { - LogStep(5, "Step 3b: Wait for PIXIT.CADMIN.CwDuration + 10"); + LogStep(5, "Wait for PIXIT.CADMIN.CwDuration + 10"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 190000UL; @@ -123720,7 +125062,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand return PairWithCode(kIdentityBeta, value); } case 7: { - LogStep(7, "Step 5a: TH_CR1 opens a commissioning window on DUT_CE"); + LogStep(7, "Step 5: TH_CR1 opens a commissioning window on DUT_CE"); VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; @@ -123732,7 +125074,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand ); } case 8: { - LogStep(8, "Step 5b: Waiting after opening commissioning window"); + LogStep(8, "Waiting after opening commissioning window"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = mWaitAfterCommissioning.HasValue() ? mWaitAfterCommissioning.Value() : 5000UL; @@ -123751,6 +125093,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand } case 10: { LogStep(10, "Step 7: TH_CR2 starts a commissioning process with DUT_CE"); + VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -123784,7 +125127,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand true, chip::NullOptional); } case 14: { - LogStep(14, "Step 10a: TH_CR1 opens a commissioning window on DUT_CE"); + LogStep(14, "Step 10: TH_CR1 opens a commissioning window on DUT_CE"); VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; @@ -123796,7 +125139,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand ); } case 15: { - LogStep(15, "Step 10b: Waiting after opening commissioning window"); + LogStep(15, "Waiting after opening commissioning window"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = mWaitAfterCommissioning.HasValue() ? mWaitAfterCommissioning.Value() : 5000UL; @@ -123815,7 +125158,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand ); } case 17: { - LogStep(17, "Step 12a: TH_CR2 starts a commissioning process on DUT_CE"); + LogStep(17, "Step 12: TH_CR2 starts a commissioning process on DUT_CE"); ListFreer listFreer; chip::app::Clusters::CommissionerCommands::Commands::PairWithCode::Type value; value.nodeId = mNodeId2.HasValue() ? mNodeId2.Value() : 51966ULL; @@ -123823,7 +125166,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand return PairWithCode(kIdentityBeta, value); } case 18: { - LogStep(18, "Step 12b: DUT_CE is commissioned by TH_CR2"); + LogStep(18, "DUT_CE is commissioned by TH_CR2"); VerifyOrDo(!ShouldSkip("CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; @@ -123831,7 +125174,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand return WaitForCommissionee(kIdentityBeta, value); } case 19: { - LogStep(19, "Step 12c: TH2 reads CurrentFabricIndex attribute and save it for future use."); + LogStep(19, "TH2 reads CurrentFabricIndex attribute and save it for future use."); return ReadAttribute(kIdentityBeta, GetEndpoint(0), OperationalCredentials::Id, OperationalCredentials::Attributes::CurrentFabricIndex::Id, true, chip::NullOptional); } @@ -123856,7 +125199,7 @@ class Test_TC_CADMIN_1_6Suite : public TestCommand return PairWithCode(kIdentityGamma, value); } case 22: { - LogStep(22, "Step 14a: Remove TH2 FabricIndex"); + LogStep(22, "Remove TH2 FabricIndex"); VerifyOrDo(!ShouldSkip("OPCREDS.S.C0a.Rsp && CADMIN.S"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type value; @@ -124584,7 +125927,7 @@ class Test_TC_CADMIN_1_23Suite : public TestCommand return WaitForCommissionee(kIdentityAlpha, value); } case 3: { - LogStep(3, "Step 2: TH_CR1 opens a commissioning window on DUT_CE"); + LogStep(3, "Step 2: TH_CR1 opens a commissioning window on DUT_CE using BCM with a value of 180 seconds"); VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; @@ -124596,7 +125939,7 @@ class Test_TC_CADMIN_1_23Suite : public TestCommand ); } case 4: { - LogStep(4, "Step 3: Wait for commissioning Window to 181 seconds"); + LogStep(4, "Step 3: Wait for 181 seconds for commissioning Window to be closed"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 181000UL; @@ -124609,7 +125952,7 @@ class Test_TC_CADMIN_1_23Suite : public TestCommand AdministratorCommissioning::Attributes::WindowStatus::Id, true, chip::NullOptional); } case 6: { - LogStep(6, "Step 5: TH_CR1 opens a commissioning window on DUT_CE"); + LogStep(6, "Step 5: TH_CR1 opens a commissioning window on DUT_CE using BCM with a value of 179 seconds"); VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type value; @@ -124765,7 +126108,7 @@ class Test_TC_CADMIN_1_24Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 4: { - LogStep(4, "Step 2a: TH_CR1 opens a commissioning window on DUT_CE"); + LogStep(4, "Step 2a: TH_CR1 opens a commissioning window on DUT_CE using ECM with a value of 180 seconds"); VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; @@ -124812,7 +126155,7 @@ class Test_TC_CADMIN_1_24Suite : public TestCommand return UserPrompt(kIdentityAlpha, value); } case 8: { - LogStep(8, "Step 5a: TH_CR1 opens a commissioning window on DUT_CE"); + LogStep(8, "Step 5a: TH_CR1 opens a commissioning window on DUT_CE using ECM with a value of 179 seconds"); VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type value; @@ -124901,6 +126244,61 @@ class Test_TC_MOD_1_2Suite : public TestCommand } }; +class Test_TC_MOD_1_3Suite : public TestCommand +{ +public: + Test_TC_MOD_1_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_1_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_MOD_1_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + class Test_TC_MOD_2_1Suite : public TestCommand { public: @@ -124956,10 +126354,10 @@ class Test_TC_MOD_2_1Suite : public TestCommand } }; -class Test_TC_MOD_2_3Suite : public TestCommand +class Test_TC_MOD_2_2Suite : public TestCommand { public: - Test_TC_MOD_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_2_3", 0, credsIssuerConfig) + Test_TC_MOD_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -124967,7 +126365,7 @@ class Test_TC_MOD_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_MOD_2_3Suite() {} + ~Test_TC_MOD_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -125121,6 +126519,61 @@ class Test_TC_MOD_3_2Suite : public TestCommand } }; +class Test_TC_MOD_3_3Suite : public TestCommand +{ +public: + Test_TC_MOD_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_MOD_3_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_MOD_3_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + class Test_TC_MOD_3_4Suite : public TestCommand { public: @@ -133808,6 +135261,281 @@ class Test_TC_LVL_8_1Suite : public TestCommand } }; +class Test_TC_LWM_1_1Suite : public TestCommand +{ +public: + Test_TC_LWM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LWM_1_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LWM_1_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LWM_1_2Suite : public TestCommand +{ +public: + Test_TC_LWM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LWM_1_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LWM_1_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LWM_2_1Suite : public TestCommand +{ +public: + Test_TC_LWM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LWM_2_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LWM_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LWM_3_1Suite : public TestCommand +{ +public: + Test_TC_LWM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LWM_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LWM_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_LWM_3_2Suite : public TestCommand +{ +public: + Test_TC_LWM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_LWM_3_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_LWM_3_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + class Test_TC_OO_2_3Suite : public TestCommand { public: @@ -135639,6 +137367,230 @@ class Test_TC_OO_2_3Suite : public TestCommand } }; +class Test_TC_OPSTATE_2_1Suite : public TestCommand +{ +public: + Test_TC_OPSTATE_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_OPSTATE_2_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OPSTATE_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OPSTATE_2_2Suite : public TestCommand +{ +public: + Test_TC_OPSTATE_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_OPSTATE_2_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OPSTATE_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OPSTATE_2_3Suite : public TestCommand +{ +public: + Test_TC_OPSTATE_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_OPSTATE_2_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OPSTATE_2_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_OPSTATE_2_4Suite : public TestCommand +{ +public: + Test_TC_OPSTATE_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_OPSTATE_2_4", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_OPSTATE_2_4Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + class Test_TC_RH_2_2Suite : public TestCommand { public: @@ -135786,10 +137738,10 @@ class Test_TC_RH_2_2Suite : public TestCommand } }; -class Test_TC_SWTCH_2_2Suite : public TestCommand +class Test_TC_REFALM_1_1Suite : public TestCommand { public: - Test_TC_SWTCH_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SWTCH_2_2", 0, credsIssuerConfig) + Test_TC_REFALM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_REFALM_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -135797,7 +137749,7 @@ class Test_TC_SWTCH_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SWTCH_2_2Suite() {} + ~Test_TC_REFALM_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -135841,10 +137793,10 @@ class Test_TC_SWTCH_2_2Suite : public TestCommand } }; -class Test_TC_SWTCH_3_2Suite : public TestCommand +class Test_TC_REFALM_2_1Suite : public TestCommand { public: - Test_TC_SWTCH_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SWTCH_3_2", 0, credsIssuerConfig) + Test_TC_REFALM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_REFALM_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -135852,7 +137804,7 @@ class Test_TC_SWTCH_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_SWTCH_3_2Suite() {} + ~Test_TC_REFALM_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -135896,10 +137848,10 @@ class Test_TC_SWTCH_3_2Suite : public TestCommand } }; -class Test_TC_TMP_2_2Suite : public TestCommand +class Test_TC_REFALM_2_2Suite : public TestCommand { public: - Test_TC_TMP_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TMP_2_2", 6, credsIssuerConfig) + Test_TC_REFALM_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_REFALM_2_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -135907,7 +137859,7 @@ class Test_TC_TMP_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_TMP_2_2Suite() {} + ~Test_TC_REFALM_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -135920,8 +137872,6 @@ class Test_TC_TMP_2_2Suite : public TestCommand chip::Optional mEndpoint; chip::Optional mTimeout; - chip::app::DataModel::Nullable valueBeforeChange; - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } // @@ -135934,56 +137884,6 @@ class Test_TC_TMP_2_2Suite : public TestCommand switch (mTestIndex - 1) { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); - VerifyOrReturn(CheckConstraintMinValue("value", value, -27315)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 32766)); - } - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); - VerifyOrReturn(CheckConstraintMinValue("value", value, -27314)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); - } - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); - VerifyOrReturn(CheckConstraintMinValue("value", value, -27314)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); - valueBeforeChange = value; - } - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); - VerifyOrReturn(CheckConstraintMinValue("value", value, -27314)); - VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); - VerifyOrReturn(CheckConstraintNotValue("value", value, valueBeforeChange)); - } - break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -135998,57 +137898,15 @@ class Test_TC_TMP_2_2Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - { - case 0: { - LogStep(0, "Step 1: Wait for the commissioned device to be retrieved"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "Step 2: Read the mandatory attribute: MinMeasuredValue"); - VerifyOrDo(!ShouldSkip("TMP.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); - } - case 2: { - LogStep(2, "Step 3: Read the mandatory attribute: MaxMeasuredValue"); - VerifyOrDo(!ShouldSkip("TMP.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MaxMeasuredValue::Id, true, chip::NullOptional); - } - case 3: { - LogStep(3, "Step 4: Reads MeasuredValue attribute from DUT"); - VerifyOrDo(!ShouldSkip("TMP.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); - } - case 4: { - LogStep(4, "Step 5: Operate on device to change the temperature significantly"); - VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && TMP.M.ManuallyControlled"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; - value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); - value.expectedValue.Emplace(); - value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); - return UserPrompt(kIdentityAlpha, value); - } - case 5: { - LogStep(5, "Step 6: Read the mandatory attribute: MeasuredValue"); - VerifyOrDo(!ShouldSkip("TMP.S.A0000 && TMP.M.ManuallyControlled"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, - TemperatureMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); - } - } + {} return CHIP_NO_ERROR; } }; -class Test_TC_TSTAT_3_1Suite : public TestCommand +class Test_TC_REFALM_2_3Suite : public TestCommand { public: - Test_TC_TSTAT_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_3_1", 0, credsIssuerConfig) + Test_TC_REFALM_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_REFALM_2_3", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -136056,7 +137914,7 @@ class Test_TC_TSTAT_3_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_TSTAT_3_1Suite() {} + ~Test_TC_REFALM_2_3Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -136100,10 +137958,11 @@ class Test_TC_TSTAT_3_1Suite : public TestCommand } }; -class Test_TC_TSTAT_3_2Suite : public TestCommand +class Test_TC_RVCCLEANM_1_1Suite : public TestCommand { public: - Test_TC_TSTAT_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_3_2", 0, credsIssuerConfig) + Test_TC_RVCCLEANM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCCLEANM_1_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -136111,7 +137970,7 @@ class Test_TC_TSTAT_3_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_TSTAT_3_2Suite() {} + ~Test_TC_RVCCLEANM_1_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -136155,11 +138014,11 @@ class Test_TC_TSTAT_3_2Suite : public TestCommand } }; -class Test_TC_DGTHREAD_2_5Suite : public TestCommand +class Test_TC_RVCCLEANM_1_2Suite : public TestCommand { public: - Test_TC_DGTHREAD_2_5Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_DGTHREAD_2_5", 0, credsIssuerConfig) + Test_TC_RVCCLEANM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCCLEANM_1_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -136167,7 +138026,7 @@ class Test_TC_DGTHREAD_2_5Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_DGTHREAD_2_5Suite() {} + ~Test_TC_RVCCLEANM_1_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -136211,10 +138070,11 @@ class Test_TC_DGTHREAD_2_5Suite : public TestCommand } }; -class Test_TC_ACT_2_1Suite : public TestCommand +class Test_TC_RVCCLEANM_2_1Suite : public TestCommand { public: - Test_TC_ACT_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_2_1", 0, credsIssuerConfig) + Test_TC_RVCCLEANM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCCLEANM_2_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -136222,7 +138082,7 @@ class Test_TC_ACT_2_1Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ACT_2_1Suite() {} + ~Test_TC_RVCCLEANM_2_1Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -136266,10 +138126,11 @@ class Test_TC_ACT_2_1Suite : public TestCommand } }; -class Test_TC_ACT_2_2Suite : public TestCommand +class Test_TC_RVCCLEANM_3_1Suite : public TestCommand { public: - Test_TC_ACT_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_2_2", 0, credsIssuerConfig) + Test_TC_RVCCLEANM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCCLEANM_3_1", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -136277,7 +138138,1818 @@ class Test_TC_ACT_2_2Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_ACT_2_2Suite() {} + ~Test_TC_RVCCLEANM_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCCLEANM_3_2Suite : public TestCommand +{ +public: + Test_TC_RVCCLEANM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCCLEANM_3_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCCLEANM_3_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCCLEANM_3_3Suite : public TestCommand +{ +public: + Test_TC_RVCCLEANM_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCCLEANM_3_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCCLEANM_3_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCOPSTATE_2_1Suite : public TestCommand +{ +public: + Test_TC_RVCOPSTATE_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCOPSTATE_2_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCOPSTATE_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCOPSTATE_2_2Suite : public TestCommand +{ +public: + Test_TC_RVCOPSTATE_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCOPSTATE_2_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCOPSTATE_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCOPSTATE_2_3Suite : public TestCommand +{ +public: + Test_TC_RVCOPSTATE_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCOPSTATE_2_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCOPSTATE_2_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCRUNM_1_1Suite : public TestCommand +{ +public: + Test_TC_RVCRUNM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCRUNM_1_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCRUNM_1_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCRUNM_1_2Suite : public TestCommand +{ +public: + Test_TC_RVCRUNM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCRUNM_1_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCRUNM_1_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCRUNM_2_1Suite : public TestCommand +{ +public: + Test_TC_RVCRUNM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCRUNM_2_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCRUNM_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCRUNM_3_1Suite : public TestCommand +{ +public: + Test_TC_RVCRUNM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCRUNM_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCRUNM_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCRUNM_3_2Suite : public TestCommand +{ +public: + Test_TC_RVCRUNM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCRUNM_3_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCRUNM_3_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_RVCRUNM_3_3Suite : public TestCommand +{ +public: + Test_TC_RVCRUNM_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_RVCRUNM_3_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_RVCRUNM_3_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SWTCH_2_2Suite : public TestCommand +{ +public: + Test_TC_SWTCH_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SWTCH_2_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SWTCH_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_SWTCH_3_2Suite : public TestCommand +{ +public: + Test_TC_SWTCH_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SWTCH_3_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_SWTCH_3_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCCM_1_1Suite : public TestCommand +{ +public: + Test_TC_TCCM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCCM_1_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCCM_1_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCCM_1_2Suite : public TestCommand +{ +public: + Test_TC_TCCM_1_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCCM_1_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCCM_1_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCCM_2_1Suite : public TestCommand +{ +public: + Test_TC_TCCM_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCCM_2_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCCM_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCCM_3_1Suite : public TestCommand +{ +public: + Test_TC_TCCM_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCCM_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCCM_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCCM_3_2Suite : public TestCommand +{ +public: + Test_TC_TCCM_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCCM_3_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCCM_3_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCCM_3_3Suite : public TestCommand +{ +public: + Test_TC_TCCM_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCCM_3_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCCM_3_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCTL_1_1Suite : public TestCommand +{ +public: + Test_TC_TCTL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCTL_1_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCTL_1_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCTL_2_1Suite : public TestCommand +{ +public: + Test_TC_TCTL_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCTL_2_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCTL_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCTL_2_2Suite : public TestCommand +{ +public: + Test_TC_TCTL_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCTL_2_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCTL_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCTL_2_3Suite : public TestCommand +{ +public: + Test_TC_TCTL_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCTL_2_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCTL_2_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCTL_3_2Suite : public TestCommand +{ +public: + Test_TC_TCTL_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCTL_3_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCTL_3_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TCTL_3_3Suite : public TestCommand +{ +public: + Test_TC_TCTL_3_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TCTL_3_3", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TCTL_3_3Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TMP_2_2Suite : public TestCommand +{ +public: + Test_TC_TMP_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TMP_2_2", 6, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TMP_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::app::DataModel::Nullable valueBeforeChange; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); + VerifyOrReturn(CheckConstraintMinValue("value", value, -27315)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 32766)); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); + VerifyOrReturn(CheckConstraintMinValue("value", value, -27314)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); + VerifyOrReturn(CheckConstraintMinValue("value", value, -27314)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); + valueBeforeChange = value; + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::Nullable value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "int16s", "int16s")); + VerifyOrReturn(CheckConstraintMinValue("value", value, -27314)); + VerifyOrReturn(CheckConstraintMaxValue("value", value, 32767)); + VerifyOrReturn(CheckConstraintNotValue("value", value, valueBeforeChange)); + } + break; + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + { + case 0: { + LogStep(0, "Step 1: Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Step 2: Read the mandatory attribute: MinMeasuredValue"); + VerifyOrDo(!ShouldSkip("TMP.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MinMeasuredValue::Id, true, chip::NullOptional); + } + case 2: { + LogStep(2, "Step 3: Read the mandatory attribute: MaxMeasuredValue"); + VerifyOrDo(!ShouldSkip("TMP.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MaxMeasuredValue::Id, true, chip::NullOptional); + } + case 3: { + LogStep(3, "Step 4: Reads MeasuredValue attribute from DUT"); + VerifyOrDo(!ShouldSkip("TMP.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); + } + case 4: { + LogStep(4, "Step 5: Operate on device to change the temperature significantly"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && TMP.M.ManuallyControlled"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } + case 5: { + LogStep(5, "Step 6: Read the mandatory attribute: MeasuredValue"); + VerifyOrDo(!ShouldSkip("TMP.S.A0000 && TMP.M.ManuallyControlled"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), TemperatureMeasurement::Id, + TemperatureMeasurement::Attributes::MeasuredValue::Id, true, chip::NullOptional); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TSTAT_3_1Suite : public TestCommand +{ +public: + Test_TC_TSTAT_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TSTAT_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_TSTAT_3_2Suite : public TestCommand +{ +public: + Test_TC_TSTAT_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_TSTAT_3_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TSTAT_3_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DGTHREAD_2_5Suite : public TestCommand +{ +public: + Test_TC_DGTHREAD_2_5Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_DGTHREAD_2_5", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_DGTHREAD_2_5Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_ACT_2_1Suite : public TestCommand +{ +public: + Test_TC_ACT_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_2_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ACT_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_ACT_2_2Suite : public TestCommand +{ +public: + Test_TC_ACT_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACT_2_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_ACT_2_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -136486,6 +140158,62 @@ class Test_TC_LTIME_3_1Suite : public TestCommand } }; +class Test_TC_TIMESYNC_2_15Suite : public TestCommand +{ +public: + Test_TC_TIMESYNC_2_15Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_TIMESYNC_2_15", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_TIMESYNC_2_15Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + class Test_TC_BIND_2_1Suite : public TestCommand { public: @@ -139585,6 +143313,116 @@ class Test_TC_S_2_4Suite : public TestCommand } }; +class Test_TC_S_2_5Suite : public TestCommand +{ +public: + Test_TC_S_2_5Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_2_5", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_S_2_5Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_S_2_6Suite : public TestCommand +{ +public: + Test_TC_S_2_6Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_S_2_6", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_S_2_6Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + class Test_TC_S_3_1Suite : public TestCommand { public: @@ -139696,11 +143534,291 @@ class Test_TC_BRBINFO_2_2Suite : public TestCommand } }; -class Test_TC_BRBINFO_2_3Suite : public TestCommand +class Test_TC_BRBINFO_3_1Suite : public TestCommand +{ +public: + Test_TC_BRBINFO_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_BRBINFO_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_BRBINFO_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WASHERCTRL_1_1Suite : public TestCommand +{ +public: + Test_TC_WASHERCTRL_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_WASHERCTRL_1_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WASHERCTRL_1_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WASHERCTRL_2_1Suite : public TestCommand +{ +public: + Test_TC_WASHERCTRL_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_WASHERCTRL_2_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WASHERCTRL_2_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WASHERCTRL_2_2Suite : public TestCommand +{ +public: + Test_TC_WASHERCTRL_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_WASHERCTRL_2_2", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WASHERCTRL_2_2Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WASHERCTRL_3_1Suite : public TestCommand +{ +public: + Test_TC_WASHERCTRL_3_1Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_WASHERCTRL_3_1", 0, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + + ~Test_TC_WASHERCTRL_3_1Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + } + +private: + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } + + // + // Tests methods + // + + void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override + { + bool shouldContinue = false; + + switch (mTestIndex - 1) + { + default: + LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); + } + + if (shouldContinue) + { + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + } + + CHIP_ERROR DoTestStep(uint16_t testIndex) override + { + using namespace chip::app::Clusters; + switch (testIndex) + {} + return CHIP_NO_ERROR; + } +}; + +class Test_TC_WASHERCTRL_3_2Suite : public TestCommand { public: - Test_TC_BRBINFO_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_BRBINFO_2_3", 0, credsIssuerConfig) + Test_TC_WASHERCTRL_3_2Suite(CredentialIssuerCommands * credsIssuerConfig) : + TestCommand("Test_TC_WASHERCTRL_3_2", 0, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -139708,7 +143826,7 @@ class Test_TC_BRBINFO_2_3Suite : public TestCommand AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } - ~Test_TC_BRBINFO_2_3Suite() {} + ~Test_TC_WASHERCTRL_3_2Suite() {} chip::System::Clock::Timeout GetWaitDuration() const override { @@ -139828,6 +143946,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -140109,7 +144228,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -140139,11 +144258,29 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -140208,10 +144345,12 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -140272,10 +144411,50 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -140285,6 +144464,7 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), @@ -140293,9 +144473,16 @@ void registerCommandsTests(Commands & commands, CredentialIssuerCommands * creds make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), - make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), #endif // CONFIG_ENABLE_YAML_TESTS }; 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 4ee46edb2c805b..bbbf13b631f17b 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -13573,8 +13573,8 @@ class Test_TC_CC_3_2 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 8U)); - VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 12U)); + VerifyOrReturn(CheckConstraintMinValue("currentHue", [value unsignedCharValue], 4U)); + VerifyOrReturn(CheckConstraintMaxValue("currentHue", [value unsignedCharValue], 16U)); NextTest(); }]; @@ -71768,12 +71768,13 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { err = TestPreconditionMediaContentInAPausedStateAtTheBeginningOfTheContent_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Step 1: Sends a Seek command\n"); + ChipLogProgress( + chipTool, " ***** Test Step 2 : Step 1: TH sends a Seek command to the DUT with a Position value of 10000\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C0b.Rsp")) { NextTest(); return; } - err = TestStep1SendsASeekCommand_2(); + err = TestStep1ThSendsASeekCommandToTheDutWithAPositionValueOf10000_2(); break; case 3: ChipLogProgress( @@ -71785,12 +71786,12 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { err = TestVerifyThatTheMediaHasMovedTo10SecondsFromTheStartingPoint_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 2: Reads the SampledPosition attribute\n"); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 2: TH reads the SampledPosition attribute from the DUT\n"); if (ShouldSkip("MEDIAPLAYBACK.S.A0003 && MEDIAPLAYBACK.S.C0b.Rsp")) { NextTest(); return; } - err = TestStep2ReadsTheSampledPositionAttribute_4(); + err = TestStep2ThReadsTheSampledPositionAttributeFromTheDut_4(); break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Step 3: TH reads the StartTime attribute from the DUT\n"); @@ -71825,13 +71826,14 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { err = TestStep6ThReadsTheDurationAttributeFromTheDut_8(); break; case 9: - ChipLogProgress( - chipTool, " ***** Test Step 9 : Step 7: Sends a Seek command Position value beyond the furthest valid position\n"); + ChipLogProgress(chipTool, + " ***** Test Step 9 : Step 7: TH sends a Seek command to the DUT with a Position value beyond the furthest valid " + "position (ex: beyond the duration of the media)\n"); if (ShouldSkip("MEDIAPLAYBACK.S.C0b.Rsp")) { NextTest(); return; } - err = TestStep7SendsASeekCommandPositionValueBeyondTheFurthestValidPosition_9(); + err = TestStep7ThSendsASeekCommandToTheDutWithAPositionValueBeyondTheFurthestValidPositionExBeyondTheDurationOfTheMedia_9(); break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : verify that the media has not moved.\n"); @@ -71937,7 +71939,7 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep1SendsASeekCommand_2() + CHIP_ERROR TestStep1ThSendsASeekCommandToTheDutWithAPositionValueOf10000_2() { MTRBaseDevice * device = GetDevice("alpha"); @@ -71948,7 +71950,7 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { params.position = [NSNumber numberWithUnsignedLongLong:10000ULL]; [cluster seekWithParams:params completion:^(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 1: Sends a Seek command Error: %@", err); + NSLog(@"Step 1: TH sends a Seek command to the DUT with a Position value of 10000 Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -71974,7 +71976,7 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep2ReadsTheSampledPositionAttribute_4() + CHIP_ERROR TestStep2ThReadsTheSampledPositionAttributeFromTheDut_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -71983,7 +71985,7 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { [cluster readAttributeSampledPositionWithCompletion:^( MTRMediaPlaybackClusterPlaybackPositionStruct * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 2: Reads the SampledPosition attribute Error: %@", err); + NSLog(@"Step 2: TH reads the SampledPosition attribute from the DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -72042,7 +72044,7 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { return UserPrompt("alpha", value); } - CHIP_ERROR TestStep7SendsASeekCommandPositionValueBeyondTheFurthestValidPosition_9() + CHIP_ERROR TestStep7ThSendsASeekCommandToTheDutWithAPositionValueBeyondTheFurthestValidPositionExBeyondTheDurationOfTheMedia_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -72054,7 +72056,9 @@ class Test_TC_MEDIAPLAYBACK_6_3 : public TestCommandBridge { : [NSNumber numberWithUnsignedLongLong:100000000ULL]; [cluster seekWithParams:params completion:^(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Step 7: Sends a Seek command Position value beyond the furthest valid position Error: %@", err); + NSLog(@"Step 7: TH sends a Seek command to the DUT with a Position value beyond the furthest valid " + @"position (ex: beyond the duration of the media) Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -76181,6 +76185,10 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { break; case 1: ChipLogProgress(chipTool, " ***** Test Step 1 : Step 2: TH reads the ClusterRevision attribute from the DUT\n"); + if (ShouldSkip("PICS_USER_PROMPT")) { + NextTest(); + return; + } err = TestStep2ThReadsTheClusterRevisionAttributeFromTheDut_1(); break; case 2: @@ -76305,25 +76313,11 @@ class Test_TC_MOD_1_1 : public TestCommandBridge { CHIP_ERROR TestStep2ThReadsTheClusterRevisionAttributeFromTheDut_1() { - MTRBaseDevice * device = GetDevice("alpha"); - __auto_type * cluster = [[MTRBaseClusterModeSelect alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeClusterRevisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 2: TH reads the ClusterRevision attribute from the DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("ClusterRevision", actualValue, 1U)); - } - - VerifyOrReturn(CheckConstraintType("clusterRevision", "int16u", "int16u")); - NextTest(); - }]; - - return CHIP_NO_ERROR; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt("alpha", value); } CHIP_ERROR TestStep3aThReadsTheFeatureMapAttributeFromTheDut_2() @@ -81249,12 +81243,12 @@ class Test_TC_PS_2_1 : public TestCommandBridge { err = TestStep32TestHarnessClientReadsActiveBatChargeFaultsFromServerDut_31(); break; case 32: - ChipLogProgress(chipTool, " ***** Test Step 32 : Test Harness Client reads EndpointList from Server DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 32 : Step 33: Test Harness Client reads EndpointList from Server DUT\n"); if (ShouldSkip("PS.S.A001f")) { NextTest(); return; } - err = TestTestHarnessClientReadsEndpointListFromServerDut_32(); + err = TestStep33TestHarnessClientReadsEndpointListFromServerDut_32(); break; } @@ -82076,7 +82070,7 @@ class Test_TC_PS_2_1 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestTestHarnessClientReadsEndpointListFromServerDut_32() + CHIP_ERROR TestStep33TestHarnessClientReadsEndpointListFromServerDut_32() { MTRBaseDevice * device = GetDevice("alpha"); @@ -82084,7 +82078,7 @@ class Test_TC_PS_2_1 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEndpointListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) { - NSLog(@"Test Harness Client reads EndpointList from Server DUT Error: %@", err); + NSLog(@"Step 33: Test Harness Client reads EndpointList from Server DUT Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -85973,116 +85967,125 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { err = TestStep1WaitForTheCommissionedDeviceToBeRetrieved_0(); break; case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : Step 2a: Write 0 to the OperationMode attribute to DUT\n"); + ChipLogProgress(chipTool, " ***** Test Step 1 : Step 2a: TH write 0 (Normal) to the OperationMode attribute to DUT.\n"); if (ShouldSkip("PCC.S.A0020")) { NextTest(); return; } - err = TestStep2aWrite0ToTheOperationModeAttributeToDut_1(); + err = TestStep2aThWrite0NormalToTheOperationModeAttributeToDut_1(); break; case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Step 2b: Reads the attribute: EffectiveOperationMode\n"); + ChipLogProgress(chipTool, " ***** Test Step 2 : Step 2b: TH reads from the DUT the EffectiveOperationMode attribute\n"); if (ShouldSkip("PCC.S.A0011")) { NextTest(); return; } - err = TestStep2bReadsTheAttributeEffectiveOperationMode_2(); + err = TestStep2bThReadsFromTheDutTheEffectiveOperationModeAttribute_2(); break; case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : Step 3a: Write 0 to the ControlMode attribute to DUT\n"); + ChipLogProgress(chipTool, + " ***** Test Step 3 : Step 3a: TH write 0 (ConstantSpeed) to the ControlMode attribute to DUT one at a time.\n"); if (ShouldSkip("PCC.S.F03 && PCC.S.A0021")) { NextTest(); return; } - err = TestStep3aWrite0ToTheControlModeAttributeToDut_3(); + err = TestStep3aThWrite0ConstantSpeedToTheControlModeAttributeToDutOneAtATime_3(); break; case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3b: Reads the attribute: EffectiveControlMode\n"); + ChipLogProgress(chipTool, " ***** Test Step 4 : Step 3b: TH reads from the DUT the EffectiveControlMode attribute.\n"); if (ShouldSkip("PCC.S.F03 && PCC.S.A0012")) { NextTest(); return; } - err = TestStep3bReadsTheAttributeEffectiveControlMode_4(); + err = TestStep3bThReadsFromTheDutTheEffectiveControlModeAttribute_4(); break; case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : Step 4a: Write 1 to the ControlMode attribute to DUT\n"); + ChipLogProgress(chipTool, + " ***** Test Step 5 : Step 4a: TH write 1 (ConstantPressure) to the ControlMode attribute to DUT one at a time.\n"); if (ShouldSkip("PCC.S.F00 && PCC.S.A0021")) { NextTest(); return; } - err = TestStep4aWrite1ToTheControlModeAttributeToDut_5(); + err = TestStep4aThWrite1ConstantPressureToTheControlModeAttributeToDutOneAtATime_5(); break; case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4b: Reads the attribute: EffectiveControlMode\n"); + ChipLogProgress(chipTool, " ***** Test Step 6 : Step 4b: TH reads from the DUT the EffectiveControlMode attribute.\n"); if (ShouldSkip("PCC.S.F00 && PCC.S.A0012")) { NextTest(); return; } - err = TestStep4bReadsTheAttributeEffectiveControlMode_6(); + err = TestStep4bThReadsFromTheDutTheEffectiveControlModeAttribute_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : Step 5a: Write 2 to the ControlMode attribute to DUT\n"); + ChipLogProgress(chipTool, + " ***** Test Step 7 : Step 5a: TH write 2 (ProportionalPressure) to the ControlMode attribute to DUT one at a " + "time.\n"); if (ShouldSkip("PCC.S.F01 && PCC.S.A0021")) { NextTest(); return; } - err = TestStep5aWrite2ToTheControlModeAttributeToDut_7(); + err = TestStep5aThWrite2ProportionalPressureToTheControlModeAttributeToDutOneAtATime_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Step 5b: Reads the attribute: EffectiveControlMode\n"); + ChipLogProgress(chipTool, " ***** Test Step 8 : Step 5b: TH reads from the DUT the EffectiveControlMode attribute.\n"); if (ShouldSkip("PCC.S.F01 && PCC.S.A0012")) { NextTest(); return; } - err = TestStep5bReadsTheAttributeEffectiveControlMode_8(); + err = TestStep5bThReadsFromTheDutTheEffectiveControlModeAttribute_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : Step 6a: Write 3 to the ControlMode attribute to DUT\n"); + ChipLogProgress(chipTool, + " ***** Test Step 9 : Step 6a: TH write 3 (ConstantFlow) to the ControlMode attribute to DUT one at a time.\n"); if (ShouldSkip("PCC.S.F02 && PCC.S.A0021")) { NextTest(); return; } - err = TestStep6aWrite3ToTheControlModeAttributeToDut_9(); + err = TestStep6aThWrite3ConstantFlowToTheControlModeAttributeToDutOneAtATime_9(); break; case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Step 6b: Reads the attribute: EffectiveControlMode\n"); + ChipLogProgress( + chipTool, " ***** Test Step 10 : Step 6b: TH reads from the DUT the _EffectiveControlMode attribute.\n"); if (ShouldSkip("PCC.S.F02 && PCC.S.A0012")) { NextTest(); return; } - err = TestStep6bReadsTheAttributeEffectiveControlMode_10(); + err = TestStep6bThReadsFromTheDutTheEffectiveControlModeAttribute_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Step 7a: Write 5 to the ControlMode attribute to DUT\n"); + ChipLogProgress(chipTool, + " ***** Test Step 11 : Step 7a: TH write 5 (ConstantTemperature) to the ControlMode attribute to DUT one at a " + "time.\n"); if (ShouldSkip("PCC.S.F04 && PCC.S.A0021")) { NextTest(); return; } - err = TestStep7aWrite5ToTheControlModeAttributeToDut_11(); + err = TestStep7aThWrite5ConstantTemperatureToTheControlModeAttributeToDutOneAtATime_11(); break; case 12: - ChipLogProgress(chipTool, " ***** Test Step 12 : Step 7b: Reads the attribute: EffectiveControlMode\n"); + ChipLogProgress(chipTool, " ***** Test Step 12 : Step 7b: TH reads from the DUT the EffectiveControlMode attribute.\n"); if (ShouldSkip("PCC.S.F04 && PCC.S.A0012")) { NextTest(); return; } - err = TestStep7bReadsTheAttributeEffectiveControlMode_12(); + err = TestStep7bThReadsFromTheDutTheEffectiveControlModeAttribute_12(); break; case 13: - ChipLogProgress(chipTool, " ***** Test Step 13 : Step 8a: Write 7 to the ControlMode attribute to DUT\n"); + ChipLogProgress(chipTool, + " ***** Test Step 13 : Step 8a: TH write 7 (Automatic) to the ControlMode attribute to DUT one at a time.\n"); if (ShouldSkip("PCC.S.F05 && PCC.S.A0021")) { NextTest(); return; } - err = TestStep8aWrite7ToTheControlModeAttributeToDut_13(); + err = TestStep8aThWrite7AutomaticToTheControlModeAttributeToDutOneAtATime_13(); break; case 14: - ChipLogProgress(chipTool, " ***** Test Step 14 : Step 8b: Reads the attribute: EffectiveControlMode\n"); + ChipLogProgress(chipTool, " ***** Test Step 14 : Step 8b: TH reads from the DUT the EffectiveControlMode attribute.\n"); if (ShouldSkip("PCC.S.F05 && PCC.S.A0012")) { NextTest(); return; } - err = TestStep8bReadsTheAttributeEffectiveControlMode_14(); + err = TestStep8bThReadsFromTheDutTheEffectiveControlModeAttribute_14(); break; } @@ -86168,7 +86171,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return WaitForCommissionee("alpha", value); } - CHIP_ERROR TestStep2aWrite0ToTheOperationModeAttributeToDut_1() + CHIP_ERROR TestStep2aThWrite0NormalToTheOperationModeAttributeToDut_1() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86179,19 +86182,21 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { id operationModeArgument; operationModeArgument = [NSNumber numberWithUnsignedChar:0U]; - [cluster writeAttributeOperationModeWithValue:operationModeArgument - completion:^(NSError * _Nullable err) { - NSLog(@"Step 2a: Write 0 to the OperationMode attribute to DUT Error: %@", err); + [cluster + writeAttributeOperationModeWithValue:operationModeArgument + completion:^(NSError * _Nullable err) { + NSLog(@"Step 2a: TH write 0 (Normal) to the OperationMode attribute to DUT. Error: %@", + err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestStep2bReadsTheAttributeEffectiveOperationMode_2() + CHIP_ERROR TestStep2bThReadsFromTheDutTheEffectiveOperationModeAttribute_2() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86201,7 +86206,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEffectiveOperationModeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 2b: Reads the attribute: EffectiveOperationMode Error: %@", err); + NSLog(@"Step 2b: TH reads from the DUT the EffectiveOperationMode attribute Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86216,7 +86221,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3aWrite0ToTheControlModeAttributeToDut_3() + CHIP_ERROR TestStep3aThWrite0ConstantSpeedToTheControlModeAttributeToDutOneAtATime_3() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86229,7 +86234,9 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { controlModeArgument = [NSNumber numberWithUnsignedChar:0U]; [cluster writeAttributeControlModeWithValue:controlModeArgument completion:^(NSError * _Nullable err) { - NSLog(@"Step 3a: Write 0 to the ControlMode attribute to DUT Error: %@", err); + NSLog(@"Step 3a: TH write 0 (ConstantSpeed) to the ControlMode attribute to DUT one " + @"at a time. Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86239,7 +86246,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep3bReadsTheAttributeEffectiveControlMode_4() + CHIP_ERROR TestStep3bThReadsFromTheDutTheEffectiveControlModeAttribute_4() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86249,7 +86256,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEffectiveControlModeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 3b: Reads the attribute: EffectiveControlMode Error: %@", err); + NSLog(@"Step 3b: TH reads from the DUT the EffectiveControlMode attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86264,7 +86271,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4aWrite1ToTheControlModeAttributeToDut_5() + CHIP_ERROR TestStep4aThWrite1ConstantPressureToTheControlModeAttributeToDutOneAtATime_5() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86277,7 +86284,9 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { controlModeArgument = [NSNumber numberWithUnsignedChar:1U]; [cluster writeAttributeControlModeWithValue:controlModeArgument completion:^(NSError * _Nullable err) { - NSLog(@"Step 4a: Write 1 to the ControlMode attribute to DUT Error: %@", err); + NSLog(@"Step 4a: TH write 1 (ConstantPressure) to the ControlMode attribute to DUT " + @"one at a time. Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86287,7 +86296,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep4bReadsTheAttributeEffectiveControlMode_6() + CHIP_ERROR TestStep4bThReadsFromTheDutTheEffectiveControlModeAttribute_6() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86297,7 +86306,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEffectiveControlModeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 4b: Reads the attribute: EffectiveControlMode Error: %@", err); + NSLog(@"Step 4b: TH reads from the DUT the EffectiveControlMode attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86312,7 +86321,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5aWrite2ToTheControlModeAttributeToDut_7() + CHIP_ERROR TestStep5aThWrite2ProportionalPressureToTheControlModeAttributeToDutOneAtATime_7() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86325,7 +86334,9 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { controlModeArgument = [NSNumber numberWithUnsignedChar:2U]; [cluster writeAttributeControlModeWithValue:controlModeArgument completion:^(NSError * _Nullable err) { - NSLog(@"Step 5a: Write 2 to the ControlMode attribute to DUT Error: %@", err); + NSLog(@"Step 5a: TH write 2 (ProportionalPressure) to the ControlMode attribute to " + @"DUT one at a time. Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86335,7 +86346,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep5bReadsTheAttributeEffectiveControlMode_8() + CHIP_ERROR TestStep5bThReadsFromTheDutTheEffectiveControlModeAttribute_8() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86345,7 +86356,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEffectiveControlModeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 5b: Reads the attribute: EffectiveControlMode Error: %@", err); + NSLog(@"Step 5b: TH reads from the DUT the EffectiveControlMode attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86360,7 +86371,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6aWrite3ToTheControlModeAttributeToDut_9() + CHIP_ERROR TestStep6aThWrite3ConstantFlowToTheControlModeAttributeToDutOneAtATime_9() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86373,7 +86384,9 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { controlModeArgument = [NSNumber numberWithUnsignedChar:3U]; [cluster writeAttributeControlModeWithValue:controlModeArgument completion:^(NSError * _Nullable err) { - NSLog(@"Step 6a: Write 3 to the ControlMode attribute to DUT Error: %@", err); + NSLog(@"Step 6a: TH write 3 (ConstantFlow) to the ControlMode attribute to DUT one at " + @"a time. Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86383,7 +86396,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep6bReadsTheAttributeEffectiveControlMode_10() + CHIP_ERROR TestStep6bThReadsFromTheDutTheEffectiveControlModeAttribute_10() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86393,7 +86406,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEffectiveControlModeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 6b: Reads the attribute: EffectiveControlMode Error: %@", err); + NSLog(@"Step 6b: TH reads from the DUT the _EffectiveControlMode attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86408,7 +86421,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7aWrite5ToTheControlModeAttributeToDut_11() + CHIP_ERROR TestStep7aThWrite5ConstantTemperatureToTheControlModeAttributeToDutOneAtATime_11() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86421,7 +86434,9 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { controlModeArgument = [NSNumber numberWithUnsignedChar:5U]; [cluster writeAttributeControlModeWithValue:controlModeArgument completion:^(NSError * _Nullable err) { - NSLog(@"Step 7a: Write 5 to the ControlMode attribute to DUT Error: %@", err); + NSLog(@"Step 7a: TH write 5 (ConstantTemperature) to the ControlMode attribute to DUT " + @"one at a time. Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86431,7 +86446,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep7bReadsTheAttributeEffectiveControlMode_12() + CHIP_ERROR TestStep7bThReadsFromTheDutTheEffectiveControlModeAttribute_12() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86441,7 +86456,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEffectiveControlModeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 7b: Reads the attribute: EffectiveControlMode Error: %@", err); + NSLog(@"Step 7b: TH reads from the DUT the EffectiveControlMode attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86456,7 +86471,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep8aWrite7ToTheControlModeAttributeToDut_13() + CHIP_ERROR TestStep8aThWrite7AutomaticToTheControlModeAttributeToDutOneAtATime_13() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86469,7 +86484,9 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { controlModeArgument = [NSNumber numberWithUnsignedChar:7U]; [cluster writeAttributeControlModeWithValue:controlModeArgument completion:^(NSError * _Nullable err) { - NSLog(@"Step 8a: Write 7 to the ControlMode attribute to DUT Error: %@", err); + NSLog(@"Step 8a: TH write 7 (Automatic) to the ControlMode attribute to DUT one at a " + @"time. Error: %@", + err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); @@ -86479,7 +86496,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestStep8bReadsTheAttributeEffectiveControlMode_14() + CHIP_ERROR TestStep8bThReadsFromTheDutTheEffectiveControlModeAttribute_14() { MTRBaseDevice * device = GetDevice("alpha"); @@ -86489,7 +86506,7 @@ class Test_TC_PCC_2_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); [cluster readAttributeEffectiveControlModeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"Step 8b: Reads the attribute: EffectiveControlMode Error: %@", err); + NSLog(@"Step 8b: TH reads from the DUT the EffectiveControlMode attribute. Error: %@", err); VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); diff --git a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h index d28e6b3b4e3a14..c7509b6750793a 100644 --- a/zzz_generated/placeholder/app1/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app1/zap-generated/test/Commands.h @@ -23,168 +23,6 @@ #include -class Test_TC_BINFO_2_3_SimulatedSuite : public TestCommand -{ -public: - Test_TC_BINFO_2_3_SimulatedSuite() : TestCommand("Test_TC_BINFO_2_3_Simulated", 21) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_BINFO_2_3_SimulatedSuite() {} - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Log OnOff Test Startup"); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::Log::Type value; - value.message = chip::Span("*** Basic Cluster Tests Readygarbage: not in length on purpose", 29); - return Log(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "DUT reads DataModelRevision from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::DataModelRevision::Id); - } - case 2: { - LogStep(2, "DUT reads VendorName from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::VendorName::Id); - } - case 3: { - LogStep(3, "DUT reads VendorID from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::VendorID::Id); - } - case 4: { - LogStep(4, "DUT reads ProductName from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ProductName::Id); - } - case 5: { - LogStep(5, "DUT reads ProductID from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ProductID::Id); - } - case 6: { - LogStep(6, "DUT reads NodeLabel from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::NodeLabel::Id); - } - case 7: { - LogStep(7, "DUT reads Location from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::Location::Id); - } - case 8: { - LogStep(8, "DUT reads HardwareVersion from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::HardwareVersion::Id); - } - case 9: { - LogStep(9, "DUT reads HardwareVersionString from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::HardwareVersionString::Id); - } - case 10: { - LogStep(10, "DUT reads SoftwareVersion from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::SoftwareVersion::Id); - } - case 11: { - LogStep(11, "DUT reads SoftwareVersionString from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::SoftwareVersionString::Id); - } - case 12: { - LogStep(12, "DUT reads ManufacturingDate from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ManufacturingDate::Id); - } - case 13: { - LogStep(13, "DUT reads PartNumber from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::PartNumber::Id); - } - case 14: { - LogStep(14, "DUT reads ProductURL from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ProductURL::Id); - } - case 15: { - LogStep(15, "DUT reads ProductLabel from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ProductLabel::Id); - } - case 16: { - LogStep(16, "DUT reads SerialNumber from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::SerialNumber::Id); - } - case 17: { - LogStep(17, "DUT reads LocalConfigDisabled from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::LocalConfigDisabled::Id); - } - case 18: { - LogStep(18, "DUT reads Reachable from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::Reachable::Id); - } - case 19: { - LogStep(19, "DUT reads UniqueID from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::UniqueID::Id); - } - case 20: { - LogStep(20, "DUT reads CapabilityMinima from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::CapabilityMinima::Id); - } - } - return CHIP_NO_ERROR; - } -}; - class Test_TC_ACT_3_1_SimulatedSuite : public TestCommand { public: @@ -404,7 +242,7 @@ class Test_TC_BOOL_3_1_SimulatedSuite : public TestCommand class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand { public: - Test_TC_DESC_2_2_SimulatedSuite() : TestCommand("Test_TC_DESC_2_2_Simulated", 4) + Test_TC_DESC_2_2_SimulatedSuite() : TestCommand("Test_TC_DESC_2_2_Simulated", 5) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -432,6 +270,10 @@ class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand switch (mTestIndex - 1) { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -467,6 +309,16 @@ class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand VerifyOrDo(!ShouldSkip("DESC.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::PartsList::Id); } + case 4: { + LogStep(4, "DUT reads TagList from the TH"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -5781,10 +5633,6 @@ class Test_TC_DRLK_3_1_SimulatedSuite : public TestCommand std::unique_ptr GetTestCommand(std::string testName) { - if (testName == "Test_TC_BINFO_2_3_Simulated") - { - return std::unique_ptr(new Test_TC_BINFO_2_3_SimulatedSuite()); - } if (testName == "Test_TC_ACT_3_1_Simulated") { return std::unique_ptr(new Test_TC_ACT_3_1_SimulatedSuite()); @@ -5976,7 +5824,6 @@ std::unique_ptr GetTestCommand(std::string testName) void PrintTestCommands() { ChipLogError(chipTool, "Supported commands:"); - ChipLogError(chipTool, "\t* Test_TC_BINFO_2_3_Simulated"); ChipLogError(chipTool, "\t* Test_TC_ACT_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_BOOL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DESC_2_2_Simulated"); diff --git a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h index d28e6b3b4e3a14..c7509b6750793a 100644 --- a/zzz_generated/placeholder/app2/zap-generated/test/Commands.h +++ b/zzz_generated/placeholder/app2/zap-generated/test/Commands.h @@ -23,168 +23,6 @@ #include -class Test_TC_BINFO_2_3_SimulatedSuite : public TestCommand -{ -public: - Test_TC_BINFO_2_3_SimulatedSuite() : TestCommand("Test_TC_BINFO_2_3_Simulated", 21) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_BINFO_2_3_SimulatedSuite() {} - -private: - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; } - - // - // Tests methods - // - - void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override - { - bool shouldContinue = false; - - switch (mTestIndex - 1) - { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - default: - LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); - } - - if (shouldContinue) - { - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - } - - CHIP_ERROR DoTestStep(uint16_t testIndex) override - { - using namespace chip::app::Clusters; - switch (testIndex) - { - case 0: { - LogStep(0, "Log OnOff Test Startup"); - ListFreer listFreer; - chip::app::Clusters::LogCommands::Commands::Log::Type value; - value.message = chip::Span("*** Basic Cluster Tests Readygarbage: not in length on purpose", 29); - return Log(kIdentityAlpha, value); - } - case 1: { - LogStep(1, "DUT reads DataModelRevision from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::DataModelRevision::Id); - } - case 2: { - LogStep(2, "DUT reads VendorName from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::VendorName::Id); - } - case 3: { - LogStep(3, "DUT reads VendorID from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::VendorID::Id); - } - case 4: { - LogStep(4, "DUT reads ProductName from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ProductName::Id); - } - case 5: { - LogStep(5, "DUT reads ProductID from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0004"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ProductID::Id); - } - case 6: { - LogStep(6, "DUT reads NodeLabel from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0005"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::NodeLabel::Id); - } - case 7: { - LogStep(7, "DUT reads Location from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0006"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::Location::Id); - } - case 8: { - LogStep(8, "DUT reads HardwareVersion from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0007"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::HardwareVersion::Id); - } - case 9: { - LogStep(9, "DUT reads HardwareVersionString from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0008"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::HardwareVersionString::Id); - } - case 10: { - LogStep(10, "DUT reads SoftwareVersion from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0009"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::SoftwareVersion::Id); - } - case 11: { - LogStep(11, "DUT reads SoftwareVersionString from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000a"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::SoftwareVersionString::Id); - } - case 12: { - LogStep(12, "DUT reads ManufacturingDate from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ManufacturingDate::Id); - } - case 13: { - LogStep(13, "DUT reads PartNumber from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::PartNumber::Id); - } - case 14: { - LogStep(14, "DUT reads ProductURL from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ProductURL::Id); - } - case 15: { - LogStep(15, "DUT reads ProductLabel from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::ProductLabel::Id); - } - case 16: { - LogStep(16, "DUT reads SerialNumber from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::SerialNumber::Id); - } - case 17: { - LogStep(17, "DUT reads LocalConfigDisabled from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::LocalConfigDisabled::Id); - } - case 18: { - LogStep(18, "DUT reads Reachable from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::Reachable::Id); - } - case 19: { - LogStep(19, "DUT reads UniqueID from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::UniqueID::Id); - } - case 20: { - LogStep(20, "DUT reads CapabilityMinima from the TH"); - VerifyOrDo(!ShouldSkip("BINFO.C.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return WaitAttribute(GetEndpoint(0), BasicInformation::Id, BasicInformation::Attributes::CapabilityMinima::Id); - } - } - return CHIP_NO_ERROR; - } -}; - class Test_TC_ACT_3_1_SimulatedSuite : public TestCommand { public: @@ -404,7 +242,7 @@ class Test_TC_BOOL_3_1_SimulatedSuite : public TestCommand class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand { public: - Test_TC_DESC_2_2_SimulatedSuite() : TestCommand("Test_TC_DESC_2_2_Simulated", 4) + Test_TC_DESC_2_2_SimulatedSuite() : TestCommand("Test_TC_DESC_2_2_Simulated", 5) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -432,6 +270,10 @@ class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand switch (mTestIndex - 1) { + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -467,6 +309,16 @@ class Test_TC_DESC_2_2_SimulatedSuite : public TestCommand VerifyOrDo(!ShouldSkip("DESC.C.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return WaitAttribute(GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::PartsList::Id); } + case 4: { + LogStep(4, "DUT reads TagList from the TH"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; + value.message = chip::Span("Please enter 'y' for successgarbage: not in length on purpose", 28); + value.expectedValue.Emplace(); + value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); + return UserPrompt(kIdentityAlpha, value); + } } return CHIP_NO_ERROR; } @@ -5781,10 +5633,6 @@ class Test_TC_DRLK_3_1_SimulatedSuite : public TestCommand std::unique_ptr GetTestCommand(std::string testName) { - if (testName == "Test_TC_BINFO_2_3_Simulated") - { - return std::unique_ptr(new Test_TC_BINFO_2_3_SimulatedSuite()); - } if (testName == "Test_TC_ACT_3_1_Simulated") { return std::unique_ptr(new Test_TC_ACT_3_1_SimulatedSuite()); @@ -5976,7 +5824,6 @@ std::unique_ptr GetTestCommand(std::string testName) void PrintTestCommands() { ChipLogError(chipTool, "Supported commands:"); - ChipLogError(chipTool, "\t* Test_TC_BINFO_2_3_Simulated"); ChipLogError(chipTool, "\t* Test_TC_ACT_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_BOOL_3_1_Simulated"); ChipLogError(chipTool, "\t* Test_TC_DESC_2_2_Simulated"); From 91bb6d49bc3f65139e1c3515218e520d51b662e0 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Fri, 21 Jul 2023 15:42:53 -0400 Subject: [PATCH 10/39] Update ZAP to fix UI breakage. (#28173) * Update ZAP to fix UI breakage. * Keep the min version at the old one, since the relevant commits happened on June 20th. --- integrations/docker/images/chip-cert-bins/Dockerfile | 2 +- scripts/setup/zap.json | 4 ++-- scripts/setup/zap.version | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/integrations/docker/images/chip-cert-bins/Dockerfile b/integrations/docker/images/chip-cert-bins/Dockerfile index ba4d4ff5deef8d..18ebd7263fc701 100644 --- a/integrations/docker/images/chip-cert-bins/Dockerfile +++ b/integrations/docker/images/chip-cert-bins/Dockerfile @@ -8,7 +8,7 @@ ARG COMMITHASH=7b99e6399c6069037c613782d78132c69b9dcabb # ZAP Development install, so that it runs on both x64 and arm64 # Generally this should match with the ZAP version that is used for codegen within the # specified SHA -ARG ZAP_VERSION=v2023.07.20-nightly +ARG ZAP_VERSION=v2023.07.21-nightly # Ensure TARGETPLATFORM is set RUN case ${TARGETPLATFORM} in \ diff --git a/scripts/setup/zap.json b/scripts/setup/zap.json index eff99b127deb79..74901d88faf06b 100644 --- a/scripts/setup/zap.json +++ b/scripts/setup/zap.json @@ -8,13 +8,13 @@ "mac-amd64", "windows-amd64" ], - "tags": ["version:2@v2023.07.20-nightly.1"] + "tags": ["version:2@v2023.07.21-nightly.1"] }, { "_comment": "Always get the amd64 version on mac until usable arm64 zap build is available", "path": "fuchsia/third_party/zap/mac-amd64", "platforms": ["mac-arm64"], - "tags": ["version:2@v2023.07.20-nightly.1"] + "tags": ["version:2@v2023.07.21-nightly.1"] } ] } diff --git a/scripts/setup/zap.version b/scripts/setup/zap.version index 22a2a6b0857127..543bb412a09ac6 100644 --- a/scripts/setup/zap.version +++ b/scripts/setup/zap.version @@ -1 +1 @@ -v2023.07.20-nightly +v2023.07.21-nightly From 8728da42e9838bc4e89ae9c59c9e4f010ac89df9 Mon Sep 17 00:00:00 2001 From: Justin Wood Date: Fri, 21 Jul 2023 12:50:59 -0700 Subject: [PATCH 11/39] Initial stab of this workflow (#28180) * Initial checkin * Updating --- .github/workflows/build-cert-bins.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/build-cert-bins.yaml diff --git a/.github/workflows/build-cert-bins.yaml b/.github/workflows/build-cert-bins.yaml new file mode 100644 index 00000000000000..344099aab7397d --- /dev/null +++ b/.github/workflows/build-cert-bins.yaml @@ -0,0 +1,20 @@ +name: Build Certification Image +on: + workflow_call: +jobs: + build-cert-bin: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Publish to Registry + uses: elgohr/Publish-Docker-Github-Action@v5 + with: + name: ghcr.io/project-chip/chip-cert-bins + tags: latest + dockerfile: ./integrations/docker/images/chip-cert-bins/Dockerfile + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + registry: ghcr.io + platforms: linux/amd64,linux/arm64,linux/arm From 2c06e6c0d545c2d0a8561f38742af2d22f5c5182 Mon Sep 17 00:00:00 2001 From: Justin Wood Date: Fri, 21 Jul 2023 12:51:53 -0700 Subject: [PATCH 12/39] Adding dispatch --- .github/workflows/build-cert-bins.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-cert-bins.yaml b/.github/workflows/build-cert-bins.yaml index 344099aab7397d..36601c1615e94d 100644 --- a/.github/workflows/build-cert-bins.yaml +++ b/.github/workflows/build-cert-bins.yaml @@ -1,6 +1,7 @@ name: Build Certification Image on: workflow_call: + workflow_dispatch: jobs: build-cert-bin: runs-on: ubuntu-latest From 5897af2cc1c21280414dc28fb2ddb820dcc3489c Mon Sep 17 00:00:00 2001 From: Sharad Binjola <31142146+sharadb-amazon@users.noreply.github.com> Date: Fri, 21 Jul 2023 13:55:23 -0700 Subject: [PATCH 13/39] Update AppDelegate to report error param and callback for when session establishment starts (#28138) --- examples/all-clusters-app/esp32/main/main.cpp | 3 ++- examples/all-clusters-minimal-app/esp32/main/main.cpp | 3 ++- examples/platform/telink/common/src/AppTaskCommon.cpp | 3 ++- src/app/server/AppDelegate.h | 8 +++++++- src/app/server/CommissioningWindowManager.cpp | 8 +++++++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/examples/all-clusters-app/esp32/main/main.cpp b/examples/all-clusters-app/esp32/main/main.cpp index 4ace2fb3510baa..83d6abc102701f 100644 --- a/examples/all-clusters-app/esp32/main/main.cpp +++ b/examples/all-clusters-app/esp32/main/main.cpp @@ -85,8 +85,9 @@ namespace { class AppCallbacks : public AppDelegate { public: + void OnCommissioningSessionEstablishmentStarted() {} void OnCommissioningSessionStarted() override { bluetoothLED.Set(true); } - void OnCommissioningSessionStopped() override + void OnCommissioningSessionStopped(CHIP_ERROR err) override { bluetoothLED.Set(false); pairingWindowLED.Set(false); diff --git a/examples/all-clusters-minimal-app/esp32/main/main.cpp b/examples/all-clusters-minimal-app/esp32/main/main.cpp index f62a30a71d7a96..43c6faa51a2972 100644 --- a/examples/all-clusters-minimal-app/esp32/main/main.cpp +++ b/examples/all-clusters-minimal-app/esp32/main/main.cpp @@ -84,8 +84,9 @@ namespace { class AppCallbacks : public AppDelegate { public: + void OnCommissioningSessionEstablishmentStarted() {} void OnCommissioningSessionStarted() override { bluetoothLED.Set(true); } - void OnCommissioningSessionStopped() override + void OnCommissioningSessionStopped(CHIP_ERROR err) override { bluetoothLED.Set(false); pairingWindowLED.Set(false); diff --git a/examples/platform/telink/common/src/AppTaskCommon.cpp b/examples/platform/telink/common/src/AppTaskCommon.cpp index 263f094b440ab4..cd9fe12a60a0bc 100644 --- a/examples/platform/telink/common/src/AppTaskCommon.cpp +++ b/examples/platform/telink/common/src/AppTaskCommon.cpp @@ -138,8 +138,9 @@ class AppCallbacks : public AppDelegate bool isComissioningStarted; public: + void OnCommissioningSessionEstablishmentStarted() {} void OnCommissioningSessionStarted() override { isComissioningStarted = true; } - void OnCommissioningSessionStopped() override { isComissioningStarted = false; } + void OnCommissioningSessionStopped(CHIP_ERROR err) override { isComissioningStarted = false; } void OnCommissioningWindowClosed() override { if (!isComissioningStarted) diff --git a/src/app/server/AppDelegate.h b/src/app/server/AppDelegate.h index dbd1d42c7a4828..24dcf2e3a92ec5 100644 --- a/src/app/server/AppDelegate.h +++ b/src/app/server/AppDelegate.h @@ -22,12 +22,18 @@ #pragma once +#include + class AppDelegate { public: virtual ~AppDelegate() {} + /** + * This is called on start of session establishment process + */ + virtual void OnCommissioningSessionEstablishmentStarted() {} virtual void OnCommissioningSessionStarted() {} - virtual void OnCommissioningSessionStopped() {} + virtual void OnCommissioningSessionStopped(CHIP_ERROR err) {} /* * This is called anytime a basic or enhanced commissioning window is opened. diff --git a/src/app/server/CommissioningWindowManager.cpp b/src/app/server/CommissioningWindowManager.cpp index ea5ab150556bf1..b8fb6a54e6e629 100644 --- a/src/app/server/CommissioningWindowManager.cpp +++ b/src/app/server/CommissioningWindowManager.cpp @@ -165,7 +165,7 @@ void CommissioningWindowManager::HandleFailedAttempt(CHIP_ERROR err) if (mAppDelegate != nullptr) { - mAppDelegate->OnCommissioningSessionStopped(); + mAppDelegate->OnCommissioningSessionStopped(err); } } } @@ -175,6 +175,12 @@ void CommissioningWindowManager::OnSessionEstablishmentStarted() // As per specifications, section 5.5: Commissioning Flows constexpr System::Clock::Timeout kPASESessionEstablishmentTimeout = System::Clock::Seconds16(60); DeviceLayer::SystemLayer().StartTimer(kPASESessionEstablishmentTimeout, HandleSessionEstablishmentTimeout, this); + + ChipLogProgress(AppServer, "Commissioning session establishment step started"); + if (mAppDelegate != nullptr) + { + mAppDelegate->OnCommissioningSessionEstablishmentStarted(); + } } void CommissioningWindowManager::OnSessionEstablished(const SessionHandle & session) From 8295635bfd2f52d3da505ebf686a36bc80082630 Mon Sep 17 00:00:00 2001 From: Marc Mikolits Date: Fri, 21 Jul 2023 23:06:01 +0200 Subject: [PATCH 14/39] Change overall dependency of TC-DRLK-2.12 on UBOLT feature flag (#28172) * Change overall dependency of TC-DRLK-2.12 on UBOLT feature flag * zap regen --- .../certification/Test_TC_DRLK_2_12.yaml | 36 +++++++++--------- .../chip-tool/zap-generated/test/Commands.h | 38 +++++++++---------- .../zap-generated/test/Commands.h | 34 ++++++++--------- 3 files changed, 52 insertions(+), 56 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_12.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_12.yaml index 964e6a763c2435..2964d1c83b3bec 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_12.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_12.yaml @@ -15,7 +15,7 @@ name: 121.3.2. [TC-DRLK-2.12] Verification for Ubolt Door command [DUT-Server] PICS: - - DRLK.S + - DRLK.S.F0c config: nodeId: 0x12344321 @@ -128,7 +128,7 @@ tests: - label: "Step 1: TH writes the RequirePINforRemoteOperation attribute value as False on the DUT" - PICS: DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write + PICS: DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write command: "writeAttribute" attribute: "RequirePINforRemoteOperation" arguments: @@ -137,7 +137,7 @@ tests: - label: "Step 1: TH writes the RequirePINforRemoteOperation attribute value as False on the DUT" - PICS: DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write + PICS: DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write command: "writeAttribute" attribute: "RequirePINforRemoteOperation" arguments: @@ -148,19 +148,19 @@ tests: - label: "Step 2: TH reads the RequirePINforRemoteOperation attribute from the DUT" - PICS: DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033 + PICS: DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033 command: "readAttribute" attribute: "RequirePINforRemoteOperation" response: value: false - label: "Step 3: TH sends Ubolt Door Command to the DUT without PINCode" - PICS: DRLK.S.C27.Rsp && DRLK.S.F0c + PICS: DRLK.S.C27.Rsp command: "UnboltDoor" timedInteractionTimeoutMs: 1000 - label: "Step 4: TH sends Ubolt Door Command to the DUT with PINCode" - PICS: DRLK.S.C27.Rsp && DRLK.S.F0c + PICS: DRLK.S.C27.Rsp command: "UnboltDoor" timedInteractionTimeoutMs: 1000 arguments: @@ -171,7 +171,7 @@ tests: - label: "Step 5: TH writes the RequirePINforRemoteOperation attribute value as true on the DUT" - PICS: DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write + PICS: DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write command: "writeAttribute" attribute: "RequirePINforRemoteOperation" arguments: @@ -180,7 +180,7 @@ tests: - label: "Step 5: TH writes the RequirePINforRemoteOperation attribute value as true on the DUT" - PICS: DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write + PICS: DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write command: "writeAttribute" attribute: "RequirePINforRemoteOperation" arguments: @@ -191,14 +191,14 @@ tests: - label: "Step 6: TH reads the RequirePINforRemoteOperation attribute from the DUT" - PICS: DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033 + PICS: DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033 command: "readAttribute" attribute: "RequirePINforRemoteOperation" response: value: true - label: "Step 7: TH sends Ubolt Door Command to the DUT with valid PINCode" - PICS: DRLK.S.C27.Rsp && DRLK.S.F0c + PICS: DRLK.S.C27.Rsp command: "UnboltDoor" timedInteractionTimeoutMs: 1000 arguments: @@ -208,7 +208,7 @@ tests: - label: "Step 8: TH sends Unbolt Door Command to the DUT with Invalid PINCode" - PICS: DRLK.S.C27.Rsp && DRLK.S.F0c + PICS: DRLK.S.C27.Rsp command: "UnboltDoor" timedInteractionTimeoutMs: 1000 arguments: @@ -219,7 +219,7 @@ tests: error: FAILURE - label: "Step 9: TH sends Unbolt Door Command to the DUT without PINCode" - PICS: DRLK.S.C27.Rsp && DRLK.S.F0c + PICS: DRLK.S.C27.Rsp command: "UnboltDoor" timedInteractionTimeoutMs: 1000 response: @@ -228,7 +228,7 @@ tests: - label: "Step 10: TH writes WrongCodeEntryLimit attribute value as 3 on the DUT" - PICS: DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0030.Write + PICS: ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0030.Write command: "writeAttribute" attribute: "WrongCodeEntryLimit" arguments: @@ -237,7 +237,7 @@ tests: - label: "Step 10: TH writes WrongCodeEntryLimit attribute value as 3 on the DUT" - PICS: DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0030.Write + PICS: ( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0030.Write command: "writeAttribute" attribute: "WrongCodeEntryLimit" arguments: @@ -248,7 +248,7 @@ tests: - label: "Step 11: TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify that the DUT sends Success response" - PICS: DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031.Write + PICS: ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031.Write command: "writeAttribute" attribute: "UserCodeTemporaryDisableTime" arguments: @@ -257,7 +257,7 @@ tests: - label: "Step 11: TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify that the DUT sends Success response" - PICS: DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0031.Write + PICS: ( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0031.Write command: "writeAttribute" attribute: "UserCodeTemporaryDisableTime" arguments: @@ -319,7 +319,7 @@ tests: - label: "Step 13: TH reads UserCodedTemporaryDisableTime attribute from DUT" - PICS: DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031 + PICS: ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031 command: "readAttribute" attribute: "UserCodeTemporaryDisableTime" response: @@ -341,7 +341,7 @@ tests: - label: "Wait for UserCodeTemporaryDisableTime expires" cluster: "DelayCommands" command: "WaitForMs" - PICS: DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031 + PICS: ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031 arguments: values: - name: "ms" diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index a06eeaa75b5ed5..4b9a15ec21729f 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -109698,7 +109698,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 5: { LogStep(5, "Step 1: TH writes the RequirePINforRemoteOperation attribute value as False on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write"), + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; bool value; @@ -109709,7 +109709,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 6: { LogStep(6, "Step 1: TH writes the RequirePINforRemoteOperation attribute value as False on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write"), + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; bool value; @@ -109720,14 +109720,13 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 7: { LogStep(7, "Step 2: TH reads the RequirePINforRemoteOperation attribute from the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::RequirePINforRemoteOperation::Id, true, chip::NullOptional); } case 8: { LogStep(8, "Step 3: TH sends Ubolt Door Command to the DUT without PINCode"); - VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnboltDoor::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnboltDoor::Id, value, @@ -109737,7 +109736,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 9: { LogStep(9, "Step 4: TH sends Ubolt Door Command to the DUT with PINCode"); - VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnboltDoor::Type value; value.PINCode.Emplace(); @@ -109749,7 +109748,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 10: { LogStep(10, "Step 5: TH writes the RequirePINforRemoteOperation attribute value as true on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write"), + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; bool value; @@ -109760,7 +109759,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 11: { LogStep(11, "Step 5: TH writes the RequirePINforRemoteOperation attribute value as true on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write"), + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; bool value; @@ -109771,14 +109770,13 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 12: { LogStep(12, "Step 6: TH reads the RequirePINforRemoteOperation attribute from the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::RequirePINforRemoteOperation::Id, true, chip::NullOptional); } case 13: { LogStep(13, "Step 7: TH sends Ubolt Door Command to the DUT with valid PINCode"); - VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnboltDoor::Type value; value.PINCode.Emplace(); @@ -109790,7 +109788,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 14: { LogStep(14, "Step 8: TH sends Unbolt Door Command to the DUT with Invalid PINCode"); - VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnboltDoor::Type value; value.PINCode.Emplace(); @@ -109802,7 +109800,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 15: { LogStep(15, "Step 9: TH sends Unbolt Door Command to the DUT without PINCode"); - VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.C27.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::UnboltDoor::Type value; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnboltDoor::Id, value, @@ -109812,7 +109810,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 16: { LogStep(16, "Step 10: TH writes WrongCodeEntryLimit attribute value as 3 on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0030.Write"), + VerifyOrDo(!ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0030.Write"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint8_t value; @@ -109822,7 +109820,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 17: { LogStep(17, "Step 10: TH writes WrongCodeEntryLimit attribute value as 3 on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0030.Write"), + VerifyOrDo(!ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0030.Write"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint8_t value; @@ -109834,7 +109832,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand LogStep(18, "Step 11: TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify that the " "DUT sends Success response"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031.Write"), + VerifyOrDo(!ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031.Write"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint8_t value; @@ -109847,7 +109845,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand LogStep(19, "Step 11: TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify that the " "DUT sends Success response"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0031.Write"), + VerifyOrDo(!ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0031.Write"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint8_t value; @@ -109906,8 +109904,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 24: { LogStep(24, "Step 13: TH reads UserCodedTemporaryDisableTime attribute from DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, true, chip::NullOptional); } @@ -109927,8 +109924,7 @@ class Test_TC_DRLK_2_12Suite : public TestCommand } case 26: { LogStep(26, "Wait for UserCodeTemporaryDisableTime expires"); - VerifyOrDo(!ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031"), - return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 15000UL; 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 bbbf13b631f17b..fcad5b306ce5ab 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -166673,7 +166673,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : Step 1: TH writes the RequirePINforRemoteOperation attribute value as False on the DUT\n"); - if (ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write")) { + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write")) { NextTest(); return; } @@ -166682,7 +166682,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : Step 1: TH writes the RequirePINforRemoteOperation attribute value as False on the DUT\n"); - if (ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write")) { + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write")) { NextTest(); return; } @@ -166691,7 +166691,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { case 7: ChipLogProgress( chipTool, " ***** Test Step 7 : Step 2: TH reads the RequirePINforRemoteOperation attribute from the DUT\n"); - if (ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { NextTest(); return; } @@ -166699,7 +166699,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : Step 3: TH sends Ubolt Door Command to the DUT without PINCode\n"); - if (ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c")) { + if (ShouldSkip("DRLK.S.C27.Rsp")) { NextTest(); return; } @@ -166707,7 +166707,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { break; case 9: ChipLogProgress(chipTool, " ***** Test Step 9 : Step 4: TH sends Ubolt Door Command to the DUT with PINCode\n"); - if (ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c")) { + if (ShouldSkip("DRLK.S.C27.Rsp")) { NextTest(); return; } @@ -166716,7 +166716,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : Step 5: TH writes the RequirePINforRemoteOperation attribute value as true on the DUT\n"); - if (ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write")) { + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033.Write")) { NextTest(); return; } @@ -166725,7 +166725,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { case 11: ChipLogProgress(chipTool, " ***** Test Step 11 : Step 5: TH writes the RequirePINforRemoteOperation attribute value as true on the DUT\n"); - if (ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write")) { + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && !DRLK.S.A0033.Write")) { NextTest(); return; } @@ -166734,7 +166734,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { case 12: ChipLogProgress( chipTool, " ***** Test Step 12 : Step 6: TH reads the RequirePINforRemoteOperation attribute from the DUT\n"); - if (ShouldSkip("DRLK.S.F0c && DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { NextTest(); return; } @@ -166742,7 +166742,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { break; case 13: ChipLogProgress(chipTool, " ***** Test Step 13 : Step 7: TH sends Ubolt Door Command to the DUT with valid PINCode\n"); - if (ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c")) { + if (ShouldSkip("DRLK.S.C27.Rsp")) { NextTest(); return; } @@ -166751,7 +166751,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { case 14: ChipLogProgress( chipTool, " ***** Test Step 14 : Step 8: TH sends Unbolt Door Command to the DUT with Invalid PINCode\n"); - if (ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c")) { + if (ShouldSkip("DRLK.S.C27.Rsp")) { NextTest(); return; } @@ -166759,7 +166759,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : Step 9: TH sends Unbolt Door Command to the DUT without PINCode\n"); - if (ShouldSkip("DRLK.S.C27.Rsp && DRLK.S.F0c")) { + if (ShouldSkip("DRLK.S.C27.Rsp")) { NextTest(); return; } @@ -166768,7 +166768,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { case 16: ChipLogProgress( chipTool, " ***** Test Step 16 : Step 10: TH writes WrongCodeEntryLimit attribute value as 3 on the DUT\n"); - if (ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0030.Write")) { + if (ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0030.Write")) { NextTest(); return; } @@ -166777,7 +166777,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { case 17: ChipLogProgress( chipTool, " ***** Test Step 17 : Step 10: TH writes WrongCodeEntryLimit attribute value as 3 on the DUT\n"); - if (ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0030.Write")) { + if (ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0030.Write")) { NextTest(); return; } @@ -166787,7 +166787,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { ChipLogProgress(chipTool, " ***** Test Step 18 : Step 11: TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT " "and Verify that the DUT sends Success response\n"); - if (ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031.Write")) { + if (ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031.Write")) { NextTest(); return; } @@ -166797,7 +166797,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { ChipLogProgress(chipTool, " ***** Test Step 19 : Step 11: TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT " "and Verify that the DUT sends Success response\n"); - if (ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0031.Write")) { + if (ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && !DRLK.S.A0031.Write")) { NextTest(); return; } @@ -166841,7 +166841,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { break; case 24: ChipLogProgress(chipTool, " ***** Test Step 24 : Step 13: TH reads UserCodedTemporaryDisableTime attribute from DUT\n"); - if (ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031")) { + if (ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031")) { NextTest(); return; } @@ -166859,7 +166859,7 @@ class Test_TC_DRLK_2_12 : public TestCommandBridge { break; case 26: ChipLogProgress(chipTool, " ***** Test Step 26 : Wait for UserCodeTemporaryDisableTime expires\n"); - if (ShouldSkip("DRLK.S.F0c && ( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031")) { + if (ShouldSkip("( DRLK.S.F00 || DRLK.S.F01 ) && DRLK.S.A0031")) { NextTest(); return; } From bcc4c26aa73e1f6dca7d544df2c85eec504feab1 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Fri, 21 Jul 2023 17:09:32 -0400 Subject: [PATCH 15/39] Do not newline-separate restyle path otherwise only the first argument is processed (#28175) Co-authored-by: Andrei Litvin --- scripts/helpers/restyle-diff.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/helpers/restyle-diff.sh b/scripts/helpers/restyle-diff.sh index 7c29ac61d34335..21c01011a7c60c 100755 --- a/scripts/helpers/restyle-diff.sh +++ b/scripts/helpers/restyle-diff.sh @@ -35,10 +35,10 @@ cd "$CHIP_ROOT" restyle-paths() { if hash restyle-path 2>/dev/null; then - command restyle-path "$@" + echo "$@" | xargs restyle-path else url=https://github.com/restyled-io/restyler/raw/main/bin/restyle-path - sh <(curl --location --proto "=https" --tlsv1.2 "$url" -sSf) "$@" + echo "$@" | xargs sh <(curl --location --proto "=https" --tlsv1.2 "$url" -sSf) fi } From 5862b9eb116a2b2dc1158e178e39c02d7fa4700f Mon Sep 17 00:00:00 2001 From: mkardous-silabs <84793247+mkardous-silabs@users.noreply.github.com> Date: Fri, 21 Jul 2023 17:56:43 -0400 Subject: [PATCH 16/39] [yaml] Update IDM and SC test scripts to match Test Plan and Specification (#28176) --- .../suites/certification/Test_TC_IDM_4_2.yaml | 32 +- .../suites/certification/Test_TC_SC_2_1.yaml | 4 +- .../suites/certification/Test_TC_SC_3_2.yaml | 11 +- .../suites/certification/Test_TC_SC_3_3.yaml | 8 +- .../suites/certification/Test_TC_SC_4_1.yaml | 111 +++- .../suites/certification/Test_TC_SC_4_10.yaml | 10 +- .../chip-tool/zap-generated/test/Commands.h | 572 ++++++++++-------- 7 files changed, 445 insertions(+), 303 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml index c5737a5fb6c3b7..5a5f36b73da8e8 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml @@ -32,12 +32,23 @@ tests: Here the command to enter interactive mode:-- ./chip-tool interactive start disabled: true + - label: + If the device is has the ICD Management cluster, TH reads from the DUT + the IdleModeInterval attribute and sets the + SubscriptionMaxIntervalPublisherLimit to the value read. If the device + does not have the ICD Management cluster, set the + SubscriptionMaxIntervalPublisherLimit to 60 minutes. + verification: | + The cluster used in the below command is an example, + icdmanagement read idle-mode-interval 12344321 0 + disabled: true + - label: "Step 1: TH sends a subscription message to the DUT with - MaxIntervalCeiling set to a value greater than 60 mins. DUT sends a - report data action to the TH. TH sends a success status response to - the DUT. DUT sends a Subscribe Response Message to the TH to activate - the subscription." + MaxIntervalCeiling set to a value greater than the + SubscriptionMaxIntervalPublisherLimit. DUT sends a report data action + to the TH. TH sends a success status response to the DUT. DUT sends a + Subscribe Response Message to the TH to activate the subscription." verification: | onoff subscribe on-off 100 3900 1 1 --keepSubscriptions true @@ -73,10 +84,10 @@ tests: - label: "Step 2: TH sends a subscription message to the DUT with - MaxIntervalCeiling set to a value less than 60 mins. DUT sends a - report data action to the TH. TH sends a success status response to - the DUT. DUT sends a Subscribe Response Message to the TH to activate - the subscription." + MaxIntervalCeiling set to a value less than han the + SubscriptionMaxIntervalPublisherLimit. DUT sends a report data action + to the TH. TH sends a success status response to the DUT. DUT sends a + Subscribe Response Message to the TH to activate the subscription." verification: | basicinformation subscribe location 10 2400 1 0 --keepSubscriptions true On the TH(chip-tool), verify a report data message is received and verify it contains the following data : @@ -84,7 +95,7 @@ tests: Verify on the TH the Subscribe Response has the following fields, SubscriptionId - Verify it is of type uint32. MaxInterval - Verify it is of type uint32. - Verify that the MaxInterval is less than or equal to 60 mins. + Verify that the MaxInterval is less than or equal to the MaxIntervalCeiling. [1686294932.404445][101362:101364] CHIP:DMG: InteractionModelRevision = 1 [1686294932.404449][101362:101364] CHIP:DMG: } @@ -105,9 +116,6 @@ tests: [1686294932.420822][101362:101364] CHIP:DMG: } [1686294932.420834][101362:101364] CHIP:DMG: Subscription established with SubscriptionID = 0xcbbba269 MinInterval = 10s MaxInterval = 2400s Peer = 01:0000000000000001 [1686294932.420847][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec00e400]: Moving to [Subscripti] - - - MaxInterval and MaxIntervalCeiling are different parameters. One is sent from the TH the other from DUT, verify MaxInterval >= MaxIntervalCeiling disabled: true - label: diff --git a/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml index f29673a2fb2930..93267e1d351ea3 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml @@ -30,14 +30,14 @@ tests: "Initiator constructs and sends a TLV-encoded PBKDFParamRequest message" verification: | - Verify that the responder receives the PBKDFParamRequest message. Verify that the protocol header is properly constructed: Message Flags: S Flag is set to 0, and DSIZ field is set to 0 Session ID is set to 0 Security Flags: Session Type bits are set to 0 Exchange Flags: I Flag is set to 1 Protocol Opcode is set to 32 (0x20) Protocol ID is set to 0 Verify, if possible in a debug mode, that the PBKDFParamRequest message contains: initiatorRandom - randomly generated 32-bit octet string initiatorSessionId - max size 16-bits unsigned integer that does not overlap with existing initiator session identifiers passcodeId - max size 16-bits unsigned integer hasPBKDFParameters - boolean If hasPBKDFParameters is set to true then PBKDF parameters are not known for the given passcodeId If hasPBKDFParameters is set to false then PBKDF parameters are known for the given passcodeId initiatorSEDParams - optional sed-parameter-struct which contains SLEEPY_IDLE_INTERVAL - max size 16-bits unsigned integer SLEEPY_ACTIVE_INTERVAL - max size 16-bits unsigned integer + Verify that the responder receives the PBKDFParamRequest message. Verify that the protocol header is properly constructed: Message Flags: S Flag is set to 0, and DSIZ field is set to 0 Session ID is set to 0 Security Flags: Session Type bits are set to 0 Exchange Flags: I Flag is set to 1 Protocol Opcode is set to 32 (0x20) Protocol ID is set to 0 Verify, if possible in a debug mode, that the PBKDFParamRequest message contains: initiatorRandom - randomly generated 32-bit octet string initiatorSessionId - max size 16-bits unsigned integer that does not overlap with existing initiator session identifiers passcodeId - max size 16-bits unsigned integer hasPBKDFParameters - boolean If hasPBKDFParameters is set to true then PBKDF parameters are not known for the given passcodeId If hasPBKDFParameters is set to false then PBKDF parameters are known for the given passcodeId initiatorSessionParams - optional session-parameter-struct which contains SESSION_IDLE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_THRESHOLD - max size 16-bits unsigned integer disabled: true - label: "Responder verifies the passcodeID, constructs and sends a TLV-encoded PBKDFParamResponse message" verification: | - Verify that the Initiator receives the PBKDFParamResponse message. Verify that the protocol header is properly constructed: Message Flags: S Flag is set to 0, and DSIZ field is set to 0 Session ID is set to 0 Security Flags: Session Type bits are set to 0 Exchange Flags: I Flag is set to 0 Protocol Opcode is set to 33 (0x21) Protocol ID is set to 0 Verify, if possible in a debug mode, that the PBKDFParamResponse message contains: initiatorRandom - value from the PBKDFParamRequest message responderRandom - randomly generated 32-bit octet string responderSessionId - max size 16-bits unsigned integer that does not overlap with existing that does not overlap with existing responder session identifiers pbkdf_parameters If hasPBKDFParameters from the PBKDFParamRequest message is true, then pbkdf_parameters should not be included. If hasPBKDFParameters from the PBKDFParamRequest message is false, then PBKDFParameters should contain a + Crypto_PBKDFParameterSet struct with values for iterations (max size 32 bit unsigned integer) and salt (octet string with a minimum of 16 bits and maximum of 32 bits) responderSEDParams - optional sed-parameter-struct SLEEPY_IDLE_INTERVAL - max size 16-bits unsigned integer SLEEPY_ACTIVE_INTERVAL - max size 16-bits unsigned integer + Verify that the Initiator receives the PBKDFParamResponse message. Verify that the protocol header is properly constructed: Message Flags: S Flag is set to 0, and DSIZ field is set to 0 Session ID is set to 0 Security Flags: Session Type bits are set to 0 Exchange Flags: I Flag is set to 0 Protocol Opcode is set to 33 (0x21) Protocol ID is set to 0 Verify, if possible in a debug mode, that the PBKDFParamResponse message contains: initiatorRandom - value from the PBKDFParamRequest message responderRandom - randomly generated 32-bit octet string responderSessionId - max size 16-bits unsigned integer that does not overlap with existing that does not overlap with existing responder session identifiers pbkdf_parameters If hasPBKDFParameters from the PBKDFParamRequest message is true, then pbkdf_parameters should not be included. If hasPBKDFParameters from the PBKDFParamRequest message is false, then PBKDFParameters should contain a + Crypto_PBKDFParameterSet struct with values for iterations (max size 32 bit unsigned integer) and salt (octet string with a minimum of 16 bits and maximum of 32 bits) responderSessionParams - optional session-parameter-struct SESSION_IDLE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_THRESHOLD - max size 16-bits unsigned integer disabled: true - label: "Initiator constructs and sends a TLV-encoded Pake1 message" diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml index a94810b980458b..92f9d547f20280 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml @@ -28,7 +28,7 @@ tests: "Step 1: Initiator constructs and sends a TLV-encoded Sigma1 message to Responder with resumption containing initiatorRandom initiatorSessionId destinationId resumptionID initiatorResumeMIC - initiatorEphPubKey initiatorSEDParams" + initiatorEphPubKey initiatorSessionParams" verification: | On Initiator(chip-tool) verify that, Initiator(chip-tool) constructs and sends a TLV-encoded Sigma1 message to Responder with resumption containing initiatorRandom @@ -37,7 +37,7 @@ tests: resumptionID initiatorResumeMIC initiatorEphPubKey - initiatorSEDParams + initiatorSessionParams here is the log to verify on chip-tool 1683884120.041635][5134:5136] CHIP:DMG: Decrypted Payload (182 bytes) = @@ -88,9 +88,10 @@ tests: resumptionID is of Octet String maximum of length 16 bytes responderSessionID is of uint16 sigma2ResumeMIC is of Octet String maximum of length 16 bytes - responderSEDParams is from any one of the following: - SLEEPY_IDLE_INTERVAL - Verify that it is of uint32 - SLEEPY_ACTIVE_INTERVAL - Verify that it is of uint32 + responderSessionParams is from any one of the following: + SESSION_IDLE_INTERVAL - Verify that it is of uint32 + SESSION_ACTIVE_INTERVAL - Verify that it is of uint32 + SESSION_ACTIVE_THRESHOLD - Verify that it is of uint16 here is the log to verify on chip-tool diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml index a47809f76897d9..36bc5c59272c42 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml @@ -73,10 +73,10 @@ tests: resumptionID is of Octet String maximum of length 16 bytes responderSessionID is of uint16 sigma2ResumeMIC is of Octet String maximum of length 16 bytes - responderSEDParams is from any one of the following: - SLEEPY_IDLE_INTERVAL - Verify that it is of uint32 - SLEEPY_ACTIVE_INTERVAL - Verify that it is of uint32 - + responderSessionParams is from any one of the following: + SESSION_IDLE_INTERVAL - Verify that it is of uint32 + SESSION_ACTIVE_INTERVAL - Verify that it is of uint32 + SESSION_ACTIVE_THRESHOLD - Verify that it is of uint16 [1683973658.044236][21637:21637] CHIP:EM: Rxd Ack; Removing MessageCounter:113416101 from Retrans Table on exchange 32995r [1683973662.299442][21637:21637] CHIP:DMG: << from UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:41363 | 167307433 | [Secure Channel (0) / Certificate Authenticated Session Establishment Sigma '1' (0x30) / Session = 0 / Exchange = 32997] diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml index 4254344a0d17c6..b3daa00f2aca39 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml @@ -277,7 +277,21 @@ tests: constraints: maxValue: 3600000 - - label: "Step 2m: TXT key for commissioning mode (CM) CM=1 must be present" + - label: + "Step 2m: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be + an unsigned integer with units of milliseconds and shall be encoded as + a variable length decimal number in ASCII, omitting leading zeros. + Shall not exceed 65535." + PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY + cluster: "DiscoveryCommands" + command: "FindCommissionable" + response: + values: + - name: "mrpRetryActiveThreshold" + constraints: + maxValue: 65535 + + - label: "Step 2n: TXT key for commissioning mode (CM) CM=1 must be present" cluster: "DiscoveryCommands" command: "FindCommissionable" response: @@ -286,7 +300,7 @@ tests: value: 1 - label: - "Step 2n: If (MCORE.SC.DT_KEY) present, DT key must contain the device + "Step 2o: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device Types and must be encoded as a variable length decimal ASCII number without leading zeros" PICS: MCORE.SC.DT_KEY @@ -298,7 +312,7 @@ tests: value: deviceType - label: - "Step 2o: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded + "Step 2p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B" PICS: MCORE.SC.DN_KEY cluster: "DiscoveryCommands" @@ -310,7 +324,7 @@ tests: maxLength: 32 - label: - "Step 2p: If (MCORE.SC.RI_KEY ) present, key RI must include the + "Step 2q: If (MCORE.SC.RI_KEY ) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY @@ -323,7 +337,7 @@ tests: maxValue: 100 - label: - "Step 2q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + "Step 2r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY @@ -336,7 +350,7 @@ tests: notValue: 0 - label: - "Step 2r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + "Step 2s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY cluster: "DiscoveryCommands" @@ -348,7 +362,7 @@ tests: maxLength: 128 - label: - "Step 2s: DUT must publish AAAA records for each IPv6 address upon + "Step 2t: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter messages." cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -609,7 +623,21 @@ tests: maxValue: 3600000 - label: - "Step 4n: TXT key for commissioning mode (CM) key CM=1 must be present" + "Step 4n: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be + an unsigned integer with units of milliseconds and shall be encoded as + a variable length decimal number in ASCII, omitting leading zeros. + Shall not exceed 65535." + PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY + cluster: "DiscoveryCommands" + command: "FindCommissionable" + response: + values: + - name: "mrpRetryActiveThreshold" + constraints: + maxValue: 65535 + + - label: + "Step 4o: TXT key for commissioning mode (CM) key CM=1 must be present" cluster: "DiscoveryCommands" command: "FindCommissionable" response: @@ -618,7 +646,7 @@ tests: value: 1 - label: - "Step 4o: If (MCORE.SC.DT_KEY) present, DT key must contain the device + "Step 4p: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device Types and must be encoded as a variable length decimal ASCII number without leading zeros" PICS: MCORE.SC.DT_KEY @@ -630,7 +658,7 @@ tests: value: deviceType - label: - "Step 4p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded + "Step 4q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B" PICS: MCORE.SC.DN_KEY cluster: "DiscoveryCommands" @@ -642,7 +670,7 @@ tests: maxLength: 32 - label: - "Step 4q: If (MCORE.SC.RI_KEY) present, key RI must include the + "Step 4r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY @@ -655,7 +683,7 @@ tests: maxValue: 100 - label: - "Step 4r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + "Step 4s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY @@ -668,7 +696,7 @@ tests: notValue: 0 - label: - "Step 4s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + "Step 4t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY cluster: "DiscoveryCommands" @@ -680,7 +708,7 @@ tests: maxLength: 128 - label: - "Step 4t: DUT must publish AAAA records for each IPv6 address upon + "Step 4u: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter messages." cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -926,7 +954,22 @@ tests: constraints: maxValue: 3600000 - - label: "Step 7l: TXT key for commissioning mode. CM=2 must be present" + - label: + "Step 7l: Optional TXT key for MRP Retry Active Mode Threshold. If + (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be an unsigned + integer with units of milliseconds and shall be encoded as a variable + length decimal number in ASCII, omitting leading zeros. Shall not + exceed 65535." + PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY + cluster: "DiscoveryCommands" + command: "FindCommissionable" + response: + values: + - name: "mrpRetryActiveThreshold" + constraints: + maxValue: 65535 + + - label: "Step 7m: TXT key for commissioning mode. CM=2 must be present" cluster: "DiscoveryCommands" command: "FindCommissionable" response: @@ -935,7 +978,7 @@ tests: value: 2 - label: - "Step 7m: If (MCORE.SC.DT_KEY) present, DT key must contain the device + "Step 7n: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device Types and must be encoded as a variable length decimal ASCII number without leading zeros" PICS: MCORE.SC.DT_KEY @@ -947,7 +990,7 @@ tests: value: deviceType - label: - "Step 7n: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded + "Step 7o: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B" PICS: MCORE.SC.DN_KEY cluster: "DiscoveryCommands" @@ -959,7 +1002,7 @@ tests: maxLength: 32 - label: - "Step 7o: If (MCORE.SC.RI_KEY) present, key RI must include the + "Step 7p: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY @@ -972,7 +1015,7 @@ tests: maxValue: 100 - label: - "Step 7p: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + "Step 7q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY @@ -985,7 +1028,7 @@ tests: notValue: 0 - label: - "Step 7q: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + "Step 7r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY cluster: "DiscoveryCommands" @@ -997,7 +1040,7 @@ tests: maxLength: 128 - label: - "Step 7r: DUT must publish AAAA records for each IPv6 address upon + "Step 7s: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter messages" cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1228,7 +1271,21 @@ tests: maxValue: 3600000 - label: - "Step 10n: TXT key for commissioning mode (CM), CM=0 may be present" + "Step 10n: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be + an unsigned integer with units of milliseconds and shall be encoded as + a variable length decimal number in ASCII, omitting leading zeros. + Shall not exceed 65535." + PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY + cluster: "DiscoveryCommands" + command: "FindCommissionable" + response: + values: + - name: "mrpRetryActiveThreshold" + constraints: + maxValue: 65535 + + - label: + "Step 10o: TXT key for commissioning mode (CM), CM=0 may be present" PICS: MCORE.SC.EXTENDED_DISCOVERY cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1238,7 +1295,7 @@ tests: value: 0 - label: - "Step 10o: If (MCORE.SC.DT_KEY) present, DT key must contain the + "Step 10p: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device Types and must be encoded as a variable length decimal ASCII number without leading zeros" @@ -1251,7 +1308,7 @@ tests: value: deviceType - label: - "Step 10p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 + "Step 10q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B" PICS: MCORE.SC.DN_KEY && MCORE.SC.EXTENDED_DISCOVERY cluster: "DiscoveryCommands" @@ -1263,7 +1320,7 @@ tests: maxLength: 32 - label: - "Step 10q: If (MCORE.SC.RI_KEY) present, key RI must include the + "Step 10r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY && MCORE.SC.EXTENDED_DISCOVERY @@ -1276,7 +1333,7 @@ tests: maxValue: 100 - label: - "Step 10r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + "Step 10s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY && MCORE.SC.EXTENDED_DISCOVERY @@ -1289,7 +1346,7 @@ tests: notValue: 0 - label: - "Step 10s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + "Step 10t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY && MCORE.SC.EXTENDED_DISCOVERY cluster: "DiscoveryCommands" diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml index 6373d60cae62d5..6e261e2bcc6226 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml @@ -14,11 +14,12 @@ # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default name: - 15.4.10. [TC-SC-4.10] Operational Discovery - Sleepy Node [DUT as - Commissionee] + 15.4.10. [TC-SC-4.10] Operational Discovery - SIT ICD Node + [{DUT_Commissionee}] PICS: - MCORE.ROLE.COMMISSIONEE + - MCORE.SC.SIT_ICD config: nodeId: 0x12344321 @@ -41,10 +42,13 @@ tests: hostname = [D21165B5F440B033.local] address = [fd11:22::4b31:9932:cffe:b41a] port = [5540] - txt = ["T=0" "SAI=300" "SII=5000"] + txt = ["T=0" "SAI=300" "SII=5000" "SAT=4000"] = eth0 IPv6 3A235FF3FA2DAC10-0000000000000055 _matter._tcp local hostname = [D21165B5F440B033.local] address = [fd11:22::4b31:9932:cffe:b41a] port = [5540] txt = ["T=0" "SAI=300" "SII=5000"] + + - SII key is higher than the SESSION_IDLE_INTERVAL default value (> 300 milliseconds) + - SII key and SAI key is less than 3600000 (1hour in milliseconds) disabled: true diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 4b9a15ec21729f..cad0d50b715b57 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -128168,7 +128168,7 @@ class Test_TC_SC_3_4Suite : public TestCommand class Test_TC_SC_4_1Suite : public TestCommand { public: - Test_TC_SC_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_1", 95, credsIssuerConfig) + Test_TC_SC_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_1", 99, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); @@ -128379,7 +128379,6 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("commissioningMode", value.commissioningMode, 1U)); } shouldContinue = true; break; @@ -128388,7 +128387,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("deviceType", value.deviceType, mDeviceType.HasValue() ? mDeviceType.Value() : 65535UL)); + VerifyOrReturn(CheckValue("commissioningMode", value.commissioningMode, 1U)); } shouldContinue = true; break; @@ -128397,7 +128396,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMaxLength("value.deviceName", value.deviceName, 32)); + VerifyOrReturn(CheckValue("deviceType", value.deviceType, mDeviceType.HasValue() ? mDeviceType.Value() : 65535UL)); } shouldContinue = true; break; @@ -128406,7 +128405,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMaxValue("value.rotatingIdLen", value.rotatingIdLen, 100ULL)); + VerifyOrReturn(CheckConstraintMaxLength("value.deviceName", value.deviceName, 32)); } shouldContinue = true; break; @@ -128415,7 +128414,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintNotValue("value.pairingHint", value.pairingHint, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value.rotatingIdLen", value.rotatingIdLen, 100ULL)); } shouldContinue = true; break; @@ -128424,7 +128423,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMaxLength("value.pairingInstruction", value.pairingInstruction, 128)); + VerifyOrReturn(CheckConstraintNotValue("value.pairingHint", value.pairingHint, 0U)); } shouldContinue = true; break; @@ -128433,12 +128432,17 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value.numIPs", value.numIPs, 1U)); + VerifyOrReturn(CheckConstraintMaxLength("value.pairingInstruction", value.pairingInstruction, 128)); } shouldContinue = true; break; case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintMinValue("value.numIPs", value.numIPs, 1U)); + } shouldContinue = true; break; case 25: @@ -128451,12 +128455,16 @@ class Test_TC_SC_4_1Suite : public TestCommand break; case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128469,11 +128477,11 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 30: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 31: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128485,7 +128493,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 32: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128497,7 +128505,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 33: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128505,7 +128513,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 34: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128513,7 +128521,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 35: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128521,7 +128529,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 36: + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128529,7 +128537,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 37: + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128537,7 +128545,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 38: + case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128549,7 +128557,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 39: + case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128558,7 +128566,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 40: + case 41: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128567,7 +128575,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 41: + case 42: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128580,7 +128588,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 42: + case 43: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128593,7 +128601,15 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 43: + case 44: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + shouldContinue = true; + break; + case 45: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128602,7 +128618,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 44: + case 46: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128611,7 +128627,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 45: + case 47: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128620,7 +128636,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 46: + case 48: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128629,7 +128645,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 47: + case 49: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128638,7 +128654,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 48: + case 50: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128647,7 +128663,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 49: + case 51: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128656,22 +128672,22 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 50: + case 52: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 51: + case 53: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 52: + case 54: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 53: + case 55: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 54: + case 56: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128683,7 +128699,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 55: + case 57: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128695,7 +128711,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 56: + case 58: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128707,7 +128723,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 57: + case 59: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128715,7 +128731,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 58: + case 60: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128723,7 +128739,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 59: + case 61: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128731,7 +128747,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 60: + case 62: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128739,7 +128755,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 61: + case 63: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128747,7 +128763,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 62: + case 64: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128756,7 +128772,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 63: + case 65: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128765,7 +128781,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 64: + case 66: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128778,7 +128794,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 65: + case 67: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128791,7 +128807,15 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 66: + case 68: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + shouldContinue = true; + break; + case 69: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128800,7 +128824,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 67: + case 70: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128809,7 +128833,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 68: + case 71: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128818,7 +128842,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 69: + case 72: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128827,7 +128851,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 70: + case 73: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128836,7 +128860,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 71: + case 74: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128845,7 +128869,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 72: + case 75: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128854,15 +128878,15 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 73: + case 76: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 74: + case 77: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 75: + case 78: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128874,11 +128898,11 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 76: + case 79: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 77: + case 80: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128890,7 +128914,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 78: + case 81: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128902,7 +128926,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 79: + case 82: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128910,7 +128934,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 80: + case 83: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128918,7 +128942,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 81: + case 84: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128926,7 +128950,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 82: + case 85: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128934,7 +128958,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 83: + case 86: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128942,7 +128966,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 84: + case 87: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128954,7 +128978,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 85: + case 88: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128963,7 +128987,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 86: + case 89: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128972,7 +128996,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 87: + case 90: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128985,7 +129009,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 88: + case 91: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128998,7 +129022,15 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 89: + case 92: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + shouldContinue = true; + break; + case 93: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129007,7 +129039,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 90: + case 94: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129016,7 +129048,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 91: + case 95: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129025,7 +129057,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 92: + case 96: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129034,7 +129066,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 93: + case 97: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129043,7 +129075,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 94: + case 98: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129213,72 +129245,82 @@ class Test_TC_SC_4_1Suite : public TestCommand return FindCommissionable(kIdentityAlpha, value); } case 17: { - LogStep(17, "Step 2m: TXT key for commissioning mode (CM) CM=1 must be present"); + LogStep(17, + "Step 2m: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be an unsigned integer with units of " + "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " + "not exceed 65535."); + VerifyOrDo(!ShouldSkip("MCORE.SC.SAI_OP_DISCOVERY_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 18: { - LogStep(18, - "Step 2n: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " - "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); - VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "Step 2n: TXT key for commissioning mode (CM) CM=1 must be present"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 19: { LogStep(19, - "Step 2o: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); - VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + "Step 2o: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " + "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); + VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 20: { LogStep(20, - "Step 2p: If (MCORE.SC.RI_KEY ) present, key RI must include the Rotating Device Identifier encoded as a " - "uppercase string with a maximum length of 100 chars"); - VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + "Step 2p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); + VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 21: { LogStep(21, - "Step 2q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " - "text, omitting any leading zeros. If present value must be different of 0"); - VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + "Step 2q: If (MCORE.SC.RI_KEY ) present, key RI must include the Rotating Device Identifier encoded as a " + "uppercase string with a maximum length of 100 chars"); + VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 22: { LogStep(22, - "Step 2r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " - "of 128 bytes"); - VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + "Step 2r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " + "text, omitting any leading zeros. If present value must be different of 0"); + VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 23: { LogStep(23, - "Step 2s: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " - "messages."); + "Step 2s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " + "of 128 bytes"); + VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 24: { - LogStep(24, "Step 3: Reboot/restart the DUT"); + LogStep(24, + "Step 2t: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " + "messages."); + ListFreer listFreer; + chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; + return FindCommissionable(kIdentityAlpha, value); + } + case 25: { + LogStep(25, "Step 3: Reboot/restart the DUT"); VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::SystemCommands::Commands::Reboot::Type value; return Reboot(kIdentityAlpha, value); } - case 25: { - LogStep(25, "Step 3: Reboot target device(DUT)"); + case 26: { + LogStep(26, "Step 3: Reboot target device(DUT)"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -129288,15 +129330,15 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 26: { - LogStep(26, "Wait for the commissioned device to be retrieved"); + case 27: { + LogStep(27, "Wait for the commissioned device to be retrieved"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; return WaitForCommissionee(kIdentityAlpha, value); } - case 27: { - LogStep(27, + case 28: { + LogStep(28, "Step 3a: DUT put in Commissioning Mode using Open Basic Commissioning Window command, starting advertising " "Commissionable Node Discovery service using DNS-SD"); VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129309,23 +129351,23 @@ class Test_TC_SC_4_1Suite : public TestCommand ); } - case 28: { - LogStep(28, "Waiting after opening commissioning window"); + case 29: { + LogStep(29, "Waiting after opening commissioning window"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = mWaitAfterCommissioning.HasValue() ? mWaitAfterCommissioning.Value() : 5000UL; return WaitForMs(kIdentityAlpha, value); } - case 29: { - LogStep(29, + case 30: { + LogStep(30, "Step 4a: Check DNS-SD instance name must be 64-bit randomly selected ID expressed as a sixteen-char hex " "string with capital letters and must be different from the one at step 2"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 30: { - LogStep(30, "Step 4b: service type must be _matterc._udp"); + case 31: { + LogStep(31, "Step 4b: service type must be _matterc._udp"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -129334,8 +129376,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 31: { - LogStep(31, + case 32: { + LogStep(32, "Step 4c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or " "64bit MAC address expressed as a twelve or sixteen capital letter hex string"); VerifyOrDo(!ShouldSkip("(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR"), @@ -129344,8 +129386,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 32: { - LogStep(32, + case 33: { + LogStep(33, "Step 4c: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC address " "expressed as a twelve or sixteen capital letter hex string"); VerifyOrDo(!ShouldSkip("(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR"), @@ -129354,22 +129396,22 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 33: { - LogStep(33, "Step 4d: Check Long Discriminator _L"); + case 34: { + LogStep(34, "Step 4d: Check Long Discriminator _L"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByLongDiscriminator::Type value; value.value = mDiscriminator.HasValue() ? mDiscriminator.Value() : 3840ULL; return FindCommissionableByLongDiscriminator(kIdentityAlpha, value); } - case 34: { - LogStep(34, "Step 4e: Check Short Discriminator (_S)"); + case 35: { + LogStep(35, "Step 4e: Check Short Discriminator (_S)"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByShortDiscriminator::Type value; value.value = mShortDiscriminator.HasValue() ? mShortDiscriminator.Value() : 15ULL; return FindCommissionableByShortDiscriminator(kIdentityAlpha, value); } - case 35: { - LogStep(35, + case 36: { + LogStep(36, "Step 4f: If (MCORE.SC.VENDOR_SUBTYPE ) present, subtype _V is present must be 16-bit vendor id, " "encoded as a variable-length decimal number in ASCII text, omitting any leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.VENDOR_SUBTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129378,8 +129420,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mVendorId.HasValue() ? mVendorId.Value() : 65521ULL; return FindCommissionableByVendorId(kIdentityAlpha, value); } - case 36: { - LogStep(36, + case 37: { + LogStep(37, "Step 4g: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from " "Data Model and must be represented as a variable length decimal number in ASCII without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DEVTYPE_SUBTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129388,36 +129430,36 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mDeviceType.HasValue() ? mDeviceType.Value() : 65535ULL; return FindCommissionableByDeviceType(kIdentityAlpha, value); } - case 37: { - LogStep(37, "Step 4h: Check Commissioning Mode (_CM) subtype _CM is present"); + case 38: { + LogStep(38, "Step 4h: Check Commissioning Mode (_CM) subtype _CM is present"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByCommissioningMode::Type value; return FindCommissionableByCommissioningMode(kIdentityAlpha, value); } - case 38: { - LogStep(38, + case 39: { + LogStep(39, "Step 4i: key D must be present and represents the discriminator which must be encoded as a variable-length " "decimal value with up to 4 digits omitting any leading zeros"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 39: { - LogStep(39, "Step 4j: If (MCORE.SC.VP_KEY) present, VP key must contain at least Vendor ID is present."); + case 40: { + LogStep(40, "Step 4j: If (MCORE.SC.VP_KEY) present, VP key must contain at least Vendor ID is present."); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 40: { - LogStep(40, "Step 4k: If (MCORE.SC.VP_KEY) present, VP key must contain at least Product ID is present."); + case 41: { + LogStep(41, "Step 4k: If (MCORE.SC.VP_KEY) present, VP key must contain at least Product ID is present."); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 41: { - LogStep(41, + case 42: { + LogStep(42, "Step 4l: If (MCORE.SC.SII_OP_DISCOVERY_KEY ) present, SII key must be an unsigned integer with units of " "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " "not exceed 3600000"); @@ -129426,8 +129468,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 42: { - LogStep(42, + case 43: { + LogStep(43, "Step 4m: If (MCORE.SC.SAI_OP_DISCOVERY_KEY) present, SAI key must be an unsigned integer with units of " "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " "not exceed 3600000."); @@ -129436,73 +129478,83 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 43: { - LogStep(43, "Step 4n: TXT key for commissioning mode (CM) key CM=1 must be present"); + case 44: { + LogStep(44, + "Step 4n: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be an unsigned integer with units of " + "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " + "not exceed 65535."); + VerifyOrDo(!ShouldSkip("MCORE.SC.SAI_OP_DISCOVERY_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 44: { - LogStep(44, - "Step 4o: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " + case 45: { + LogStep(45, "Step 4o: TXT key for commissioning mode (CM) key CM=1 must be present"); + ListFreer listFreer; + chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; + return FindCommissionable(kIdentityAlpha, value); + } + case 46: { + LogStep(46, + "Step 4p: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 45: { - LogStep(45, - "Step 4p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); + case 47: { + LogStep(47, + "Step 4q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 46: { - LogStep(46, - "Step 4q: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " + case 48: { + LogStep(48, + "Step 4r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " "uppercase string with a maximum length of 100 chars"); VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 47: { - LogStep(47, - "Step 4r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " + case 49: { + LogStep(49, + "Step 4s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " "text, omitting any leading zeros. If present value must be different of 0"); VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 48: { - LogStep(48, - "Step 4s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " + case 50: { + LogStep(50, + "Step 4t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " "of 128 bytes"); VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 49: { - LogStep(49, - "Step 4t: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " + case 51: { + LogStep(51, + "Step 4u: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " "messages."); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 50: { - LogStep(50, "Step 5: Wait for OpenBasicCommissioningWindow timeout to expire"); + case 52: { + LogStep(52, "Step 5: Wait for OpenBasicCommissioningWindow timeout to expire"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 180000UL; return WaitForMs(kIdentityAlpha, value); } - case 51: { - LogStep(51, + case 53: { + LogStep(53, "Step 6: DUT is Commissioned and instructed to enter in commissioning mode using Open Commissioning Window " "command"); VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129527,8 +129579,8 @@ class Test_TC_SC_4_1Suite : public TestCommand ); } - case 52: { - LogStep(52, + case 54: { + LogStep(54, "Step 6: DUT is Commissioned and instructed to enter in commissioning mode using Open Commissioning Window " "command"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129539,23 +129591,23 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 53: { - LogStep(53, "Waiting after opening commissioning window"); + case 55: { + LogStep(55, "Waiting after opening commissioning window"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = mWaitAfterCommissioning.HasValue() ? mWaitAfterCommissioning.Value() : 5000UL; return WaitForMs(kIdentityAlpha, value); } - case 54: { - LogStep(54, + case 56: { + LogStep(56, "Step 7a: DNS-SD instance name must be 64-bit randomly selected ID expressed as a sixteen-char hex string with " "capital letters"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 55: { - LogStep(55, + case 57: { + LogStep(57, "Step 7b: Check Hostname.If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or " "64bit MAC address expressed as a twelve or sixteen capital letter hex string."); VerifyOrDo(!ShouldSkip("(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR"), @@ -129564,8 +129616,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 56: { - LogStep(56, + case 58: { + LogStep(58, "Step 7b: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC extended " "address expressed as a twelve or sixteen capital letter hex string."); VerifyOrDo(!ShouldSkip("(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR"), @@ -129574,22 +129626,22 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 57: { - LogStep(57, "Step 7c: Check Long Discriminator _L"); + case 59: { + LogStep(59, "Step 7c: Check Long Discriminator _L"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByLongDiscriminator::Type value; value.value = mDiscriminator.HasValue() ? mDiscriminator.Value() : 3840ULL; return FindCommissionableByLongDiscriminator(kIdentityAlpha, value); } - case 58: { - LogStep(58, "Step 7d: Check Short Discriminator (_S)"); + case 60: { + LogStep(60, "Step 7d: Check Short Discriminator (_S)"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByShortDiscriminator::Type value; value.value = mShortDiscriminator.HasValue() ? mShortDiscriminator.Value() : 15ULL; return FindCommissionableByShortDiscriminator(kIdentityAlpha, value); } - case 59: { - LogStep(59, + case 61: { + LogStep(61, "Step 7e: If (MCORE.SC.VENDOR_SUBTYPE) present, subtype _V is present must be 16-bit vendor id, encoded " "as a variable-length decimal number in ASCII text, omitting any leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.VENDOR_SUBTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129598,8 +129650,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mVendorId.HasValue() ? mVendorId.Value() : 65521ULL; return FindCommissionableByVendorId(kIdentityAlpha, value); } - case 60: { - LogStep(60, + case 62: { + LogStep(62, "Step 7f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from " "Data Model and must be represented as a variable length decimal number in ASCII without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.VENDOR_SUBTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129608,28 +129660,28 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mDeviceType.HasValue() ? mDeviceType.Value() : 65535ULL; return FindCommissionableByDeviceType(kIdentityAlpha, value); } - case 61: { - LogStep(61, "Step 7g: Check Commissioning Mode (_CM) subtype _CM is present"); + case 63: { + LogStep(63, "Step 7g: Check Commissioning Mode (_CM) subtype _CM is present"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByCommissioningMode::Type value; return FindCommissionableByCommissioningMode(kIdentityAlpha, value); } - case 62: { - LogStep(62, "Step 7h: If (MCORE.SC.VP_KEY ) present, VP key must contain at least Vendor ID is present."); + case 64: { + LogStep(64, "Step 7h: If (MCORE.SC.VP_KEY ) present, VP key must contain at least Vendor ID is present."); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 63: { - LogStep(63, "Step 7i: If (MCORE.SC.VP_KEY ) present, VP key must contain at least Product ID is present"); + case 65: { + LogStep(65, "Step 7i: If (MCORE.SC.VP_KEY ) present, VP key must contain at least Product ID is present"); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 64: { - LogStep(64, + case 66: { + LogStep(66, "Step 7j: Optional TXT key for MRP Retry Interval Idle. if (MCORE.SC.SII_OP_DISCOVERY_KEY) present, SII key " "must be an unsigned integer with units of milliseconds and shall be encoded as a variable length decimal " "number in ASCII, omitting leading zeros. Shall not exceed 3600000"); @@ -129638,8 +129690,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 65: { - LogStep(65, + case 67: { + LogStep(67, "Step 7k: Optional TXT key for MRP Retry Interval Active. if (MCORE.SC.SAI_OP_DISCOVERY_KEY) present, SAI key " "must be an unsigned integer with units of milliseconds and shall be encoded as a variable length decimal " "number in ASCII, omitting leading zeros. Shall not exceed 3600000."); @@ -129648,73 +129700,83 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 66: { - LogStep(66, "Step 7l: TXT key for commissioning mode. CM=2 must be present"); + case 68: { + LogStep(68, + "Step 7l: Optional TXT key for MRP Retry Active Mode Threshold. If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, " + "SAT key must be an unsigned integer with units of milliseconds and shall be encoded as a variable length " + "decimal number in ASCII, omitting leading zeros. Shall not exceed 65535."); + VerifyOrDo(!ShouldSkip("MCORE.SC.SAI_OP_DISCOVERY_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 67: { - LogStep(67, - "Step 7m: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " + case 69: { + LogStep(69, "Step 7m: TXT key for commissioning mode. CM=2 must be present"); + ListFreer listFreer; + chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; + return FindCommissionable(kIdentityAlpha, value); + } + case 70: { + LogStep(70, + "Step 7n: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 68: { - LogStep(68, - "Step 7n: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); + case 71: { + LogStep(71, + "Step 7o: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 69: { - LogStep(69, - "Step 7o: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " + case 72: { + LogStep(72, + "Step 7p: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " "uppercase string with a maximum length of 100 chars"); VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 70: { - LogStep(70, - "Step 7p: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " + case 73: { + LogStep(73, + "Step 7q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " "text, omitting any leading zeros. If present value must be different of 0"); VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 71: { - LogStep(71, - "Step 7q: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " + case 74: { + LogStep(74, + "Step 7r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " "of 128 bytes"); VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 72: { - LogStep(72, - "Step 7r: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " + case 75: { + LogStep(75, + "Step 7s: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " "messages"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 73: { - LogStep(73, "Step 8: Wait for OCW timeout to expire"); + case 76: { + LogStep(76, "Step 8: Wait for OCW timeout to expire"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 180000UL; return WaitForMs(kIdentityAlpha, value); } - case 74: { - LogStep(74, + case 77: { + LogStep(77, "Step 9: If (MCORE.SC.EXTENDED_DISCOVERY ) enable Extended Discovery. DUT should start to send Commissionable " "Node Discovery DNS-SD advertisements"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129726,8 +129788,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 75: { - LogStep(75, + case 78: { + LogStep(78, "Step 10a: Check DNS-SD instance name must be 64-bit randomly selected ID expressed as a sixteen-char hex " "string with capital letters"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129735,8 +129797,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 76: { - LogStep(76, "Step 10b: service type must be _matterc._udp"); + case 79: { + LogStep(79, "Step 10b: service type must be _matterc._udp"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -129746,8 +129808,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 77: { - LogStep(77, + case 80: { + LogStep(80, "Step 10c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or " "64bit MAC address expressed as a twelve or sixteen capital letter hex string"); VerifyOrDo(!ShouldSkip("(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129756,8 +129818,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 78: { - LogStep(78, + case 81: { + LogStep(81, "Step 10c: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC extended " "address expressed as a twelve or sixteen capital letter hex string."); VerifyOrDo(!ShouldSkip("(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129766,24 +129828,24 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 79: { - LogStep(79, "Step 10d: Check Long Discriminator _L"); + case 82: { + LogStep(82, "Step 10d: Check Long Discriminator _L"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByLongDiscriminator::Type value; value.value = mDiscriminator.HasValue() ? mDiscriminator.Value() : 3840ULL; return FindCommissionableByLongDiscriminator(kIdentityAlpha, value); } - case 80: { - LogStep(80, "Step 10e: Check Short Discriminator (_S)"); + case 83: { + LogStep(83, "Step 10e: Check Short Discriminator (_S)"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByShortDiscriminator::Type value; value.value = mShortDiscriminator.HasValue() ? mShortDiscriminator.Value() : 15ULL; return FindCommissionableByShortDiscriminator(kIdentityAlpha, value); } - case 81: { - LogStep(81, + case 84: { + LogStep(84, "Step 10f: If (MCORE.SC.VENDOR_SUBTYPE ) present, subtype _V is present must be 16-bit vendor id, " "encoded as a variable-length decimal number in ASCII text, omitting any leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.VENDOR_SUBTYPE && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129793,8 +129855,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mVendorId.HasValue() ? mVendorId.Value() : 65521ULL; return FindCommissionableByVendorId(kIdentityAlpha, value); } - case 82: { - LogStep(82, + case 85: { + LogStep(85, "Step 10g: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type " "from Data Model and must be represented as a variable length decimal number in ASCII without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DEVTYPE_SUBTYPE && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129804,38 +129866,38 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mDeviceType.HasValue() ? mDeviceType.Value() : 65535ULL; return FindCommissionableByDeviceType(kIdentityAlpha, value); } - case 83: { - LogStep(83, "Step 10h: Check Commissioning Mode (_CM)"); + case 86: { + LogStep(86, "Step 10h: Check Commissioning Mode (_CM)"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByCommissioningMode::Type value; return FindCommissionableByCommissioningMode(kIdentityAlpha, value); } - case 84: { - LogStep(84, "Step 10i: TXT key for discriminator (D)"); + case 87: { + LogStep(87, "Step 10i: TXT key for discriminator (D)"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 85: { - LogStep(85, "Step 10j: If (MCORE.SC.VP_KEY) present, VP key must contain at least Vendor ID is present"); + case 88: { + LogStep(88, "Step 10j: If (MCORE.SC.VP_KEY) present, VP key must contain at least Vendor ID is present"); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 86: { - LogStep(86, "Step 10k: If (MCORE.SC.VP_KEY) present, VP key must contain at least Product ID is present"); + case 89: { + LogStep(89, "Step 10k: If (MCORE.SC.VP_KEY) present, VP key must contain at least Product ID is present"); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 87: { - LogStep(87, + case 90: { + LogStep(90, "Step 10l: If (MCORE.SC.SII_OP_DISCOVERY_KEY) present, SII key must be an unsigned integer with units of " "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " "not exceed 3600000."); @@ -129845,8 +129907,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 88: { - LogStep(88, + case 91: { + LogStep(91, "Step 10m: If (MCORE.SC.SAI_OP_DISCOVERY_KEY) present, SAI key must be an unsigned integer with units of " "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " "not exceed 3600000."); @@ -129856,16 +129918,26 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 89: { - LogStep(89, "Step 10n: TXT key for commissioning mode (CM), CM=0 may be present"); + case 92: { + LogStep(92, + "Step 10n: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be an unsigned integer with units of " + "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " + "not exceed 65535."); + VerifyOrDo(!ShouldSkip("MCORE.SC.SAI_OP_DISCOVERY_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; + return FindCommissionable(kIdentityAlpha, value); + } + case 93: { + LogStep(93, "Step 10o: TXT key for commissioning mode (CM), CM=0 may be present"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 90: { - LogStep(90, - "Step 10o: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " + case 94: { + LogStep(94, + "Step 10p: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129873,18 +129945,18 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 91: { - LogStep(91, - "Step 10p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); + case 95: { + LogStep(95, + "Step 10q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 92: { - LogStep(92, - "Step 10q: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " + case 96: { + LogStep(96, + "Step 10r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " "uppercase string with a maximum length of 100 chars"); VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129892,9 +129964,9 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 93: { - LogStep(93, - "Step 10r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " + case 97: { + LogStep(97, + "Step 10s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " "text, omitting any leading zeros. If present value must be different of 0"); VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129902,9 +129974,9 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 94: { - LogStep(94, - "Step 10s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " + case 98: { + LogStep(98, + "Step 10t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " "of 128 bytes"); VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); From abbb74c3e8fedf5b54669f76925dec07d9e76189 Mon Sep 17 00:00:00 2001 From: C Freeman Date: Fri, 21 Jul 2023 19:41:14 -0400 Subject: [PATCH 17/39] Automation for TC-PS-3.1 (#28151) * Automation for TC-PS-3.1 * appease flake8. * Apply suggestions from review --- .../TC_DeviceBasicComposition.py | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/src/python_testing/TC_DeviceBasicComposition.py b/src/python_testing/TC_DeviceBasicComposition.py index 1c143723b1c0d1..956b4ff57c27e9 100644 --- a/src/python_testing/TC_DeviceBasicComposition.py +++ b/src/python_testing/TC_DeviceBasicComposition.py @@ -390,6 +390,100 @@ def test_all_endpoints_have_valid_composition(self): def test_topology_is_valid(self): asserts.skip("TODO: Make a test that verifies each endpoint only lists direct descendants, except Root Node and Aggregator endpoints that list all their descendants") + def test_TC_PS_3_1(self): + BRIDGED_NODE_DEVICE_TYPE_ID = 0x13 + success = True + self.print_step(1, "Wildcard read of device - already done") + + self.print_step(2, "Verify that all endpoints listed in the EndpointList are valid") + attribute_id = Clusters.PowerSource.Attributes.EndpointList.attribute_id + cluster_id = Clusters.PowerSource.id + attribute_string = self.cluster_mapper.get_attribute_string(cluster_id, attribute_id) + for endpoint_id, endpoint in self.endpoints.items(): + if Clusters.PowerSource not in endpoint: + continue + if Clusters.PowerSource.Attributes.EndpointList not in endpoint[Clusters.PowerSource]: + location = AttributePathLocation(endpoint_id=endpoint_id, cluster_id=cluster_id, attribute_id=attribute_id) + self.record_error(self.get_test_name(), location=location, + problem=f'Did not find {attribute_string} on {location.as_cluster_string(self.cluster_mapper)}', spec_location="EndpointList Attribute") + success = False + continue + + endpoint_list = endpoint[Clusters.PowerSource][Clusters.PowerSource.Attributes.EndpointList] + non_existent = set(endpoint_list) - set(self.endpoints.keys()) + if non_existent: + location = AttributePathLocation(endpoint_id=endpoint_id, cluster_id=cluster_id, attribute_id=attribute_id) + self.record_error(self.get_test_name(), location=location, + problem=f'{attribute_string} lists a non-existent endpoint', spec_location="EndpointList Attribute") + success = False + + self.print_step(3, "Verify that all Bridged Node endpoint lists are correct") + device_types = {} + parts_list = {} + for endpoint_id, endpoint in self.endpoints.items(): + if Clusters.PowerSource not in endpoint or Clusters.PowerSource.Attributes.EndpointList not in endpoint[Clusters.PowerSource]: + continue + + def GetPartValidityProblem(endpoint): + if Clusters.Descriptor not in endpoint: + return "Missing cluster descriptor" + if Clusters.Descriptor.Attributes.PartsList not in endpoint[Clusters.Descriptor]: + return "Missing PartList in descriptor cluster" + if Clusters.Descriptor.Attributes.DeviceTypeList not in endpoint[Clusters.Descriptor]: + return "Missing DeviceTypeList in descriptor cluster" + return None + + problem = GetPartValidityProblem(endpoint) + if problem: + location = AttributePathLocation(endpoint_id=endpoint_id, cluster_id=Clusters.Descriptor.id, + attribute_id=Clusters.Descriptor.Attributes.PartsList.id) + self.record_error(self.get_test_name(), location=location, + problem=problem, spec_location="PartsList Attribute") + success = False + continue + + device_types[endpoint_id] = [i.deviceType for i in endpoint[Clusters.Descriptor] + [Clusters.Descriptor.Attributes.DeviceTypeList]] + parts_list[endpoint_id] = endpoint[Clusters.Descriptor][Clusters.Descriptor.Attributes.PartsList] + + bridged_nodes = [id for (id, dev_type) in device_types.items() if BRIDGED_NODE_DEVICE_TYPE_ID in dev_type] + + for endpoint_id in bridged_nodes: + if Clusters.PowerSource not in self.endpoints[endpoint_id]: + continue + # using a list because we do want to preserve duplicates and error on those. + desired_endpoint_list = parts_list[endpoint_id].copy() + desired_endpoint_list.append(endpoint_id) + desired_endpoint_list.sort() + ep_list = self.endpoints[endpoint_id][Clusters.PowerSource][Clusters.PowerSource.Attributes.EndpointList] + ep_list.sort() + if ep_list != desired_endpoint_list: + location = AttributePathLocation(endpoint_id=endpoint_id, cluster_id=cluster_id, attribute_id=attribute_id) + self.record_error(self.get_test_name(), location=location, + problem=f'Power source EndpointList on bridged node endpoint {endpoint_id} is not as expected. Desired: {desired_endpoint_list} Actual: {ep_list}', spec_location="EndpointList Attribute") + success = False + + self.print_step(4, "Verify that all Bridged Node children endpoint lists are correct") + children = [] + # note, this doesn't handle the full tree structure, single layer only + for endpoint_id in bridged_nodes: + children = children + parts_list[endpoint_id] + + for endpoint_id in children: + if Clusters.PowerSource not in self.endpoints[endpoint_id]: + continue + desired_endpoint_list = [endpoint_id] + ep_list = self.endpoints[endpoint_id][Clusters.PowerSource][Clusters.PowerSource.Attributes.EndpointList] + ep_list.sort() + if ep_list != desired_endpoint_list: + location = AttributePathLocation(endpoint_id=endpoint_id, cluster_id=cluster_id, attribute_id=attribute_id) + self.record_error(self.get_test_name(), location=location, + problem=f'Power source EndpointList on bridged child endpoint {endpoint_id} is not as expected. Desired: {desired_endpoint_list} Actual: {ep_list}', spec_location="EndpointList Attribute") + success = False + + if not success: + self.fail_current_test("power source EndpointList attribute is incorrect") + if __name__ == "__main__": default_matter_test_main() From f86099137c1ad4b23587263f737571107d11b0d6 Mon Sep 17 00:00:00 2001 From: C Freeman Date: Fri, 21 Jul 2023 20:00:50 -0400 Subject: [PATCH 18/39] Basic comp tests: Update to Test plan style (#28145) * Basic comp tests: Update to Test plan style Also add in the missing bits. NOTE: Still missing the topology test - it's getting close to the deadline and I don't want to rush here and make errors. * Device composition: duplicate device types * Appease the python overlords * Change back default * Revert "Device composition: duplicate device types" This reverts commit 333d9d5c9e7ad7c6f7f1892f75eb5c8d500f99f8. * Apply suggestions from code review --- .../TC_DeviceBasicComposition.py | 79 +++++++++++++++++-- 1 file changed, 71 insertions(+), 8 deletions(-) diff --git a/src/python_testing/TC_DeviceBasicComposition.py b/src/python_testing/TC_DeviceBasicComposition.py index 956b4ff57c27e9..1d3f3fc944514e 100644 --- a/src/python_testing/TC_DeviceBasicComposition.py +++ b/src/python_testing/TC_DeviceBasicComposition.py @@ -251,16 +251,52 @@ def fail_current_test(self, msg: Optional[str] = None): asserts.fail(msg) # ======= START OF ACTUAL TESTS ======= - def test_endpoint_zero_present(self): - logging.info("Validating that the Root Node endpoint is present (EP0)") + def test_TC_SM_1_1(self): + ROOT_NODE_DEVICE_TYPE = 0x16 + self.print_step(1, "Perform a wildcard read of attributes on all endpoints - already done") + self.print_step(2, "Verify that endpoint 0 exists") if 0 not in self.endpoints: self.record_error(self.get_test_name(), location=AttributePathLocation(endpoint_id=0), problem="Did not find Endpoint 0.", spec_location="Endpoint Composition") self.fail_current_test() - def test_descriptor_present_on_each_endpoint(self): - logging.info("Validating each endpoint has a descriptor cluster") + self.print_step(3, "Verify that endpoint 0 descriptor cluster includes the root node device type") + if Clusters.Descriptor not in self.endpoints[0]: + self.record_error(self.get_test_name(), location=AttributePathLocation(endpoint_id=0), + problem="No descriptor cluster on Endpoint 0", spec_location="Root node device type") + self.fail_current_test() + + listed_device_types = [i.deviceType for i in self.endpoints[0] + [Clusters.Descriptor][Clusters.Descriptor.Attributes.DeviceTypeList]] + if ROOT_NODE_DEVICE_TYPE not in listed_device_types: + self.record_error(self.get_test_name(), location=AttributePathLocation(endpoint_id=0), + problem="Root node device type not listed on endpoint 0", spec_location="Root node device type") + self.fail_current_test() + self.print_step(4, "Verify that the root node device type does not appear in any of the non-zero endpoints") + for endpoint_id, endpoint in self.endpoints.items(): + if endpoint_id == 0: + continue + listed_device_types = [i.deviceType for i in endpoint[Clusters.Descriptor] + [Clusters.Descriptor.Attributes.DeviceTypeList]] + if ROOT_NODE_DEVICE_TYPE in listed_device_types: + self.record_error(self.get_test_name(), location=AttributePathLocation(endpoint_id=endpoint_id), + problem=f'Root node device type listed on endpoint {endpoint_id}', spec_location="Root node device type") + self.fail_current_test() + + self.print_step(5, "Verify the existence of all the root node clusters on EP0") + root = self.endpoints[0] + required_clusters = [Clusters.BasicInformation, Clusters.AccessControl, Clusters.GroupKeyManagement, + Clusters.GeneralCommissioning, Clusters.AdministratorCommissioning, Clusters.OperationalCredentials, Clusters.GeneralDiagnostics] + for c in required_clusters: + if c not in root: + self.record_error(self.get_test_name(), location=AttributePathLocation(endpoint_id=0), + problem=f'Root node does not contain required cluster {c}', spec_location="Root node device type") + self.fail_current_test() + + def test_DT_1_1(self): + self.print_step(1, "Perform a wildcard read of attributes on all endpoints - already done") + self.print_step(2, "Verify that each endpoint includes a descriptor cluster") success = True for endpoint_id, endpoint in self.endpoints.items(): has_descriptor = (Clusters.Descriptor in endpoint) @@ -273,8 +309,10 @@ def test_descriptor_present_on_each_endpoint(self): if not success: self.fail_current_test("At least one endpoint was missing the descriptor cluster.") - def test_global_attributes_present_on_each_cluster(self): - logging.info("Validating each cluster has the mandatory global attributes") + def test_IDM_10_1(self): + self.print_step(1, "Perform a wildcard read of attributes on all endpoints - already done") + + self.print_step(2, "Validate all global attributes are present") @dataclass class RequiredMandatoryAttribute: @@ -297,6 +335,7 @@ class RequiredMandatoryAttribute: validator=check_list_of_ints_in_range(0, 0xFFFF_FFFF)), ] + self.print_step(3, "Validate all reported attributes match AttributeList") success = True for endpoint_id, endpoint in self.endpoints_tlv.items(): for cluster_id, cluster in endpoint.items(): @@ -359,13 +398,37 @@ class RequiredMandatoryAttribute: # Warn only for now # TODO: Fail in the future continue + for attribute_id in cluster: + if attribute_id not in attribute_list: + attribute_string = self.cluster_mapper.get_attribute_string(cluster_id, attribute_id) + location = AttributePathLocation(endpoint_id, cluster_id, attribute_id) + self.record_error(self.get_test_name(), location=location, + problem=f'Found attribute {attribute_string} on {location.as_cluster_string(self.cluster_mapper)} not listed in attribute list', spec_location="AttributeList Attribute") + success = False if not success: self.fail_current_test( "At least one cluster was missing a mandatory global attribute or had differences between claimed attributes supported and actual.") - def test_all_attribute_strings_valid(self): - asserts.skip("TODO: Validate every string in the attribute tree is valid UTF-8 and has no nulls") + def test_IDM_11_1(self): + success = True + for endpoint_id, endpoint in self.endpoints_tlv.items(): + for cluster_id, cluster in endpoint.items(): + for attribute_id, attribute in cluster.items(): + if cluster_id not in Clusters.ClusterObjects.ALL_ATTRIBUTES or attribute_id not in Clusters.ClusterObjects.ALL_ATTRIBUTES[cluster_id]: + continue + if Clusters.ClusterObjects.ALL_ATTRIBUTES[cluster_id][attribute_id].attribute_type.Type is not str: + continue + try: + cluster[attribute_id].encode('utf-8', errors='strict') + except UnicodeError: + location = AttributePathLocation(endpoint_id, cluster_id, attribute_id) + attribute_string = self.cluster_mapper.get_attribute_string(cluster_id, attribute_id) + self.record_error(self.get_test_name( + ), location=location, problem=f'Attribute {attribute_string} on {location.as_cluster_string(self.cluster_mapper)} is invalid UTF-8', spec_location="Data types - Character String") + success = False + if not success: + self.fail_current_test("At least one attribute string was not valid UTF-8") def test_all_event_strings_valid(self): asserts.skip("TODO: Validate every string in the read events is valid UTF-8 and has no nulls") From d8dff606241a6f61d57de0b1e4145408c03464ed Mon Sep 17 00:00:00 2001 From: C Freeman Date: Fri, 21 Jul 2023 20:23:59 -0400 Subject: [PATCH 19/39] Power source: Update bridge app (#28134) * Power source: Update bridge app - move power cluster to composed endpoint base - add power source device type to composed endpoint base - add endpoint list to power source cluster - update revision of power source cluster - Use AttributeAccess interface (allows list handling) - Add required attributes NOTE: The events list is still not correct, so the bridge app does not pass the 1.1 test Tests: Attributes ok on 1.1, 2.1 ok * Include all the endpoints for the composed device * Address comments from review. Test: Read EndpointList attribute from correct and incorrect cluster TC_PS_1_1, TC_PS_2_1 (1.1 fails, but not on attributes) also tried with empty endpoint list - OK * Update examples/bridge-app/linux/main.cpp Co-authored-by: Boris Zbarsky * Update examples/bridge-app/linux/main.cpp Co-authored-by: Boris Zbarsky --------- Co-authored-by: Boris Zbarsky --- examples/bridge-app/linux/Device.cpp | 11 ++ examples/bridge-app/linux/include/Device.h | 9 +- examples/bridge-app/linux/main.cpp | 168 ++++++++++++--------- 3 files changed, 112 insertions(+), 76 deletions(-) diff --git a/examples/bridge-app/linux/Device.cpp b/examples/bridge-app/linux/Device.cpp index 53959cc5f919c0..e049e270c49f42 100644 --- a/examples/bridge-app/linux/Device.cpp +++ b/examples/bridge-app/linux/Device.cpp @@ -275,6 +275,17 @@ void DevicePowerSource::SetDescription(std::string aDescription) } } +void DevicePowerSource::SetEndpointList(std::vector aEndpointList) +{ + bool changed = aEndpointList != mEndpointList; + mEndpointList = aEndpointList; + + if (changed && mChanged_CB) + { + mChanged_CB(this, kChanged_EndpointList); + } +} + EndpointListInfo::EndpointListInfo(uint16_t endpointListId, std::string name, EndpointListTypeEnum type) { mEndpointListId = endpointListId; diff --git a/examples/bridge-app/linux/include/Device.h b/examples/bridge-app/linux/include/Device.h index 2b1c110c1b1ab3..d5c8434b29eda1 100644 --- a/examples/bridge-app/linux/include/Device.h +++ b/examples/bridge-app/linux/include/Device.h @@ -175,8 +175,9 @@ class DevicePowerSource : public Device public: enum Changed_t { - kChanged_BatLevel = kChanged_Last << 1, - kChanged_Description = kChanged_Last << 2, + kChanged_BatLevel = kChanged_Last << 1, + kChanged_Description = kChanged_Last << 2, + kChanged_EndpointList = kChanged_Last << 3, } Changed; DevicePowerSource(const char * szDeviceName, std::string szLocation, @@ -189,12 +190,14 @@ class DevicePowerSource : public Device void SetBatChargeLevel(uint8_t aBatChargeLevel); void SetDescription(std::string aDescription); + void SetEndpointList(std::vector mEndpointList); inline uint32_t GetFeatureMap() { return mFeatureMap.Raw(); }; inline uint8_t GetBatChargeLevel() { return mBatChargeLevel; }; inline uint8_t GetOrder() { return mOrder; }; inline uint8_t GetStatus() { return mStatus; }; inline std::string GetDescription() { return mDescription; }; + std::vector & GetEndpointList() { return mEndpointList; } private: void HandleDeviceChange(Device * device, Device::Changed_t changeMask); @@ -206,6 +209,8 @@ class DevicePowerSource : public Device std::string mDescription = "Primary Battery"; chip::BitFlags mFeatureMap; DeviceCallback_fn mChanged_CB; + // This is linux, vector is not going to kill us here and it's easier. Plus, post c++11, storage is contiguous with .data() + std::vector mEndpointList; }; class EndpointListInfo diff --git a/examples/bridge-app/linux/main.cpp b/examples/bridge-app/linux/main.cpp index d460836e8ca4f7..382ff7fe456de0 100644 --- a/examples/bridge-app/linux/main.cpp +++ b/examples/bridge-app/linux/main.cpp @@ -66,7 +66,8 @@ const int kDescriptorAttributeArraySize = 254; EndpointId gCurrentEndpointId; EndpointId gFirstDynamicEndpointId; -Device * gDevices[CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT]; +// Power source is on the same endpoint as the composed device +Device * gDevices[CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT + 1]; std::vector gRooms; std::vector gActions; @@ -180,26 +181,6 @@ Action action2(0x1002, "Turn On Room 2", Actions::ActionTypeEnum::kAutomation, 0 Action action3(0x1003, "Turn Off Room 1", Actions::ActionTypeEnum::kAutomation, 0xE003, 0x01, Actions::ActionStateEnum::kInactive, false); -// --------------------------------------------------------------------------- -// -// POWER SOURCE ENDPOINT: contains the following clusters: -// - Power Source -// - Descriptor -// - Bridged Device Basic Information - -DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(powerSourceAttrs) -DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::BatChargeLevel::Id, ENUM8, 1, 0), - DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::Order::Id, INT8U, 1, 0), - DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::Status::Id, ENUM8, 1, 0), - DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::Description::Id, CHAR_STRING, 32, 0), DECLARE_DYNAMIC_ATTRIBUTE_LIST_END(); - -DECLARE_DYNAMIC_CLUSTER_LIST_BEGIN(bridgedPowerSourceClusters) -DECLARE_DYNAMIC_CLUSTER(Descriptor::Id, descriptorAttrs, nullptr, nullptr), - DECLARE_DYNAMIC_CLUSTER(BridgedDeviceBasicInformation::Id, bridgedDeviceBasicAttrs, nullptr, nullptr), - DECLARE_DYNAMIC_CLUSTER(PowerSource::Id, powerSourceAttrs, nullptr, nullptr), DECLARE_DYNAMIC_CLUSTER_LIST_END; - -DECLARE_DYNAMIC_ENDPOINT(bridgedPowerSourceEndpoint, bridgedPowerSourceClusters); - DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(tempSensorAttrs) DECLARE_DYNAMIC_ATTRIBUTE(TemperatureMeasurement::Attributes::MeasuredValue::Id, INT16S, 2, 0), /* Measured Value */ DECLARE_DYNAMIC_ATTRIBUTE(TemperatureMeasurement::Attributes::MinMeasuredValue::Id, INT16S, 2, 0), /* Min Measured Value */ @@ -229,18 +210,28 @@ DataVersion gTempSensor2DataVersions[ArraySize(bridgedTempSensorClusters)]; // COMPOSED DEVICE ENDPOINT: contains the following clusters: // - Descriptor // - Bridged Device Basic Information +// - Power source // Composed Device Configuration +DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(powerSourceAttrs) +DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::BatChargeLevel::Id, ENUM8, 1, 0), + DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::BatReplacementNeeded::Id, BOOLEAN, 1, 0), + DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::BatReplaceability::Id, ENUM8, 1, 0), + DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::Order::Id, INT8U, 1, 0), + DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::Status::Id, ENUM8, 1, 0), + DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::Description::Id, CHAR_STRING, 32, 0), + DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::EndpointList::Id, ARRAY, 0, 0), + DECLARE_DYNAMIC_ATTRIBUTE(PowerSource::Attributes::FeatureMap::Id, BITMAP32, 4, 0), DECLARE_DYNAMIC_ATTRIBUTE_LIST_END(); + DECLARE_DYNAMIC_CLUSTER_LIST_BEGIN(bridgedComposedDeviceClusters) DECLARE_DYNAMIC_CLUSTER(Descriptor::Id, descriptorAttrs, nullptr, nullptr), DECLARE_DYNAMIC_CLUSTER(BridgedDeviceBasicInformation::Id, bridgedDeviceBasicAttrs, nullptr, nullptr), - DECLARE_DYNAMIC_CLUSTER_LIST_END; + DECLARE_DYNAMIC_CLUSTER(PowerSource::Id, powerSourceAttrs, nullptr, nullptr), DECLARE_DYNAMIC_CLUSTER_LIST_END; DECLARE_DYNAMIC_ENDPOINT(bridgedComposedDeviceEndpoint, bridgedComposedDeviceClusters); DataVersion gComposedDeviceDataVersions[ArraySize(bridgedComposedDeviceClusters)]; DataVersion gComposedTempSensor1DataVersions[ArraySize(bridgedTempSensorClusters)]; DataVersion gComposedTempSensor2DataVersions[ArraySize(bridgedTempSensorClusters)]; -DataVersion gComposedPowerSourceDataVersions[ArraySize(bridgedPowerSourceClusters)]; } // namespace @@ -254,7 +245,7 @@ DataVersion gComposedPowerSourceDataVersions[ArraySize(bridgedPowerSourceCluster #define ZCL_ON_OFF_CLUSTER_REVISION (4u) #define ZCL_TEMPERATURE_SENSOR_CLUSTER_REVISION (1u) #define ZCL_TEMPERATURE_SENSOR_FEATURE_MAP (0u) -#define ZCL_POWER_SOURCE_CLUSTER_REVISION (1u) +#define ZCL_POWER_SOURCE_CLUSTER_REVISION (2u) // --------------------------------------------------------------------------- @@ -425,6 +416,10 @@ void HandleDevicePowerSourceStatusChanged(DevicePowerSource * dev, DevicePowerSo { MatterReportingAttributeChangeCallback(dev->GetEndpointId(), PowerSource::Id, PowerSource::Attributes::Description::Id); } + if (itemChangedMask & DevicePowerSource::kChanged_EndpointList) + { + MatterReportingAttributeChangeCallback(dev->GetEndpointId(), PowerSource::Id, PowerSource::Attributes::EndpointList::Id); + } } void HandleDeviceTempSensorStatusChanged(DeviceTempSensor * dev, DeviceTempSensor::Changed_t itemChangedMask) @@ -518,45 +513,6 @@ EmberAfStatus HandleWriteOnOffAttribute(DeviceOnOff * dev, chip::AttributeId att return EMBER_ZCL_STATUS_SUCCESS; } -EmberAfStatus HandleReadPowerSourceAttribute(DevicePowerSource * dev, chip::AttributeId attributeId, uint8_t * buffer, - uint16_t maxReadLength) -{ - using namespace app::Clusters; - if ((attributeId == PowerSource::Attributes::BatChargeLevel::Id) && (maxReadLength == 1)) - { - *buffer = dev->GetBatChargeLevel(); - } - else if ((attributeId == PowerSource::Attributes::Order::Id) && (maxReadLength == 1)) - { - *buffer = dev->GetOrder(); - } - else if ((attributeId == PowerSource::Attributes::Status::Id) && (maxReadLength == 1)) - { - *buffer = dev->GetStatus(); - } - else if ((attributeId == PowerSource::Attributes::Description::Id) && (maxReadLength == 32)) - { - MutableByteSpan zclDescpitionSpan(buffer, maxReadLength); - MakeZclCharString(zclDescpitionSpan, dev->GetDescription().c_str()); - } - else if ((attributeId == PowerSource::Attributes::ClusterRevision::Id) && (maxReadLength == 2)) - { - uint16_t rev = ZCL_POWER_SOURCE_CLUSTER_REVISION; - memcpy(buffer, &rev, sizeof(rev)); - } - else if ((attributeId == PowerSource::Attributes::FeatureMap::Id) && (maxReadLength == 4)) - { - uint32_t featureMap = dev->GetFeatureMap(); - memcpy(buffer, &featureMap, sizeof(featureMap)); - } - else - { - return EMBER_ZCL_STATUS_FAILURE; - } - - return EMBER_ZCL_STATUS_SUCCESS; -} - EmberAfStatus HandleReadTempMeasurementAttribute(DeviceTempSensor * dev, chip::AttributeId attributeId, uint8_t * buffer, uint16_t maxReadLength) { @@ -615,11 +571,6 @@ EmberAfStatus emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterI { ret = HandleReadOnOffAttribute(static_cast(dev), attributeMetadata->attributeId, buffer, maxReadLength); } - else if (clusterId == chip::app::Clusters::PowerSource::Id) - { - ret = HandleReadPowerSourceAttribute(static_cast(dev), attributeMetadata->attributeId, buffer, - maxReadLength); - } else if (clusterId == TemperatureMeasurement::Id) { ret = HandleReadTempMeasurementAttribute(static_cast(dev), attributeMetadata->attributeId, buffer, @@ -630,6 +581,67 @@ EmberAfStatus emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterI return ret; } +class BridgedPowerSourceAttrAccess : public AttributeAccessInterface +{ +public: + // Register on all endpoints. + BridgedPowerSourceAttrAccess() : AttributeAccessInterface(Optional::Missing(), PowerSource::Id) {} + + CHIP_ERROR + Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) override + { + uint16_t powerSourceDeviceIndex = CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT; + + if ((gDevices[powerSourceDeviceIndex] != nullptr)) + { + DevicePowerSource * dev = static_cast(gDevices[powerSourceDeviceIndex]); + if (aPath.mEndpointId != dev->GetEndpointId()) + { + return CHIP_IM_GLOBAL_STATUS(UnsupportedEndpoint); + } + switch (aPath.mAttributeId) + { + case PowerSource::Attributes::BatChargeLevel::Id: + aEncoder.Encode(dev->GetBatChargeLevel()); + break; + case PowerSource::Attributes::Order::Id: + aEncoder.Encode(dev->GetOrder()); + break; + case PowerSource::Attributes::Status::Id: + aEncoder.Encode(dev->GetStatus()); + break; + case PowerSource::Attributes::Description::Id: + aEncoder.Encode(chip::CharSpan(dev->GetDescription().c_str(), dev->GetDescription().size())); + break; + case PowerSource::Attributes::EndpointList::Id: { + std::vector & list = dev->GetEndpointList(); + DataModel::List dm_list(chip::Span(list.data(), list.size())); + aEncoder.Encode(dm_list); + break; + } + case PowerSource::Attributes::ClusterRevision::Id: + aEncoder.Encode(ZCL_POWER_SOURCE_CLUSTER_REVISION); + break; + case PowerSource::Attributes::FeatureMap::Id: + aEncoder.Encode(dev->GetFeatureMap()); + break; + + case PowerSource::Attributes::BatReplacementNeeded::Id: + aEncoder.Encode(false); + break; + case PowerSource::Attributes::BatReplaceability::Id: + aEncoder.Encode(PowerSource::BatReplaceabilityEnum::kNotReplaceable); + break; + default: + return CHIP_IM_GLOBAL_STATUS(UnsupportedAttribute); + } + } + return CHIP_NO_ERROR; + } +}; + +BridgedPowerSourceAttrAccess gPowerAttrAccess; + EmberAfStatus emberAfExternalAttributeWriteCallback(EndpointId endpoint, ClusterId clusterId, const EmberAfAttributeMetadata * attributeMetadata, uint8_t * buffer) { @@ -732,12 +744,11 @@ void ApplicationInit() {} const EmberAfDeviceType gBridgedOnOffDeviceTypes[] = { { DEVICE_TYPE_LO_ON_OFF_LIGHT, DEVICE_VERSION_DEFAULT }, { DEVICE_TYPE_BRIDGED_NODE, DEVICE_VERSION_DEFAULT } }; -const EmberAfDeviceType gBridgedComposedDeviceTypes[] = { { DEVICE_TYPE_BRIDGED_NODE, DEVICE_VERSION_DEFAULT } }; +const EmberAfDeviceType gBridgedComposedDeviceTypes[] = { { DEVICE_TYPE_BRIDGED_NODE, DEVICE_VERSION_DEFAULT }, + { DEVICE_TYPE_POWER_SOURCE, DEVICE_VERSION_DEFAULT } }; const EmberAfDeviceType gComposedTempSensorDeviceTypes[] = { { DEVICE_TYPE_TEMP_SENSOR, DEVICE_VERSION_DEFAULT } }; -const EmberAfDeviceType gComposedPowerSourceDeviceTypes[] = { { DEVICE_TYPE_POWER_SOURCE, DEVICE_VERSION_DEFAULT } }; - const EmberAfDeviceType gBridgedTempSensorDeviceTypes[] = { { DEVICE_TYPE_TEMP_SENSOR, DEVICE_VERSION_DEFAULT }, { DEVICE_TYPE_BRIDGED_NODE, DEVICE_VERSION_DEFAULT } }; @@ -970,9 +981,6 @@ int main(int argc, char * argv[]) AddDeviceEndpoint(&ComposedTempSensor2, &bridgedTempSensorEndpoint, Span(gComposedTempSensorDeviceTypes), Span(gComposedTempSensor2DataVersions), ComposedDevice.GetEndpointId()); - AddDeviceEndpoint(&ComposedPowerSource, &bridgedPowerSourceEndpoint, - Span(gComposedPowerSourceDeviceTypes), - Span(gComposedPowerSourceDataVersions), ComposedDevice.GetEndpointId()); // Add 4 lights for the Action Clusters tests AddDeviceEndpoint(&ActionLight1, &bridgedLightEndpoint, Span(gBridgedOnOffDeviceTypes), @@ -983,6 +991,17 @@ int main(int argc, char * argv[]) Span(gActionLight3DataVersions), 1); AddDeviceEndpoint(&ActionLight4, &bridgedLightEndpoint, Span(gBridgedOnOffDeviceTypes), Span(gActionLight4DataVersions), 1); + + // Because the power source is on the same endpoint as the composed device, it needs to be explicitly added + gDevices[CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT] = &ComposedPowerSource; + // This provides power for the composed endpoint + std::vector endpointList; + endpointList.push_back(ComposedDevice.GetEndpointId()); + endpointList.push_back(ComposedTempSensor1.GetEndpointId()); + endpointList.push_back(ComposedTempSensor2.GetEndpointId()); + ComposedPowerSource.SetEndpointList(endpointList); + ComposedPowerSource.SetEndpointId(ComposedDevice.GetEndpointId()); + gRooms.push_back(&room1); gRooms.push_back(&room2); gRooms.push_back(&room3); @@ -1004,6 +1023,7 @@ int main(int argc, char * argv[]) // Run CHIP ApplicationInit(); + registerAttributeAccessOverride(&gPowerAttrAccess); chip::DeviceLayer::PlatformMgr().RunEventLoop(); return 0; From 7f9571b3560fba10a33acfbedfa9d5e5d277a16b Mon Sep 17 00:00:00 2001 From: C Freeman Date: Fri, 21 Jul 2023 23:15:27 -0400 Subject: [PATCH 20/39] Fix for DST ValidStarting time not checked (#28188) Previous code didn't check the starting time for the DST and neither did the test. This adds the check to the code and the test, will need to add to the test plans as well. --- .../time-synchronization-server.cpp | 5 ++++- src/python_testing/TC_TIMESYNC_2_8.py | 20 +++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/app/clusters/time-synchronization-server/time-synchronization-server.cpp b/src/app/clusters/time-synchronization-server/time-synchronization-server.cpp index f7a0c39919d168..9a1b2aa408bd59 100644 --- a/src/app/clusters/time-synchronization-server/time-synchronization-server.cpp +++ b/src/app/clusters/time-synchronization-server/time-synchronization-server.cpp @@ -571,7 +571,10 @@ CHIP_ERROR TimeSynchronizationServer::GetLocalTime(EndpointId ep, DataModel::Nul timeZoneOffset = static_cast(tzStore.timeZone.offset); VerifyOrReturnError(GetDSTOffset().size() != 0, CHIP_ERROR_INVALID_TIME); const auto & dst = GetDSTOffset()[0]; - dstOffset = static_cast(dst.offset); + if (dst.validStarting <= chipEpochTime) + { + dstOffset = static_cast(dst.offset); + } uint64_t usRemainder = chipEpochTime % chip::kMicrosecondsPerSecond; // microseconds part of chipEpochTime chipEpochTime = (chipEpochTime / chip::kMicrosecondsPerSecond); // make it safe to cast to int64 by converting to seconds diff --git a/src/python_testing/TC_TIMESYNC_2_8.py b/src/python_testing/TC_TIMESYNC_2_8.py index ce5ed2b4ec307c..f324a845ba22db 100644 --- a/src/python_testing/TC_TIMESYNC_2_8.py +++ b/src/python_testing/TC_TIMESYNC_2_8.py @@ -17,7 +17,7 @@ import time import typing -from datetime import timedelta +from datetime import datetime, timedelta, timezone import chip.clusters as Clusters from chip.clusters.Types import NullValue @@ -174,7 +174,23 @@ async def test_TC_TIMESYNC_2_8(self): local = await self.read_ts_attribute_expect_success(local_attr) compare_time(received=local, offset=timedelta(seconds=-3600), tolerance=timedelta(seconds=5)) - self.print_step(27, "Send SetDSTOffset command") + self.print_step(27, "Send SetDSTOffset command with DST starting in the future") + valid = utc_time_in_matter_epoch(datetime.now(tz=timezone.utc) + timedelta(seconds=10)) + dst = [dst_struct(offset=3600, validStarting=valid, validUntil=NullValue)] + await self.send_set_dst_cmd(dst) + + self.print_step(28, "Read Localtime") + local = await self.read_ts_attribute_expect_success(local_attr) + compare_time(received=local, offset=timedelta(seconds=0), tolerance=timedelta(seconds=5)) + + self.print_step(29, "Wait 15s") + time.sleep(15) + + self.print_step(30, "Read Localtime") + local = await self.read_ts_attribute_expect_success(local_attr) + compare_time(received=local, offset=timedelta(seconds=3600), tolerance=timedelta(seconds=5)) + + self.print_step(31, "Send SetDSTOffset command") dst = [dst_struct(offset=0, validStarting=0, validUntil=NullValue)] await self.send_set_dst_cmd(dst) From 8f7dd900a806ddbadd6167d4e6b2a1aea54820f3 Mon Sep 17 00:00:00 2001 From: Marc Mikolits Date: Sat, 22 Jul 2023 05:21:18 +0200 Subject: [PATCH 21/39] Generate lock operation events after lock state has changed (#27991) * #26925 generate lock operation events after lock state has changed * #26925 pass fabricIdx and nodeId instead of commandObj * #26925 async execution of lock actions in example app * #26925 change async delays to 0s to not affect certification tests * #26925 add documentation * #26925 add error log if fabricIdx or nodeId is missing on remote actions * #26925 update check for missing fabricIdx and nodeId --- .../lock-common/include/LockEndpoint.h | 14 ++- .../lock-common/include/LockManager.h | 12 +- .../lock-app/lock-common/src/LockEndpoint.cpp | 110 +++++++++++++++--- .../lock-app/lock-common/src/LockManager.cpp | 15 ++- .../lock-common/src/ZCLDoorLockCallbacks.cpp | 15 ++- .../door-lock-server-callback.cpp | 12 +- .../door-lock-server/door-lock-server.cpp | 39 +++---- .../door-lock-server/door-lock-server.h | 37 ++++-- 8 files changed, 186 insertions(+), 68 deletions(-) diff --git a/examples/lock-app/lock-common/include/LockEndpoint.h b/examples/lock-app/lock-common/include/LockEndpoint.h index 6e1fb0311f29b4..63af4f46b0de30 100644 --- a/examples/lock-app/lock-common/include/LockEndpoint.h +++ b/examples/lock-app/lock-common/include/LockEndpoint.h @@ -64,9 +64,12 @@ class LockEndpoint inline chip::EndpointId GetEndpointId() const { return mEndpointId; } - bool Lock(const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource); - bool Unlock(const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource); - bool Unbolt(const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource); + bool Lock(const Nullable & fabricIdx, const Nullable & nodeId, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource); + bool Unlock(const Nullable & fabricIdx, const Nullable & nodeId, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource); + bool Unbolt(const Nullable & fabricIdx, const Nullable & nodeId, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource); bool GetUser(uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) const; bool SetUser(uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, const chip::CharSpan & userName, @@ -98,13 +101,16 @@ class LockEndpoint OperatingModeEnum operatingMode); private: - bool setLockState(DlLockState lockState, const Optional & pin, OperationErrorEnum & err, + bool setLockState(const Nullable & fabricIdx, const Nullable & nodeId, DlLockState lockState, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource = OperationSourceEnum::kUnspecified); const char * lockStateToString(DlLockState lockState) const; bool weekDayScheduleInAction(uint16_t userIndex) const; bool yearDayScheduleInAction(uint16_t userIndex) const; + static void OnLockActionCompleteCallback(chip::System::Layer *, void * callbackContext); + chip::EndpointId mEndpointId; DlLockState mLockState; DoorStateEnum mDoorState; diff --git a/examples/lock-app/lock-common/include/LockManager.h b/examples/lock-app/lock-common/include/LockManager.h index eb6d6e99d51e66..eea60d568ef06b 100644 --- a/examples/lock-app/lock-common/include/LockManager.h +++ b/examples/lock-app/lock-common/include/LockManager.h @@ -35,12 +35,12 @@ class LockManager bool SendLockAlarm(chip::EndpointId endpointId, AlarmCodeEnum alarmCode); - bool Lock(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err, - OperationSourceEnum opSource); - bool Unlock(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err, - OperationSourceEnum opSource); - bool Unbolt(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err, - OperationSourceEnum opSource); + bool Lock(chip::EndpointId endpointId, const Nullable & fabricIdx, const Nullable & nodeId, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource); + bool Unlock(chip::EndpointId endpointId, const Nullable & fabricIdx, const Nullable & nodeId, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource); + bool Unbolt(chip::EndpointId endpointId, const Nullable & fabricIdx, const Nullable & nodeId, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource); bool GetUser(chip::EndpointId endpointId, uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user); bool SetUser(chip::EndpointId endpointId, uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, diff --git a/examples/lock-app/lock-common/src/LockEndpoint.cpp b/examples/lock-app/lock-common/src/LockEndpoint.cpp index ec090b03f44e3c..2beb010d1523c9 100644 --- a/examples/lock-app/lock-common/src/LockEndpoint.cpp +++ b/examples/lock-app/lock-common/src/LockEndpoint.cpp @@ -18,29 +18,48 @@ #include "LockEndpoint.h" #include #include +#include +#include using chip::to_underlying; using chip::app::DataModel::MakeNullable; -bool LockEndpoint::Lock(const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) +struct LockActionData { - return setLockState(DlLockState::kLocked, pin, err, opSource); + chip::EndpointId endpointId; + DlLockState lockState; + OperationSourceEnum opSource; + Nullable userIndex; + uint16_t credentialIndex; + Nullable fabricIdx; + Nullable nodeId; + bool moving = false; +}; + +static LockActionData gCurrentAction; + +bool LockEndpoint::Lock(const Nullable & fabricIdx, const Nullable & nodeId, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) +{ + return setLockState(fabricIdx, nodeId, DlLockState::kLocked, pin, err, opSource); } -bool LockEndpoint::Unlock(const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) +bool LockEndpoint::Unlock(const Nullable & fabricIdx, const Nullable & nodeId, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) { if (DoorLockServer::Instance().SupportsUnbolt(mEndpointId)) { // If Unbolt is supported Unlock is supposed to pull the latch - setLockState(DlLockState::kUnlatched, pin, err, opSource); + return setLockState(fabricIdx, nodeId, DlLockState::kUnlatched, pin, err, opSource); } - return setLockState(DlLockState::kUnlocked, pin, err, opSource); + return setLockState(fabricIdx, nodeId, DlLockState::kUnlocked, pin, err, opSource); } -bool LockEndpoint::Unbolt(const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) +bool LockEndpoint::Unbolt(const Nullable & fabricIdx, const Nullable & nodeId, + const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) { - return setLockState(DlLockState::kUnlocked, pin, err, opSource); + return setLockState(fabricIdx, nodeId, DlLockState::kUnlocked, pin, err, opSource); } bool LockEndpoint::GetUser(uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) const @@ -388,7 +407,8 @@ DlStatus LockEndpoint::SetSchedule(uint8_t holidayIndex, DlScheduleStatus status return DlStatus::kSuccess; } -bool LockEndpoint::setLockState(DlLockState lockState, const Optional & pin, OperationErrorEnum & err, +bool LockEndpoint::setLockState(const Nullable & fabricIdx, const Nullable & nodeId, + DlLockState lockState, const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) { // Assume pin is required until told otherwise @@ -406,13 +426,30 @@ bool LockEndpoint::setLockState(DlLockState lockState, const Optional>(userCredential); - DoorLockServer::Instance().SetLockState(mEndpointId, mLockState, opSource, MakeNullable(static_cast(userIndex + 1)), - userCredentials); + if (gCurrentAction.moving == true) + { + ChipLogProgress(Zcl, + "Lock App: not executing lock action as another lock action is already active [endpointId=%d,userIndex=%u]", + mEndpointId, userIndex); + return false; + } + + gCurrentAction.moving = true; + gCurrentAction.endpointId = mEndpointId; + gCurrentAction.lockState = lockState; + gCurrentAction.opSource = opSource; + gCurrentAction.userIndex = MakeNullable(static_cast(userIndex + 1)); + gCurrentAction.credentialIndex = static_cast(credentialIndex); + gCurrentAction.fabricIdx = fabricIdx; + gCurrentAction.nodeId = nodeId; + + // Do this async as a real lock would do too but use 0s delay to speed up CI tests + chip::DeviceLayer::SystemLayer().StartTimer(chip::System::Clock::Seconds16(0), OnLockActionCompleteCallback, nullptr); return true; } +void LockEndpoint::OnLockActionCompleteCallback(chip::System::Layer *, void * callbackContext) +{ + if (gCurrentAction.userIndex.IsNull()) + { + DoorLockServer::Instance().SetLockState(gCurrentAction.endpointId, gCurrentAction.lockState, gCurrentAction.opSource, + NullNullable, NullNullable, gCurrentAction.fabricIdx, gCurrentAction.nodeId); + } + else + { + LockOpCredentials userCredential[] = { { CredentialTypeEnum::kPin, gCurrentAction.credentialIndex } }; + auto userCredentials = MakeNullable>(userCredential); + + DoorLockServer::Instance().SetLockState(gCurrentAction.endpointId, gCurrentAction.lockState, gCurrentAction.opSource, + gCurrentAction.userIndex, userCredentials, gCurrentAction.fabricIdx, + gCurrentAction.nodeId); + } + + // move back to Unlocked after Unlatch + if (gCurrentAction.lockState == DlLockState::kUnlatched) + { + gCurrentAction.lockState = DlLockState::kUnlocked; + + // Do this async as a real lock would do too but use 0s delay to speed up CI tests + chip::DeviceLayer::SystemLayer().StartTimer(chip::System::Clock::Seconds16(0), OnLockActionCompleteCallback, nullptr); + } + else + { + gCurrentAction.moving = false; + } +} + bool LockEndpoint::weekDayScheduleInAction(uint16_t userIndex) const { const auto & user = mLockUsers[userIndex]; diff --git a/examples/lock-app/lock-common/src/LockManager.cpp b/examples/lock-app/lock-common/src/LockManager.cpp index f904005340a1fc..8fd1ef5441b139 100644 --- a/examples/lock-app/lock-common/src/LockManager.cpp +++ b/examples/lock-app/lock-common/src/LockManager.cpp @@ -134,7 +134,8 @@ bool LockManager::SendLockAlarm(chip::EndpointId endpointId, AlarmCodeEnum alarm return lockEndpoint->SendLockAlarm(alarmCode); } -bool LockManager::Lock(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err, +bool LockManager::Lock(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) { auto lockEndpoint = getEndpoint(endpointId); @@ -143,10 +144,11 @@ bool LockManager::Lock(chip::EndpointId endpointId, const OptionalLock(pin, err, opSource); + return lockEndpoint->Lock(fabricIdx, nodeId, pin, err, opSource); } -bool LockManager::Unlock(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err, +bool LockManager::Unlock(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) { auto lockEndpoint = getEndpoint(endpointId); @@ -155,10 +157,11 @@ bool LockManager::Unlock(chip::EndpointId endpointId, const OptionalUnlock(pin, err, opSource); + return lockEndpoint->Unlock(fabricIdx, nodeId, pin, err, opSource); } -bool LockManager::Unbolt(chip::EndpointId endpointId, const Optional & pin, OperationErrorEnum & err, +bool LockManager::Unbolt(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pin, OperationErrorEnum & err, OperationSourceEnum opSource) { auto lockEndpoint = getEndpoint(endpointId); @@ -167,7 +170,7 @@ bool LockManager::Unbolt(chip::EndpointId endpointId, const OptionalUnbolt(pin, err, opSource); + return lockEndpoint->Unbolt(fabricIdx, nodeId, pin, err, opSource); } bool LockManager::GetUser(chip::EndpointId endpointId, uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) diff --git a/examples/lock-app/lock-common/src/ZCLDoorLockCallbacks.cpp b/examples/lock-app/lock-common/src/ZCLDoorLockCallbacks.cpp index bbecc8ef6ce178..2b649db7443d42 100644 --- a/examples/lock-app/lock-common/src/ZCLDoorLockCallbacks.cpp +++ b/examples/lock-app/lock-common/src/ZCLDoorLockCallbacks.cpp @@ -28,22 +28,25 @@ using namespace chip::app::Clusters::DoorLock; // should wait for door to be locked on lock command and return success) but // door lock server should check pin before even calling the lock-door // callback. -bool emberAfPluginDoorLockOnDoorLockCommand(chip::EndpointId endpointId, const Optional & pinCode, +bool emberAfPluginDoorLockOnDoorLockCommand(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, OperationErrorEnum & err) { - return LockManager::Instance().Lock(endpointId, pinCode, err, OperationSourceEnum::kRemote); + return LockManager::Instance().Lock(endpointId, fabricIdx, nodeId, pinCode, err, OperationSourceEnum::kRemote); } -bool emberAfPluginDoorLockOnDoorUnlockCommand(chip::EndpointId endpointId, const Optional & pinCode, +bool emberAfPluginDoorLockOnDoorUnlockCommand(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, OperationErrorEnum & err) { - return LockManager::Instance().Unlock(endpointId, pinCode, err, OperationSourceEnum::kRemote); + return LockManager::Instance().Unlock(endpointId, fabricIdx, nodeId, pinCode, err, OperationSourceEnum::kRemote); } -bool emberAfPluginDoorLockOnDoorUnboltCommand(chip::EndpointId endpointId, const Optional & pinCode, +bool emberAfPluginDoorLockOnDoorUnboltCommand(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, OperationErrorEnum & err) { - return LockManager::Instance().Unbolt(endpointId, pinCode, err, OperationSourceEnum::kRemote); + return LockManager::Instance().Unbolt(endpointId, fabricIdx, nodeId, pinCode, err, OperationSourceEnum::kRemote); } bool emberAfPluginDoorLockGetUser(chip::EndpointId endpointId, uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) diff --git a/src/app/clusters/door-lock-server/door-lock-server-callback.cpp b/src/app/clusters/door-lock-server/door-lock-server-callback.cpp index 9db680168dd637..a1644286c1af1a 100644 --- a/src/app/clusters/door-lock-server/door-lock-server-callback.cpp +++ b/src/app/clusters/door-lock-server/door-lock-server-callback.cpp @@ -45,21 +45,27 @@ using namespace chip::app::Clusters::DoorLock; // ============================================================================= bool __attribute__((weak)) -emberAfPluginDoorLockOnDoorLockCommand(chip::EndpointId endpointId, const Optional & pinCode, OperationErrorEnum & err) +emberAfPluginDoorLockOnDoorLockCommand(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, + OperationErrorEnum & err) { err = OperationErrorEnum::kUnspecified; return false; } bool __attribute__((weak)) -emberAfPluginDoorLockOnDoorUnlockCommand(chip::EndpointId endpointId, const Optional & pinCode, OperationErrorEnum & err) +emberAfPluginDoorLockOnDoorUnlockCommand(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, + OperationErrorEnum & err) { err = OperationErrorEnum::kUnspecified; return false; } bool __attribute__((weak)) -emberAfPluginDoorLockOnDoorUnboltCommand(chip::EndpointId endpointId, const Optional & pinCode, OperationErrorEnum & err) +emberAfPluginDoorLockOnDoorUnboltCommand(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, + OperationErrorEnum & err) { err = OperationErrorEnum::kUnspecified; return false; diff --git a/src/app/clusters/door-lock-server/door-lock-server.cpp b/src/app/clusters/door-lock-server/door-lock-server.cpp index dbfd723ad8cfff..407afc0af5f001 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.cpp +++ b/src/app/clusters/door-lock-server/door-lock-server.cpp @@ -104,13 +104,11 @@ bool DoorLockServer::SetLockState(chip::EndpointId endpointId, DlLockState newLo } bool DoorLockServer::SetLockState(chip::EndpointId endpointId, DlLockState newLockState, OperationSourceEnum opSource, - const Nullable & userIndex, const Nullable> & credentials) + const Nullable & userIndex, const Nullable> & credentials, + const Nullable & fabricIdx, const Nullable & nodeId) { bool success = SetLockState(endpointId, newLockState); - // Remote operations are handled separately as they use more data unavailable here - VerifyOrReturnError(OperationSourceEnum::kRemote != opSource, success); - // DlLockState::kNotFullyLocked has no appropriate event to send. Also it is unclear whether // it should schedule auto-relocking. So skip it here. Check for supported states explicitly // to handle possible enum extending in future. @@ -130,8 +128,13 @@ bool DoorLockServer::SetLockState(chip::EndpointId endpointId, DlLockState newLo opType = LockOperationTypeEnum::kUnlatch; } - SendLockOperationEvent(endpointId, opType, opSource, OperationErrorEnum::kUnspecified, userIndex, Nullable(), - Nullable(), credentials, success); + if (OperationSourceEnum::kRemote == opSource && (fabricIdx.IsNull() || nodeId.IsNull())) + { + ChipLogError(Zcl, "Received SetLockState for remote operation without fabricIdx or nodeId"); + } + + SendLockOperationEvent(endpointId, opType, opSource, OperationErrorEnum::kUnspecified, userIndex, fabricIdx, nodeId, + credentials, success); // Reset wrong entry attempts (in case there were any incorrect credentials presented before) if lock/unlock was a success // and a valid credential was presented. @@ -3428,7 +3431,7 @@ bool DoorLockServer::HandleRemoteLockOperation(chip::app::CommandHandler * comma } // credentials check succeeded, try to lock/unlock door - success = opHandler(endpoint, pinCode, reason); + success = opHandler(endpoint, MakeNullable(getFabricIndex(commandObj)), MakeNullable(getNodeId(commandObj)), pinCode, reason); // The app should trigger the lock state change as it may take a while before the lock actually locks/unlocks exit: if (!success && reason == OperationErrorEnum::kInvalidCredential) @@ -3464,23 +3467,15 @@ bool DoorLockServer::HandleRemoteLockOperation(chip::app::CommandHandler * comma credentials.SetNonNull(foundCred); } - // Failed Unlatch requests SHALL generate only a LockOperationError event with LockOperationType set to Unlock - if (LockOperationTypeEnum::kUnlatch == opType && !success) + if (!success) { - opType = LockOperationTypeEnum::kUnlock; - } - - SendLockOperationEvent(endpoint, opType, OperationSourceEnum::kRemote, reason, pinUserIdx, - Nullable(getFabricIndex(commandObj)), Nullable(getNodeId(commandObj)), - credentials, success); + // Failed Unlatch requests SHALL generate only a LockOperationError event with LockOperationType set to Unlock + if (LockOperationTypeEnum::kUnlatch == opType) + { + opType = LockOperationTypeEnum::kUnlock; + } - // SHALL generate a LockOperation event with LockOperationType set to Unlatch when the unlatched state is reached and a - // LockOperation event with LockOperationType set to Unlock when the lock successfully completes the unlock. But as the current - // implementation here is sending LockOperation events immediately we're sending both events immediately. - // https://github.com/project-chip/connectedhomeip/issues/26925 - if (LockOperationTypeEnum::kUnlatch == opType && success) - { - SendLockOperationEvent(endpoint, LockOperationTypeEnum::kUnlock, OperationSourceEnum::kRemote, reason, pinUserIdx, + SendLockOperationEvent(endpoint, opType, OperationSourceEnum::kRemote, reason, pinUserIdx, Nullable(getFabricIndex(commandObj)), Nullable(getNodeId(commandObj)), credentials, success); } diff --git a/src/app/clusters/door-lock-server/door-lock-server.h b/src/app/clusters/door-lock-server/door-lock-server.h index bb2ce23571ba8b..72492843bb1b44 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.h +++ b/src/app/clusters/door-lock-server/door-lock-server.h @@ -59,7 +59,17 @@ using chip::app::DataModel::NullNullable; using CredentialStruct = chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type; using LockOpCredentials = CredentialStruct; -typedef bool (*RemoteLockOpHandler)(chip::EndpointId endpointId, const Optional & pinCode, +/** + * Handler for executing remote lock operations. + * + * @param endpointId endpoint for which remote lock command is called + * @param fabricIdx fabric index responsible for operating the lock + * @param nodeId node id responsible for operating the lock + * @param pinCode PIN code (optional) + * @param err error code if door locking failed (set only if retval==false) + */ +typedef bool (*RemoteLockOpHandler)(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, OperationErrorEnum & err); static constexpr size_t DOOR_LOCK_MAX_USER_NAME_SIZE = 10; /**< Maximum size of the user name (in characters). */ @@ -95,12 +105,16 @@ class DoorLockServer * @param endpointId ID of the endpoint to the lock state * @param newLockState new lock state * @param opSource source of the operation (will be used in the event). + * @param fabricIdx fabric index responsible for operating the lock + * @param nodeId node id responsible for operating the lock * * @return true on success, false on failure. */ bool SetLockState(chip::EndpointId endpointId, DlLockState newLockState, OperationSourceEnum opSource, const Nullable & userIndex = NullNullable, - const Nullable> & credentials = NullNullable); + const Nullable> & credentials = NullNullable, + const Nullable & fabricIdx = NullNullable, + const Nullable & nodeId = NullNullable); /** * Updates the LockState attribute with new value. @@ -421,8 +435,8 @@ class DoorLockServer * @param opSource operation source (remote, keypad, auto, etc) * @param opErr operation error code (if opSuccess == false) * @param userId user id - * @param fabricIdx fabric index - * @param nodeId node id + * @param fabricIdx fabric index responsible for operating the lock + * @param nodeId node id responsible for operating the lock * @param credList list of credentials used in lock operation (can be NULL if no credentials were used) * @param credListSize size of credentials list (if 0, then no credentials were used) * @param opSuccess flags if operation was successful or not @@ -899,39 +913,48 @@ emberAfPluginDoorLockOnUnhandledAttributeChange(chip::EndpointId EndpointId, con * @brief User handler for LockDoor command (server) * * @param endpointId endpoint for which LockDoor command is called + * @param fabricIdx fabric index responsible for operating the lock + * @param nodeId node id responsible for operating the lock * @param pinCode PIN code (optional) * @param err error code if door locking failed (set only if retval==false) * * @retval true on success * @retval false if error happenned (err should be set to appropriate error code) */ -bool emberAfPluginDoorLockOnDoorLockCommand(chip::EndpointId endpointId, const Optional & pinCode, +bool emberAfPluginDoorLockOnDoorLockCommand(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, OperationErrorEnum & err); /** * @brief User handler for UnlockDoor command (server) * * @param endpointId endpoint for which UnlockDoor command is called + * @param fabricIdx fabric index responsible for operating the lock + * @param nodeId node id responsible for operating the lock * @param pinCode PIN code (optional) * @param err error code if door unlocking failed (set only if retval==false) * * @retval true on success * @retval false if error happenned (err should be set to appropriate error code) */ -bool emberAfPluginDoorLockOnDoorUnlockCommand(chip::EndpointId endpointId, const Optional & pinCode, +bool emberAfPluginDoorLockOnDoorUnlockCommand(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, OperationErrorEnum & err); /** * @brief User handler for UnboltDoor command (server) * * @param endpointId endpoint for which UnboltDoor command is called + * @param fabricIdx fabric index responsible for operating the lock + * @param nodeId node id responsible for operating the lock * @param pinCode PIN code (optional) * @param err error code if door unbolting failed (set only if retval==false) * * @retval true on success * @retval false if error happenned (err should be set to appropriate error code) */ -bool emberAfPluginDoorLockOnDoorUnboltCommand(chip::EndpointId endpointId, const Optional & pinCode, +bool emberAfPluginDoorLockOnDoorUnboltCommand(chip::EndpointId endpointId, const Nullable & fabricIdx, + const Nullable & nodeId, const Optional & pinCode, OperationErrorEnum & err); /** From 89492099ec10cd7147657c32a6a3134a2a9ab8e1 Mon Sep 17 00:00:00 2001 From: mideayanghui <106149377+mideayanghui@users.noreply.github.com> Date: Sat, 22 Jul 2023 12:12:45 +0800 Subject: [PATCH 22/39] [OPSTATE] fix: Transition error in the Paused Command (#28187) * fix:when in a Stopped State, will transition to the Paused State on reception of a Pause command. * Fix CI error in TestRVCOperationalState.yaml * zap regen all for test plan --- .../operational-state-server.cpp | 6 +++++- src/app/tests/suites/TestRVCOperationalState.yaml | 10 +++++----- zzz_generated/chip-tool/zap-generated/test/Commands.h | 10 +++++----- .../zap-generated/test/Commands.h | 10 +++++----- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/app/clusters/operational-state-server/operational-state-server.cpp b/src/app/clusters/operational-state-server/operational-state-server.cpp index b3fd2d89523f00..a91f13d2f257a5 100644 --- a/src/app/clusters/operational-state-server/operational-state-server.cpp +++ b/src/app/clusters/operational-state-server/operational-state-server.cpp @@ -113,7 +113,11 @@ void OperationalStateServer::HandlePauseState(HandlerContext & ctx, const Comman VerifyOrReturn(delegate != nullptr, ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Status::Failure)); uint8_t opState = delegate->GetCurrentOperationalState(); - if (opState != to_underlying(OperationalStateEnum::kPaused)) + if (opState != to_underlying(OperationalStateEnum::kPaused) && opState != to_underlying(OperationalStateEnum::kRunning)) + { + err.Set(to_underlying(ErrorStateEnum::kCommandInvalidInState)); + } + else if (opState != to_underlying(OperationalStateEnum::kPaused)) { delegate->HandlePauseStateCallback(err); } diff --git a/src/app/tests/suites/TestRVCOperationalState.yaml b/src/app/tests/suites/TestRVCOperationalState.yaml index 3a52d89fb7ad00..de40e7f6088be1 100644 --- a/src/app/tests/suites/TestRVCOperationalState.yaml +++ b/src/app/tests/suites/TestRVCOperationalState.yaml @@ -89,26 +89,26 @@ tests: response: values: - name: "CommandResponseState" - value: { ErrorStateID: 0 } + value: { ErrorStateID: 3 } - label: "Read current Operational State" command: "readAttribute" attribute: "OperationalState" response: - value: 2 + value: 0 - label: "Resume Command" command: "Resume" response: values: - name: "CommandResponseState" - value: { ErrorStateID: 0 } + value: { ErrorStateID: 3 } - label: "Read current Operational State" command: "readAttribute" attribute: "OperationalState" response: - value: 1 + value: 0 - label: "Stop Command" command: "Stop" @@ -119,4 +119,4 @@ tests: command: "readAttribute" attribute: "OperationalState" response: - value: 1 + value: 0 diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index cad0d50b715b57..2c0cce594e24a3 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -96662,7 +96662,7 @@ class TestRVCOperationalStateSuite : public TestCommand { chip::app::Clusters::RvcOperationalState::Commands::OperationalCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("commandResponseState.errorStateID", value.commandResponseState.errorStateID, 0U)); + VerifyOrReturn(CheckValue("commandResponseState.errorStateID", value.commandResponseState.errorStateID, 3U)); } break; case 10: @@ -96670,7 +96670,7 @@ class TestRVCOperationalStateSuite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("operationalState", value, 2U)); + VerifyOrReturn(CheckValue("operationalState", value, 0U)); } break; case 11: @@ -96678,7 +96678,7 @@ class TestRVCOperationalStateSuite : public TestCommand { chip::app::Clusters::RvcOperationalState::Commands::OperationalCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("commandResponseState.errorStateID", value.commandResponseState.errorStateID, 0U)); + VerifyOrReturn(CheckValue("commandResponseState.errorStateID", value.commandResponseState.errorStateID, 3U)); } break; case 12: @@ -96686,7 +96686,7 @@ class TestRVCOperationalStateSuite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("operationalState", value, 1U)); + VerifyOrReturn(CheckValue("operationalState", value, 0U)); } break; case 13: @@ -96697,7 +96697,7 @@ class TestRVCOperationalStateSuite : public TestCommand { uint8_t value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("operationalState", value, 1U)); + VerifyOrReturn(CheckValue("operationalState", value, 0U)); } break; default: 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 fcad5b306ce5ab..2dc568d1ef81d4 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -142893,7 +142893,7 @@ class TestRVCOperationalState : public TestCommandBridge { { id actualValue = values.commandResponseState; VerifyOrReturn( - CheckValue("ErrorStateID", ((MTRRVCOperationalStateClusterErrorStateStruct *) actualValue).errorStateID, 0U)); + CheckValue("ErrorStateID", ((MTRRVCOperationalStateClusterErrorStateStruct *) actualValue).errorStateID, 3U)); } NextTest(); @@ -142918,7 +142918,7 @@ class TestRVCOperationalState : public TestCommandBridge { { id actualValue = value; - VerifyOrReturn(CheckValue("OperationalState", actualValue, 2U)); + VerifyOrReturn(CheckValue("OperationalState", actualValue, 0U)); } NextTest(); @@ -142945,7 +142945,7 @@ class TestRVCOperationalState : public TestCommandBridge { { id actualValue = values.commandResponseState; VerifyOrReturn( - CheckValue("ErrorStateID", ((MTRRVCOperationalStateClusterErrorStateStruct *) actualValue).errorStateID, 0U)); + CheckValue("ErrorStateID", ((MTRRVCOperationalStateClusterErrorStateStruct *) actualValue).errorStateID, 3U)); } NextTest(); @@ -142970,7 +142970,7 @@ class TestRVCOperationalState : public TestCommandBridge { { id actualValue = value; - VerifyOrReturn(CheckValue("OperationalState", actualValue, 1U)); + VerifyOrReturn(CheckValue("OperationalState", actualValue, 0U)); } NextTest(); @@ -143017,7 +143017,7 @@ class TestRVCOperationalState : public TestCommandBridge { { id actualValue = value; - VerifyOrReturn(CheckValue("OperationalState", actualValue, 1U)); + VerifyOrReturn(CheckValue("OperationalState", actualValue, 0U)); } NextTest(); From 0760d1327be23447839778cb003a0ddaae139f7b Mon Sep 17 00:00:00 2001 From: duyen-tran <129869207+duyen-tran@users.noreply.github.com> Date: Sat, 22 Jul 2023 00:12:50 -0400 Subject: [PATCH 23/39] Add RVC scripts (#28182) * Add RVC scripts * changed year * Restyled by whitespace * Restyled by prettier-yaml * cleanup * clean up * add pics * Restyled by prettier-yaml * add rvc to ci tests * addressed comments * Restyled by whitespace * Restyled by prettier-json * clean up * add Command.h * remove duplicate step * clean up * new command.h --------- Co-authored-by: Restyled.io --- src/app/tests/suites/certification/PICS.yaml | 6 + .../certification/Test_TC_RVCCLEANM_1_1.yaml | 175 ++++---- .../certification/Test_TC_RVCOPSTATE_1_1.yaml | 2 +- .../certification/Test_TC_RVCRUNM_1_1.yaml | 176 ++++---- .../tests/suites/certification/ci-pics-values | 2 + src/python_testing/TC_RVCCLEANM_1_2.py | 115 ++++++ src/python_testing/TC_RVCCLEANM_2_1.py | 162 ++++++++ src/python_testing/TC_RVCCLEANM_3_2.py | 115 ++++++ src/python_testing/TC_RVCOPSTATE_2_1.py | 133 +++++++ src/python_testing/TC_RVCOPSTATE_2_3.py | 156 ++++++++ src/python_testing/TC_RVCRUNM_1_2.py | 121 ++++++ src/python_testing/TC_RVCRUNM_2_1.py | 162 ++++++++ src/python_testing/TC_RVCRUNM_3_2.py | 115 ++++++ .../chip-tool/zap-generated/test/Commands.h | 376 +++++++++++++++++- 14 files changed, 1668 insertions(+), 148 deletions(-) create mode 100644 src/python_testing/TC_RVCCLEANM_1_2.py create mode 100644 src/python_testing/TC_RVCCLEANM_2_1.py create mode 100644 src/python_testing/TC_RVCCLEANM_3_2.py create mode 100644 src/python_testing/TC_RVCOPSTATE_2_1.py create mode 100644 src/python_testing/TC_RVCOPSTATE_2_3.py create mode 100644 src/python_testing/TC_RVCRUNM_1_2.py create mode 100644 src/python_testing/TC_RVCRUNM_2_1.py create mode 100644 src/python_testing/TC_RVCRUNM_3_2.py diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index c2015d037578ae..80bb8f62da70f7 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -9550,6 +9550,9 @@ PICS: the same endpoint?" id: RVCCLEANM.S.F00 + - label: "Does the device read the global attribute: EventList from the DUT" + id: RVCCLEANM.S.Afffa + # # server / attributes # @@ -9723,6 +9726,9 @@ PICS: the same endpoint?" id: RVCRUNM.S.F00 + - label: "Does the device read the global attribute: EventList from the DUT" + id: RVCRUNM.S.Afffa + #Attributes - label: "Does the device implement the SupportedModes attribute?" id: RVCRUNM.S.A0000 diff --git a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml index de9ad5afadc025..ccc1f23c71d3eb 100644 --- a/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_RVCCLEANM_1_1.yaml @@ -11,89 +11,122 @@ # 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. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 92.1.1. [TC-RVCCLEANM-1.1] Global attributes with DUT as Server +name: 78.1.1. [TC-RVCCLEANM-1.1] Global attributes with server as DUT PICS: - RVCCLEANM.S config: nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 + cluster: "RVC Clean Mode" + endpoint: 1 tests: - - label: - "Step 1: Commission DUT to TH (can be skipped if done in a preceding - test)." - verification: | - - disabled: true - - - label: "Step 2: TH reads from the DUT the ClusterRevision attribute." - verification: | - ./chip-tool rvcleanm read cluster-revision 1 1 - - Verify " ClusterRevision attribute has the value 2 " and reflects the highest revision number 2 on the TH(Chip-tool) and below is the sample log provided for the raspi platform: - - [1645775623.658997][3277:3282] CHIP:TOO: ClusterRevision: 1 - disabled: true - - - label: "Step 3: TH reads from the DUT the FeatureMap attribute." - verification: | - ./chip-tool rvcleanm read feature-map 1 1 - On the reference app we see featureMap value 1, This value changes depending on DUT implementing the features - Verify FeatureMap attribute On the TH(Chip-tool) Log - - [1649052001.646939][8355:8360] CHIP:TOO: FeatureMap: 1 - disabled: true - - - label: "Step 4: TH reads from the DUT the AttributeList attribute." - verification: | - ./chip-tool rvcleanm read attribute-list 1 1 - - Verify " AttributeList "should include the mandatory attributes (values 0, 2, 3) and - global attributes (value 65533, 65532, 65531, 65530, 65529 and 65528) - list may include optional attribute(value 0x0004), if RVCCLEANM.S.A0004(StartUpMode) supports, - list contains feature dependent attribute (values 0x0005),if RVCCLEANM.S.F00(DEPONOFF) is true on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + - 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 the ClusterRevision attribute from the DUT" + command: "readAttribute" + attribute: "ClusterRevision" + response: + value: 1 + constraints: + type: int16u + + - label: "TH reads the FeatureMap attribute from the DUT" + PICS: " !RVCCLEANM.S.F00 " + command: "readAttribute" + attribute: "FeatureMap" + response: + value: 0 + constraints: + type: bitmap32 - [1676288620.483812][4014:4016] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_FFFB DataVersion: 2649295313 - [1676288620.483850][4014:4016] CHIP:TOO: AttributeList: 13 entries - [1676288620.483861][4014:4016] CHIP:TOO: [1]: 0 - [1676288620.483870][4014:4016] CHIP:TOO: [2]: 1 - [1676288620.483878][4014:4016] CHIP:TOO: [3]: 65528 - [1676288620.483886][4014:4016] CHIP:TOO: [4]: 65529 - [1676288620.483892][4014:4016] CHIP:TOO: [5]: 65530 - [1676288620.483899][4014:4016] CHIP:TOO: [6]: 65531 - [1676288620.483906][4014:4016] CHIP:TOO: [7]: 4293984257 - [1676288620.483915][4014:4016] CHIP:TOO: [8]: 2 - [1676288620.483922][4014:4016] CHIP:TOO: [9]: 3 - [1676288620.483929][4014:4016] CHIP:TOO: [10]: 4 - [1676288620.483934][4014:4016] CHIP:TOO: [11]: 5 - [1676288620.483941][4014:4016] CHIP:TOO: [12]: 65532 - [1676288620.483947][4014:4016] CHIP:TOO: [13]: 65533 - [1676288620.484034][4014:4016] CHIP:EM: <<< [E:29816i M:167554497 (Ack:41020138)] (S) Msg TX to 1:000000000 - - - *NOTE* : This sample attribute list reflects the currently implemented attributes on the all-clusters-app. - disabled: true - - - label: "Step 5: TH reads from the DUT the AcceptedCommandList attribute." - verification: | - ./chip-tool rvcleanm read accepted-command-list 1 1 + - label: + "Given RVCCLEANM.S.F00(DEPONOFF) ensure featuremap has the correct bit + set" + PICS: RVCCLEANM.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "Step 4a: TH reads the AttributeList attribute from the DUT" + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533] - Verify the "AcceptedCommandList" contains feature dependent commands + - label: + "TH reads the optional attribute(StartUpMode) in AttributeList from + the DUT" + PICS: RVCCLEANM.S.A0002 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [2] - [1650274602.826352][8965:8970] CHIP:TOO: AcceptedCommandList: 1 entries - [1650274602.826442][8965:8970] CHIP:TOO: [1]: 0 - disabled: true + - label: + "Read the Feature dependent(RVCCLEANM.S.F00 - DEPONOFF) and optional + attribute(OnMode) is in AttributeList from the DUT" + PICS: RVCCLEANM.S.F00 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [3] - - label: "Step 6: TH reads from the DUT the GeneratedCommandList attribute." - verification: | - ./chip-tool rvcleanm read generated-command-list 1 1 + - label: + "Read the Feature dependent(RVCCLEANM.S.F00 - DEPONOFF) and optional + attribute(OnMode) is not in AttributeList from the DUT" + PICS: " !RVCCLEANM.S.F00 " + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + excludes: [3] + + - label: "Read the global attribute: EventList from the DUT" + PICS: RVCCLEANM.S.Afffa + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - Verify "GeneratedCommandList" contains feature dependent commands + - label: + "Read the global attribute AcceptedCommandList. Check if it contains + id 0x0 (ChangeToMode)" + PICS: RVCCLEANM.S.C00.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + value: [0] + constraints: + type: list - [1650274662.075309][8972:8977] CHIP:TOO: GeneratedCommandList: 0 entries - disabled: true + - label: + "Read the global attribute: GeneratedCommandList. Check if it contains + id 0x1 (ChangeToModeResponse)" + PICS: RVCCLEANM.S.C01.Tx + command: "readAttribute" + attribute: "GeneratedCommandList" + response: + value: [1] + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_1_1.yaml index 8e0d66f1ba34d9..d9f42eba8131fe 100644 --- a/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_RVCOPSTATE_1_1.yaml @@ -19,7 +19,7 @@ PICS: config: nodeId: 0x12344321 - cluster: "Robotic Vacuum Operational State" + cluster: "Rvc Operational State" endpoint: 1 tests: diff --git a/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml b/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml index 5ee4e7bdb9c9e6..928d4176f24911 100644 --- a/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_RVCRUNM_1_1.yaml @@ -11,90 +11,122 @@ # 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. -# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 87.1.1. [TC-RVCRUNM-1.1] Global attributes with DUT as Server +name: 78.1.1. [TC-RVCRUNM-1.1] Global attributes with server as DUT PICS: - RVCRUNM.S config: nodeId: 0x12344321 - cluster: "Basic Information" - endpoint: 0 + cluster: "RVC Run Mode" + endpoint: 1 tests: - - label: - "Step 1: Commission DUT to TH (can be skipped if done in a preceding - test)." - verification: | - - disabled: true - - - label: "Step 2: TH reads from the DUT the ClusterRevision attribute." - verification: | - ./chip-tool rvcrunm read cluster-revision 1 1 - - Verify " ClusterRevision attribute has the value 2 " and reflects the highest revision number 2 on the TH(Chip-tool) and below is the sample log provided for the raspi platform: - - [1645775623.658997][3277:3282] CHIP:TOO: ClusterRevision: 1 - disabled: true - - - label: "Step 3: TH reads from the DUT the FeatureMap attribute." - verification: | - ./chip-tool rvcrunm read feature-map 1 1 - On the reference app we see featureMap value 1, This value changes depending on DUT implementing the features - Verify FeatureMap attribute On the TH(Chip-tool) Log - - [1649052001.646939][8355:8360] CHIP:TOO: FeatureMap: 1 - disabled: true - - - label: "Step 4: TH reads from the DUT the AttributeList attribute." - verification: | - ./chip-tool rvcrunm read attribute-list 1 1 - - Verify " AttributeList "should include the mandatory attributes (values 0, 2, 3) and - global attributes (value 65533, 65532, 65531, 65530, 65529 and 65528) - list may include optional attribute(value 0x0004), if RVCRUNM.S.A0004(StartUpMode) supports, - list contains feature dependent attribute (values 0x0005),if RVCRUNM.S.F00(DEPONOFF) is true on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + - label: "Wait for the commissioned device to be retrieved" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + + - label: "TH reads the ClusterRevision attribute from the DUT" + command: "readAttribute" + attribute: "ClusterRevision" + response: + value: 1 + constraints: + type: int16u + + - label: "TH reads the FeatureMap attribute from the DUT" + PICS: " !RVCRUNM.S.F00 " + command: "readAttribute" + attribute: "FeatureMap" + response: + value: 0 + constraints: + type: bitmap32 - [1676288620.483812][4014:4016] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_FFFB DataVersion: 2649295313 - [1676288620.483850][4014:4016] CHIP:TOO: AttributeList: 13 entries - [1676288620.483861][4014:4016] CHIP:TOO: [1]: 0 - [1676288620.483870][4014:4016] CHIP:TOO: [2]: 1 - [1676288620.483878][4014:4016] CHIP:TOO: [3]: 65528 - [1676288620.483886][4014:4016] CHIP:TOO: [4]: 65529 - [1676288620.483892][4014:4016] CHIP:TOO: [5]: 65530 - [1676288620.483899][4014:4016] CHIP:TOO: [6]: 65531 - [1676288620.483906][4014:4016] CHIP:TOO: [7]: 4293984257 - [1676288620.483915][4014:4016] CHIP:TOO: [8]: 2 - [1676288620.483922][4014:4016] CHIP:TOO: [9]: 3 - [1676288620.483929][4014:4016] CHIP:TOO: [10]: 4 - [1676288620.483934][4014:4016] CHIP:TOO: [11]: 5 - [1676288620.483941][4014:4016] CHIP:TOO: [12]: 65532 - [1676288620.483947][4014:4016] CHIP:TOO: [13]: 65533 - [1676288620.484034][4014:4016] CHIP:EM: <<< [E:29816i M:167554497 (Ack:41020138)] (S) Msg TX to 1:000000000 - - - *NOTE* : This sample attribute list reflects the currently implemented attributes on the all-clusters-app. - disabled: true - - - label: "Step 5: TH reads from the DUT the AcceptedCommandList attribute." - verification: | - ./chip-tool rvcrunm read accepted-command-list 1 1 + - label: + "Given RVCRUNM.S.F00(DEPONOFF) ensure featuremap has the correct bit + set" + PICS: RVCRUNM.S.F00 + command: "readAttribute" + attribute: "FeatureMap" + response: + constraints: + type: bitmap32 + hasMasksSet: [0x1] + + - label: "TH reads the AttributeList attribute from the DUT" + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [0, 1, 65528, 65529, 65530, 65531, 65532, 65533] - Verify the "AcceptedCommandList" contains feature dependent commands + - label: + "TH reads the optional attribute(StartUpMode) in AttributeList from + the DUT" + PICS: RVCRUNM.S.A0002 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [2] - [1650274602.826352][8965:8970] CHIP:TOO: AcceptedCommandList: 1 entries - [1650274602.826442][8965:8970] CHIP:TOO: [1]: 0 - disabled: true + - label: + "Read the Feature dependent(RVCRUNM.S.F00 - DEPONOFF) and optional + attribute(OnMode) is in AttributeList from the DUT" + PICS: RVCRUNM.S.F00 + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + contains: [3] - - label: "Step 6: TH reads from the DUT the GeneratedCommandList attribute." - verification: | - ./chip-tool rvcrunm read generated-command-list 1 1 + - label: + "Read the Feature dependent(RVCRUNM.S.F00 - DEPONOFF) and optional + attribute(OnMode) is not in AttributeList from the DUT" + PICS: " !RVCRUNM.S.F00 " + command: "readAttribute" + attribute: "AttributeList" + response: + constraints: + type: list + excludes: [3] + + - label: "Read the global attribute: EventList from the DUT" + PICS: RVCRUNM.S.Afffa + command: "readAttribute" + attribute: "EventList" + response: + value: [] + constraints: + type: list - Verify "GeneratedCommandList" contains feature dependent commands - Value is 0 on the TH(Chip-tool) Log and below is the sample log provided for the raspi platform: + - label: + "Read the global attribute AcceptedCommandList. Check if it contains + id 0x0 (ChangeToMode)" + PICS: RVCRUNM.S.C00.Rsp + command: "readAttribute" + attribute: "AcceptedCommandList" + response: + value: [0] + constraints: + type: list - [1650274662.075309][8972:8977] CHIP:TOO: GeneratedCommandList: 0 entries - disabled: true + - label: + "Read the global attribute: GeneratedCommandList. Check if it contains + id 0x1 (ChangeToModeResponse)" + PICS: RVCRUNM.S.C01.Tx + command: "readAttribute" + attribute: "GeneratedCommandList" + response: + value: [1] + constraints: + type: list diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index d23c78d100b04d..fec8d2be4b5d1d 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -2613,6 +2613,7 @@ RVCCLEANM.S.A0000=1 RVCCLEANM.S.A0001=1 RVCCLEANM.S.A0002=1 RVCCLEANM.S.A0003=1 +RVCCLEANM.S.Afffa=1 #Feature RVCCLEANM.S.F00=1 @@ -2658,6 +2659,7 @@ RVCRUNM.S.A0000=1 RVCRUNM.S.A0001=1 RVCRUNM.S.A0002=1 RVCRUNM.S.A0003=1 +RVCRUNM.S.Afffa=1 #Commands RVCRUNM.S.C00.Rsp=1 diff --git a/src/python_testing/TC_RVCCLEANM_1_2.py b/src/python_testing/TC_RVCCLEANM_1_2.py new file mode 100644 index 00000000000000..9090a3948bfcc8 --- /dev/null +++ b/src/python_testing/TC_RVCCLEANM_1_2.py @@ -0,0 +1,115 @@ +# +# Copyright (c) 2023 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +import logging + +import chip.clusters as Clusters +from chip.clusters.Types import NullValue +from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main +from mobly import asserts + +# This test requires several additional command line arguments +# run with +# --int-arg PIXIT_ENDPOINT: + + +class TC_RVCCLEANM_1_2(MatterBaseTest): + + async def read_mod_attribute_expect_success(self, endpoint, attribute): + cluster = Clusters.Objects.RvcCleanMode + return await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=attribute) + + @async_test_body + async def test_TC_RVCCLEANM_1_2(self): + + asserts.assert_true('PIXIT_ENDPOINT' in self.matter_test_config.global_test_params, + "PIXIT_ENDPOINT must be included on the command line in " + "the --int-arg flag as PIXIT_ENDPOINT:") + + self.endpoint = self.matter_test_config.global_test_params['PIXIT_ENDPOINT'] + + attributes = Clusters.RvcCleanMode.Attributes + + self.print_step(1, "Commissioning, already done") + + if self.check_pics("RVCCLEANM.S.A0000"): + self.print_step(2, "Read SupportedModes attribute") + supported_modes = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.SupportedModes) + + logging.info("SupportedModes: %s" % (supported_modes)) + + asserts.assert_greater_equal(len(supported_modes), 1, "SupportedModes must have at least one entry!") + + modes = [] + for m in supported_modes: + if m.mode in modes: + asserts.fail("SupportedModes must have unique mode values!") + else: + modes.append(m.mode) + + labels = [] + for m in supported_modes: + if m.label in labels: + asserts.fail("SupportedModes must have unique mode label values!") + else: + labels.append(m.label) + + # common mode tags + commonTags = {0x0: 'Auto', + 0x1: 'Quick', + 0x2: 'Quiet', + 0x3: 'LowNoise', + 0x4: 'LowEnergy', + 0x5: 'Vacation', + 0x6: 'Min', + 0x7: 'Max', + 0x8: 'Night', + 0x9: 'Day'} + + cleanTags = [tag.value for tag in Clusters.RvcCleanMode.Enums.ModeTag + if tag is not Clusters.RvcCleanMode.Enums.ModeTag.kUnknownEnumValue] + + for m in supported_modes: + for t in m.modeTags: + is_mfg = (0x8000 <= t.value and t.value <= 0xBFFF) + asserts.assert_true(t.value in commonTags.keys() or t.value in cleanTags or is_mfg, + "Found a SupportedModes entry with invalid mode tag value!") + + if self.check_pics("RVCCLEANM.S.A0001"): + self.print_step(3, "Read CurrentMode attribute") + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + asserts.assert_true(current_mode in modes, "CurrentMode is not a supported mode!") + + if self.check_pics("RVCCLEANM.S.A0003"): + self.print_step(4, "Read OnMode attribute") + on_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.OnMode) + + logging.info("OnMode: %s" % (on_mode)) + asserts.assert_true(on_mode in modes or on_mode == NullValue, "OnMode is not a supported mode!") + + if self.check_pics("RVCCLEANM.S.A0002"): + self.print_step(5, "Read StartUpMode attribute") + startup_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.StartUpMode) + + logging.info("StartUpMode: %s" % (startup_mode)) + asserts.assert_true(startup_mode in modes or startup_mode == NullValue, "StartUpMode is not a supported mode!") + + +if __name__ == "__main__": + default_matter_test_main() diff --git a/src/python_testing/TC_RVCCLEANM_2_1.py b/src/python_testing/TC_RVCCLEANM_2_1.py new file mode 100644 index 00000000000000..3c58a7e11795ea --- /dev/null +++ b/src/python_testing/TC_RVCCLEANM_2_1.py @@ -0,0 +1,162 @@ +# +# Copyright (c) 2023 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +import logging + +import chip.clusters as Clusters +from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches +from mobly import asserts + +# This test requires several additional command line arguments +# run with +# --int-arg PIXIT_ENDPOINT: PIXIT_MODEOK: PIXIT_MODEFAIL: + + +class TC_RVCCLEANM_2_1(MatterBaseTest): + + async def read_mod_attribute_expect_success(self, endpoint, attribute): + cluster = Clusters.Objects.RvcCleanMode + return await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=attribute) + + async def send_change_to_mode_cmd(self, newMode) -> Clusters.Objects.RvcCleanMode.Commands.ChangeToModeResponse: + ret = await self.send_single_cmd(cmd=Clusters.Objects.RvcCleanMode.Commands.ChangeToMode(newMode=newMode), endpoint=self.endpoint) + asserts.assert_true(type_matches(ret, Clusters.Objects.RvcCleanMode.Commands.ChangeToModeResponse), + "Unexpected return type for ChangeToMode") + return ret + + @async_test_body + async def test_TC_RVCCLEANM_2_1(self): + + asserts.assert_true('PIXIT_ENDPOINT' in self.matter_test_config.global_test_params, + "PIXIT_ENDPOINT must be included on the command line in " + "the --int-arg flag as PIXIT_ENDPOINT:") + asserts.assert_true('PIXIT_MODEOK' in self.matter_test_config.global_test_params, + "PIXIT_MODEOK must be included on the command line in " + "the --int-arg flag as PIXIT_MODEOK:") + asserts.assert_true('PIXIT_MODEFAIL' in self.matter_test_config.global_test_params, + "PIXIT_MODEFAIL must be included on the command line in " + "the --int-arg flag as PIXIT_MODEFAIL:") + + self.endpoint = self.matter_test_config.global_test_params['PIXIT_ENDPOINT'] + self.modeok = self.matter_test_config.global_test_params['PIXIT_MODEOK'] + self.modefail = self.matter_test_config.global_test_params['PIXIT_MODEFAIL'] + + asserts.assert_true(self.check_pics("RVCCLEANM.S.A0000"), "RVCCLEANM.S.A0000 must be supported") + asserts.assert_true(self.check_pics("RVCCLEANM.S.A0001"), "RVCCLEANM.S.A0001 must be supported") + asserts.assert_true(self.check_pics("RVCCLEANM.S.C00.Rsp"), "RVCCLEANM.S.C00.Rsp must be supported") + asserts.assert_true(self.check_pics("RVCCLEANM.S.C01.Tx"), "RVCCLEANM.S.C01.Tx must be supported") + + attributes = Clusters.RvcCleanMode.Attributes + + self.print_step(1, "Commissioning, already done") + + self.print_step(2, "Read SupportedModes attribute") + supported_modes = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.SupportedModes) + + logging.info("SupportedModes: %s" % (supported_modes)) + + asserts.assert_greater_equal(len(supported_modes), 2, "SupportedModes must have at least two entries!") + + modes = [m.mode for m in supported_modes] + + self.print_step(3, "Read CurrentMode attribute") + + old_current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (old_current_mode)) + + # pick a value that's not on the list of supported modes + invalid_mode = max(modes) + 1 + + from enum import Enum + + class CommonCodes(Enum): + SUCCESS = 0x00 + UNSUPPORTED_MODE = 0x01 + GENERIC_FAILURE = 0x02 + + rvcCleanCodes = [code.value for code in Clusters.RvcCleanMode.Enums.StatusCode + if code is not Clusters.RvcCleanMode.Enums.StatusCode.kUnknownEnumValue] + + self.print_step(4, "Send ChangeToMode command with NewMode set to %d" % (old_current_mode)) + + ret = await self.send_change_to_mode_cmd(newMode=old_current_mode) + asserts.assert_true(ret.status == CommonCodes.SUCCESS.value, "Changing the mode to the current mode should be a no-op") + + self.print_step(5, "Manually put the device in a state from which it will FAIL to transition to mode %d" % (self.modefail)) + input("Press Enter when done.\n") + + self.print_step(6, "Read CurrentMode attribute") + old_current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (old_current_mode)) + + self.print_step(7, "Send ChangeToMode command with NewMode set to %d" % (self.modefail)) + + ret = await self.send_change_to_mode_cmd(newMode=self.modefail) + st = ret.status + is_mfg_code = st in range(0x80, 0xC0) + is_err_code = (st == CommonCodes.GENERIC_FAILURE.value) or (st in rvcCleanCodes) or is_mfg_code + asserts.assert_true(is_err_code, "Changing to mode %d must fail due to the current state of the device" % (self.modefail)) + st_text_len = len(ret.statusText) + asserts.assert_true(st_text_len in range(1, 65), "StatusText length (%d) must be between 1 and 64" % (st_text_len)) + + self.print_step(8, "Read CurrentMode attribute") + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + + asserts.assert_true(current_mode == old_current_mode, "CurrentMode changed after failed ChangeToMode command!") + + self.print_step(9, "Manually put the device in a state from which it will SUCCESSFULLY transition to mode %d" % (self.modeok)) + input("Press Enter when done.\n") + + self.print_step(10, "Read CurrentMode attribute") + old_current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (old_current_mode)) + + self.print_step(11, "Send ChangeToMode command with NewMode set to %d" % (self.modeok)) + + ret = await self.send_change_to_mode_cmd(newMode=self.modeok) + asserts.assert_true(ret.status == CommonCodes.SUCCESS.value, + "Changing to mode %d must succeed due to the current state of the device" % (self.modeok)) + + self.print_step(12, "Read CurrentMode attribute") + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + + asserts.assert_true(current_mode == self.modeok, + "CurrentMode doesn't match the argument of the successful ChangeToMode command!") + + self.print_step(13, "Send ChangeToMode command with NewMode set to %d" % (invalid_mode)) + + ret = await self.send_change_to_mode_cmd(newMode=invalid_mode) + asserts.assert_true(ret.status == CommonCodes.UNSUPPORTED_MODE.value, + "Attempt to change to invalid mode %d didn't fail as expected" % (invalid_mode)) + + self.print_step(14, "Read CurrentMode attribute") + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + + asserts.assert_true(current_mode == self.modeok, "CurrentMode changed after failed ChangeToMode command!") + + +if __name__ == "__main__": + default_matter_test_main() diff --git a/src/python_testing/TC_RVCCLEANM_3_2.py b/src/python_testing/TC_RVCCLEANM_3_2.py new file mode 100644 index 00000000000000..1d5d24beea5ac1 --- /dev/null +++ b/src/python_testing/TC_RVCCLEANM_3_2.py @@ -0,0 +1,115 @@ +# +# Copyright (c) 2023 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +import logging + +import chip.clusters as Clusters +from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches +from mobly import asserts + +# This test requires several additional command line arguments +# run with +# --int-arg PIXIT_ENDPOINT: + + +class TC_RVCCLEANM_3_2(MatterBaseTest): + + async def read_mod_attribute_expect_success(self, endpoint, attribute): + cluster = Clusters.Objects.RvcCleanMode + return await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=attribute) + + async def send_change_to_mode_cmd(self, newMode) -> Clusters.Objects.RvcCleanMode.Commands.ChangeToModeResponse: + ret = await self.send_single_cmd(cmd=Clusters.Objects.RvcCleanMode.Commands.ChangeToMode(newMode=newMode), endpoint=self.endpoint) + asserts.assert_true(type_matches(ret, Clusters.Objects.RvcCleanMode.Commands.ChangeToModeResponse), + "Unexpected return type for ChangeToMode") + return ret + + @async_test_body + async def test_TC_RVCCLEANM_3_2(self): + + asserts.assert_true('PIXIT_ENDPOINT' in self.matter_test_config.global_test_params, + "PIXIT_ENDPOINT must be included on the command line in " + "the --int-arg flag as PIXIT_ENDPOINT:") + + self.endpoint = self.matter_test_config.global_test_params['PIXIT_ENDPOINT'] + + asserts.assert_true(self.check_pics("RVCCLEANM.S.A0000"), "RVCCLEANM.S.A0000 must be supported") + asserts.assert_true(self.check_pics("RVCCLEANM.S.A0001"), "RVCCLEANM.S.A0001 must be supported") + asserts.assert_true(self.check_pics("RVCCLEANM.S.A0002"), "RVCCLEANM.S.A0002 must be supported") + asserts.assert_true(self.check_pics("RVCCLEANM.S.C00.Rsp"), "RVCCLEANM.S.C00.Rsp must be supported") + asserts.assert_true(self.check_pics("RVCCLEANM.S.C01.Tx"), "RVCCLEANM.S.C01.Tx must be supported") + + attributes = Clusters.RvcCleanMode.Attributes + + from enum import Enum + + class CommonCodes(Enum): + SUCCESS = 0x00 + UNSUPPORTED_MODE = 0x01 + GENERIC_FAILURE = 0x02 + + self.print_step(1, "Commissioning, already done") + + self.print_step(2, "Read StartUpMode attribute") + + startup_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.StartUpMode) + + logging.info("StartUpMode: %s" % (startup_mode)) + + self.print_step(3, "Read CurrentMode attribute") + + old_current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (old_current_mode)) + + if old_current_mode == startup_mode: + + self.print_step(4, "Read SupportedModes attribute") + supported_modes = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.SupportedModes) + + logging.info("SupportedModes: %s" % (supported_modes)) + + asserts.assert_greater_equal(len(supported_modes), 2, "SupportedModes must have at least two entries!") + + new_mode = None + + for m in supported_modes: + if m.mode != startup_mode: + new_mode = m.mode + break + + self.print_step(5, "Send ChangeToMode command with NewMode set to %d" % (new_mode)) + + ret = await self.send_change_to_mode_cmd(newMode=new_mode) + asserts.assert_true(ret.status == CommonCodes.SUCCESS.value, "Changing the mode should succeed") + + self.default_controller.ExpireSessions(self.dut_node_id) + + self.print_step(6, "Physically power cycle the device") + input("Press Enter when done.\n") + + self.print_step(7, "Read CurrentMode attribute") + + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + + asserts.assert_true(startup_mode == current_mode, "CurrentMode must match StartUpMode after a power cycle") + + +if __name__ == "__main__": + default_matter_test_main() diff --git a/src/python_testing/TC_RVCOPSTATE_2_1.py b/src/python_testing/TC_RVCOPSTATE_2_1.py new file mode 100644 index 00000000000000..acd0ba35b6a4f4 --- /dev/null +++ b/src/python_testing/TC_RVCOPSTATE_2_1.py @@ -0,0 +1,133 @@ +# +# Copyright (c) 2023 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +import logging + +import chip.clusters as Clusters +from chip.clusters.Types import NullValue +from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main +from mobly import asserts + +# This test requires several additional command line arguments +# run with +# --int-arg PIXIT_ENDPOINT: + + +class TC_RVCOPSTATE_2_1(MatterBaseTest): + + async def read_mod_attribute_expect_success(self, endpoint, attribute): + cluster = Clusters.Objects.RvcOperationalState + return await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=attribute) + + @async_test_body + async def test_TC_RVCOPSTATE_2_1(self): + + asserts.assert_true('PIXIT_ENDPOINT' in self.matter_test_config.global_test_params, + "PIXIT_ENDPOINT must be included on the command line in " + "the --int-arg flag as PIXIT_ENDPOINT:") + + self.endpoint = self.matter_test_config.global_test_params['PIXIT_ENDPOINT'] + + attributes = Clusters.RvcOperationalState.Attributes + + self.print_step(1, "Commissioning, already done") + + if self.check_pics("RVCOPSTATE.S.A0000"): + self.print_step(2, "Read PhaseList attribute") + phase_list = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.PhaseList) + + if phase_list == NullValue: + logging.info("PhaseList is null") + else: + logging.info("PhaseList: %s" % (phase_list)) + + phase_list_len = len(phase_list) + + asserts.assert_less_equal(phase_list_len, 32, "PhaseList must have no more than 32 entries!") + + if self.check_pics("RVCOPSTATE.S.A0001"): + self.print_step(3, "Read CurrentPhase attribute") + current_phase = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentPhase) + logging.info("CurrentPhase: %s" % (current_phase)) + + if phase_list == NullValue: + asserts.assert_true(current_phase == NullValue, "CurrentPhase should be null") + else: + asserts.assert_true(0 <= current_phase and current_phase <= (phase_list_len - 1), + "CurrentPhase must be between 0 and (phase-list-size - 1)") + + if self.check_pics("RVCOPSTATE.S.A0002"): + self.print_step(4, "Read CountdownTime attribute") + countdown_time = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, + attribute=attributes.CountdownTime) + + logging.info("CountdownTime: %s" % (countdown_time)) + if countdown_time is not NullValue: + asserts.assert_true(countdown_time >= 0 and countdown_time <= 259200, "CountdownTime must be between 0 and 259200") + + if self.check_pics("RVCOPSTATE.S.A0003"): + self.print_step(5, "Read OperationalStateList attribute") + operational_state_list = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, + attribute=attributes.OperationalStateList) + + logging.info("OperationalStateList: %s" % (operational_state_list)) + + state_ids = [s.operationalStateID for s in operational_state_list] + + defined_states = [state.value for state in Clusters.OperationalState.Enums.OperationalStateEnum + if state is not Clusters.OperationalState.Enums.OperationalStateEnum.kUnknownEnumValue] + defined_states.extend(state.value for state in Clusters.RvcOperationalState.Enums.OperationalStateEnum + if state is not Clusters.RvcOperationalState.Enums.OperationalStateEnum.kUnknownEnumValue) + + for state_id in state_ids: + in_range = (0x8000 <= state_id and state_id <= 0xBFFF) + asserts.assert_true(state_id in defined_states or in_range, + "Found a OperationalStateList entry with invalid ID value!") + if state_id == Clusters.OperationalState.Enums.OperationalStateEnum.kError: + error_present_in_list = True + asserts.assert_true(error_present_in_list, "The OperationalStateList does not have an ID entry of Error(0x03)") + + if self.check_pics("RVCOPSTATE.S.A0004"): + self.print_step(6, "Read OperationalState attribute") + operational_state = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, + attribute=attributes.OperationalState) + + logging.info("OperationalState: %s" % (operational_state)) + + in_range = (0x8000 <= operational_state and operational_state <= 0xBFFF) + asserts.assert_true(operational_state in defined_states or in_range, "OperationalState has an invalid ID value!") + + if self.check_pics("RVCOPSTATE.S.A0005"): + self.print_step(7, "Read OperationalError attribute") + operational_error = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, + attribute=attributes.OperationalError) + + logging.info("OperationalError: %s" % (operational_error)) + + # Defined Errors + defined_errors = [error.value for error in Clusters.OperationalState.Enums.ErrorStateEnum + if error is not Clusters.OperationalState.Enums.ErrorStateEnum.kUnknownEnumValue] + defined_errors.extend(error.value for error in Clusters.RvcOperationalState.Enums.ErrorStateEnum + if error is not Clusters.RvcOperationalState.Enums.ErrorStateEnum.kUnknownEnumValue) + + in_range = (0x8000 <= operational_error.errorStateID and operational_error.errorStateID <= 0xBFFF) + asserts.assert_true(operational_error.errorStateID in defined_errors + or in_range, "OperationalError has an invalid ID value!") + + +if __name__ == "__main__": + default_matter_test_main() diff --git a/src/python_testing/TC_RVCOPSTATE_2_3.py b/src/python_testing/TC_RVCOPSTATE_2_3.py new file mode 100644 index 00000000000000..288e40f7099ba3 --- /dev/null +++ b/src/python_testing/TC_RVCOPSTATE_2_3.py @@ -0,0 +1,156 @@ +# +# Copyright (c) 2023 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +import logging +import time + +import chip.clusters as Clusters +from chip.clusters.Types import NullValue +from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches +from mobly import asserts + +# This test requires several additional command line arguments +# run with +# --int-arg PIXIT_ENDPOINT: + + +class TC_RVCOPSTATE_2_3(MatterBaseTest): + + async def read_mod_attribute_expect_success(self, endpoint, attribute): + cluster = Clusters.Objects.RvcOperationalState + return await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=attribute) + + async def send_pause_cmd(self) -> Clusters.Objects.RvcOperationalState.Commands.Pause: + ret = await self.send_single_cmd(cmd=Clusters.Objects.RvcOperationalState.Commands.Pause(), endpoint=self.endpoint) + asserts.assert_true(type_matches(ret, Clusters.Objects.RvcOperationalState.Commands.OperationalCommandResponse), + "Unexpected return type for Pause") + return ret + + async def send_resume_cmd(self) -> Clusters.Objects.RvcOperationalState.Commands.Resume: + ret = await self.send_single_cmd(cmd=Clusters.Objects.RvcOperationalState.Commands.Resume(), endpoint=self.endpoint) + asserts.assert_true(type_matches(ret, Clusters.Objects.RvcOperationalState.Commands.OperationalCommandResponse), + "Unexpected return type for Resume") + return ret + + @async_test_body + async def test_TC_RVCOPSTATE_2_3(self): + + asserts.assert_true('PIXIT_ENDPOINT' in self.matter_test_config.global_test_params, + "PIXIT_ENDPOINT must be included on the command line in " + "the --int-arg flag as PIXIT_ENDPOINT:") + + self.endpoint = self.matter_test_config.global_test_params['PIXIT_ENDPOINT'] + + asserts.assert_true(self.check_pics("RVCOPSTATE.S.A0002"), "RVCOPSTATE.S.A0002 must be supported") + asserts.assert_true(self.check_pics("RVCOPSTATE.S.A0003"), "RVCOPSTATE.S.A0003 must be supported") + asserts.assert_true(self.check_pics("RVCOPSTATE.S.A0004"), "RVCOPSTATE.S.A0004 must be supported") + asserts.assert_true(self.check_pics("RVCOPSTATE.S.C00.Rsp"), "RVCOPSTATE.S.C00.Rsp must be supported") + asserts.assert_true(self.check_pics("RVCOPSTATE.S.C03.Rsp"), "RVCOPSTATE.S.C03.Rsp must be supported") + + attributes = Clusters.RvcOperationalState.Attributes + + self.print_step(1, "Commissioning, already done") + + self.print_step(2, "Manually put the device in a state where it can receive a Pause command") + input("Press Enter when done.\n") + + self.print_step(3, "Read OperationalStateList attribute") + op_state_list = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, + attribute=attributes.OperationalStateList) + + logging.info("OperationalStateList: %s" % (op_state_list)) + + defined_states = [state.value for state in Clusters.OperationalState.Enums.OperationalStateEnum + if state is not Clusters.OperationalState.Enums.OperationalStateEnum.kUnknownEnumValue] + + state_ids = [s.operationalStateID for s in op_state_list] + + asserts.assert_true(all(id in state_ids for id in defined_states), "OperationalStateList is missing a required entry") + + self.print_step(4, "Send Pause command") + ret = await self.send_pause_cmd() + asserts.assert_equal(ret.commandResponseState.errorStateID, Clusters.OperationalState.Enums.ErrorStateEnum.kNoError, + "ErrorStateID should be NoError(0x00)") + + self.print_step(5, "Read OperationalState attribute") + operational_state = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, + attribute=attributes.OperationalState) + logging.info("OperationalState: %s" % (operational_state)) + asserts.assert_equal(operational_state, Clusters.OperationalState.Enums.OperationalStateEnum.kPaused, + "OperationalState ID should be Paused(0x02)") + + self.print_step(6, "Read CountdownTime attribute") + initial_countdown_time = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, + attribute=attributes.CountdownTime) + logging.info("CountdownTime: %s" % (initial_countdown_time)) + if initial_countdown_time is not NullValue: + in_range = (1 <= initial_countdown_time and initial_countdown_time <= 259200) + asserts.assert_true(initial_countdown_time is NullValue or in_range, "invalid CountdownTime") + + self.print_step(7, "Waiting for 5 seconds") + time.sleep(5) + + self.print_step(8, "Read CountdownTime attribute") + countdown_time = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CountdownTime) + logging.info("CountdownTime: %s" % (countdown_time)) + asserts.assert_true(countdown_time != 0 or countdown_time == NullValue, "invalid CountdownTime") + asserts.assert_equal(countdown_time, initial_countdown_time, + "CountdownTime does not equal to the intial CountdownTime %s" % initial_countdown_time) + + self.print_step(9, "Send Pause command") + ret = await self.send_pause_cmd() + asserts.assert_equal(ret.commandResponseState.errorStateID, Clusters.OperationalState.Enums.ErrorStateEnum.kNoError, + "ErrorStateID should be NoError(0x00)") + + self.print_step(10, "Send Resume command") + ret = await self.send_resume_cmd() + asserts.assert_equal(ret.commandResponseState.errorStateID, Clusters.OperationalState.Enums.ErrorStateEnum.kNoError, + "ErrorStateID should be NoError(0x00)") + + self.print_step(11, "Read OperationalState attribute") + operational_state = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, + attribute=attributes.OperationalState) + logging.info("OperationalState: %s" % (operational_state)) + asserts.assert_equal(operational_state, Clusters.OperationalState.Enums.OperationalStateEnum.kRunning, + "OperationalState ID should be Running(0x01)") + + self.print_step(12, "Send Resume command") + ret = await self.send_resume_cmd() + asserts.assert_equal(ret.commandResponseState.errorStateID, Clusters.OperationalState.Enums.ErrorStateEnum.kNoError, + "errorStateID should be NoError(0x00)") + + self.print_step(13, "Manually put the device in a state where it cannot receive a Pause command") + input("Press Enter when done.\n") + + self.print_step(14, "Send Pause command") + ret = await self.send_pause_cmd() + asserts.assert_equal(ret.commandResponseState.errorStateID, + Clusters.OperationalState.Enums.ErrorStateEnum.kCommandInvalidInState, + "errorStateID should be CommandInvalidInState(0x03)") + + self.print_step(15, "Manually put the device in a state where it cannot receive a Resume command") + input("Press Enter when done.\n") + + self.print_step(16, "Send Resume command") + ret = await self.send_resume_cmd() + asserts.assert_equal(ret.commandResponseState.errorStateID, + Clusters.OperationalState.Enums.ErrorStateEnum.kCommandInvalidInState, + "errorStateID should be CommandInvalidInState(0x03)") + + +if __name__ == "__main__": + default_matter_test_main() diff --git a/src/python_testing/TC_RVCRUNM_1_2.py b/src/python_testing/TC_RVCRUNM_1_2.py new file mode 100644 index 00000000000000..7029e70163217f --- /dev/null +++ b/src/python_testing/TC_RVCRUNM_1_2.py @@ -0,0 +1,121 @@ +# +# Copyright (c) 2023 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +import logging + +import chip.clusters as Clusters +from chip.clusters.Types import NullValue +from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main +from mobly import asserts + +# This test requires several additional command line arguments +# run with +# --int-arg PIXIT_ENDPOINT: + + +class TC_RVCRUNM_1_2(MatterBaseTest): + + async def read_mod_attribute_expect_success(self, endpoint, attribute): + cluster = Clusters.Objects.RvcRunMode + return await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=attribute) + + @async_test_body + async def test_TC_RVCRUNM_1_2(self): + + asserts.assert_true('PIXIT_ENDPOINT' in self.matter_test_config.global_test_params, + "PIXIT_ENDPOINT must be included on the command line in " + "the --int-arg flag as PIXIT_ENDPOINT:") + + self.endpoint = self.matter_test_config.global_test_params['PIXIT_ENDPOINT'] + + attributes = Clusters.RvcRunMode.Attributes + + self.print_step(1, "Commissioning, already done") + + if self.check_pics("RVCRUNM.S.A0000"): + self.print_step(2, "Read SupportedModes attribute") + supported_modes = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.SupportedModes) + + logging.info("SupportedModes: %s" % (supported_modes)) + + asserts.assert_greater_equal(len(supported_modes), 2, "SupportedModes must have at least two entries!") + + modes = [] + for m in supported_modes: + if m.mode in modes: + asserts.fail("SupportedModes must have unique mode values!") + else: + modes.append(m.mode) + + labels = [] + for m in supported_modes: + if m.label in labels: + asserts.fail("SupportedModes must have unique mode label values!") + else: + labels.append(m.label) + + # common mode tags + commonTags = {0x0: 'Auto', + 0x1: 'Quick', + 0x2: 'Quiet', + 0x3: 'LowNoise', + 0x4: 'LowEnergy', + 0x5: 'Vacation', + 0x6: 'Min', + 0x7: 'Max', + 0x8: 'Night', + 0x9: 'Day'} + + runTags = [tag.value for tag in Clusters.RvcRunMode.Enums.ModeTag + if tag is not Clusters.RvcRunMode.Enums.ModeTag.kUnknownEnumValue] + + for m in supported_modes: + for t in m.modeTags: + is_mfg = (0x8000 <= t.value and t.value <= 0xBFFF) + asserts.assert_true(t.value in commonTags.keys() or t.value in runTags or is_mfg, + "Found a SupportedModes entry with invalid mode tag value!") + if t.value == Clusters.RvcRunMode.Enums.ModeTag.kIdle: + idle_present = True + if t.value == Clusters.RvcRunMode.Enums.ModeTag.kCleaning: + cleaning_present = True + asserts.assert_true(idle_present, "The Supported Modes does not have an entry of Idle(0x4000)") + asserts.assert_true(cleaning_present, "The Supported Modes does not have an entry of Cleaning(0x4001)") + + if self.check_pics("RVCRUNM.S.A0001"): + self.print_step(3, "Read CurrentMode attribute") + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + asserts.assert_true(current_mode in modes, "CurrentMode is not a supported mode!") + + if self.check_pics("RVCRUNM.S.A0003"): + self.print_step(4, "Read OnMode attribute") + on_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.OnMode) + + logging.info("OnMode: %s" % (on_mode)) + asserts.assert_true(on_mode in modes or on_mode == NullValue, "OnMode is not a supported mode!") + + if self.check_pics("RVCRUNM.S.A0002"): + self.print_step(5, "Read StartUpMode attribute") + startup_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.StartUpMode) + + logging.info("StartUpMode: %s" % (startup_mode)) + asserts.assert_true(startup_mode in modes or startup_mode == NullValue, "StartUpMode is not a supported mode!") + + +if __name__ == "__main__": + default_matter_test_main() diff --git a/src/python_testing/TC_RVCRUNM_2_1.py b/src/python_testing/TC_RVCRUNM_2_1.py new file mode 100644 index 00000000000000..bc9ff11da23db9 --- /dev/null +++ b/src/python_testing/TC_RVCRUNM_2_1.py @@ -0,0 +1,162 @@ +# +# Copyright (c) 2023 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +import logging + +import chip.clusters as Clusters +from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches +from mobly import asserts + +# This test requires several additional command line arguments +# run with +# --int-arg PIXIT_ENDPOINT: PIXIT_MODEOK: PIXIT_MODEFAIL: + + +class TC_RVCRUNM_2_1(MatterBaseTest): + + async def read_mod_attribute_expect_success(self, endpoint, attribute): + cluster = Clusters.Objects.RvcRunMode + return await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=attribute) + + async def send_change_to_mode_cmd(self, newMode) -> Clusters.Objects.RvcRunMode.Commands.ChangeToModeResponse: + ret = await self.send_single_cmd(cmd=Clusters.Objects.RvcRunMode.Commands.ChangeToMode(newMode=newMode), endpoint=self.endpoint) + asserts.assert_true(type_matches(ret, Clusters.Objects.RvcRunMode.Commands.ChangeToModeResponse), + "Unexpected return type for ChangeToMode") + return ret + + @async_test_body + async def test_TC_RVCRUNM_2_1(self): + + asserts.assert_true('PIXIT_ENDPOINT' in self.matter_test_config.global_test_params, + "PIXIT_ENDPOINT must be included on the command line in " + "the --int-arg flag as PIXIT_ENDPOINT:") + asserts.assert_true('PIXIT_MODEOK' in self.matter_test_config.global_test_params, + "PIXIT_MODEOK must be included on the command line in " + "the --int-arg flag as PIXIT_MODEOK:") + asserts.assert_true('PIXIT_MODEFAIL' in self.matter_test_config.global_test_params, + "PIXIT_MODEFAIL must be included on the command line in " + "the --int-arg flag as PIXIT_MODEFAIL:") + + self.endpoint = self.matter_test_config.global_test_params['PIXIT_ENDPOINT'] + self.modeok = self.matter_test_config.global_test_params['PIXIT_MODEOK'] + self.modefail = self.matter_test_config.global_test_params['PIXIT_MODEFAIL'] + + asserts.assert_true(self.check_pics("RVCRUNM.S.A0000"), "RVCRUNM.S.A0000 must be supported") + asserts.assert_true(self.check_pics("RVCRUNM.S.A0001"), "RVCRUNM.S.A0001 must be supported") + asserts.assert_true(self.check_pics("RVCRUNM.S.C00.Rsp"), "RVCRUNM.S.C00.Rsp must be supported") + asserts.assert_true(self.check_pics("RVCRUNM.S.C01.Tx"), "RVCRUNM.S.C01.Tx must be supported") + + attributes = Clusters.RvcRunMode.Attributes + + self.print_step(1, "Commissioning, already done") + + self.print_step(2, "Read SupportedModes attribute") + supported_modes = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.SupportedModes) + + logging.info("SupportedModes: %s" % (supported_modes)) + + asserts.assert_greater_equal(len(supported_modes), 2, "SupportedModes must have at least two entries!") + + modes = [m.mode for m in supported_modes] + + self.print_step(3, "Read CurrentMode attribute") + + old_current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (old_current_mode)) + + # pick a value that's not on the list of supported modes + invalid_mode = max(modes) + 1 + + from enum import Enum + + class CommonCodes(Enum): + SUCCESS = 0x00 + UNSUPPORTED_MODE = 0x01 + GENERIC_FAILURE = 0x02 + + rvcRunCodes = [code.value for code in Clusters.RvcRunMode.Enums.StatusCode + if code is not Clusters.RvcRunMode.Enums.StatusCode.kUnknownEnumValue] + + self.print_step(4, "Send ChangeToMode command with NewMode set to %d" % (old_current_mode)) + + ret = await self.send_change_to_mode_cmd(newMode=old_current_mode) + asserts.assert_true(ret.status == CommonCodes.SUCCESS.value, "Changing the mode to the current mode should be a no-op") + + self.print_step(5, "Manually put the device in a state from which it will FAIL to transition to mode %d" % (self.modefail)) + input("Press Enter when done.\n") + + self.print_step(6, "Read CurrentMode attribute") + old_current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (old_current_mode)) + + self.print_step(7, "Send ChangeToMode command with NewMode set to %d" % (self.modefail)) + + ret = await self.send_change_to_mode_cmd(newMode=self.modefail) + st = ret.status + is_mfg_code = st in range(0x80, 0xC0) + is_err_code = (st == CommonCodes.GENERIC_FAILURE.value) or (st in rvcRunCodes) or is_mfg_code + asserts.assert_true(is_err_code, "Changing to mode %d must fail due to the current state of the device" % (self.modefail)) + st_text_len = len(ret.statusText) + asserts.assert_true(st_text_len in range(1, 65), "StatusText length (%d) must be between 1 and 64" % (st_text_len)) + + self.print_step(8, "Read CurrentMode attribute") + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + + asserts.assert_true(current_mode == old_current_mode, "CurrentMode changed after failed ChangeToMode command!") + + self.print_step(9, "Manually put the device in a state from which it will SUCCESSFULLY transition to mode %d" % (self.modeok)) + input("Press Enter when done.\n") + + self.print_step(10, "Read CurrentMode attribute") + old_current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (old_current_mode)) + + self.print_step(11, "Send ChangeToMode command with NewMode set to %d" % (self.modeok)) + + ret = await self.send_change_to_mode_cmd(newMode=self.modeok) + asserts.assert_true(ret.status == CommonCodes.SUCCESS.value, + "Changing to mode %d must succeed due to the current state of the device" % (self.modeok)) + + self.print_step(12, "Read CurrentMode attribute") + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + + asserts.assert_true(current_mode == self.modeok, + "CurrentMode doesn't match the argument of the successful ChangeToMode command!") + + self.print_step(13, "Send ChangeToMode command with NewMode set to %d" % (invalid_mode)) + + ret = await self.send_change_to_mode_cmd(newMode=invalid_mode) + asserts.assert_true(ret.status == CommonCodes.UNSUPPORTED_MODE.value, + "Attempt to change to invalid mode %d didn't fail as expected" % (invalid_mode)) + + self.print_step(14, "Read CurrentMode attribute") + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + + asserts.assert_true(current_mode == self.modeok, "CurrentMode changed after failed ChangeToMode command!") + + +if __name__ == "__main__": + default_matter_test_main() diff --git a/src/python_testing/TC_RVCRUNM_3_2.py b/src/python_testing/TC_RVCRUNM_3_2.py new file mode 100644 index 00000000000000..09cfebec90d6eb --- /dev/null +++ b/src/python_testing/TC_RVCRUNM_3_2.py @@ -0,0 +1,115 @@ +# +# Copyright (c) 2023 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +import logging + +import chip.clusters as Clusters +from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main, type_matches +from mobly import asserts + +# This test requires several additional command line arguments +# run with +# --int-arg PIXIT_ENDPOINT: + + +class TC_RVCRUNM_3_2(MatterBaseTest): + + async def read_mod_attribute_expect_success(self, endpoint, attribute): + cluster = Clusters.Objects.RvcRunMode + return await self.read_single_attribute_check_success(endpoint=endpoint, cluster=cluster, attribute=attribute) + + async def send_change_to_mode_cmd(self, newMode) -> Clusters.Objects.RvcRunMode.Commands.ChangeToModeResponse: + ret = await self.send_single_cmd(cmd=Clusters.Objects.RvcRunMode.Commands.ChangeToMode(newMode=newMode), endpoint=self.endpoint) + asserts.assert_true(type_matches(ret, Clusters.Objects.RvcRunMode.Commands.ChangeToModeResponse), + "Unexpected return type for ChangeToMode") + return ret + + @async_test_body + async def test_TC_RVCRUNM_3_2(self): + + asserts.assert_true('PIXIT_ENDPOINT' in self.matter_test_config.global_test_params, + "PIXIT_ENDPOINT must be included on the command line in " + "the --int-arg flag as PIXIT_ENDPOINT:") + + self.endpoint = self.matter_test_config.global_test_params['PIXIT_ENDPOINT'] + + asserts.assert_true(self.check_pics("RVCRUNM.S.A0000"), "RVCRUNM.S.A0000 must be supported") + asserts.assert_true(self.check_pics("RVCRUNM.S.A0001"), "RVCRUNM.S.A0001 must be supported") + asserts.assert_true(self.check_pics("RVCRUNM.S.A0002"), "RVCRUNM.S.A0002 must be supported") + asserts.assert_true(self.check_pics("RVCRUNM.S.C00.Rsp"), "RVCRUNM.S.C00.Rsp must be supported") + asserts.assert_true(self.check_pics("RVCRUNM.S.C01.Tx"), "RVCRUNM.S.C01.Tx must be supported") + + attributes = Clusters.RvcRunMode.Attributes + + from enum import Enum + + class CommonCodes(Enum): + SUCCESS = 0x00 + UNSUPPORTED_MODE = 0x01 + GENERIC_FAILURE = 0x02 + + self.print_step(1, "Commissioning, already done") + + self.print_step(2, "Read StartUpMode attribute") + + startup_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.StartUpMode) + + logging.info("StartUpMode: %s" % (startup_mode)) + + self.print_step(3, "Read CurrentMode attribute") + + old_current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (old_current_mode)) + + if old_current_mode == startup_mode: + + self.print_step(4, "Read SupportedModes attribute") + supported_modes = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.SupportedModes) + + logging.info("SupportedModes: %s" % (supported_modes)) + + asserts.assert_greater_equal(len(supported_modes), 2, "SupportedModes must have at least two entries!") + + new_mode = None + + for m in supported_modes: + if m.mode != startup_mode: + new_mode = m.mode + break + + self.print_step(5, "Send ChangeToMode command with NewMode set to %d" % (new_mode)) + + ret = await self.send_change_to_mode_cmd(newMode=new_mode) + asserts.assert_true(ret.status == CommonCodes.SUCCESS.value, "Changing the mode should succeed") + + self.default_controller.ExpireSessions(self.dut_node_id) + + self.print_step(6, "Physically power cycle the device") + input("Press Enter when done.\n") + + self.print_step(7, "Read CurrentMode attribute") + + current_mode = await self.read_mod_attribute_expect_success(endpoint=self.endpoint, attribute=attributes.CurrentMode) + + logging.info("CurrentMode: %s" % (current_mode)) + + asserts.assert_true(startup_mode == current_mode, "CurrentMode must match StartUpMode after a power cycle") + + +if __name__ == "__main__": + default_matter_test_main() diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 2c0cce594e24a3..2ede95292b00a3 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -138030,7 +138030,7 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand { public: Test_TC_RVCCLEANM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_RVCCLEANM_1_1", 0, credsIssuerConfig) + TestCommand("Test_TC_RVCCLEANM_1_1", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -138063,6 +138063,120 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand switch (mTestIndex - 1) { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("clusterRevision", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 3UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNextListItemDecodes("acceptedCommandList", iter_0, 0)); + VerifyOrReturn(CheckValue("acceptedCommandList[0]", iter_0.GetValue(), 0UL)); + VerifyOrReturn(CheckNoMoreListItems("acceptedCommandList", iter_0, 1)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNextListItemDecodes("generatedCommandList", iter_0, 0)); + VerifyOrReturn(CheckValue("generatedCommandList[0]", iter_0.GetValue(), 1UL)); + VerifyOrReturn(CheckNoMoreListItems("generatedCommandList", iter_0, 1)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -138077,7 +138191,77 @@ class Test_TC_RVCCLEANM_1_1Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - {} + { + case 0: { + LogStep(0, "Step 1: Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "Step 2: TH reads the ClusterRevision attribute from the DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::ClusterRevision::Id, + true, chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads the FeatureMap attribute from the DUT"); + VerifyOrDo(!ShouldSkip(" !RVCCLEANM.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 3: { + LogStep(3, "Given RVCCLEANM.S.F00(DEPONOFF) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("RVCCLEANM.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 4: { + LogStep(4, "Step 4a: TH reads the AttributeList attribute from the DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads the optional attribute(StartUpMode) in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("RVCCLEANM.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 6: { + LogStep(6, + "Read the Feature dependent(RVCCLEANM.S.F00 - DEPONOFF) and optional attribute(OnMode) is in AttributeList " + "from the DUT"); + VerifyOrDo(!ShouldSkip("RVCCLEANM.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 7: { + LogStep(7, + "Read the Feature dependent(RVCCLEANM.S.F00 - DEPONOFF) and optional attribute(OnMode) is not in AttributeList " + "from the DUT"); + VerifyOrDo(!ShouldSkip(" !RVCCLEANM.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::AttributeList::Id, + true, chip::NullOptional); + } + case 8: { + LogStep(8, "Read the global attribute: EventList from the DUT"); + VerifyOrDo(!ShouldSkip("RVCCLEANM.S.Afffa"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, RvcCleanMode::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 9: { + LogStep(9, "Read the global attribute AcceptedCommandList. Check if it contains id 0x0 (ChangeToMode)"); + VerifyOrDo(!ShouldSkip("RVCCLEANM.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, + RvcCleanMode::Attributes::AcceptedCommandList::Id, true, chip::NullOptional); + } + case 10: { + LogStep(10, "Read the global attribute: GeneratedCommandList. Check if it contains id 0x1 (ChangeToModeResponse)"); + VerifyOrDo(!ShouldSkip("RVCCLEANM.S.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcCleanMode::Id, + RvcCleanMode::Attributes::GeneratedCommandList::Id, true, chip::NullOptional); + } + } return CHIP_NO_ERROR; } }; @@ -138534,7 +138718,7 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand { public: Test_TC_RVCRUNM_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : - TestCommand("Test_TC_RVCRUNM_1_1", 0, credsIssuerConfig) + TestCommand("Test_TC_RVCRUNM_1_1", 11, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -138567,6 +138751,120 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand switch (mTestIndex - 1) { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint16_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("clusterRevision", value, 1U)); + VerifyOrReturn(CheckConstraintType("value", "int16u", "int16u")); + } + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("featureMap", value, 0UL)); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "bitmap32", "bitmap32")); + VerifyOrReturn(CheckConstraintHasMasksSet("value", value, 1UL)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 0UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 1UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65528UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65529UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65530UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65531UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65532UL)); + VerifyOrReturn(CheckConstraintContains("value", value, 65533UL)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 2UL)); + } + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintContains("value", value, 3UL)); + } + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + VerifyOrReturn(CheckConstraintExcludes("value", value, 3UL)); + } + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNoMoreListItems("eventList", iter_0, 0)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNextListItemDecodes("acceptedCommandList", iter_0, 0)); + VerifyOrReturn(CheckValue("acceptedCommandList[0]", iter_0.GetValue(), 0UL)); + VerifyOrReturn(CheckNoMoreListItems("acceptedCommandList", iter_0, 1)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::DataModel::DecodableList value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + { + auto iter_0 = value.begin(); + VerifyOrReturn(CheckNextListItemDecodes("generatedCommandList", iter_0, 0)); + VerifyOrReturn(CheckValue("generatedCommandList[0]", iter_0.GetValue(), 1UL)); + VerifyOrReturn(CheckNoMoreListItems("generatedCommandList", iter_0, 1)); + } + VerifyOrReturn(CheckConstraintType("value", "list", "list")); + } + break; default: LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT)); } @@ -138581,7 +138879,77 @@ class Test_TC_RVCRUNM_1_1Suite : public TestCommand { using namespace chip::app::Clusters; switch (testIndex) - {} + { + case 0: { + LogStep(0, "Wait for the commissioned device to be retrieved"); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee(kIdentityAlpha, value); + } + case 1: { + LogStep(1, "TH reads the ClusterRevision attribute from the DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::ClusterRevision::Id, true, + chip::NullOptional); + } + case 2: { + LogStep(2, "TH reads the FeatureMap attribute from the DUT"); + VerifyOrDo(!ShouldSkip(" !RVCRUNM.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 3: { + LogStep(3, "Given RVCRUNM.S.F00(DEPONOFF) ensure featuremap has the correct bit set"); + VerifyOrDo(!ShouldSkip("RVCRUNM.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::FeatureMap::Id, true, + chip::NullOptional); + } + case 4: { + LogStep(4, "TH reads the AttributeList attribute from the DUT"); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 5: { + LogStep(5, "TH reads the optional attribute(StartUpMode) in AttributeList from the DUT"); + VerifyOrDo(!ShouldSkip("RVCRUNM.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 6: { + LogStep(6, + "Read the Feature dependent(RVCRUNM.S.F00 - DEPONOFF) and optional attribute(OnMode) is in AttributeList from " + "the DUT"); + VerifyOrDo(!ShouldSkip("RVCRUNM.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 7: { + LogStep(7, + "Read the Feature dependent(RVCRUNM.S.F00 - DEPONOFF) and optional attribute(OnMode) is not in AttributeList " + "from the DUT"); + VerifyOrDo(!ShouldSkip(" !RVCRUNM.S.F00 "), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AttributeList::Id, true, + chip::NullOptional); + } + case 8: { + LogStep(8, "Read the global attribute: EventList from the DUT"); + VerifyOrDo(!ShouldSkip("RVCRUNM.S.Afffa"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::EventList::Id, true, + chip::NullOptional); + } + case 9: { + LogStep(9, "Read the global attribute AcceptedCommandList. Check if it contains id 0x0 (ChangeToMode)"); + VerifyOrDo(!ShouldSkip("RVCRUNM.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::AcceptedCommandList::Id, + true, chip::NullOptional); + } + case 10: { + LogStep(10, "Read the global attribute: GeneratedCommandList. Check if it contains id 0x1 (ChangeToModeResponse)"); + VerifyOrDo(!ShouldSkip("RVCRUNM.S.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), RvcRunMode::Id, RvcRunMode::Attributes::GeneratedCommandList::Id, + true, chip::NullOptional); + } + } return CHIP_NO_ERROR; } }; From 9d053d3cb16f052870eaa6432bdbde49be89aba8 Mon Sep 17 00:00:00 2001 From: crlonxp <88241281+crlonxp@users.noreply.github.com> Date: Sat, 22 Jul 2023 23:02:30 +0800 Subject: [PATCH 24/39] Add laundry-washer-controls-cluster server implementation (#27503) * Add laundry-washer-controls-cluster server implementation Signed-off-by: Chin-Ran Lo * Restyled by clang-format * Refine the definition Signed-off-by: Chin-Ran Lo * Restyled by clang-format * * Remove unnecessary code to read the attribute * Remove the deleget * Change the implementation to accept the attribute from the example Signed-off-by: Chin-Ran Lo * Restyled by clang-format * * Add "const" to the read-only attribute * Remove the empty emberAfLaundryWasherControlsClusterInitCallback() that app-level can implement it Signed-off-by: Chin-Ran Lo * * Add LaundryWasherServer get/set API to access the attributes Signed-off-by: Chin-Ran Lo * * Add the API to get/set the SpinSpeeds and SupportedRinses attribute of LaundryWasherControl cluster * Save/Load the SpinSpeeds and SupportedRinses attribute to/from the flash Signed-off-by: Chin-Ran Lo * Restyled by whitespace * Restyled by clang-format * * Move the release / clean member functions to public - ReleaseSpinSpeedList / ClearSpinSpeedList - ReleaseSupportedRinsesList / ClearSupportedRinsesList Signed-off-by: Chin-Ran Lo * Restyled by clang-format * * Add back the delegate interface and report the items one by one * Remove the data provider Signed-off-by: Chin-Ran Lo * Restyled by whitespace * Restyled by clang-format * * Remove the unused definition for storage-key-alloc Signed-off-by: Chin-Ran Lo * Update src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.cpp Co-authored-by: Boris Zbarsky * Update src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h Co-authored-by: Boris Zbarsky * Update src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h Co-authored-by: Boris Zbarsky * Update src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.cpp Co-authored-by: Boris Zbarsky * Update src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.cpp Co-authored-by: Boris Zbarsky * * Use MutableCharSpan to replace CharSpan * Add to calculate the delegate id from endpoint Signed-off-by: Chin-Ran Lo * Restyled by clang-format * * Refine the comment Signed-off-by: Chin-Ran Lo * Update src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h Co-authored-by: Boris Zbarsky * Update src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h Co-authored-by: Boris Zbarsky * Update src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h Co-authored-by: Boris Zbarsky * Restyled by clang-format --------- Signed-off-by: Chin-Ran Lo Co-authored-by: Restyled.io Co-authored-by: Boris Zbarsky --- .../laundry-washer-controls-delegate.h | 59 ++++++ .../laundry-washer-controls-server.cpp | 195 ++++++++++++++++++ .../laundry-washer-controls-server.h | 103 +++++++++ src/app/zap_cluster_list.json | 1 + 4 files changed, 358 insertions(+) create mode 100644 src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-delegate.h create mode 100644 src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.cpp create mode 100644 src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h diff --git a/src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-delegate.h b/src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-delegate.h new file mode 100644 index 00000000000000..5529413a40cb88 --- /dev/null +++ b/src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-delegate.h @@ -0,0 +1,59 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once +#include +#include + +namespace chip { +namespace app { +namespace Clusters { +namespace LaundryWasherControls { + +/** @brief + * Defines methods for implementing application-specific logic for the laundry washer controls cluster. + */ +class Delegate +{ +public: + Delegate() = default; + virtual ~Delegate() = default; + + /** + * Get the list of supported spin_speed list. + * Fills in the provided spin_speed at index `index` if there is one, + * or returns CHIP_ERROR_PROVIDER_LIST_EXHAUSTED if the index is out of range for the list of spin_speed. + * @param index The index of the spin_speed, with 0 representing the first one. + * @param spinSpeed The spin speed is filled. + */ + virtual CHIP_ERROR GetSpinSpeedAtIndex(size_t index, MutableCharSpan & spinSpeed) = 0; + + /** + * Get the list of supported rinses list. + * Fills in the provided rinses at index `index` if there is one, + * or returns CHIP_ERROR_PROVIDER_LIST_EXHAUSTED if the index is out of range for the list of rinses. + * @param index The index of the supported rinses with 0 representing the first one. + * @param supportedRinse The supported rinse is filled. + */ + virtual CHIP_ERROR GetSupportedRinseAtIndex(size_t index, NumberOfRinsesEnum & supportedRinse) = 0; +}; + +} // namespace LaundryWasherControls +} // namespace Clusters +} // namespace app +} // namespace chip diff --git a/src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.cpp b/src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.cpp new file mode 100644 index 00000000000000..76832e4c091eb8 --- /dev/null +++ b/src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.cpp @@ -0,0 +1,195 @@ +/** + * + * 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. + */ + +#include +#include +#include + +#include "laundry-washer-controls-delegate.h" +#include "laundry-washer-controls-server.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace chip; +using namespace chip::app; +using namespace chip::app::Clusters; +using namespace chip::app::Clusters::LaundryWasherControls; +using namespace chip::app::Clusters::LaundryWasherControls::Attributes; +using chip::Protocols::InteractionModel::Status; + +static constexpr size_t kLaundryWasherControlsDelegateTableSize = + EMBER_AF_LAUNDRY_WASHER_CONTROLS_CLUSTER_SERVER_ENDPOINT_COUNT + CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT; + +// ----------------------------------------------------------------------------- +// Delegate Implementation +// +namespace { +Delegate * gDelegateTable[kLaundryWasherControlsDelegateTableSize] = { nullptr }; +} + +namespace { +Delegate * GetDelegate(EndpointId endpoint) +{ + uint16_t ep = emberAfGetClusterServerEndpointIndex(endpoint, LaundryWasherControls::Id, + EMBER_AF_LAUNDRY_WASHER_CONTROLS_CLUSTER_SERVER_ENDPOINT_COUNT); + return (ep >= kLaundryWasherControlsDelegateTableSize ? nullptr : gDelegateTable[ep]); +} + +} // namespace + +LaundryWasherControlsServer LaundryWasherControlsServer::sInstance; + +/********************************************************** + * LaundryWasherControlsServer public methods + *********************************************************/ +void LaundryWasherControlsServer::SetDefaultDelegate(EndpointId endpoint, Delegate * delegate) +{ + uint16_t ep = emberAfGetClusterServerEndpointIndex(endpoint, LaundryWasherControls::Id, + EMBER_AF_LAUNDRY_WASHER_CONTROLS_CLUSTER_SERVER_ENDPOINT_COUNT); + // if endpoint is found + if (ep < kLaundryWasherControlsDelegateTableSize) + { + gDelegateTable[ep] = delegate; + } +} + +LaundryWasherControlsServer & LaundryWasherControlsServer::Instance() +{ + return sInstance; +} + +EmberAfStatus LaundryWasherControlsServer::SetSpinSpeedCurrent(EndpointId endpointId, + DataModel::Nullable newSpinSpeedCurrent) +{ + DataModel::Nullable spinSpeedCurrent; + EmberAfStatus res = SpinSpeedCurrent::Get(endpointId, spinSpeedCurrent); + if ((res == EMBER_ZCL_STATUS_SUCCESS) && (spinSpeedCurrent != newSpinSpeedCurrent)) + { + res = SpinSpeedCurrent::Set(endpointId, newSpinSpeedCurrent); + } + + return res; +} + +EmberAfStatus LaundryWasherControlsServer::GetSpinSpeedCurrent(EndpointId endpointId, + DataModel::Nullable & spinSpeedCurrent) +{ + return SpinSpeedCurrent::Get(endpointId, spinSpeedCurrent); +} + +EmberAfStatus LaundryWasherControlsServer::SetNumberOfRinses(EndpointId endpointId, NumberOfRinsesEnum newNumberOfRinses) +{ + NumberOfRinsesEnum numberOfRinses; + EmberAfStatus res = NumberOfRinses::Get(endpointId, &numberOfRinses); + + if ((res == EMBER_ZCL_STATUS_SUCCESS) && (numberOfRinses != newNumberOfRinses)) + { + res = NumberOfRinses::Set(endpointId, newNumberOfRinses); + } + + return res; +} + +EmberAfStatus LaundryWasherControlsServer::GetNumberOfRinses(EndpointId endpointId, NumberOfRinsesEnum & numberOfRinses) +{ + return NumberOfRinses::Get(endpointId, &numberOfRinses); +} + +/********************************************************** + * LaundryWasherControlsServer private methods + *********************************************************/ +CHIP_ERROR LaundryWasherControlsServer::Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) +{ + if (aPath.mClusterId != LaundryWasherControls::Id) + { + // We shouldn't have been called at all. + return CHIP_ERROR_INVALID_ARGUMENT; + } + switch (aPath.mAttributeId) + { + case Attributes::SpinSpeeds::Id: + return ReadSpinSpeeds(aPath, aEncoder); + case Attributes::SupportedRinses::Id: + return ReadSupportedRinses(aPath, aEncoder); + default: + break; + } + return CHIP_NO_ERROR; +} + +CHIP_ERROR LaundryWasherControlsServer::ReadSpinSpeeds(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) +{ + Delegate * delegate = GetDelegate(aPath.mEndpointId); + VerifyOrReturnError(delegate != nullptr, CHIP_ERROR_INCORRECT_STATE, ChipLogError(Zcl, "Delegate is nullptr")); + + return aEncoder.EncodeList([delegate](const auto & encoder) -> CHIP_ERROR { + for (uint8_t i = 0; true; i++) + { + char buffer[kMaxSpinSpeedLength]; + MutableCharSpan spinSpeed(buffer); + auto err = delegate->GetSpinSpeedAtIndex(i, spinSpeed); + if (err == CHIP_ERROR_PROVIDER_LIST_EXHAUSTED) + { + return CHIP_NO_ERROR; + } + ReturnErrorOnFailure(err); + ReturnErrorOnFailure(encoder.Encode(spinSpeed)); + } + }); +} + +CHIP_ERROR LaundryWasherControlsServer::ReadSupportedRinses(const ConcreteReadAttributePath & aPath, + AttributeValueEncoder & aEncoder) +{ + Delegate * delegate = GetDelegate(aPath.mEndpointId); + VerifyOrReturnError(delegate != nullptr, CHIP_ERROR_INCORRECT_STATE, ChipLogError(Zcl, "Delegate is nullptr")); + + return aEncoder.EncodeList([delegate](const auto & encoder) -> CHIP_ERROR { + for (uint8_t i = 0; true; i++) + { + NumberOfRinsesEnum supportedRinse; + auto err = delegate->GetSupportedRinseAtIndex(i, supportedRinse); + if (err == CHIP_ERROR_PROVIDER_LIST_EXHAUSTED) + { + return CHIP_NO_ERROR; + } + ReturnErrorOnFailure(err); + ReturnErrorOnFailure(encoder.Encode(supportedRinse)); + } + }); +} + +/********************************************************** + * Register LaundryWasherControlsServer + *********************************************************/ + +void MatterLaundryWasherControlsPluginServerInitCallback() +{ + LaundryWasherControlsServer & laundryWasherControlsServer = LaundryWasherControlsServer::Instance(); + registerAttributeAccessOverride(&laundryWasherControlsServer); +} diff --git a/src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h b/src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h new file mode 100644 index 00000000000000..ac9b4ca0b7f209 --- /dev/null +++ b/src/app/clusters/laundry-washer-controls-server/laundry-washer-controls-server.h @@ -0,0 +1,103 @@ +/** + * + * 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. + */ + +#pragma once + +#include "laundry-washer-controls-delegate.h" +#include +#include +#include + +namespace chip { +namespace app { +namespace Clusters { +namespace LaundryWasherControls { + +/** + * @brief LaundryWasherControls Server Plugin class + */ +class LaundryWasherControlsServer : public AttributeAccessInterface +{ +public: + LaundryWasherControlsServer() : AttributeAccessInterface(Optional::Missing(), LaundryWasherControls::Id) {} + static LaundryWasherControlsServer & Instance(); + + static constexpr uint8_t kMaxSpinSpeedLength = 64; + + /** + * Set the default delegate of laundry washer server at endpoint x + * @param endpoint ID of the endpoint + * @param delegate The default delegate at the endpoint + * @return CHIP_ERROR CHIP_NO_ERROR on success, or corresponding error code. + */ + static void SetDefaultDelegate(EndpointId endpoint, Delegate * delegate); + + /** + * Init the laundry washer server. + * @param void + * @return CHIP_ERROR CHIP_NO_ERROR on success, or corresponding error code. + */ + // CHIP_ERROR Init(); + + /** + * @brief Set the attribute newSpinSpeedCurrent + * + * @param endpointId ID of the endpoint + * @param newSpinSpeedCurrent attribute SpinSpeedCurrent + * @return true on success, false on failure + */ + EmberAfStatus SetSpinSpeedCurrent(EndpointId endpointId, DataModel::Nullable newSpinSpeedCurrent); + + /** + * @brief Get the attribute newSpinSpeedCurrent + * + * @param endpointId ID of the endpoint + * @param SpinSpeedCurrent attribute SpinSpeedCurrent + * @return true on success, false on failure + */ + EmberAfStatus GetSpinSpeedCurrent(EndpointId endpointId, DataModel::Nullable & spinSpeedCurrent); + + /** + * @brief Set the attribute NumberOfRinses + * + * @param endpointId ID of the endpoint + * @param newNumberOfRinses attribute NumberOfRinses + * @return true on success, false on failure + */ + EmberAfStatus SetNumberOfRinses(EndpointId endpointId, NumberOfRinsesEnum newNumberOfRinses); + + /** + * @brief Get the attribute NumberOfRinses + * + * @param endpointId ID of the endpoint + * @param NumberOfRinses attribute NumberOfRinses + * @return true on success, false on failure + */ + EmberAfStatus GetNumberOfRinses(EndpointId endpointId, NumberOfRinsesEnum & numberOfRinses); + +private: + CHIP_ERROR Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) override; + CHIP_ERROR ReadSpinSpeeds(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder); + CHIP_ERROR ReadSupportedRinses(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder); + + static LaundryWasherControlsServer sInstance; +}; + +} // namespace LaundryWasherControls +} // namespace Clusters +} // namespace app +} // namespace chip diff --git a/src/app/zap_cluster_list.json b/src/app/zap_cluster_list.json index e405b924737a7d..f88948ef7d7c5a 100644 --- a/src/app/zap_cluster_list.json +++ b/src/app/zap_cluster_list.json @@ -236,6 +236,7 @@ "UNIT_TESTING_CLUSTER": ["test-cluster-server"], "USER_LABEL_CLUSTER": ["user-label-server"], "WAKE_ON_LAN_CLUSTER": ["wake-on-lan-server"], + "LAUNDRY_WASHER_CONTROLS_CLUSTER": ["laundry-washer-controls-server"], "WIFI_NETWORK_DIAGNOSTICS_CLUSTER": ["wifi-network-diagnostics-server"], "WINDOW_COVERING_CLUSTER": ["window-covering-server"], "ZLL_COMMISSIONING_CLUSTER": [] From c66f2a0806b16f8952774d875e86d0cea95fe4b4 Mon Sep 17 00:00:00 2001 From: Yufeng Wang Date: Sat, 22 Jul 2023 08:12:55 -0700 Subject: [PATCH 25/39] [lighting-app] Support event handling in lighting-app (#28184) --- examples/lighting-app/linux/BUILD.gn | 2 + .../linux/LightingAppCommandDelegate.cpp | 353 ++++++++++++++++++ .../linux/LightingAppCommandDelegate.h | 97 +++++ examples/lighting-app/linux/README.md | 112 ++++++ examples/lighting-app/linux/main.cpp | 27 +- 5 files changed, 590 insertions(+), 1 deletion(-) create mode 100644 examples/lighting-app/linux/LightingAppCommandDelegate.cpp create mode 100644 examples/lighting-app/linux/LightingAppCommandDelegate.h diff --git a/examples/lighting-app/linux/BUILD.gn b/examples/lighting-app/linux/BUILD.gn index cfa89da29e0594..47c14536d9a7c3 100644 --- a/examples/lighting-app/linux/BUILD.gn +++ b/examples/lighting-app/linux/BUILD.gn @@ -36,6 +36,7 @@ config("includes") { executable("chip-lighting-app") { sources = [ + "LightingAppCommandDelegate.cpp", "include/CHIPProjectAppConfig.h", "main.cpp", ] @@ -45,6 +46,7 @@ executable("chip-lighting-app") { "${chip_root}/examples/lighting-app/lighting-common:lighting-manager", "${chip_root}/examples/platform/linux:app-main", "${chip_root}/src/lib", + "${chip_root}/third_party/jsoncpp", ] if (chip_examples_enable_imgui_ui) { diff --git a/examples/lighting-app/linux/LightingAppCommandDelegate.cpp b/examples/lighting-app/linux/LightingAppCommandDelegate.cpp new file mode 100644 index 00000000000000..d0b772f6f04845 --- /dev/null +++ b/examples/lighting-app/linux/LightingAppCommandDelegate.cpp @@ -0,0 +1,353 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "LightingAppCommandDelegate.h" + +#include +#include +#include +#include +#include +#include +#include + +using namespace chip; +using namespace chip::app; +using namespace chip::app::Clusters; +using namespace chip::DeviceLayer; + +LightingAppCommandHandler * LightingAppCommandHandler::FromJSON(const char * json) +{ + Json::Reader reader; + Json::Value value; + + if (!reader.parse(json, value)) + { + ChipLogError(NotSpecified, + "AllClusters App: Error parsing JSON with error %s:", reader.getFormattedErrorMessages().c_str()); + return nullptr; + } + + if (value.empty() || !value.isObject()) + { + ChipLogError(NotSpecified, "AllClusters App: Invalid JSON command received"); + return nullptr; + } + + if (!value.isMember("Name") || !value["Name"].isString()) + { + ChipLogError(NotSpecified, "AllClusters App: Invalid JSON command received: command name is missing"); + return nullptr; + } + + return Platform::New(std::move(value)); +} + +void LightingAppCommandHandler::HandleCommand(intptr_t context) +{ + auto * self = reinterpret_cast(context); + std::string name = self->mJsonValue["Name"].asString(); + + VerifyOrExit(!self->mJsonValue.empty(), ChipLogError(NotSpecified, "Invalid JSON event command received")); + + if (name == "SoftwareFault") + { + self->OnSoftwareFaultEventHandler(Clusters::SoftwareDiagnostics::Events::SoftwareFault::Id); + } + else if (name == "HardwareFaultChange") + { + self->OnGeneralFaultEventHandler(Clusters::GeneralDiagnostics::Events::HardwareFaultChange::Id); + } + else if (name == "RadioFaultChange") + { + self->OnGeneralFaultEventHandler(Clusters::GeneralDiagnostics::Events::RadioFaultChange::Id); + } + else if (name == "NetworkFaultChange") + { + self->OnGeneralFaultEventHandler(Clusters::GeneralDiagnostics::Events::NetworkFaultChange::Id); + } + else if (name == "SwitchLatched") + { + uint8_t newPosition = static_cast(self->mJsonValue["NewPosition"].asUInt()); + self->OnSwitchLatchedHandler(newPosition); + } + else if (name == "InitialPress") + { + uint8_t newPosition = static_cast(self->mJsonValue["NewPosition"].asUInt()); + self->OnSwitchInitialPressedHandler(newPosition); + } + else if (name == "LongPress") + { + uint8_t newPosition = static_cast(self->mJsonValue["NewPosition"].asUInt()); + self->OnSwitchLongPressedHandler(newPosition); + } + else if (name == "ShortRelease") + { + uint8_t previousPosition = static_cast(self->mJsonValue["PreviousPosition"].asUInt()); + self->OnSwitchShortReleasedHandler(previousPosition); + } + else if (name == "LongRelease") + { + uint8_t previousPosition = static_cast(self->mJsonValue["PreviousPosition"].asUInt()); + self->OnSwitchLongReleasedHandler(previousPosition); + } + else if (name == "MultiPressOngoing") + { + uint8_t newPosition = static_cast(self->mJsonValue["NewPosition"].asUInt()); + uint8_t count = static_cast(self->mJsonValue["CurrentNumberOfPressesCounted"].asUInt()); + self->OnSwitchMultiPressOngoingHandler(newPosition, count); + } + else if (name == "MultiPressComplete") + { + uint8_t previousPosition = static_cast(self->mJsonValue["PreviousPosition"].asUInt()); + uint8_t count = static_cast(self->mJsonValue["TotalNumberOfPressesCounted"].asUInt()); + self->OnSwitchMultiPressCompleteHandler(previousPosition, count); + } + else if (name == "PowerOnReboot") + { + self->OnRebootSignalHandler(BootReasonType::kPowerOnReboot); + } + else if (name == "BrownOutReset") + { + self->OnRebootSignalHandler(BootReasonType::kBrownOutReset); + } + else if (name == "SoftwareWatchdogReset") + { + self->OnRebootSignalHandler(BootReasonType::kSoftwareWatchdogReset); + } + else if (name == "HardwareWatchdogReset") + { + self->OnRebootSignalHandler(BootReasonType::kHardwareWatchdogReset); + } + else if (name == "SoftwareUpdateCompleted") + { + self->OnRebootSignalHandler(BootReasonType::kSoftwareUpdateCompleted); + } + else if (name == "SoftwareReset") + { + self->OnRebootSignalHandler(BootReasonType::kSoftwareReset); + } + else + { + ChipLogError(NotSpecified, "Unhandled command: Should never happens"); + } + +exit: + Platform::Delete(self); +} + +bool LightingAppCommandHandler::IsClusterPresentOnAnyEndpoint(ClusterId clusterId) +{ + EnabledEndpointsWithServerCluster enabledEndpoints(clusterId); + + return (enabledEndpoints.begin() != enabledEndpoints.end()); +} + +void LightingAppCommandHandler::OnRebootSignalHandler(BootReasonType bootReason) +{ + if (ConfigurationMgr().StoreBootReason(static_cast(bootReason)) == CHIP_NO_ERROR) + { + Server::GetInstance().GenerateShutDownEvent(); + PlatformMgr().ScheduleWork([](intptr_t) { PlatformMgr().StopEventLoopTask(); }); + } + else + { + ChipLogError(NotSpecified, "Failed to store boot reason:%d", static_cast(bootReason)); + } +} + +void LightingAppCommandHandler::OnGeneralFaultEventHandler(uint32_t eventId) +{ + if (!IsClusterPresentOnAnyEndpoint(Clusters::GeneralDiagnostics::Id)) + return; + + if (eventId == Clusters::GeneralDiagnostics::Events::HardwareFaultChange::Id) + { + GeneralFaults previous; + GeneralFaults current; + + using GeneralDiagnostics::HardwareFaultEnum; + + // On Linux Simulation, set following hardware faults statically. + ReturnOnFailure(previous.add(to_underlying(HardwareFaultEnum::kRadio))); + ReturnOnFailure(previous.add(to_underlying(HardwareFaultEnum::kPowerSource))); + + ReturnOnFailure(current.add(to_underlying(HardwareFaultEnum::kRadio))); + ReturnOnFailure(current.add(to_underlying(HardwareFaultEnum::kSensor))); + ReturnOnFailure(current.add(to_underlying(HardwareFaultEnum::kPowerSource))); + ReturnOnFailure(current.add(to_underlying(HardwareFaultEnum::kUserInterfaceFault))); + Clusters::GeneralDiagnosticsServer::Instance().OnHardwareFaultsDetect(previous, current); + } + else if (eventId == Clusters::GeneralDiagnostics::Events::RadioFaultChange::Id) + { + GeneralFaults previous; + GeneralFaults current; + + // On Linux Simulation, set following radio faults statically. + ReturnOnFailure(previous.add(EMBER_ZCL_RADIO_FAULT_ENUM_WI_FI_FAULT)); + ReturnOnFailure(previous.add(EMBER_ZCL_RADIO_FAULT_ENUM_THREAD_FAULT)); + + ReturnOnFailure(current.add(EMBER_ZCL_RADIO_FAULT_ENUM_WI_FI_FAULT)); + ReturnOnFailure(current.add(EMBER_ZCL_RADIO_FAULT_ENUM_CELLULAR_FAULT)); + ReturnOnFailure(current.add(EMBER_ZCL_RADIO_FAULT_ENUM_THREAD_FAULT)); + ReturnOnFailure(current.add(EMBER_ZCL_RADIO_FAULT_ENUM_NFC_FAULT)); + Clusters::GeneralDiagnosticsServer::Instance().OnRadioFaultsDetect(previous, current); + } + else if (eventId == Clusters::GeneralDiagnostics::Events::NetworkFaultChange::Id) + { + GeneralFaults previous; + GeneralFaults current; + + // On Linux Simulation, set following radio faults statically. + ReturnOnFailure(previous.add(to_underlying(Clusters::GeneralDiagnostics::NetworkFaultEnum::kHardwareFailure))); + ReturnOnFailure(previous.add(to_underlying(Clusters::GeneralDiagnostics::NetworkFaultEnum::kNetworkJammed))); + + ReturnOnFailure(current.add(to_underlying(Clusters::GeneralDiagnostics::NetworkFaultEnum::kHardwareFailure))); + ReturnOnFailure(current.add(to_underlying(Clusters::GeneralDiagnostics::NetworkFaultEnum::kNetworkJammed))); + ReturnOnFailure(current.add(to_underlying(Clusters::GeneralDiagnostics::NetworkFaultEnum::kConnectionFailed))); + Clusters::GeneralDiagnosticsServer::Instance().OnNetworkFaultsDetect(previous, current); + } + else + { + ChipLogError(NotSpecified, "Unknow event ID:%d", eventId); + } +} + +void LightingAppCommandHandler::OnSoftwareFaultEventHandler(uint32_t eventId) +{ + VerifyOrReturn(eventId == Clusters::SoftwareDiagnostics::Events::SoftwareFault::Id, + ChipLogError(NotSpecified, "Unknown software fault event received")); + + if (!IsClusterPresentOnAnyEndpoint(Clusters::SoftwareDiagnostics::Id)) + return; + + Clusters::SoftwareDiagnostics::Events::SoftwareFault::Type softwareFault; + char threadName[kMaxThreadNameLength + 1]; + + softwareFault.id = static_cast(getpid()); + Platform::CopyString(threadName, std::to_string(softwareFault.id).c_str()); + + softwareFault.name.SetValue(CharSpan::fromCharString(threadName)); + + std::time_t result = std::time(nullptr); + // Using size of 50 as it is double the expected 25 characters "Www Mmm dd hh:mm:ss yyyy\n". + char timeChar[50]; + if (std::strftime(timeChar, sizeof(timeChar), "%c", std::localtime(&result))) + { + softwareFault.faultRecording.SetValue(ByteSpan(Uint8::from_const_char(timeChar), strlen(timeChar))); + } + + Clusters::SoftwareDiagnosticsServer::Instance().OnSoftwareFaultDetect(softwareFault); +} + +void LightingAppCommandHandler::OnSwitchLatchedHandler(uint8_t newPosition) +{ + EndpointId endpoint = 0; + + EmberAfStatus status = Switch::Attributes::CurrentPosition::Set(endpoint, newPosition); + VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, ChipLogError(NotSpecified, "Failed to set CurrentPosition attribute")); + ChipLogDetail(NotSpecified, "The latching switch is moved to a new position:%d", newPosition); + + Clusters::SwitchServer::Instance().OnSwitchLatch(endpoint, newPosition); +} + +void LightingAppCommandHandler::OnSwitchInitialPressedHandler(uint8_t newPosition) +{ + EndpointId endpoint = 0; + + EmberAfStatus status = Switch::Attributes::CurrentPosition::Set(endpoint, newPosition); + VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, ChipLogError(NotSpecified, "Failed to set CurrentPosition attribute")); + ChipLogDetail(NotSpecified, "The new position when the momentary switch starts to be pressed:%d", newPosition); + + Clusters::SwitchServer::Instance().OnInitialPress(endpoint, newPosition); +} + +void LightingAppCommandHandler::OnSwitchLongPressedHandler(uint8_t newPosition) +{ + EndpointId endpoint = 0; + + EmberAfStatus status = Switch::Attributes::CurrentPosition::Set(endpoint, newPosition); + VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, ChipLogError(NotSpecified, "Failed to set CurrentPosition attribute")); + ChipLogDetail(NotSpecified, "The new position when the momentary switch has been pressed for a long time:%d", newPosition); + + Clusters::SwitchServer::Instance().OnLongPress(endpoint, newPosition); +} + +void LightingAppCommandHandler::OnSwitchShortReleasedHandler(uint8_t previousPosition) +{ + EndpointId endpoint = 0; + + EmberAfStatus status = Switch::Attributes::CurrentPosition::Set(endpoint, 0); + VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, ChipLogError(NotSpecified, "Failed to reset CurrentPosition attribute")); + ChipLogDetail(NotSpecified, "The the previous value of the CurrentPosition when the momentary switch has been released:%d", + previousPosition); + + Clusters::SwitchServer::Instance().OnShortRelease(endpoint, previousPosition); +} + +void LightingAppCommandHandler::OnSwitchLongReleasedHandler(uint8_t previousPosition) +{ + EndpointId endpoint = 0; + + EmberAfStatus status = Switch::Attributes::CurrentPosition::Set(endpoint, 0); + VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, ChipLogError(NotSpecified, "Failed to reset CurrentPosition attribute")); + ChipLogDetail(NotSpecified, + "The the previous value of the CurrentPosition when the momentary switch has been released after having been " + "pressed for a long time:%d", + previousPosition); + + Clusters::SwitchServer::Instance().OnLongRelease(endpoint, previousPosition); +} + +void LightingAppCommandHandler::OnSwitchMultiPressOngoingHandler(uint8_t newPosition, uint8_t count) +{ + EndpointId endpoint = 0; + + EmberAfStatus status = Switch::Attributes::CurrentPosition::Set(endpoint, newPosition); + VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, ChipLogError(NotSpecified, "Failed to set CurrentPosition attribute")); + ChipLogDetail(NotSpecified, "The new position when the momentary switch has been pressed in a multi-press sequence:%d", + newPosition); + ChipLogDetail(NotSpecified, "%d times the momentary switch has been pressed", count); + + Clusters::SwitchServer::Instance().OnMultiPressOngoing(endpoint, newPosition, count); +} + +void LightingAppCommandHandler::OnSwitchMultiPressCompleteHandler(uint8_t previousPosition, uint8_t count) +{ + EndpointId endpoint = 0; + + EmberAfStatus status = Switch::Attributes::CurrentPosition::Set(endpoint, 0); + VerifyOrReturn(EMBER_ZCL_STATUS_SUCCESS == status, ChipLogError(NotSpecified, "Failed to reset CurrentPosition attribute")); + ChipLogDetail(NotSpecified, "The previous position when the momentary switch has been pressed in a multi-press sequence:%d", + previousPosition); + ChipLogDetail(NotSpecified, "%d times the momentary switch has been pressed", count); + + Clusters::SwitchServer::Instance().OnMultiPressComplete(endpoint, previousPosition, count); +} + +void LightingAppCommandDelegate::OnEventCommandReceived(const char * json) +{ + auto handler = LightingAppCommandHandler::FromJSON(json); + if (nullptr == handler) + { + ChipLogError(NotSpecified, "AllClusters App: Unable to instantiate a command handler"); + return; + } + + chip::DeviceLayer::PlatformMgr().ScheduleWork(LightingAppCommandHandler::HandleCommand, reinterpret_cast(handler)); +} diff --git a/examples/lighting-app/linux/LightingAppCommandDelegate.h b/examples/lighting-app/linux/LightingAppCommandDelegate.h new file mode 100644 index 00000000000000..6cbf83d7cdaa1f --- /dev/null +++ b/examples/lighting-app/linux/LightingAppCommandDelegate.h @@ -0,0 +1,97 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include "NamedPipeCommands.h" + +#include +#include + +class LightingAppCommandHandler +{ +public: + static LightingAppCommandHandler * FromJSON(const char * json); + + static void HandleCommand(intptr_t context); + + LightingAppCommandHandler(Json::Value && jasonValue) : mJsonValue(std::move(jasonValue)) {} + +private: + Json::Value mJsonValue; + + bool IsClusterPresentOnAnyEndpoint(chip::ClusterId clusterId); + + /** + * Should be called when a reason that caused the device to start-up has been set. + */ + void OnRebootSignalHandler(chip::DeviceLayer::BootReasonType bootReason); + + /** + * Should be called when a general fault takes place on the Node. + */ + void OnGeneralFaultEventHandler(uint32_t eventId); + + /** + * Should be called when a software fault takes place on the Node. + */ + void OnSoftwareFaultEventHandler(uint32_t eventId); + + /** + * Should be called when the latching switch is moved to a new position. + */ + void OnSwitchLatchedHandler(uint8_t newPosition); + + /** + * Should be called when the momentary switch starts to be pressed. + */ + void OnSwitchInitialPressedHandler(uint8_t newPosition); + + /** + * Should be called when the momentary switch has been pressed for a "long" time. + */ + void OnSwitchLongPressedHandler(uint8_t newPosition); + + /** + * Should be called when the momentary switch has been released. + */ + void OnSwitchShortReleasedHandler(uint8_t previousPosition); + + /** + * Should be called when the momentary switch has been released after having been pressed for a long time. + */ + void OnSwitchLongReleasedHandler(uint8_t previousPosition); + + /** + * Should be called to indicate how many times the momentary switch has been pressed in a multi-press + * sequence, during that sequence. + */ + void OnSwitchMultiPressOngoingHandler(uint8_t newPosition, uint8_t count); + + /** + * Should be called to indicate how many times the momentary switch has been pressed in a multi-press + * sequence, after it has been detected that the sequence has ended. + */ + void OnSwitchMultiPressCompleteHandler(uint8_t previousPosition, uint8_t count); +}; + +class LightingAppCommandDelegate : public NamedPipeCommandDelegate +{ +public: + void OnEventCommandReceived(const char * json) override; +}; diff --git a/examples/lighting-app/linux/README.md b/examples/lighting-app/linux/README.md index f41a351da1bebb..ff2c9b1bf50611 100644 --- a/examples/lighting-app/linux/README.md +++ b/examples/lighting-app/linux/README.md @@ -143,3 +143,115 @@ Obtain tracing json file. $ ./{PIGWEED_REPO}/pw_trace_tokenized/py/pw_trace_tokenized/get_trace.py -s localhost:33000 \ -o {OUTPUT_FILE} -t {ELF_FILE} {PIGWEED_REPO}/pw_trace_tokenized/pw_trace_protos/trace_rpc.proto ``` + +## Trigger event using lighting-app event named pipe + +You can send a command to lighting-app to trigger specific event via +lighting-app event named pipe /tmp/chip_lighting_fifo-. + +### Trigger `SoftwareFault` events + +1. Generate event `SoftwareFault` when a software fault takes place on the Node. + +``` +$ echo '{"Name":"SoftwareFault"}' > /tmp/chip_lighting_fifo- +``` + +### Trigger `HardwareFault` events + +1. Generate event `HardwareFaultChange` to indicate a change in the set of + hardware faults currently detected by the Node. + +``` +$ echo '{"Name":"HardwareFaultChange"}' > /tmp/chip_lighting_fifo- +``` + +2. Generate event `RadioFaultChange` to indicate a change in the set of radio + faults currently detected by the Node. + +``` +$ echo '{"Name":"RadioFaultChange"}' > /tmp/chip_lighting_fifo- +``` + +3. Generate event `NetworkFaultChange` to indicate a change in the set of + network faults currently detected by the Node. + +``` +$ echo '{"Name":"NetworkFaultChange"}' > /tmp/chip_lighting_fifo- +``` + +4. Generate event `BootReason` to indicate the reason that caused the device to + start-up, from the following set of `BootReasons`. + +- `PowerOnReboot` The Node has booted as the result of physical interaction + with the device resulting in a reboot. + +- `BrownOutReset` The Node has rebooted as the result of a brown-out of the + Node’s power supply. + +- `SoftwareWatchdogReset` The Node has rebooted as the result of a software + watchdog timer. + +- `HardwareWatchdogReset` The Node has rebooted as the result of a hardware + watchdog timer. + +- `SoftwareUpdateCompleted` The Node has rebooted as the result of a completed + software update. + +- `SoftwareReset` The Node has rebooted as the result of a software initiated + reboot. + +``` +$ echo '{"Name":""}' > /tmp/chip_lighting_fifo- +``` + +### Trigger Switch events + +1. Generate event `SwitchLatched`, when the latching switch is moved to a new + position. + +``` +$ echo '{"Name":"SwitchLatched","NewPosition":3}' > /tmp/chip_lighting_fifo- +``` + +2. Generate event `InitialPress`, when the momentary switch starts to be + pressed. + +``` +$ echo '{"Name":"InitialPress","NewPosition":3}' > /tmp/chip_lighting_fifo- +``` + +3. Generate event `LongPress`, when the momentary switch has been pressed for a + "long" time. + +``` +$ echo '{"Name":"LongPress","NewPosition":3}' > /tmp/chip_lighting_fifo- +``` + +4. Generate event `ShortRelease`, when the momentary switch has been released. + +``` +$ echo '{"Name":"ShortRelease","PreviousPosition":3}' > /tmp/chip_lighting_fifo- +``` + +5. Generate event `LongRelease` when the momentary switch has been released and + after having been pressed for a long time. + +``` +$ echo '{"Name":"LongRelease","PreviousPosition":3}' > /tmp/chip_lighting_fifo- +``` + +6. Generate event `MultiPressOngoing` to indicate how many times the momentary + switch has been pressed in a multi-press sequence, during that sequence. + +``` +$ echo '{"Name":"MultiPressOngoing","NewPosition":3,"CurrentNumberOfPressesCounted":4}' > /tmp/chip_lighting_fifo- +``` + +7. Generate event `MultiPressComplete` to indicate how many times the momentary + switch has been pressed in a multi-press sequence, after it has been detected + that the sequence has ended. + +``` +$ echo '{"Name":"MultiPressComplete","PreviousPosition":3,"TotalNumberOfPressesCounted":2}' > /tmp/chip_lighting_fifo- +``` diff --git a/examples/lighting-app/linux/main.cpp b/examples/lighting-app/linux/main.cpp index 00e94b2c1d413e..5689a0cd68979c 100644 --- a/examples/lighting-app/linux/main.cpp +++ b/examples/lighting-app/linux/main.cpp @@ -16,6 +16,7 @@ * limitations under the License. */ +#include "LightingAppCommandDelegate.h" #include "LightingManager.h" #include @@ -37,6 +38,13 @@ using namespace chip; using namespace chip::app; using namespace chip::app::Clusters; +namespace { + +constexpr const char kChipEventFifoPathPrefix[] = "/tmp/chip_lighting_fifo_"; +NamedPipeCommands sChipNamedPipeCommands; +LightingAppCommandDelegate sLightingAppCommandDelegate; +} // namespace + void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, uint8_t * value) { @@ -66,7 +74,24 @@ void emberAfOnOffClusterInitCallback(EndpointId endpoint) // TODO: implement any additional Cluster Server init actions } -void ApplicationInit() {} +void ApplicationInit() +{ + std::string path = kChipEventFifoPathPrefix + std::to_string(getpid()); + + if (sChipNamedPipeCommands.Start(path, &sLightingAppCommandDelegate) != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Failed to start CHIP NamedPipeCommands"); + sChipNamedPipeCommands.Stop(); + } +} + +void ApplicationExit() +{ + if (sChipNamedPipeCommands.Stop() != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Failed to stop CHIP NamedPipeCommands"); + } +} int main(int argc, char * argv[]) { From c1ec2d777456924dcaa59b53351b00d73caf378f Mon Sep 17 00:00:00 2001 From: Jeff Tung <100387939+jtung-apple@users.noreply.github.com> Date: Sat, 22 Jul 2023 10:33:06 -0700 Subject: [PATCH 26/39] [ICD] Subscription resumption after timeout (#27956) * Subscription timeout resumption * Added unit test for ComputeTimeTillNextSubscriptionResumption() and addressed review comments * Added ifdef conditional around new unit test and fixed up new code ifdefs * Corrected chip_subscription_timeout_resumption = chip_persist_subscriptions by default * Address review comments --- src/app/BUILD.gn | 1 + src/app/InteractionModelEngine.cpp | 79 ++++++++++++++++++++ src/app/InteractionModelEngine.h | 8 ++ src/app/ReadHandler.cpp | 1 - src/app/tests/TestInteractionModelEngine.cpp | 37 +++++++++ src/lib/core/CHIPConfig.h | 61 ++++++++++++++- src/platform/device.gni | 5 ++ 7 files changed, 190 insertions(+), 2 deletions(-) diff --git a/src/app/BUILD.gn b/src/app/BUILD.gn index 7686195cb7b956..aade1882cb5f5a 100644 --- a/src/app/BUILD.gn +++ b/src/app/BUILD.gn @@ -55,6 +55,7 @@ buildconfig_header("app_buildconfig") { "CHIP_CONFIG_ENABLE_SESSION_RESUMPTION=${chip_enable_session_resumption}", "CHIP_CONFIG_ACCESS_CONTROL_POLICY_LOGGING_VERBOSITY=${chip_access_control_policy_logging_verbosity}", "CHIP_CONFIG_PERSIST_SUBSCRIPTIONS=${chip_persist_subscriptions}", + "CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION=${chip_subscription_timeout_resumption}", "CHIP_CONFIG_ENABLE_EVENTLIST_ATTRIBUTE=${enable_eventlist_attribute}", "CHIP_CONFIG_ENABLE_ICD_SERVER=${chip_enable_icd_server}", ] diff --git a/src/app/InteractionModelEngine.cpp b/src/app/InteractionModelEngine.cpp index 6c32952135c902..569d0b0fdf4a4e 100644 --- a/src/app/InteractionModelEngine.cpp +++ b/src/app/InteractionModelEngine.cpp @@ -34,6 +34,7 @@ #include #include #include +#include namespace chip { namespace app { @@ -324,6 +325,17 @@ void InteractionModelEngine::OnDone(ReadHandler & apReadObj) mReportingEngine.ResetReadHandlerTracker(&apReadObj); mReadHandlers.ReleaseObject(&apReadObj); + +#if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + if (!mSubscriptionResumptionScheduled && HasSubscriptionsToResume()) + { + mSubscriptionResumptionScheduled = true; + auto timeTillNextResubscriptionSecs = ComputeTimeSecondsTillNextSubscriptionResumption(); + mpExchangeMgr->GetSessionManager()->SystemLayer()->StartTimer(System::Clock::Seconds32(timeTillNextResubscriptionSecs), + ResumeSubscriptionsTimerCallback, this); + mNumSubscriptionResumptionRetries++; + } +#endif // CHIP_CONFIG_PERSIST_SUBSCRIPTIONS } Status InteractionModelEngine::OnInvokeCommandRequest(Messaging::ExchangeContext * apExchangeContext, @@ -1752,6 +1764,9 @@ CHIP_ERROR InteractionModelEngine::ResumeSubscriptions() { #if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS ReturnErrorCodeIf(!mpSubscriptionResumptionStorage, CHIP_NO_ERROR); +#if CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + ReturnErrorCodeIf(mSubscriptionResumptionScheduled, CHIP_NO_ERROR); +#endif // To avoid the case of a reboot loop causing rapid traffic generation / power consumption, subscription resumption should make // use of the persisted min-interval values, and wait before resumption. Ideally, each persisted subscription should wait their @@ -1776,6 +1791,9 @@ CHIP_ERROR InteractionModelEngine::ResumeSubscriptions() if (subscriptionsToResume) { +#if CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + mSubscriptionResumptionScheduled = true; +#endif ChipLogProgress(InteractionModel, "Resuming %d subscriptions in %u seconds", subscriptionsToResume, minInterval); ReturnErrorOnFailure(mpExchangeMgr->GetSessionManager()->SystemLayer()->StartTimer(System::Clock::Seconds16(minInterval), ResumeSubscriptionsTimerCallback, this)); @@ -1794,6 +1812,10 @@ void InteractionModelEngine::ResumeSubscriptionsTimerCallback(System::Layer * ap #if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS VerifyOrReturn(apAppState != nullptr); InteractionModelEngine * imEngine = static_cast(apAppState); +#if CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + imEngine->mSubscriptionResumptionScheduled = false; + bool resumedSubscriptions = false; +#endif // CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION SubscriptionResumptionStorage::SubscriptionInfo subscriptionInfo; auto * iterator = imEngine->mpSubscriptionResumptionStorage->IterateSubscriptions(); while (iterator->Next(subscriptionInfo)) @@ -1833,10 +1855,67 @@ void InteractionModelEngine::ResumeSubscriptionsTimerCallback(System::Layer * ap ChipLogProgress(InteractionModel, "Resuming subscriptionId %" PRIu32, subscriptionInfo.mSubscriptionId); handler->ResumeSubscription(*imEngine->mpCASESessionMgr, subscriptionInfo); +#if CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + resumedSubscriptions = true; +#endif // CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION } iterator->Release(); + +#if CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + // If no persisted subscriptions needed resumption then all resumption retries are done + if (!resumedSubscriptions) + { + imEngine->mNumSubscriptionResumptionRetries = 0; + } +#endif // CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + #endif // CHIP_CONFIG_PERSIST_SUBSCRIPTIONS } +#if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION +uint32_t InteractionModelEngine::ComputeTimeSecondsTillNextSubscriptionResumption() +{ + if (mNumSubscriptionResumptionRetries > CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_FIBONACCI_STEP_INDEX) + { + return CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_RETRY_INTERVAL_SECS; + } + + return CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MIN_RETRY_INTERVAL_SECS + + GetFibonacciForIndex(mNumSubscriptionResumptionRetries) * + CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_WAIT_TIME_MULTIPLIER_SECS; +} + +bool InteractionModelEngine::HasSubscriptionsToResume() +{ + VerifyOrReturnValue(mpSubscriptionResumptionStorage != nullptr, false); + + // Look through persisted subscriptions and see if any aren't already in mReadHandlers pool + SubscriptionResumptionStorage::SubscriptionInfo subscriptionInfo; + auto * iterator = mpSubscriptionResumptionStorage->IterateSubscriptions(); + bool foundSubscriptionToResume = false; + while (iterator->Next(subscriptionInfo)) + { + if (Loop::Break == mReadHandlers.ForEachActiveObject([&](ReadHandler * handler) { + SubscriptionId subscriptionId; + handler->GetSubscriptionId(subscriptionId); + if (subscriptionId == subscriptionInfo.mSubscriptionId) + { + return Loop::Break; + } + return Loop::Continue; + })) + { + continue; + } + + foundSubscriptionToResume = true; + break; + } + iterator->Release(); + + return foundSubscriptionToResume; +} +#endif // CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + } // namespace app } // namespace chip diff --git a/src/app/InteractionModelEngine.h b/src/app/InteractionModelEngine.h index b7de62e16ff0be..9e6ed36cce2396 100644 --- a/src/app/InteractionModelEngine.h +++ b/src/app/InteractionModelEngine.h @@ -366,6 +366,7 @@ class InteractionModelEngine : public Messaging::UnsolicitedMessageHandler, private: friend class reporting::Engine; friend class TestCommandInteraction; + friend class TestInteractionModelEngine; using Status = Protocols::InteractionModel::Status; void OnDone(CommandHandler & apCommandObj) override; @@ -613,6 +614,13 @@ class InteractionModelEngine : public Messaging::UnsolicitedMessageHandler, bool mForceHandlerQuota = false; #endif +#if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + bool HasSubscriptionsToResume(); + uint32_t ComputeTimeSecondsTillNextSubscriptionResumption(); + uint32_t mNumSubscriptionResumptionRetries = 0; + bool mSubscriptionResumptionScheduled = false; +#endif + FabricTable * mpFabricTable; CASESessionManager * mpCASESessionMgr = nullptr; diff --git a/src/app/ReadHandler.cpp b/src/app/ReadHandler.cpp index 1328559a85ac64..bbaf9f7992eb30 100644 --- a/src/app/ReadHandler.cpp +++ b/src/app/ReadHandler.cpp @@ -425,7 +425,6 @@ void ReadHandler::OnResponseTimeout(Messaging::ExchangeContext * apExchangeConte ChipLogError(DataManagement, "Time out! failed to receive status response from Exchange: " ChipLogFormatExchange, ChipLogValueExchange(apExchangeContext)); #if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS - // TODO: Have a retry mechanism tied to wake interval for IC devices Close(CloseOptions::kKeepPersistedSubscription); #else Close(); diff --git a/src/app/tests/TestInteractionModelEngine.cpp b/src/app/tests/TestInteractionModelEngine.cpp index a7ebc2b49320fd..6fc5b1da27dcbe 100644 --- a/src/app/tests/TestInteractionModelEngine.cpp +++ b/src/app/tests/TestInteractionModelEngine.cpp @@ -48,6 +48,9 @@ class TestInteractionModelEngine public: static void TestAttributePathParamsPushRelease(nlTestSuite * apSuite, void * apContext); static void TestRemoveDuplicateConcreteAttribute(nlTestSuite * apSuite, void * apContext); +#if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + static void TestSubscriptionResumptionTimer(nlTestSuite * apSuite, void * apContext); +#endif // CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION static int GetAttributePathListLength(ObjectList * apattributePathParamsList); }; @@ -223,6 +226,37 @@ void TestInteractionModelEngine::TestRemoveDuplicateConcreteAttribute(nlTestSuit InteractionModelEngine::GetInstance()->ReleaseAttributePathList(attributePathParamsList); } +#if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION +void TestInteractionModelEngine::TestSubscriptionResumptionTimer(nlTestSuite * apSuite, void * apContext) +{ + TestContext & ctx = *static_cast(apContext); + CHIP_ERROR err = CHIP_NO_ERROR; + err = InteractionModelEngine::GetInstance()->Init(&ctx.GetExchangeManager(), &ctx.GetFabricTable()); + NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR); + + uint32_t timeTillNextResubscriptionMs; + InteractionModelEngine::GetInstance()->mNumSubscriptionResumptionRetries = 0; + timeTillNextResubscriptionMs = InteractionModelEngine::GetInstance()->ComputeTimeSecondsTillNextSubscriptionResumption(); + NL_TEST_ASSERT(apSuite, timeTillNextResubscriptionMs == CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MIN_RETRY_INTERVAL_SECS); + + uint32_t lastTimeTillNextResubscriptionMs = timeTillNextResubscriptionMs; + for (InteractionModelEngine::GetInstance()->mNumSubscriptionResumptionRetries = 1; + InteractionModelEngine::GetInstance()->mNumSubscriptionResumptionRetries <= + CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_FIBONACCI_STEP_INDEX; + InteractionModelEngine::GetInstance()->mNumSubscriptionResumptionRetries++) + { + timeTillNextResubscriptionMs = InteractionModelEngine::GetInstance()->ComputeTimeSecondsTillNextSubscriptionResumption(); + NL_TEST_ASSERT(apSuite, timeTillNextResubscriptionMs >= lastTimeTillNextResubscriptionMs); + NL_TEST_ASSERT(apSuite, timeTillNextResubscriptionMs < CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_RETRY_INTERVAL_SECS); + lastTimeTillNextResubscriptionMs = timeTillNextResubscriptionMs; + } + + InteractionModelEngine::GetInstance()->mNumSubscriptionResumptionRetries = 2000; + timeTillNextResubscriptionMs = InteractionModelEngine::GetInstance()->ComputeTimeSecondsTillNextSubscriptionResumption(); + NL_TEST_ASSERT(apSuite, timeTillNextResubscriptionMs == CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_RETRY_INTERVAL_SECS); +} +#endif // CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + } // namespace app } // namespace chip @@ -233,6 +267,9 @@ const nlTest sTests[] = { NL_TEST_DEF("TestAttributePathParamsPushRelease", chip::app::TestInteractionModelEngine::TestAttributePathParamsPushRelease), NL_TEST_DEF("TestRemoveDuplicateConcreteAttribute", chip::app::TestInteractionModelEngine::TestRemoveDuplicateConcreteAttribute), +#if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION + NL_TEST_DEF("TestSubscriptionResumptionTimer", chip::app::TestInteractionModelEngine::TestSubscriptionResumptionTimer), +#endif // CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION NL_TEST_SENTINEL() }; // clang-format on diff --git a/src/lib/core/CHIPConfig.h b/src/lib/core/CHIPConfig.h index 9ec11778f615c5..f83951ba3775c7 100644 --- a/src/lib/core/CHIPConfig.h +++ b/src/lib/core/CHIPConfig.h @@ -902,6 +902,10 @@ extern const char CHIP_NON_PRODUCTION_MARKER[]; #define CHIP_IM_MAX_NUM_TIMED_HANDLER 8 #endif +/** + * @} + */ + /** * @def CONFIG_BUILD_FOR_HOST_UNIT_TEST * @@ -1497,5 +1501,60 @@ extern const char CHIP_NON_PRODUCTION_MARKER[]; #endif /** - * @} + * @name Configuation for resuming subscriptions that timed out + * + * @brief + * The following definitions sets the parameters for subscription resumption in the case of subscription timeout. + * * #CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_FIBONACCI_STEP_INDEX + * * #CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MIN_RETRY_INTERVAL_SECS + * * #CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_WAIT_TIME_MULTIPLIER_SECS + * * #CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_RETRY_INTERVAL_SECS + * + * @{ + */ + +/** + * @def CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_FIBONACCI_STEP_INDEX + * + * @brief + * If subscription timeout resumption is enabled, specify the max fibonacci step index. + * + * This index must satisfy below conditions (for readability "CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_" prefix is omitted): + * * MIN_RETRY_INTERVAL_SECS + Fibonacci(MAX_FIBONACCI_STEP_INDEX + 1) * WAIT_TIME_MULTIPLIER_SECS > MAX_RETRY_INTERVAL_SECS + * * MIN_RETRY_INTERVAL_SECS + Fibonacci(MAX_FIBONACCI_STEP_INDEX) * WAIT_TIME_MULTIPLIER_SECS < MAX_RETRY_INTERVAL_SECS + * + */ +#ifndef CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_FIBONACCI_STEP_INDEX +#define CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_FIBONACCI_STEP_INDEX 10 +#endif // CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_FIBONACCI_STEP_INDEX + +/** + * @def CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MIN_RETRY_INTERVAL_SECS + * + * @brief The minimum interval before resuming a subsciption that timed out. + */ +#ifndef CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MIN_RETRY_INTERVAL_SECS +#define CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MIN_RETRY_INTERVAL_SECS 300 +#endif // CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MIN_RETRY_INTERVAL_SECS + +/** + * @def CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_WAIT_TIME_MULTIPLIER_SECS + * + * @brief The multiplier per step in the calculation of retry interval. + */ +#ifndef CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_WAIT_TIME_MULTIPLIER_SECS +#define CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_WAIT_TIME_MULTIPLIER_SECS 300 +#endif // CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_WAIT_TIME_MULTIPLIER_SECS + +/** + * @def CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_RETRY_INTERVAL_SECS + * + * @brief The maximum interval before resuming a subsciption that timed out. + */ +#ifndef CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_RETRY_INTERVAL_SECS +#define CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_RETRY_INTERVAL_SECS (3600 * 6) +#endif // CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION_MAX_RETRY_INTERVAL_SECS + +/** + * @} */ diff --git a/src/platform/device.gni b/src/platform/device.gni index ecf01173dbeb05..b70b576644318e 100644 --- a/src/platform/device.gni +++ b/src/platform/device.gni @@ -111,6 +111,11 @@ declare_args() { } } +declare_args() { + # Enable subscription resumption after timeout - separate configuration for power use measurement + chip_subscription_timeout_resumption = chip_persist_subscriptions +} + if (chip_device_platform == "bl702" || chip_device_platform == "bl702l") { if (chip_enable_openthread) { chip_mdns = "platform" From a5e396a04e0ec7e85a61b69e0836c245af96fd39 Mon Sep 17 00:00:00 2001 From: Marcin Kajor <98948394+markaj-nordic@users.noreply.github.com> Date: Mon, 24 Jul 2023 11:13:16 +0200 Subject: [PATCH 27/39] [door-lock] extend the OnFabricRemoved delegate with custom callback (#27965) Signed-off-by: Marcin Kajor --- .../door-lock-server/door-lock-server.cpp | 12 +++++++++--- .../door-lock-server/door-lock-server.h | 17 ++++++++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/app/clusters/door-lock-server/door-lock-server.cpp b/src/app/clusters/door-lock-server/door-lock-server.cpp index 407afc0af5f001..ad201e78cf7d2f 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.cpp +++ b/src/app/clusters/door-lock-server/door-lock-server.cpp @@ -1353,12 +1353,13 @@ bool DoorLockServer::OnFabricRemoved(chip::EndpointId endpointId, chip::FabricIn ChipLogProgress(Zcl, "[OnFabricRemoved] Handling a fabric removal from the door lock server [endpointId=%d,fabricIndex=%d]", endpointId, fabricIndex); + bool status{ true }; // Iterate over all the users and clean up the deleted fabric if (!clearFabricFromUsers(endpointId, fabricIndex)) { ChipLogError(Zcl, "[OnFabricRemoved] Unable to cleanup fabric from users - internal error [endpointId=%d,fabricIndex=%d]", endpointId, fabricIndex); - return false; + status = false; } // Iterate over all the credentials and clean up the fabrics @@ -1367,10 +1368,15 @@ bool DoorLockServer::OnFabricRemoved(chip::EndpointId endpointId, chip::FabricIn ChipLogError(Zcl, "[OnFabricRemoved] Unable to cleanup fabric from credentials - internal error [endpointId=%d,fabricIndex=%d]", endpointId, fabricIndex); - return false; + status = false; } - return true; + if (mOnFabricRemovedCustomCallback) + { + mOnFabricRemovedCustomCallback(endpointId, fabricIndex); + } + + return status; } /********************************************************** diff --git a/src/app/clusters/door-lock-server/door-lock-server.h b/src/app/clusters/door-lock-server/door-lock-server.h index 72492843bb1b44..212c374077298f 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.h +++ b/src/app/clusters/door-lock-server/door-lock-server.h @@ -93,7 +93,8 @@ class DoorLockServer public: static DoorLockServer & Instance(); - using Feature = chip::app::Clusters::DoorLock::Feature; + using Feature = chip::app::Clusters::DoorLock::Feature; + using OnFabricRemovedCustomCallback = void (*)(chip::EndpointId endpointId, chip::FabricIndex fabricIndex); void InitServer(chip::EndpointId endpointId); @@ -202,6 +203,18 @@ class DoorLockServer inline bool SupportsUnbolt(chip::EndpointId endpointId) { return GetFeatures(endpointId).Has(Feature::kUnbolt); } + /** + * @brief Allows the application to register a custom callback which will be called after the default DoorLock + * OnFabricRemoved implementation. At that point the door lock cluster has done any + * spec-required clearing of state for fabric removal. + * + * @param callback callback to be registered + */ + inline void SetOnFabricRemovedCustomCallback(OnFabricRemovedCustomCallback callback) + { + mOnFabricRemovedCustomCallback = callback; + } + bool OnFabricRemoved(chip::EndpointId endpointId, chip::FabricIndex fabricIndex); static void DoorLockOnAutoRelockCallback(chip::System::Layer *, void * callbackContext); @@ -580,6 +593,8 @@ class DoorLockServer std::array mEndpointCtx; + OnFabricRemovedCustomCallback mOnFabricRemovedCustomCallback{ nullptr }; + static DoorLockServer instance; }; From cdec02bdc7bd169ccc43c388673fda6875c7b725 Mon Sep 17 00:00:00 2001 From: Tobiasgraf <4622393+tobiasgraf@users.noreply.github.com> Date: Mon, 24 Jul 2023 13:56:36 +0200 Subject: [PATCH 28/39] Adding `resource-monitoring-instances.cpp` to all-clusters-app on non-linux platforms (#28205) * Adding `resource-monitoring-instances.cpp` to all-clusters-app on non-linux platforms * Add missing VerifyOrDie() * Apply Restyled Patch --- .../all-clusters-common/src/resource-monitoring-instances.cpp | 1 + examples/all-clusters-app/ameba/chip_main.cmake | 1 + examples/all-clusters-app/asr/BUILD.gn | 1 + examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn | 1 + examples/all-clusters-app/cc13x4_26x4/BUILD.gn | 1 + examples/all-clusters-app/infineon/psoc6/BUILD.gn | 1 + examples/all-clusters-app/mbed/CMakeLists.txt | 1 + examples/all-clusters-app/nrfconnect/CMakeLists.txt | 1 + examples/all-clusters-app/nxp/mw320/BUILD.gn | 1 + examples/all-clusters-app/openiotsdk/CMakeLists.txt | 1 + examples/all-clusters-app/telink/CMakeLists.txt | 1 + examples/all-clusters-app/tizen/BUILD.gn | 1 + 12 files changed, 12 insertions(+) diff --git a/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp b/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp index 891a7e85450b48..de7b46d26d1c1a 100644 --- a/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp +++ b/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp @@ -100,6 +100,7 @@ void emberAfActivatedCarbonFilterMonitoringClusterInitCallback(chip::EndpointId } void emberAfHepaFilterMonitoringClusterInitCallback(chip::EndpointId endpoint) { + VerifyOrDie(gHepaFilterInstance == nullptr); gHepaFilterInstance = new HepaFilterMonitoringInstance(endpoint, static_cast(gHepaFilterFeatureMap.to_ulong()), DegradationDirectionEnum::kDown, true); gHepaFilterInstance->Init(); diff --git a/examples/all-clusters-app/ameba/chip_main.cmake b/examples/all-clusters-app/ameba/chip_main.cmake index a9d5fad68d4ebf..77bea5ccfe132f 100755 --- a/examples/all-clusters-app/ameba/chip_main.cmake +++ b/examples/all-clusters-app/ameba/chip_main.cmake @@ -155,6 +155,7 @@ list( ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp + ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp diff --git a/examples/all-clusters-app/asr/BUILD.gn b/examples/all-clusters-app/asr/BUILD.gn index 9cbee21ac1d0b0..f4c34a8a1295f9 100755 --- a/examples/all-clusters-app/asr/BUILD.gn +++ b/examples/all-clusters-app/asr/BUILD.gn @@ -73,6 +73,7 @@ asr_executable("clusters_app") { sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn b/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn index e0b44485a753a2..722a795847065b 100644 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn +++ b/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn @@ -78,6 +78,7 @@ ti_simplelink_executable("all-clusters-app") { "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/cc13x4_26x4/BUILD.gn b/examples/all-clusters-app/cc13x4_26x4/BUILD.gn index e1e2fc683206b7..16124248efca82 100644 --- a/examples/all-clusters-app/cc13x4_26x4/BUILD.gn +++ b/examples/all-clusters-app/cc13x4_26x4/BUILD.gn @@ -78,6 +78,7 @@ ti_simplelink_executable("all-clusters-app") { "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/infineon/psoc6/BUILD.gn b/examples/all-clusters-app/infineon/psoc6/BUILD.gn index 6febaf08afdb50..ce4870f67939ef 100644 --- a/examples/all-clusters-app/infineon/psoc6/BUILD.gn +++ b/examples/all-clusters-app/infineon/psoc6/BUILD.gn @@ -109,6 +109,7 @@ psoc6_executable("clusters_app") { sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/mbed/CMakeLists.txt b/examples/all-clusters-app/mbed/CMakeLists.txt index 9c6fc1167dd49c..ae5e0ab543b215 100644 --- a/examples/all-clusters-app/mbed/CMakeLists.txt +++ b/examples/all-clusters-app/mbed/CMakeLists.txt @@ -61,6 +61,7 @@ target_sources(${APP_TARGET} PRIVATE ${MBED_COMMON}/util/DFUManager.cpp ${ALL_CLUSTERS_COMMON}/src/bridged-actions-stub.cpp ${ALL_CLUSTERS_COMMON}/src/fan-stub.cpp + ${ALL_CLUSTERS_COMMON}/src/resource-monitoring-instances.cpp ${ALL_CLUSTERS_COMMON}/src/smco-stub.cpp ${ALL_CLUSTERS_COMMON}/src/static-supported-modes-manager.cpp ${ALL_CLUSTERS_COMMON}/src/static-supported-temperature-levels.cpp diff --git a/examples/all-clusters-app/nrfconnect/CMakeLists.txt b/examples/all-clusters-app/nrfconnect/CMakeLists.txt index d1d1770d7b33ff..6fb66644ad1f50 100644 --- a/examples/all-clusters-app/nrfconnect/CMakeLists.txt +++ b/examples/all-clusters-app/nrfconnect/CMakeLists.txt @@ -63,6 +63,7 @@ target_sources(app PRIVATE ${ALL_CLUSTERS_COMMON_DIR}/src/bridged-actions-stub.cpp ${ALL_CLUSTERS_COMMON_DIR}/src/fan-stub.cpp ${ALL_CLUSTERS_COMMON_DIR}/src/binding-handler.cpp + ${ALL_CLUSTERS_COMMON_DIR}/src/resource-monitoring-instances.cpp ${NRFCONNECT_COMMON}/util/LEDWidget.cpp) chip_configure_data_model(app diff --git a/examples/all-clusters-app/nxp/mw320/BUILD.gn b/examples/all-clusters-app/nxp/mw320/BUILD.gn index 03ef9b9441b92a..ca5bd637508727 100644 --- a/examples/all-clusters-app/nxp/mw320/BUILD.gn +++ b/examples/all-clusters-app/nxp/mw320/BUILD.gn @@ -76,6 +76,7 @@ mw320_executable("shell_mw320") { sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", diff --git a/examples/all-clusters-app/openiotsdk/CMakeLists.txt b/examples/all-clusters-app/openiotsdk/CMakeLists.txt index bae84c46cd65cb..fb50580dbb6ed7 100644 --- a/examples/all-clusters-app/openiotsdk/CMakeLists.txt +++ b/examples/all-clusters-app/openiotsdk/CMakeLists.txt @@ -55,6 +55,7 @@ target_sources(${APP_TARGET} ${ALL_CLUSTERS_COMMON}/src/smco-stub.cpp ${ALL_CLUSTERS_COMMON}/src/bridged-actions-stub.cpp ${ALL_CLUSTERS_COMMON}/src/fan-stub.cpp + ${ALL_CLUSTERS_COMMON}/src/resource-monitoring-instances.cpp ${ALL_CLUSTERS_COMMON}/src/static-supported-modes-manager.cpp ${ALL_CLUSTERS_COMMON}/src/binding-handler.cpp ) diff --git a/examples/all-clusters-app/telink/CMakeLists.txt b/examples/all-clusters-app/telink/CMakeLists.txt index 71664db1938c35..723e47008c8ac5 100644 --- a/examples/all-clusters-app/telink/CMakeLists.txt +++ b/examples/all-clusters-app/telink/CMakeLists.txt @@ -77,6 +77,7 @@ target_sources(app PRIVATE ${ALL_CLUSTERS_COMMON_DIR}/src/bridged-actions-stub.cpp ${ALL_CLUSTERS_COMMON_DIR}/src/binding-handler.cpp ${ALL_CLUSTERS_COMMON_DIR}/src/fan-stub.cpp + ${ALL_CLUSTERS_COMMON_DIR}/src/resource-monitoring-instances.cpp ${TELINK_COMMON}/common/src/mainCommon.cpp ${TELINK_COMMON}/common/src/AppTaskCommon.cpp ${TELINK_COMMON}/util/src/LEDWidget.cpp diff --git a/examples/all-clusters-app/tizen/BUILD.gn b/examples/all-clusters-app/tizen/BUILD.gn index 4883363fa79917..484732400b64f1 100644 --- a/examples/all-clusters-app/tizen/BUILD.gn +++ b/examples/all-clusters-app/tizen/BUILD.gn @@ -26,6 +26,7 @@ source_set("chip-all-clusters-common") { "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-instances.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", From 689aa877b0265cc4466f8b0ec06b1ddb7a4ed4bf Mon Sep 17 00:00:00 2001 From: Vivien Nicolas Date: Mon, 24 Jul 2023 15:36:30 +0200 Subject: [PATCH 29/39] [CI] Automate Test_TC_IDM_1_2.yaml (#28071) * [chiptool.py] Allow '*' to be used as a top level endpoint value * [matter_yamltests] Add saveResponseAs step level keyword to save the whole response * [matter_yamltests] Add an optional definitions parameters for the methods of pseudo clusters * [matter_yamltests] Add WildcardResponseExtractorCluster * [CI] Automate Test_TC_IDM_1_2.yaml --- .../matter_chip_tool_adapter/encoder.py | 2 + .../matter_yamltests/parser.py | 5 + .../pseudo_clusters/pseudo_clusters.py | 9 +- .../matter_yamltests/runner.py | 2 +- .../matter_yamltests/yaml_loader.py | 1 + scripts/tests/chiptest/__init__.py | 1 + .../wildcard_response_extractor_cluster.py | 128 ++++++ .../suites/certification/Test_TC_IDM_1_2.yaml | 384 ++++++++++++++++++ 8 files changed, 529 insertions(+), 3 deletions(-) create mode 100644 scripts/tests/yaml/extensions/wildcard_response_extractor_cluster.py create mode 100644 src/app/tests/suites/certification/Test_TC_IDM_1_2.yaml diff --git a/examples/chip-tool/py_matter_chip_tool_adapter/matter_chip_tool_adapter/encoder.py b/examples/chip-tool/py_matter_chip_tool_adapter/matter_chip_tool_adapter/encoder.py index 8340289c0e2852..2c02811f865845 100644 --- a/examples/chip-tool/py_matter_chip_tool_adapter/matter_chip_tool_adapter/encoder.py +++ b/examples/chip-tool/py_matter_chip_tool_adapter/matter_chip_tool_adapter/encoder.py @@ -309,6 +309,8 @@ def __maybe_add_endpoint(self, rv, request): endpoint_argument_name = 'endpoint-id-ignored-for-group-commands' endpoint_argument_value = request.endpoint + if endpoint_argument_value == '*': + endpoint_argument_value = 0xFFFF if (request.is_attribute and not request.command == "writeAttribute") or request.is_event or (request.command in _ANY_COMMANDS_LIST and not request.command == "WriteById"): endpoint_argument_name = 'endpoint-ids' diff --git a/scripts/py_matter_yamltests/matter_yamltests/parser.py b/scripts/py_matter_yamltests/matter_yamltests/parser.py index 82b798a85156a4..07090679fd9dbb 100644 --- a/scripts/py_matter_yamltests/matter_yamltests/parser.py +++ b/scripts/py_matter_yamltests/matter_yamltests/parser.py @@ -208,6 +208,7 @@ def __init__(self, test: dict, config: dict, definitions: SpecDefinitions, pics_ self.wait_for = _value_or_none(test, 'wait') self.event_number = _value_or_none(test, 'eventNumber') self.run_if = _value_or_none(test, 'runIf') + self.save_response_as = _value_or_none(test, 'saveResponseAs') self.is_attribute = self.__is_attribute_command() self.is_event = self.__is_event_command() @@ -695,6 +696,9 @@ def post_process_response(self, received_responses): if not isinstance(received_responses, list): received_responses = [received_responses] + if self._test.save_response_as: + self._runtime_config_variable_storage[self._test.save_response_as] = received_responses + if self.wait_for is not None: self._response_cluster_wait_validation(received_responses, result) return result @@ -1112,6 +1116,7 @@ def __init__(self, test_file: str, parser_config: TestParserConfig = TestParserC tests ) self.timeout = config['timeout'] + self.definitions = parser_config.definitions def __apply_config_override(self, config, config_override): for key, value in config_override.items(): diff --git a/scripts/py_matter_yamltests/matter_yamltests/pseudo_clusters/pseudo_clusters.py b/scripts/py_matter_yamltests/matter_yamltests/pseudo_clusters/pseudo_clusters.py index e194615cdea11c..7ab24f086442a9 100644 --- a/scripts/py_matter_yamltests/matter_yamltests/pseudo_clusters/pseudo_clusters.py +++ b/scripts/py_matter_yamltests/matter_yamltests/pseudo_clusters/pseudo_clusters.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import inspect from typing import List from .clusters.commissioner_commands import CommissionerCommands @@ -33,12 +34,16 @@ def supports(self, request) -> bool: def add(self, cluster: PseudoCluster): self.clusters.append(cluster) - async def execute(self, request): + async def execute(self, request, definitions=None): status = {'error': 'FAILURE'} command = self.__get_command(request) if command: - status = await command(request) + if 'definitions' in inspect.signature(command).parameters: + status = await command(request, definitions) + else: + status = await command(request) + # If the command does not returns an error, it is considered a success. if status is None: status = {} diff --git a/scripts/py_matter_yamltests/matter_yamltests/runner.py b/scripts/py_matter_yamltests/matter_yamltests/runner.py index 08de8d758e84fd..c819eea79d9a56 100644 --- a/scripts/py_matter_yamltests/matter_yamltests/runner.py +++ b/scripts/py_matter_yamltests/matter_yamltests/runner.py @@ -186,7 +186,7 @@ async def _run(self, parser: TestParser, config: TestRunnerConfig): start = time.time() if config.pseudo_clusters.supports(request): - responses, logs = await config.pseudo_clusters.execute(request) + responses, logs = await config.pseudo_clusters.execute(request, parser.definitions) else: encoded_request = config.adapter.encode(request) encoded_response = await self.execute(encoded_request) diff --git a/scripts/py_matter_yamltests/matter_yamltests/yaml_loader.py b/scripts/py_matter_yamltests/matter_yamltests/yaml_loader.py index 50a9217ee18b1a..ecdc7af209acbe 100644 --- a/scripts/py_matter_yamltests/matter_yamltests/yaml_loader.py +++ b/scripts/py_matter_yamltests/matter_yamltests/yaml_loader.py @@ -103,6 +103,7 @@ def __check_test_step(self, config: dict, content): 'PICS': str, 'arguments': dict, 'response': (dict, list, str), # Can be a variable + 'saveResponseAs': str, 'minInterval': int, 'maxInterval': int, 'timeout': int, diff --git a/scripts/tests/chiptest/__init__.py b/scripts/tests/chiptest/__init__.py index 87c308c60030f6..26aed1ddc34138 100644 --- a/scripts/tests/chiptest/__init__.py +++ b/scripts/tests/chiptest/__init__.py @@ -148,6 +148,7 @@ def _GetInDevelopmentTests() -> Set[str]: "Test_TC_SMCO_2_4.yaml", # chip-repl does not support timeout (07/20/2023) "Test_TC_SMCO_2_5.yaml", # chip-repl does not support timeout (07/20/2023) "Test_TC_SMCO_2_6.yaml", # chip-repl does not support timeout (07/20/2023) + "Test_TC_IDM_1_2.yaml", # chip-repl does not support AnyCommands (19/07/2023) } diff --git a/scripts/tests/yaml/extensions/wildcard_response_extractor_cluster.py b/scripts/tests/yaml/extensions/wildcard_response_extractor_cluster.py new file mode 100644 index 00000000000000..a0e34cc148d8ac --- /dev/null +++ b/scripts/tests/yaml/extensions/wildcard_response_extractor_cluster.py @@ -0,0 +1,128 @@ +# +# 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. + + +from matter_yamltests.pseudo_clusters.pseudo_cluster import PseudoCluster + +_VALUE_ARGUMENT_NAME = 'Value' +_CLUSTERS_ARGUMENT_NAME = 'Clusters' + + +class wildcard_response_extractor_cluster(PseudoCluster): + name = 'WildcardResponseExtractorCluster' + + async def GetDefaultEndPointForClusters(self, request, definitions): + entries = self.__get_argument(request, _VALUE_ARGUMENT_NAME) + clusters = self.__get_argument(request, _CLUSTERS_ARGUMENT_NAME) + if entries is None or clusters is None: + return {'error': 'INVALID_ARGUMENT'} + + results = {} + + for cluster in clusters: + cluster_id = definitions.get_cluster_id_by_name(cluster) + results[cluster] = None + + for entry in entries: + server_list = entry.get('value') + if cluster_id in server_list: + results[cluster] = entry.get('endpoint') + break + + return {'value': results} + + async def GetUnsupportedCluster(self, request): + entries = self.__get_argument(request, _VALUE_ARGUMENT_NAME) + if entries is None: + return {'error': 'INVALID_ARGUMENT'} + + cluster_ids = [] + for entry in entries: + server_list = entry.get('value') + for cluster_id in server_list: + if cluster_id not in cluster_ids: + cluster_ids.append(cluster_id) + + unsupported_cluster = None + for cluster_code in range(0xFFFFFFFF): + if cluster_code not in cluster_ids: + unsupported_cluster = f'{cluster_code:#0{10}x}' + break + + return {'value': {'UnsupportedCluster': unsupported_cluster}} + + async def GetUnsupportedCommand(self, request): + entries = self.__get_argument(request, _VALUE_ARGUMENT_NAME) + if entries is None: + return {'error': 'INVALID_ARGUMENT'} + + command_ids = [] + for entry in entries: + commands_list = entry.get('value') + for command_id in commands_list: + if command_id not in command_ids: + command_ids.append(command_id) + + unsupported_command = None + for command_code in range(0xFFFFFFFF): + if command_code not in command_ids: + unsupported_command = f'{command_code:#0{10}x}' + break + + return {'value': {'UnsupportedCommand': unsupported_command}} + + async def GetUnsupportedEndPoint(self, request): + entries = self.__get_argument(request, _VALUE_ARGUMENT_NAME) + if entries is None: + return {'error': 'INVALID_ARGUMENT'} + + endpoint_ids = [] + for entry in entries: + parts_list = entry.get('value') + for endpoint_id in parts_list: + if endpoint_id not in endpoint_ids: + endpoint_ids.append(endpoint_id) + + # Add the endpoint id of the response if needed. + endpoint_id = entry.get('endpoint') + if endpoint_id not in endpoint_ids: + endpoint_ids.append(endpoint_id) + + unsupported_endpoint = None + for endpoint_code in range(0xFFFF): + if endpoint_code not in endpoint_ids: + unsupported_endpoint = endpoint_code + break + + return {'value': {'UnsupportedEndPoint': unsupported_endpoint}} + + def __get_argument(self, request, argument_name): + arguments = request.arguments.get('values') + if arguments is None: + return None + + if not type(arguments) is list: + return None + + for argument in arguments: + name = argument.get('name') + value = argument.get('value') + if name is None or value is None: + return None + + if name == argument_name: + return value + + return None diff --git a/src/app/tests/suites/certification/Test_TC_IDM_1_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_1_2.yaml new file mode 100644 index 00000000000000..ff7e3d0a241322 --- /dev/null +++ b/src/app/tests/suites/certification/Test_TC_IDM_1_2.yaml @@ -0,0 +1,384 @@ +# Copyright (c) 2021-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.2. [TC-IDM-1.2] Invoke Response Action from DUT to TH - [{DUT_Server}] + +PICS: + - MCORE.IDM.S + +config: + nodeId: 0x12344321 + InvokeRequestMessage.Cluster: 0x00000006 # OnOff + InvokeRequestMessage.Command: 0x00000000 # Off + InvokeRequestMessage.EndPoint: 1 + InvokeRequestMessage.Payload: {} + +tests: + - label: "Wait for the commissioned device to be retrieved" + cluster: "DelayCommands" + command: "WaitForCommissionee" + arguments: + values: + - name: "nodeId" + value: nodeId + + #### Test Setup + + - label: "Get the list of available endpoints on the device" + cluster: "Descriptor" + command: "readAttribute" + attribute: "PartsList" + endpoint: 0 + saveResponseAs: AvailableDeviceEndPoints + + - label: + "Get an unsupported endpoint id from the list of available device + endpoints" + cluster: WildcardResponseExtractorCluster + command: GetUnsupportedEndPoint + arguments: + values: + - name: Value + value: AvailableDeviceEndPoints + response: + values: + - name: UnsupportedEndPoint + saveAs: PIXIT.IDM.UnsupportedEndPoint + + - label: "Get the list of available clusters on the device (all endpoints)" + cluster: "Descriptor" + command: "readAttribute" + attribute: "ServerList" + endpoint: "*" + saveResponseAs: AvailableDeviceClusters + + - label: + "Extract the endpoint values for the AccessControl, + GeneralCommissioning, AdministratorCommissioning and + OperationalCredentials cluster" + cluster: WildcardResponseExtractorCluster + command: GetDefaultEndPointForClusters + arguments: + values: + - name: Value + value: AvailableDeviceClusters + - name: Clusters + value: + [ + "AccessControl", + "GeneralCommissioning", + "AdministratorCommissioning", + "OperationalCredentials", + ] + response: + values: + - name: AccessControl + saveAs: PIXIT.Cluster.AccessControl.EndPoint + - name: GeneralCommissioning + saveAs: PIXIT.Cluster.GeneralCommissioning.EndPoint + - name: AdministratorCommissioning + saveAs: PIXIT.Cluster.AdministratorCommissioning.EndPoint + - name: OperationalCredentials + saveAs: PIXIT.Cluster.OperationalCredentials.EndPoint + + - label: + "Get an unsupported cluster id from the list of available device + clusters" + cluster: WildcardResponseExtractorCluster + command: GetUnsupportedCluster + arguments: + values: + - name: Value + value: AvailableDeviceClusters + response: + values: + - name: UnsupportedCluster + saveAs: PIXIT.IDM.UnsupportedCluster + + - label: + "Get the list of available cluster commands on the device (all + endpoints)" + cluster: "AnyCommands" + command: "ReadById" + endpoint: "*" + arguments: + values: + - name: "ClusterId" + value: "*" + - name: "AttributeId" + value: 0x0000FFF9 + saveResponseAs: AvailableDeviceCommands + + - label: + "Get an unsupported command id from the list of available device + commands" + cluster: WildcardResponseExtractorCluster + command: GetUnsupportedCommand + arguments: + values: + - name: Value + value: AvailableDeviceCommands + response: + values: + - name: UnsupportedCommand + saveAs: PIXIT.IDM.UnsupportedCommand + + - label: "Read the fabric index from the alpha fabric" + cluster: "Operational Credentials" + command: "readAttribute" + endpoint: PIXIT.Cluster.OperationalCredentials.EndPoint + attribute: "CurrentFabricIndex" + response: + saveAs: alphaIndex + + - label: "Read the commissioner node ID from the alpha fabric" + cluster: "CommissionerCommands" + command: "GetCommissionerNodeId" + response: + values: + - name: "nodeId" + saveAs: commissionerNodeIdAlpha + + ##### Test Implementation + + - label: + "TH sends the Invoke Request Message to the DUT with the path that + indicates a specific endpoint that is unsupported." + cluster: "AnyCommands" + command: "CommandById" + endpoint: PIXIT.IDM.UnsupportedEndPoint + arguments: + values: + - name: "ClusterId" + value: InvokeRequestMessage.Cluster + - name: "CommandId" + value: InvokeRequestMessage.Command + - name: "Payload" + value: InvokeRequestMessage.Payload + response: + error: UNSUPPORTED_ENDPOINT + + - label: + "TH sends the Invoke Request Message to the DUT with the path that + indicates a specific cluster that is unsupported." + cluster: "AnyCommands" + command: "CommandById" + endpoint: InvokeRequestMessage.EndPoint + arguments: + values: + - name: "ClusterId" + value: PIXIT.IDM.UnsupportedCluster + - name: "CommandId" + value: InvokeRequestMessage.Command + - name: "Payload" + value: InvokeRequestMessage.Payload + response: + error: UNSUPPORTED_CLUSTER + + - label: + "TH sends the Invoke Request Message to the DUT with the path that + indicates a specific command that is unsupported." + cluster: "AnyCommands" + command: "CommandById" + endpoint: InvokeRequestMessage.EndPoint + arguments: + values: + - name: "ClusterId" + value: InvokeRequestMessage.Cluster + - name: "CommandId" + value: PIXIT.IDM.UnsupportedCommand + - name: "Payload" + value: InvokeRequestMessage.Payload + response: + error: UNSUPPORTED_COMMAND + + - label: + "Setup the TH such that it should not have the privilege for the + cluster in the path." + cluster: "AccessControl" + command: "writeAttribute" + attribute: "ACL" + endpoint: PIXIT.Cluster.AccessControl.EndPoint + arguments: + value: + [ + { + "fabricIndex": alphaIndex, + "Privilege": 5, + "AuthMode": 2, + "Subjects": [commissionerNodeIdAlpha], + "Targets": + [ + { + "Cluster": 31, + "Endpoint": 0, + "DeviceType": null, + }, + ], + }, + ] + + - label: + "TH sends the Invoke Request Message to the DUT with a valid + CommandDataIB" + cluster: "AnyCommands" + command: "CommandById" + endpoint: InvokeRequestMessage.EndPoint + arguments: + values: + - name: "ClusterId" + value: InvokeRequestMessage.Cluster + - name: "CommandId" + value: InvokeRequestMessage.Command + - name: "Payload" + value: InvokeRequestMessage.Payload + response: + error: UNSUPPORTED_ACCESS + + - label: + "TH sends the Invoke Request Message to the DUT with a valid and + fabric-scoped CommandDataIB" + cluster: "General Commissioning" + command: "CommissioningComplete" + endpoint: PIXIT.Cluster.GeneralCommissioning.EndPoint + response: + error: UNSUPPORTED_ACCESS + + - label: + "Setup the TH such that it should have the privilege for the cluster + in the path." + cluster: "AccessControl" + command: "writeAttribute" + endpoint: PIXIT.Cluster.AccessControl.EndPoint + attribute: "ACL" + arguments: + value: + [ + { + "fabricIndex": alphaIndex, + "Privilege": 5, + "AuthMode": 2, + "Subjects": [commissionerNodeIdAlpha], + "Targets": null, + }, + ] + + - label: + "(OPTIONAL) TH sends the Invoke Request Message to the DUT with the + command which requires a data response to be sent back." + cluster: "General Commissioning" + command: "ArmFailSafe" + endpoint: PIXIT.Cluster.GeneralCommissioning.EndPoint + arguments: + values: + - name: "ExpiryLengthSeconds" + value: 1000 + - name: "Breadcrumb" + value: 1 + response: + values: + - name: "ErrorCode" + value: 0 + + - label: + "TH sends the Invoke Request Message to the DUT with a valid + CommandDataIB and SuppressResponse set to True" + disabled: true + verification: | + Out of Scope for V1.0 + https://github.com/project-chip/connectedhomeip/issues/8043 + cluster: InvokeRequestMessage.Cluster + command: InvokeRequestMessage.Command + endpoint: InvokeRequestMessage.EndPoint + arguments: + values: + - name: "Payload" + value: PIXIT.InvokeRequestMessage.Payload + + - label: + "Setup the TH such that it should not have the privilege for the + cluster in the path." + cluster: "AccessControl" + command: "writeAttribute" + attribute: "ACL" + endpoint: PIXIT.Cluster.AccessControl.EndPoint + arguments: + value: + [ + { + "fabricIndex": alphaIndex, + "Privilege": 5, + "AuthMode": 2, + "Subjects": [commissionerNodeIdAlpha], + "Targets": + [ + { + "Cluster": 31, + "Endpoint": 0, + "DeviceType": null, + }, + ], + }, + ] + + - label: + "TH sends a Invoke Request Message to the DUT with the TimedRequest + set as TRUE.(There should be no previous Timed Invoke action.)" + cluster: "AnyCommands" + command: "CommandById" + endpoint: InvokeRequestMessage.EndPoint + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "ClusterId" + value: InvokeRequestMessage.Cluster + - name: "CommandId" + value: InvokeRequestMessage.Command + - name: "Payload" + value: InvokeRequestMessage.Payload + response: + error: UNSUPPORTED_ACCESS + + - label: + "Setup the TH such that it should have the privilege for the cluster + in the path." + cluster: "AccessControl" + command: "writeAttribute" + endpoint: PIXIT.Cluster.AccessControl.EndPoint + attribute: "ACL" + arguments: + value: + [ + { + "fabricIndex": alphaIndex, + "Privilege": 5, + "AuthMode": 2, + "Subjects": [commissionerNodeIdAlpha], + "Targets": null, + }, + ] + + - label: + "TH sends Invoke Request Message to the DUT with the command in the + path that requires a Timed Invoke transaction to invoke and this + action is not part of a Timed Invoke transaction" + cluster: "AdministratorCommissioning" + command: "OpenBasicCommissioningWindow" + endpoint: PIXIT.Cluster.AdministratorCommissioning.EndPoint + arguments: + values: + - name: "CommissioningTimeout" + value: 180 + response: + error: NEEDS_TIMED_INTERACTION From 4c50c15ae9f6be8312602128c5d2e5092ce71c58 Mon Sep 17 00:00:00 2001 From: EricZijian_Siter Date: Mon, 24 Jul 2023 21:36:38 +0800 Subject: [PATCH 30/39] Revert "Delay processing test event in Smoke CO Alarm (#28044)" (#28191) This reverts commit 435aa960aecfdc9507534fac1e8e95502dfb5d9f. Co-authored-by: Hare --- .../silabs/include/SmokeCoAlarmManager.h | 2 - .../silabs/src/SmokeCoAlarmManager.cpp | 160 ++++++------------ 2 files changed, 48 insertions(+), 114 deletions(-) diff --git a/examples/smoke-co-alarm-app/silabs/include/SmokeCoAlarmManager.h b/examples/smoke-co-alarm-app/silabs/include/SmokeCoAlarmManager.h index c7a5b877f6b821..be1b38a8bb5e3a 100644 --- a/examples/smoke-co-alarm-app/silabs/include/SmokeCoAlarmManager.h +++ b/examples/smoke-co-alarm-app/silabs/include/SmokeCoAlarmManager.h @@ -108,7 +108,6 @@ class SmokeCoAlarmManager int mExpressedStateMask = 1; bool mEndSelfTesting; - uint64_t mEventTrigger; void CancelTimer(void); void StartTimer(uint32_t aTimeoutMs); @@ -116,7 +115,6 @@ class SmokeCoAlarmManager static void TimerEventHandler(TimerHandle_t xTimer); static void SelfTestingEventHandler(AppEvent * aEvent); static void EndSelfTestingEventHandler(AppEvent * aEvent); - static void TriggerEventHandler(AppEvent * aEvent); static SmokeCoAlarmManager sAlarm; }; diff --git a/examples/smoke-co-alarm-app/silabs/src/SmokeCoAlarmManager.cpp b/examples/smoke-co-alarm-app/silabs/src/SmokeCoAlarmManager.cpp index c006e92ad013ce..3fd076689d4e14 100644 --- a/examples/smoke-co-alarm-app/silabs/src/SmokeCoAlarmManager.cpp +++ b/examples/smoke-co-alarm-app/silabs/src/SmokeCoAlarmManager.cpp @@ -99,7 +99,6 @@ CHIP_ERROR SmokeCoAlarmManager::Init() chip::DeviceLayer::PlatformMgr().UnlockChipStack(); mEndSelfTesting = false; - mEventTrigger = 0; return CHIP_NO_ERROR; } @@ -142,16 +141,10 @@ void SmokeCoAlarmManager::TimerEventHandler(TimerHandle_t xTimer) AppEvent event; event.Type = AppEvent::kEventType_Timer; event.TimerEvent.Context = alarm; - if (alarm->mEndSelfTesting) { event.Handler = EndSelfTestingEventHandler; } - else if (alarm->mEventTrigger != 0) - { - event.Handler = TriggerEventHandler; - } - AppTask::GetAppTask().PostEvent(&event); } @@ -187,90 +180,102 @@ void SmokeCoAlarmManager::EndSelfTestingEventHandler(AppEvent * aEvent) chip::DeviceLayer::PlatformMgr().UnlockChipStack(); } -void SmokeCoAlarmManager::TriggerEventHandler(AppEvent * aEvent) +bool SmokeCoAlarmManager::OnSelfTesting() { - uint64_t eventTrigger = AlarmMgr().mEventTrigger; - AlarmMgr().mEventTrigger = 0; + AppEvent event; + event.Handler = SelfTestingEventHandler; + AppTask::GetAppTask().PostEvent(&event); - chip::DeviceLayer::PlatformMgr().LockChipStack(); + return true; +} + +bool SmokeCoAlarmManager::ManualSelfTesting() +{ + bool success = false; + + if ((mExpressedStateMask & 0b110010110) == 0) + { + chip::DeviceLayer::PlatformMgr().LockChipStack(); + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kTesting, true); + chip::DeviceLayer::PlatformMgr().UnlockChipStack(); + + if (success) + { + success = OnSelfTesting(); + } + } + + return success; +} + +bool SmokeCoAlarmManager::OnEventTriggerHandle(uint64_t eventTrigger) +{ + bool isValidCommand = true; switch (eventTrigger) { case kTriggeredEvent_WarningSmokeAlarm: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetSmokeState(1, AlarmStateEnum::kWarning), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetSmokeState(1, AlarmStateEnum::kWarning), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kSmokeAlarm, true); break; case kTriggeredEvent_CriticalSmokeAlarm: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetSmokeState(1, AlarmStateEnum::kCritical), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetSmokeState(1, AlarmStateEnum::kCritical), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kSmokeAlarm, true); break; case kTriggeredEvent_SmokeAlarmClear: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetSmokeState(1, AlarmStateEnum::kNormal), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetSmokeState(1, AlarmStateEnum::kNormal), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kSmokeAlarm, false); break; case kTriggeredEvent_WarningCOAlarm: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetCOState(1, AlarmStateEnum::kWarning), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetCOState(1, AlarmStateEnum::kWarning), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kCOAlarm, true); break; case kTriggeredEvent_CriticalCOAlarm: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetCOState(1, AlarmStateEnum::kCritical), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetCOState(1, AlarmStateEnum::kCritical), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kCOAlarm, true); break; case kTriggeredEvent_COAlarmClear: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetCOState(1, AlarmStateEnum::kNormal), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetCOState(1, AlarmStateEnum::kNormal), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kCOAlarm, false); break; case kTriggeredEvent_WarningBatteryAlert: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetBatteryAlert(1, AlarmStateEnum::kWarning), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetBatteryAlert(1, AlarmStateEnum::kWarning), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kBatteryAlert, true); break; case kTriggeredEvent_CriticalBatteryAlert: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetBatteryAlert(1, AlarmStateEnum::kCritical), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetBatteryAlert(1, AlarmStateEnum::kCritical), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kBatteryAlert, true); break; case kTriggeredEvent_BatteryAlertClear: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetBatteryAlert(1, AlarmStateEnum::kNormal), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetBatteryAlert(1, AlarmStateEnum::kNormal), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kBatteryAlert, false); break; case kTriggeredEvent_HardwareFaultAlert: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetHardwareFaultAlert(1, true), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetHardwareFaultAlert(1, true), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kHardwareFault, true); break; case kTriggeredEvent_HardwareFaultAlertClear: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetHardwareFaultAlert(1, false), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetHardwareFaultAlert(1, false), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kHardwareFault, false); break; case kTriggeredEvent_EndofServiceAlert: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetEndOfServiceAlert(1, EndOfServiceEnum::kExpired), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetEndOfServiceAlert(1, EndOfServiceEnum::kExpired), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kEndOfService, true); break; case kTriggeredEvent_EndofServiceAlertClear: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetEndOfServiceAlert(1, EndOfServiceEnum::kNormal), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetEndOfServiceAlert(1, EndOfServiceEnum::kNormal), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kEndOfService, false); break; @@ -283,26 +288,22 @@ void SmokeCoAlarmManager::TriggerEventHandler(AppEvent * aEvent) break; case kTriggeredEvent_InterconnectSmokeAlarm: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetInterconnectSmokeAlarm(1, AlarmStateEnum::kWarning), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetInterconnectSmokeAlarm(1, AlarmStateEnum::kWarning), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kInterconnectSmoke, true); break; case kTriggeredEvent_InterconnectSmokeAlarmClear: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetInterconnectSmokeAlarm(1, AlarmStateEnum::kNormal), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetInterconnectSmokeAlarm(1, AlarmStateEnum::kNormal), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kInterconnectSmoke, false); break; case kTriggeredEvent_InterconnectCOAlarm: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetInterconnectCOAlarm(1, AlarmStateEnum::kWarning), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetInterconnectCOAlarm(1, AlarmStateEnum::kWarning), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kInterconnectCO, true); break; case kTriggeredEvent_InterconnectCOAlarmClear: - VerifyOrReturn(SmokeCoAlarmServer::Instance().SetInterconnectCOAlarm(1, AlarmStateEnum::kNormal), - chip::DeviceLayer::PlatformMgr().UnlockChipStack()); + VerifyOrReturnValue(SmokeCoAlarmServer::Instance().SetInterconnectCOAlarm(1, AlarmStateEnum::kNormal), true); AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kInterconnectCO, false); break; @@ -329,74 +330,9 @@ void SmokeCoAlarmManager::TriggerEventHandler(AppEvent * aEvent) case kTriggeredEvent_SensitivityLevelClear: SmokeCoAlarmServer::Instance().SetSmokeSensitivityLevel(1, SensitivityEnum::kStandard); break; - } - - chip::DeviceLayer::PlatformMgr().UnlockChipStack(); -} - -bool SmokeCoAlarmManager::OnSelfTesting() -{ - AppEvent event; - event.Handler = SelfTestingEventHandler; - AppTask::GetAppTask().PostEvent(&event); - - return true; -} - -bool SmokeCoAlarmManager::ManualSelfTesting() -{ - bool success = false; - - if ((mExpressedStateMask & 0b110010110) == 0) - { - chip::DeviceLayer::PlatformMgr().LockChipStack(); - success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kTesting, true); - chip::DeviceLayer::PlatformMgr().UnlockChipStack(); - - if (success) - { - success = OnSelfTesting(); - } - } - - return success; -} - -bool SmokeCoAlarmManager::OnEventTriggerHandle(uint64_t eventTrigger) -{ - bool isValidCommand = false; - switch (eventTrigger) - { - case kTriggeredEvent_WarningSmokeAlarm: - case kTriggeredEvent_CriticalSmokeAlarm: - case kTriggeredEvent_SmokeAlarmClear: - case kTriggeredEvent_WarningCOAlarm: - case kTriggeredEvent_CriticalCOAlarm: - case kTriggeredEvent_COAlarmClear: - case kTriggeredEvent_WarningBatteryAlert: - case kTriggeredEvent_CriticalBatteryAlert: - case kTriggeredEvent_BatteryAlertClear: - case kTriggeredEvent_HardwareFaultAlert: - case kTriggeredEvent_HardwareFaultAlertClear: - case kTriggeredEvent_EndofServiceAlert: - case kTriggeredEvent_EndofServiceAlertClear: - case kTriggeredEvent_DeviceMute: - case kTriggeredEvent_DeviceMuteClear: - case kTriggeredEvent_InterconnectSmokeAlarm: - case kTriggeredEvent_InterconnectSmokeAlarmClear: - case kTriggeredEvent_InterconnectCOAlarm: - case kTriggeredEvent_InterconnectCOAlarmClear: - case kTriggeredEvent_ContaminationStateHigh: - case kTriggeredEvent_ContaminationStateLow: - case kTriggeredEvent_ContaminationStateClear: - case kTriggeredEvent_SensitivityLevelHigh: - case kTriggeredEvent_SensitivityLevelLow: - case kTriggeredEvent_SensitivityLevelClear: - isValidCommand = true; - AlarmMgr().mEventTrigger = eventTrigger; - AlarmMgr().StartTimer(5000); - break; + default: + isValidCommand = false; } return isValidCommand; From b7f1a6d344214a1b14ffffc27db65f6052bcb6ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 13:41:21 +0000 Subject: [PATCH 31/39] Bump third_party/pigweed/repo from `2157b49` to `f4d0b35` (#28204) Bumps [third_party/pigweed/repo](https://github.com/google/pigweed) from `2157b49` to `f4d0b35`. - [Commits](https://github.com/google/pigweed/compare/2157b49553b7aac671b352b8972df44b511364af...f4d0b3563c09d945478267fcff619a959cd3e9f6) --- updated-dependencies: - dependency-name: third_party/pigweed/repo dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/pigweed/repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/pigweed/repo b/third_party/pigweed/repo index 2157b49553b7aa..f4d0b3563c09d9 160000 --- a/third_party/pigweed/repo +++ b/third_party/pigweed/repo @@ -1 +1 @@ -Subproject commit 2157b49553b7aac671b352b8972df44b511364af +Subproject commit f4d0b3563c09d945478267fcff619a959cd3e9f6 From 06c0b75e0c52fc3c410e031c49bb58d9d0ac072d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 13:42:29 +0000 Subject: [PATCH 32/39] Bump third_party/cirque/repo from `262ea77` to `1b37570` (#28203) Bumps [third_party/cirque/repo](https://github.com/openweave/cirque) from `262ea77` to `1b37570`. - [Commits](https://github.com/openweave/cirque/compare/262ea7724667229f0d21d6a1c1e96d90415f0906...1b375703af5dc9e00684a04c332a83b40a4c9dd8) --- updated-dependencies: - dependency-name: third_party/cirque/repo dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cirque/repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cirque/repo b/third_party/cirque/repo index 262ea772466722..1b375703af5dc9 160000 --- a/third_party/cirque/repo +++ b/third_party/cirque/repo @@ -1 +1 @@ -Subproject commit 262ea7724667229f0d21d6a1c1e96d90415f0906 +Subproject commit 1b375703af5dc9e00684a04c332a83b40a4c9dd8 From 5c6b539d0e6077a1a9abba6f07bc5d69c68baa38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 09:42:39 -0400 Subject: [PATCH 33/39] Bump third_party/pybind11/repo from `8de7772` to `8b03ffa` (#28202) Bumps [third_party/pybind11/repo](https://github.com/pybind/pybind11) from `8de7772` to `8b03ffa`. - [Release notes](https://github.com/pybind/pybind11/releases) - [Commits](https://github.com/pybind/pybind11/compare/8de7772cc72daca8e947b79b83fea46214931604...8b03ffa7c06cd9c8a38297b1c8923695d1ff1b07) --- updated-dependencies: - dependency-name: third_party/pybind11/repo dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/pybind11/repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/pybind11/repo b/third_party/pybind11/repo index 8de7772cc72dac..8b03ffa7c06cd9 160000 --- a/third_party/pybind11/repo +++ b/third_party/pybind11/repo @@ -1 +1 @@ -Subproject commit 8de7772cc72daca8e947b79b83fea46214931604 +Subproject commit 8b03ffa7c06cd9c8a38297b1c8923695d1ff1b07 From 3c253bbe312bd439d992743860ebeeb04b624f63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 13:43:30 +0000 Subject: [PATCH 34/39] Bump third_party/imgui/repo from `85395b7` to `1109de3` (#28201) Bumps [third_party/imgui/repo](https://github.com/ocornut/imgui) from `85395b7` to `1109de3`. - [Release notes](https://github.com/ocornut/imgui/releases) - [Commits](https://github.com/ocornut/imgui/compare/85395b76b08111961aa6e0ff026fd5152d48aa15...1109de38277fd2d14d4dca4c1cb8d4a2c4ff0f95) --- updated-dependencies: - dependency-name: third_party/imgui/repo dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/imgui/repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/imgui/repo b/third_party/imgui/repo index 85395b76b08111..1109de38277fd2 160000 --- a/third_party/imgui/repo +++ b/third_party/imgui/repo @@ -1 +1 @@ -Subproject commit 85395b76b08111961aa6e0ff026fd5152d48aa15 +Subproject commit 1109de38277fd2d14d4dca4c1cb8d4a2c4ff0f95 From 3df57b778a12c310e56cebe0d0a1ccff66a853d4 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Mon, 24 Jul 2023 09:49:02 -0400 Subject: [PATCH 35/39] Start switching platforms to C++17 (linux, mac) (#28170) * Switch linux, mac, android to C++17 by default * Update build/config/compiler/compiler.gni Co-authored-by: Boris Zbarsky * Restyled by gn --------- Co-authored-by: Andrei Litvin Co-authored-by: Boris Zbarsky Co-authored-by: Restyled.io --- build/config/compiler/compiler.gni | 3 ++- examples/all-clusters-app/linux/args.gni | 3 --- examples/all-clusters-minimal-app/linux/args.gni | 3 --- examples/bridge-app/linux/args.gni | 3 --- examples/chef/linux/with_pw_rpc.gni | 2 -- examples/contact-sensor-app/linux/args.gni | 3 --- examples/lighting-app/linux/args.gni | 3 --- examples/lighting-app/linux/with_pw_rpc.gni | 2 -- examples/lock-app/linux/args.gni | 3 --- examples/log-source-app/linux/args.gni | 3 --- examples/ota-provider-app/linux/args.gni | 3 --- examples/ota-requestor-app/linux/args.gni | 3 --- examples/persistent-storage/linux/args.gni | 3 --- examples/placeholder/linux/args.gni | 3 --- examples/thermostat/linux/args.gni | 3 --- examples/tv-app/linux/args.gni | 3 --- examples/tv-casting-app/linux/args.gni | 3 --- src/tracing/tracing_args.gni | 5 +---- 18 files changed, 3 insertions(+), 51 deletions(-) diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni index 5610b832b3ac16..12a93863be8ce0 100644 --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni @@ -43,7 +43,8 @@ declare_args() { c_standard = "gnu11" # C++ standard level (value for -std flag). - if (current_os == "android") { + if (current_os == "linux" || current_os == "mac" || current_os == "ios" || + current_os == "android") { cpp_standard = "gnu++17" } else { cpp_standard = "gnu++14" diff --git a/examples/all-clusters-app/linux/args.gni b/examples/all-clusters-app/linux/args.gni index 38e844a7016951..c4c9a18cec9cf5 100644 --- a/examples/all-clusters-app/linux/args.gni +++ b/examples/all-clusters-app/linux/args.gni @@ -27,6 +27,3 @@ chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] matter_enable_tracing_support = true matter_log_json_payload_decode_full = true matter_log_json_payload_hex = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/all-clusters-minimal-app/linux/args.gni b/examples/all-clusters-minimal-app/linux/args.gni index a87d4da8fd9320..8b332edc7e2b06 100644 --- a/examples/all-clusters-minimal-app/linux/args.gni +++ b/examples/all-clusters-minimal-app/linux/args.gni @@ -25,6 +25,3 @@ chip_project_config_include_dirs = chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/bridge-app/linux/args.gni b/examples/bridge-app/linux/args.gni index ba90537f6ea0b7..5b3e2965d4c77b 100644 --- a/examples/bridge-app/linux/args.gni +++ b/examples/bridge-app/linux/args.gni @@ -25,6 +25,3 @@ chip_project_config_include_dirs = chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/chef/linux/with_pw_rpc.gni b/examples/chef/linux/with_pw_rpc.gni index 82ffc618f90078..0f1ab1ea89c121 100644 --- a/examples/chef/linux/with_pw_rpc.gni +++ b/examples/chef/linux/with_pw_rpc.gni @@ -21,8 +21,6 @@ import("${chip_root}/config/standalone/args.gni") import("//build_overrides/pigweed.gni") -cpp_standard = "gnu++17" - pw_log_BACKEND = "$dir_pw_log_basic" pw_assert_BACKEND = "$dir_pw_assert_log:check_backend" pw_sys_io_BACKEND = "$dir_pw_sys_io_stdio" diff --git a/examples/contact-sensor-app/linux/args.gni b/examples/contact-sensor-app/linux/args.gni index a94078f1c1c071..f8fea8ea9e2e09 100644 --- a/examples/contact-sensor-app/linux/args.gni +++ b/examples/contact-sensor-app/linux/args.gni @@ -26,6 +26,3 @@ chip_project_config_include_dirs = [ "${chip_root}/examples/contact-sensor-app/linux/include" ] chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/lighting-app/linux/args.gni b/examples/lighting-app/linux/args.gni index 03e65b9c89f3e3..d07e8c87cdb15c 100644 --- a/examples/lighting-app/linux/args.gni +++ b/examples/lighting-app/linux/args.gni @@ -27,6 +27,3 @@ chip_project_config_include_dirs = chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/lighting-app/linux/with_pw_rpc.gni b/examples/lighting-app/linux/with_pw_rpc.gni index 82ffc618f90078..0f1ab1ea89c121 100644 --- a/examples/lighting-app/linux/with_pw_rpc.gni +++ b/examples/lighting-app/linux/with_pw_rpc.gni @@ -21,8 +21,6 @@ import("${chip_root}/config/standalone/args.gni") import("//build_overrides/pigweed.gni") -cpp_standard = "gnu++17" - pw_log_BACKEND = "$dir_pw_log_basic" pw_assert_BACKEND = "$dir_pw_assert_log:check_backend" pw_sys_io_BACKEND = "$dir_pw_sys_io_stdio" diff --git a/examples/lock-app/linux/args.gni b/examples/lock-app/linux/args.gni index db4d2e8c274da4..0d7bc33826b704 100644 --- a/examples/lock-app/linux/args.gni +++ b/examples/lock-app/linux/args.gni @@ -24,6 +24,3 @@ chip_project_config_include_dirs = [ "${chip_root}/examples/lock-app/linux/include" ] chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/log-source-app/linux/args.gni b/examples/log-source-app/linux/args.gni index 5c36fb0cb40b6f..7882354c242127 100644 --- a/examples/log-source-app/linux/args.gni +++ b/examples/log-source-app/linux/args.gni @@ -17,6 +17,3 @@ import("//build_overrides/chip.gni") import("${chip_root}/config/standalone/args.gni") matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/ota-provider-app/linux/args.gni b/examples/ota-provider-app/linux/args.gni index 442c2ba4d43edc..8b4e77541610e6 100644 --- a/examples/ota-provider-app/linux/args.gni +++ b/examples/ota-provider-app/linux/args.gni @@ -24,6 +24,3 @@ chip_project_config_include_dirs = [ "${chip_root}/examples/ota-provider-app/linux/include" ] chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/ota-requestor-app/linux/args.gni b/examples/ota-requestor-app/linux/args.gni index ee072aeca2defc..f149ba204b1ea0 100644 --- a/examples/ota-requestor-app/linux/args.gni +++ b/examples/ota-requestor-app/linux/args.gni @@ -26,6 +26,3 @@ chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] chip_enable_ota_requestor = true matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/persistent-storage/linux/args.gni b/examples/persistent-storage/linux/args.gni index 7ee4af9262fd15..001edb60de8cdb 100644 --- a/examples/persistent-storage/linux/args.gni +++ b/examples/persistent-storage/linux/args.gni @@ -16,6 +16,3 @@ import("//build_overrides/chip.gni") import("${chip_root}/config/standalone/args.gni") matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/placeholder/linux/args.gni b/examples/placeholder/linux/args.gni index 7a3a063a488116..ae1dbad6452207 100644 --- a/examples/placeholder/linux/args.gni +++ b/examples/placeholder/linux/args.gni @@ -23,6 +23,3 @@ chip_project_config_include_dirs = [ "${chip_root}/examples/placeholder/linux/include" ] chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/thermostat/linux/args.gni b/examples/thermostat/linux/args.gni index 9de55497298118..edb7411256d831 100644 --- a/examples/thermostat/linux/args.gni +++ b/examples/thermostat/linux/args.gni @@ -16,6 +16,3 @@ import("//build_overrides/chip.gni") import("${chip_root}/config/standalone/args.gni") matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/tv-app/linux/args.gni b/examples/tv-app/linux/args.gni index 5193be22ff4cbb..aa476d37b80c30 100644 --- a/examples/tv-app/linux/args.gni +++ b/examples/tv-app/linux/args.gni @@ -31,6 +31,3 @@ chip_enable_additional_data_advertising = true chip_enable_rotating_device_id = true matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/examples/tv-casting-app/linux/args.gni b/examples/tv-casting-app/linux/args.gni index 0fb9de6aafe83f..03ba28645f8940 100644 --- a/examples/tv-casting-app/linux/args.gni +++ b/examples/tv-casting-app/linux/args.gni @@ -33,6 +33,3 @@ chip_enable_rotating_device_id = true chip_max_discovered_ip_addresses = 20 matter_enable_tracing_support = true - -# Perfetto requires C++17 -cpp_standard = "gnu++17" diff --git a/src/tracing/tracing_args.gni b/src/tracing/tracing_args.gni index e62a4e21410955..7c27f9ecaba39a 100644 --- a/src/tracing/tracing_args.gni +++ b/src/tracing/tracing_args.gni @@ -43,10 +43,7 @@ declare_args() { # since tracing is very noisy, we generally expect it to be explicitly # set up. # - # TODO: cpp_standard check is not ideal, it should be >= 17, - # however for now this is what we use in compilations - if ((current_os == "linux" || current_os == "android") && - cpp_standard == "gnu++17") { + if (current_os == "linux" || current_os == "android") { matter_trace_config = "${chip_root}/src/tracing/perfetto:perfetto_tracing" } else { matter_trace_config = "${chip_root}/src/tracing/none" From 484dcd8a131e7d78560f88be4ba654bf1df926fc Mon Sep 17 00:00:00 2001 From: mideayanghui <106149377+mideayanghui@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:49:29 +0800 Subject: [PATCH 36/39] =?UTF-8?q?Add=20Matter=201.2=20device=20type:=20Ref?= =?UTF-8?q?rigerator/Laundry=20Washer/Temperature=20C=E2=80=A6=20(#28190)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Matter 1.2 device type: Refrigerator/Laundry Washer/Temperature Controlled Cabinet * missing laundry washer controls in Laundry Washer defination * remove identify cluster in Temperature Controlled Cabinet defination --- .../zcl/data-model/chip/matter-devices.xml | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml b/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml index 6432ad809fb1be..3c923129fb9f12 100644 --- a/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml +++ b/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml @@ -1960,6 +1960,48 @@ limitations under the License. + + MA-refrigerator + CHIP + Matter Refrigerator + 0x0103 + 0x0070 + + + + + + + + + MA-laundry-washer + CHIP + Matter Laundry Washer + 0x0103 + 0x0073 + + + + + + + + + + + + MA-temperature-controlled-cabinet + CHIP + Matter Temperature Controlled Cabinet + 0x0103 + 0x0071 + + + + + + + MA-all-clusters-app CHIP From 100eab354de6b09ba36fff198fbd130468c5b8aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Kr=C3=B3lik?= <66667989+Damian-Nordic@users.noreply.github.com> Date: Mon, 24 Jul 2023 16:25:17 +0200 Subject: [PATCH 37/39] [ci] Fix bloat-check after ghapi update to 1.0.4 (#28209) per_page argument was passed as a positional argument to list_artifacts_for_repo action, which stopped working after a new argument has been added to the action in ghapi 1.0.4. --- scripts/tools/memory/memdf/util/github.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/tools/memory/memdf/util/github.py b/scripts/tools/memory/memdf/util/github.py index 53c59316507466..5312c1702a5829 100644 --- a/scripts/tools/memory/memdf/util/github.py +++ b/scripts/tools/memory/memdf/util/github.py @@ -130,7 +130,7 @@ def get_artifacts(self, page_limit: int = -1, per_page: int = -1): page = 0 for i in ghapi.all.paged( self.ghapi.actions.list_artifacts_for_repo, - per_page): + per_page=per_page): if not i.artifacts: break for a in i.artifacts: From a4dd8474bf5e7f0482a815de7cb4f019375d2d45 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Mon, 24 Jul 2023 10:30:32 -0400 Subject: [PATCH 38/39] Add some `const` to TLVReader get methods (#28167) * Move some TLV reader get methods to const (integers and bools) * Move floating point getters to const * minor change to kick CI --------- Co-authored-by: Andrei Litvin --- src/lib/core/TLVReader.cpp | 22 +++++++++++----------- src/lib/core/TLVReader.h | 23 +++++++++++------------ 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/lib/core/TLVReader.cpp b/src/lib/core/TLVReader.cpp index f03fc1b3cdac27..95d7f7c880fef3 100644 --- a/src/lib/core/TLVReader.cpp +++ b/src/lib/core/TLVReader.cpp @@ -117,7 +117,7 @@ uint32_t TLVReader::GetLength() const return 0; } -CHIP_ERROR TLVReader::Get(bool & v) +CHIP_ERROR TLVReader::Get(bool & v) const { TLVElementType elemType = ElementType(); if (elemType == TLVElementType::BooleanFalse) @@ -129,7 +129,7 @@ CHIP_ERROR TLVReader::Get(bool & v) return CHIP_NO_ERROR; } -CHIP_ERROR TLVReader::Get(int8_t & v) +CHIP_ERROR TLVReader::Get(int8_t & v) const { int64_t v64 = 0; CHIP_ERROR err = Get(v64); @@ -141,7 +141,7 @@ CHIP_ERROR TLVReader::Get(int8_t & v) return err; } -CHIP_ERROR TLVReader::Get(int16_t & v) +CHIP_ERROR TLVReader::Get(int16_t & v) const { int64_t v64 = 0; CHIP_ERROR err = Get(v64); @@ -153,7 +153,7 @@ CHIP_ERROR TLVReader::Get(int16_t & v) return err; } -CHIP_ERROR TLVReader::Get(int32_t & v) +CHIP_ERROR TLVReader::Get(int32_t & v) const { int64_t v64 = 0; CHIP_ERROR err = Get(v64); @@ -165,7 +165,7 @@ CHIP_ERROR TLVReader::Get(int32_t & v) return err; } -CHIP_ERROR TLVReader::Get(int64_t & v) +CHIP_ERROR TLVReader::Get(int64_t & v) const { // Internal callers of this method depend on it not modifying "v" on failure. switch (ElementType()) @@ -189,7 +189,7 @@ CHIP_ERROR TLVReader::Get(int64_t & v) return CHIP_NO_ERROR; } -CHIP_ERROR TLVReader::Get(uint8_t & v) +CHIP_ERROR TLVReader::Get(uint8_t & v) const { uint64_t v64 = 0; CHIP_ERROR err = Get(v64); @@ -201,7 +201,7 @@ CHIP_ERROR TLVReader::Get(uint8_t & v) return err; } -CHIP_ERROR TLVReader::Get(uint16_t & v) +CHIP_ERROR TLVReader::Get(uint16_t & v) const { uint64_t v64 = 0; CHIP_ERROR err = Get(v64); @@ -213,7 +213,7 @@ CHIP_ERROR TLVReader::Get(uint16_t & v) return err; } -CHIP_ERROR TLVReader::Get(uint32_t & v) +CHIP_ERROR TLVReader::Get(uint32_t & v) const { uint64_t v64 = 0; CHIP_ERROR err = Get(v64); @@ -225,7 +225,7 @@ CHIP_ERROR TLVReader::Get(uint32_t & v) return err; } -CHIP_ERROR TLVReader::Get(uint64_t & v) +CHIP_ERROR TLVReader::Get(uint64_t & v) const { // Internal callers of this method depend on it not modifying "v" on failure. switch (ElementType()) @@ -256,7 +256,7 @@ float BitCastToFloat(const uint64_t elemLenOrVal) // between float and double wherever possible, because these conversions are // relatively expensive on platforms that use soft-float instruction sets. -CHIP_ERROR TLVReader::Get(float & v) +CHIP_ERROR TLVReader::Get(float & v) const { switch (ElementType()) { @@ -270,7 +270,7 @@ CHIP_ERROR TLVReader::Get(float & v) return CHIP_NO_ERROR; } -CHIP_ERROR TLVReader::Get(double & v) +CHIP_ERROR TLVReader::Get(double & v) const { switch (ElementType()) { diff --git a/src/lib/core/TLVReader.h b/src/lib/core/TLVReader.h index 29f5812039187b..69aed99f3eabac 100644 --- a/src/lib/core/TLVReader.h +++ b/src/lib/core/TLVReader.h @@ -31,7 +31,6 @@ #include #include "TLVCommon.h" - #include "TLVWriter.h" /** @@ -283,7 +282,7 @@ class DLL_EXPORT TLVReader * @retval #CHIP_ERROR_WRONG_TLV_TYPE If the current element is not a TLV boolean type, or the * reader is not positioned on an element. */ - CHIP_ERROR Get(bool & v); + CHIP_ERROR Get(bool & v) const; /** * Get the value of the current element as an 8-bit signed integer. @@ -298,7 +297,7 @@ class DLL_EXPORT TLVReader * unsigned), or the reader is not positioned on an element. * */ - CHIP_ERROR Get(int8_t & v); + CHIP_ERROR Get(int8_t & v) const; /** * Get the value of the current element as a 16-bit signed integer. @@ -313,7 +312,7 @@ class DLL_EXPORT TLVReader * unsigned), or the reader is not positioned on an element. * */ - CHIP_ERROR Get(int16_t & v); + CHIP_ERROR Get(int16_t & v) const; /** * Get the value of the current element as a 32-bit signed integer. @@ -328,7 +327,7 @@ class DLL_EXPORT TLVReader * unsigned), or the reader is not positioned on an element. * */ - CHIP_ERROR Get(int32_t & v); + CHIP_ERROR Get(int32_t & v) const; /** * Get the value of the current element as a 64-bit signed integer. @@ -343,7 +342,7 @@ class DLL_EXPORT TLVReader * unsigned), or the reader is not positioned on an element. * */ - CHIP_ERROR Get(int64_t & v); + CHIP_ERROR Get(int64_t & v) const; /** * Get the value of the current element as an 8-bit unsigned integer. @@ -359,7 +358,7 @@ class DLL_EXPORT TLVReader * unsigned), or the reader is not positioned on an element. * */ - CHIP_ERROR Get(uint8_t & v); + CHIP_ERROR Get(uint8_t & v) const; /** * Get the value of the current element as a 16-bit unsigned integer. @@ -375,7 +374,7 @@ class DLL_EXPORT TLVReader * unsigned), or the reader is not positioned on an element. * */ - CHIP_ERROR Get(uint16_t & v); + CHIP_ERROR Get(uint16_t & v) const; /** * Get the value of the current element as a 32-bit unsigned integer. @@ -391,7 +390,7 @@ class DLL_EXPORT TLVReader unsigned), or the reader is not positioned on an element. * */ - CHIP_ERROR Get(uint32_t & v); + CHIP_ERROR Get(uint32_t & v) const; /** * Get the value of the current element as a 64-bit unsigned integer. @@ -405,7 +404,7 @@ class DLL_EXPORT TLVReader * unsigned), or the reader is not positioned on an element. * */ - CHIP_ERROR Get(uint64_t & v); + CHIP_ERROR Get(uint64_t & v) const; /** * Get the value of the current element as a double-precision floating point number. @@ -417,7 +416,7 @@ class DLL_EXPORT TLVReader * the reader is not positioned on an element. * */ - CHIP_ERROR Get(double & v); + CHIP_ERROR Get(double & v) const; /** * Get the value of the current element as a single-precision floating point number. @@ -429,7 +428,7 @@ class DLL_EXPORT TLVReader * the reader is not positioned on an element. * */ - CHIP_ERROR Get(float & v); + CHIP_ERROR Get(float & v) const; /** * Get the value of the current element as a ByteSpan From b1b324e0115d4a020789e7c2dd09c92778a3ac42 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Mon, 24 Jul 2023 10:32:11 -0400 Subject: [PATCH 39/39] Switch repl tests to use human-readable decodes (#28171) Co-authored-by: Andrei Litvin --- .github/workflows/tests.yaml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 0a7c5d6addb91a..99f7055113d2ec 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -438,22 +438,22 @@ jobs: - name: Run Tests run: | scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --script-args "--log-level INFO -t 3600 --disable-test ClusterObjectTests.TestTimedRequestTimeout"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_RR_1_1.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_DeviceBasicComposition.py" --script-args "--storage-path admin_storage.json --manual-code 10054912339"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_SC_3_6.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_DA_1_7.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --bool-arg allow_sdk_dac:true"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1 --enable-key 000102030405060708090a0b0c0d0e0f" --script "src/python_testing/TC_TestEventTrigger.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --bool-arg allow_sdk_dac:true"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_ACE_1_2.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_ACE_1_4.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --int-arg PIXIT.ACE.APPENDPOINT:1 PIXIT.ACE.APPDEVTYPEID:0x0100 --string-arg PIXIT.ACE.APPCLUSTER:OnOff PIXIT.ACE.APPATTRIBUTE:OnOff"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_ACE_1_3.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_CGEN_2_4.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_DA_1_2.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --PICS src/app/tests/suites/certification/ci-pics-values"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_TIMESYNC_3_1.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_DA_1_5.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --PICS src/app/tests/suites/certification/ci-pics-values"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_IDM_1_2.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_FAN_3_3.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_FAN_3_4.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace_decode 1" --script "src/python_testing/TC_FAN_3_5.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_RR_1_1.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_DeviceBasicComposition.py" --script-args "--storage-path admin_storage.json --manual-code 10054912339"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_SC_3_6.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_DA_1_7.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --bool-arg allow_sdk_dac:true"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log --enable-key 000102030405060708090a0b0c0d0e0f" --script "src/python_testing/TC_TestEventTrigger.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --bool-arg allow_sdk_dac:true"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_ACE_1_2.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_ACE_1_4.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --int-arg PIXIT.ACE.APPENDPOINT:1 PIXIT.ACE.APPDEVTYPEID:0x0100 --string-arg PIXIT.ACE.APPCLUSTER:OnOff PIXIT.ACE.APPATTRIBUTE:OnOff"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_ACE_1_3.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_CGEN_2_4.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_DA_1_2.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --PICS src/app/tests/suites/certification/ci-pics-values"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_TIMESYNC_3_1.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_DA_1_5.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --PICS src/app/tests/suites/certification/ci-pics-values"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_IDM_1_2.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_FAN_3_3.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_FAN_3_4.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' + scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --app-args "--discriminator 1234 --KVS kvs1 --trace-to json:log" --script "src/python_testing/TC_FAN_3_5.py" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021"' scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --script "src/python_testing/TestMatterTestingSupport.py"' - name: Uploading core files uses: actions/upload-artifact@v3