From 8dd9bda9793afac89c6b661a77abfa37b6070e71 Mon Sep 17 00:00:00 2001 From: Mathieu Kardous Date: Fri, 21 Jul 2023 14:32:19 -0400 Subject: [PATCH 1/3] Update YAML tests to match specification and test plan --- .../suites/certification/Test_TC_IDM_4_2.yaml | 34 ++-- .../suites/certification/Test_TC_SC_2_1.yaml | 10 +- .../suites/certification/Test_TC_SC_3_2.yaml | 11 +- .../suites/certification/Test_TC_SC_3_3.yaml | 17 +- .../suites/certification/Test_TC_SC_4_1.yaml | 168 ++++++++++-------- .../suites/certification/Test_TC_SC_4_10.yaml | 10 +- 6 files changed, 139 insertions(+), 111 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml index c5737a5fb6c3b7..8e1f756beafabc 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml @@ -13,8 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: - 3.4.2. [TC-IDM-4.2] Subscription Response Messages from DUT Test Cases. +name: 3.4.2. [TC-IDM-4.2] Subscription Response Messages from DUT Test Cases. [{DUT_Server}] PICS: @@ -33,10 +32,19 @@ tests: disabled: true - label: - "Step 1: TH sends a subscription message to the DUT with - MaxIntervalCeiling set to a value greater than 60 mins. DUT sends a - report data action to the TH. TH sends a success status response to - the DUT. DUT sends a Subscribe Response Message to the TH to activate + If the device is has the ICD Management cluster, TH reads from the DUT the IdleModeInterval attribute + and sets the SubscriptionMaxIntervalPublisherLimit to the value read. + If the device does not have the ICD Management cluster, set the SubscriptionMaxIntervalPublisherLimit + to 60 minutes. + verification: | + The cluster used in the below command is an example, + icdmanagement read idle-mode-interval 12344321 0 + disabled: true + + - label: "Step 1: TH sends a subscription message to the DUT with + MaxIntervalCeiling set to a value greater than the SubscriptionMaxIntervalPublisherLimit. + DUT sends a report data action to the TH. TH sends a success status response to the DUT. + DUT sends a Subscribe Response Message to the TH to activate the subscription." verification: | onoff subscribe on-off 100 3900 1 1 --keepSubscriptions true @@ -71,10 +79,9 @@ tests: [1686294743.441504][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec011c50]: Moving to [Subscripti] disabled: true - - label: - "Step 2: TH sends a subscription message to the DUT with - MaxIntervalCeiling set to a value less than 60 mins. DUT sends a - report data action to the TH. TH sends a success status response to + - label: "Step 2: TH sends a subscription message to the DUT with + MaxIntervalCeiling set to a value less than han the SubscriptionMaxIntervalPublisherLimit. + DUT sends a report data action to the TH. TH sends a success status response to the DUT. DUT sends a Subscribe Response Message to the TH to activate the subscription." verification: | @@ -84,7 +91,7 @@ tests: Verify on the TH the Subscribe Response has the following fields, SubscriptionId - Verify it is of type uint32. MaxInterval - Verify it is of type uint32. - Verify that the MaxInterval is less than or equal to 60 mins. + Verify that the MaxInterval is less than or equal to the MaxIntervalCeiling. [1686294932.404445][101362:101364] CHIP:DMG: InteractionModelRevision = 1 [1686294932.404449][101362:101364] CHIP:DMG: } @@ -107,7 +114,7 @@ tests: [1686294932.420847][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec00e400]: Moving to [Subscripti] - MaxInterval and MaxIntervalCeiling are different parameters. One is sent from the TH the other from DUT, verify MaxInterval >= MaxIntervalCeiling + MaxInterval and MaxIntervalCeiling are different parameters. One is sent from the TH the other from DUT, verify MaxInterval <= MaxIntervalCeiling disabled: true - label: @@ -455,8 +462,7 @@ tests: On TH(chip-tool) Verify that the Subscription succeeds and the DUT sends back the attribute values for the global attribute disabled: true - - label: - "Step 11: TH sends a subscription request to subscribe to a global + - label: "Step 11: TH sends a subscription request to subscribe to a global attribute on an endpoint on all clusters. AttributePath = [[Attribute = Global Attribute, Endpoint = EndpointID ]]. +" verification: | diff --git a/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml index f29673a2fb2930..16bdb5abc38839 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml @@ -13,8 +13,7 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: - 14.2.1. [TC-SC-2.1] Session Establishment - Passcode Authenticated Session +name: 14.2.1. [TC-SC-2.1] Session Establishment - Passcode Authenticated Session Establishment (PASE) PICS: @@ -26,18 +25,17 @@ config: endpoint: 0 tests: - - label: - "Initiator constructs and sends a TLV-encoded PBKDFParamRequest + - label: "Initiator constructs and sends a TLV-encoded PBKDFParamRequest message" verification: | - Verify that the responder receives the PBKDFParamRequest message. Verify that the protocol header is properly constructed: Message Flags: S Flag is set to 0, and DSIZ field is set to 0 Session ID is set to 0 Security Flags: Session Type bits are set to 0 Exchange Flags: I Flag is set to 1 Protocol Opcode is set to 32 (0x20) Protocol ID is set to 0 Verify, if possible in a debug mode, that the PBKDFParamRequest message contains: initiatorRandom - randomly generated 32-bit octet string initiatorSessionId - max size 16-bits unsigned integer that does not overlap with existing initiator session identifiers passcodeId - max size 16-bits unsigned integer hasPBKDFParameters - boolean If hasPBKDFParameters is set to true then PBKDF parameters are not known for the given passcodeId If hasPBKDFParameters is set to false then PBKDF parameters are known for the given passcodeId initiatorSEDParams - optional sed-parameter-struct which contains SLEEPY_IDLE_INTERVAL - max size 16-bits unsigned integer SLEEPY_ACTIVE_INTERVAL - max size 16-bits unsigned integer + Verify that the responder receives the PBKDFParamRequest message. Verify that the protocol header is properly constructed: Message Flags: S Flag is set to 0, and DSIZ field is set to 0 Session ID is set to 0 Security Flags: Session Type bits are set to 0 Exchange Flags: I Flag is set to 1 Protocol Opcode is set to 32 (0x20) Protocol ID is set to 0 Verify, if possible in a debug mode, that the PBKDFParamRequest message contains: initiatorRandom - randomly generated 32-bit octet string initiatorSessionId - max size 16-bits unsigned integer that does not overlap with existing initiator session identifiers passcodeId - max size 16-bits unsigned integer hasPBKDFParameters - boolean If hasPBKDFParameters is set to true then PBKDF parameters are not known for the given passcodeId If hasPBKDFParameters is set to false then PBKDF parameters are known for the given passcodeId initiatorSessionParams - optional session-parameter-struct which contains SESSION_IDLE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_THRESHOLD - max size 16-bits unsigned integer disabled: true - label: "Responder verifies the passcodeID, constructs and sends a TLV-encoded PBKDFParamResponse message" verification: | - Verify that the Initiator receives the PBKDFParamResponse message. Verify that the protocol header is properly constructed: Message Flags: S Flag is set to 0, and DSIZ field is set to 0 Session ID is set to 0 Security Flags: Session Type bits are set to 0 Exchange Flags: I Flag is set to 0 Protocol Opcode is set to 33 (0x21) Protocol ID is set to 0 Verify, if possible in a debug mode, that the PBKDFParamResponse message contains: initiatorRandom - value from the PBKDFParamRequest message responderRandom - randomly generated 32-bit octet string responderSessionId - max size 16-bits unsigned integer that does not overlap with existing that does not overlap with existing responder session identifiers pbkdf_parameters If hasPBKDFParameters from the PBKDFParamRequest message is true, then pbkdf_parameters should not be included. If hasPBKDFParameters from the PBKDFParamRequest message is false, then PBKDFParameters should contain a + Crypto_PBKDFParameterSet struct with values for iterations (max size 32 bit unsigned integer) and salt (octet string with a minimum of 16 bits and maximum of 32 bits) responderSEDParams - optional sed-parameter-struct SLEEPY_IDLE_INTERVAL - max size 16-bits unsigned integer SLEEPY_ACTIVE_INTERVAL - max size 16-bits unsigned integer + Verify that the Initiator receives the PBKDFParamResponse message. Verify that the protocol header is properly constructed: Message Flags: S Flag is set to 0, and DSIZ field is set to 0 Session ID is set to 0 Security Flags: Session Type bits are set to 0 Exchange Flags: I Flag is set to 0 Protocol Opcode is set to 33 (0x21) Protocol ID is set to 0 Verify, if possible in a debug mode, that the PBKDFParamResponse message contains: initiatorRandom - value from the PBKDFParamRequest message responderRandom - randomly generated 32-bit octet string responderSessionId - max size 16-bits unsigned integer that does not overlap with existing that does not overlap with existing responder session identifiers pbkdf_parameters If hasPBKDFParameters from the PBKDFParamRequest message is true, then pbkdf_parameters should not be included. If hasPBKDFParameters from the PBKDFParamRequest message is false, then PBKDFParameters should contain a + Crypto_PBKDFParameterSet struct with values for iterations (max size 32 bit unsigned integer) and salt (octet string with a minimum of 16 bits and maximum of 32 bits) responderSessionParams - optional session-parameter-struct SESSION_IDLE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_THRESHOLD - max size 16-bits unsigned integer disabled: true - label: "Initiator constructs and sends a TLV-encoded Pake1 message" diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml index a94810b980458b..92f9d547f20280 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_2.yaml @@ -28,7 +28,7 @@ tests: "Step 1: Initiator constructs and sends a TLV-encoded Sigma1 message to Responder with resumption containing initiatorRandom initiatorSessionId destinationId resumptionID initiatorResumeMIC - initiatorEphPubKey initiatorSEDParams" + initiatorEphPubKey initiatorSessionParams" verification: | On Initiator(chip-tool) verify that, Initiator(chip-tool) constructs and sends a TLV-encoded Sigma1 message to Responder with resumption containing initiatorRandom @@ -37,7 +37,7 @@ tests: resumptionID initiatorResumeMIC initiatorEphPubKey - initiatorSEDParams + initiatorSessionParams here is the log to verify on chip-tool 1683884120.041635][5134:5136] CHIP:DMG: Decrypted Payload (182 bytes) = @@ -88,9 +88,10 @@ tests: resumptionID is of Octet String maximum of length 16 bytes responderSessionID is of uint16 sigma2ResumeMIC is of Octet String maximum of length 16 bytes - responderSEDParams is from any one of the following: - SLEEPY_IDLE_INTERVAL - Verify that it is of uint32 - SLEEPY_ACTIVE_INTERVAL - Verify that it is of uint32 + responderSessionParams is from any one of the following: + SESSION_IDLE_INTERVAL - Verify that it is of uint32 + SESSION_ACTIVE_INTERVAL - Verify that it is of uint32 + SESSION_ACTIVE_THRESHOLD - Verify that it is of uint16 here is the log to verify on chip-tool diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml index a47809f76897d9..be00820c21a8c5 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml @@ -47,8 +47,7 @@ tests: In the response of above read request command, please verify the below test steps disabled: true - - label: - "Step 2b: Responder receives the Sigma1 message and extracts the + - label: "Step 2b: Responder receives the Sigma1 message and extracts the following initiatorRandom initiatorSessionId destinationId resumptionID initiatorResumeMIC initiatorEphPubKey initiatorSEDParams" verification: | @@ -73,10 +72,10 @@ tests: resumptionID is of Octet String maximum of length 16 bytes responderSessionID is of uint16 sigma2ResumeMIC is of Octet String maximum of length 16 bytes - responderSEDParams is from any one of the following: - SLEEPY_IDLE_INTERVAL - Verify that it is of uint32 - SLEEPY_ACTIVE_INTERVAL - Verify that it is of uint32 - + responderSessionParams is from any one of the following: + SESSION_IDLE_INTERVAL - Verify that it is of uint32 + SESSION_ACTIVE_INTERVAL - Verify that it is of uint32 + SESSION_ACTIVE_THRESHOLD - Verify that it is of uint16 [1683973658.044236][21637:21637] CHIP:EM: Rxd Ack; Removing MessageCounter:113416101 from Retrans Table on exchange 32995r [1683973662.299442][21637:21637] CHIP:DMG: << from UDP:[fe80::e9f6:2c08:2794:357d%wlp0s20f3]:41363 | 167307433 | [Secure Channel (0) / Certificate Authenticated Session Establishment Sigma '1' (0x30) / Session = 0 / Exchange = 32997] @@ -123,8 +122,7 @@ tests: [1683973662.299943][21637:21637] CHIP:EM: >>> [E:32997r S:0 M:167307433] (U) Msg RX from 0:D379FA4FB43AD140 [0000] --- Type 0000:30 (SecureChannel:CASE_Sigma1) disabled: true - - label: - "Step 2c: Responder sends a TLV-encoded Sigma2_Resume message to + - label: "Step 2c: Responder sends a TLV-encoded Sigma2_Resume message to Initiator containing resumptionID responderSessionID sigma2ResumeMIC responderMRPParams" verification: | @@ -181,8 +179,7 @@ tests: [1683973662.301880][21648:21650] CHIP:SC: Peer assigned session session ID 688 disabled: true - - label: - "Step 3a: Responder receives the SigmaFinished message and extracts + - label: "Step 3a: Responder receives the SigmaFinished message and extracts the following 1.ProtocolId 2.ProtocolCode" verification: | On Responder(chip-tool), verify that responder(chip-tool) received the SigmaFinished(The status report should be GeneralCode:SUCCESS, diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml index 4254344a0d17c6..5a8c5ce891d5ae 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml @@ -53,8 +53,7 @@ tests: - name: "nodeId" value: nodeId - - label: - "Step 1a: DUT is put in Commissioning Mode using Open Basic + - label: "Step 1a: DUT is put in Commissioning Mode using Open Basic Commissioning Window command " cluster: "Administrator Commissioning" command: "OpenBasicCommissioningWindow" @@ -195,8 +194,7 @@ tests: - name: "value" value: vendorId - - label: - "Step 2f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is + - label: "Step 2f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from Data Model and must be represented as a variable length decimal number in ASCII without leading zeros" @@ -208,8 +206,7 @@ tests: - name: "value" value: deviceType - - label: - "Step 2g: Check Commissioning Mode (_CM) subtype _CM must be present" + - label: "Step 2g: Check Commissioning Mode (_CM) subtype _CM must be present" cluster: "DiscoveryCommands" command: "FindCommissionableByCommissioningMode" @@ -277,7 +274,21 @@ tests: constraints: maxValue: 3600000 - - label: "Step 2m: TXT key for commissioning mode (CM) CM=1 must be present" + - label: + "Step 2m: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be + an unsigned integer with units of milliseconds and shall be encoded as + a variable length decimal number in ASCII, omitting leading zeros. + Shall not exceed 65535." + PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY + cluster: "DiscoveryCommands" + command: "FindCommissionable" + response: + values: + - name: "mrpRetryActiveThreshold" + constraints: + maxValue: 65535 + + - label: "Step 2n: TXT key for commissioning mode (CM) CM=1 must be present" cluster: "DiscoveryCommands" command: "FindCommissionable" response: @@ -286,7 +297,7 @@ tests: value: 1 - label: - "Step 2n: If (MCORE.SC.DT_KEY) present, DT key must contain the device + "Step 2o: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device Types and must be encoded as a variable length decimal ASCII number without leading zeros" PICS: MCORE.SC.DT_KEY @@ -298,7 +309,7 @@ tests: value: deviceType - label: - "Step 2o: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded + "Step 2p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B" PICS: MCORE.SC.DN_KEY cluster: "DiscoveryCommands" @@ -309,8 +320,7 @@ tests: constraints: maxLength: 32 - - label: - "Step 2p: If (MCORE.SC.RI_KEY ) present, key RI must include the + - label: "Step 2q: If (MCORE.SC.RI_KEY ) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY @@ -322,8 +332,7 @@ tests: constraints: maxValue: 100 - - label: - "Step 2q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + - label: "Step 2r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY @@ -335,8 +344,7 @@ tests: constraints: notValue: 0 - - label: - "Step 2r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + - label: "Step 2s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY cluster: "DiscoveryCommands" @@ -347,8 +355,7 @@ tests: constraints: maxLength: 128 - - label: - "Step 2s: DUT must publish AAAA records for each IPv6 address upon + - label: "Step 2t: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter messages." cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -466,8 +473,7 @@ tests: value: "y" #validate the service type and the service domain not implemented in CI - - label: - "Step 4c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) + - label: "Step 4c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or 64bit MAC address expressed as a twelve or sixteen capital letter hex string" PICS: "(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR" @@ -482,8 +488,7 @@ tests: isUpperCase: true isHexString: true - - label: - "Step 4c: Check Hostname. If (MCORE.COM.THR) target hostname is + - label: "Step 4c: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC address expressed as a twelve or sixteen capital letter hex string" PICS: "(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR" @@ -526,8 +531,7 @@ tests: - name: "value" value: vendorId - - label: - "Step 4g: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is + - label: "Step 4g: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from Data Model and must be represented as a variable length decimal number in ASCII without leading zeros" @@ -609,7 +613,20 @@ tests: maxValue: 3600000 - label: - "Step 4n: TXT key for commissioning mode (CM) key CM=1 must be present" + "Step 4n: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be + an unsigned integer with units of milliseconds and shall be encoded as + a variable length decimal number in ASCII, omitting leading zeros. + Shall not exceed 65535." + PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY + cluster: "DiscoveryCommands" + command: "FindCommissionable" + response: + values: + - name: "mrpRetryActiveThreshold" + constraints: + maxValue: 65535 + + - label: "Step 4o: TXT key for commissioning mode (CM) key CM=1 must be present" cluster: "DiscoveryCommands" command: "FindCommissionable" response: @@ -618,7 +635,7 @@ tests: value: 1 - label: - "Step 4o: If (MCORE.SC.DT_KEY) present, DT key must contain the device + "Step 4p: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device Types and must be encoded as a variable length decimal ASCII number without leading zeros" PICS: MCORE.SC.DT_KEY @@ -630,7 +647,7 @@ tests: value: deviceType - label: - "Step 4p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded + "Step 4q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B" PICS: MCORE.SC.DN_KEY cluster: "DiscoveryCommands" @@ -641,8 +658,7 @@ tests: constraints: maxLength: 32 - - label: - "Step 4q: If (MCORE.SC.RI_KEY) present, key RI must include the + - label: "Step 4r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY @@ -654,8 +670,7 @@ tests: constraints: maxValue: 100 - - label: - "Step 4r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + - label: "Step 4s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY @@ -667,8 +682,7 @@ tests: constraints: notValue: 0 - - label: - "Step 4s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + - label: "Step 4t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY cluster: "DiscoveryCommands" @@ -679,8 +693,7 @@ tests: constraints: maxLength: 128 - - label: - "Step 4t: DUT must publish AAAA records for each IPv6 address upon + - label: "Step 4u: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter messages." cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -778,8 +791,7 @@ tests: - name: "ms" value: waitAfterCommissioning - - label: - "Step 7a: DNS-SD instance name must be 64-bit randomly selected ID + - label: "Step 7a: DNS-SD instance name must be 64-bit randomly selected ID expressed as a sixteen-char hex string with capital letters" cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -811,8 +823,7 @@ tests: isUpperCase: true isHexString: true - - label: - "Step 7b: Check Hostname. If (MCORE.COM.THR) target hostname is + - label: "Step 7b: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC extended address expressed as a twelve or sixteen capital letter hex string." # On macOS the hostname is the device name and because of it this test is disabled for now. @@ -856,8 +867,7 @@ tests: - name: "value" value: vendorId - - label: - "Step 7f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is + - label: "Step 7f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from Data Model and must be represented as a variable length decimal number in ASCII without leading zeros" @@ -896,8 +906,7 @@ tests: - name: "productId" value: productId - - label: - "Step 7j: Optional TXT key for MRP Retry Interval Idle. if + - label: "Step 7j: Optional TXT key for MRP Retry Interval Idle. if (MCORE.SC.SII_OP_DISCOVERY_KEY) present, SII key must be an unsigned integer with units of milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall not @@ -911,8 +920,7 @@ tests: constraints: maxValue: 3600000 - - label: - "Step 7k: Optional TXT key for MRP Retry Interval Active. if + - label: "Step 7k: Optional TXT key for MRP Retry Interval Active. if (MCORE.SC.SAI_OP_DISCOVERY_KEY) present, SAI key must be an unsigned integer with units of milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall not @@ -926,7 +934,21 @@ tests: constraints: maxValue: 3600000 - - label: "Step 7l: TXT key for commissioning mode. CM=2 must be present" + - label: "Step 7l: Optional TXT key for MRP Retry Active Mode Threshold. + If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be + an unsigned integer with units of milliseconds and shall be encoded as + a variable length decimal number in ASCII, omitting leading zeros. + Shall not exceed 65535." + PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY + cluster: "DiscoveryCommands" + command: "FindCommissionable" + response: + values: + - name: "mrpRetryActiveThreshold" + constraints: + maxValue: 65535 + + - label: "Step 7m: TXT key for commissioning mode. CM=2 must be present" cluster: "DiscoveryCommands" command: "FindCommissionable" response: @@ -935,7 +957,7 @@ tests: value: 2 - label: - "Step 7m: If (MCORE.SC.DT_KEY) present, DT key must contain the device + "Step 7n: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device Types and must be encoded as a variable length decimal ASCII number without leading zeros" PICS: MCORE.SC.DT_KEY @@ -947,7 +969,7 @@ tests: value: deviceType - label: - "Step 7n: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded + "Step 7o: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B" PICS: MCORE.SC.DN_KEY cluster: "DiscoveryCommands" @@ -958,8 +980,7 @@ tests: constraints: maxLength: 32 - - label: - "Step 7o: If (MCORE.SC.RI_KEY) present, key RI must include the + - label: "Step 7p: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY @@ -971,8 +992,7 @@ tests: constraints: maxValue: 100 - - label: - "Step 7p: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + - label: "Step 7q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY @@ -984,8 +1004,7 @@ tests: constraints: notValue: 0 - - label: - "Step 7q: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + - label: "Step 7r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY cluster: "DiscoveryCommands" @@ -996,8 +1015,7 @@ tests: constraints: maxLength: 128 - - label: - "Step 7r: DUT must publish AAAA records for each IPv6 address upon + - label: "Step 7s: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter messages" cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1074,13 +1092,11 @@ tests: #validate the service type and the service domain - - label: - "Step 10c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) + - label: "Step 10c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or 64bit MAC address expressed as a twelve or sixteen capital letter hex string" # On macOS the hostname is the device name and because of it this test is disabled for now. - PICS: - "(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR && + PICS: "(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR && MCORE.SC.EXTENDED_DISCOVERY" cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1093,13 +1109,11 @@ tests: isUpperCase: true isHexString: true - - label: - "Step 10c: Check Hostname. If (MCORE.COM.THR) target hostname is + - label: "Step 10c: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC extended address expressed as a twelve or sixteen capital letter hex string." # On macOS the hostname is the device name and because of it this test is disabled for now. - PICS: - "(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR && + PICS: "(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR && MCORE.SC.EXTENDED_DISCOVERY" cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1228,7 +1242,20 @@ tests: maxValue: 3600000 - label: - "Step 10n: TXT key for commissioning mode (CM), CM=0 may be present" + "Step 10n: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be + an unsigned integer with units of milliseconds and shall be encoded as + a variable length decimal number in ASCII, omitting leading zeros. + Shall not exceed 65535." + PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY + cluster: "DiscoveryCommands" + command: "FindCommissionable" + response: + values: + - name: "mrpRetryActiveThreshold" + constraints: + maxValue: 65535 + + - label: "Step 10o: TXT key for commissioning mode (CM), CM=0 may be present" PICS: MCORE.SC.EXTENDED_DISCOVERY cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1237,8 +1264,7 @@ tests: - name: "commissioningMode" value: 0 - - label: - "Step 10o: If (MCORE.SC.DT_KEY) present, DT key must contain the + - label: "Step 10p: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device Types and must be encoded as a variable length decimal ASCII number without leading zeros" @@ -1250,8 +1276,7 @@ tests: - name: "deviceType" value: deviceType - - label: - "Step 10p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 + - label: "Step 10q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B" PICS: MCORE.SC.DN_KEY && MCORE.SC.EXTENDED_DISCOVERY cluster: "DiscoveryCommands" @@ -1262,8 +1287,7 @@ tests: constraints: maxLength: 32 - - label: - "Step 10q: If (MCORE.SC.RI_KEY) present, key RI must include the + - label: "Step 10r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY && MCORE.SC.EXTENDED_DISCOVERY @@ -1276,7 +1300,7 @@ tests: maxValue: 100 - label: - "Step 10r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + "Step 10s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY && MCORE.SC.EXTENDED_DISCOVERY @@ -1289,7 +1313,7 @@ tests: notValue: 0 - label: - "Step 10s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + "Step 10t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY && MCORE.SC.EXTENDED_DISCOVERY cluster: "DiscoveryCommands" diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml index 6373d60cae62d5..87746db24814cf 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml @@ -13,12 +13,11 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: - 15.4.10. [TC-SC-4.10] Operational Discovery - Sleepy Node [DUT as - Commissionee] +name: 15.4.10. [TC-SC-4.10] Operational Discovery - SIT ICD Node [{DUT_Commissionee}] PICS: - MCORE.ROLE.COMMISSIONEE + - MCORE.SC.SIT_ICD config: nodeId: 0x12344321 @@ -41,10 +40,13 @@ tests: hostname = [D21165B5F440B033.local] address = [fd11:22::4b31:9932:cffe:b41a] port = [5540] - txt = ["T=0" "SAI=300" "SII=5000"] + txt = ["T=0" "SAI=300" "SII=5000" "SAT=4000"] = eth0 IPv6 3A235FF3FA2DAC10-0000000000000055 _matter._tcp local hostname = [D21165B5F440B033.local] address = [fd11:22::4b31:9932:cffe:b41a] port = [5540] txt = ["T=0" "SAI=300" "SII=5000"] + + - SII key is higher than the SESSION_IDLE_INTERVAL default value (> 300 milliseconds) + - SII key and SAI key is less than 3600000 (1hour in milliseconds) disabled: true From ee6fac84601e97f4e0409f7fb42af5fdfe197a2b Mon Sep 17 00:00:00 2001 From: Mathieu Kardous Date: Fri, 21 Jul 2023 14:45:46 -0400 Subject: [PATCH 2/3] generated files --- .../suites/certification/Test_TC_IDM_4_2.yaml | 3 - .../chip-tool/zap-generated/test/Commands.h | 572 ++++++++++-------- 2 files changed, 322 insertions(+), 253 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml index 8e1f756beafabc..52f2d1b49bc55a 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml @@ -112,9 +112,6 @@ tests: [1686294932.420822][101362:101364] CHIP:DMG: } [1686294932.420834][101362:101364] CHIP:DMG: Subscription established with SubscriptionID = 0xcbbba269 MinInterval = 10s MaxInterval = 2400s Peer = 01:0000000000000001 [1686294932.420847][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec00e400]: Moving to [Subscripti] - - - MaxInterval and MaxIntervalCeiling are different parameters. One is sent from the TH the other from DUT, verify MaxInterval <= MaxIntervalCeiling disabled: true - label: diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index a06eeaa75b5ed5..3b29374ac4386a 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -128172,7 +128172,7 @@ class Test_TC_SC_3_4Suite : public TestCommand class Test_TC_SC_4_1Suite : public TestCommand { public: - Test_TC_SC_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_1", 95, credsIssuerConfig) + Test_TC_SC_4_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_4_1", 99, credsIssuerConfig) { AddArgument("nodeId", 0, UINT64_MAX, &mNodeId); AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint); @@ -128383,7 +128383,6 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("commissioningMode", value.commissioningMode, 1U)); } shouldContinue = true; break; @@ -128392,7 +128391,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckValue("deviceType", value.deviceType, mDeviceType.HasValue() ? mDeviceType.Value() : 65535UL)); + VerifyOrReturn(CheckValue("commissioningMode", value.commissioningMode, 1U)); } shouldContinue = true; break; @@ -128401,7 +128400,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMaxLength("value.deviceName", value.deviceName, 32)); + VerifyOrReturn(CheckValue("deviceType", value.deviceType, mDeviceType.HasValue() ? mDeviceType.Value() : 65535UL)); } shouldContinue = true; break; @@ -128410,7 +128409,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMaxValue("value.rotatingIdLen", value.rotatingIdLen, 100ULL)); + VerifyOrReturn(CheckConstraintMaxLength("value.deviceName", value.deviceName, 32)); } shouldContinue = true; break; @@ -128419,7 +128418,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintNotValue("value.pairingHint", value.pairingHint, 0U)); + VerifyOrReturn(CheckConstraintMaxValue("value.rotatingIdLen", value.rotatingIdLen, 100ULL)); } shouldContinue = true; break; @@ -128428,7 +128427,7 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMaxLength("value.pairingInstruction", value.pairingInstruction, 128)); + VerifyOrReturn(CheckConstraintNotValue("value.pairingHint", value.pairingHint, 0U)); } shouldContinue = true; break; @@ -128437,12 +128436,17 @@ class Test_TC_SC_4_1Suite : public TestCommand { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); - VerifyOrReturn(CheckConstraintMinValue("value.numIPs", value.numIPs, 1U)); + VerifyOrReturn(CheckConstraintMaxLength("value.pairingInstruction", value.pairingInstruction, 128)); } shouldContinue = true; break; case 24: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + VerifyOrReturn(CheckConstraintMinValue("value.numIPs", value.numIPs, 1U)); + } shouldContinue = true; break; case 25: @@ -128455,12 +128459,16 @@ class Test_TC_SC_4_1Suite : public TestCommand break; case 27: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; break; case 28: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); - shouldContinue = true; break; case 29: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + shouldContinue = true; + break; + case 30: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128473,11 +128481,11 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 30: + case 31: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 31: + case 32: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128489,7 +128497,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 32: + case 33: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128501,7 +128509,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 33: + case 34: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128509,7 +128517,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 34: + case 35: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128517,7 +128525,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 35: + case 36: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128525,7 +128533,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 36: + case 37: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128533,7 +128541,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 37: + case 38: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128541,7 +128549,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 38: + case 39: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128553,7 +128561,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 39: + case 40: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128562,7 +128570,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 40: + case 41: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128571,7 +128579,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 41: + case 42: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128584,7 +128592,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 42: + case 43: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128597,7 +128605,15 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 43: + case 44: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + shouldContinue = true; + break; + case 45: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128606,7 +128622,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 44: + case 46: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128615,7 +128631,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 45: + case 47: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128624,7 +128640,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 46: + case 48: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128633,7 +128649,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 47: + case 49: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128642,7 +128658,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 48: + case 50: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128651,7 +128667,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 49: + case 51: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128660,22 +128676,22 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 50: + case 52: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 51: + case 53: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); break; - case 52: + case 54: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 53: + case 55: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 54: + case 56: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128687,7 +128703,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 55: + case 57: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128699,7 +128715,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 56: + case 58: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128711,7 +128727,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 57: + case 59: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128719,7 +128735,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 58: + case 60: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128727,7 +128743,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 59: + case 61: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128735,7 +128751,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 60: + case 62: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128743,7 +128759,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 61: + case 63: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128751,7 +128767,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 62: + case 64: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128760,7 +128776,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 63: + case 65: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128769,7 +128785,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 64: + case 66: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128782,7 +128798,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 65: + case 67: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128795,7 +128811,15 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 66: + case 68: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + shouldContinue = true; + break; + case 69: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128804,7 +128828,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 67: + case 70: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128813,7 +128837,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 68: + case 71: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128822,7 +128846,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 69: + case 72: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128831,7 +128855,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 70: + case 73: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128840,7 +128864,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 71: + case 74: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128849,7 +128873,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 72: + case 75: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128858,15 +128882,15 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 73: + case 76: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 74: + case 77: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 75: + case 78: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128878,11 +128902,11 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 76: + case 79: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); shouldContinue = true; break; - case 77: + case 80: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128894,7 +128918,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 78: + case 81: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128906,7 +128930,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 79: + case 82: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128914,7 +128938,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 80: + case 83: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128922,7 +128946,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 81: + case 84: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128930,7 +128954,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 82: + case 85: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128938,7 +128962,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 83: + case 86: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128946,7 +128970,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 84: + case 87: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128958,7 +128982,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 85: + case 88: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128967,7 +128991,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 86: + case 89: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128976,7 +129000,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 87: + case 90: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -128989,7 +129013,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 88: + case 91: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129002,7 +129026,15 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 89: + case 92: + VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); + { + chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; + VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value))); + } + shouldContinue = true; + break; + case 93: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129011,7 +129043,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 90: + case 94: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129020,7 +129052,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 91: + case 95: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129029,7 +129061,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 92: + case 96: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129038,7 +129070,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 93: + case 97: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129047,7 +129079,7 @@ class Test_TC_SC_4_1Suite : public TestCommand } shouldContinue = true; break; - case 94: + case 98: VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0)); { chip::app::Clusters::DiscoveryCommands::Commands::DiscoveryCommandResponse::DecodableType value; @@ -129217,72 +129249,82 @@ class Test_TC_SC_4_1Suite : public TestCommand return FindCommissionable(kIdentityAlpha, value); } case 17: { - LogStep(17, "Step 2m: TXT key for commissioning mode (CM) CM=1 must be present"); + LogStep(17, + "Step 2m: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be an unsigned integer with units of " + "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " + "not exceed 65535."); + VerifyOrDo(!ShouldSkip("MCORE.SC.SAI_OP_DISCOVERY_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 18: { - LogStep(18, - "Step 2n: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " - "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); - VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + LogStep(18, "Step 2n: TXT key for commissioning mode (CM) CM=1 must be present"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 19: { LogStep(19, - "Step 2o: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); - VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + "Step 2o: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " + "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); + VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 20: { LogStep(20, - "Step 2p: If (MCORE.SC.RI_KEY ) present, key RI must include the Rotating Device Identifier encoded as a " - "uppercase string with a maximum length of 100 chars"); - VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + "Step 2p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); + VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 21: { LogStep(21, - "Step 2q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " - "text, omitting any leading zeros. If present value must be different of 0"); - VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + "Step 2q: If (MCORE.SC.RI_KEY ) present, key RI must include the Rotating Device Identifier encoded as a " + "uppercase string with a maximum length of 100 chars"); + VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 22: { LogStep(22, - "Step 2r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " - "of 128 bytes"); - VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + "Step 2r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " + "text, omitting any leading zeros. If present value must be different of 0"); + VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 23: { LogStep(23, - "Step 2s: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " - "messages."); + "Step 2s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " + "of 128 bytes"); + VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } case 24: { - LogStep(24, "Step 3: Reboot/restart the DUT"); + LogStep(24, + "Step 2t: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " + "messages."); + ListFreer listFreer; + chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; + return FindCommissionable(kIdentityAlpha, value); + } + case 25: { + LogStep(25, "Step 3: Reboot/restart the DUT"); VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::SystemCommands::Commands::Reboot::Type value; return Reboot(kIdentityAlpha, value); } - case 25: { - LogStep(25, "Step 3: Reboot target device(DUT)"); + case 26: { + LogStep(26, "Step 3: Reboot target device(DUT)"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -129292,15 +129334,15 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 26: { - LogStep(26, "Wait for the commissioned device to be retrieved"); + case 27: { + LogStep(27, "Wait for the commissioned device to be retrieved"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value; value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL; return WaitForCommissionee(kIdentityAlpha, value); } - case 27: { - LogStep(27, + case 28: { + LogStep(28, "Step 3a: DUT put in Commissioning Mode using Open Basic Commissioning Window command, starting advertising " "Commissionable Node Discovery service using DNS-SD"); VerifyOrDo(!ShouldSkip("CADMIN.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129313,23 +129355,23 @@ class Test_TC_SC_4_1Suite : public TestCommand ); } - case 28: { - LogStep(28, "Waiting after opening commissioning window"); + case 29: { + LogStep(29, "Waiting after opening commissioning window"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = mWaitAfterCommissioning.HasValue() ? mWaitAfterCommissioning.Value() : 5000UL; return WaitForMs(kIdentityAlpha, value); } - case 29: { - LogStep(29, + case 30: { + LogStep(30, "Step 4a: Check DNS-SD instance name must be 64-bit randomly selected ID expressed as a sixteen-char hex " "string with capital letters and must be different from the one at step 2"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 30: { - LogStep(30, "Step 4b: service type must be _matterc._udp"); + case 31: { + LogStep(31, "Step 4b: service type must be _matterc._udp"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value; @@ -129338,8 +129380,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 31: { - LogStep(31, + case 32: { + LogStep(32, "Step 4c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or " "64bit MAC address expressed as a twelve or sixteen capital letter hex string"); VerifyOrDo(!ShouldSkip("(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR"), @@ -129348,8 +129390,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 32: { - LogStep(32, + case 33: { + LogStep(33, "Step 4c: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC address " "expressed as a twelve or sixteen capital letter hex string"); VerifyOrDo(!ShouldSkip("(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR"), @@ -129358,22 +129400,22 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 33: { - LogStep(33, "Step 4d: Check Long Discriminator _L"); + case 34: { + LogStep(34, "Step 4d: Check Long Discriminator _L"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByLongDiscriminator::Type value; value.value = mDiscriminator.HasValue() ? mDiscriminator.Value() : 3840ULL; return FindCommissionableByLongDiscriminator(kIdentityAlpha, value); } - case 34: { - LogStep(34, "Step 4e: Check Short Discriminator (_S)"); + case 35: { + LogStep(35, "Step 4e: Check Short Discriminator (_S)"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByShortDiscriminator::Type value; value.value = mShortDiscriminator.HasValue() ? mShortDiscriminator.Value() : 15ULL; return FindCommissionableByShortDiscriminator(kIdentityAlpha, value); } - case 35: { - LogStep(35, + case 36: { + LogStep(36, "Step 4f: If (MCORE.SC.VENDOR_SUBTYPE ) present, subtype _V is present must be 16-bit vendor id, " "encoded as a variable-length decimal number in ASCII text, omitting any leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.VENDOR_SUBTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129382,8 +129424,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mVendorId.HasValue() ? mVendorId.Value() : 65521ULL; return FindCommissionableByVendorId(kIdentityAlpha, value); } - case 36: { - LogStep(36, + case 37: { + LogStep(37, "Step 4g: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from " "Data Model and must be represented as a variable length decimal number in ASCII without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DEVTYPE_SUBTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129392,36 +129434,36 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mDeviceType.HasValue() ? mDeviceType.Value() : 65535ULL; return FindCommissionableByDeviceType(kIdentityAlpha, value); } - case 37: { - LogStep(37, "Step 4h: Check Commissioning Mode (_CM) subtype _CM is present"); + case 38: { + LogStep(38, "Step 4h: Check Commissioning Mode (_CM) subtype _CM is present"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByCommissioningMode::Type value; return FindCommissionableByCommissioningMode(kIdentityAlpha, value); } - case 38: { - LogStep(38, + case 39: { + LogStep(39, "Step 4i: key D must be present and represents the discriminator which must be encoded as a variable-length " "decimal value with up to 4 digits omitting any leading zeros"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 39: { - LogStep(39, "Step 4j: If (MCORE.SC.VP_KEY) present, VP key must contain at least Vendor ID is present."); + case 40: { + LogStep(40, "Step 4j: If (MCORE.SC.VP_KEY) present, VP key must contain at least Vendor ID is present."); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 40: { - LogStep(40, "Step 4k: If (MCORE.SC.VP_KEY) present, VP key must contain at least Product ID is present."); + case 41: { + LogStep(41, "Step 4k: If (MCORE.SC.VP_KEY) present, VP key must contain at least Product ID is present."); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 41: { - LogStep(41, + case 42: { + LogStep(42, "Step 4l: If (MCORE.SC.SII_OP_DISCOVERY_KEY ) present, SII key must be an unsigned integer with units of " "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " "not exceed 3600000"); @@ -129430,8 +129472,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 42: { - LogStep(42, + case 43: { + LogStep(43, "Step 4m: If (MCORE.SC.SAI_OP_DISCOVERY_KEY) present, SAI key must be an unsigned integer with units of " "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " "not exceed 3600000."); @@ -129440,73 +129482,83 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 43: { - LogStep(43, "Step 4n: TXT key for commissioning mode (CM) key CM=1 must be present"); + case 44: { + LogStep(44, + "Step 4n: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be an unsigned integer with units of " + "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " + "not exceed 65535."); + VerifyOrDo(!ShouldSkip("MCORE.SC.SAI_OP_DISCOVERY_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 44: { - LogStep(44, - "Step 4o: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " + case 45: { + LogStep(45, "Step 4o: TXT key for commissioning mode (CM) key CM=1 must be present"); + ListFreer listFreer; + chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; + return FindCommissionable(kIdentityAlpha, value); + } + case 46: { + LogStep(46, + "Step 4p: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 45: { - LogStep(45, - "Step 4p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); + case 47: { + LogStep(47, + "Step 4q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 46: { - LogStep(46, - "Step 4q: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " + case 48: { + LogStep(48, + "Step 4r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " "uppercase string with a maximum length of 100 chars"); VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 47: { - LogStep(47, - "Step 4r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " + case 49: { + LogStep(49, + "Step 4s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " "text, omitting any leading zeros. If present value must be different of 0"); VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 48: { - LogStep(48, - "Step 4s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " + case 50: { + LogStep(50, + "Step 4t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " "of 128 bytes"); VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 49: { - LogStep(49, - "Step 4t: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " + case 51: { + LogStep(51, + "Step 4u: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " "messages."); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 50: { - LogStep(50, "Step 5: Wait for OpenBasicCommissioningWindow timeout to expire"); + case 52: { + LogStep(52, "Step 5: Wait for OpenBasicCommissioningWindow timeout to expire"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 180000UL; return WaitForMs(kIdentityAlpha, value); } - case 51: { - LogStep(51, + case 53: { + LogStep(53, "Step 6: DUT is Commissioned and instructed to enter in commissioning mode using Open Commissioning Window " "command"); VerifyOrDo(!ShouldSkip("CADMIN.S.C00.Rsp && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129531,8 +129583,8 @@ class Test_TC_SC_4_1Suite : public TestCommand ); } - case 52: { - LogStep(52, + case 54: { + LogStep(54, "Step 6: DUT is Commissioned and instructed to enter in commissioning mode using Open Commissioning Window " "command"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && CADMIN.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129543,23 +129595,23 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 53: { - LogStep(53, "Waiting after opening commissioning window"); + case 55: { + LogStep(55, "Waiting after opening commissioning window"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = mWaitAfterCommissioning.HasValue() ? mWaitAfterCommissioning.Value() : 5000UL; return WaitForMs(kIdentityAlpha, value); } - case 54: { - LogStep(54, + case 56: { + LogStep(56, "Step 7a: DNS-SD instance name must be 64-bit randomly selected ID expressed as a sixteen-char hex string with " "capital letters"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 55: { - LogStep(55, + case 57: { + LogStep(57, "Step 7b: Check Hostname.If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or " "64bit MAC address expressed as a twelve or sixteen capital letter hex string."); VerifyOrDo(!ShouldSkip("(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR"), @@ -129568,8 +129620,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 56: { - LogStep(56, + case 58: { + LogStep(58, "Step 7b: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC extended " "address expressed as a twelve or sixteen capital letter hex string."); VerifyOrDo(!ShouldSkip("(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR"), @@ -129578,22 +129630,22 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 57: { - LogStep(57, "Step 7c: Check Long Discriminator _L"); + case 59: { + LogStep(59, "Step 7c: Check Long Discriminator _L"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByLongDiscriminator::Type value; value.value = mDiscriminator.HasValue() ? mDiscriminator.Value() : 3840ULL; return FindCommissionableByLongDiscriminator(kIdentityAlpha, value); } - case 58: { - LogStep(58, "Step 7d: Check Short Discriminator (_S)"); + case 60: { + LogStep(60, "Step 7d: Check Short Discriminator (_S)"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByShortDiscriminator::Type value; value.value = mShortDiscriminator.HasValue() ? mShortDiscriminator.Value() : 15ULL; return FindCommissionableByShortDiscriminator(kIdentityAlpha, value); } - case 59: { - LogStep(59, + case 61: { + LogStep(61, "Step 7e: If (MCORE.SC.VENDOR_SUBTYPE) present, subtype _V is present must be 16-bit vendor id, encoded " "as a variable-length decimal number in ASCII text, omitting any leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.VENDOR_SUBTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129602,8 +129654,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mVendorId.HasValue() ? mVendorId.Value() : 65521ULL; return FindCommissionableByVendorId(kIdentityAlpha, value); } - case 60: { - LogStep(60, + case 62: { + LogStep(62, "Step 7f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from " "Data Model and must be represented as a variable length decimal number in ASCII without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.VENDOR_SUBTYPE"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129612,28 +129664,28 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mDeviceType.HasValue() ? mDeviceType.Value() : 65535ULL; return FindCommissionableByDeviceType(kIdentityAlpha, value); } - case 61: { - LogStep(61, "Step 7g: Check Commissioning Mode (_CM) subtype _CM is present"); + case 63: { + LogStep(63, "Step 7g: Check Commissioning Mode (_CM) subtype _CM is present"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByCommissioningMode::Type value; return FindCommissionableByCommissioningMode(kIdentityAlpha, value); } - case 62: { - LogStep(62, "Step 7h: If (MCORE.SC.VP_KEY ) present, VP key must contain at least Vendor ID is present."); + case 64: { + LogStep(64, "Step 7h: If (MCORE.SC.VP_KEY ) present, VP key must contain at least Vendor ID is present."); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 63: { - LogStep(63, "Step 7i: If (MCORE.SC.VP_KEY ) present, VP key must contain at least Product ID is present"); + case 65: { + LogStep(65, "Step 7i: If (MCORE.SC.VP_KEY ) present, VP key must contain at least Product ID is present"); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 64: { - LogStep(64, + case 66: { + LogStep(66, "Step 7j: Optional TXT key for MRP Retry Interval Idle. if (MCORE.SC.SII_OP_DISCOVERY_KEY) present, SII key " "must be an unsigned integer with units of milliseconds and shall be encoded as a variable length decimal " "number in ASCII, omitting leading zeros. Shall not exceed 3600000"); @@ -129642,8 +129694,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 65: { - LogStep(65, + case 67: { + LogStep(67, "Step 7k: Optional TXT key for MRP Retry Interval Active. if (MCORE.SC.SAI_OP_DISCOVERY_KEY) present, SAI key " "must be an unsigned integer with units of milliseconds and shall be encoded as a variable length decimal " "number in ASCII, omitting leading zeros. Shall not exceed 3600000."); @@ -129652,73 +129704,83 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 66: { - LogStep(66, "Step 7l: TXT key for commissioning mode. CM=2 must be present"); + case 68: { + LogStep(68, + "Step 7l: Optional TXT key for MRP Retry Active Mode Threshold. If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, " + "SAT key must be an unsigned integer with units of milliseconds and shall be encoded as a variable length " + "decimal number in ASCII, omitting leading zeros. Shall not exceed 65535."); + VerifyOrDo(!ShouldSkip("MCORE.SC.SAI_OP_DISCOVERY_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 67: { - LogStep(67, - "Step 7m: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " + case 69: { + LogStep(69, "Step 7m: TXT key for commissioning mode. CM=2 must be present"); + ListFreer listFreer; + chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; + return FindCommissionable(kIdentityAlpha, value); + } + case 70: { + LogStep(70, + "Step 7n: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 68: { - LogStep(68, - "Step 7n: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); + case 71: { + LogStep(71, + "Step 7o: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 69: { - LogStep(69, - "Step 7o: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " + case 72: { + LogStep(72, + "Step 7p: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " "uppercase string with a maximum length of 100 chars"); VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 70: { - LogStep(70, - "Step 7p: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " + case 73: { + LogStep(73, + "Step 7q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " "text, omitting any leading zeros. If present value must be different of 0"); VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 71: { - LogStep(71, - "Step 7q: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " + case 74: { + LogStep(74, + "Step 7r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " "of 128 bytes"); VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 72: { - LogStep(72, - "Step 7r: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " + case 75: { + LogStep(75, + "Step 7s: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter " "messages"); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 73: { - LogStep(73, "Step 8: Wait for OCW timeout to expire"); + case 76: { + LogStep(76, "Step 8: Wait for OCW timeout to expire"); ListFreer listFreer; chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value; value.ms = 180000UL; return WaitForMs(kIdentityAlpha, value); } - case 74: { - LogStep(74, + case 77: { + LogStep(77, "Step 9: If (MCORE.SC.EXTENDED_DISCOVERY ) enable Extended Discovery. DUT should start to send Commissionable " "Node Discovery DNS-SD advertisements"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129730,8 +129792,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 75: { - LogStep(75, + case 78: { + LogStep(78, "Step 10a: Check DNS-SD instance name must be 64-bit randomly selected ID expressed as a sixteen-char hex " "string with capital letters"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129739,8 +129801,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 76: { - LogStep(76, "Step 10b: service type must be _matterc._udp"); + case 79: { + LogStep(79, "Step 10b: service type must be _matterc._udp"); VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; @@ -129750,8 +129812,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.expectedValue.Value() = chip::Span("ygarbage: not in length on purpose", 1); return UserPrompt(kIdentityAlpha, value); } - case 77: { - LogStep(77, + case 80: { + LogStep(80, "Step 10c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or " "64bit MAC address expressed as a twelve or sixteen capital letter hex string"); VerifyOrDo(!ShouldSkip("(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129760,8 +129822,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 78: { - LogStep(78, + case 81: { + LogStep(81, "Step 10c: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC extended " "address expressed as a twelve or sixteen capital letter hex string."); VerifyOrDo(!ShouldSkip("(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129770,24 +129832,24 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 79: { - LogStep(79, "Step 10d: Check Long Discriminator _L"); + case 82: { + LogStep(82, "Step 10d: Check Long Discriminator _L"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByLongDiscriminator::Type value; value.value = mDiscriminator.HasValue() ? mDiscriminator.Value() : 3840ULL; return FindCommissionableByLongDiscriminator(kIdentityAlpha, value); } - case 80: { - LogStep(80, "Step 10e: Check Short Discriminator (_S)"); + case 83: { + LogStep(83, "Step 10e: Check Short Discriminator (_S)"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByShortDiscriminator::Type value; value.value = mShortDiscriminator.HasValue() ? mShortDiscriminator.Value() : 15ULL; return FindCommissionableByShortDiscriminator(kIdentityAlpha, value); } - case 81: { - LogStep(81, + case 84: { + LogStep(84, "Step 10f: If (MCORE.SC.VENDOR_SUBTYPE ) present, subtype _V is present must be 16-bit vendor id, " "encoded as a variable-length decimal number in ASCII text, omitting any leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.VENDOR_SUBTYPE && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129797,8 +129859,8 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mVendorId.HasValue() ? mVendorId.Value() : 65521ULL; return FindCommissionableByVendorId(kIdentityAlpha, value); } - case 82: { - LogStep(82, + case 85: { + LogStep(85, "Step 10g: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type " "from Data Model and must be represented as a variable length decimal number in ASCII without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DEVTYPE_SUBTYPE && MCORE.SC.EXTENDED_DISCOVERY"), @@ -129808,38 +129870,38 @@ class Test_TC_SC_4_1Suite : public TestCommand value.value = mDeviceType.HasValue() ? mDeviceType.Value() : 65535ULL; return FindCommissionableByDeviceType(kIdentityAlpha, value); } - case 83: { - LogStep(83, "Step 10h: Check Commissioning Mode (_CM)"); + case 86: { + LogStep(86, "Step 10h: Check Commissioning Mode (_CM)"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionableByCommissioningMode::Type value; return FindCommissionableByCommissioningMode(kIdentityAlpha, value); } - case 84: { - LogStep(84, "Step 10i: TXT key for discriminator (D)"); + case 87: { + LogStep(87, "Step 10i: TXT key for discriminator (D)"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 85: { - LogStep(85, "Step 10j: If (MCORE.SC.VP_KEY) present, VP key must contain at least Vendor ID is present"); + case 88: { + LogStep(88, "Step 10j: If (MCORE.SC.VP_KEY) present, VP key must contain at least Vendor ID is present"); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 86: { - LogStep(86, "Step 10k: If (MCORE.SC.VP_KEY) present, VP key must contain at least Product ID is present"); + case 89: { + LogStep(89, "Step 10k: If (MCORE.SC.VP_KEY) present, VP key must contain at least Product ID is present"); VerifyOrDo(!ShouldSkip("MCORE.SC.VP_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 87: { - LogStep(87, + case 90: { + LogStep(90, "Step 10l: If (MCORE.SC.SII_OP_DISCOVERY_KEY) present, SII key must be an unsigned integer with units of " "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " "not exceed 3600000."); @@ -129849,8 +129911,8 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 88: { - LogStep(88, + case 91: { + LogStep(91, "Step 10m: If (MCORE.SC.SAI_OP_DISCOVERY_KEY) present, SAI key must be an unsigned integer with units of " "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " "not exceed 3600000."); @@ -129860,16 +129922,26 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 89: { - LogStep(89, "Step 10n: TXT key for commissioning mode (CM), CM=0 may be present"); + case 92: { + LogStep(92, + "Step 10n: If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be an unsigned integer with units of " + "milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall " + "not exceed 65535."); + VerifyOrDo(!ShouldSkip("MCORE.SC.SAI_OP_DISCOVERY_KEY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); + ListFreer listFreer; + chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; + return FindCommissionable(kIdentityAlpha, value); + } + case 93: { + LogStep(93, "Step 10o: TXT key for commissioning mode (CM), CM=0 may be present"); VerifyOrDo(!ShouldSkip("MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 90: { - LogStep(90, - "Step 10o: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " + case 94: { + LogStep(94, + "Step 10p: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device " "Types and must be encoded as a variable length decimal ASCII number without leading zeros"); VerifyOrDo(!ShouldSkip("MCORE.SC.DT_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129877,18 +129949,18 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 91: { - LogStep(91, - "Step 10p: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); + case 95: { + LogStep(95, + "Step 10q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B"); VerifyOrDo(!ShouldSkip("MCORE.SC.DN_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); ListFreer listFreer; chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 92: { - LogStep(92, - "Step 10q: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " + case 96: { + LogStep(96, + "Step 10r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a " "uppercase string with a maximum length of 100 chars"); VerifyOrDo(!ShouldSkip("MCORE.SC.RI_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129896,9 +129968,9 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 93: { - LogStep(93, - "Step 10r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " + case 97: { + LogStep(97, + "Step 10s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII " "text, omitting any leading zeros. If present value must be different of 0"); VerifyOrDo(!ShouldSkip("MCORE.SC.PH_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); @@ -129906,9 +129978,9 @@ class Test_TC_SC_4_1Suite : public TestCommand chip::app::Clusters::DiscoveryCommands::Commands::FindCommissionable::Type value; return FindCommissionable(kIdentityAlpha, value); } - case 94: { - LogStep(94, - "Step 10s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " + case 98: { + LogStep(98, + "Step 10t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length " "of 128 bytes"); VerifyOrDo(!ShouldSkip("MCORE.SC.PI_KEY && MCORE.SC.EXTENDED_DISCOVERY"), return ContinueOnChipMainThread(CHIP_NO_ERROR)); From 50f26f696e8be7010d0b137b1939eaa10884f53f Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Fri, 21 Jul 2023 19:34:11 +0000 Subject: [PATCH 3/3] Restyled by prettier-yaml --- .../suites/certification/Test_TC_IDM_4_2.yaml | 37 +++--- .../suites/certification/Test_TC_SC_2_1.yaml | 6 +- .../suites/certification/Test_TC_SC_3_3.yaml | 9 +- .../suites/certification/Test_TC_SC_4_1.yaml | 107 ++++++++++++------ .../suites/certification/Test_TC_SC_4_10.yaml | 4 +- 5 files changed, 104 insertions(+), 59 deletions(-) diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml index 52f2d1b49bc55a..5a5f36b73da8e8 100644 --- a/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml +++ b/src/app/tests/suites/certification/Test_TC_IDM_4_2.yaml @@ -13,7 +13,8 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 3.4.2. [TC-IDM-4.2] Subscription Response Messages from DUT Test Cases. +name: + 3.4.2. [TC-IDM-4.2] Subscription Response Messages from DUT Test Cases. [{DUT_Server}] PICS: @@ -32,20 +33,22 @@ tests: disabled: true - label: - If the device is has the ICD Management cluster, TH reads from the DUT the IdleModeInterval attribute - and sets the SubscriptionMaxIntervalPublisherLimit to the value read. - If the device does not have the ICD Management cluster, set the SubscriptionMaxIntervalPublisherLimit - to 60 minutes. + If the device is has the ICD Management cluster, TH reads from the DUT + the IdleModeInterval attribute and sets the + SubscriptionMaxIntervalPublisherLimit to the value read. If the device + does not have the ICD Management cluster, set the + SubscriptionMaxIntervalPublisherLimit to 60 minutes. verification: | The cluster used in the below command is an example, icdmanagement read idle-mode-interval 12344321 0 disabled: true - - label: "Step 1: TH sends a subscription message to the DUT with - MaxIntervalCeiling set to a value greater than the SubscriptionMaxIntervalPublisherLimit. - DUT sends a report data action to the TH. TH sends a success status response to the DUT. - DUT sends a Subscribe Response Message to the TH to activate - the subscription." + - label: + "Step 1: TH sends a subscription message to the DUT with + MaxIntervalCeiling set to a value greater than the + SubscriptionMaxIntervalPublisherLimit. DUT sends a report data action + to the TH. TH sends a success status response to the DUT. DUT sends a + Subscribe Response Message to the TH to activate the subscription." verification: | onoff subscribe on-off 100 3900 1 1 --keepSubscriptions true @@ -79,11 +82,12 @@ tests: [1686294743.441504][101362:101364] CHIP:DMG: MoveToState ReadClient[0x7fc7ec011c50]: Moving to [Subscripti] disabled: true - - label: "Step 2: TH sends a subscription message to the DUT with - MaxIntervalCeiling set to a value less than han the SubscriptionMaxIntervalPublisherLimit. - DUT sends a report data action to the TH. TH sends a success status response to - the DUT. DUT sends a Subscribe Response Message to the TH to activate - the subscription." + - label: + "Step 2: TH sends a subscription message to the DUT with + MaxIntervalCeiling set to a value less than han the + SubscriptionMaxIntervalPublisherLimit. DUT sends a report data action + to the TH. TH sends a success status response to the DUT. DUT sends a + Subscribe Response Message to the TH to activate the subscription." verification: | basicinformation subscribe location 10 2400 1 0 --keepSubscriptions true On the TH(chip-tool), verify a report data message is received and verify it contains the following data : @@ -459,7 +463,8 @@ tests: On TH(chip-tool) Verify that the Subscription succeeds and the DUT sends back the attribute values for the global attribute disabled: true - - label: "Step 11: TH sends a subscription request to subscribe to a global + - label: + "Step 11: TH sends a subscription request to subscribe to a global attribute on an endpoint on all clusters. AttributePath = [[Attribute = Global Attribute, Endpoint = EndpointID ]]. +" verification: | diff --git a/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml index 16bdb5abc38839..93267e1d351ea3 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_2_1.yaml @@ -13,7 +13,8 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 14.2.1. [TC-SC-2.1] Session Establishment - Passcode Authenticated Session +name: + 14.2.1. [TC-SC-2.1] Session Establishment - Passcode Authenticated Session Establishment (PASE) PICS: @@ -25,7 +26,8 @@ config: endpoint: 0 tests: - - label: "Initiator constructs and sends a TLV-encoded PBKDFParamRequest + - label: + "Initiator constructs and sends a TLV-encoded PBKDFParamRequest message" verification: | Verify that the responder receives the PBKDFParamRequest message. Verify that the protocol header is properly constructed: Message Flags: S Flag is set to 0, and DSIZ field is set to 0 Session ID is set to 0 Security Flags: Session Type bits are set to 0 Exchange Flags: I Flag is set to 1 Protocol Opcode is set to 32 (0x20) Protocol ID is set to 0 Verify, if possible in a debug mode, that the PBKDFParamRequest message contains: initiatorRandom - randomly generated 32-bit octet string initiatorSessionId - max size 16-bits unsigned integer that does not overlap with existing initiator session identifiers passcodeId - max size 16-bits unsigned integer hasPBKDFParameters - boolean If hasPBKDFParameters is set to true then PBKDF parameters are not known for the given passcodeId If hasPBKDFParameters is set to false then PBKDF parameters are known for the given passcodeId initiatorSessionParams - optional session-parameter-struct which contains SESSION_IDLE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_INTERVAL - max size 32-bits unsigned integer SESSION_ACTIVE_THRESHOLD - max size 16-bits unsigned integer diff --git a/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml b/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml index be00820c21a8c5..36bc5c59272c42 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_3_3.yaml @@ -47,7 +47,8 @@ tests: In the response of above read request command, please verify the below test steps disabled: true - - label: "Step 2b: Responder receives the Sigma1 message and extracts the + - label: + "Step 2b: Responder receives the Sigma1 message and extracts the following initiatorRandom initiatorSessionId destinationId resumptionID initiatorResumeMIC initiatorEphPubKey initiatorSEDParams" verification: | @@ -122,7 +123,8 @@ tests: [1683973662.299943][21637:21637] CHIP:EM: >>> [E:32997r S:0 M:167307433] (U) Msg RX from 0:D379FA4FB43AD140 [0000] --- Type 0000:30 (SecureChannel:CASE_Sigma1) disabled: true - - label: "Step 2c: Responder sends a TLV-encoded Sigma2_Resume message to + - label: + "Step 2c: Responder sends a TLV-encoded Sigma2_Resume message to Initiator containing resumptionID responderSessionID sigma2ResumeMIC responderMRPParams" verification: | @@ -179,7 +181,8 @@ tests: [1683973662.301880][21648:21650] CHIP:SC: Peer assigned session session ID 688 disabled: true - - label: "Step 3a: Responder receives the SigmaFinished message and extracts + - label: + "Step 3a: Responder receives the SigmaFinished message and extracts the following 1.ProtocolId 2.ProtocolCode" verification: | On Responder(chip-tool), verify that responder(chip-tool) received the SigmaFinished(The status report should be GeneralCode:SUCCESS, diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml index 5a8c5ce891d5ae..b3daa00f2aca39 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml @@ -53,7 +53,8 @@ tests: - name: "nodeId" value: nodeId - - label: "Step 1a: DUT is put in Commissioning Mode using Open Basic + - label: + "Step 1a: DUT is put in Commissioning Mode using Open Basic Commissioning Window command " cluster: "Administrator Commissioning" command: "OpenBasicCommissioningWindow" @@ -194,7 +195,8 @@ tests: - name: "value" value: vendorId - - label: "Step 2f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is + - label: + "Step 2f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from Data Model and must be represented as a variable length decimal number in ASCII without leading zeros" @@ -206,7 +208,8 @@ tests: - name: "value" value: deviceType - - label: "Step 2g: Check Commissioning Mode (_CM) subtype _CM must be present" + - label: + "Step 2g: Check Commissioning Mode (_CM) subtype _CM must be present" cluster: "DiscoveryCommands" command: "FindCommissionableByCommissioningMode" @@ -320,7 +323,8 @@ tests: constraints: maxLength: 32 - - label: "Step 2q: If (MCORE.SC.RI_KEY ) present, key RI must include the + - label: + "Step 2q: If (MCORE.SC.RI_KEY ) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY @@ -332,7 +336,8 @@ tests: constraints: maxValue: 100 - - label: "Step 2r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + - label: + "Step 2r: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY @@ -344,7 +349,8 @@ tests: constraints: notValue: 0 - - label: "Step 2s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + - label: + "Step 2s: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY cluster: "DiscoveryCommands" @@ -355,7 +361,8 @@ tests: constraints: maxLength: 128 - - label: "Step 2t: DUT must publish AAAA records for each IPv6 address upon + - label: + "Step 2t: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter messages." cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -473,7 +480,8 @@ tests: value: "y" #validate the service type and the service domain not implemented in CI - - label: "Step 4c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) + - label: + "Step 4c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or 64bit MAC address expressed as a twelve or sixteen capital letter hex string" PICS: "(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR" @@ -488,7 +496,8 @@ tests: isUpperCase: true isHexString: true - - label: "Step 4c: Check Hostname. If (MCORE.COM.THR) target hostname is + - label: + "Step 4c: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC address expressed as a twelve or sixteen capital letter hex string" PICS: "(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR" @@ -531,7 +540,8 @@ tests: - name: "value" value: vendorId - - label: "Step 4g: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is + - label: + "Step 4g: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from Data Model and must be represented as a variable length decimal number in ASCII without leading zeros" @@ -626,7 +636,8 @@ tests: constraints: maxValue: 65535 - - label: "Step 4o: TXT key for commissioning mode (CM) key CM=1 must be present" + - label: + "Step 4o: TXT key for commissioning mode (CM) key CM=1 must be present" cluster: "DiscoveryCommands" command: "FindCommissionable" response: @@ -658,7 +669,8 @@ tests: constraints: maxLength: 32 - - label: "Step 4r: If (MCORE.SC.RI_KEY) present, key RI must include the + - label: + "Step 4r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY @@ -670,7 +682,8 @@ tests: constraints: maxValue: 100 - - label: "Step 4s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + - label: + "Step 4s: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY @@ -682,7 +695,8 @@ tests: constraints: notValue: 0 - - label: "Step 4t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + - label: + "Step 4t: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY cluster: "DiscoveryCommands" @@ -693,7 +707,8 @@ tests: constraints: maxLength: 128 - - label: "Step 4u: DUT must publish AAAA records for each IPv6 address upon + - label: + "Step 4u: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter messages." cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -791,7 +806,8 @@ tests: - name: "ms" value: waitAfterCommissioning - - label: "Step 7a: DNS-SD instance name must be 64-bit randomly selected ID + - label: + "Step 7a: DNS-SD instance name must be 64-bit randomly selected ID expressed as a sixteen-char hex string with capital letters" cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -823,7 +839,8 @@ tests: isUpperCase: true isHexString: true - - label: "Step 7b: Check Hostname. If (MCORE.COM.THR) target hostname is + - label: + "Step 7b: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC extended address expressed as a twelve or sixteen capital letter hex string." # On macOS the hostname is the device name and because of it this test is disabled for now. @@ -867,7 +884,8 @@ tests: - name: "value" value: vendorId - - label: "Step 7f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is + - label: + "Step 7f: If (MCORE.SC.DEVTYPE_SUBTYPE) present, subtype _T is present, represents device type from Data Model and must be represented as a variable length decimal number in ASCII without leading zeros" @@ -906,7 +924,8 @@ tests: - name: "productId" value: productId - - label: "Step 7j: Optional TXT key for MRP Retry Interval Idle. if + - label: + "Step 7j: Optional TXT key for MRP Retry Interval Idle. if (MCORE.SC.SII_OP_DISCOVERY_KEY) present, SII key must be an unsigned integer with units of milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall not @@ -920,7 +939,8 @@ tests: constraints: maxValue: 3600000 - - label: "Step 7k: Optional TXT key for MRP Retry Interval Active. if + - label: + "Step 7k: Optional TXT key for MRP Retry Interval Active. if (MCORE.SC.SAI_OP_DISCOVERY_KEY) present, SAI key must be an unsigned integer with units of milliseconds and shall be encoded as a variable length decimal number in ASCII, omitting leading zeros. Shall not @@ -934,11 +954,12 @@ tests: constraints: maxValue: 3600000 - - label: "Step 7l: Optional TXT key for MRP Retry Active Mode Threshold. - If (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be - an unsigned integer with units of milliseconds and shall be encoded as - a variable length decimal number in ASCII, omitting leading zeros. - Shall not exceed 65535." + - label: + "Step 7l: Optional TXT key for MRP Retry Active Mode Threshold. If + (MCORE.SC.SAT_OP_DISCOVERY_KEY) present, SAT key must be an unsigned + integer with units of milliseconds and shall be encoded as a variable + length decimal number in ASCII, omitting leading zeros. Shall not + exceed 65535." PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -980,7 +1001,8 @@ tests: constraints: maxLength: 32 - - label: "Step 7p: If (MCORE.SC.RI_KEY) present, key RI must include the + - label: + "Step 7p: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY @@ -992,7 +1014,8 @@ tests: constraints: maxValue: 100 - - label: "Step 7q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a + - label: + "Step 7q: If (MCORE.SC.PH_KEY) present, key PH must be encoded as a variable-length decimal number in ASCII text, omitting any leading zeros. If present value must be different of 0" PICS: MCORE.SC.PH_KEY @@ -1004,7 +1027,8 @@ tests: constraints: notValue: 0 - - label: "Step 7r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a + - label: + "Step 7r: If (MCORE.SC.PI_KEY) present, key PI must be encoded as a valid UTF-8 string with a maximum length of 128 bytes" PICS: MCORE.SC.PI_KEY cluster: "DiscoveryCommands" @@ -1015,7 +1039,8 @@ tests: constraints: maxLength: 128 - - label: "Step 7s: DUT must publish AAAA records for each IPv6 address upon + - label: + "Step 7s: DUT must publish AAAA records for each IPv6 address upon which they are willing to accept Matter messages" cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1092,11 +1117,13 @@ tests: #validate the service type and the service domain - - label: "Step 10c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) + - label: + "Step 10c: Check Hostname. If (MCORE.COM.WIFI) OR (MCORE.COM.ETH) target hostname is derived from the 48bit or 64bit MAC address expressed as a twelve or sixteen capital letter hex string" # On macOS the hostname is the device name and because of it this test is disabled for now. - PICS: "(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR && + PICS: + "(MCORE.COM.WIFI || MCORE.COM.ETH) && !MCORE.COM.THR && MCORE.SC.EXTENDED_DISCOVERY" cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1109,11 +1136,13 @@ tests: isUpperCase: true isHexString: true - - label: "Step 10c: Check Hostname. If (MCORE.COM.THR) target hostname is + - label: + "Step 10c: Check Hostname. If (MCORE.COM.THR) target hostname is derived from the 48bit or 64bit MAC extended address expressed as a twelve or sixteen capital letter hex string." # On macOS the hostname is the device name and because of it this test is disabled for now. - PICS: "(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR && + PICS: + "(!MCORE.COM.WIFI && !MCORE.COM.ETH) && MCORE.COM.THR && MCORE.SC.EXTENDED_DISCOVERY" cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1255,7 +1284,8 @@ tests: constraints: maxValue: 65535 - - label: "Step 10o: TXT key for commissioning mode (CM), CM=0 may be present" + - label: + "Step 10o: TXT key for commissioning mode (CM), CM=0 may be present" PICS: MCORE.SC.EXTENDED_DISCOVERY cluster: "DiscoveryCommands" command: "FindCommissionable" @@ -1264,7 +1294,8 @@ tests: - name: "commissioningMode" value: 0 - - label: "Step 10p: If (MCORE.SC.DT_KEY) present, DT key must contain the + - label: + "Step 10p: If (MCORE.SC.DT_KEY) present, DT key must contain the device type identifier from Data Model Device Types and must be encoded as a variable length decimal ASCII number without leading zeros" @@ -1276,7 +1307,8 @@ tests: - name: "deviceType" value: deviceType - - label: "Step 10q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 + - label: + "Step 10q: If (MCORE.SC.DN_KEY) present, DN key must be a UTF-8 encoded string with a maximum length of 32B" PICS: MCORE.SC.DN_KEY && MCORE.SC.EXTENDED_DISCOVERY cluster: "DiscoveryCommands" @@ -1287,7 +1319,8 @@ tests: constraints: maxLength: 32 - - label: "Step 10r: If (MCORE.SC.RI_KEY) present, key RI must include the + - label: + "Step 10r: If (MCORE.SC.RI_KEY) present, key RI must include the Rotating Device Identifier encoded as a uppercase string with a maximum length of 100 chars" PICS: MCORE.SC.RI_KEY && MCORE.SC.EXTENDED_DISCOVERY diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml index 87746db24814cf..6e261e2bcc6226 100644 --- a/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml +++ b/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml @@ -13,7 +13,9 @@ # limitations under the License. # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default -name: 15.4.10. [TC-SC-4.10] Operational Discovery - SIT ICD Node [{DUT_Commissionee}] +name: + 15.4.10. [TC-SC-4.10] Operational Discovery - SIT ICD Node + [{DUT_Commissionee}] PICS: - MCORE.ROLE.COMMISSIONEE