diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml index 6f1fdcd88a860a..159e03c6a6f7e4 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml @@ -41,7 +41,7 @@ tests: - label: "TH1 commissions DUT using admin node ID N1" verification: | DUT - sudo ./chip-all-clusters-app + sudo ./chip-all-clusters-app --wifi TH1 ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841 @@ -62,7 +62,7 @@ tests: "TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2" verification: | - Open a commissioning window On TH(Chiptool)1 using below command + Open a commissioning window On TH1(Chiptool)using below command ./chip-tool administratorcommissioning open-basic-commissioning-window 180 1 0 --timedInteractionTimeoutMs 1000 On TH1(Chiptool), verify DUT is commissioned On TH2(Chiptool) fabric @@ -338,7 +338,7 @@ tests: verification: | ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 2 0 --commissioner-nodeid 223344 --commissioner-name beta - On TH1(Chiptool), Verify Successfully extension attribute list containg one element . + On TH2(Chiptool), Verify Successfully extension attribute list containg one element . [1658819083.842765][8349:8354] CHIP:EM: Removed CHIP MessageCounter:249057275 from RetransTable on exchange 59888i [1658819083.842800][8349:8354] CHIP:DMG: WriteClient moving to [ResponseRe] @@ -497,16 +497,20 @@ tests: - label: "TH1 removes fabric F2 from DUT" verification: | - ./chip-tool operationalcredentials remove-fabric 2 2 0 --commissioner-name beta --commissioner-nodeid 223344 + ./chip-tool operationalcredentials remove-fabric 2 1 0 - On TH1(Chiptool), Verify successfully removed fabric F2 - [1657289809.358455][19309:19314] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 - [1657289809.358500][19309:19314] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008 - [1657289809.358559][19309:19314] CHIP:TOO: NOCResponse: { - [1657289809.358600][19309:19314] CHIP:TOO: statusCode: 0 - [1657289809.358620][19309:19314] CHIP:TOO: fabricIndex: 2 - [1657289809.358641][19309:19314] CHIP:TOO: } + On TH1(Chiptool), Verify successfully removed fabric F2 with statusCode as 0(Success) + + [1661404505.702969][18706:18711] CHIP:DMG: + [1661404505.702979][18706:18711] CHIP:DMG: InteractionModelRevision = 1 + [1661404505.702987][18706:18711] CHIP:DMG: }, + [1661404505.703020][18706:18711] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008 + [1661404505.703047][18706:18711] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008 + [1661404505.703081][18706:18711] CHIP:TOO: NOCResponse: { + [1661404505.703104][18706:18711] CHIP:TOO: statusCode: 0 + [1661404505.703126][18706:18711] CHIP:TOO: fabricIndex: 2 + [1661404505.703139][18706:18711] CHIP:TOO: } disabled: true - label: "TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute" diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_3.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_3.yaml index a0ecce5d17f816..e5b34505a45c87 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_3.yaml @@ -114,7 +114,7 @@ tests: verification: | ./chip-tool accesscontrol write extension '[{"data":"1718"}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element + On TH1(Chiptool) , Verify that the status is Success when writing the AccessControl cluster Extension attribute [1656416335.284463][3747:3752] CHIP:DMG: WriteResponseMessage = [1656416335.284498][3747:3752] CHIP:DMG: { @@ -160,39 +160,10 @@ tests: verification: | ./chip-tool accesscontrol read extension 1 0 - On TH1(Chiptool) , Verify value is list of AccessControlExtensionStructcontaining 1 element . Data field: D_OK_EMPTY : "1718" - + On TH1(Chiptool) , Verify value is list of AccessControlExtensionStruct containing 1 element . Data field: D_OK_EMPTY : "1718" and FabricIndex field: F1 - [1657278638.722246][9030:9035] CHIP:DMG: AttributeReportIB = - [1657278638.722296][9030:9035] CHIP:DMG: { - [1657278638.722333][9030:9035] CHIP:DMG: AttributeDataIB = - [1657278638.722377][9030:9035] CHIP:DMG: { - [1657278638.722424][9030:9035] CHIP:DMG: DataVersion = 0x1f506607, - [1657278638.722475][9030:9035] CHIP:DMG: AttributePathIB = - [1657278638.722519][9030:9035] CHIP:DMG: { - [1657278638.722568][9030:9035] CHIP:DMG: Endpoint = 0x0, - [1657278638.722624][9030:9035] CHIP:DMG: Cluster = 0x1f, - [1657278638.722676][9030:9035] CHIP:DMG: Attribute = 0x0000_0001, - [1657278638.722726][9030:9035] CHIP:DMG: ListIndex = Null, - [1657278638.722773][9030:9035] CHIP:DMG: } - [1657278638.722824][9030:9035] CHIP:DMG: - [1657278638.722874][9030:9035] CHIP:DMG: Data = - [1657278638.722922][9030:9035] CHIP:DMG: { - [1657278638.723001][9030:9035] CHIP:DMG: 0x1 = [ - [1657278638.723055][9030:9035] CHIP:DMG: 0x17, 0x18, - [1657278638.723113][9030:9035] CHIP:DMG: ] - [1657278638.723166][9030:9035] CHIP:DMG: 0xfe = 1, - [1657278638.723212][9030:9035] CHIP:DMG: }, - [1657278638.723262][9030:9035] CHIP:DMG: }, - [1657278638.723311][9030:9035] CHIP:DMG: - [1657278638.723350][9030:9035] CHIP:DMG: }, - [1657278638.723400][9030:9035] CHIP:DMG: - [1657278638.723435][9030:9035] CHIP:DMG: ], - [1657278638.723487][9030:9035] CHIP:DMG: - [1657278638.723524][9030:9035] CHIP:DMG: SuppressResponse = true, - [1657278638.723563][9030:9035] CHIP:DMG: InteractionModelRevision = 1 - [1657278638.723598][9030:9035] CHIP:DMG: } + [1657278638.723927][9030:9035] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0001 DataVersion: 525362695 [1657278638.724004][9030:9035] CHIP:TOO: Extension: 1 entries [1657278638.724072][9030:9035] CHIP:TOO: [1]: { @@ -211,7 +182,7 @@ tests: verification: | ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element . + On TH1(Chiptool) , Verify that the status is success when writing the AccessControl cluster Extension attribute. [1656416899.781899][3814:3819] CHIP:DMG: WriteResponseMessage = @@ -266,8 +237,8 @@ tests: verification: | ./chip-tool accesscontrol read extension 1 0 - On TH1(Chiptool) , Verify the AccessControlExtensionStruct containing 1 element 1.struct - Data field: D_OK_SINGLE :"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" + On TH1(Chiptool) , Verify the AccessControlExtensionStruct containing 1 element + Data field: D_OK_SINGLE :"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" and FabricIndex field : F1 [1657278788.400832][9048:9053] CHIP:DMG: ReportDataMessage = [1657278788.400863][9048:9053] CHIP:DMG: { @@ -333,14 +304,14 @@ tests: - label: "TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element - struct Data field: D_OK_FULL + 1.struct Data field: D_OK_FULL :17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003148656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E0018 which is an octstr of length 128 containing valid TLV:" PICS: ACL.S.A0001 verification: | ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003148656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E0018"}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element + On TH1(Chiptool) , Verify that the status is success when writing the AccessControl cluster Extension attribute [1656417544.279572][3888:3893] CHIP:DMG: WriteResponseMessage = [1656417544.279598][3888:3893] CHIP:DMG: { [1656417544.279620][3888:3893] CHIP:DMG: AttributeStatusIBs = @@ -383,9 +354,9 @@ tests: PICS: ACL.S.A0001 verification: | ./chip-tool accesscontrol read extension 1 0 - On TH1(Chiptool) , Verify AccessControlExtensionStructcontaining 1 element 1.struct + On TH1(Chiptool) , Verify AccessControlExtensionStructcontaining 1 element Data field: - D_OK_FULL :"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003148656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E0018" + D_OK_FULL :"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003148656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E0018" and FabricIndex field : F1 1657278905.391846][9065:9070] CHIP:DMG: ReportDataMessage = @@ -457,8 +428,7 @@ tests: PICS: ACL.S.A0001 verification: | ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018"}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element which Returns CONSTRAINT_ERROR (0x87) - + On TH1(Chiptool) , Verify that the status is CONSTRAINT_ERROR (0x87) when writing the AccessControl cluster Extension attribute [1657279033.591694][9081:9086] CHIP:DMG: StatusIB = [1657279033.591739][9081:9086] CHIP:DMG: { @@ -487,8 +457,7 @@ tests: verification: | ./chip-tool accesscontrol write extension '[{"data":"1518"}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element which Returns CONSTRAINT_ERROR (0x87) - + On TH1(Chiptool) , Verify that the status is CONSTRAINT_ERROR (0x87) when writing the AccessControl cluster Extension attribute [1657609094.515713][8195:8200] CHIP:DMG: StatusIB = [1657609094.515754][8195:8200] CHIP:DMG: { @@ -514,8 +483,7 @@ tests: verification: | ./chip-tool accesscontrol write extension '[{"data":"3701D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element which Returns CONSTRAINT_ERROR (0x87) - + On TH1(Chiptool) , Verify that the status is CONSTRAINT_ERROR (0x87) when writing the AccessControl cluster Extension attribute [1657609434.915033][8206:8211] CHIP:DMG: StatusIB = [1657609434.915073][8206:8211] CHIP:DMG: { @@ -541,7 +509,7 @@ tests: verification: | ./chip-tool accesscontrol write extension '[{"data":"17103D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool) , Verify that the status is CONSTRAINT_ERROR (0x87) when writing the AccessControl cluster Extension attribute [1657609579.494576][8215:8220] CHIP:DMG: @@ -569,7 +537,7 @@ tests: verification: | ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018FF"}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool) , Verify that the status is CONSTRAINT_ERROR (0x87) when writing the AccessControl cluster Extension attribute [1657609625.259137][8223:8228] CHIP:DMG: [1657609625.259168][8223:8228] CHIP:DMG: StatusIB = @@ -596,7 +564,7 @@ tests: verification: | ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700"}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element, Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool) , Verify that the status is CONSTRAINT_ERROR (0x87) when writing the AccessControl cluster Extension attribute [1657609654.299668][8229:8234] CHIP:DMG: StatusIB = [1657609654.299712][8229:8234] CHIP:DMG: { @@ -621,7 +589,7 @@ tests: verification: | ./chip-tool accesscontrol write extension '[{"data":""}]' 1 0 - On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element, Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool) , Verify that the status is CONSTRAINT_ERROR (0x87) when writing the AccessControl cluster Extension attribute [1657609694.046042][8236:8241] CHIP:DMG: @@ -651,8 +619,37 @@ tests: verification: | ./chip-tool accesscontrol write extension '[{"data":"1718"},{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0 - On TH1(Chiptool) , Verify Successfully AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 2 elements and CONSTRAINT_ERROR (0x87) for second element path - + On TH1(Chiptool) , Verify that the status is success for first element and CONSTRAINT_ERROR (0x87) for second element when writing the AccessControl cluster Extension attribute + + [1657609694.044950][8236:8241] CHIP:DMG: WriteResponseMessage = + [1657609694.044980][8236:8241] CHIP:DMG: { + [1657609694.045008][8236:8241] CHIP:DMG: AttributeStatusIBs = + [1657609694.045049][8236:8241] CHIP:DMG: [ + [1657609694.045080][8236:8241] CHIP:DMG: AttributeStatusIB = + [1657609694.045117][8236:8241] CHIP:DMG: { + [1657609694.045149][8236:8241] CHIP:DMG: AttributePathIB = + [1657609694.045187][8236:8241] CHIP:DMG: { + [1657609694.045232][8236:8241] CHIP:DMG: Endpoint = 0x0, + [1657609694.045277][8236:8241] CHIP:DMG: Cluster = 0x1f, + [1657609694.045318][8236:8241] CHIP:DMG: Attribute = 0x0000_0001, + [1657609694.045355][8236:8241] CHIP:DMG: } + [1657609694.045397][8236:8241] CHIP:DMG: + [1657609694.045434][8236:8241] CHIP:DMG: StatusIB = + [1657609694.045472][8236:8241] CHIP:DMG: { + [1657609694.045513][8236:8241] CHIP:DMG: status = 0x00 (SUCCESS), + [1657609694.045552][8236:8241] CHIP:DMG: }, + [1657609694.045594][8236:8241] CHIP:DMG: + [1657609694.045627][8236:8241] CHIP:DMG: }, + [1657609694.045670][8236:8241] CHIP:DMG: + [1657609694.045701][8236:8241] CHIP:DMG: AttributeStatusIB = + [1657609694.045733][8236:8241] CHIP:DMG: { + [1657609694.045765][8236:8241] CHIP:DMG: AttributePathIB = + [1657609694.045801][8236:8241] CHIP:DMG: { + [1657609694.045840][8236:8241] CHIP:DMG: Endpoint = 0x0, + [1657609694.045880][8236:8241] CHIP:DMG: Cluster = 0x1f, + [1657609694.045922][8236:8241] CHIP:DMG: Attribute = 0x0000_0001, + [1657609694.045962][8236:8241] CHIP:DMG: ListIndex = Null, + [1657609694.046000][8236:8241] CHIP:DMG: } [1657279798.809590][9208:9213] CHIP:DMG: [1657279798.809629][9208:9213] CHIP:DMG: StatusIB = [1657279798.809666][9208:9213] CHIP:DMG: { @@ -676,57 +673,10 @@ tests: verification: | ./chip-tool accesscontrol read extension 1 0 - On TH1(Chiptool) , Verify Successfully the list of AccessControlExtensionStruct containing 1 element. - - - 1657279968.695899][9221:9226] CHIP:DMG: ReportDataMessage = - [1657279968.695931][9221:9226] CHIP:DMG: { - [1657279968.695956][9221:9226] CHIP:DMG: AttributeReportIBs = - [1657279968.696012][9221:9226] CHIP:DMG: [ - [1657279968.696039][9221:9226] CHIP:DMG: AttributeReportIB = - [1657279968.696073][9221:9226] CHIP:DMG: { - [1657279968.696100][9221:9226] CHIP:DMG: AttributeDataIB = - [1657279968.696138][9221:9226] CHIP:DMG: { - [1657279968.696178][9221:9226] CHIP:DMG: DataVersion = 0x1f50661e, - [1657279968.696221][9221:9226] CHIP:DMG: AttributePathIB = - [1657279968.696307][9221:9226] CHIP:DMG: { - [1657279968.696346][9221:9226] CHIP:DMG: Endpoint = 0x0, - [1657279968.696407][9221:9226] CHIP:DMG: Cluster = 0x1f, - [1657279968.696449][9221:9226] CHIP:DMG: Attribute = 0x0000_0001, - [1657279968.696501][9221:9226] CHIP:DMG: } - [1657279968.696549][9221:9226] CHIP:DMG: - [1657279968.696600][9221:9226] CHIP:DMG: Data = [ - [1657279968.696641][9221:9226] CHIP:DMG: - [1657279968.696697][9221:9226] CHIP:DMG: ], - [1657279968.696748][9221:9226] CHIP:DMG: }, - [1657279968.696795][9221:9226] CHIP:DMG: - [1657279968.696840][9221:9226] CHIP:DMG: }, - [1657279968.696900][9221:9226] CHIP:DMG: - [1657279968.696931][9221:9226] CHIP:DMG: AttributeReportIB = - [1657279968.696985][9221:9226] CHIP:DMG: { - [1657279968.697021][9221:9226] CHIP:DMG: AttributeDataIB = - [1657279968.697071][9221:9226] CHIP:DMG: { - [1657279968.697110][9221:9226] CHIP:DMG: DataVersion = 0x1f50661e, - [1657279968.697161][9221:9226] CHIP:DMG: AttributePathIB = - [1657279968.697204][9221:9226] CHIP:DMG: { - [1657279968.697256][9221:9226] CHIP:DMG: Endpoint = 0x0, - [1657279968.697313][9221:9226] CHIP:DMG: Cluster = 0x1f, - [1657279968.697357][9221:9226] CHIP:DMG: Attribute = 0x0000_0001, - [1657279968.697411][9221:9226] CHIP:DMG: ListIndex = Null, - [1657279968.697452][9221:9226] CHIP:DMG: } - [1657279968.697508][9221:9226] CHIP:DMG: - [1657279968.697562][9221:9226] CHIP:DMG: Data = - [1657279968.697604][9221:9226] CHIP:DMG: { - [1657279968.697683][9221:9226] CHIP:DMG: 0x1 = [ - [1657279968.697733][9221:9226] CHIP:DMG: 0x17, 0x18, - [1657279968.697783][9221:9226] CHIP:DMG: ] - [1657279968.697846][9221:9226] CHIP:DMG: 0xfe = 1, - [1657279968.697896][9221:9226] CHIP:DMG: }, - [1657279968.697926][9221:9226] CHIP:DMG: }, - [1657279968.697961][9221:9226] CHIP:DMG: - [1657279968.697992][9221:9226] CHIP:DMG: }, - [1657279968.698033][9221:9226] CHIP:DMG: - [1657279968.698073][9221:9226] CHIP:DMG: ], + On TH1(Chiptool) , Verify Successfully the list of AccessControlExtensionStruct containing Data field: D_OK_EMPTY :"1718" and + FabricIndex field: F1. + + [1657279968.698117][9221:9226] CHIP:DMG: [1657279968.698149][9221:9226] CHIP:DMG: SuppressResponse = true, [1657279968.698193][9221:9226] CHIP:DMG: InteractionModelRevision = 1 @@ -747,7 +697,7 @@ tests: verification: | ./chip-tool accesscontrol write extension '[]' 1 0 - On TH1(Chiptool) , Verify Successfully,AccessControl cluster Extension attribute, value is an empty list + On TH1(Chiptool) , Verify that the status is success when writing the AccessControl cluster Extension attribute 7625][1521:1526] CHIP:DMG: AttributeStatusIB = [1657692723.227673][1521:1526] CHIP:DMG: { diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml index 03dba82825bc9b..0a2c47504da02f 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml @@ -27,7 +27,7 @@ tests: - label: "TH1 commissions DUT using admin node ID N1" verification: | DUT - sudo ./chip-all-clusters-app + sudo ./chip-all-clusters-app --wifi TH1 ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841 @@ -40,7 +40,7 @@ tests: ./chip-tool operationalcredentials read current-fabric-index 1 0 - On TH1(Chiptool), verify to CurrentFabricIndex attribute of operationalCredential cluster as 1 + On TH1(Chiptool), verify the CurrentFabricIndex as 1 [1656652012.060584][2763:2768] CHIP:DMG: [1656652012.060609][2763:2768] CHIP:DMG: SuppressResponse = true, @@ -58,7 +58,7 @@ tests: verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 1 element + On TH1(Chiptool) , Verify that the AccessControlEntryStruct containing 1 element [1656652338.381499][2784:2789] CHIP:DMG: }, [1656652338.381552][2784:2789] CHIP:DMG: @@ -92,10 +92,8 @@ tests: 888] Targets field: [{Cluster: 55}, {Endpoint: 66}]" PICS: ACL.S.A0000 verification: | - ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, - { "privilege": 1, "authMode": 3, "subjects": [111,222,333,444], "targets": [{"cluster":11 , "endpoint":22, "deviceType": null}]}, - { "privilege": 3, "authMode": 3, "subjects": [555,666,777,888], "targets": [{"cluster": 55, "endpoint": 66, "deviceType":null }]}]' 1 0 - On TH1(Chiptool), Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 1, "authMode": 3, "subjects": [111,222,333,444], "targets": [{"cluster":11 , "endpoint":22, "deviceType": null}]},{ "privilege": 3, "authMode": 3, "subjects": [555,666,777,888], "targets": [{"cluster": 55, "endpoint": 66, "deviceType":null }]}]' 1 0 + On TH1(Chiptool), Verify that the status is success when writing the AccessControl cluster ACL attribute with 3 elements [1658323877.660699][2502:2507] CHIP:DMG: WriteClient moving to [ResponseRe] [1658323877.660829][2502:2507] CHIP:DMG: WriteResponseMessage = [1658323877.660890][2502:2507] CHIP:DMG: { @@ -180,7 +178,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements + On TH1(Chiptool) , Verify that the AccessControlEntryStruct contains 3 elements InteractionModelRevision = 1 [1658229676.712083][4872:4878] CHIP:DMG: } [1658229676.712624][4872:4878] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 1307037423 @@ -235,13 +233,13 @@ tests: field: [N1] Targets field: null 2.struct Privilege field: Manage (4) AuthMode field: Group (3) Subjects field: [444, 333, 222, 111] Targets field: [{Cluster: 44}, {Endpoint: 33}] 3.struct Privilege field: - Administer (5) AuthMode field: CASE (3) Subjects field: [888, 777, + Administer (5) AuthMode field: CASE (2) Subjects field: [888, 777, 666, 555] Targets field: [{Cluster: 88}, {Endpoint: 77}]" PICS: ACL.S.A0000 verification: | - ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 4, "authMode": 2, "subjects": [444,333,222,111], "targets": [{"cluster":44 , "endpoint":33, "deviceType":null}]},{ "privilege":4 , "authMode":3, "subjects": [888,777,666,555], "targets": [{"cluster": 88, "endpoint": 77, "deviceType":null}]}]' 1 0 + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 4, "authMode": 3, "subjects": [444,333,222,111], "targets": [{"cluster":44 , "endpoint":33, "deviceType":null}]},{ "privilege":5, "authMode":2, "subjects": [888,777,666,555], "targets": [{"cluster": 88, "endpoint": 77, "deviceType":null}]}]' 1 0 - On TH1(Chiptool) , Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements + On TH1(Chiptool) , Verify that the status is success when writing the AccessControl cluster ACL attribute with 3 elements 1658226959.554674][4736:4741] CHIP:DMG: AttributeStatusIBs = [1658226959.554706][4736:4741] CHIP:DMG: [ [1658226959.554732][4736:4741] CHIP:DMG: AttributeStatusIB = @@ -317,7 +315,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool), Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements + On TH1(Chiptool), Verify that the AccessControlEntryStruct contains 3 elements 9800.959293][4892:4897] CHIP:DMG: [1658229800.959325][4892:4897] CHIP:DMG: ], [1658229800.959399][4892:4897] CHIP:DMG: @@ -336,7 +334,7 @@ tests: [1658229800.960625][4892:4897] CHIP:TOO: } [1658229800.960673][4892:4897] CHIP:TOO: [2]: { [1658229800.960706][4892:4897] CHIP:TOO: Privilege: 4 - [1658229800.960736][4892:4897] CHIP:TOO: AuthMode: 2 + [1658229800.960736][4892:4897] CHIP:TOO: AuthMode: 3 [1658229800.960771][4892:4897] CHIP:TOO: Subjects: 4 entries [1658229800.960806][4892:4897] CHIP:TOO: [1]: 444 [1658229800.960840][4892:4897] CHIP:TOO: [2]: 333 @@ -351,8 +349,8 @@ tests: [1658229800.961167][4892:4897] CHIP:TOO: FabricIndex: 1 [1658229800.961197][4892:4897] CHIP:TOO: } [1658229800.961245][4892:4897] CHIP:TOO: [3]: { - [1658229800.961277][4892:4897] CHIP:TOO: Privilege: 4 - [1658229800.961308][4892:4897] CHIP:TOO: AuthMode: 3 + [1658229800.961277][4892:4897] CHIP:TOO: Privilege: 5 + [1658229800.961308][4892:4897] CHIP:TOO: AuthMode: 2 [1658229800.961343][4892:4897] CHIP:TOO: Subjects: 4 entries [1658229800.961378][4892:4897] CHIP:TOO: [1]: 888 [1658229800.961411][4892:4897] CHIP:TOO: [2]: 777 @@ -382,7 +380,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 1, "authMode": 2, "subjects": [111,222,333,444], "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": null },{ "cluster": 33, "endpoint": null, "deviceType": 44 }]}, { "privilege": 3, "authMode": 3, "subjects": [555,666,777,888], "targets":[{ "cluster": 55, "endpoint": 66, "deviceType": null },{ "cluster": 77, "endpoint": null, "deviceType": 88 }]}]' 1 0 - On TH1(Chiptool), Verify the Successfully to acl attribute with a value is list of AccessControlEntryStruct containing 3 elements + On TH1(Chiptool), Verify that the status is success when writing the AccessControl cluster ACL attribute with 3 elements 1657276276.708941][2297:2302] CHIP:DMG: WriteClient moving to [ResponseRe] [1657276276.709021][2297:2302] CHIP:DMG: WriteResponseMessage = [1657276276.709058][2297:2302] CHIP:DMG: { @@ -465,7 +463,8 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool), Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements + On TH1(Chiptool), Verify that the AccessControlEntryStruct contains 3 elements + [1657278053.764924][2231:2236] CHIP:DMG: SuppressResponse = true, [1657278053.764958][2231:2236] CHIP:DMG: InteractionModelRevision = 1 @@ -539,8 +538,8 @@ tests: DeviceType: 88}]" PICS: ACL.S.A0000 verification: | - ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 1, "authMode": 2, "subjects": [], "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": null },{ "cluster": 33, "endpoint": null, "deviceType": 44 }]}, { "privilege": 3, "authMode": 3, "subjects": [], "targets":[{ "cluster": 55, "endpoint": 66, "deviceType": null },{ "cluster": 77, "endpoint": null, "deviceType": 88 }]}]' 1 0 - On TH1(Chiptool) , Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 1, "authMode": 2, "subjects": null, "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": null },{ "cluster": 33, "endpoint": null, "deviceType": 44 }]}, { "privilege": 3, "authMode": 3, "subjects": null, "targets":[{ "cluster": 55, "endpoint": 66, "deviceType": null },{ "cluster": 77, "endpoint": null, "deviceType": 88 }]}]' 1 0 + On TH1(Chiptool) , Verify that the status is success when writing the AccessControl cluster ACL attribute with 3 elements [1657541707.114348][3004:3009] CHIP:DMG: { [1657541707.114393][3004:3009] CHIP:DMG: AttributeStatusIBs = @@ -622,7 +621,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements + On TH1(Chiptool) , Verify that the AccessControlEntryStruct contains 3 elements [1657278352.938811][2258:2263] CHIP:DMG: [1657278352.938840][2258:2263] CHIP:DMG: }, @@ -693,7 +692,7 @@ tests: ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 1, "authMode": 2, "subjects": [111, 222, 333, 444], "targets": null}, { "privilege": 3, "authMode": 3, "subjects": [555, 666, 777, 888], "targets": null}]' 1 0 - On TH1(Chiptool) , Verify Successfully to acl attribute value is list of AccessControlEntryStruct containing 3 elements as Target Null. + On TH1(Chiptool) , Verify that the status is success when writing the AccessControl cluster ACL attribute with 3 elements with Target as Null. [1657542060.230268][3398:3403] CHIP:DMG: { [1657542060.230322][3398:3403] CHIP:DMG: AttributeStatusIBs = @@ -775,7 +774,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements as Target Null + On TH1(Chiptool) , Verify that the AccessControlEntryStruct contains 3 elements with Target as null [1656656511.643560][2994:2999] CHIP:DMG: [1656656511.643593][2994:2999] CHIP:DMG: SuppressResponse = true, [1656656511.643626][2994:2999] CHIP:DMG: InteractionModelRevision = 1 @@ -825,8 +824,7 @@ tests: verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 3, "subjects": null, "targets": null}]' 1 0 - - On TH1(Chiptool) , Verify Successfully to acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as Target Null + On TH1(Chiptool) , Verify that the status is success when writing the AccessControl cluster ACL attribute with 2 elements [1656507141.628453][3224:3229] CHIP:DMG: WriteResponseMessage = [1656507141.628515][3224:3229] CHIP:DMG: { @@ -870,7 +868,7 @@ tests: [1656507141.631353][3224:3229] CHIP:DMG: AttributePathIB = [1656507141.631426][3224:3229] CHIP:DMG: { [1656507141.631501][3224:3229] CHIP:DMG: Endpoint = 0x0, - [1656507141.631584][3224:3229] CHIP:DMG: Cluster = 0x1f, + [1656507141.631584][3224:3229] CHIP:DMG: Cluster = 0x1f, [1656507141.631664][3224:3229] CHIP:DMG: Attribute = 0x0000_0000, [1656507141.631742][3224:3229] CHIP:DMG: ListIndex = Null, [1656507141.631824][3224:3229] CHIP:DMG: } @@ -894,7 +892,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully that acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as Target Null + On TH1(Chiptool) , Verify that the AccessControlEntryStruct contains 2 elements with Subject and Target as null [1656507318.740283][3241:3246] CHIP:DMG: ], [1656507318.740346][3241:3246] CHIP:DMG: @@ -931,7 +929,7 @@ tests: verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 2, "authMode": 2, "subjects": null, "targets": null}]' 1 0 - On TH1(Chiptool), Verify Successfully that acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as Subject and Target as null + On TH1(Chiptool), Verify that the status is Success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as Subject and Target as null [1656507439.868495][3249:3254] CHIP:DMG: WriteClient moving to [ResponseRe] [1656507439.868612][3249:3254] CHIP:DMG: WriteResponseMessage = [1656507439.868671][3249:3254] CHIP:DMG: { @@ -998,8 +996,8 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully acl attribute value is list of AccessControlEntryStruct containing 2 elements as Subject and Target as null + On TH1(Chiptool) , Verify that the AccessControlEntryStruct contains 2 elements with Subject and Target as null [1656507517.730614][3261:3266] CHIP:DMG: [1656507517.730654][3261:3266] CHIP:DMG: SuppressResponse = true, [1656507517.730695][3261:3266] CHIP:DMG: InteractionModelRevision = 1 @@ -1055,7 +1053,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects":[33,44,55,66] , "targets": null}]' 1 0 - On TH1(Chiptool), Verify Successfully acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as Subject as SUBJECTS and Target as null + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as Subject as SUBJECTS and Target as null @@ -1124,7 +1122,7 @@ tests: verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as SUBJECTS and Target as null + On TH1(Chiptool) , Verify that the AccessControlEntryStruct contains 2 elements with Subject as SUBJECTS and Target as null [1656928460.992030][4255:4260] CHIP:DMG: ], [1656928460.992075][4255:4260] CHIP:DMG: [1656928460.992101][4255:4260] CHIP:DMG: SuppressResponse = true, @@ -1166,8 +1164,7 @@ tests: verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects":[65520,65521,65522,65523] , "targets": null}]' 1 0 - - On TH1(Chiptool) , Verify Successfully acl attribute value is list of AccessControlEntryStruct containing 2 elements , Subjects as CAT Values and Target as null + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Subjects as CAT Values and Target as null [1656509348.174135][3403:3408] CHIP:DMG: WriteClient moving to [ResponseRe] [1656509348.174227][3403:3408] CHIP:DMG: WriteResponseMessage = [1656509348.174272][3403:3408] CHIP:DMG: { @@ -1236,7 +1233,7 @@ tests: verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully that acl attribute with a value is list of AccessControlEntryStruct containing 2 elements , Subjects as CAT Values and Target as null + On TH1(Chiptool) , Verify that the AccessControlEntryStruct contains 2 elements with Subjects as CAT Values and Target as null [1656509471.738046][3416:3421] CHIP:DMG: [1656509471.738082][3416:3421] CHIP:DMG: SuppressResponse = true, [1656509471.738120][3416:3421] CHIP:DMG: InteractionModelRevision = 1 @@ -1293,9 +1290,8 @@ tests: MAXTARGETS targets {Cluster: random} (stored as TARGETS)" PICS: ACL.S.A0000 verification: | - ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 40, "endpoint": null, "deviceType": null },{ "cluster": 28, "endpoint": null, "deviceType": null }]}]' 1 0 - - On TH1(Chiptool) , Verify Successfully acl attribute with value is list of AccessControlEntryStruct containing 2 elements , Subjects as null and and Target as null + ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": null, "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 40, "endpoint": null, "deviceType": null },{ "cluster": 28, "endpoint": null, "deviceType": null }]}]' 1 0 + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Subjects as null and and Target as TARGETS [1657542520.140869][3499:3504] CHIP:DMG: { [1657542520.140922][3499:3504] CHIP:DMG: AttributeStatusIBs = @@ -1361,7 +1357,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully that acl attribute with value is list of AccessControlEntryStruct containing 2 elements , Subjects as null and and Target as TARGETS + On TH1(Chiptool) , Verify that the AccessControlEntryStruct contains 2 elements with Subjects as null and and Target as TARGETS [1657542633.704684][3522:3527] CHIP:DMG: } [1657542633.705098][3522:3527] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 3549245792 @@ -1399,7 +1395,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read access-control-entries-per-fabric 1 0 - On TH1(Chiptool), verify with value 3 or greater as AccessControlEntriesPerFabric. + On TH1(Chiptool), verify with value 3 or greater as AccessControlEntriesPerFabric [1656594850.964909][4043:4048] CHIP:DMG: AttributeReportIBs = [1656594850.964954][4043:4048] CHIP:DMG: [ @@ -1441,10 +1437,9 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": null, "targets": null}, - { "privilege": 3, "authMode": 2, "subjects": [], "targets":null}, - { "privilege": 3, "authMode": 2, "subjects": [], "targets":null}]' 1 0 - - On TH1(Chiptool) , Verify Successfully that acl attribute value is list of AccessControlEntryStruct containing MAXENTRIES elements + { "privilege": 3, "authMode": 2, "subjects": null, "targets":null}, + { "privilege": 3, "authMode": 2, "subjects": null, "targets":null}]' 1 0 + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing MAXENTRIES elements [1657617362.022161][8840:8845] CHIP:DMG: WriteResponseMessage = [1657617362.022190][8840:8845] CHIP:DMG: { @@ -1528,7 +1523,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol read acl 1 0 - On TH1(Chiptool) , Verify Successfully that acl attribute with value is list of AccessControlEntryStruct containing MAXENTRIES elements + On TH1(Chiptool) , Verify that the AccessControlEntryStruct containing MAXENTRIES elements [1657543165.385093][3592:3597] CHIP:DMG: } [1657543165.385508][3592:3597] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 3549245812 [1657543165.385586][3592:3597] CHIP:TOO: ACL: 3 entries @@ -1564,9 +1559,8 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{"privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, - { "privilege": 3, "authMode": 1, "subjects": [], "targets":null}]' 1 0 - - On TH1(Chiptool) , Verify Successfully acl attribute value is list of AccessControlEntryStruct containing 2 elements and Returns CONSTRAINT_ERROR (0x87) for second element path + { "privilege": 3, "authMode": 1, "subjects": null, "targets":null}]' 1 0 + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path with PASE Authmode [1658475475.310438][3113:3119] CHIP:DMG: { [1658475475.310466][3113:3119] CHIP:DMG: AttributeStatusIBs = [1658475475.310500][3113:3119] CHIP:DMG: [ @@ -1709,9 +1703,9 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, - { "privilege": 5, "authMode": 3, "subjects": [], "targets":null}]' 1 0 + { "privilege": 5, "authMode": 3, "subjects": null, "targets":null}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements as Subject null and Target null for second element path Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to Administer Privilege with Group AuthMode [1658475916.602576][3151:3156] CHIP:DMG: WriteResponseMessage = [1658475916.602649][3151:3156] CHIP:DMG: { [1658475916.602684][3151:3156] CHIP:DMG: AttributeStatusIBs = @@ -1788,9 +1782,7 @@ tests: { "privilege": 6, "authMode": 2, "subjects": null, "targets":null}]' 1 0 - - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Privilege for second element path Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid privilege . [1658476127.774933][3171:3176] CHIP:EM: Removed CHIP MessageCounter:240294498 from RetransTable on exchange 6954i [1658476127.775074][3171:3176] CHIP:DMG: WriteClient moving to [ResponseRe] @@ -1866,10 +1858,9 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, - { "privilege": 3, "authMode": 4, "subjects": [], "targets":null}]' 1 0 + { "privilege": 3, "authMode": 4, "subjects": null, "targets":null}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Authmode for second element path Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Authmode . [1658476412.664216][3192:3197] CHIP:DMG: WriteResponseMessage = [1658476412.664247][3192:3197] CHIP:DMG: { [1658476412.664275][3192:3197] CHIP:DMG: AttributeStatusIBs = @@ -1943,8 +1934,8 @@ tests: verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": [0], "targets":null}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Subject Field for second element path Returns CONSTRAINT_ERROR (0x87) + + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Subject field . [1658476622.665126][3229:3234] CHIP:DMG: WriteClient moving to [ResponseRe] [1658476622.665195][3229:3234] CHIP:DMG: WriteResponseMessage = [1658476622.665225][3229:3234] CHIP:DMG: { @@ -2020,8 +2011,7 @@ tests: { "privilege": 3, "authMode": 2, "subjects": [18446744073709551615], "targets":null}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Subject Field for second element path Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Subject field . 1658476861.356730][3250:3255] CHIP:DMG: { [1658476861.356767][3250:3255] CHIP:DMG: AttributeStatusIBs = [1658476861.356813][3250:3255] CHIP:DMG: [ @@ -2093,8 +2083,8 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": [18446744060824649728], "targets": null}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Subject Field for second element path Returns CONSTRAINT_ERROR (0x87) + + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Subject field . 8477037.056167][3264:3269] CHIP:DMG: { [1658477037.056200][3264:3269] CHIP:DMG: AttributePathIB = [1658477037.056238][3264:3269] CHIP:DMG: { @@ -2165,8 +2155,7 @@ tests: ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": [18446744073709486080], "targets":null}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Subject Field for second element path Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Subject field . 658477229.869987][3634:3640] CHIP:EM: Removed CHIP MessageCounter:189477251 from RetransTable on exchange 22058i [1658477229.870031][3634:3640] CHIP:DMG: WriteClient moving to [ResponseRe] [1658477229.870093][3634:3640] CHIP:DMG: WriteResponseMessage = @@ -2314,8 +2303,7 @@ tests: verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 4294967295, "endpoint": null, "deviceType": null }]}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Target Field for second element path Returns CONSTRAINT_ERROR (0x87) + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Target field . [1657617852.177018][8933:8938] CHIP:DMG: WriteResponseMessage = [1657617852.177055][8933:8938] CHIP:DMG: { [1657617852.177086][8933:8938] CHIP:DMG: AttributeStatusIBs = @@ -2388,8 +2376,8 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": 65535, "deviceType": null }]}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Target field for second element path Returns CONSTRAINT_ERROR (0x87) + + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Target field . [1657617920.044059][8948:8953] CHIP:DMG: { [1657617920.044085][8948:8953] CHIP:DMG: AttributeStatusIBs = [1657617920.044120][8948:8953] CHIP:DMG: [ @@ -2461,8 +2449,8 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": null, "deviceType": 4294967295 }]}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Target field for second element path Returns CONSTRAINT_ERROR (0x87) + + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Target field . @@ -2537,8 +2525,8 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": 22, "deviceType": 33 }]}]' 1 0 - On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using - Invalid Target field for second element path Returns CONSTRAINT_ERROR (0x87) + + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Target field with both Endpoint and DeviceType fields present [1658477583.616961][3701:3706] CHIP:DMG: WriteClient moving to [ResponseRe] [1658477583.617072][3701:3706] CHIP:DMG: WriteResponseMessage = [1658477583.617120][3701:3706] CHIP:DMG: { @@ -2613,8 +2601,9 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": 33 }]}]' 1 0 - On TH1(Chiptool) , Verify Successfully AccessControlEntryStruct containing 2 elements using - Invalid Target field for second element path Returns CONSTRAINT_ERROR (0x87) + + + On TH1(Chiptool), Verify that the status is success for acl attribute with a value is list of AccessControlEntryStruct containing 2 elements with Success for first element path and CONSTRAINT_ERROR (0x87) for Second element path due to invalid Target field [1658477662.415412][3710:3715] CHIP:EM: Removed CHIP MessageCounter:35384027 from RetransTable on exchange 6953i [1658477662.415452][3710:3715] CHIP:DMG: WriteClient moving to [ResponseRe] [1658477662.415535][3710:3715] CHIP:DMG: WriteResponseMessage = @@ -2687,8 +2676,7 @@ tests: PICS: ACL.S.A0000 verification: | ./chip-tool accesscontrol write acl '[]' 1 0 - - On TH1(Chiptool) , Verify Successfully to AccessControl cluster ACL attribute value is an empty list since all ACL entries removed. + On TH1(Chiptool), Verify that the status is success for acl attribute , since all ACL entries removed RetransTable on exchange 43997i [1660632377.411062][3241:3246] CHIP:DMG: WriteClient moving to [ResponseRe] [1660632377.411111][3241:3246] CHIP:DMG: WriteResponseMessage = diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml index 5bef11cd027112..a463ed899b398f 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml @@ -44,7 +44,7 @@ tests: - label: "TH1 commissions DUT using admin node ID N1" verification: | DUT - sudo ./chip-all-clusters-app + sudo ./chip-all-clusters-app --wifi TH1 ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841 @@ -144,24 +144,23 @@ tests: ./chip-tool accesscontrol read-event access-control-extension-changed 1 0 On TH1(Chiptool), Verify AccessControlExtensionChanged containing 1 element - [1657618132.685459][8992:8998] CHIP:DMG: - [1657618132.685495][8992:8998] CHIP:DMG: SuppressResponse = true, - [1657618132.685532][8992:8998] CHIP:DMG: InteractionModelRevision = 1 - [1657618132.685566][8992:8998] CHIP:DMG: } - [1657618132.685801][8992:8998] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618132.685839][8992:8998] CHIP:TOO: Event number: 86 - [1657618132.685872][8992:8998] CHIP:TOO: Priority: Info - [1657618132.685903][8992:8998] CHIP:TOO: Timestamp: 14043053 - [1657618132.686016][8992:8998] CHIP:TOO: AccessControlExtensionChanged: { - [1657618132.686066][8992:8998] CHIP:TOO: AdminNodeID: 112233 - [1657618132.686102][8992:8998] CHIP:TOO: AdminPasscodeID: null - [1657618132.686138][8992:8998] CHIP:TOO: ChangeType: 1 - [1657618132.686173][8992:8998] CHIP:TOO: LatestValue: { - [1657618132.686208][8992:8998] CHIP:TOO: Data: 1718 - [1657618132.686241][8992:8998] CHIP:TOO: FabricIndex: 1 - [1657618132.686273][8992:8998] CHIP:TOO: } - [1657618132.686306][8992:8998] CHIP:TOO: AdminFabricIndex: 1 - [1657618132.686338][8992:8998] CHIP:TOO: } + [1661428343.981198][23629:23634] CHIP:DMG: + [1661428343.981205][23629:23634] CHIP:DMG: SuppressResponse = true, + [1661428343.981211][23629:23634] CHIP:DMG: InteractionModelRevision = 1 + [1661428343.981217][23629:23634] CHIP:DMG: } + [1661428343.981366][23629:23634] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 + [1661428343.981374][23629:23634] CHIP:TOO: Event number: 4 + [1661428343.981380][23629:23634] CHIP:TOO: Priority: Info + [1661428343.981385][23629:23634] CHIP:TOO: Timestamp: 95059747 + [1661428343.981421][23629:23634] CHIP:TOO: AccessControlExtensionChanged: { + [1661428343.981437][23629:23634] CHIP:TOO: AdminNodeID: 112233 + [1661428343.981443][23629:23634] CHIP:TOO: AdminPasscodeID: null + [1661428343.981450][23629:23634] CHIP:TOO: ChangeType: 1 + [1661428343.981457][23629:23634] CHIP:TOO: LatestValue: { + [1661428343.981465][23629:23634] CHIP:TOO: Data: 1718 + [1661428343.981471][23629:23634] CHIP:TOO: FabricIndex: 1 + [1661428343.981477][23629:23634] CHIP:TOO: } + [1661428343.981484][23629:23634] CHIP:TOO: FabricIndex: 1 disabled: true - label: @@ -172,7 +171,7 @@ tests: PICS: ACL.S.E01 verification: | ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 1 0 - On TH1(Chiptool) , Verify Successfully extension attribute list containg one element + On TH1(Chiptool) , Verify Successfully extension attribute list containing one element 7284747.131523][2411:2416] CHIP:DMG: StatusIB = [1657284747.131568][2411:2416] CHIP:DMG: { [1657284747.131618][2411:2416] CHIP:DMG: status = 0x00 (SUCCESS), @@ -214,50 +213,35 @@ tests: ./chip-tool accesscontrol read-event access-control-extension-changed 1 0 On TH1(Chiptool) , Verify AccessControlExtensionChanged containing at least 2 new elements. - - [1657618237.140162][9007:9012] CHIP:DMG: } - [1657618237.140415][9007:9012] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618237.140445][9007:9012] CHIP:TOO: Event number: 86 - [1657618237.140471][9007:9012] CHIP:TOO: Priority: Info - [1657618237.140497][9007:9012] CHIP:TOO: Timestamp: 14043053 - [1657618237.140596][9007:9012] CHIP:TOO: AccessControlExtensionChanged: { - [1657618237.140639][9007:9012] CHIP:TOO: AdminNodeID: 112233 - [1657618237.140668][9007:9012] CHIP:TOO: AdminPasscodeID: null - [1657618237.140697][9007:9012] CHIP:TOO: ChangeType: 1 - [1657618237.140725][9007:9012] CHIP:TOO: LatestValue: { - [1657618237.140754][9007:9012] CHIP:TOO: Data: 1718 - [1657618237.140781][9007:9012] CHIP:TOO: FabricIndex: 1 - [1657618237.140807][9007:9012] CHIP:TOO: } - [1657618237.140833][9007:9012] CHIP:TOO: AdminFabricIndex: 1 - [1657618237.140860][9007:9012] CHIP:TOO: } - [1657618237.140986][9007:9012] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618237.141014][9007:9012] CHIP:TOO: Event number: 87 - [1657618237.141040][9007:9012] CHIP:TOO: Priority: Info - [1657618237.141066][9007:9012] CHIP:TOO: Timestamp: 14142956 - [1657618237.141108][9007:9012] CHIP:TOO: AccessControlExtensionChanged: { - [1657618237.141138][9007:9012] CHIP:TOO: AdminNodeID: 112233 - [1657618237.141165][9007:9012] CHIP:TOO: AdminPasscodeID: null - [1657618237.141192][9007:9012] CHIP:TOO: ChangeType: 2 - [1657618237.141219][9007:9012] CHIP:TOO: LatestValue: { - [1657618237.141245][9007:9012] CHIP:TOO: Data: 1718 - [1657618237.141271][9007:9012] CHIP:TOO: FabricIndex: 1 - [1657618237.141297][9007:9012] CHIP:TOO: } - [1657618237.141323][9007:9012] CHIP:TOO: AdminFabricIndex: 1 - [1657618237.141349][9007:9012] CHIP:TOO: } - [1657618237.141475][9007:9012] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618237.141503][9007:9012] CHIP:TOO: Event number: 88 - [1657618237.141529][9007:9012] CHIP:TOO: Priority: Info - [1657618237.141555][9007:9012] CHIP:TOO: Timestamp: 14142959 - [1657618237.141596][9007:9012] CHIP:TOO: AccessControlExtensionChanged: { - [1657618237.141626][9007:9012] CHIP:TOO: AdminNodeID: 112233 - [1657618237.141652][9007:9012] CHIP:TOO: AdminPasscodeID: null - [1657618237.141678][9007:9012] CHIP:TOO: ChangeType: 1 - [1657618237.141705][9007:9012] CHIP:TOO: LatestValue: { - [1657618237.141735][9007:9012] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 - [1657618237.141763][9007:9012] CHIP:TOO: FabricIndex: 1 - [1657618237.141788][9007:9012] CHIP:TOO: } - [1657618237.141814][9007:9012] CHIP:TOO: AdminFabricIndex: 1 - [1657618237.141840][9007:9012] CHIP:TOO: } + [1661427357.681328][23441:23446] CHIP:TOO: } + [1661427357.681520][23441:23446] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 + [1661427357.681555][23441:23446] CHIP:TOO: Event number: 5 + [1661427357.681580][23441:23446] CHIP:TOO: Priority: Info + [1661427357.681602][23441:23446] CHIP:TOO: Timestamp: 95095658 + [1661427357.681660][23441:23446] CHIP:TOO: AccessControlExtensionChanged: { + [1661427357.681697][23441:23446] CHIP:TOO: AdminNodeID: 112233 + [1661427357.681730][23441:23446] CHIP:TOO: AdminPasscodeID: null + [1661427357.681764][23441:23446] CHIP:TOO: ChangeType: 2 + [1661427357.681793][23441:23446] CHIP:TOO: LatestValue: { + [1661427357.681826][23441:23446] CHIP:TOO: Data: 1718 + [1661427357.681854][23441:23446] CHIP:TOO: FabricIndex: 1 + [1661427357.681882][23441:23446] CHIP:TOO: } + [1661427357.681924][23441:23446] CHIP:TOO: FabricIndex: 1 + [1661427357.681951][23441:23446] CHIP:TOO: } + [1661427357.682163][23441:23446] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 + [1661427357.682207][23441:23446] CHIP:TOO: Event number: 6 + [1661427357.682230][23441:23446] CHIP:TOO: Priority: Info + [1661427357.682260][23441:23446] CHIP:TOO: Timestamp: 95095659 + [1661427357.682327][23441:23446] CHIP:TOO: AccessControlExtensionChanged: { + [1661427357.682375][23441:23446] CHIP:TOO: AdminNodeID: 112233 + [1661427357.682405][23441:23446] CHIP:TOO: AdminPasscodeID: null + [1661427357.682434][23441:23446] CHIP:TOO: ChangeType: 1 + [1661427357.682459][23441:23446] CHIP:TOO: LatestValue: { + [1661427357.682495][23441:23446] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 + [1661427357.682524][23441:23446] CHIP:TOO: FabricIndex: 1 + [1661427357.682550][23441:23446] CHIP:TOO: } + [1661427357.682579][23441:23446] CHIP:TOO: FabricIndex: 1 + [1661427357.682603][23441:23446] CHIP:TOO: } disabled: true - label: @@ -299,64 +283,19 @@ tests: On TH1(Chiptool) , Verify AccessControl cluster AccessControlExtensionChanged containing at least 1 new element, and MUST NOT contain an added event for the extension with data that is too large - [1657618374.299423][9024:9029] CHIP:DMG: } - [1657618374.299739][9024:9029] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618374.299773][9024:9029] CHIP:TOO: Event number: 86 - [1657618374.299803][9024:9029] CHIP:TOO: Priority: Info - [1657618374.299832][9024:9029] CHIP:TOO: Timestamp: 14043053 - [1657618374.299938][9024:9029] CHIP:TOO: AccessControlExtensionChanged: { - [1657618374.299985][9024:9029] CHIP:TOO: AdminNodeID: 112233 - [1657618374.300018][9024:9029] CHIP:TOO: AdminPasscodeID: null - [1657618374.300050][9024:9029] CHIP:TOO: ChangeType: 1 - [1657618374.300081][9024:9029] CHIP:TOO: LatestValue: { - [1657618374.300114][9024:9029] CHIP:TOO: Data: 1718 - [1657618374.300144][9024:9029] CHIP:TOO: FabricIndex: 1 - [1657618374.300174][9024:9029] CHIP:TOO: } - [1657618374.300204][9024:9029] CHIP:TOO: AdminFabricIndex: 1 - [1657618374.300234][9024:9029] CHIP:TOO: } - [1657618374.300378][9024:9029] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618374.300410][9024:9029] CHIP:TOO: Event number: 87 - [1657618374.300440][9024:9029] CHIP:TOO: Priority: Info - [1657618374.300469][9024:9029] CHIP:TOO: Timestamp: 14142956 - [1657618374.300516][9024:9029] CHIP:TOO: AccessControlExtensionChanged: { - [1657618374.300550][9024:9029] CHIP:TOO: AdminNodeID: 112233 - [1657618374.300580][9024:9029] CHIP:TOO: AdminPasscodeID: null - [1657618374.300611][9024:9029] CHIP:TOO: ChangeType: 2 - [1657618374.300640][9024:9029] CHIP:TOO: LatestValue: { - [1657618374.300671][9024:9029] CHIP:TOO: Data: 1718 - [1657618374.300700][9024:9029] CHIP:TOO: FabricIndex: 1 - [1657618374.300729][9024:9029] CHIP:TOO: } - [1657618374.300760][9024:9029] CHIP:TOO: AdminFabricIndex: 1 - [1657618374.300790][9024:9029] CHIP:TOO: } - [1657618374.300928][9024:9029] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618374.300960][9024:9029] CHIP:TOO: Event number: 88 - [1657618374.300989][9024:9029] CHIP:TOO: Priority: Info - [1657618374.301017][9024:9029] CHIP:TOO: Timestamp: 14142959 - [1657618374.301063][9024:9029] CHIP:TOO: AccessControlExtensionChanged: { - [1657618374.301097][9024:9029] CHIP:TOO: AdminNodeID: 112233 - [1657618374.301127][9024:9029] CHIP:TOO: AdminPasscodeID: null - [1657618374.301157][9024:9029] CHIP:TOO: ChangeType: 1 - [1657618374.301187][9024:9029] CHIP:TOO: LatestValue: { - [1657618374.301221][9024:9029] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 - [1657618374.301253][9024:9029] CHIP:TOO: FabricIndex: 1 - [1657618374.301283][9024:9029] CHIP:TOO: } - [1657618374.301313][9024:9029] CHIP:TOO: AdminFabricIndex: 1 - [1657618374.301343][9024:9029] CHIP:TOO: } - [1657618374.301481][9024:9029] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618374.301513][9024:9029] CHIP:TOO: Event number: 89 - [1657618374.301542][9024:9029] CHIP:TOO: Priority: Info - [1657618374.301571][9024:9029] CHIP:TOO: Timestamp: 14246539 - [1657618374.301617][9024:9029] CHIP:TOO: AccessControlExtensionChanged: { - [1657618374.301650][9024:9029] CHIP:TOO: AdminNodeID: 112233 - [1657618374.301681][9024:9029] CHIP:TOO: AdminPasscodeID: null - [1657618374.301711][9024:9029] CHIP:TOO: ChangeType: 2 - [1657618374.301740][9024:9029] CHIP:TOO: LatestValue: { - [1657618374.301774][9024:9029] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 - [1657618374.301807][9024:9029] CHIP:TOO: FabricIndex: 1 - [1657618374.301831][9024:9029] CHIP:TOO: } - [1657618374.301854][9024:9029] CHIP:TOO: AdminFabricIndex: 1 - [1657618374.301878][9024:9029] CHIP:TOO: } - [1657618374.302025][9024:9029] CHIP:EM: Sending Standalone Ack for MessageCounter:243374650 on exchange 63973i + [1661427763.925039][23523:23528] CHIP:TOO: Event number: 7 + [1661427763.925054][23523:23528] CHIP:TOO: Priority: Info + [1661427763.925067][23523:23528] CHIP:TOO: Timestamp: 95411825 + [1661427763.925095][23523:23528] CHIP:TOO: AccessControlExtensionChanged: { + [1661427763.925112][23523:23528] CHIP:TOO: AdminNodeID: 112233 + [1661427763.925127][23523:23528] CHIP:TOO: AdminPasscodeID: null + [1661427763.925142][23523:23528] CHIP:TOO: ChangeType: 2 + [1661427763.925156][23523:23528] CHIP:TOO: LatestValue: { + [1661427763.925174][23523:23528] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 + [1661427763.925191][23523:23528] CHIP:TOO: FabricIndex: 1 + [1661427763.925205][23523:23528] CHIP:TOO: } + [1661427763.925220][23523:23528] CHIP:TOO: FabricIndex: 1 + [1661427763.925234][23523:23528] CHIP:TOO: } disabled: true - label: @@ -397,106 +336,21 @@ tests: ./chip-tool accesscontrol read-event access-control-extension-changed 1 0 On TH1(Chiptool) , Verify AccessControl cluster AccessControlExtensionChanged event containing at least 1 new element, and MUST NOT contain an added event for the second extension - [1657618501.560311][9050:9055] CHIP:DMG: } - [1657618501.560653][9050:9055] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618501.560682][9050:9055] CHIP:TOO: Event number: 86 - [1657618501.560708][9050:9055] CHIP:TOO: Priority: Info - [1657618501.560732][9050:9055] CHIP:TOO: Timestamp: 14043053 - [1657618501.560826][9050:9055] CHIP:TOO: AccessControlExtensionChanged: { - [1657618501.560868][9050:9055] CHIP:TOO: AdminNodeID: 112233 - [1657618501.560897][9050:9055] CHIP:TOO: AdminPasscodeID: null - [1657618501.560924][9050:9055] CHIP:TOO: ChangeType: 1 - [1657618501.560951][9050:9055] CHIP:TOO: LatestValue: { - [1657618501.560979][9050:9055] CHIP:TOO: Data: 1718 - [1657618501.561005][9050:9055] CHIP:TOO: FabricIndex: 1 - [1657618501.561029][9050:9055] CHIP:TOO: } - [1657618501.561055][9050:9055] CHIP:TOO: AdminFabricIndex: 1 - [1657618501.561080][9050:9055] CHIP:TOO: } - [1657618501.561195][9050:9055] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618501.561222][9050:9055] CHIP:TOO: Event number: 87 - [1657618501.561247][9050:9055] CHIP:TOO: Priority: Info - [1657618501.561271][9050:9055] CHIP:TOO: Timestamp: 14142956 - [1657618501.561311][9050:9055] CHIP:TOO: AccessControlExtensionChanged: { - [1657618501.561341][9050:9055] CHIP:TOO: AdminNodeID: 112233 - [1657618501.561367][9050:9055] CHIP:TOO: AdminPasscodeID: null - [1657618501.561392][9050:9055] CHIP:TOO: ChangeType: 2 - [1657618501.561417][9050:9055] CHIP:TOO: LatestValue: { - [1657618501.561444][9050:9055] CHIP:TOO: Data: 1718 - [1657618501.561468][9050:9055] CHIP:TOO: FabricIndex: 1 - [1657618501.561492][9050:9055] CHIP:TOO: } - [1657618501.561517][9050:9055] CHIP:TOO: AdminFabricIndex: 1 - [1657618501.561542][9050:9055] CHIP:TOO: } - [1657618501.561658][9050:9055] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618501.561685][9050:9055] CHIP:TOO: Event number: 88 - [1657618501.561710][9050:9055] CHIP:TOO: Priority: Info - [1657618501.561734][9050:9055] CHIP:TOO: Timestamp: 14142959 - [1657618501.561773][9050:9055] CHIP:TOO: AccessControlExtensionChanged: { - [1657618501.561802][9050:9055] CHIP:TOO: AdminNodeID: 112233 - [1657618501.561827][9050:9055] CHIP:TOO: AdminPasscodeID: null - [1657618501.561853][9050:9055] CHIP:TOO: ChangeType: 1 - [1657618501.561878][9050:9055] CHIP:TOO: LatestValue: { - [1657618501.561907][9050:9055] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 - [1657618501.561934][9050:9055] CHIP:TOO: FabricIndex: 1 - [1657618501.561958][9050:9055] CHIP:TOO: } - [1657618501.561983][9050:9055] CHIP:TOO: AdminFabricIndex: 1 - [1657618501.562008][9050:9055] CHIP:TOO: } - [1657618501.562125][9050:9055] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618501.562152][9050:9055] CHIP:TOO: Event number: 89 - [1657618501.562176][9050:9055] CHIP:TOO: Priority: Info - [1657618501.562201][9050:9055] CHIP:TOO: Timestamp: 14246539 - [1657618501.562240][9050:9055] CHIP:TOO: AccessControlExtensionChanged: { - [1657618501.562268][9050:9055] CHIP:TOO: AdminNodeID: 112233 - [1657618501.562294][9050:9055] CHIP:TOO: AdminPasscodeID: null - [1657618501.562319][9050:9055] CHIP:TOO: ChangeType: 2 - [1657618501.562345][9050:9055] CHIP:TOO: LatestValue: { - [1657618501.562393][9050:9055] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 - [1657618501.562421][9050:9055] CHIP:TOO: FabricIndex: 1 - [1657618501.562446][9050:9055] CHIP:TOO: } - [1657618501.562472][9050:9055] CHIP:TOO: AdminFabricIndex: 1 - [1657618501.562497][9050:9055] CHIP:TOO: } - [1657618501.562618][9050:9055] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618501.562645][9050:9055] CHIP:TOO: Event number: 90 - [1657618501.562669][9050:9055] CHIP:TOO: Priority: Info - [1657618501.562693][9050:9055] CHIP:TOO: Timestamp: 14367477 - [1657618501.562733][9050:9055] CHIP:TOO: AccessControlExtensionChanged: { - [1657618501.562762][9050:9055] CHIP:TOO: AdminNodeID: 112233 - [1657618501.562789][9050:9055] CHIP:TOO: AdminPasscodeID: null - [1657618501.562811][9050:9055] CHIP:TOO: ChangeType: 1 - [1657618501.562838][9050:9055] CHIP:TOO: LatestValue: { - [1657618501.562864][9050:9055] CHIP:TOO: Data: 1718 - [1657618501.562889][9050:9055] CHIP:TOO: FabricIndex: 1 - [1657618501.562914][9050:9055] CHIP:TOO: } - [1657618501.562939][9050:9055] CHIP:TOO: AdminFabricIndex: 1 - [1657618501.562963][9050:9055] CHIP:TOO: } - [1657618501.563081][9050:9055] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618501.563108][9050:9055] CHIP:TOO: Event number: 91 - [1657618501.563132][9050:9055] CHIP:TOO: Priority: Info - [1657618501.563155][9050:9055] CHIP:TOO: Timestamp: 14412577 - [1657618501.563200][9050:9055] CHIP:TOO: AccessControlExtensionChanged: { - [1657618501.563228][9050:9055] CHIP:TOO: AdminNodeID: 112233 - [1657618501.563254][9050:9055] CHIP:TOO: AdminPasscodeID: null - [1657618501.563279][9050:9055] CHIP:TOO: ChangeType: 2 - [1657618501.563305][9050:9055] CHIP:TOO: LatestValue: { - [1657618501.563331][9050:9055] CHIP:TOO: Data: 1718 - [1657618501.563356][9050:9055] CHIP:TOO: FabricIndex: 1 - [1657618501.563380][9050:9055] CHIP:TOO: } - [1657618501.563405][9050:9055] CHIP:TOO: AdminFabricIndex: 1 - [1657618501.563430][9050:9055] CHIP:TOO: } - [1657618501.563547][9050:9055] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618501.563574][9050:9055] CHIP:TOO: Event number: 92 - [1657618501.563599][9050:9055] CHIP:TOO: Priority: Info - [1657618501.563623][9050:9055] CHIP:TOO: Timestamp: 14412579 - [1657618501.563661][9050:9055] CHIP:TOO: AccessControlExtensionChanged: { - [1657618501.563690][9050:9055] CHIP:TOO: AdminNodeID: 112233 - [1657618501.563715][9050:9055] CHIP:TOO: AdminPasscodeID: null - [1657618501.563740][9050:9055] CHIP:TOO: ChangeType: 1 - [1657618501.563766][9050:9055] CHIP:TOO: LatestValue: { - [1657618501.563792][9050:9055] CHIP:TOO: Data: 1718 - [1657618501.563817][9050:9055] CHIP:TOO: FabricIndex: 1 - [1657618501.563842][9050:9055] CHIP:TOO: } - [1657618501.563867][9050:9055] CHIP:TOO: AdminFabricIndex: 1 - [1657618501.563892][9050:9055] CHIP:TOO: } - [1657618501.564100][9050:9055] CHIP:EM: Sending Standalone Ack for MessageCounter:10278666 on exchange 47099i + [[1661428163.049647][23604:23609] CHIP:TOO: Event number: 8 + [1661428163.049660][23604:23609] CHIP:TOO: Priority: Info + [1661428163.049673][23604:23609] CHIP:TOO: Timestamp: 95827304 + [1661428163.049698][23604:23609] CHIP:TOO: AccessControlExtensionChanged: { + [1661428163.049714][23604:23609] CHIP:TOO: AdminNodeID: 112233 + [1661428163.049729][23604:23609] CHIP:TOO: AdminPasscodeID: null + [1661428163.049744][23604:23609] CHIP:TOO: ChangeType: 1 + [1661428163.049758][23604:23609] CHIP:TOO: LatestValue: { + [1661428163.049774][23604:23609] CHIP:TOO: Data: 1718 + [1661428163.049789][23604:23609] CHIP:TOO: FabricIndex: 1 + [1661428163.049803][23604:23609] CHIP:TOO: } + [1661428163.049817][23604:23609] CHIP:TOO: FabricIndex: 1 + [1661428163.049831][23604:23609] CHIP:TOO: } + [1661428163.050010][23604:23609] CHIP:EM: Sending Standalone Ack for MessageCounter:70117030 on exchange 55174i + [1661428163.050065][23604:23609] CHIP:IN: Prepared secure message 0x7f2e7d092ff0 to 0x0000000000000001 (1) of type 0x10 and protocolId (0, 0) on exchange 55174i disabled: true - label: @@ -507,14 +361,7 @@ tests: ./chip-tool accesscontrol write extension "[]" 1 0 On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is an empty list - 7625][1521:1526] CHIP:DMG: AttributeStatusIB = - [1657692723.227673][1521:1526] CHIP:DMG: { - [1657692723.227725][1521:1526] CHIP:DMG: AttributePathIB = - [1657692723.227780][1521:1526] CHIP:DMG: { - [1657692723.227834][1521:1526] CHIP:DMG: Endpoint = 0x0, - [1657692723.227897][1521:1526] CHIP:DMG: Cluster = 0x1f, - [1657692723.227956][1521:1526] CHIP:DMG: Attribute = 0x0000_0001, - [1657692723.228012][1521:1526] CHIP:DMG: } + [1657692723.228073][1521:1526] CHIP:DMG: [1657692723.228125][1521:1526] CHIP:DMG: StatusIB = [1657692723.228182][1521:1526] CHIP:DMG: { @@ -541,118 +388,19 @@ tests: ./chip-tool accesscontrol read-event access-control-extension-changed 1 0 On TH1(Chiptool) , Verify AccessControl cluster AccessControlExtensionChanged event containing at least 1 new element - [1657618604.091599][9063:9068] CHIP:DMG: } - [1657618604.091929][9063:9068] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618604.091954][9063:9068] CHIP:TOO: Event number: 86 - [1657618604.091976][9063:9068] CHIP:TOO: Priority: Info - [1657618604.091998][9063:9068] CHIP:TOO: Timestamp: 14043053 - [1657618604.092085][9063:9068] CHIP:TOO: AccessControlExtensionChanged: { - [1657618604.092123][9063:9068] CHIP:TOO: AdminNodeID: 112233 - [1657618604.092147][9063:9068] CHIP:TOO: AdminPasscodeID: null - [1657618604.092171][9063:9068] CHIP:TOO: ChangeType: 1 - [1657618604.092193][9063:9068] CHIP:TOO: LatestValue: { - [1657618604.092218][9063:9068] CHIP:TOO: Data: 1718 - [1657618604.092240][9063:9068] CHIP:TOO: FabricIndex: 1 - [1657618604.092261][9063:9068] CHIP:TOO: } - [1657618604.092283][9063:9068] CHIP:TOO: AdminFabricIndex: 1 - [1657618604.092304][9063:9068] CHIP:TOO: } - [1657618604.092409][9063:9068] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618604.092432][9063:9068] CHIP:TOO: Event number: 87 - [1657618604.092454][9063:9068] CHIP:TOO: Priority: Info - [1657618604.092474][9063:9068] CHIP:TOO: Timestamp: 14142956 - [1657618604.092508][9063:9068] CHIP:TOO: AccessControlExtensionChanged: { - [1657618604.092533][9063:9068] CHIP:TOO: AdminNodeID: 112233 - [1657618604.092555][9063:9068] CHIP:TOO: AdminPasscodeID: null - [1657618604.092577][9063:9068] CHIP:TOO: ChangeType: 2 - [1657618604.092598][9063:9068] CHIP:TOO: LatestValue: { - [1657618604.092620][9063:9068] CHIP:TOO: Data: 1718 - [1657618604.092641][9063:9068] CHIP:TOO: FabricIndex: 1 - [1657618604.092662][9063:9068] CHIP:TOO: } - [1657618604.092683][9063:9068] CHIP:TOO: AdminFabricIndex: 1 - [1657618604.092704][9063:9068] CHIP:TOO: } - [1657618604.092806][9063:9068] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618604.092828][9063:9068] CHIP:TOO: Event number: 88 - [1657618604.092850][9063:9068] CHIP:TOO: Priority: Info - [1657618604.092871][9063:9068] CHIP:TOO: Timestamp: 14142959 - [1657618604.092904][9063:9068] CHIP:TOO: AccessControlExtensionChanged: { - [1657618604.092928][9063:9068] CHIP:TOO: AdminNodeID: 112233 - [1657618604.092950][9063:9068] CHIP:TOO: AdminPasscodeID: null - [1657618604.092971][9063:9068] CHIP:TOO: ChangeType: 1 - [1657618604.092993][9063:9068] CHIP:TOO: LatestValue: { - [1657618604.093017][9063:9068] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 - [1657618604.093040][9063:9068] CHIP:TOO: FabricIndex: 1 - [1657618604.093061][9063:9068] CHIP:TOO: } - [1657618604.093082][9063:9068] CHIP:TOO: AdminFabricIndex: 1 - [1657618604.093103][9063:9068] CHIP:TOO: } - [1657618604.093205][9063:9068] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618604.093228][9063:9068] CHIP:TOO: Event number: 89 - [1657618604.093249][9063:9068] CHIP:TOO: Priority: Info - [1657618604.093270][9063:9068] CHIP:TOO: Timestamp: 14246539 - [1657618604.093303][9063:9068] CHIP:TOO: AccessControlExtensionChanged: { - [1657618604.093327][9063:9068] CHIP:TOO: AdminNodeID: 112233 - [1657618604.093349][9063:9068] CHIP:TOO: AdminPasscodeID: null - [1657618604.093371][9063:9068] CHIP:TOO: ChangeType: 2 - [1657618604.093392][9063:9068] CHIP:TOO: LatestValue: { - [1657618604.093416][9063:9068] CHIP:TOO: Data: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018 - [1657618604.093439][9063:9068] CHIP:TOO: FabricIndex: 1 - [1657618604.093460][9063:9068] CHIP:TOO: } - [1657618604.093481][9063:9068] CHIP:TOO: AdminFabricIndex: 1 - [1657618604.093502][9063:9068] CHIP:TOO: } - [1657618604.093604][9063:9068] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618604.093627][9063:9068] CHIP:TOO: Event number: 90 - [1657618604.093649][9063:9068] CHIP:TOO: Priority: Info - [1657618604.093669][9063:9068] CHIP:TOO: Timestamp: 14367477 - [1657618604.093703][9063:9068] CHIP:TOO: AccessControlExtensionChanged: { - [1657618604.093727][9063:9068] CHIP:TOO: AdminNodeID: 112233 - [1657618604.093749][9063:9068] CHIP:TOO: AdminPasscodeID: null - [1657618604.093770][9063:9068] CHIP:TOO: ChangeType: 1 - [1657618604.093791][9063:9068] CHIP:TOO: LatestValue: { - [1657618604.093813][9063:9068] CHIP:TOO: Data: 1718 - [1657618604.093834][9063:9068] CHIP:TOO: FabricIndex: 1 - [1657618604.093855][9063:9068] CHIP:TOO: } - [1657618604.093876][9063:9068] CHIP:TOO: AdminFabricIndex: 1 - [1657618604.093897][9063:9068] CHIP:TOO: } - [1657618604.093997][9063:9068] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618604.094020][9063:9068] CHIP:TOO: Event number: 91 - [1657618604.094040][9063:9068] CHIP:TOO: Priority: Info - [1657618604.094061][9063:9068] CHIP:TOO: Timestamp: 14412577 - [1657618604.094094][9063:9068] CHIP:TOO: AccessControlExtensionChanged: { - [1657618604.094118][9063:9068] CHIP:TOO: AdminNodeID: 112233 - [1657618604.094139][9063:9068] CHIP:TOO: AdminPasscodeID: null - [1657618604.094161][9063:9068] CHIP:TOO: ChangeType: 2 - [1657618604.094182][9063:9068] CHIP:TOO: LatestValue: { - [1657618604.094204][9063:9068] CHIP:TOO: Data: 1718 - [1657618604.094226][9063:9068] CHIP:TOO: FabricIndex: 1 - [1657618604.094246][9063:9068] CHIP:TOO: } - [1657618604.094267][9063:9068] CHIP:TOO: AdminFabricIndex: 1 - [1657618604.094288][9063:9068] CHIP:TOO: } - [1657618604.094406][9063:9068] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618604.094431][9063:9068] CHIP:TOO: Event number: 92 - [1657618604.094452][9063:9068] CHIP:TOO: Priority: Info - [1657618604.094473][9063:9068] CHIP:TOO: Timestamp: 14412579 - [1657618604.094508][9063:9068] CHIP:TOO: AccessControlExtensionChanged: { - [1657618604.094532][9063:9068] CHIP:TOO: AdminNodeID: 112233 - [1657618604.094554][9063:9068] CHIP:TOO: AdminPasscodeID: null - [1657618604.094576][9063:9068] CHIP:TOO: ChangeType: 1 - [1657618604.094598][9063:9068] CHIP:TOO: LatestValue: { - [1657618604.094620][9063:9068] CHIP:TOO: Data: 1718 - [1657618604.094641][9063:9068] CHIP:TOO: FabricIndex: 1 - [1657618604.094662][9063:9068] CHIP:TOO: } - [1657618604.094683][9063:9068] CHIP:TOO: AdminFabricIndex: 1 - [1657618604.094704][9063:9068] CHIP:TOO: } - [1657618604.094803][9063:9068] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 - [1657618604.094826][9063:9068] CHIP:TOO: Event number: 93 - [1657618604.094847][9063:9068] CHIP:TOO: Priority: Info - [1657618604.094868][9063:9068] CHIP:TOO: Timestamp: 14469556 - [1657618604.094901][9063:9068] CHIP:TOO: AccessControlExtensionChanged: { - [1657618604.094925][9063:9068] CHIP:TOO: AdminNodeID: 112233 - [1657618604.094945][9063:9068] CHIP:TOO: AdminPasscodeID: null - [1657618604.094966][9063:9068] CHIP:TOO: ChangeType: 2 - [1657618604.094988][9063:9068] CHIP:TOO: LatestValue: { - [1657618604.095010][9063:9068] CHIP:TOO: Data: 1718 - [1657618604.095031][9063:9068] CHIP:TOO: FabricIndex: 1 - [1657618604.095051][9063:9068] CHIP:TOO: } - [1657618604.095072][9063:9068] CHIP:TOO: AdminFabricIndex: 1 - [1657618604.095093][9063:9068] CHIP:TOO: } - [1657618604.095291][9063:9068] CHIP:EM: Sending Standalone Ack for MessageCounter:28727475 on exchange 42109i + [1661428343.982081][23629:23634] CHIP:TOO: Event number: 9 + [1661428343.982087][23629:23634] CHIP:TOO: Priority: Info + [1661428343.982092][23629:23634] CHIP:TOO: Timestamp: 96078599 + [1661428343.982103][23629:23634] CHIP:TOO: AccessControlExtensionChanged: { + [1661428343.982109][23629:23634] CHIP:TOO: AdminNodeID: 112233 + [1661428343.982115][23629:23634] CHIP:TOO: AdminPasscodeID: null + [1661428343.982121][23629:23634] CHIP:TOO: ChangeType: 2 + [1661428343.982127][23629:23634] CHIP:TOO: LatestValue: { + [1661428343.982133][23629:23634] CHIP:TOO: Data: 1718 + [1661428343.982139][23629:23634] CHIP:TOO: FabricIndex: 1 + [1661428343.982145][23629:23634] CHIP:TOO: } + [1661428343.982151][23629:23634] CHIP:TOO: FabricIndex: 1 + [1661428343.982157][23629:23634] CHIP:TOO: } + [1661428343.982246][23629:23634] CHIP:EM: Sending Standalone Ack for MessageCounter:13864065 on exchange 38943i + [1661428343.982272][23629:23634] CHIP:IN: Prepared secure message 0x7ff9a8e43ff0 to 0x0000000000000001 (1) of type 0x10 and disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_6.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_6.yaml index 0723273609cab5..2a4d89ddfc01b5 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_6.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_6.yaml @@ -32,7 +32,7 @@ tests: - label: "TH1 commissions DUT using admin node ID N1" verification: | DUT - sudo ./chip-all-clusters-app + sudo ./chip-all-clusters-app --wifi TH1 ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841 @@ -47,36 +47,36 @@ tests: On TH1(Chiptool), verify CurrentFabricIndex attribute of operationalCredential cluster as 1 - [1656581567.459433][2846:2851] CHIP:EM: Removed CHIP MessageCounter:147498618 from RetransTable on exchange 16019i - [1656581567.459514][2846:2851] CHIP:DMG: ReportDataMessage = - [1656581567.459558][2846:2851] CHIP:DMG: { - [1656581567.459593][2846:2851] CHIP:DMG: AttributeReportIBs = - [1656581567.459643][2846:2851] CHIP:DMG: [ - [1656581567.459683][2846:2851] CHIP:DMG: AttributeReportIB = - [1656581567.459735][2846:2851] CHIP:DMG: { - [1656581567.459777][2846:2851] CHIP:DMG: AttributeDataIB = - [1656581567.459828][2846:2851] CHIP:DMG: { - [1656581567.459881][2846:2851] CHIP:DMG: DataVersion = 0x69e80d80, - [1656581567.459933][2846:2851] CHIP:DMG: AttributePathIB = - [1656581567.459987][2846:2851] CHIP:DMG: { - [1656581567.460042][2846:2851] CHIP:DMG: Endpoint = 0x0, - [1656581567.460104][2846:2851] CHIP:DMG: Cluster = 0x3e, - [1656581567.460166][2846:2851] CHIP:DMG: Attribute = 0x0000_0005, - [1656581567.460220][2846:2851] CHIP:DMG: } - [1656581567.460277][2846:2851] CHIP:DMG: - [1656581567.460333][2846:2851] CHIP:DMG: Data = 1, - [1656581567.460388][2846:2851] CHIP:DMG: }, - [1656581567.460441][2846:2851] CHIP:DMG: - [1656581567.460485][2846:2851] CHIP:DMG: }, - [1656581567.460537][2846:2851] CHIP:DMG: - [1656581567.460576][2846:2851] CHIP:DMG: ], - [1656581567.460680][2846:2851] CHIP:DMG: - [1656581567.460723][2846:2851] CHIP:DMG: SuppressResponse = true, - [1656581567.460764][2846:2851] CHIP:DMG: InteractionModelRevision = 1 - [1656581567.460802][2846:2851] CHIP:DMG: } - [1656581567.461044][2846:2851] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 1776815488 - [1656581567.463444][2846:2851] CHIP:TOO: CurrentFabricIndex: 1 - [1656581567.463579][2846:2851] CHIP:EM: Sending Standalone Ack for MessageCounter:43211765 on exchange 16019i + [1661170026.158253][5954:5959] CHIP:EM: Removed CHIP MessageCounter:62138196 from RetransTable on exchange 61072i + [1661170026.158379][5954:5959] CHIP:DMG: ReportDataMessage = + [1661170026.158448][5954:5959] CHIP:DMG: { + [1661170026.158502][5954:5959] CHIP:DMG: AttributeReportIBs = + [1661170026.158581][5954:5959] CHIP:DMG: [ + [1661170026.158645][5954:5959] CHIP:DMG: AttributeReportIB = + [1661170026.158735][5954:5959] CHIP:DMG: { + [1661170026.158801][5954:5959] CHIP:DMG: AttributeDataIB = + [1661170026.158881][5954:5959] CHIP:DMG: { + [1661170026.159014][5954:5959] CHIP:DMG: DataVersion = 0xcf6a5453, + [1661170026.159098][5954:5959] CHIP:DMG: AttributePathIB = + [1661170026.159184][5954:5959] CHIP:DMG: { + [1661170026.159271][5954:5959] CHIP:DMG: Endpoint = 0x0, + [1661170026.159363][5954:5959] CHIP:DMG: Cluster = 0x3e, + [1661170026.159454][5954:5959] CHIP:DMG: Attribute = 0x0000_0005, + [1661170026.159540][5954:5959] CHIP:DMG: } + [1661170026.159630][5954:5959] CHIP:DMG: + [1661170026.159720][5954:5959] CHIP:DMG: Data = 1, + [1661170026.159800][5954:5959] CHIP:DMG: }, + [1661170026.159887][5954:5959] CHIP:DMG: + [1661170026.159956][5954:5959] CHIP:DMG: }, + [1661170026.160037][5954:5959] CHIP:DMG: + [1661170026.160097][5954:5959] CHIP:DMG: ], + [1661170026.160173][5954:5959] CHIP:DMG: + [1661170026.160237][5954:5959] CHIP:DMG: SuppressResponse = true, + [1661170026.160300][5954:5959] CHIP:DMG: InteractionModelRevision = 1 + [1661170026.160357][5954:5959] CHIP:DMG: } + [1661170026.160663][5954:5959] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 3479852115 + [1661170026.160789][5954:5959] CHIP:TOO: CurrentFabricIndex: 1 + [1661170026.160987][5954:5959] CHIP:EM: Sending Standalone Ack for MessageCounter:183974641 on exchange 61072i disabled: true - label: @@ -88,65 +88,25 @@ tests: On TH1(Chiptool) , Verify AccessControl cluster AccessControlEntryChanged event containing 1 element - - [[1657618697.392815][9079:9084] CHIP:DMG: - [1657618697.392846][9079:9084] CHIP:DMG: SuppressResponse = true, - [1657618697.392878][9079:9084] CHIP:DMG: InteractionModelRevision = 1 - [1657618697.392906][9079:9084] CHIP:DMG: } - [1657618697.393187][9079:9084] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657618697.393218][9079:9084] CHIP:TOO: Event number: 83 - [1657618697.393245][9079:9084] CHIP:TOO: Priority: Info - [1657618697.393272][9079:9084] CHIP:TOO: Timestamp: 13908987 - [1657618697.393379][9079:9084] CHIP:TOO: AccessControlEntryChanged: { - [1657618697.393423][9079:9084] CHIP:TOO: AdminNodeID: 112233 - [1657618697.393453][9079:9084] CHIP:TOO: AdminPasscodeID: null - [1657618697.393482][9079:9084] CHIP:TOO: ChangeType: 1 - [1657618697.393512][9079:9084] CHIP:TOO: LatestValue: { - [1657618697.393539][9079:9084] CHIP:TOO: Privilege: 5 - [1657618697.393567][9079:9084] CHIP:TOO: AuthMode: 2 - [1657618697.393600][9079:9084] CHIP:TOO: Subjects: 1 entries - [1657618697.393635][9079:9084] CHIP:TOO: [1]: 112233 - [1657618697.393667][9079:9084] CHIP:TOO: Targets: null - [1657618697.393695][9079:9084] CHIP:TOO: FabricIndex: 1 - [1657618697.393722][9079:9084] CHIP:TOO: } - [1657618697.393749][9079:9084] CHIP:TOO: AdminFabricIndex: 1 - [1657618697.393777][9079:9084] CHIP:TOO: } - [1657618697.393916][9079:9084] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657618697.393946][9079:9084] CHIP:TOO: Event number: 84 - [1657618697.393972][9079:9084] CHIP:TOO: Priority: Info - [1657618697.393999][9079:9084] CHIP:TOO: Timestamp: 13941929 - [1657618697.394045][9079:9084] CHIP:TOO: AccessControlEntryChanged: { - [1657618697.394076][9079:9084] CHIP:TOO: AdminNodeID: 112233 - [1657618697.394105][9079:9084] CHIP:TOO: AdminPasscodeID: null - [1657618697.394133][9079:9084] CHIP:TOO: ChangeType: 2 - [1657618697.394160][9079:9084] CHIP:TOO: LatestValue: { - [1657618697.394187][9079:9084] CHIP:TOO: Privilege: 5 - [1657618697.394214][9079:9084] CHIP:TOO: AuthMode: 2 - [1657618697.394245][9079:9084] CHIP:TOO: Subjects: 1 entries - [1657618697.394277][9079:9084] CHIP:TOO: [1]: 112233 - [1657618697.394308][9079:9084] CHIP:TOO: Targets: null - [1657618697.394336][9079:9084] CHIP:TOO: FabricIndex: 1 - [1657618697.394383][9079:9084] CHIP:TOO: } - [1657618697.394412][9079:9084] CHIP:TOO: AdminFabricIndex: 1 - [1657618697.394439][9079:9084] CHIP:TOO: } - [1657618697.394578][9079:9084] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657618697.394609][9079:9084] CHIP:TOO: Event number: 85 - [1657618697.394635][9079:9084] CHIP:TOO: Priority: Info - [1657618697.394661][9079:9084] CHIP:TOO: Timestamp: 13941931 - [1657618697.394709][9079:9084] CHIP:TOO: AccessControlEntryChanged: { - [1657618697.394741][9079:9084] CHIP:TOO: AdminNodeID: 112233 - [1657618697.394770][9079:9084] CHIP:TOO: AdminPasscodeID: null - [1657618697.394798][9079:9084] CHIP:TOO: ChangeType: 1 - [1657618697.394826][9079:9084] CHIP:TOO: LatestValue: { - [1657618697.394853][9079:9084] CHIP:TOO: Privilege: 5 - [1657618697.394880][9079:9084] CHIP:TOO: AuthMode: 2 - [1657618697.394907][9079:9084] CHIP:TOO: Subjects: null - [1657618697.394934][9079:9084] CHIP:TOO: Targets: null - [1657618697.394960][9079:9084] CHIP:TOO: FabricIndex: 1 - [1657618697.394983][9079:9084] CHIP:TOO: } - [1657618697.395005][9079:9084] CHIP:TOO: AdminFabricIndex: 1 - [1657618697.395027][9079:9084] CHIP:TOO: } - [1657618697.395193][9079:9084] CHIP:EM: Sending Standalone Ack for MessageCounter:53700395 on exchange 63882i + [1661181803.224946][19295:19300] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661181803.224955][19295:19300] CHIP:TOO: Event number: 3 + [1661181803.224964][19295:19300] CHIP:TOO: Priority: Info + [1661181803.224971][19295:19300] CHIP:TOO: Timestamp: 31085832 + [1661181803.225035][19295:19300] CHIP:TOO: AccessControlEntryChanged: { + [1661181803.225057][19295:19300] CHIP:TOO: AdminNodeID: null + [1661181803.225070][19295:19300] CHIP:TOO: AdminPasscodeID: 0 + [1661181803.225081][19295:19300] CHIP:TOO: ChangeType: 1 + [1661181803.225090][19295:19300] CHIP:TOO: LatestValue: { + [1661181803.225099][19295:19300] CHIP:TOO: Privilege: 5 + [1661181803.225108][19295:19300] CHIP:TOO: AuthMode: 2 + [1661181803.225122][19295:19300] CHIP:TOO: Subjects: 1 entries + [1661181803.225137][19295:19300] CHIP:TOO: [1]: 112233 + [1661181803.225148][19295:19300] CHIP:TOO: Targets: null + [1661181803.225156][19295:19300] CHIP:TOO: FabricIndex: 1 + [1661181803.225166][19295:19300] CHIP:TOO: } + [1661181803.225175][19295:19300] CHIP:TOO: FabricIndex: 1 + [1661181803.225181][19295:19300] CHIP:TOO: } + [1661181803.225237][19295:19300] CHIP:EM: Sending Standalone Ack for MessageCounter:18980552 on exchange 57350i disabled: true - label: @@ -158,7 +118,7 @@ tests: PICS: ACL.S.E00 verification: | ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, - { "privilege": 3, "authMode": 3, "subjects": [], "targets":null}]" 1 0 + { "privilege": 3, "authMode": 3, "subjects": null, "targets":null}]" 1 0 On TH1(Chiptool) , Verify AccessControl cluster AccessControlEntryChanged event containing 2 elements [[1657545728.526415][3928:3933] CHIP:DMG: WriteResponseMessage = @@ -230,88 +190,86 @@ tests: On TH1(Chiptool) , Verify AccessControl cluster AccessControlEntryChanged event containing at least 3 new elements - [1657618772.535125][9091:9096] CHIP:DMG: - [1657618772.535162][9091:9096] CHIP:DMG: SuppressResponse = true, - [1657618772.535198][9091:9096] CHIP:DMG: InteractionModelRevision = 1 - [1657618772.535232][9091:9096] CHIP:DMG: } - [1657618772.535593][9091:9096] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657618772.535630][9091:9096] CHIP:TOO: Event number: 85 - [1657618772.535663][9091:9096] CHIP:TOO: Priority: Info - [1657618772.535695][9091:9096] CHIP:TOO: Timestamp: 13941931 - [1657618772.535791][9091:9096] CHIP:TOO: AccessControlEntryChanged: { - [1657618772.535883][9091:9096] CHIP:TOO: AdminNodeID: 112233 - [1657618772.535912][9091:9096] CHIP:TOO: AdminPasscodeID: null - [1657618772.535939][9091:9096] CHIP:TOO: ChangeType: 1 - [1657618772.535966][9091:9096] CHIP:TOO: LatestValue: { - [1657618772.535991][9091:9096] CHIP:TOO: Privilege: 5 - [1657618772.536017][9091:9096] CHIP:TOO: AuthMode: 2 - [1657618772.536043][9091:9096] CHIP:TOO: Subjects: null - [1657618772.536067][9091:9096] CHIP:TOO: Targets: null - [1657618772.536092][9091:9096] CHIP:TOO: FabricIndex: 1 - [1657618772.536117][9091:9096] CHIP:TOO: } - [1657618772.536142][9091:9096] CHIP:TOO: AdminFabricIndex: 1 - [1657618772.536168][9091:9096] CHIP:TOO: } - [1657618772.536296][9091:9096] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657618772.536324][9091:9096] CHIP:TOO: Event number: 94 - [1657618772.536349][9091:9096] CHIP:TOO: Priority: Info - [1657618772.536373][9091:9096] CHIP:TOO: Timestamp: 14681840 - [1657618772.536416][9091:9096] CHIP:TOO: AccessControlEntryChanged: { - [1657618772.536444][9091:9096] CHIP:TOO: AdminNodeID: 112233 - [1657618772.536470][9091:9096] CHIP:TOO: AdminPasscodeID: null - [1657618772.536494][9091:9096] CHIP:TOO: ChangeType: 2 - [1657618772.536519][9091:9096] CHIP:TOO: LatestValue: { - [1657618772.536544][9091:9096] CHIP:TOO: Privilege: 5 - [1657618772.536569][9091:9096] CHIP:TOO: AuthMode: 2 - [1657618772.536594][9091:9096] CHIP:TOO: Subjects: null - [1657618772.536618][9091:9096] CHIP:TOO: Targets: null - [1657618772.536643][9091:9096] CHIP:TOO: FabricIndex: 1 - [1657618772.536667][9091:9096] CHIP:TOO: } - [1657618772.536692][9091:9096] CHIP:TOO: AdminFabricIndex: 1 - [1657618772.536717][9091:9096] CHIP:TOO: } - [1657618772.536842][9091:9096] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657618772.536869][9091:9096] CHIP:TOO: Event number: 95 - [1657618772.536894][9091:9096] CHIP:TOO: Priority: Info - [1657618772.536918][9091:9096] CHIP:TOO: Timestamp: 14681842 - [1657618772.536962][9091:9096] CHIP:TOO: AccessControlEntryChanged: { - [1657618772.536990][9091:9096] CHIP:TOO: AdminNodeID: 112233 - [1657618772.537015][9091:9096] CHIP:TOO: AdminPasscodeID: null - [1657618772.537040][9091:9096] CHIP:TOO: ChangeType: 1 - [1657618772.537065][9091:9096] CHIP:TOO: LatestValue: { - [1657618772.537090][9091:9096] CHIP:TOO: Privilege: 5 - [1657618772.537115][9091:9096] CHIP:TOO: AuthMode: 2 - [1657618772.537144][9091:9096] CHIP:TOO: Subjects: 1 entries - [1657618772.537175][9091:9096] CHIP:TOO: [1]: 112233 - [1657618772.537203][9091:9096] CHIP:TOO: Targets: null - [1657618772.537228][9091:9096] CHIP:TOO: FabricIndex: 1 - [1657618772.537253][9091:9096] CHIP:TOO: } - [1657618772.537278][9091:9096] CHIP:TOO: AdminFabricIndex: 1 - [1657618772.537303][9091:9096] CHIP:TOO: } - [1657618772.537426][9091:9096] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657618772.537453][9091:9096] CHIP:TOO: Event number: 96 - [1657618772.537477][9091:9096] CHIP:TOO: Priority: Info - [1657618772.537501][9091:9096] CHIP:TOO: Timestamp: 14681844 - [1657618772.537543][9091:9096] CHIP:TOO: AccessControlEntryChanged: { - [1657618772.537571][9091:9096] CHIP:TOO: AdminNodeID: 112233 - [1657618772.537596][9091:9096] CHIP:TOO: AdminPasscodeID: null - [1657618772.537621][9091:9096] CHIP:TOO: ChangeType: 1 - [1657618772.537645][9091:9096] CHIP:TOO: LatestValue: { - [1657618772.537670][9091:9096] CHIP:TOO: Privilege: 3 - [1657618772.537695][9091:9096] CHIP:TOO: AuthMode: 3 - [1657618772.537720][9091:9096] CHIP:TOO: Subjects: null - [1657618772.537744][9091:9096] CHIP:TOO: Targets: null - [1657618772.537768][9091:9096] CHIP:TOO: FabricIndex: 1 - [1657618772.537792][9091:9096] CHIP:TOO: } - [1657618772.537817][9091:9096] CHIP:TOO: AdminFabricIndex: 1 - [1657618772.537842][9091:9096] CHIP:TOO: } - [1657618772.538004][9091:9096] CHIP:EM: Sending Standalone Ack for MessageCounter:65216018 on exchange 10750i + [1661181829.402498][19315:19320] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661181829.402502][19315:19320] CHIP:TOO: Event number: 3 + [1661181829.402504][19315:19320] CHIP:TOO: Priority: Info + [1661181829.402506][19315:19320] CHIP:TOO: Timestamp: 31085832 + [1661181829.402536][19315:19320] CHIP:TOO: AccessControlEntryChanged: { + [1661181829.402543][19315:19320] CHIP:TOO: AdminNodeID: null + [1661181829.402548][19315:19320] CHIP:TOO: AdminPasscodeID: 0 + [1661181829.402551][19315:19320] CHIP:TOO: ChangeType: 1 + [1661181829.402554][19315:19320] CHIP:TOO: LatestValue: { + [1661181829.402557][19315:19320] CHIP:TOO: Privilege: 5 + [1661181829.402560][19315:19320] CHIP:TOO: AuthMode: 2 + [1661181829.402564][19315:19320] CHIP:TOO: Subjects: 1 entries + [1661181829.402569][19315:19320] CHIP:TOO: [1]: 112233 + [1661181829.402572][19315:19320] CHIP:TOO: Targets: null + [1661181829.402575][19315:19320] CHIP:TOO: FabricIndex: 1 + [1661181829.402578][19315:19320] CHIP:TOO: } + [1661181829.402581][19315:19320] CHIP:TOO: FabricIndex: 1 + [1661181829.402584][19315:19320] CHIP:TOO: } + [1661181829.402609][19315:19320] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661181829.402612][19315:19320] CHIP:TOO: Event number: 4 + [1661181829.402615][19315:19320] CHIP:TOO: Priority: Info + [1661181829.402617][19315:19320] CHIP:TOO: Timestamp: 31297570 + [1661181829.402624][19315:19320] CHIP:TOO: AccessControlEntryChanged: { + [1661181829.402627][19315:19320] CHIP:TOO: AdminNodeID: 112233 + [1661181829.402630][19315:19320] CHIP:TOO: AdminPasscodeID: null + [1661181829.402633][19315:19320] CHIP:TOO: ChangeType: 2 + [1661181829.402635][19315:19320] CHIP:TOO: LatestValue: { + [1661181829.402638][19315:19320] CHIP:TOO: Privilege: 5 + [1661181829.402641][19315:19320] CHIP:TOO: AuthMode: 2 + [1661181829.402644][19315:19320] CHIP:TOO: Subjects: 1 entries + [1661181829.402647][19315:19320] CHIP:TOO: [1]: 112233 + [1661181829.402650][19315:19320] CHIP:TOO: Targets: null + [1661181829.402653][19315:19320] CHIP:TOO: FabricIndex: 1 + [1661181829.402656][19315:19320] CHIP:TOO: } + [1661181829.402658][19315:19320] CHIP:TOO: FabricIndex: 1 + [1661181829.402661][19315:19320] CHIP:TOO: } + [1661181829.402687][19315:19320] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661181829.402689][19315:19320] CHIP:TOO: Event number: 5 + [1661181829.402692][19315:19320] CHIP:TOO: Priority: Info + [1661181829.402694][19315:19320] CHIP:TOO: Timestamp: 31297570 + [1661181829.402699][19315:19320] CHIP:TOO: AccessControlEntryChanged: { + [1661181829.402702][19315:19320] CHIP:TOO: AdminNodeID: 112233 + [1661181829.402704][19315:19320] CHIP:TOO: AdminPasscodeID: null + [1661181829.402707][19315:19320] CHIP:TOO: ChangeType: 1 + [1661181829.402710][19315:19320] CHIP:TOO: LatestValue: { + [1661181829.402713][19315:19320] CHIP:TOO: Privilege: 5 + [1661181829.402715][19315:19320] CHIP:TOO: AuthMode: 2 + [1661181829.402718][19315:19320] CHIP:TOO: Subjects: 1 entries + [1661181829.402722][19315:19320] CHIP:TOO: [1]: 112233 + [1661181829.402724][19315:19320] CHIP:TOO: Targets: null + [1661181829.402727][19315:19320] CHIP:TOO: FabricIndex: 1 + [1661181829.402729][19315:19320] CHIP:TOO: } + [1661181829.402732][19315:19320] CHIP:TOO: FabricIndex: 1 + [1661181829.402735][19315:19320] CHIP:TOO: } + [1661181829.402758][19315:19320] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661181829.402761][19315:19320] CHIP:TOO: Event number: 6 + [1661181829.402763][19315:19320] CHIP:TOO: Priority: Info + [1661181829.402765][19315:19320] CHIP:TOO: Timestamp: 31297571 + [1661181829.402770][19315:19320] CHIP:TOO: AccessControlEntryChanged: { + [1661181829.402773][19315:19320] CHIP:TOO: AdminNodeID: 112233 + [1661181829.402775][19315:19320] CHIP:TOO: AdminPasscodeID: null + [1661181829.402778][19315:19320] CHIP:TOO: ChangeType: 1 + [1661181829.402780][19315:19320] CHIP:TOO: LatestValue: { + [1661181829.402783][19315:19320] CHIP:TOO: Privilege: 3 + [1661181829.402786][19315:19320] CHIP:TOO: AuthMode: 3 + [1661181829.402789][19315:19320] CHIP:TOO: Subjects: null + [1661181829.402791][19315:19320] CHIP:TOO: Targets: null + [1661181829.402794][19315:19320] CHIP:TOO: FabricIndex: 1 + [1661181829.402796][19315:19320] CHIP:TOO: } + [1661181829.402799][19315:19320] CHIP:TOO: FabricIndex: 1 + [1661181829.402801][19315:19320] CHIP:TOO: } + [1661181829.402840][19315:19320] CHIP:EM: Sending Standalone Ack for MessageCounter:139733206 on exchange 44167i disabled: true - label: "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value is list of AccessControlEntryStruct containing 2 elements 1.struct Privilege field: Administer (5) AuthMode field: CASE (2) Subjects - field: [N1] Targets field: null 2.struct Privilege field: Administer - (3) AuthMode field: Group (3) Subjects field: null Targets field: null" + field: [N1] Targets field: null 2.struct Privilege field: Operate (3) + AuthMode field: Group (3) Subjects field: null Targets field: null" PICS: ACL.S.E00 verification: | ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 3, "subjects": null, "targets":null}]" 1 0 @@ -391,82 +349,150 @@ tests: On TH1(Chiptool) , Verify AccessControl cluster AccessControlEntryChanged event containing at least 3 new elements and MUST NOT contain an added event for the third entry - 1658813186.871698][2504:2509] CHIP:DMG: ], - [1658813186.871770][2504:2509] CHIP:DMG: - [1658813186.871799][2504:2509] CHIP:DMG: SuppressResponse = true, - [1658813186.871828][2504:2509] CHIP:DMG: InteractionModelRevision = 1 - [1658813186.871855][2504:2509] CHIP:DMG: } - [1658813186.874723][2504:2509] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1658813186.874826][2504:2509] CHIP:TOO: Event number: 2 - [1658813186.874854][2504:2509] CHIP:TOO: Priority: Info - [1658813186.874880][2504:2509] CHIP:TOO: Timestamp: 554681 - [1658813186.875037][2504:2509] CHIP:TOO: AccessControlEntryChanged: { - [1658813186.875097][2504:2509] CHIP:TOO: AdminNodeID: null - [1658813186.875137][2504:2509] CHIP:TOO: AdminPasscodeID: 0 - [1658813186.875165][2504:2509] CHIP:TOO: ChangeType: 1 - [1658813186.875192][2504:2509] CHIP:TOO: LatestValue: { - [1658813186.875218][2504:2509] CHIP:TOO: Privilege: 5 - [1658813186.875244][2504:2509] CHIP:TOO: AuthMode: 2 - [1658813186.875276][2504:2509] CHIP:TOO: Subjects: 1 entries - [1658813186.875311][2504:2509] CHIP:TOO: [1]: 112233 - [1658813186.875341][2504:2509] CHIP:TOO: Targets: null - [1658813186.875367][2504:2509] CHIP:TOO: FabricIndex: 1 - [1658813186.875392][2504:2509] CHIP:TOO: } - [1658813186.875419][2504:2509] CHIP:TOO: AdminFabricIndex: 1 - [1658813186.875444][2504:2509] CHIP:TOO: } - [1658813186.875592][2504:2509] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1658813186.875620][2504:2509] CHIP:TOO: Event number: 3 - [1658813186.875645][2504:2509] CHIP:TOO: Priority: Info - [1658813186.875670][2504:2509] CHIP:TOO: Timestamp: 579681 - [1658813186.875756][2504:2509] CHIP:TOO: AccessControlEntryChanged: { - [1658813186.875786][2504:2509] CHIP:TOO: AdminNodeID: 112233 - [1658813186.875814][2504:2509] CHIP:TOO: AdminPasscodeID: null - [1658813186.875841][2504:2509] CHIP:TOO: ChangeType: 2 - [1658813186.875867][2504:2509] CHIP:TOO: LatestValue: { - [1658813186.875892][2504:2509] CHIP:TOO: Privilege: 5 - [1658813186.875917][2504:2509] CHIP:TOO: AuthMode: 2 - [1658813186.875946][2504:2509] CHIP:TOO: Subjects: 1 entries - [1658813186.875977][2504:2509] CHIP:TOO: [1]: 112233 - [1658813186.876005][2504:2509] CHIP:TOO: Targets: null - [1658813186.876032][2504:2509] CHIP:TOO: FabricIndex: 1 - [1658813186.876057][2504:2509] CHIP:TOO: } - [1658813186.876083][2504:2509] CHIP:TOO: AdminFabricIndex: 1 - [1658813186.876108][2504:2509] CHIP:TOO: } - [1658813186.876234][2504:2509] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1658813186.876261][2504:2509] CHIP:TOO: Event number: 4 - [1658813186.876286][2504:2509] CHIP:TOO: Priority: Info - [1658813186.876310][2504:2509] CHIP:TOO: Timestamp: 579683 - [1658813186.876353][2504:2509] CHIP:TOO: AccessControlEntryChanged: { - [1658813186.876382][2504:2509] CHIP:TOO: AdminNodeID: 112233 - [1658813186.876408][2504:2509] CHIP:TOO: AdminPasscodeID: null - [1658813186.876434][2504:2509] CHIP:TOO: ChangeType: 1 - [1658813186.876460][2504:2509] CHIP:TOO: LatestValue: { - [1658813186.876485][2504:2509] CHIP:TOO: Privilege: 5 - [1658813186.876510][2504:2509] CHIP:TOO: AuthMode: 2 - [1658813186.876539][2504:2509] CHIP:TOO: Subjects: 1 entries - [1658813186.876569][2504:2509] CHIP:TOO: [1]: 112233 - [1658813186.876597][2504:2509] CHIP:TOO: Targets: null - [1658813186.876624][2504:2509] CHIP:TOO: FabricIndex: 1 - [1658813186.876649][2504:2509] CHIP:TOO: } - [1658813186.876675][2504:2509] CHIP:TOO: AdminFabricIndex: 1 - [1658813186.876700][2504:2509] CHIP:TOO: } - [1658813186.876826][2504:2509] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1658813186.876853][2504:2509] CHIP:TOO: Event number: 5 - [1658813186.876878][2504:2509] CHIP:TOO: Priority: Info - [1658813186.876902][2504:2509] CHIP:TOO: Timestamp: 579684 - [1658813186.876944][2504:2509] CHIP:TOO: AccessControlEntryChanged: { - [1658813186.876972][2504:2509] CHIP:TOO: AdminNodeID: 112233 - [1658813186.876996][2504:2509] CHIP:TOO: AdminPasscodeID: null - [1658813186.877021][2504:2509] CHIP:TOO: ChangeType: 1 - [1658813186.877047][2504:2509] CHIP:TOO: LatestValue: { - [1658813186.877072][2504:2509] CHIP:TOO: Privilege: 3 - [1658813186.877097][2504:2509] CHIP:TOO: AuthMode: 3 - [1658813186.877122][2504:2509] CHIP:TOO: Subjects: null - [1658813186.877148][2504:2509] CHIP:TOO: Targets: null - [1658813186.877173][2504:2509] CHIP:TOO: FabricIndex: 1 - [1658813186.877198][2504:2509] CHIP:TOO: } - [1658813186.877223][2504:2509] CHIP:TOO: AdminFabricIndex: 1 - [1658813186.877248][2504:2509] CHIP:TOO: } - [1658813186.877432][2504:2509] CHIP:EM: Sending Standalone Ack for MessageCounter:46379362 on exchange 51787i - [1658813186.877525][2504:2509] CHIP:IN: Prepared secure message 0xffff87ffda68 to 0x0000000000000001 (1) of + [1661182764.896026][19503:19508] CHIP:DMG: + [1661182764.896029][19503:19508] CHIP:DMG: SuppressResponse = true, + [1661182764.896033][19503:19508] CHIP:DMG: InteractionModelRevision = 1 + [1661182764.896035][19503:19508] CHIP:DMG: } + [1661182764.896123][19503:19508] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661182764.896126][19503:19508] CHIP:TOO: Event number: 3 + [1661182764.896129][19503:19508] CHIP:TOO: Priority: Info + [1661182764.896131][19503:19508] CHIP:TOO: Timestamp: 31085832 + [1661182764.896155][19503:19508] CHIP:TOO: AccessControlEntryChanged: { + [1661182764.896158][19503:19508] CHIP:TOO: AdminNodeID: null + [1661182764.896163][19503:19508] CHIP:TOO: AdminPasscodeID: 0 + [1661182764.896167][19503:19508] CHIP:TOO: ChangeType: 1 + [1661182764.896173][19503:19508] CHIP:TOO: LatestValue: { + [1661182764.896176][19503:19508] CHIP:TOO: Privilege: 5 + [1661182764.896179][19503:19508] CHIP:TOO: AuthMode: 2 + [1661182764.896183][19503:19508] CHIP:TOO: Subjects: 1 entries + [1661182764.896188][19503:19508] CHIP:TOO: [1]: 112233 + [1661182764.896191][19503:19508] CHIP:TOO: Targets: null + [1661182764.896194][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896197][19503:19508] CHIP:TOO: } + [1661182764.896199][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896202][19503:19508] CHIP:TOO: } + [1661182764.896227][19503:19508] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661182764.896230][19503:19508] CHIP:TOO: Event number: 4 + [1661182764.896232][19503:19508] CHIP:TOO: Priority: Info + [1661182764.896234][19503:19508] CHIP:TOO: Timestamp: 31297570 + [1661182764.896246][19503:19508] CHIP:TOO: AccessControlEntryChanged: { + [1661182764.896249][19503:19508] CHIP:TOO: AdminNodeID: 112233 + [1661182764.896252][19503:19508] CHIP:TOO: AdminPasscodeID: null + [1661182764.896254][19503:19508] CHIP:TOO: ChangeType: 2 + [1661182764.896257][19503:19508] CHIP:TOO: LatestValue: { + [1661182764.896259][19503:19508] CHIP:TOO: Privilege: 5 + [1661182764.896262][19503:19508] CHIP:TOO: AuthMode: 2 + [1661182764.896265][19503:19508] CHIP:TOO: Subjects: 1 entries + [1661182764.896268][19503:19508] CHIP:TOO: [1]: 112233 + [1661182764.896271][19503:19508] CHIP:TOO: Targets: null + [1661182764.896274][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896276][19503:19508] CHIP:TOO: } + [1661182764.896279][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896281][19503:19508] CHIP:TOO: } + [1661182764.896309][19503:19508] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661182764.896311][19503:19508] CHIP:TOO: Event number: 5 + [1661182764.896313][19503:19508] CHIP:TOO: Priority: Info + [1661182764.896315][19503:19508] CHIP:TOO: Timestamp: 31297570 + [1661182764.896320][19503:19508] CHIP:TOO: AccessControlEntryChanged: { + [1661182764.896323][19503:19508] CHIP:TOO: AdminNodeID: 112233 + [1661182764.896325][19503:19508] CHIP:TOO: AdminPasscodeID: null + [1661182764.896327][19503:19508] CHIP:TOO: ChangeType: 1 + [1661182764.896330][19503:19508] CHIP:TOO: LatestValue: { + [1661182764.896332][19503:19508] CHIP:TOO: Privilege: 5 + [1661182764.896335][19503:19508] CHIP:TOO: AuthMode: 2 + [1661182764.896338][19503:19508] CHIP:TOO: Subjects: 1 entries + [1661182764.896341][19503:19508] CHIP:TOO: [1]: 112233 + [1661182764.896343][19503:19508] CHIP:TOO: Targets: null + [1661182764.896346][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896348][19503:19508] CHIP:TOO: } + [1661182764.896351][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896353][19503:19508] CHIP:TOO: } + [1661182764.896375][19503:19508] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661182764.896377][19503:19508] CHIP:TOO: Event number: 6 + [1661182764.896380][19503:19508] CHIP:TOO: Priority: Info + [1661182764.896381][19503:19508] CHIP:TOO: Timestamp: 31297571 + [1661182764.896386][19503:19508] CHIP:TOO: AccessControlEntryChanged: { + [1661182764.896389][19503:19508] CHIP:TOO: AdminNodeID: 112233 + [1661182764.896392][19503:19508] CHIP:TOO: AdminPasscodeID: null + [1661182764.896394][19503:19508] CHIP:TOO: ChangeType: 1 + [1661182764.896397][19503:19508] CHIP:TOO: LatestValue: { + [1661182764.896399][19503:19508] CHIP:TOO: Privilege: 3 + [1661182764.896402][19503:19508] CHIP:TOO: AuthMode: 3 + [1661182764.896405][19503:19508] CHIP:TOO: Subjects: null + [1661182764.896407][19503:19508] CHIP:TOO: Targets: null + [1661182764.896410][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896412][19503:19508] CHIP:TOO: } + [1661182764.896414][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896417][19503:19508] CHIP:TOO: } + [1661182764.896439][19503:19508] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661182764.896441][19503:19508] CHIP:TOO: Event number: 7 + [1661182764.896444][19503:19508] CHIP:TOO: Priority: Info + [1661182764.896446][19503:19508] CHIP:TOO: Timestamp: 32234085 + [1661182764.896450][19503:19508] CHIP:TOO: AccessControlEntryChanged: { + [1661182764.896453][19503:19508] CHIP:TOO: AdminNodeID: 112233 + [1661182764.896455][19503:19508] CHIP:TOO: AdminPasscodeID: null + [1661182764.896459][19503:19508] CHIP:TOO: ChangeType: 2 + [1661182764.896461][19503:19508] CHIP:TOO: LatestValue: { + [1661182764.896464][19503:19508] CHIP:TOO: Privilege: 3 + [1661182764.896467][19503:19508] CHIP:TOO: AuthMode: 3 + [1661182764.896469][19503:19508] CHIP:TOO: Subjects: null + [1661182764.896472][19503:19508] CHIP:TOO: Targets: null + [1661182764.896474][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896476][19503:19508] CHIP:TOO: } + [1661182764.896478][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896480][19503:19508] CHIP:TOO: } + [1661182764.896504][19503:19508] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661182764.896507][19503:19508] CHIP:TOO: Event number: 8 + [1661182764.896509][19503:19508] CHIP:TOO: Priority: Info + [1661182764.896511][19503:19508] CHIP:TOO: Timestamp: 32234085 + [1661182764.896516][19503:19508] CHIP:TOO: AccessControlEntryChanged: { + [1661182764.896519][19503:19508] CHIP:TOO: AdminNodeID: 112233 + [1661182764.896521][19503:19508] CHIP:TOO: AdminPasscodeID: null + [1661182764.896524][19503:19508] CHIP:TOO: ChangeType: 2 + [1661182764.896526][19503:19508] CHIP:TOO: LatestValue: { + [1661182764.896529][19503:19508] CHIP:TOO: Privilege: 5 + [1661182764.896531][19503:19508] CHIP:TOO: AuthMode: 2 + [1661182764.896534][19503:19508] CHIP:TOO: Subjects: 1 entries + [1661182764.896537][19503:19508] CHIP:TOO: [1]: 112233 + [1661182764.896539][19503:19508] CHIP:TOO: Targets: null + [1661182764.896542][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896544][19503:19508] CHIP:TOO: } + [1661182764.896547][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896549][19503:19508] CHIP:TOO: } + [1661182764.896574][19503:19508] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661182764.896576][19503:19508] CHIP:TOO: Event number: 9 + [1661182764.896579][19503:19508] CHIP:TOO: Priority: Info + [1661182764.896580][19503:19508] CHIP:TOO: Timestamp: 32234086 + [1661182764.896585][19503:19508] CHIP:TOO: AccessControlEntryChanged: { + [1661182764.896588][19503:19508] CHIP:TOO: AdminNodeID: 112233 + [1661182764.896591][19503:19508] CHIP:TOO: AdminPasscodeID: null + [1661182764.896593][19503:19508] CHIP:TOO: ChangeType: 1 + [1661182764.896596][19503:19508] CHIP:TOO: LatestValue: { + [1661182764.896598][19503:19508] CHIP:TOO: Privilege: 5 + [1661182764.896601][19503:19508] CHIP:TOO: AuthMode: 2 + [1661182764.896603][19503:19508] CHIP:TOO: Subjects: 1 entries + [1661182764.896606][19503:19508] CHIP:TOO: [1]: 112233 + [1661182764.896609][19503:19508] CHIP:TOO: Targets: null + [1661182764.896611][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896613][19503:19508] CHIP:TOO: } + [1661182764.896616][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896618][19503:19508] CHIP:TOO: } + [1661182764.896641][19503:19508] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661182764.896644][19503:19508] CHIP:TOO: Event number: 10 + [1661182764.896646][19503:19508] CHIP:TOO: Priority: Info + [1661182764.896648][19503:19508] CHIP:TOO: Timestamp: 32234086 + [1661182764.896653][19503:19508] CHIP:TOO: AccessControlEntryChanged: { + [1661182764.896655][19503:19508] CHIP:TOO: AdminNodeID: 112233 + [1661182764.896658][19503:19508] CHIP:TOO: AdminPasscodeID: null + [1661182764.896661][19503:19508] CHIP:TOO: ChangeType: 1 + [1661182764.896663][19503:19508] CHIP:TOO: LatestValue: { + [1661182764.896666][19503:19508] CHIP:TOO: Privilege: 3 + [1661182764.896668][19503:19508] CHIP:TOO: AuthMode: 3 + [1661182764.896671][19503:19508] CHIP:TOO: Subjects: null + [1661182764.896673][19503:19508] CHIP:TOO: Targets: null + [1661182764.896676][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896678][19503:19508] CHIP:TOO: } + [1661182764.896681][19503:19508] CHIP:TOO: FabricIndex: 1 + [1661182764.896683][19503:19508] CHIP:TOO: } + [1661182764.896736][19503:19508] CHIP:EM: Sending Standalone Ack for MessageCounter:4970735 on exchange 19422i disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml index 1bf38fb69a4ff0..a7d3a582e4e7cc 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml @@ -42,7 +42,7 @@ tests: - label: "TH1 commissions DUT using admin node ID N1" verification: | DUT - sudo ./chip-all-clusters-app + sudo ./chip-all-clusters-app --wifi TH1 ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841 @@ -75,7 +75,7 @@ tests: Commission TH2(Chiptool) to DUT using manualcode generated in TH1 using open commission window - ./chip-tool pairing code 2 36253605617 + ./chip-tool pairing code 2 36253605617 --commissioner-name beta [1657186359.584672][3509:3514] CHIP:CTL: Successfully finished commissioning step "Cleanup" [1657186359.584743][3509:3514] CHIP:TOO: Device commissioning completed with success disabled: true @@ -84,7 +84,7 @@ tests: "TH2 reads DUT Endpoint 0 OperationalCredentials cluster CurrentFabricIndex attribute" verification: | - ./chip-tool operationalcredentials read current-fabric-index 2 0 + ./chip-tool operationalcredentials read current-fabric-index 2 0 --commissioner-name-beta On TH2(Chiptool), verify CurrentFabricIndex attribute of operationalCredential cluster as 2 [1657186956.724761][3910:3915] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0005 DataVersion: 3161849734 @@ -146,7 +146,7 @@ tests: 17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" PICS: ACL.S.A0001 verification: | - ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 2 0 + ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 2 0 --commissioner-name beta On TH2(Chiptool),Verify Successfully to extension attribute list containg one element . 1657894672.479983][2433:2438] CHIP:DMG: WriteClient moving to [ResponseRe] @@ -212,7 +212,7 @@ tests: "TH2 reads DUT Endpoint 0 AccessControl cluster Extension attribute" PICS: ACL.S.A0001 verification: | - ./chip-tool accesscontrol read extension 2 0 + ./chip-tool accesscontrol read extension 2 0 --commissioner-name beta On TH2(Chiptool), Verify AccessControlExtensionStruct containing 1 element, and MUST NOT contain an element with FabricIndex F1 [1658327214.683199][2749:2754] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0001 DataVersion: 2953114587 @@ -252,7 +252,7 @@ tests: AccessControlExtensionChanged event" PICS: ACL.S.E01 verification: | - ./chip-tool accesscontrol read-event access-control-extension-changed 2 + ./chip-tool accesscontrol read-event access-control-extension-changed 2 --commissioner-name beta On TH2(Chiptool) , Verify AccessControlExtensionChanged containing 1 element, and MUST NOT contain an element with FabricIndex F1 [1658327551.622018][4295:4300] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0001 [1658327551.622043][4295:4300] CHIP:TOO: Event number: 6 diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml index d2aa037f31964e..5956df5a81948f 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml @@ -34,7 +34,7 @@ tests: - label: "TH1 commissions DUT using admin node ID N1" verification: | DUT - sudo ./chip-all-clusters-app + sudo ./chip-all-clusters-app --wifi TH1 ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841 @@ -57,7 +57,7 @@ tests: "TH1 puts DUT into commissioning mode, TH2 commissions DUT using admin node ID N2" verification: | - Open a commissioning window On TH1(Chiptool)1using below command + Open a commissioning window On TH1(Chiptool)using below command ./chip-tool administratorcommissioning open-basic-commissioning-window 180 1 0 --timedInteractionTimeoutMs 1000 @@ -95,7 +95,7 @@ tests: - CommissiOn TH(Chiptool)2 to DUT using below command + CommissiOn TH2(Chiptool) to DUT using below command ./chip-tool pairing onnetwork 2 20202021 --commissioner-nodeid 223344 --commissioner-name beta @@ -126,7 +126,7 @@ tests: - label: "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value - is list of AccessControlEntryStruct containing 1 element struct + is list of AccessControlEntryStruct containing 1 element 1.struct Privilege field: Administer (5) AuthMode field: CASE (2) Subjects field: [N1, 1111] Targets field: null" PICS: ACL.S.A0000 @@ -180,7 +180,7 @@ tests: - label: "TH2 writes DUT Endpoint 0 AccessControl cluster ACL attribute value - is list of AccessControlEntryStruct containing 1 element struct + is list of AccessControlEntryStruct containing 1 element 1.struct Privilege field: Administer (5) AuthMode field: CASE (2) Subjects field: [N2, 2222] Targets field: null" PICS: ACL.S.A0000 @@ -260,17 +260,21 @@ tests: ./chip-tool accesscontrol read acl 2 0 --commissioner-name beta --commissioner-nodeid 223344 On TH2(Chiptool), verify AccessControlEntryStruct containing 1 element, and MUST NOT contain an element with FabricIndex F1 - [1657286742.977222][18111:18116] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 3308562953 - [1657286742.977287][18111:18116] CHIP:TOO: ACL: 1 entries - [1657286742.977344][18111:18116] CHIP:TOO: [1]: { - [1657286742.977368][18111:18116] CHIP:TOO: Privilege: 5 - [1657286742.977392][18111:18116] CHIP:TOO: AuthMode: 2 - [1657286742.977416][18111:18116] CHIP:TOO: Subjects: 2 entries - [1657286742.977447][18111:18116] CHIP:TOO: [1]: 223344 - [1657286742.977468][18111:18116] CHIP:TOO: [2]: 1111 - [1657286742.977492][18111:18116] CHIP:TOO: Targets: null - [1657286742.977515][18111:18116] CHIP:TOO: FabricIndex: 1 - [1657286742.977537][18111:18116] CHIP:TOO: } + + [1661407263.740571][2355:2360] CHIP:DMG: SuppressResponse = true, + [1661407263.740605][2355:2360] CHIP:DMG: InteractionModelRevision = 1 + [1661407263.740640][2355:2360] CHIP:DMG: } + [1661407263.741000][2355:2360] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 2445703657 + [1661407263.741100][2355:2360] CHIP:TOO: ACL: 1 entries + [1661407263.741165][2355:2360] CHIP:TOO: [1]: { + [1661407263.741222][2355:2360] CHIP:TOO: Privilege: 5 + [1661407263.741260][2355:2360] CHIP:TOO: AuthMode: 2 + [1661407263.741409][2355:2360] CHIP:TOO: Subjects: 2 entries + [1661407263.741453][2355:2360] CHIP:TOO: [1]: 223344 + [1661407263.741487][2355:2360] CHIP:TOO: [2]: 2222 + [1661407263.741518][2355:2360] CHIP:TOO: Targets: null + [1661407263.741553][2355:2360] CHIP:TOO: FabricIndex: 2 + [1661407263.741587][2355:2360] CHIP:TOO: } disabled: true - label: @@ -282,61 +286,65 @@ tests: On TH1(Chiptool), verify AccessControl cluster AccessControlEntryChanged containing 3 elements, and MUST NOT contain any element with FabricIndex F2 - [1657286873.948408][4767:4772] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657286873.948509][4767:4772] CHIP:TOO: Event number: 1 - [1657286873.948539][4767:4772] CHIP:TOO: Priority: Info - [1657286873.948567][4767:4772] CHIP:TOO: Timestamp: 31107322 - [1657286873.948707][4767:4772] CHIP:TOO: AccessControlEntryChanged: { - [1657286873.948741][4767:4772] CHIP:TOO: AdminNodeID: null - [1657286873.948781][4767:4772] CHIP:TOO: AdminPasscodeID: 0 - [1657286873.948811][4767:4772] CHIP:TOO: ChangeType: 1 - [1657286873.948840][4767:4772] CHIP:TOO: LatestValue: { - [1657286873.948868][4767:4772] CHIP:TOO: Privilege: 5 - [1657286873.948895][4767:4772] CHIP:TOO: AuthMode: 2 - [1657286873.948930][4767:4772] CHIP:TOO: Subjects: 1 entries - [1657286873.948967][4767:4772] CHIP:TOO: [1]: 112233 - [1657286873.948998][4767:4772] CHIP:TOO: Targets: null - [1657286873.949026][4767:4772] CHIP:TOO: FabricIndex: 1 - [1657286873.949054][4767:4772] CHIP:TOO: } - [1657286873.949082][4767:4772] CHIP:TOO: AdminFabricIndex: 1 - [1657286873.949109][4767:4772] CHIP:TOO: } - [1657286873.949254][4767:4772] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657286873.949284][4767:4772] CHIP:TOO: Event number: 5 - [1657286873.949311][4767:4772] CHIP:TOO: Priority: Info - [1657286873.949337][4767:4772] CHIP:TOO: Timestamp: 31185059 - [1657286873.949422][4767:4772] CHIP:TOO: AccessControlEntryChanged: { - [1657286873.949454][4767:4772] CHIP:TOO: AdminNodeID: 112233 - [1657286873.949482][4767:4772] CHIP:TOO: AdminPasscodeID: null - [1657286873.949511][4767:4772] CHIP:TOO: ChangeType: 2 - [1657286873.949538][4767:4772] CHIP:TOO: LatestValue: { - [1657286873.949565][4767:4772] CHIP:TOO: Privilege: 5 - [1657286873.949592][4767:4772] CHIP:TOO: AuthMode: 2 - [1657286873.949623][4767:4772] CHIP:TOO: Subjects: 1 entries - [1657286873.949656][4767:4772] CHIP:TOO: [1]: 112233 - [1657286873.949687][4767:4772] CHIP:TOO: Targets: null - [1657286873.949712][4767:4772] CHIP:TOO: FabricIndex: 1 - [1657286873.949739][4767:4772] CHIP:TOO: } - [1657286873.949767][4767:4772] CHIP:TOO: AdminFabricIndex: 1 - [1657286873.949794][4767:4772] CHIP:TOO: } - [1657286873.949938][4767:4772] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657286873.949970][4767:4772] CHIP:TOO: Event number: 6 - [1657286873.950056][4767:4772] CHIP:TOO: Priority: Info - [1657286873.950087][4767:4772] CHIP:TOO: Timestamp: 31185063 - [1657286873.950142][4767:4772] CHIP:TOO: AccessControlEntryChanged: { - [1657286873.950177][4767:4772] CHIP:TOO: AdminNodeID: 112233 - [1657286873.950208][4767:4772] CHIP:TOO: AdminPasscodeID: null - [1657286873.950238][4767:4772] CHIP:TOO: ChangeType: 1 - [1657286873.950268][4767:4772] CHIP:TOO: LatestValue: { - [1657286873.950298][4767:4772] CHIP:TOO: Privilege: 5 - [1657286873.950330][4767:4772] CHIP:TOO: AuthMode: 2 - [1657286873.950364][4767:4772] CHIP:TOO: Subjects: 2 entries - [1657286873.950400][4767:4772] CHIP:TOO: [1]: 112233 - [1657286873.950434][4767:4772] CHIP:TOO: [2]: 1111 - [1657286873.950467][4767:4772] CHIP:TOO: Targets: null - [1657286873.950497][4767:4772] CHIP:TOO: FabricIndex: 1 - [1657286873.950527][4767:4772] CHIP:TOO: } - [1657286873.950557][4767:4772] CHIP:TOO: AdminFabricIndex: 1 - [1657286873.950586][4767:4772] CHIP:TOO: } + 1661355674.033284][10375:10380] CHIP:DMG: + [1661355674.033304][10375:10380] CHIP:DMG: SuppressResponse = true, + [1661355674.033323][10375:10380] CHIP:DMG: InteractionModelRevision = 1 + [1661355674.033341][10375:10380] CHIP:DMG: } + [1661355674.033748][10375:10380] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661355674.033771][10375:10380] CHIP:TOO: Event number: 3 + [1661355674.033788][10375:10380] CHIP:TOO: Priority: Info + [1661355674.033804][10375:10380] CHIP:TOO: Timestamp: 23234824 + [1661355674.033906][10375:10380] CHIP:TOO: AccessControlEntryChanged: { + [1661355674.033942][10375:10380] CHIP:TOO: AdminNodeID: null + [1661355674.033966][10375:10380] CHIP:TOO: AdminPasscodeID: 0 + [1661355674.033988][10375:10380] CHIP:TOO: ChangeType: 1 + [1661355674.034009][10375:10380] CHIP:TOO: LatestValue: { + [1661355674.034030][10375:10380] CHIP:TOO: Privilege: 5 + [1661355674.034052][10375:10380] CHIP:TOO: AuthMode: 2 + [1661355674.034078][10375:10380] CHIP:TOO: Subjects: 1 entries + [1661355674.034106][10375:10380] CHIP:TOO: [1]: 112233 + [1661355674.034129][10375:10380] CHIP:TOO: Targets: null + [1661355674.034155][10375:10380] CHIP:TOO: FabricIndex: 1 + [1661355674.034180][10375:10380] CHIP:TOO: } + [1661355674.034206][10375:10380] CHIP:TOO: FabricIndex: 1 + [1661355674.034230][10375:10380] CHIP:TOO: } + [1661355674.034369][10375:10380] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661355674.034385][10375:10380] CHIP:TOO: Event number: 5 + [1661355674.034400][10375:10380] CHIP:TOO: Priority: Info + [1661355674.034413][10375:10380] CHIP:TOO: Timestamp: 23346775 + [1661355674.034449][10375:10380] CHIP:TOO: AccessControlEntryChanged: { + [1661355674.034467][10375:10380] CHIP:TOO: AdminNodeID: 112233 + [1661355674.034483][10375:10380] CHIP:TOO: AdminPasscodeID: null + [1661355674.034499][10375:10380] CHIP:TOO: ChangeType: 2 + [1661355674.034514][10375:10380] CHIP:TOO: LatestValue: { + [1661355674.034529][10375:10380] CHIP:TOO: Privilege: 5 + [1661355674.034544][10375:10380] CHIP:TOO: AuthMode: 2 + [1661355674.034561][10375:10380] CHIP:TOO: Subjects: 1 entries + [1661355674.034579][10375:10380] CHIP:TOO: [1]: 112233 + [1661355674.034595][10375:10380] CHIP:TOO: Targets: null + [1661355674.034611][10375:10380] CHIP:TOO: FabricIndex: 1 + [1661355674.034625][10375:10380] CHIP:TOO: } + [1661355674.034640][10375:10380] CHIP:TOO: FabricIndex: 1 + [1661355674.034654][10375:10380] CHIP:TOO: } + [1661355674.034789][10375:10380] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661355674.034805][10375:10380] CHIP:TOO: Event number: 6 + [1661355674.034819][10375:10380] CHIP:TOO: Priority: Info + [1661355674.034832][10375:10380] CHIP:TOO: Timestamp: 23346777 + [1661355674.034862][10375:10380] CHIP:TOO: AccessControlEntryChanged: { + [1661355674.034879][10375:10380] CHIP:TOO: AdminNodeID: 112233 + [1661355674.034894][10375:10380] CHIP:TOO: AdminPasscodeID: null + [1661355674.034909][10375:10380] CHIP:TOO: ChangeType: 1 + [1661355674.034923][10375:10380] CHIP:TOO: LatestValue: { + [1661355674.034938][10375:10380] CHIP:TOO: Privilege: 5 + [1661355674.034952][10375:10380] CHIP:TOO: AuthMode: 2 + [1661355674.034970][10375:10380] CHIP:TOO: Subjects: 2 entries + [1661355674.034988][10375:10380] CHIP:TOO: [1]: 112233 + [1661355674.035005][10375:10380] CHIP:TOO: [2]: 1111 + [1661355674.035020][10375:10380] CHIP:TOO: Targets: null + [1661355674.035035][10375:10380] CHIP:TOO: FabricIndex: 1 + [1661355674.035049][10375:10380] CHIP:TOO: } + [1661355674.035064][10375:10380] CHIP:TOO: FabricIndex: 1 + [1661355674.035078][10375:10380] CHIP:TOO: } disabled: true - label: @@ -349,40 +357,63 @@ tests: - [1657287207.040619][18332:18337] CHIP:TOO: Event number: 7 - [1657287207.040624][18332:18337] CHIP:TOO: Priority: Info - [1657287207.040630][18332:18337] CHIP:TOO: Timestamp: 31903266 - [1657287207.040653][18332:18337] CHIP:TOO: AccessControlEntryChanged: { - [1657287207.040660][18332:18337] CHIP:TOO: AdminNodeID: 223344 - [1657287207.040667][18332:18337] CHIP:TOO: AdminPasscodeID: null - [1657287207.040675][18332:18337] CHIP:TOO: ChangeType: 2 - [1657287207.040681][18332:18337] CHIP:TOO: LatestValue: { - [1657287207.040688][18332:18337] CHIP:TOO: Privilege: 5 - [1657287207.040695][18332:18337] CHIP:TOO: AuthMode: 2 - [1657287207.040703][18332:18337] CHIP:TOO: Subjects: 1 entries - [1657287207.040713][18332:18337] CHIP:TOO: [1]: 223344 - [1657287207.040721][18332:18337] CHIP:TOO: Targets: null - [1657287207.040728][18332:18337] CHIP:TOO: FabricIndex: 2 - [1657287207.040735][18332:18337] CHIP:TOO: } - [1657287207.040742][18332:18337] CHIP:TOO: AdminFabricIndex: 2 - [1657287207.040749][18332:18337] CHIP:TOO: } - [1657287207.040819][18332:18337] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 - [1657287207.040827][18332:18337] CHIP:TOO: Event number: 8 - [1657287207.040833][18332:18337] CHIP:TOO: Priority: Info - [1657287207.040840][18332:18337] CHIP:TOO: Timestamp: 31903269 - [1657287207.040856][18332:18337] CHIP:TOO: AccessControlEntryChanged: { - [1657287207.040865][18332:18337] CHIP:TOO: AdminNodeID: 223344 - [1657287207.040872][18332:18337] CHIP:TOO: AdminPasscodeID: null - [1657287207.040879][18332:18337] CHIP:TOO: ChangeType: 1 - [1657287207.040887][18332:18337] CHIP:TOO: LatestValue: { - [1657287207.040894][18332:18337] CHIP:TOO: Privilege: 5 - [1657287207.040901][18332:18337] CHIP:TOO: AuthMode: 2 - [1657287207.040910][18332:18337] CHIP:TOO: Subjects: 2 entries - [1657287207.040919][18332:18337] CHIP:TOO: [1]: 223344 - [1657287207.040928][18332:18337] CHIP:TOO: [2]: 1111 - [1657287207.040936][18332:18337] CHIP:TOO: Targets: null - [1657287207.040943][18332:18337] CHIP:TOO: FabricIndex: 2 - [1657287207.040950][18332:18337] CHIP:TOO: } - [1657287207.040957][18332:18337] CHIP:TOO: AdminFabricIndex: 2 - [1657287207.040964][18332:18337] CHIP:TOO: } + [1661354915.731697][4136:4141] CHIP:DMG: + [1661354915.731730][4136:4141] CHIP:DMG: SuppressResponse = true, + [1661354915.731759][4136:4141] CHIP:DMG: InteractionModelRevision = 1 + [1661354915.731790][4136:4141] CHIP:DMG: } + [1661354915.732074][4136:4141] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661354915.732104][4136:4141] CHIP:TOO: Event number: 4 + [1661354915.732133][4136:4141] CHIP:TOO: Priority: Info + [1661354915.732159][4136:4141] CHIP:TOO: Timestamp: 22322302 + [1661354915.732291][4136:4141] CHIP:TOO: AccessControlEntryChanged: { + [1661354915.732328][4136:4141] CHIP:TOO: AdminNodeID: null + [1661354915.732374][4136:4141] CHIP:TOO: AdminPasscodeID: 0 + [1661354915.732423][4136:4141] CHIP:TOO: ChangeType: 1 + [1661354915.732456][4136:4141] CHIP:TOO: LatestValue: { + [1661354915.732486][4136:4141] CHIP:TOO: Privilege: 5 + [1661354915.732516][4136:4141] CHIP:TOO: AuthMode: 2 + [1661354915.732554][4136:4141] CHIP:TOO: Subjects: 1 entries + [1661354915.732593][4136:4141] CHIP:TOO: [1]: 223344 + [1661354915.732625][4136:4141] CHIP:TOO: Targets: null + [1661354915.732658][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.732688][4136:4141] CHIP:TOO: } + [1661354915.732720][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.732749][4136:4141] CHIP:TOO: } + [1661354915.732896][4136:4141] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661354915.732929][4136:4141] CHIP:TOO: Event number: 9 + [1661354915.732955][4136:4141] CHIP:TOO: Priority: Info + [1661354915.732980][4136:4141] CHIP:TOO: Timestamp: 22566955 + [1661354915.733031][4136:4141] CHIP:TOO: AccessControlEntryChanged: { + [1661354915.733065][4136:4141] CHIP:TOO: AdminNodeID: 223344 + [1661354915.733097][4136:4141] CHIP:TOO: AdminPasscodeID: null + [1661354915.733128][4136:4141] CHIP:TOO: ChangeType: 2 + [1661354915.733158][4136:4141] CHIP:TOO: LatestValue: { + [1661354915.733187][4136:4141] CHIP:TOO: Privilege: 5 + [1661354915.733219][4136:4141] CHIP:TOO: AuthMode: 2 + [1661354915.733252][4136:4141] CHIP:TOO: Subjects: 1 entries + [1661354915.733287][4136:4141] CHIP:TOO: [1]: 223344 + [1661354915.733319][4136:4141] CHIP:TOO: Targets: null + [1661354915.733349][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.733379][4136:4141] CHIP:TOO: } + [1661354915.733408][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.733437][4136:4141] CHIP:TOO: } + [1661354915.733578][4136:4141] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Event 0x0000_0000 + [1661354915.733610][4136:4141] CHIP:TOO: Event number: 10 + [1661354915.733637][4136:4141] CHIP:TOO: Priority: Info + [1661354915.733662][4136:4141] CHIP:TOO: Timestamp: 22566957 + [1661354915.733709][4136:4141] CHIP:TOO: AccessControlEntryChanged: { + [1661354915.733743][4136:4141] CHIP:TOO: AdminNodeID: 223344 + [1661354915.733772][4136:4141] CHIP:TOO: AdminPasscodeID: null + [1661354915.733803][4136:4141] CHIP:TOO: ChangeType: 1 + [1661354915.733833][4136:4141] CHIP:TOO: LatestValue: { + [1661354915.733863][4136:4141] CHIP:TOO: Privilege: 5 + [1661354915.733891][4136:4141] CHIP:TOO: AuthMode: 2 + [1661354915.733923][4136:4141] CHIP:TOO: Subjects: 2 entries + [1661354915.733957][4136:4141] CHIP:TOO: [1]: 223344 + [1661354915.733991][4136:4141] CHIP:TOO: [2]: 2222 + [1661354915.734018][4136:4141] CHIP:TOO: Targets: null + [1661354915.734048][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.734077][4136:4141] CHIP:TOO: } + [1661354915.734107][4136:4141] CHIP:TOO: FabricIndex: 2 + [1661354915.734136][4136:4141] CHIP:TOO: } disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml index ee834c11f4752f..bd2a99487a82dc 100644 --- a/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml @@ -32,7 +32,7 @@ tests: - label: "TH1 commissions DUT using admin node ID N1" verification: | DUT - sudo ./chip-all-clusters-app + sudo ./chip-all-clusters-app --wifi TH1 ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841 diff --git a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml index 1cc684a78110d2..eb67cb2947c082 100644 --- a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml @@ -40,7 +40,7 @@ tests: type: int16u - label: "Read the global attribute: FeatureMap" - PICS: ( !CC.S.F00 && !CC.S.F01 && !CC.S.F02 && !CC.S.F03 ) + PICS: ( !CC.S.F00 && !CC.S.F01 && !CC.S.F02 && !CC.S.F03 && !CC.S.F04 ) command: "readAttribute" attribute: "FeatureMap" response: @@ -49,7 +49,7 @@ tests: type: bitmap32 - label: "Read the global attribute: FeatureMap" - PICS: ( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 ) + PICS: ( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 || CC.S.F04) command: "readAttribute" attribute: "FeatureMap" response: 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 c2c35d4ac70359..5430d2d0d1ab0c 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 @@ -226,43 +226,5 @@ tests: to make sure all mandatory (and applicable optional) attributes/commands are implemented." verification: | - FOR ENDPOINTS 2 - - - ./chip-tool descriptor read parts-list 1 2 - - Verify parts-list response on the TH(Chip-tool) Log: - - [1660127879.565330][46472:46477] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1237610137 - [1660127879.565473][46472:46477] CHIP:TOO: parts list: 0 entries - - ./chip-tool descriptor read device-list 1 2 - - Verify DeviceList response on the TH(Chip-tool) Log: - - [1660127725.802512][46460:46465] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1237610137 - [1660127725.802614][46460:46465] CHIP:TOO: device list: 1 entries - [1660127725.802669][46460:46465] CHIP:TOO: [1]: { - [1660127725.802707][46460:46465] CHIP:TOO: Type: 256 - [1660127725.802745][46460:46465] CHIP:TOO: Revision: 1 - [1660127725.802781][46460:46465] CHIP:TOO: } - - ./chip-tool descriptor read server-list 1 2 - - Verify server list on the 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 - - ./chip-tool descriptor read client-list 1 2 - - Verify client list on the TH (Chip-tool) Log: - - [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 + This step is redundant as during certification the appropriate tests are being run disabled: true diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml index b0b2097a8e1d47..72b9721f2ba73f 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml @@ -21,6 +21,7 @@ config: nodeId: 0x12344321 cluster: "Door Lock" endpoint: 1 + timeout: 200 tests: - label: "Wait for the commissioned device to be retrieved" @@ -33,7 +34,7 @@ tests: - label: "Create new user" command: "SetUser" - timedInteractionTimeoutMs: 10000 + timedInteractionTimeoutMs: 1000 arguments: values: - name: "operationType" @@ -82,7 +83,7 @@ tests: - label: "Create new PIN credential and lock/unlock user" command: "SetCredential" - timedInteractionTimeoutMs: 10000 + timedInteractionTimeoutMs: 1000 arguments: values: - name: "operationType" @@ -128,46 +129,318 @@ tests: - label: "Precondition: Door is in locked state" PICS: DRLK.S.C00.Rsp command: "LockDoor" - timedInteractionTimeoutMs: 10000 + timedInteractionTimeoutMs: 1000 arguments: values: - name: "PINCode" value: "123456" - - label: "TH writes AutoRelockTime attribute value as 10 seconds on the DUT" - PICS: DRLK.S.A0023 + - label: + "TH writes the RequirePINforRemoteOperation attribute value as False + on the DUT" + PICS: DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033 command: "writeAttribute" - attribute: "AutoRelockTime" + attribute: "RequirePINforRemoteOperation" arguments: - value: 60 + value: false + + - label: + "TH writes the RequirePINforRemoteOperation attribute value as False + on the DUT and Verify DUT responds with UNSUPPORTED_WRITE" + PICS: DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033 + command: "writeAttribute" + attribute: "RequirePINforRemoteOperation" + arguments: + value: false + response: + error: UNSUPPORTED_WRITE + + - label: "TH reads the RequirePINforRemoteOperation attribute from the DUT" + PICS: DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033 + command: "readAttribute" + attribute: "RequirePINforRemoteOperation" + response: + value: false + + - label: "TH sends the unlock Door command to the DUT without PINCode" + PICS: DRLK.S.C01.Rsp + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 + response: + error: 0x00 - label: "TH sends the unlock Door command to the DUT with valid PINCode" PICS: DRLK.S.C01.Rsp command: "UnlockDoor" - timedInteractionTimeoutMs: 10000 + timedInteractionTimeoutMs: 1000 arguments: values: - name: "PINCode" value: "123456" - - label: "Wait 10000ms" - cluster: "DelayCommands" - command: "WaitForMs" + - label: + "TH writes the RequirePINforRemoteOperation attribute value as False + on the DUT" + PICS: DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033 + command: "writeAttribute" + attribute: "RequirePINforRemoteOperation" + arguments: + value: true + + - label: + "TH writes the RequirePINforRemoteOperation attribute value as False + on the DUT and Verify DUT responds with UNSUPPORTED_WRITE" + PICS: DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033 + command: "writeAttribute" + attribute: "RequirePINforRemoteOperation" + arguments: + value: true + response: + error: UNSUPPORTED_WRITE + + - label: "TH reads the RequirePINforRemoteOperation attribute from the DUT" + PICS: DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033 + command: "readAttribute" + attribute: "RequirePINforRemoteOperation" + response: + value: true + + - label: "TH sends the unlock Door command to the DUT with valid PINCode" + PICS: DRLK.S.C01.Rsp && DRLK.S.A0033 + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "PINCode" + value: "123456" + + - label: "TH sends the unlock Door command to the DUT with invalid PINCode" + PICS: DRLK.S.C01.Rsp && DRLK.S.A0033 + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 arguments: values: - - name: "ms" - value: 10000 + - name: "PINCode" + value: "1234568" + response: + error: FAILURE + + - label: "TH sends the unlock Door command to the DUT without PINCode" + PICS: DRLK.S.C01.Rsp && DRLK.S.A0033 + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 + response: + error: FAILURE + + - label: + "TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and + Verify that the DUT sends Success response" + PICS: DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0030 + command: "writeAttribute" + attribute: "WrongCodeEntryLimit" + arguments: + value: 3 + + - label: + "TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and + verify DUT responds with UNSUPPORTED_WRITE" + PICS: DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0030 + command: "writeAttribute" + attribute: "WrongCodeEntryLimit" + arguments: + value: 3 + response: + error: UNSUPPORTED_WRITE + + - label: + "TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds + on the DUT and Verify that the DUT sends Success response" + PICS: DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0031 + command: "writeAttribute" + attribute: "UserCodeTemporaryDisableTime" + arguments: + value: 15 + + - label: + "TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds + on the DUT and Verify that the DUT sends Success response" + PICS: DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0031 + command: "writeAttribute" + attribute: "UserCodeTemporaryDisableTime" + arguments: + value: 15 + response: + error: UNSUPPORTED_WRITE + + - label: "TH sends the unlock Door command to the DUT with invalid PINCode" + PICS: DRLK.S.C01.Rsp + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "PINCode" + value: "1234568" + response: + error: FAILURE + + - label: "TH sends the unlock Door command to the DUT with invalid PINCode" + PICS: DRLK.S.C01.Rsp + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "PINCode" + value: "1234568" + response: + error: FAILURE - - label: "TH reads LockState attribute" - PICS: DRLK.S.A0000 + - label: "TH sends the unlock Door command to the DUT with invalid PINCode" + PICS: DRLK.S.C01.Rsp + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "PINCode" + value: "1234568" + response: + error: FAILURE + + - label: "TH sends the unlock Door command to the DUT with invalid PINCode" + PICS: DRLK.S.C01.Rsp + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "PINCode" + value: "1234568" + response: + error: FAILURE + + - label: + "TH reads the UserCodeTemporaryDisableTime attribute from the DUT and + check attribute is triggered" + PICS: DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0031 command: "readAttribute" - attribute: "LockState" + attribute: "UserCodeTemporaryDisableTime" response: - value: 2 + value: 15 + + - label: "TH sends the unlock Door command to the DUT with valid PINCode" + PICS: DRLK.S.C01.Rsp + command: "UnlockDoor" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "PINCode" + value: "123456" + response: + error: FAILURE + + - label: "TH writes AutoRelockTime attribute value as 10 seconds on the DUT" + PICS: DRLK.S.A0023 && PICS_SDK_CI_ONLY + command: "writeAttribute" + attribute: "AutoRelockTime" + arguments: + value: 10 + + - label: "TH writes AutoRelockTime attribute value as 60 seconds on the DUT" + PICS: DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP + command: "writeAttribute" + attribute: "AutoRelockTime" + arguments: + value: 60 + + - label: "TH writes AutoRelockTime attribute value as 10 seconds on the DUT" + PICS: "!DRLK.S.A0023 && PICS_SDK_CI_ONLY" + command: "writeAttribute" + attribute: "AutoRelockTime" + arguments: + value: 10 + response: + error: UNSUPPORTED_WRITE + + - label: "TH writes AutoRelockTime attribute value as 60 seconds on the DUT" + PICS: "!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP" + command: "writeAttribute" + attribute: "AutoRelockTime" + arguments: + value: 60 + response: + error: UNSUPPORTED_WRITE + + - label: "TH reads the AutoRelockTime attribute from the DUT" + PICS: DRLK.S.A0023 && PICS_SDK_CI_ONLY + command: "readAttribute" + attribute: "AutoRelockTime" + response: + value: 10 + + - label: "TH reads the AutoRelockTime attribute from the DUT" + PICS: DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP + command: "readAttribute" + attribute: "AutoRelockTime" + response: + value: 60 + + - label: + "TH sends the unlock Door command to the DUT with valid PINCode and + Verify that DUT sends SUCCESS response to the TH" + verification: | + ./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456 + + + Verify " DUT sends SUCCESS response" on the TH(Chip-tool) Log: + + [1657868999.441424][2857:2862] CHIP:DMG: StatusIB = + [1657868999.441478][2857:2862] CHIP:DMG: { + [1657868999.441531][2857:2862] CHIP:DMG: status = 0x00 (SUCCESS), + [1657868999.441581][2857:2862] CHIP:DMG: }, + [1657868999.441630][2857:2862] CHIP:DMG: + [1657868999.441673][2857:2862] CHIP:DMG: }, + [1657868999.441716][2857:2862] CHIP:DMG: + [1657868999.441747][2857:2862] CHIP:DMG: }, + [1657868999.441784][2857:2862] CHIP:DMG: + [1657868999.441813][2857:2862] CHIP:DMG: ], + [1657868999.441847][2857:2862] CHIP:DMG: + [1657868999.441874][2857:2862] CHIP:DMG: InteractionModelRevision = 1 + [1657868999.441900][2857:2862] CHIP:DMG: }, + [1657868999.441965][2857:2862] CHIP:DMG: Received Command Response Status for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0001 Status=0x0 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && DRLK.S.C01.Rsp + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" + + - label: + "TH reads LockState attribute after AutoRelockTime Expires and Verify + that the DUT is locked." + verification: | + ./chip-tool doorlock read lock-state 1 1 + + Verify " DUT is locked" on the TH(Chip-tool) Log: + + [1657869083.649102][2871:2876] CHIP:DMG: SuppressResponse = true, + [1657869083.649136][2871:2876] CHIP:DMG: InteractionModelRevision = 1 + [1657869083.649169][2871:2876] CHIP:DMG: } + [1657869083.649336][2871:2876] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Attribute 0x0000_0000 DataVersion: 2082875966 + [1657869083.649446][2871:2876] CHIP:TOO: LockState: 1 + cluster: "LogCommands" + command: "UserPrompt" + PICS: PICS_USER_PROMPT && DRLK.S.A0000 + arguments: + values: + - name: "message" + value: "Please enter 'y' for success" + - name: "expectedValue" + value: "y" - label: "Cleanup the created user" command: "ClearUser" - timedInteractionTimeoutMs: 10000 + timedInteractionTimeoutMs: 1000 arguments: values: - name: "userIndex" @@ -176,7 +449,7 @@ tests: - label: "Clean the created credential" PICS: DRLK.S.C26.Rsp command: "ClearCredential" - timedInteractionTimeoutMs: 10000 + timedInteractionTimeoutMs: 1000 arguments: values: - name: "credential" diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_4.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_4.yaml index 53b838da398f21..cb40729ce5accd 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_4.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_4.yaml @@ -23,6 +23,7 @@ config: nodeId: 0x12344321 cluster: "Door Lock" endpoint: 1 + timeout: 200 tests: - label: "Wait for the commissioned device to be retrieved" @@ -33,10 +34,58 @@ tests: - name: "nodeId" value: nodeId + - label: "Create new user" + command: "SetUser" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "operationType" + value: 0 + - name: "userIndex" + value: 1 + - name: "userName" + value: "xxx" + - name: "userUniqueId" + value: 6452 + - name: "userStatus" + value: 1 + - name: "userType" + value: 0 + - name: "credentialRule" + value: 0 + + - label: "Read the user back and verify its fields" + command: "GetUser" + arguments: + values: + - name: "userIndex" + value: 1 + response: + values: + - name: "userIndex" + value: 1 + - name: "userName" + value: "xxx" + - name: "userUniqueId" + value: 6452 + - name: "userStatus" + value: 1 + - name: "userType" + value: 0 + - name: "credentialRule" + value: 0 + - name: "credentials" + value: null + - name: "creatorFabricIndex" + value: 1 + - name: "lastModifiedFabricIndex" + value: 1 + - name: "nextUserIndex" + value: null + - label: "Create new PIN credential and lock/unlock user" - PICS: DRLK.S.C22.Rsp command: "SetCredential" - timedInteractionTimeoutMs: 10000 + timedInteractionTimeoutMs: 1000 arguments: values: - name: "operationType" @@ -46,7 +95,7 @@ tests: - name: "credentialData" value: "123456" - name: "userIndex" - value: null + value: 1 - name: "userStatus" value: null - name: "userType" @@ -56,51 +105,123 @@ tests: - name: "status" value: 0 - name: "userIndex" - value: 1 + value: null - name: "nextCredentialIndex" value: 2 + - label: "Verify created PIN credential" + command: "GetCredentialStatus" + arguments: + values: + - name: "credential" + value: { CredentialType: 1, CredentialIndex: 1 } + response: + values: + - name: "credentialExists" + value: true + - name: "userIndex" + value: 1 + - name: "creatorFabricIndex" + value: 1 + - name: "lastModifiedFabricIndex" + value: 1 + - name: "nextCredentialIndex" + value: null + - label: "Precondition: Door is in locked state" PICS: DRLK.S.C00.Rsp command: "LockDoor" - timedInteractionTimeoutMs: 10000 + timedInteractionTimeoutMs: 1000 arguments: values: - name: "PINCode" value: "123456" - label: "TH writes AutoRelockTime attribute value as 10 seconds on the DUT" - PICS: DRLK.S.A0023 + PICS: DRLK.S.A0023 && PICS_SDK_CI_ONLY + command: "writeAttribute" + attribute: "AutoRelockTime" + arguments: + value: 10 + + - label: "TH writes AutoRelockTime attribute value as 60 seconds on the DUT" + PICS: DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP + command: "writeAttribute" + attribute: "AutoRelockTime" + arguments: + value: 60 + + - label: "TH writes AutoRelockTime attribute value as 10 seconds on the DUT" + PICS: "!DRLK.S.A0023 && PICS_SDK_CI_ONLY" command: "writeAttribute" attribute: "AutoRelockTime" arguments: value: 10 + response: + error: UNSUPPORTED_WRITE + + - label: "TH writes AutoRelockTime attribute value as 60 seconds on the DUT" + PICS: "!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP" + command: "writeAttribute" + attribute: "AutoRelockTime" + arguments: + value: 60 + response: + error: UNSUPPORTED_WRITE + + - label: "TH sends the unlock with Timeout command to the DUT " + PICS: DRLK.S.C03.Rsp && PICS_SDK_CI_ONLY + command: "UnlockWithTimeout" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "Timeout" + value: 10 + - name: "PINCode" + value: "123456" - label: "TH sends the unlock with Timeout command to the DUT " - PICS: DRLK.S.C03.Rsp + PICS: DRLK.S.C03.Rsp && PICS_SKIP_SAMPLE_APP command: "UnlockWithTimeout" - timedInteractionTimeoutMs: 10000 + timedInteractionTimeoutMs: 1000 arguments: values: - name: "Timeout" - value: 5 + value: 60 - name: "PINCode" value: "123456" - label: "TH reads AutoRelockTime attribute from DUT" - PICS: DRLK.S.A0023 + PICS: DRLK.S.A0023 && PICS_SDK_CI_ONLY command: "readAttribute" attribute: "AutoRelockTime" response: value: 10 - - label: "Wait 5000ms" + - label: "TH reads AutoRelockTime attribute from DUT" + PICS: DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP + command: "readAttribute" + attribute: "AutoRelockTime" + response: + value: 60 + + - label: "Wait 10000ms" + PICS: PICS_SDK_CI_ONLY cluster: "DelayCommands" command: "WaitForMs" arguments: values: - name: "ms" - value: 5000 + value: 10000 + + - label: "Wait 70000ms" + PICS: PICS_SKIP_SAMPLE_APP + cluster: "DelayCommands" + command: "WaitForMs" + arguments: + values: + - name: "ms" + value: 70000 - label: "TH reads LockState attribute" PICS: DRLK.S.A0000 @@ -108,3 +229,20 @@ tests: attribute: "LockState" response: value: 1 + + - label: "Cleanup the created user" + command: "ClearUser" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "userIndex" + value: 1 + + - label: "Clean the created credential" + PICS: DRLK.S.C26.Rsp + command: "ClearCredential" + timedInteractionTimeoutMs: 1000 + arguments: + values: + - name: "credential" + value: { CredentialType: 1, CredentialIndex: 1 } diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml index 1a2cec9ba0f499..bc825c2f975293 100644 --- a/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml +++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml @@ -84,7 +84,7 @@ tests: value: null - label: "TH reads NumberOfYearDay SchedulesSupportedPerUser attribute" - PICS: DRLK.S.F04 && DRLK.S.A0015 + PICS: DRLK.S.F10 && DRLK.S.A0015 command: "readAttribute" attribute: "NumberOfYearDaySchedulesSupportedPerUser" response: @@ -94,7 +94,7 @@ tests: maxValue: 255 - label: "TH reads NumberOfTotalUsers Supported attribute" - PICS: DRLK.C.F08 && DRLK.S.A0011 + PICS: DRLK.S.F08 && DRLK.S.A0011 command: "readAttribute" attribute: "NumberOfTotalUsersSupported" response: @@ -104,7 +104,7 @@ tests: maxValue: 65534 - label: "TH sends Set Year Day Schedule Command to DUT" - PICS: DRLK.S.F04 && DRLK.S.C0e.Rsp + PICS: DRLK.S.F10 && DRLK.S.C0e.Rsp command: "SetYearDaySchedule" arguments: values: @@ -119,7 +119,7 @@ tests: #issue #18591 - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx + PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx command: "GetYearDaySchedule" arguments: values: @@ -159,7 +159,7 @@ tests: error: INVALID_COMMAND - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx + PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx command: "GetYearDaySchedule" arguments: values: @@ -203,18 +203,18 @@ tests: value: 0 - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx + PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx command: "GetYearDaySchedule" arguments: values: - name: "YearDayIndex" - value: 10 + value: NumberOfYearDaySchedulesSupportedPerUser - name: "userIndex" value: 5 response: values: - name: "YearDayIndex" - value: 10 + value: NumberOfYearDaySchedulesSupportedPerUser - name: "userIndex" value: 5 - name: "status" @@ -237,7 +237,7 @@ tests: value: 1 - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp + PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp command: "GetYearDaySchedule" arguments: values: @@ -275,7 +275,7 @@ tests: value: 2100 - label: "TH sends Get Year Day Schedule Command to DUT" - PICS: DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx + PICS: DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx command: "GetYearDaySchedule" arguments: values: @@ -299,7 +299,7 @@ tests: minValue: 1081 - label: "TH sends Clear Year Day Schedule to DUT" - PICS: DRLK.S.F04 && DRLK.S.C10.Rsp + PICS: DRLK.S.F10 && DRLK.S.C10.Rsp command: "ClearYearDaySchedule" arguments: values: @@ -311,7 +311,7 @@ tests: error: INVALID_COMMAND - label: "Clear a year day schedule for the first user" - PICS: DRLK.S.F04 && DRLK.S.C10.Rsp + PICS: DRLK.S.F10 && DRLK.S.C10.Rsp command: "ClearYearDaySchedule" arguments: values: diff --git a/src/app/tests/suites/certification/Test_TC_LUNIT_1_2.yaml b/src/app/tests/suites/certification/Test_TC_LUNIT_1_2.yaml index 9a137a4febf8d0..1750aa7aa859a8 100644 --- a/src/app/tests/suites/certification/Test_TC_LUNIT_1_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_LUNIT_1_2.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 108.1.2. [TC-LTIME-1.2] Global Attributes [DUT as Server] +name: 108.1.2. [TC-LUNIT-1.2] Global Attributes [DUT as Server] PICS: - LUNIT.S diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index e3cad481ffec12..6f7db91e3aadd9 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -3259,14 +3259,14 @@ class Test_TC_CC_1_1Suite : public TestCommand } case 2: { LogStep(2, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("( !CC.S.F00 && !CC.S.F01 && !CC.S.F02 && !CC.S.F03 )"), + VerifyOrDo(!ShouldSkip("( !CC.S.F00 && !CC.S.F01 && !CC.S.F02 && !CC.S.F03 && !CC.S.F04 )"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::FeatureMap::Id, true, chip::NullOptional); } case 3: { LogStep(3, "Read the global attribute: FeatureMap"); - VerifyOrDo(!ShouldSkip("( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 )"), + VerifyOrDo(!ShouldSkip("( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 || CC.S.F04)"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ColorControl::Id, ColorControl::Attributes::FeatureMap::Id, true, chip::NullOptional); @@ -69048,7 +69048,7 @@ class Test_TC_DRLK_2_2Suite : public TestCommand class Test_TC_DRLK_2_3Suite : public TestCommand { public: - Test_TC_DRLK_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_3", 12, credsIssuerConfig) + Test_TC_DRLK_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_3", 37, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("cluster", &mCluster); @@ -69058,11 +69058,640 @@ class Test_TC_DRLK_2_3Suite : public TestCommand ~Test_TC_DRLK_2_3Suite() {} - chip::System::Clock::Timeout GetWaitDuration() const override + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } + +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 { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); + 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)); + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("userIndex", value.userIndex, 1U)); + VerifyOrReturn(CheckValueNonNull("userName", value.userName)); + VerifyOrReturn(CheckValueAsString("userName.Value()", value.userName.Value(), chip::CharSpan("xxx", 3))); + VerifyOrReturn(CheckValueNonNull("userUniqueId", value.userUniqueId)); + VerifyOrReturn(CheckValue("userUniqueId.Value()", value.userUniqueId.Value(), 6452UL)); + VerifyOrReturn(CheckValueNonNull("userStatus", value.userStatus)); + VerifyOrReturn(CheckValue("userStatus.Value()", value.userStatus.Value(), 1U)); + VerifyOrReturn(CheckValueNonNull("userType", value.userType)); + VerifyOrReturn(CheckValue("userType.Value()", value.userType.Value(), 0U)); + VerifyOrReturn(CheckValueNonNull("credentialRule", value.credentialRule)); + VerifyOrReturn(CheckValue("credentialRule.Value()", value.credentialRule.Value(), 0U)); + VerifyOrReturn(CheckValueNull("credentials", value.credentials)); + VerifyOrReturn(CheckValueNonNull("creatorFabricIndex", value.creatorFabricIndex)); + VerifyOrReturn(CheckValue("creatorFabricIndex.Value()", value.creatorFabricIndex.Value(), 1U)); + VerifyOrReturn(CheckValueNonNull("lastModifiedFabricIndex", value.lastModifiedFabricIndex)); + VerifyOrReturn(CheckValue("lastModifiedFabricIndex.Value()", value.lastModifiedFabricIndex.Value(), 1U)); + VerifyOrReturn(CheckValueNull("nextUserIndex", value.nextUserIndex)); + } + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("status", value.status, 0U)); + VerifyOrReturn(CheckValueNull("userIndex", value.userIndex)); + VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", value.nextCredentialIndex)); + VerifyOrReturn(CheckValue("nextCredentialIndex.Value()", value.nextCredentialIndex.Value(), 2U)); + } + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("credentialExists", value.credentialExists, true)); + VerifyOrReturn(CheckValueNonNull("userIndex", value.userIndex)); + VerifyOrReturn(CheckValue("userIndex.Value()", value.userIndex.Value(), 1U)); + VerifyOrReturn(CheckValueNonNull("creatorFabricIndex", value.creatorFabricIndex)); + VerifyOrReturn(CheckValue("creatorFabricIndex.Value()", value.creatorFabricIndex.Value(), 1U)); + VerifyOrReturn(CheckValueNonNull("lastModifiedFabricIndex", value.lastModifiedFabricIndex)); + VerifyOrReturn(CheckValue("lastModifiedFabricIndex.Value()", value.lastModifiedFabricIndex.Value(), 1U)); + VerifyOrReturn(CheckValueNull("nextCredentialIndex", value.nextCredentialIndex)); + } + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("requirePINforRemoteOperation", value, false)); + } + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + bool value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("requirePINforRemoteOperation", value, true)); + } + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint8_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("userCodeTemporaryDisableTime", value, 15U)); + } + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("autoRelockTime", value, 10UL)); + } + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("autoRelockTime", value, 60UL)); + } + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + 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, "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, "Create new user"); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::SetUser::Type value; + value.operationType = static_cast(0); + value.userIndex = 1U; + value.userName.SetNonNull(); + value.userName.Value() = chip::Span("xxxgarbage: not in length on purpose", 3); + value.userUniqueId.SetNonNull(); + value.userUniqueId.Value() = 6452UL; + value.userStatus.SetNonNull(); + value.userStatus.Value() = static_cast(1); + value.userType.SetNonNull(); + value.userType.Value() = static_cast(0); + value.credentialRule.SetNonNull(); + value.credentialRule.Value() = static_cast(0); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 2: { + LogStep(2, "Read the user back and verify its fields"); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::GetUser::Type value; + value.userIndex = 1U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetUser::Id, value, + chip::NullOptional + + ); + } + case 3: { + LogStep(3, "Create new PIN credential and lock/unlock user"); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::SetCredential::Type value; + value.operationType = static_cast(0); + + value.credential.credentialType = static_cast(1); + value.credential.credentialIndex = 1U; + + value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); + value.userIndex.SetNonNull(); + value.userIndex.Value() = 1U; + value.userStatus.SetNull(); + value.userType.SetNull(); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 4: { + LogStep(4, "Verify created PIN credential"); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::GetCredentialStatus::Type value; + + value.credential.credentialType = static_cast(1); + value.credential.credentialIndex = 1U; + + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetCredentialStatus::Id, value, + chip::NullOptional + + ); + } + case 5: { + LogStep(5, "Precondition: Door is in locked state"); + VerifyOrDo(!ShouldSkip("DRLK.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::LockDoor::Type value; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 6: { + LogStep(6, "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + bool value; + value = false; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, + DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 7: { + LogStep(7, + "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify DUT responds with " + "UNSUPPORTED_WRITE"); + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + bool value; + value = false; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, + DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 8: { + LogStep(8, "TH reads the RequirePINforRemoteOperation attribute from the DUT"); + 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 9: { + LogStep(9, "TH sends the unlock Door command to the DUT without PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 10: { + LogStep(10, "TH sends the unlock Door command to the DUT with valid PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 11: { + LogStep(11, "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + bool value; + value = true; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, + DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 12: { + LogStep(12, + "TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify DUT responds with " + "UNSUPPORTED_WRITE"); + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + bool value; + value = true; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, + DoorLock::Attributes::RequirePINforRemoteOperation::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 13: { + LogStep(13, "TH reads the RequirePINforRemoteOperation attribute from the DUT"); + 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 14: { + LogStep(14, "TH sends the unlock Door command to the DUT with valid PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 15: { + LogStep(15, "TH sends the unlock Door command to the DUT with invalid PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("1234568garbage: not in length on purpose"), 7); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 16: { + LogStep(16, "TH sends the unlock Door command to the DUT without PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 17: { + LogStep(17, + "TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and Verify that the DUT sends Success response"); + VerifyOrDo(!ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint8_t value; + value = 3U; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::WrongCodeEntryLimit::Id, + value, chip::NullOptional, chip::NullOptional); + } + case 18: { + LogStep(18, + "TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and verify DUT responds with UNSUPPORTED_WRITE"); + VerifyOrDo(!ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint8_t value; + value = 3U; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::WrongCodeEntryLimit::Id, + value, chip::NullOptional, chip::NullOptional); + } + case 19: { + LogStep(19, + "TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify that the DUT sends " + "Success response"); + VerifyOrDo(!ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint8_t value; + value = 15U; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, + DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 20: { + LogStep(20, + "TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify that the DUT sends " + "Success response"); + VerifyOrDo(!ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint8_t value; + value = 15U; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, + DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, value, chip::NullOptional, + chip::NullOptional); + } + case 21: { + LogStep(21, "TH sends the unlock Door command to the DUT with invalid PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("1234568garbage: not in length on purpose"), 7); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 22: { + LogStep(22, "TH sends the unlock Door command to the DUT with invalid PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("1234568garbage: not in length on purpose"), 7); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 23: { + LogStep(23, "TH sends the unlock Door command to the DUT with invalid PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("1234568garbage: not in length on purpose"), 7); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 24: { + LogStep(24, "TH sends the unlock Door command to the DUT with invalid PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("1234568garbage: not in length on purpose"), 7); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 25: { + LogStep(25, "TH reads the UserCodeTemporaryDisableTime attribute from the DUT and check attribute is triggered"); + VerifyOrDo(!ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, + DoorLock::Attributes::UserCodeTemporaryDisableTime::Id, true, chip::NullOptional); + } + case 26: { + LogStep(26, "TH sends the unlock Door command to the DUT with valid PINCode"); + VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 27: { + LogStep(27, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint32_t value; + value = 10UL; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, + chip::NullOptional, chip::NullOptional); + } + case 28: { + LogStep(28, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint32_t value; + value = 60UL; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, + chip::NullOptional, chip::NullOptional); + } + case 29: { + LogStep(29, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); + VerifyOrDo(!ShouldSkip("!DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint32_t value; + value = 10UL; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, + chip::NullOptional, chip::NullOptional); + } + case 30: { + LogStep(30, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); + VerifyOrDo(!ShouldSkip("!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint32_t value; + value = 60UL; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, + chip::NullOptional, chip::NullOptional); + } + case 31: { + LogStep(31, "TH reads the AutoRelockTime attribute from the DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, + chip::NullOptional); + } + case 32: { + LogStep(32, "TH reads the AutoRelockTime attribute from the DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, + chip::NullOptional); + } + case 33: { + LogStep(33, + "TH sends the unlock Door command to the DUT with valid PINCode and Verify that DUT sends SUCCESS response to " + "the TH"); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.C01.Rsp"), 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 34: { + LogStep(34, "TH reads LockState attribute after AutoRelockTime Expires and Verify that the DUT is locked."); + VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.A0000"), 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 35: { + LogStep(35, "Cleanup the created user"); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; + value.userIndex = 1U; + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearUser::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 36: { + LogStep(36, "Clean the created credential"); + VerifyOrDo(!ShouldSkip("DRLK.S.C26.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::ClearCredential::Type value; + value.credential.SetNonNull(); + + value.credential.Value().credentialType = static_cast(1); + value.credential.Value().credentialIndex = 1U; + + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + } + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DRLK_2_4Suite : public TestCommand +{ +public: + Test_TC_DRLK_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_4", 19, credsIssuerConfig) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); } + ~Test_TC_DRLK_2_4Suite() {} + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } + private: chip::Optional mNodeId; chip::Optional mCluster; @@ -69148,22 +69777,54 @@ class Test_TC_DRLK_2_3Suite : public TestCommand VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("autoRelockTime", value, 10UL)); + } + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + uint32_t value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckValue("autoRelockTime", value, 60UL)); + } + break; + case 14: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 9: + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 16: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::DataModel::Nullable value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); VerifyOrReturn(CheckValueNonNull("lockState", value)); - VerifyOrReturn(CheckValue("lockState.Value()", value.Value(), 2U)); + VerifyOrReturn(CheckValue("lockState.Value()", value.Value(), 1U)); } break; - case 10: + case 17: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 11: + case 18: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; default: @@ -69205,7 +69866,7 @@ class Test_TC_DRLK_2_3Suite : public TestCommand value.credentialRule.SetNonNull(); value.credentialRule.Value() = static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetUser::Id, value, - chip::Optional(10000), chip::NullOptional + chip::Optional(1000), chip::NullOptional ); } @@ -69234,7 +69895,7 @@ class Test_TC_DRLK_2_3Suite : public TestCommand value.userStatus.SetNull(); value.userType.SetNull(); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000), chip::NullOptional + chip::Optional(1000), chip::NullOptional ); } @@ -69259,56 +69920,118 @@ class Test_TC_DRLK_2_3Suite : public TestCommand value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000), chip::NullOptional + chip::Optional(1000), chip::NullOptional ); } case 6: { LogStep(6, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; uint32_t value; - value = 60UL; + value = 10UL; return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, chip::NullOptional, chip::NullOptional); } case 7: { - LogStep(7, "TH sends the unlock Door command to the DUT with valid PINCode"); - VerifyOrDo(!ShouldSkip("DRLK.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(7, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; - chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type value; + uint32_t value; + value = 60UL; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, + chip::NullOptional, chip::NullOptional); + } + case 8: { + LogStep(8, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); + VerifyOrDo(!ShouldSkip("!DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint32_t value; + value = 10UL; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, + chip::NullOptional, chip::NullOptional); + } + case 9: { + LogStep(9, "TH writes AutoRelockTime attribute value as 60 seconds on the DUT"); + VerifyOrDo(!ShouldSkip("!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + uint32_t value; + value = 60UL; + return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, + chip::NullOptional, chip::NullOptional); + } + case 10: { + LogStep(10, "TH sends the unlock with Timeout command to the DUT "); + VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::Type value; + value.timeout = 10U; value.pinCode.Emplace(); value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockDoor::Id, value, - chip::Optional(10000), chip::NullOptional + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockWithTimeout::Id, value, + chip::Optional(1000), chip::NullOptional ); } - case 8: { - LogStep(8, "Wait 10000ms"); + case 11: { + LogStep(11, "TH sends the unlock with Timeout command to the DUT "); + VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::Type value; + value.timeout = 60U; + value.pinCode.Emplace(); + value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); + return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockWithTimeout::Id, value, + chip::Optional(1000), chip::NullOptional + + ); + } + case 12: { + LogStep(12, "TH reads AutoRelockTime attribute from DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, + chip::NullOptional); + } + case 13: { + LogStep(13, "TH reads AutoRelockTime attribute from DUT"); + VerifyOrDo(!ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, + chip::NullOptional); + } + case 14: { + LogStep(14, "Wait 10000ms"); + VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 10000UL; return WaitForMs(kIdentityAlpha, value); } - case 9: { - LogStep(9, "TH reads LockState attribute"); + case 15: { + LogStep(15, "Wait 70000ms"); + VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 70000UL; + return WaitForMs(kIdentityAlpha, value); + } + case 16: { + LogStep(16, "TH reads LockState attribute"); VerifyOrDo(!ShouldSkip("DRLK.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, chip::NullOptional); } - case 10: { - LogStep(10, "Cleanup the created user"); + case 17: { + LogStep(17, "Cleanup the created user"); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearUser::Type value; value.userIndex = 1U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearUser::Id, value, - chip::Optional(10000), chip::NullOptional + chip::Optional(1000), chip::NullOptional ); } - case 11: { - LogStep(11, "Clean the created credential"); + case 18: { + LogStep(18, "Clean the created credential"); VerifyOrDo(!ShouldSkip("DRLK.S.C26.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearCredential::Type value; @@ -69318,191 +70041,10 @@ class Test_TC_DRLK_2_3Suite : public TestCommand value.credential.Value().credentialIndex = 1U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::ClearCredential::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - } - return CHIP_NO_ERROR; - } -}; - -class Test_TC_DRLK_2_4Suite : public TestCommand -{ -public: - Test_TC_DRLK_2_4Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_4", 8, credsIssuerConfig) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - - ~Test_TC_DRLK_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) - { - 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::DoorLock::Commands::SetCredentialResponse::DecodableType value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("status", value.status, 0U)); - VerifyOrReturn(CheckValueNonNull("userIndex", value.userIndex)); - VerifyOrReturn(CheckValue("userIndex.Value()", value.userIndex.Value(), 1U)); - VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", value.nextCredentialIndex)); - VerifyOrReturn(CheckValue("nextCredentialIndex.Value()", value.nextCredentialIndex.Value(), 2U)); - } - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - 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("autoRelockTime", value, 10UL)); - } - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - { - chip::app::DataModel::Nullable value; - VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValueNonNull("lockState", value)); - VerifyOrReturn(CheckValue("lockState.Value()", value.Value(), 1U)); - } - 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, "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, "Create new PIN credential and lock/unlock user"); - VerifyOrDo(!ShouldSkip("DRLK.S.C22.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DoorLock::Commands::SetCredential::Type value; - value.operationType = static_cast(0); - - value.credential.credentialType = static_cast(1); - value.credential.credentialIndex = 1U; - - value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); - value.userIndex.SetNull(); - value.userStatus.SetNull(); - value.userType.SetNull(); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 2: { - LogStep(2, "Precondition: Door is in locked state"); - VerifyOrDo(!ShouldSkip("DRLK.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DoorLock::Commands::LockDoor::Type value; - value.pinCode.Emplace(); - value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::LockDoor::Id, value, - chip::Optional(10000), chip::NullOptional - - ); - } - case 3: { - LogStep(3, "TH writes AutoRelockTime attribute value as 10 seconds on the DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - uint32_t value; - value = 10UL; - return WriteAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, value, - chip::NullOptional, chip::NullOptional); - } - case 4: { - LogStep(4, "TH sends the unlock with Timeout command to the DUT "); - VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - ListFreer listFreer; - chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::Type value; - value.timeout = 5U; - value.pinCode.Emplace(); - value.pinCode.Value() = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6); - return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::UnlockWithTimeout::Id, value, - chip::Optional(10000), chip::NullOptional + chip::Optional(1000), chip::NullOptional ); } - case 5: { - LogStep(5, "TH reads AutoRelockTime attribute from DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AutoRelockTime::Id, true, - chip::NullOptional); - } - case 6: { - LogStep(6, "Wait 5000ms"); - ListFreer listFreer; - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 5000UL; - return WaitForMs(kIdentityAlpha, value); - } - case 7: { - LogStep(7, "TH reads LockState attribute"); - VerifyOrDo(!ShouldSkip("DRLK.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); - return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::LockState::Id, true, - chip::NullOptional); - } } return CHIP_NO_ERROR; } @@ -69959,7 +70501,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand { chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("yearDayIndex", value.yearDayIndex, 10U)); + VerifyOrReturn(CheckValue("yearDayIndex", value.yearDayIndex, NumberOfYearDaySchedulesSupportedPerUser)); VerifyOrReturn(CheckValue("userIndex", value.userIndex, 5U)); VerifyOrReturn(CheckValue("status", value.status, 139U)); VerifyOrReturn(CheckConstraintHasValue("value.localStartTime", value.localStartTime, false)); @@ -70066,19 +70608,19 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 3: { LogStep(3, "TH reads NumberOfYearDay SchedulesSupportedPerUser attribute"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04 && DRLK.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::NumberOfYearDaySchedulesSupportedPerUser::Id, true, chip::NullOptional); } case 4: { LogStep(4, "TH reads NumberOfTotalUsers Supported attribute"); - VerifyOrDo(!ShouldSkip("DRLK.C.F08 && DRLK.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::NumberOfTotalUsersSupported::Id, true, chip::NullOptional); } case 5: { LogStep(5, "TH sends Set Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04 && DRLK.S.C0e.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0e.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::SetYearDaySchedule::Type value; value.yearDayIndex = 1U; @@ -70092,7 +70634,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 6: { LogStep(6, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), + VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; @@ -70119,7 +70661,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 8: { LogStep(8, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), + VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; @@ -70153,11 +70695,11 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 10: { LogStep(10, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), + VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; - value.yearDayIndex = 10U; + value.yearDayIndex = NumberOfYearDaySchedulesSupportedPerUser; value.userIndex = 5U; return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value, chip::NullOptional @@ -70178,7 +70720,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 12: { LogStep(12, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp"), + VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; @@ -70205,7 +70747,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 14: { LogStep(14, "TH sends Get Year Day Schedule Command to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), + VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value; @@ -70218,7 +70760,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 15: { LogStep(15, "TH sends Clear Year Day Schedule to DUT"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04 && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 0U; @@ -70230,7 +70772,7 @@ class Test_TC_DRLK_2_7Suite : public TestCommand } case 16: { LogStep(16, "Clear a year day schedule for the first user"); - VerifyOrDo(!ShouldSkip("DRLK.S.F04 && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + VerifyOrDo(!ShouldSkip("DRLK.S.F10 && DRLK.S.C10.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type value; value.yearDayIndex = 1U; 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 497e858bbc1414..e825b858b634f3 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -3630,7 +3630,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { break; case 2: ChipLogProgress(chipTool, " ***** Test Step 2 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("( !CC.S.F00 && !CC.S.F01 && !CC.S.F02 && !CC.S.F03 )")) { + if (ShouldSkip("( !CC.S.F00 && !CC.S.F01 && !CC.S.F02 && !CC.S.F03 && !CC.S.F04 )")) { NextTest(); return; } @@ -3638,7 +3638,7 @@ class Test_TC_CC_1_1 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : Read the global attribute: FeatureMap\n"); - if (ShouldSkip("( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 )")) { + if (ShouldSkip("( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 || CC.S.F04)")) { NextTest(); return; } @@ -119536,6 +119536,1372 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { Wait(); + // Ensure we increment mTestIndex before we start running the relevant + // command. That way if we lose the timeslice after we send the message + // but before our function call returns, we won't end up with an + // incorrect mTestIndex value observed when we get the response. + switch (mTestIndex++) { + case 0: + ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n"); + err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); + break; + case 1: + ChipLogProgress(chipTool, " ***** Test Step 1 : Create new user\n"); + err = TestCreateNewUser_1(); + break; + case 2: + ChipLogProgress(chipTool, " ***** Test Step 2 : Read the user back and verify its fields\n"); + err = TestReadTheUserBackAndVerifyItsFields_2(); + break; + case 3: + ChipLogProgress(chipTool, " ***** Test Step 3 : Create new PIN credential and lock/unlock user\n"); + err = TestCreateNewPinCredentialAndLockUnlockUser_3(); + break; + case 4: + ChipLogProgress(chipTool, " ***** Test Step 4 : Verify created PIN credential\n"); + err = TestVerifyCreatedPinCredential_4(); + break; + case 5: + ChipLogProgress(chipTool, " ***** Test Step 5 : Precondition: Door is in locked state\n"); + if (ShouldSkip("DRLK.S.C00.Rsp")) { + NextTest(); + return; + } + err = TestPreconditionDoorIsInLockedState_5(); + break; + case 6: + ChipLogProgress( + chipTool, " ***** Test Step 6 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT\n"); + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { + NextTest(); + return; + } + err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_6(); + break; + case 7: + ChipLogProgress(chipTool, + " ***** Test Step 7 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify " + "DUT responds with UNSUPPORTED_WRITE\n"); + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033")) { + NextTest(); + return; + } + err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_7(); + break; + case 8: + ChipLogProgress(chipTool, " ***** Test Step 8 : TH reads the RequirePINforRemoteOperation attribute from the DUT\n"); + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { + NextTest(); + return; + } + err = TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_8(); + break; + case 9: + ChipLogProgress(chipTool, " ***** Test Step 9 : TH sends the unlock Door command to the DUT without PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_9(); + break; + case 10: + ChipLogProgress(chipTool, " ***** Test Step 10 : TH sends the unlock Door command to the DUT with valid PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_10(); + break; + case 11: + ChipLogProgress( + chipTool, " ***** Test Step 11 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT\n"); + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { + NextTest(); + return; + } + err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_11(); + break; + case 12: + ChipLogProgress(chipTool, + " ***** Test Step 12 : TH writes the RequirePINforRemoteOperation attribute value as False on the DUT and Verify " + "DUT responds with UNSUPPORTED_WRITE\n"); + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && ! DRLK.S.A0033")) { + NextTest(); + return; + } + err = TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_12(); + break; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads the RequirePINforRemoteOperation attribute from the DUT\n"); + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0033")) { + NextTest(); + return; + } + err = TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_13(); + break; + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : TH sends the unlock Door command to the DUT with valid PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_14(); + break; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_15(); + break; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : TH sends the unlock Door command to the DUT without PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp && DRLK.S.A0033")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_16(); + break; + case 17: + ChipLogProgress(chipTool, + " ***** Test Step 17 : TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and Verify that the DUT sends " + "Success response\n"); + if (ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0030")) { + NextTest(); + return; + } + err = TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyThatTheDutSendsSuccessResponse_17(); + break; + case 18: + ChipLogProgress(chipTool, + " ***** Test Step 18 : TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and verify DUT responds with " + "UNSUPPORTED_WRITE\n"); + if (ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0030")) { + NextTest(); + return; + } + err = TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_18(); + break; + case 19: + ChipLogProgress(chipTool, + " ***** Test Step 19 : TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify " + "that the DUT sends Success response\n"); + if (ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && DRLK.S.A0031")) { + NextTest(); + return; + } + err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_19(); + break; + case 20: + ChipLogProgress(chipTool, + " ***** Test Step 20 : TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on the DUT and Verify " + "that the DUT sends Success response\n"); + if (ShouldSkip("DRLK.S.F00 && DRLK.S.F01 && ! DRLK.S.A0031")) { + NextTest(); + return; + } + err = TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_20(); + break; + case 21: + ChipLogProgress(chipTool, " ***** Test Step 21 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_21(); + break; + case 22: + ChipLogProgress(chipTool, " ***** Test Step 22 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_22(); + break; + case 23: + ChipLogProgress(chipTool, " ***** Test Step 23 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_23(); + break; + case 24: + ChipLogProgress(chipTool, " ***** Test Step 24 : TH sends the unlock Door command to the DUT with invalid PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_24(); + break; + case 25: + ChipLogProgress(chipTool, + " ***** Test Step 25 : TH reads the UserCodeTemporaryDisableTime attribute from the DUT and check attribute is " + "triggered\n"); + if (ShouldSkip("DRLK.S.F07 && DRLK.S.F00 && DRLK.S.A0031")) { + NextTest(); + return; + } + err = TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDutAndCheckAttributeIsTriggered_25(); + break; + case 26: + ChipLogProgress(chipTool, " ***** Test Step 26 : TH sends the unlock Door command to the DUT with valid PINCode\n"); + if (ShouldSkip("DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_26(); + break; + case 27: + ChipLogProgress(chipTool, " ***** Test Step 27 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_27(); + break; + case 28: + ChipLogProgress(chipTool, " ***** Test Step 28 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_28(); + break; + case 29: + ChipLogProgress(chipTool, " ***** Test Step 29 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); + if (ShouldSkip("!DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_29(); + break; + case 30: + ChipLogProgress(chipTool, " ***** Test Step 30 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + if (ShouldSkip("!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_30(); + break; + case 31: + ChipLogProgress(chipTool, " ***** Test Step 31 : TH reads the AutoRelockTime attribute from the DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestThReadsTheAutoRelockTimeAttributeFromTheDut_31(); + break; + case 32: + ChipLogProgress(chipTool, " ***** Test Step 32 : TH reads the AutoRelockTime attribute from the DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = TestThReadsTheAutoRelockTimeAttributeFromTheDut_32(); + break; + case 33: + ChipLogProgress(chipTool, + " ***** Test Step 33 : TH sends the unlock Door command to the DUT with valid PINCode and Verify that DUT sends " + "SUCCESS response to the TH\n"); + if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.C01.Rsp")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_33(); + break; + case 34: + ChipLogProgress(chipTool, + " ***** Test Step 34 : TH reads LockState attribute after AutoRelockTime Expires and Verify that the DUT is " + "locked.\n"); + if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.A0000")) { + NextTest(); + return; + } + err = TestThReadsLockStateAttributeAfterAutoRelockTimeExpiresAndVerifyThatTheDutIsLocked_34(); + break; + case 35: + ChipLogProgress(chipTool, " ***** Test Step 35 : Cleanup the created user\n"); + err = TestCleanupTheCreatedUser_35(); + break; + case 36: + ChipLogProgress(chipTool, " ***** Test Step 36 : Clean the created credential\n"); + if (ShouldSkip("DRLK.S.C26.Rsp")) { + NextTest(); + return; + } + err = TestCleanTheCreatedCredential_36(); + break; + } + + if (CHIP_NO_ERROR != err) { + ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); + SetCommandExitStatus(err); + } + } + + void OnStatusUpdate(const chip::app::StatusIB & status) override + { + switch (mTestIndex - 1) { + case 0: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 1: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 2: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 3: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 4: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 5: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 6: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 7: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 8: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 9: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 10: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 11: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 19: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 20: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 21: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 22: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 23: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 24: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 25: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 26: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_FAILURE)); + break; + case 27: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 28: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 30: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + break; + case 31: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 32: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 33: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 34: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 35: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 36: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + } + + // Go on to the next test. + ContinueOnChipMainThread(CHIP_NO_ERROR); + } + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } + +private: + std::atomic_uint16_t mTestIndex; + const uint16_t mTestCount = 37; + + chip::Optional mNodeId; + chip::Optional mCluster; + chip::Optional mEndpoint; + chip::Optional mTimeout; + + CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0() + { + chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; + value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; + return WaitForCommissionee("alpha", value); + } + + CHIP_ERROR TestCreateNewUser_1() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterSetUserParams alloc] init]; + params.operationType = [NSNumber numberWithUnsignedChar:0U]; + params.userIndex = [NSNumber numberWithUnsignedShort:1U]; + params.userName = @"xxx"; + params.userUniqueId = [NSNumber numberWithUnsignedInt:6452UL]; + params.userStatus = [NSNumber numberWithUnsignedChar:1U]; + params.userType = [NSNumber numberWithUnsignedChar:0U]; + params.credentialRule = [NSNumber numberWithUnsignedChar:0U]; + [cluster setUserWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Create new user Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestReadTheUserBackAndVerifyItsFields_2() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterGetUserParams alloc] init]; + params.userIndex = [NSNumber numberWithUnsignedShort:1U]; + [cluster getUserWithParams:params + completionHandler:^(MTRDoorLockClusterGetUserResponseParams * _Nullable values, NSError * _Nullable err) { + NSLog(@"Read the user back and verify its fields Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = values.userIndex; + VerifyOrReturn(CheckValue("userIndex", actualValue, 1U)); + } + + { + id actualValue = values.userName; + VerifyOrReturn(CheckValueNonNull("userName", actualValue)); + VerifyOrReturn(CheckValueAsString("userName", actualValue, @"xxx")); + } + + { + id actualValue = values.userUniqueId; + VerifyOrReturn(CheckValueNonNull("userUniqueId", actualValue)); + VerifyOrReturn(CheckValue("userUniqueId", actualValue, 6452UL)); + } + + { + id actualValue = values.userStatus; + VerifyOrReturn(CheckValueNonNull("userStatus", actualValue)); + VerifyOrReturn(CheckValue("userStatus", actualValue, 1U)); + } + + { + id actualValue = values.userType; + VerifyOrReturn(CheckValueNonNull("userType", actualValue)); + VerifyOrReturn(CheckValue("userType", actualValue, 0U)); + } + + { + id actualValue = values.credentialRule; + VerifyOrReturn(CheckValueNonNull("credentialRule", actualValue)); + VerifyOrReturn(CheckValue("credentialRule", actualValue, 0U)); + } + + { + id actualValue = values.credentials; + VerifyOrReturn(CheckValueNull("credentials", actualValue)); + } + + { + id actualValue = values.creatorFabricIndex; + VerifyOrReturn(CheckValueNonNull("creatorFabricIndex", actualValue)); + VerifyOrReturn(CheckValue("creatorFabricIndex", actualValue, 1U)); + } + + { + id actualValue = values.lastModifiedFabricIndex; + VerifyOrReturn(CheckValueNonNull("lastModifiedFabricIndex", actualValue)); + VerifyOrReturn(CheckValue("lastModifiedFabricIndex", actualValue, 1U)); + } + + { + id actualValue = values.nextUserIndex; + VerifyOrReturn(CheckValueNull("nextUserIndex", actualValue)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestCreateNewPinCredentialAndLockUnlockUser_3() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterSetCredentialParams alloc] init]; + params.operationType = [NSNumber numberWithUnsignedChar:0U]; + params.credential = [[MTRDoorLockClusterDlCredential alloc] init]; + ((MTRDoorLockClusterDlCredential *) params.credential).credentialType = [NSNumber numberWithUnsignedChar:1U]; + ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:1U]; + + params.credentialData = [[NSData alloc] initWithBytes:"123456" length:6]; + params.userIndex = [NSNumber numberWithUnsignedShort:1U]; + params.userStatus = nil; + params.userType = nil; + [cluster + setCredentialWithParams:params + completionHandler:^(MTRDoorLockClusterSetCredentialResponseParams * _Nullable values, NSError * _Nullable err) { + NSLog(@"Create new PIN credential and lock/unlock user Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = values.status; + VerifyOrReturn(CheckValue("status", actualValue, 0U)); + } + + { + id actualValue = values.userIndex; + VerifyOrReturn(CheckValueNull("userIndex", actualValue)); + } + + { + id actualValue = values.nextCredentialIndex; + VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", actualValue)); + VerifyOrReturn(CheckValue("nextCredentialIndex", actualValue, 2U)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestVerifyCreatedPinCredential_4() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterGetCredentialStatusParams alloc] init]; + params.credential = [[MTRDoorLockClusterDlCredential alloc] init]; + ((MTRDoorLockClusterDlCredential *) params.credential).credentialType = [NSNumber numberWithUnsignedChar:1U]; + ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:1U]; + + [cluster getCredentialStatusWithParams:params + completionHandler:^( + MTRDoorLockClusterGetCredentialStatusResponseParams * _Nullable values, NSError * _Nullable err) { + NSLog(@"Verify created PIN credential Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = values.credentialExists; + VerifyOrReturn(CheckValue("credentialExists", actualValue, true)); + } + + { + id actualValue = values.userIndex; + VerifyOrReturn(CheckValueNonNull("userIndex", actualValue)); + VerifyOrReturn(CheckValue("userIndex", actualValue, 1U)); + } + + { + id actualValue = values.creatorFabricIndex; + VerifyOrReturn(CheckValueNonNull("creatorFabricIndex", actualValue)); + VerifyOrReturn(CheckValue("creatorFabricIndex", actualValue, 1U)); + } + + { + id actualValue = values.lastModifiedFabricIndex; + VerifyOrReturn(CheckValueNonNull("lastModifiedFabricIndex", actualValue)); + VerifyOrReturn(CheckValue("lastModifiedFabricIndex", actualValue, 1U)); + } + + { + id actualValue = values.nextCredentialIndex; + VerifyOrReturn(CheckValueNull("nextCredentialIndex", actualValue)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestPreconditionDoorIsInLockedState_5() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterLockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; + [cluster lockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Precondition: Door is in locked state Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_6() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id requirePINforRemoteOperationArgument; + requirePINforRemoteOperationArgument = [NSNumber numberWithBool:false]; + [cluster writeAttributeRequirePINforRemoteOperationWithValue:requirePINforRemoteOperationArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes the RequirePINforRemoteOperation attribute value as False " + @"on the DUT Error: %@", + err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_7() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id requirePINforRemoteOperationArgument; + requirePINforRemoteOperationArgument = [NSNumber numberWithBool:false]; + [cluster writeAttributeRequirePINforRemoteOperationWithValue:requirePINforRemoteOperationArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes the RequirePINforRemoteOperation attribute value as False " + @"on the DUT and Verify DUT responds with UNSUPPORTED_WRITE Error: %@", + err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] + ? err.code + : EMBER_ZCL_STATUS_FAILURE) + : 0, + EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_8() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster + readAttributeRequirePINforRemoteOperationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the RequirePINforRemoteOperation attribute from the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("RequirePINforRemoteOperation", actualValue, false)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_9() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + [cluster unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT without PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_10() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; + [cluster unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with valid PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDut_11() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id requirePINforRemoteOperationArgument; + requirePINforRemoteOperationArgument = [NSNumber numberWithBool:true]; + [cluster writeAttributeRequirePINforRemoteOperationWithValue:requirePINforRemoteOperationArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes the RequirePINforRemoteOperation attribute value as False " + @"on the DUT Error: %@", + err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesTheRequirePINforRemoteOperationAttributeValueAsFalseOnTheDutAndVerifyDutRespondsWithUnsupportedWrite_12() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id requirePINforRemoteOperationArgument; + requirePINforRemoteOperationArgument = [NSNumber numberWithBool:true]; + [cluster writeAttributeRequirePINforRemoteOperationWithValue:requirePINforRemoteOperationArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes the RequirePINforRemoteOperation attribute value as False " + @"on the DUT and Verify DUT responds with UNSUPPORTED_WRITE Error: %@", + err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] + ? err.code + : EMBER_ZCL_STATUS_FAILURE) + : 0, + EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsTheRequirePINforRemoteOperationAttributeFromTheDut_13() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster + readAttributeRequirePINforRemoteOperationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the RequirePINforRemoteOperation attribute from the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("RequirePINforRemoteOperation", actualValue, true)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_14() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; + [cluster unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with valid PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_15() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"1234568" length:7]; + [cluster + unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with invalid PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, + EMBER_ZCL_STATUS_FAILURE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithoutPINCode_16() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + [cluster + unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT without PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, + EMBER_ZCL_STATUS_FAILURE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyThatTheDutSendsSuccessResponse_17() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id wrongCodeEntryLimitArgument; + wrongCodeEntryLimitArgument = [NSNumber numberWithUnsignedChar:3U]; + [cluster writeAttributeWrongCodeEntryLimitWithValue:wrongCodeEntryLimitArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and Verify " + @"that the DUT sends Success response Error: %@", + err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesWrongCodeEntryLimitAttributeValueAs3OnTheDutAndVerifyDutRespondsWithUnsupportedWrite_18() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id wrongCodeEntryLimitArgument; + wrongCodeEntryLimitArgument = [NSNumber numberWithUnsignedChar:3U]; + [cluster writeAttributeWrongCodeEntryLimitWithValue:wrongCodeEntryLimitArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes WrongCodeEntryLimit attribute value as 3 on the DUT and verify DUT " + @"responds with UNSUPPORTED_WRITE Error: %@", + err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] + ? err.code + : EMBER_ZCL_STATUS_FAILURE) + : 0, + EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_19() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id userCodeTemporaryDisableTimeArgument; + userCodeTemporaryDisableTimeArgument = [NSNumber numberWithUnsignedChar:15U]; + [cluster + writeAttributeUserCodeTemporaryDisableTimeWithValue:userCodeTemporaryDisableTimeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on " + @"the DUT and Verify that the DUT sends Success response Error: %@", + err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesUserCodeTemporaryDisableTimeAttributeValueAs15SecondsOnTheDutAndVerifyThatTheDutSendsSuccessResponse_20() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id userCodeTemporaryDisableTimeArgument; + userCodeTemporaryDisableTimeArgument = [NSNumber numberWithUnsignedChar:15U]; + [cluster + writeAttributeUserCodeTemporaryDisableTimeWithValue:userCodeTemporaryDisableTimeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes UserCodeTemporaryDisableTime attribute value as 15 Seconds on " + @"the DUT and Verify that the DUT sends Success response Error: %@", + err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] + ? err.code + : EMBER_ZCL_STATUS_FAILURE) + : 0, + EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_21() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"1234568" length:7]; + [cluster + unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with invalid PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, + EMBER_ZCL_STATUS_FAILURE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_22() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"1234568" length:7]; + [cluster + unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with invalid PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, + EMBER_ZCL_STATUS_FAILURE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_23() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"1234568" length:7]; + [cluster + unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with invalid PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, + EMBER_ZCL_STATUS_FAILURE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithInvalidPINCode_24() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"1234568" length:7]; + [cluster + unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with invalid PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, + EMBER_ZCL_STATUS_FAILURE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsTheUserCodeTemporaryDisableTimeAttributeFromTheDutAndCheckAttributeIsTriggered_25() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeUserCodeTemporaryDisableTimeWithCompletionHandler:^( + NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the UserCodeTemporaryDisableTime attribute from the DUT and check attribute is triggered Error: %@", + err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("UserCodeTemporaryDisableTime", actualValue, 15U)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_26() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; + [cluster + unlockDoorWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock Door command to the DUT with valid PINCode Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code : EMBER_ZCL_STATUS_FAILURE) : 0, + EMBER_ZCL_STATUS_FAILURE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_27() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id autoRelockTimeArgument; + autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:10UL]; + [cluster writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes AutoRelockTime attribute value as 10 seconds on the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_28() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id autoRelockTimeArgument; + autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:60UL]; + [cluster writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes AutoRelockTime attribute value as 60 seconds on the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_29() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id autoRelockTimeArgument; + autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:10UL]; + [cluster + writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes AutoRelockTime attribute value as 10 seconds on the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code + : EMBER_ZCL_STATUS_FAILURE) + : 0, + EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_30() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id autoRelockTimeArgument; + autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:60UL]; + [cluster + writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes AutoRelockTime attribute value as 60 seconds on the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code + : EMBER_ZCL_STATUS_FAILURE) + : 0, + EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_31() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAutoRelockTimeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the AutoRelockTime attribute from the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("AutoRelockTime", actualValue, 10UL)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsTheAutoRelockTimeAttributeFromTheDut_32() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAutoRelockTimeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads the AutoRelockTime attribute from the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("AutoRelockTime", actualValue, 60UL)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCodeAndVerifyThatDutSendsSuccessResponseToTheTh_33() + { + 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 TestThReadsLockStateAttributeAfterAutoRelockTimeExpiresAndVerifyThatTheDutIsLocked_34() + { + 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 TestCleanupTheCreatedUser_35() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterClearUserParams alloc] init]; + params.userIndex = [NSNumber numberWithUnsignedShort:1U]; + [cluster clearUserWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Cleanup the created user Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestCleanTheCreatedCredential_36() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterClearCredentialParams alloc] init]; + params.credential = [[MTRDoorLockClusterDlCredential alloc] init]; + ((MTRDoorLockClusterDlCredential *) params.credential).credentialType = [NSNumber numberWithUnsignedChar:1U]; + ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:1U]; + + [cluster clearCredentialWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"Clean the created credential Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } +}; + +class Test_TC_DRLK_2_4 : public TestCommandBridge { +public: + // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced + Test_TC_DRLK_2_4() + : TestCommandBridge("Test_TC_DRLK_2_4") + , mTestIndex(0) + { + AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); + AddArgument("cluster", &mCluster); + AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout); + } + // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) + + ~Test_TC_DRLK_2_4() {} + + /////////// TestCommand Interface ///////// + void NextTest() override + { + CHIP_ERROR err = CHIP_NO_ERROR; + + if (0 == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Start: Test_TC_DRLK_2_4\n"); + } + + if (mTestCount == mTestIndex) { + ChipLogProgress(chipTool, " **** Test Complete: Test_TC_DRLK_2_4\n"); + SetCommandExitStatus(CHIP_NO_ERROR); + return; + } + + Wait(); + // Ensure we increment mTestIndex before we start running the relevant // command. That way if we lose the timeslice after we send the message // but before our function call returns, we won't end up with an @@ -119571,43 +120937,103 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); - if (ShouldSkip("DRLK.S.A0023")) { + if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { NextTest(); return; } err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_6(); break; case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : TH sends the unlock Door command to the DUT with valid PINCode\n"); - if (ShouldSkip("DRLK.S.C01.Rsp")) { + ChipLogProgress(chipTool, " ***** Test Step 7 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_7(); + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_7(); break; case 8: - ChipLogProgress(chipTool, " ***** Test Step 8 : Wait 10000ms\n"); - err = TestWait10000ms_8(); + ChipLogProgress(chipTool, " ***** Test Step 8 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); + if (ShouldSkip("!DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_8(); break; case 9: - ChipLogProgress(chipTool, " ***** Test Step 9 : TH reads LockState attribute\n"); - if (ShouldSkip("DRLK.S.A0000")) { + ChipLogProgress(chipTool, " ***** Test Step 9 : TH writes AutoRelockTime attribute value as 60 seconds on the DUT\n"); + if (ShouldSkip("!DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { NextTest(); return; } - err = TestThReadsLockStateAttribute_9(); + err = TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_9(); break; case 10: - ChipLogProgress(chipTool, " ***** Test Step 10 : Cleanup the created user\n"); - err = TestCleanupTheCreatedUser_10(); + ChipLogProgress(chipTool, " ***** Test Step 10 : TH sends the unlock with Timeout command to the DUT \n"); + if (ShouldSkip("DRLK.S.C03.Rsp && PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockWithTimeoutCommandToTheDut_10(); break; case 11: - ChipLogProgress(chipTool, " ***** Test Step 11 : Clean the created credential\n"); + ChipLogProgress(chipTool, " ***** Test Step 11 : TH sends the unlock with Timeout command to the DUT \n"); + if (ShouldSkip("DRLK.S.C03.Rsp && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = TestThSendsTheUnlockWithTimeoutCommandToTheDut_11(); + break; + case 12: + ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads AutoRelockTime attribute from DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestThReadsAutoRelockTimeAttributeFromDut_12(); + break; + case 13: + ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads AutoRelockTime attribute from DUT\n"); + if (ShouldSkip("DRLK.S.A0023 && PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = TestThReadsAutoRelockTimeAttributeFromDut_13(); + break; + case 14: + ChipLogProgress(chipTool, " ***** Test Step 14 : Wait 10000ms\n"); + if (ShouldSkip("PICS_SDK_CI_ONLY")) { + NextTest(); + return; + } + err = TestWait10000ms_14(); + break; + case 15: + ChipLogProgress(chipTool, " ***** Test Step 15 : Wait 70000ms\n"); + if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) { + NextTest(); + return; + } + err = TestWait70000ms_15(); + break; + case 16: + ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads LockState attribute\n"); + if (ShouldSkip("DRLK.S.A0000")) { + NextTest(); + return; + } + err = TestThReadsLockStateAttribute_16(); + break; + case 17: + ChipLogProgress(chipTool, " ***** Test Step 17 : Cleanup the created user\n"); + err = TestCleanupTheCreatedUser_17(); + break; + case 18: + ChipLogProgress(chipTool, " ***** Test Step 18 : Clean the created credential\n"); if (ShouldSkip("DRLK.S.C26.Rsp")) { NextTest(); return; } - err = TestCleanTheCreatedCredential_11(); + err = TestCleanTheCreatedCredential_18(); break; } @@ -119645,10 +121071,10 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; case 8: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 9: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); break; case 10: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); @@ -119656,20 +121082,38 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { case 11: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; + case 12: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 13: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 14: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 15: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 16: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 17: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; + case 18: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + break; } // Go on to the next test. ContinueOnChipMainThread(CHIP_NO_ERROR); } - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(200)); } private: std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 12; + const uint16_t mTestCount = 19; chip::Optional mNodeId; chip::Optional mCluster; @@ -119910,7 +121354,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); id autoRelockTimeArgument; - autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:60UL]; + autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:10UL]; [cluster writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument completionHandler:^(NSError * _Nullable err) { NSLog(@"TH writes AutoRelockTime attribute value as 10 seconds on the DUT Error: %@", err); @@ -119923,34 +121367,175 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestThSendsTheUnlockDoorCommandToTheDutWithValidPINCode_7() + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_7() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - __auto_type * params = [[MTRDoorLockClusterUnlockDoorParams alloc] init]; + id autoRelockTimeArgument; + autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:60UL]; + [cluster writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes AutoRelockTime attribute value as 60 seconds on the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_8() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id autoRelockTimeArgument; + autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:10UL]; + [cluster + writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes AutoRelockTime attribute value as 10 seconds on the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code + : EMBER_ZCL_STATUS_FAILURE) + : 0, + EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs60SecondsOnTheDut_9() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + id autoRelockTimeArgument; + autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:60UL]; + [cluster + writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH writes AutoRelockTime attribute value as 60 seconds on the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", + err ? ([err.domain isEqualToString:MTRInteractionErrorDomain] ? err.code + : EMBER_ZCL_STATUS_FAILURE) + : 0, + EMBER_ZCL_STATUS_UNSUPPORTED_WRITE)); + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThSendsTheUnlockWithTimeoutCommandToTheDut_10() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockWithTimeoutParams alloc] init]; + params.timeout = [NSNumber numberWithUnsignedShort:10U]; params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; - [cluster unlockDoorWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"TH sends the unlock Door command to the DUT with valid PINCode Error: %@", err); + [cluster unlockWithTimeoutWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock with Timeout command to the 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 TestThSendsTheUnlockWithTimeoutCommandToTheDut_11() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + __auto_type * params = [[MTRDoorLockClusterUnlockWithTimeoutParams alloc] init]; + params.timeout = [NSNumber numberWithUnsignedShort:60U]; + params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; + [cluster unlockWithTimeoutWithParams:params + completionHandler:^(NSError * _Nullable err) { + NSLog(@"TH sends the unlock with Timeout command to the DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsAutoRelockTimeAttributeFromDut_12() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAutoRelockTimeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads AutoRelockTime attribute from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("AutoRelockTime", actualValue, 10UL)); + } + + NextTest(); + }]; + + return CHIP_NO_ERROR; + } + + CHIP_ERROR TestThReadsAutoRelockTimeAttributeFromDut_13() + { + MTRBaseDevice * device = GetDevice("alpha"); + MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; + VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); + + [cluster readAttributeAutoRelockTimeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { + NSLog(@"TH reads AutoRelockTime attribute from DUT Error: %@", err); + + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + + { + id actualValue = value; + VerifyOrReturn(CheckValue("AutoRelockTime", actualValue, 60UL)); + } + + NextTest(); + }]; return CHIP_NO_ERROR; } - CHIP_ERROR TestWait10000ms_8() + CHIP_ERROR TestWait10000ms_14() { chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 10000UL; return WaitForMs("alpha", value); } - CHIP_ERROR TestThReadsLockStateAttribute_9() + CHIP_ERROR TestWait70000ms_15() + { + chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; + value.ms = 70000UL; + return WaitForMs("alpha", value); + } + + CHIP_ERROR TestThReadsLockStateAttribute_16() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119964,7 +121549,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { { id actualValue = value; VerifyOrReturn(CheckValueNonNull("LockState", actualValue)); - VerifyOrReturn(CheckValue("LockState", actualValue, 2U)); + VerifyOrReturn(CheckValue("LockState", actualValue, 1U)); } NextTest(); @@ -119973,7 +121558,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCleanupTheCreatedUser_10() + CHIP_ERROR TestCleanupTheCreatedUser_17() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -119993,7 +121578,7 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { return CHIP_NO_ERROR; } - CHIP_ERROR TestCleanTheCreatedCredential_11() + CHIP_ERROR TestCleanTheCreatedCredential_18() { MTRBaseDevice * device = GetDevice("alpha"); MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; @@ -120017,322 +121602,6 @@ class Test_TC_DRLK_2_3 : public TestCommandBridge { } }; -class Test_TC_DRLK_2_4 : public TestCommandBridge { -public: - // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced - Test_TC_DRLK_2_4() - : TestCommandBridge("Test_TC_DRLK_2_4") - , mTestIndex(0) - { - AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); - AddArgument("cluster", &mCluster); - AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); - AddArgument("timeout", 0, UINT16_MAX, &mTimeout); - } - // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull) - - ~Test_TC_DRLK_2_4() {} - - /////////// TestCommand Interface ///////// - void NextTest() override - { - CHIP_ERROR err = CHIP_NO_ERROR; - - if (0 == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Start: Test_TC_DRLK_2_4\n"); - } - - if (mTestCount == mTestIndex) { - ChipLogProgress(chipTool, " **** Test Complete: Test_TC_DRLK_2_4\n"); - SetCommandExitStatus(CHIP_NO_ERROR); - return; - } - - Wait(); - - // Ensure we increment mTestIndex before we start running the relevant - // command. That way if we lose the timeslice after we send the message - // but before our function call returns, we won't end up with an - // incorrect mTestIndex value observed when we get the response. - switch (mTestIndex++) { - case 0: - ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n"); - err = TestWaitForTheCommissionedDeviceToBeRetrieved_0(); - break; - case 1: - ChipLogProgress(chipTool, " ***** Test Step 1 : Create new PIN credential and lock/unlock user\n"); - if (ShouldSkip("DRLK.S.C22.Rsp")) { - NextTest(); - return; - } - err = TestCreateNewPinCredentialAndLockUnlockUser_1(); - break; - case 2: - ChipLogProgress(chipTool, " ***** Test Step 2 : Precondition: Door is in locked state\n"); - if (ShouldSkip("DRLK.S.C00.Rsp")) { - NextTest(); - return; - } - err = TestPreconditionDoorIsInLockedState_2(); - break; - case 3: - ChipLogProgress(chipTool, " ***** Test Step 3 : TH writes AutoRelockTime attribute value as 10 seconds on the DUT\n"); - if (ShouldSkip("DRLK.S.A0023")) { - NextTest(); - return; - } - err = TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_3(); - break; - case 4: - ChipLogProgress(chipTool, " ***** Test Step 4 : TH sends the unlock with Timeout command to the DUT \n"); - if (ShouldSkip("DRLK.S.C03.Rsp")) { - NextTest(); - return; - } - err = TestThSendsTheUnlockWithTimeoutCommandToTheDut_4(); - break; - case 5: - ChipLogProgress(chipTool, " ***** Test Step 5 : TH reads AutoRelockTime attribute from DUT\n"); - if (ShouldSkip("DRLK.S.A0023")) { - NextTest(); - return; - } - err = TestThReadsAutoRelockTimeAttributeFromDut_5(); - break; - case 6: - ChipLogProgress(chipTool, " ***** Test Step 6 : Wait 5000ms\n"); - err = TestWait5000ms_6(); - break; - case 7: - ChipLogProgress(chipTool, " ***** Test Step 7 : TH reads LockState attribute\n"); - if (ShouldSkip("DRLK.S.A0000")) { - NextTest(); - return; - } - err = TestThReadsLockStateAttribute_7(); - break; - } - - if (CHIP_NO_ERROR != err) { - ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err)); - SetCommandExitStatus(err); - } - } - - void OnStatusUpdate(const chip::app::StatusIB & status) override - { - switch (mTestIndex - 1) { - case 0: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 1: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 2: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 3: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 4: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 5: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 6: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - case 7: - VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - break; - } - - // Go on to the next test. - ContinueOnChipMainThread(CHIP_NO_ERROR); - } - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds)); - } - -private: - std::atomic_uint16_t mTestIndex; - const uint16_t mTestCount = 8; - - chip::Optional mNodeId; - chip::Optional mCluster; - chip::Optional mEndpoint; - chip::Optional mTimeout; - - CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0() - { - chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; - value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; - return WaitForCommissionee("alpha", value); - } - - CHIP_ERROR TestCreateNewPinCredentialAndLockUnlockUser_1() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRDoorLockClusterSetCredentialParams alloc] init]; - params.operationType = [NSNumber numberWithUnsignedChar:0U]; - params.credential = [[MTRDoorLockClusterDlCredential alloc] init]; - ((MTRDoorLockClusterDlCredential *) params.credential).credentialType = [NSNumber numberWithUnsignedChar:1U]; - ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:1U]; - - params.credentialData = [[NSData alloc] initWithBytes:"123456" length:6]; - params.userIndex = nil; - params.userStatus = nil; - params.userType = nil; - [cluster - setCredentialWithParams:params - completionHandler:^(MTRDoorLockClusterSetCredentialResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"Create new PIN credential and lock/unlock user Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("status", actualValue, 0U)); - } - - { - id actualValue = values.userIndex; - VerifyOrReturn(CheckValueNonNull("userIndex", actualValue)); - VerifyOrReturn(CheckValue("userIndex", actualValue, 1U)); - } - - { - id actualValue = values.nextCredentialIndex; - VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", actualValue)); - VerifyOrReturn(CheckValue("nextCredentialIndex", actualValue, 2U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestPreconditionDoorIsInLockedState_2() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRDoorLockClusterLockDoorParams alloc] init]; - params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; - [cluster lockDoorWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"Precondition: Door is in locked state Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThWritesAutoRelockTimeAttributeValueAs10SecondsOnTheDut_3() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - id autoRelockTimeArgument; - autoRelockTimeArgument = [NSNumber numberWithUnsignedInt:10UL]; - [cluster writeAttributeAutoRelockTimeWithValue:autoRelockTimeArgument - completionHandler:^(NSError * _Nullable err) { - NSLog(@"TH writes AutoRelockTime attribute value as 10 seconds on the DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThSendsTheUnlockWithTimeoutCommandToTheDut_4() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - __auto_type * params = [[MTRDoorLockClusterUnlockWithTimeoutParams alloc] init]; - params.timeout = [NSNumber numberWithUnsignedShort:5U]; - params.pinCode = [[NSData alloc] initWithBytes:"123456" length:6]; - [cluster unlockWithTimeoutWithParams:params - completionHandler:^(NSError * _Nullable err) { - NSLog(@"TH sends the unlock with Timeout command to the DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestThReadsAutoRelockTimeAttributeFromDut_5() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeAutoRelockTimeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads AutoRelockTime attribute from DUT Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValue("AutoRelockTime", actualValue, 10UL)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } - - CHIP_ERROR TestWait5000ms_6() - { - chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; - value.ms = 5000UL; - return WaitForMs("alpha", value); - } - - CHIP_ERROR TestThReadsLockStateAttribute_7() - { - MTRBaseDevice * device = GetDevice("alpha"); - MTRBaseClusterDoorLock * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:1 queue:mCallbackQueue]; - VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); - - [cluster readAttributeLockStateWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) { - NSLog(@"TH reads LockState attribute Error: %@", err); - - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - - { - id actualValue = value; - VerifyOrReturn(CheckValueNonNull("LockState", actualValue)); - VerifyOrReturn(CheckValue("LockState", actualValue, 1U)); - } - - NextTest(); - }]; - - return CHIP_NO_ERROR; - } -}; - class Test_TC_DRLK_2_5 : public TestCommandBridge { public: // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced @@ -121009,7 +122278,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 3: ChipLogProgress(chipTool, " ***** Test Step 3 : TH reads NumberOfYearDay SchedulesSupportedPerUser attribute\n"); - if (ShouldSkip("DRLK.S.F04 && DRLK.S.A0015")) { + if (ShouldSkip("DRLK.S.F10 && DRLK.S.A0015")) { NextTest(); return; } @@ -121017,7 +122286,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 4: ChipLogProgress(chipTool, " ***** Test Step 4 : TH reads NumberOfTotalUsers Supported attribute\n"); - if (ShouldSkip("DRLK.C.F08 && DRLK.S.A0011")) { + if (ShouldSkip("DRLK.S.F08 && DRLK.S.A0011")) { NextTest(); return; } @@ -121025,7 +122294,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 5: ChipLogProgress(chipTool, " ***** Test Step 5 : TH sends Set Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F04 && DRLK.S.C0e.Rsp")) { + if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0e.Rsp")) { NextTest(); return; } @@ -121033,7 +122302,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 6: ChipLogProgress(chipTool, " ***** Test Step 6 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { + if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { NextTest(); return; } @@ -121049,7 +122318,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 8: ChipLogProgress(chipTool, " ***** Test Step 8 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { + if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { NextTest(); return; } @@ -121061,7 +122330,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 10: ChipLogProgress(chipTool, " ***** Test Step 10 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { + if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { NextTest(); return; } @@ -121077,7 +122346,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 12: ChipLogProgress(chipTool, " ***** Test Step 12 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp")) { + if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx && DRLK.S.C10.Rsp")) { NextTest(); return; } @@ -121093,7 +122362,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 14: ChipLogProgress(chipTool, " ***** Test Step 14 : TH sends Get Year Day Schedule Command to DUT\n"); - if (ShouldSkip("DRLK.S.F04 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { + if (ShouldSkip("DRLK.S.F10 && DRLK.S.C0f.Rsp && DRLK.S.C0f.Tx")) { NextTest(); return; } @@ -121101,7 +122370,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 15: ChipLogProgress(chipTool, " ***** Test Step 15 : TH sends Clear Year Day Schedule to DUT\n"); - if (ShouldSkip("DRLK.S.F04 && DRLK.S.C10.Rsp")) { + if (ShouldSkip("DRLK.S.F10 && DRLK.S.C10.Rsp")) { NextTest(); return; } @@ -121109,7 +122378,7 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { break; case 16: ChipLogProgress(chipTool, " ***** Test Step 16 : Clear a year day schedule for the first user\n"); - if (ShouldSkip("DRLK.S.F04 && DRLK.S.C10.Rsp")) { + if (ShouldSkip("DRLK.S.F10 && DRLK.S.C10.Rsp")) { NextTest(); return; } @@ -121546,40 +122815,41 @@ class Test_TC_DRLK_2_7 : public TestCommandBridge { VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE); __auto_type * params = [[MTRDoorLockClusterGetYearDayScheduleParams alloc] init]; - params.yearDayIndex = [NSNumber numberWithUnsignedChar:10U]; + params.yearDayIndex = [NumberOfYearDaySchedulesSupportedPerUser copy]; params.userIndex = [NSNumber numberWithUnsignedShort:5U]; - [cluster getYearDayScheduleWithParams:params - completionHandler:^( - MTRDoorLockClusterGetYearDayScheduleResponseParams * _Nullable values, NSError * _Nullable err) { - NSLog(@"TH sends Get Year Day Schedule Command to DUT Error: %@", err); + [cluster + getYearDayScheduleWithParams:params + completionHandler:^( + MTRDoorLockClusterGetYearDayScheduleResponseParams * _Nullable values, NSError * _Nullable err) { + NSLog(@"TH sends Get Year Day Schedule Command to DUT Error: %@", err); - VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); + VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0)); - { - id actualValue = values.yearDayIndex; - VerifyOrReturn(CheckValue("yearDayIndex", actualValue, 10U)); - } + { + id actualValue = values.yearDayIndex; + VerifyOrReturn(CheckValue("yearDayIndex", actualValue, NumberOfYearDaySchedulesSupportedPerUser)); + } - { - id actualValue = values.userIndex; - VerifyOrReturn(CheckValue("userIndex", actualValue, 5U)); - } + { + id actualValue = values.userIndex; + VerifyOrReturn(CheckValue("userIndex", actualValue, 5U)); + } - { - id actualValue = values.status; - VerifyOrReturn(CheckValue("status", actualValue, 139U)); - } + { + id actualValue = values.status; + VerifyOrReturn(CheckValue("status", actualValue, 139U)); + } - VerifyOrReturn(CheckConstraintHasValue("localStartTime", values.localStartTime, false)); - if (values.localStartTime != nil) { - } + VerifyOrReturn(CheckConstraintHasValue("localStartTime", values.localStartTime, false)); + if (values.localStartTime != nil) { + } - VerifyOrReturn(CheckConstraintHasValue("localEndTime", values.localEndTime, false)); - if (values.localEndTime != nil) { - } + VerifyOrReturn(CheckConstraintHasValue("localEndTime", values.localEndTime, false)); + if (values.localEndTime != nil) { + } - NextTest(); - }]; + NextTest(); + }]; return CHIP_NO_ERROR; }