Modifed test july 14 (#27960)

* Semi-Automated ---> Automated
TC-ACL-2.2
TC-APPLAUNCHER-3.8
TC-APPLAUNCHER-3.9
TC-SC-5.1
TC-SC-5.2

Semi-Automated test
TC-BINFO-2.2

* Auto generated files

* Modified endpoint variable to readable format
diff --git a/examples/darwin-framework-tool/templates/tests/ciTests.json b/examples/darwin-framework-tool/templates/tests/ciTests.json
index 7260c76..f20fb16 100644
--- a/examples/darwin-framework-tool/templates/tests/ciTests.json
+++ b/examples/darwin-framework-tool/templates/tests/ciTests.json
@@ -114,6 +114,8 @@
         "Test_TC_ACFREMON_2_1",
         "Disabled due to HEPAFilterMonitoring not being enabled in Matter.framework for now:",
         "Test_TC_HEPAFREMON_1_1",
-        "Test_TC_HEPAFREMON_2_1"
+        "Test_TC_HEPAFREMON_2_1",
+        "Disabled due to Events verification not supported",
+        "Test_TC_BINFO_2_2"
     ]
 }
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_2.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_2.yaml
index 87fd561..24e18d9 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_2.yaml
@@ -22,9 +22,11 @@
     nodeId: 0x12344321
     cluster: "Access Control"
     endpoint: 0
+    #Configurable endpoint except 0
+    Endpoint_Except_Zero: 1
 
 tests:
-    - label: "Wait for the commissioned device to be retrieved"
+    - label: "Step 1: Wait for the commissioned device to be retrieved"
       cluster: "DelayCommands"
       command: "WaitForCommissionee"
       arguments:
@@ -33,79 +35,24 @@
                 value: nodeId
 
     - label:
-          "TH1 reads DUT Descriptor cluster ServerList attribute from Endpoint 0"
-      command: "readAttribute"
+          "Step 2: TH reads DUT Descriptor cluster ServerList attribute from
+          Endpoint 0"
       cluster: "Descriptor"
+      command: "readAttribute"
       attribute: "ServerList"
       response:
           constraints:
               type: list
               contains: [31]
 
-    #Endpoint configuration is not supported in YAML
     - label:
-          "TH1 reads DUT Descriptor cluster ServerList attribute from every
-          Endpoint except 0"
-      verification: |
-          ./chip-tool  descriptor read server-list 1 1
-
-
-          On TH1(Chiptool) ,Verify the serverList attribute of Descriptor Cluster without  an element of 31( 0x001F)
-
-          [1676442452.204523][8902:8904] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1718800852
-          [1676442452.204637][8902:8904] CHIP:TOO:   ServerList: 45 entries
-          [1676442452.204655][8902:8904] CHIP:TOO:     [1]: 3
-          [1676442452.204670][8902:8904] CHIP:TOO:     [2]: 4
-          [1676442452.204685][8902:8904] CHIP:TOO:     [3]: 5
-          [1676442452.204700][8902:8904] CHIP:TOO:     [4]: 6
-          [1676442452.204715][8902:8904] CHIP:TOO:     [5]: 7
-          [1676442452.204729][8902:8904] CHIP:TOO:     [6]: 8
-          [1676442452.204744][8902:8904] CHIP:TOO:     [7]: 15
-          [1676442452.204759][8902:8904] CHIP:TOO:     [8]: 29
-          [1676442452.204774][8902:8904] CHIP:TOO:     [9]: 30
-          [1676442452.204789][8902:8904] CHIP:TOO:     [10]: 37
-          [1676442452.204804][8902:8904] CHIP:TOO:     [11]: 47
-          [1676442452.204820][8902:8904] CHIP:TOO:     [12]: 59
-          [1676442452.204835][8902:8904] CHIP:TOO:     [13]: 64
-          [1676442452.204849][8902:8904] CHIP:TOO:     [14]: 65
-          [1676442452.204864][8902:8904] CHIP:TOO:     [15]: 69
-          [1676442452.204879][8902:8904] CHIP:TOO:     [16]: 80
-          [1676442452.204894][8902:8904] CHIP:TOO:     [17]: 257
-          [1676442452.204909][8902:8904] CHIP:TOO:     [18]: 258
-          [1676442452.204923][8902:8904] CHIP:TOO:     [19]: 259
-          [1676442452.204938][8902:8904] CHIP:TOO:     [20]: 512
-          [1676442452.204953][8902:8904] CHIP:TOO:     [21]: 513
-          [1676442452.204968][8902:8904] CHIP:TOO:     [22]: 514
-          [1676442452.204983][8902:8904] CHIP:TOO:     [23]: 516
-          [1676442452.204998][8902:8904] CHIP:TOO:     [24]: 768
-          [1676442452.205013][8902:8904] CHIP:TOO:     [25]: 769
-          [1676442452.205028][8902:8904] CHIP:TOO:     [26]: 1024
-          [1676442452.205043][8902:8904] CHIP:TOO:     [27]: 1026
-          [1676442452.205058][8902:8904] CHIP:TOO:     [28]: 1027
-          [1676442452.205072][8902:8904] CHIP:TOO:     [29]: 1028
-          [1676442452.205088][8902:8904] CHIP:TOO:     [30]: 1029
-          [1676442452.205103][8902:8904] CHIP:TOO:     [31]: 1030
-          [1676442452.205117][8902:8904] CHIP:TOO:     [32]: 1283
-          [1676442452.205133][8902:8904] CHIP:TOO:     [33]: 1284
-          [1676442452.205148][8902:8904] CHIP:TOO:     [34]: 1285
-          [1676442452.205168][8902:8904] CHIP:TOO:     [35]: 1286
-          [1676442452.205185][8902:8904] CHIP:TOO:     [36]: 1287
-          [1676442452.205199][8902:8904] CHIP:TOO:     [37]: 1288
-          [1676442452.205215][8902:8904] CHIP:TOO:     [38]: 1289
-          [1676442452.205230][8902:8904] CHIP:TOO:     [39]: 1290
-          [1676442452.205245][8902:8904] CHIP:TOO:     [40]: 1291
-          [1676442452.205260][8902:8904] CHIP:TOO:     [41]: 1292
-          [1676442452.205275][8902:8904] CHIP:TOO:     [42]: 1293
-          [1676442452.205290][8902:8904] CHIP:TOO:     [43]: 1294
-          [1676442452.205319][8902:8904] CHIP:TOO:     [44]: 2820
-          [1676442452.205331][8902:8904] CHIP:TOO:     [45]: 4294048773
-          [1676442452.205454][8902:8904] CHIP:EM: <<< [E:56665i M:248848283 (Ack:9298405)] (S) Msg TX to 1:00000000
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_USER_PROMPT
-      arguments:
-          values:
-              - name: "message"
-                value: "Factory Reset the DUT and enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
+          "Step 3: TH reads DUT Descriptor cluster ServerList attribute from
+          every Endpoint except 0"
+      endpoint: Endpoint_Except_Zero
+      cluster: "Descriptor"
+      command: "readAttribute"
+      attribute: "ServerList"
+      response:
+          constraints:
+              type: list
+              excludes: [31]
diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8.yaml
index d1633f3..94a5bcc 100644
--- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8.yaml
+++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8.yaml
@@ -27,9 +27,11 @@
     applicationId:
         type: char_string
         defaultValue: "exampleid"
+    #ApplicationBasic cluster endpoint
+    ApplicationBasic.Endpoint: 3
 
 tests:
-    - label: "Wait for the commissioned device to be retrieved"
+    - label: "Step 0: Wait for the commissioned device to be retrieved"
       cluster: "DelayCommands"
       command: "WaitForCommissionee"
       arguments:
@@ -37,7 +39,7 @@
               - name: "nodeId"
                 value: nodeId
 
-    - label: "Stop an app with the provided application ID"
+    - label: "Step 1: Stop an app with the provided application ID"
       PICS: APPLAUNCHER.S.C01.Rsp
       command: "StopApp"
       arguments:
@@ -53,25 +55,10 @@
               - name: "Status"
                 value: 0
 
-    #Endpoint configuration is not supported in YAML
-    - label: "Reads the Status attribute"
-      PICS: PICS_USER_PROMPT
-      verification: |
-          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
-          ./chip-tool applicationbasic read status 1 3
-          ./chip-tv-casting-app applicationbasic read status 1 3
-
-          On TH verify that the Status attribute  value as 0
-          [1658208937.049446][2428:2433] CHIP:DMG:         InteractionModelRevision = 1
-          [1658208937.049483][2428:2433] CHIP:DMG: }
-          [1658208937.049690][2428:2433] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_050D Attribute 0x0000_0005 DataVersion: 3850684771
-          [1658208937.049809][2428:2433] CHIP:TOO:   Status: 0
-          [1658208937.049922][2428:2433] CHIP:EM: Sending Standalone Ack for MessageCounter:75774840 on exchange 3041i
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      arguments:
-          values:
-              - name: "message"
-                value: "Please enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
+    - label: "Step 2: Reads the Status attribute"
+      endpoint: ApplicationBasic.Endpoint
+      cluster: "Application Basic"
+      command: "readAttribute"
+      attribute: "Status"
+      response:
+          value: 0
diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9.yaml
index 8f7b493..a61053a 100644
--- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9.yaml
+++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9.yaml
@@ -27,9 +27,11 @@
     applicationId:
         type: char_string
         defaultValue: "exampleid"
+    #ApplicationBasic cluster endpoint
+    ApplicationBasic.Endpoint: 3
 
 tests:
-    - label: "Wait for the commissioned device to be retrieved"
+    - label: "Step 0: Wait for the commissioned device to be retrieved"
       cluster: "DelayCommands"
       command: "WaitForCommissionee"
       arguments:
@@ -37,7 +39,7 @@
               - name: "nodeId"
                 value: nodeId
 
-    - label: "TH sends HideApp command to DUT"
+    - label: "Step 1: TH sends HideApp command to DUT"
       PICS: APPLAUNCHER.S.C02.Rsp
       command: "HideApp"
       arguments:
@@ -49,24 +51,11 @@
                         ApplicationID: applicationId,
                     }
 
-    #Expected status attribute response ACTIVE_HIDDEN or STOPPED 'OR' condition is not supported in YAML
-    - label: "Reads the Status attribute"
-      verification: |
-          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
-          ./chip-tool applicationbasic read status 1 3
-          ./chip-tool applicationbasic read status 1 3
-
-          On TH verify that the Status attribute  value as 0
-          [1658209002.942766][2442:2447] CHIP:DMG: }
-          [1658209002.942976][2442:2447] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_050D Attribute 0x0000_0005 DataVersion: 3850684771
-          [1658209002.943067][2442:2447] CHIP:TOO:   Status: 0
-          [1658209002.943177][2442:2447] CHIP:EM: Sending Standalone Ack for MessageCounter:54939405 on exchange 63408i"
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_USER_PROMPT
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
+    - label: "Step 2: Reads the Status attribute"
+      endpoint: ApplicationBasic.Endpoint
+      cluster: "Application Basic"
+      command: "readAttribute"
+      attribute: "Status"
+      response:
+          constraints:
+              anyOf: [0, 2]
diff --git a/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml
index 5037d20..f409844 100644
--- a/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Project CHIP Authors
+# Copyright (c) 2023 Project CHIP Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -11,7 +11,6 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
 
 name: 12.2.2. [TC-BINFO-2.2] Events [DUT-Server]
 
@@ -24,64 +23,128 @@
     endpoint: 0
 
 tests:
-    - label: "Precondition"
-      verification: |
-          1. DUT and TH can interact with each other. DUT is commissioned.
+    - label: "Step 0: Wait for the commissioned device to be retrieved"
+      cluster: "DelayCommands"
+      command: "WaitForCommissionee"
+      arguments:
+          values:
+              - name: "nodeId"
+                value: nodeId
+    - label:
+          "TH reads SoftwareVersion attribute from DUT and saves for future use"
+      PICS: BINFO.S.A0009
+      command: "readAttribute"
+      attribute: "SoftwareVersion"
+      response:
+          saveAs: SoftwareVersionValue
 
-          2. BINFO.S.A0009(SoftwareVersion) - TH reads SoftwareVersion attribute from DUT and saves for future use
+    - label:
+          "Precondition: TH reads Reachable attribute from DUT and saves for
+          future use"
+      PICS: BINFO.S.A0011
+      command: "readAttribute"
+      attribute: "Reachable"
+      response:
+          value: true
+          saveAs: ReachableValue
 
-          3. BINFO.S.A0011(Reachable) - TH reads Reachable attribute from DUT and saves for future use(should be true)
+    - label: "Precondition: TH saves the FabricIndex during commissioning"
+      command: "readAttribute"
+      cluster: "Operational Credentials"
+      attribute: "CurrentFabricIndex"
+      response:
+          saveAs: CurrentFabricIndexValue
 
-          4. BINFO.S.E00(StartUp) | BINFO.S.E01(ShutDown) || BINFO.S.E02(Leave) - TH subscribes to StartUp, ShutDown, Leave and ReachableChanged events on the Basic Information cluster of the DUT
-
-          5. TH saves the FabricIndex during commissioning
-      disabled: true
-
-    - label: "Reboot the DUT TH reads the StartUp event from DUT"
+    - label:
+          "Precondition: TH subscribes to StartUp event on the Basic Information
+          cluster of the DUT"
       PICS: BINFO.S.E00
-      verification: |
-          To verify StartUp event follow the below commands , Pls use equivalent command on the respective DUT
+      command: "subscribeEvent"
+      event: "StartUp"
+      minInterval: 30
+      maxInterval: 100
+      response:
+          constraints:
+              type: StartUp
 
-
-          ./chip-tool  basicinformation read-event start-up 1 0
-
-          Verify that StartUp event priority is set is to CRITICAL and software verision is 1 on TH(chip-tool)
-
-          [1657193007.841105][5422:5427] CHIP:DMG:         ],
-          [1657193007.841137][5422:5427] CHIP:DMG:
-          [1657193007.841162][5422:5427] CHIP:DMG:         SuppressResponse = true,
-          [1657193007.841186][5422:5427] CHIP:DMG:         InteractionModelRevision = 1
-          [1657193007.841209][5422:5427] CHIP:DMG: }
-          [1657193007.841358][5422:5427] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0000
-          [1657193007.841387][5422:5427] CHIP:TOO:          Event number: 0
-          [1657193007.841409][5422:5427] CHIP:TOO:          Priority: Critical
-          [1657193007.841431][5422:5427] CHIP:TOO:          Timestamp: 132146
-          [1657193007.841531][5422:5427] CHIP:TOO:   StartUp: {
-          [1657193007.841570][5422:5427] CHIP:TOO:     SoftwareVersion: 1
-          [1657193007.841594][5422:5427] CHIP:TOO:    }
-          [1657193007.841691][5422:5427] CHIP:EM: Sending Standalone Ack for MessageCounter:91740387 on exchange 60385i
-      disabled: true
-
-    - label: "TH subscribes to the ShutDown event on the DUT. Shutdown DUT."
+    - label:
+          "Precondition: TH subscribes to ShutDown event on the Basic
+          Information cluster of the DUT"
       PICS: BINFO.S.E01
+      command: "subscribeEvent"
+      event: "ShutDown"
+      minInterval: 30
+      maxInterval: 100
+
+    - label:
+          "Precondition: TH subscribes to Leave event on the Basic Information
+          cluster of the DUT"
+      PICS: BINFO.S.E02
+      command: "subscribeEvent"
+      event: "Leave"
+      minInterval: 30
+      maxInterval: 100
+
+    ### DUT TurnOff
+    - label: "Step 1: Reboot the DUT"
+      PICS: PICS_SDK_CI_ONLY
+      cluster: "SystemCommands"
+      command: "Reboot"
+
+    - label: "Step 1: Reboot target device(DUT)"
       verification: |
-          To verify ShutDown event follow the below commands , Pls use equivalent command on the respective DUT
+          Did the DUT successfully reboot?
+      cluster: "LogCommands"
+      command: "UserPrompt"
+      PICS: PICS_SKIP_SAMPLE_APP
+      arguments:
+          values:
+              - name: "message"
+                value: "Please reboot the DUT and enter 'y' after DUT starts"
+              - name: "expectedValue"
+                value: "y"
 
+    - label: "Wait for the commissioned device to be retrieved"
+      cluster: "DelayCommands"
+      command: "WaitForCommissionee"
+      arguments:
+          values:
+              - name: "nodeId"
+                value: nodeId
 
-          1. Launch chip-tool into interactive mode with the command
+    - label: "Step 2: TH reads the StartUp event from DUT"
+      PICS: BINFO.S.E00
+      command: "readEvent"
+      event: "StartUp"
+      response:
+          value: { SoftwareVersion: SoftwareVersionValue }
 
-          ./chip-tool interactive start
+    - label: "Verify that StartUp event has priority set as CRITICAL"
+      cluster: "LogCommands"
+      command: "UserPrompt"
+      PICS: PICS_SKIP_SAMPLE_APP && BINFO.S.E00
+      arguments:
+          values:
+              - name: "message"
+                value: "If priority set as CRITICAL enter 'y' for success"
+              - name: "expectedValue"
+                value: "y"
 
-          2.  run below command in interactive mode shell and  Turn down the DUT
-          basicinformation subscribe-event shut-down 20 100 1 0
+    - label:
+          "Step 3: TH subscribes to the ShutDown event on the DUT. Shutdown DUT."
+      PICS: BINFO.S.E01
+      command: "subscribeEvent"
+      event: "ShutDown"
+      minInterval: 30
+      maxInterval: 100
 
-          verify that ShutDown event as priority set has CRITICAL on TH(Chip-tool)
-
-          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0001
-          [1653050528.900202][119367:119372] CHIP:TOO:          Event number: 5
-          [1653050528.900295][119367:119372] CHIP:TOO:          Priority: Critical
-          [1653050528.900386][119367:119372] CHIP:TOO:          Timestamp: 289436805
-          [1653050528.900630][119367:119372] CHIP:TOO:   ShutDown: {
-          [1653050528.900732][119367:119372] CHIP:TOO:    }
-          [1653050528.900892][119367:119372] CHIP:DMG: Refresh LivenessCheckTime for 28000 milliseconds with SubscriptionId = 0x27408c83 Peer = 01:0000000000000001
-      disabled: true
+    - label: "Verify that ShutDown event has priority set as CRITICAL"
+      cluster: "LogCommands"
+      command: "UserPrompt"
+      PICS: PICS_SKIP_SAMPLE_APP && BINFO.S.E01
+      arguments:
+          values:
+              - name: "message"
+                value: "If priority set as CRITICAL enter 'y' for success"
+              - name: "expectedValue"
+                value: "y"
diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml
index 69b942f..812dd47 100644
--- a/src/app/tests/suites/certification/Test_TC_SC_5_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SC_5_1.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: 19.1.1. [TC-SC-5.1] Adding member to a group
+name:
+    26.1.1. [TC-SC-5.1] Adding member to a group - TH as Admin and DUT as Group
+    Member
 
 PICS:
     - MCORE.ROLE.COMMISSIONEE
@@ -21,11 +23,13 @@
 config:
     nodeId: 0x12344321
     cluster: "Groups"
+    endpoint: 0
+
     # Users should set endpoint value on the command line to PIXIT.G.ENDPOINT
-    endpoint: 1
+    Groups.Endpoint: 1
 
 tests:
-    - label: "Wait for the commissioned device to be retrieved"
+    - label: "Step 0: Wait for the commissioned device to be retrieved"
       cluster: "DelayCommands"
       command: "WaitForCommissionee"
       arguments:
@@ -41,10 +45,8 @@
               - name: "nodeId"
                 saveAs: commissionerNodeId
 
-    - label: "TH adds ACL Operate privileges for Group 0x0103"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 1: TH adds ACL Operate privileges for Group 0x0103"
       cluster: "Access Control"
-      endpoint: 0
       command: "writeAttribute"
       attribute: "ACL"
       arguments:
@@ -66,84 +68,8 @@
                   },
               ]
 
-    - label: "TH adds ACL Operate privileges for Group 0x0103"
-      verification: |
-          ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 3, "authMode": 3, "subjects": ["0x0103"], "targets": null }]' 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on  TH(chip-tool)  Logs:
-
-          [1674109884.293472][29548:29550] CHIP:DMG: WriteResponseMessage =
-          [1674109884.293477][29548:29550] CHIP:DMG: {
-          [1674109884.293479][29548:29550] CHIP:DMG:         AttributeStatusIBs =
-          [1674109884.293486][29548:29550] CHIP:DMG:         [
-          [1674109884.293489][29548:29550] CHIP:DMG:                 AttributeStatusIB =
-          [1674109884.293494][29548:29550] CHIP:DMG:                 {
-          [1674109884.293497][29548:29550] CHIP:DMG:                         AttributePathIB =
-          [1674109884.293502][29548:29550] CHIP:DMG:                         {
-          [1674109884.293506][29548:29550] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674109884.293510][29548:29550] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674109884.293514][29548:29550] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674109884.293518][29548:29550] CHIP:DMG:                         }
-          [1674109884.293523][29548:29550] CHIP:DMG:
-          [1674109884.293527][29548:29550] CHIP:DMG:                         StatusIB =
-          [1674109884.293531][29548:29550] CHIP:DMG:                         {
-          [1674109884.293536][29548:29550] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674109884.293539][29548:29550] CHIP:DMG:                         },
-          [1674109884.293543][29548:29550] CHIP:DMG:
-          [1674109884.293547][29548:29550] CHIP:DMG:                 },
-          [1674109884.293572][29548:29550] CHIP:DMG:
-          [1674109884.293575][29548:29550] CHIP:DMG:                 AttributeStatusIB =
-          [1674109884.293579][29548:29550] CHIP:DMG:                 {
-          [1674109884.293582][29548:29550] CHIP:DMG:                         AttributePathIB =
-          [1674109884.293586][29548:29550] CHIP:DMG:                         {
-          [1674109884.293590][29548:29550] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674109884.293594][29548:29550] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674109884.293598][29548:29550] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674109884.293602][29548:29550] CHIP:DMG:                                 ListIndex = Null,
-          [1674109884.293605][29548:29550] CHIP:DMG:                         }
-          [1674109884.293611][29548:29550] CHIP:DMG:
-          [1674109884.293614][29548:29550] CHIP:DMG:                         StatusIB =
-          [1674109884.293618][29548:29550] CHIP:DMG:                         {
-          [1674109884.293621][29548:29550] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674109884.293625][29548:29550] CHIP:DMG:                         },
-          [1674109884.293629][29548:29550] CHIP:DMG:
-          [1674109884.293632][29548:29550] CHIP:DMG:                 },
-          [1674109884.293640][29548:29550] CHIP:DMG:
-          [1674109884.293643][29548:29550] CHIP:DMG:                 AttributeStatusIB =
-          [1674109884.293647][29548:29550] CHIP:DMG:                 {
-          [1674109884.293650][29548:29550] CHIP:DMG:                         AttributePathIB =
-          [1674109884.293654][29548:29550] CHIP:DMG:                         {
-          [1674109884.293657][29548:29550] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674109884.293661][29548:29550] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674109884.293665][29548:29550] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674109884.293669][29548:29550] CHIP:DMG:                                 ListIndex = Null,
-          [1674109884.293672][29548:29550] CHIP:DMG:                         }
-          [1674109884.293678][29548:29550] CHIP:DMG:
-          [1674109884.293681][29548:29550] CHIP:DMG:                         StatusIB =
-          [1674109884.293685][29548:29550] CHIP:DMG:                         {
-          [1674109884.293689][29548:29550] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674109884.293692][29548:29550] CHIP:DMG:                         },
-          [1674109884.293696][29548:29550] CHIP:DMG:
-          [1674109884.293699][29548:29550] CHIP:DMG:                 },
-          [1674109884.293704][29548:29550] CHIP:DMG:
-          [1674109884.293707][29548:29550] CHIP:DMG:         ],
-          [1674109884.293717][29548:29550] CHIP:DMG:
-          [1674109884.293721][29548:29550] CHIP:DMG:         InteractionModelRevision = 1
-          [1674109884.293724][29548:29550] CHIP:DMG: }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH sends KeySetWrite command with incorrect key"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 2a: TH sends KeySetWrite command with incorrect key"
       cluster: "Group Key Management"
-      endpoint: 0
       command: "KeySetWrite"
       arguments:
           values:
@@ -160,55 +86,8 @@
                         EpochStartTime2: 333,
                     }
 
-    - label: "TH sends KeySetWrite command with incorrect key"
-      verification: |
-          ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": "0x01a3","groupKeySecurityPolicy": 0, "epochKey0":"00000000000000000000000000000001", "epochStartTime0": 111,"epochKey1":"00000000000000000000000000000002", "epochStartTime1": 222,"epochKey2":"00000000000000000000000000000003", "epochStartTime2": 333 }' 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on  TH(chip-tool)  Logs:
-
-          [1674109957.007856][29570:29572] CHIP:DMG: InvokeResponseMessage =
-          [1674109957.007859][29570:29572] CHIP:DMG: {
-          [1674109957.007862][29570:29572] CHIP:DMG:         suppressResponse = false,
-          [1674109957.007865][29570:29572] CHIP:DMG:         InvokeResponseIBs =
-          [1674109957.007872][29570:29572] CHIP:DMG:         [
-          [1674109957.007875][29570:29572] CHIP:DMG:                 InvokeResponseIB =
-          [1674109957.007880][29570:29572] CHIP:DMG:                 {
-          [1674109957.007883][29570:29572] CHIP:DMG:                         CommandStatusIB =
-          [1674109957.007887][29570:29572] CHIP:DMG:                         {
-          [1674109957.007890][29570:29572] CHIP:DMG:                                 CommandPathIB =
-          [1674109957.007894][29570:29572] CHIP:DMG:                                 {
-          [1674109957.007898][29570:29572] CHIP:DMG:                                         EndpointId = 0x0,
-          [1674109957.007901][29570:29572] CHIP:DMG:                                         ClusterId = 0x3f,
-          [1674109957.007905][29570:29572] CHIP:DMG:                                         CommandId = 0x0,
-          [1674109957.007909][29570:29572] CHIP:DMG:                                 },
-          [1674109957.007913][29570:29572] CHIP:DMG:
-          [1674109957.007917][29570:29572] CHIP:DMG:                                 StatusIB =
-          [1674109957.007921][29570:29572] CHIP:DMG:                                 {
-          [1674109957.007924][29570:29572] CHIP:DMG:                                         status = 0x00 (SUCCESS),
-          [1674109957.007927][29570:29572] CHIP:DMG:                                 },
-          [1674109957.007931][29570:29572] CHIP:DMG:
-          [1674109957.007933][29570:29572] CHIP:DMG:                         },
-          [1674109957.007938][29570:29572] CHIP:DMG:
-          [1674109957.007941][29570:29572] CHIP:DMG:                 },
-          [1674109957.007946][29570:29572] CHIP:DMG:
-          [1674109957.007948][29570:29572] CHIP:DMG:         ],
-          [1674109957.007953][29570:29572] CHIP:DMG:
-          [1674109957.007956][29570:29572] CHIP:DMG:         InteractionModelRevision = 1
-          [1674109957.007958][29570:29572] CHIP:DMG: },
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH sends KeySetWrite command with TH key"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 2b: TH sends KeySetWrite command with TH key"
       cluster: "Group Key Management"
-      endpoint: 0
       command: "KeySetWrite"
       arguments:
           values:
@@ -225,121 +104,21 @@
                         EpochStartTime2: 2220002,
                     }
 
-    - label: "TH sends KeySetWrite command with TH key"
-      verification: |
-          ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": "0x01a3","groupKeySecurityPolicy": 0, "epochKey0":"d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1":"d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2":"d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on  TH(chip-tool)  Logs:
-
-          [1674110035.037849][29578:29580] CHIP:DMG: InvokeResponseMessage =
-          [1674110035.037852][29578:29580] CHIP:DMG: {
-          [1674110035.037856][29578:29580] CHIP:DMG:         suppressResponse = false,
-          [1674110035.037859][29578:29580] CHIP:DMG:         InvokeResponseIBs =
-          [1674110035.037864][29578:29580] CHIP:DMG:         [
-          [1674110035.037867][29578:29580] CHIP:DMG:                 InvokeResponseIB =
-          [1674110035.037872][29578:29580] CHIP:DMG:                 {
-          [1674110035.037875][29578:29580] CHIP:DMG:                         CommandStatusIB =
-          [1674110035.037879][29578:29580] CHIP:DMG:                         {
-          [1674110035.037882][29578:29580] CHIP:DMG:                                 CommandPathIB =
-          [1674110035.037886][29578:29580] CHIP:DMG:                                 {
-          [1674110035.037890][29578:29580] CHIP:DMG:                                         EndpointId = 0x0,
-          [1674110035.037893][29578:29580] CHIP:DMG:                                         ClusterId = 0x3f,
-          [1674110035.037897][29578:29580] CHIP:DMG:                                         CommandId = 0x0,
-          [1674110035.037900][29578:29580] CHIP:DMG:                                 },
-          [1674110035.037905][29578:29580] CHIP:DMG:
-          [1674110035.037908][29578:29580] CHIP:DMG:                                 StatusIB =
-          [1674110035.037912][29578:29580] CHIP:DMG:                                 {
-          [1674110035.037916][29578:29580] CHIP:DMG:                                         status = 0x00 (SUCCESS),
-          [1674110035.037920][29578:29580] CHIP:DMG:                                 },
-          [1674110035.037925][29578:29580] CHIP:DMG:
-          [1674110035.037929][29578:29580] CHIP:DMG:                         },
-          [1674110035.037934][29578:29580] CHIP:DMG:
-          [1674110035.037938][29578:29580] CHIP:DMG:                 },
-          [1674110035.037944][29578:29580] CHIP:DMG:
-          [1674110035.037948][29578:29580] CHIP:DMG:         ],
-          [1674110035.037954][29578:29580] CHIP:DMG:
-          [1674110035.037957][29578:29580] CHIP:DMG:         InteractionModelRevision = 1
-          [1674110035.037960][29578:29580] CHIP:DMG: },
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH binds GroupId to GroupKeySet"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 3: TH binds GroupId to GroupKeySet"
       cluster: "Group Key Management"
-      endpoint: 0
       command: "writeAttribute"
       attribute: "GroupKeyMap"
       arguments:
           value: [{ FabricIndex: 1, GroupId: 0x0103, GroupKeySetID: 0x01a3 }]
 
-    - label: "TH binds GroupId to GroupKeySet"
-      verification: |
-          ./chip-tool groupkeymanagement write group-key-map '[{"groupId": "0x0103", "groupKeySetID": "0x01a3", "fabricIndex": 1}]' 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on  TH(chip-tool)  Logs:
-
-          [1674110101.932149][29586:29588] CHIP:DMG: WriteResponseMessage =
-          [1674110101.932152][29586:29588] CHIP:DMG: {
-          [1674110101.932155][29586:29588] CHIP:DMG:         AttributeStatusIBs =
-          [1674110101.932161][29586:29588] CHIP:DMG:         [
-          [1674110101.932164][29586:29588] CHIP:DMG:                 AttributeStatusIB =
-          [1674110101.932169][29586:29588] CHIP:DMG:                 {
-          [1674110101.932173][29586:29588] CHIP:DMG:                         AttributePathIB =
-          [1674110101.932177][29586:29588] CHIP:DMG:                         {
-          [1674110101.932181][29586:29588] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674110101.932185][29586:29588] CHIP:DMG:                                 Cluster = 0x3f,
-          [1674110101.932189][29586:29588] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674110101.932193][29586:29588] CHIP:DMG:                         }
-          [1674110101.932198][29586:29588] CHIP:DMG:
-          [1674110101.932201][29586:29588] CHIP:DMG:                         StatusIB =
-          [1674110101.932206][29586:29588] CHIP:DMG:                         {
-          [1674110101.932210][29586:29588] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674110101.932213][29586:29588] CHIP:DMG:                         },
-          [1674110101.932217][29586:29588] CHIP:DMG:
-          [1674110101.932220][29586:29588] CHIP:DMG:                 },
-          [1674110101.932227][29586:29588] CHIP:DMG:
-          [1674110101.932230][29586:29588] CHIP:DMG:                 AttributeStatusIB =
-          [1674110101.932234][29586:29588] CHIP:DMG:                 {
-          [1674110101.932237][29586:29588] CHIP:DMG:                         AttributePathIB =
-          [1674110101.932240][29586:29588] CHIP:DMG:                         {
-          [1674110101.932244][29586:29588] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674110101.932248][29586:29588] CHIP:DMG:                                 Cluster = 0x3f,
-          [1674110101.932252][29586:29588] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674110101.932256][29586:29588] CHIP:DMG:                                 ListIndex = Null,
-          [1674110101.932259][29586:29588] CHIP:DMG:                         }
-          [1674110101.932264][29586:29588] CHIP:DMG:
-          [1674110101.932267][29586:29588] CHIP:DMG:                         StatusIB =
-          [1674110101.932270][29586:29588] CHIP:DMG:                         {
-          [1674110101.932273][29586:29588] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674110101.932276][29586:29588] CHIP:DMG:                         },
-          [1674110101.932280][29586:29588] CHIP:DMG:
-          [1674110101.932283][29586:29588] CHIP:DMG:                 },
-          [1674110101.932288][29586:29588] CHIP:DMG:
-          [1674110101.932291][29586:29588] CHIP:DMG:         ],
-          [1674110101.932298][29586:29588] CHIP:DMG:
-          [1674110101.932301][29586:29588] CHIP:DMG:         InteractionModelRevision = 1
-          [1674110101.932305][29586:29588] CHIP:DMG: }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH sends RemoveAllGroups command"
+    - label:
+          "Step 4: TH sends RemoveAllGroups command to the DUT on
+          PIXIT.G.ENDPOINT "
+      endpoint: Groups.Endpoint
       command: "RemoveAllGroups"
 
-    - label: "TH sends AddGroup command"
+    - label: "Step 5: TH sends AddGroup command to DUT on PIXIT.G.ENDPOINT"
+      endpoint: Groups.Endpoint
       command: "AddGroup"
       arguments:
           values:
@@ -348,8 +127,9 @@
               - name: GroupName
                 value: "Test Group"
 
-    - label: "TH sends ViewGroup command"
+    - label: "Step 6a: TH sends ViewGroup command to DUT on PIXIT.G.ENDPOINT"
       PICS: G.S.F00
+      endpoint: Groups.Endpoint
       command: "ViewGroup"
       arguments:
           values:
@@ -364,8 +144,9 @@
               - name: GroupName
                 value: "Test Group"
 
-    - label: "TH sends ViewGroup command"
+    - label: "Step 6b: TH sends ViewGroup command to DUT on PIXIT.G.ENDPOINT"
       PICS: "!(G.S.F00)"
+      endpoint: Groups.Endpoint
       command: "ViewGroup"
       arguments:
           values:
@@ -380,10 +161,8 @@
               - name: GroupName
                 value: ""
 
-    - label: "TH sends KeySetRead"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 7: TH sends KeySetRead"
       cluster: "Group Key Management"
-      endpoint: 0
       command: "KeySetRead"
       arguments:
           values:
@@ -404,82 +183,18 @@
                         EpochStartTime2: 2220002,
                     }
 
-    - label: "TH sends KeySetRead"
-      verification: |
-          ./chip-tool groupkeymanagement key-set-read "0x01a3" 1 0
-
-          Verify DUT sends a KeySetReadResponse with the GroupKeySet having the following fields:
-          GroupKeySetID: 0x01a3(Decimal value 419)
-          GroupKeySecurityPolicy: TrustFirst (0)
-          EpochKey0: null
-          EpochStartTime0: 2220000
-          EpochKey1: null
-          EpochStartTime1: 2220001
-          EpochKey2: null
-          EpochStartTime0: 2220002 on TH(chip-tool)  Logs:
-
-          [1674110375.913702][29626:29628] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003F Command=0x0000_0002
-          [1674110375.913742][29626:29628] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Command 0x0000_0002
-          [1674110375.914256][29626:29628] CHIP:TOO:   KeySetReadResponse: {
-          [1674110375.914277][29626:29628] CHIP:TOO:     groupKeySet: {
-          [1674110375.914293][29626:29628] CHIP:TOO:       GroupKeySetID: 419
-          [1674110375.914306][29626:29628] CHIP:TOO:       GroupKeySecurityPolicy: 0
-          [1674110375.914317][29626:29628] CHIP:TOO:       EpochKey0: null
-          [1674110375.914329][29626:29628] CHIP:TOO:       EpochStartTime0: 2220000
-          [1674110375.914339][29626:29628] CHIP:TOO:       EpochKey1: null
-          [1674110375.914350][29626:29628] CHIP:TOO:       EpochStartTime1: 2220001
-          [1674110375.914359][29626:29628] CHIP:TOO:       EpochKey2: null
-          [1674110375.914369][29626:29628] CHIP:TOO:       EpochStartTime2: 2220002
-          [1674110375.914379][29626:29628] CHIP:TOO:      }
-          [1674110375.914390][29626:29628] CHIP:TOO:    }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
     - label:
-          "TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster"
+          "Step 8: TH reads GroupKeyMap Attribute from the GroupKeyManagement
+          cluster"
       cluster: "Group Key Management"
-      PICS: PICS_SDK_CI_ONLY
-      endpoint: 0
       command: "readAttribute"
       attribute: "GroupKeyMap"
       response:
           value: [{ FabricIndex: 1, GroupId: 0x0103, GroupKeySetID: 0x01a3 }]
 
-    - label:
-          "TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster"
-      verification: |
-          ./chip-tool groupkeymanagement read group-key-map 1 0
-
-          Verify GroupKeyMap attribute list containing GroupId: 0x0103(Decimal value 259) and  GroupKeySetId: 0x01a3(Decimal value 419 ) on TH(chip-tool)  Logs:
-
-          [1674110435.952959][29634:29636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0000 DataVersion: 624171954
-          [1674110435.953367][29634:29636] CHIP:TOO:   GroupKeyMap: 1 entries
-          [1674110435.953401][29634:29636] CHIP:TOO:     [1]: {
-          [1674110435.953407][29634:29636] CHIP:TOO:       GroupId: 259
-          [1674110435.953411][29634:29636] CHIP:TOO:       GroupKeySetID: 419
-          [1674110435.953414][29634:29636] CHIP:TOO:       FabricIndex: 1
-          [1674110435.953417][29634:29636] CHIP:TOO:      }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH reads GroupTable attribute"
+    - label: "Step 9a: TH reads GroupTable attribute"
       cluster: "Group Key Management"
-      endpoint: 0
-      PICS: G.S.F00 && PICS_SDK_CI_ONLY
+      PICS: G.S.F00
       command: "readAttribute"
       attribute: "GroupTable"
       response:
@@ -487,244 +202,52 @@
               [
                   {
                       GroupId: 0x0103,
-                      Endpoints: [endpoint],
+                      Endpoints: [Groups.Endpoint],
                       GroupName: "Test Group",
                   },
               ]
 
-    - label: "TH reads GroupTable attribute"
-      verification: |
-          ./chip-tool groupkeymanagement read group-table 1 0
-
-          Verify GroupTable attribute list containing GroupId: 0x0103(Decimal value 259),  Endpoint:0 and  GroupKeySetId: 0x01a3(Decimal value 419 ) on TH(chip-tool)  Logs:
-
-          [1674110549.621751][29686:29688] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 624171954
-          [1674110549.621779][29686:29688] CHIP:TOO:   GroupTable: 1 entries
-          [1674110549.621810][29686:29688] CHIP:TOO:     [1]: {
-          [1674110549.621819][29686:29688] CHIP:TOO:       GroupId: 259
-          [1674110549.621826][29686:29688] CHIP:TOO:       Endpoints: 1 entries
-          [1674110549.621833][29686:29688] CHIP:TOO:         [1]: 0
-          [1674110549.621839][29686:29688] CHIP:TOO:       GroupName: Test Group
-          [1674110549.621845][29686:29688] CHIP:TOO:       FabricIndex: 1
-          [1674110549.621849][29686:29688] CHIP:TOO:      }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP && G.S.F00
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH reads GroupTable attribute"
+    - label: "Step 9b: TH reads GroupTable attribute"
       cluster: "Group Key Management"
-      endpoint: 0
-      PICS: PICS_SDK_CI_ONLY && !G.S.F00
+      PICS: " !G.S.F00 "
       command: "readAttribute"
       attribute: "GroupTable"
       response:
-          value: [{ GroupId: 0x0103, Endpoints: [endpoint], GroupName: "" }]
+          value:
+              [{ GroupId: 0x0103, Endpoints: [Groups.Endpoint], GroupName: "" }]
 
-    - label: "TH reads GroupTable attribute"
-      verification: |
-          If F00(GN) feature is not supporting for GroupTable attribute
-
-          ./chip-tool groupkeymanagement read group-table 1 0
-
-          Verify GroupTable attribute list containing GroupId: 0x0103(Decimal value 259),  Endpoint:0 and  GroupKeySetId: 0x01a3(Decimal value 419 ) on TH(chip-tool)  Logs:
-
-          [1674110549.621751][29686:29688] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 624171954
-          [1674110549.621779][29686:29688] CHIP:TOO:   GroupTable: 1 entries
-          [1674110549.621810][29686:29688] CHIP:TOO:     [1]: {
-          [1674110549.621819][29686:29688] CHIP:TOO:       GroupId: 259
-          [1674110549.621826][29686:29688] CHIP:TOO:       Endpoints: 1 entries
-          [1674110549.621833][29686:29688] CHIP:TOO:         [1]: 0
-          [1674110549.621839][29686:29688] CHIP:TOO:       GroupName: Test Group
-          [1674110549.621845][29686:29688] CHIP:TOO:       FabricIndex: 1
-          [1674110549.621849][29686:29688] CHIP:TOO:      }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP && !G.S.F00
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH removes the GroupKeySet"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 10: TH removes the GroupKeySet"
       cluster: "Group Key Management"
-      endpoint: 0
       command: "KeySetRemove"
       arguments:
           values:
               - name: GroupKeySetID
                 value: 0x01a3
 
-    - label: "TH removes the GroupKeySet"
-      verification: |
-          ./chip-tool groupkeymanagement key-set-remove "0x01a3" 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on TH(chip-tool)  Logs:
-
-          [1674110684.044225][29696:29698] CHIP:DMG: InvokeResponseMessage =
-          [1674110684.044235][29696:29698] CHIP:DMG: {
-          [1674110684.044246][29696:29698] CHIP:DMG:         suppressResponse = false,
-          [1674110684.044256][29696:29698] CHIP:DMG:         InvokeResponseIBs =
-          [1674110684.044277][29696:29698] CHIP:DMG:         [
-          [1674110684.044288][29696:29698] CHIP:DMG:                 InvokeResponseIB =
-          [1674110684.044310][29696:29698] CHIP:DMG:                 {
-          [1674110684.044320][29696:29698] CHIP:DMG:                         CommandStatusIB =
-          [1674110684.044334][29696:29698] CHIP:DMG:                         {
-          [1674110684.044345][29696:29698] CHIP:DMG:                                 CommandPathIB =
-          [1674110684.044358][29696:29698] CHIP:DMG:                                 {
-          [1674110684.044372][29696:29698] CHIP:DMG:                                         EndpointId = 0x0,
-          [1674110684.044385][29696:29698] CHIP:DMG:                                         ClusterId = 0x3f,
-          [1674110684.044397][29696:29698] CHIP:DMG:                                         CommandId = 0x3,
-          [1674110684.044408][29696:29698] CHIP:DMG:                                 },
-          [1674110684.044426][29696:29698] CHIP:DMG:
-          [1674110684.044438][29696:29698] CHIP:DMG:                                 StatusIB =
-          [1674110684.044452][29696:29698] CHIP:DMG:                                 {
-          [1674110684.044465][29696:29698] CHIP:DMG:                                         status = 0x00 (SUCCESS),
-          [1674110684.044476][29696:29698] CHIP:DMG:                                 },
-          [1674110684.044490][29696:29698] CHIP:DMG:
-          [1674110684.044499][29696:29698] CHIP:DMG:                         },
-          [1674110684.044517][29696:29698] CHIP:DMG:
-          [1674110684.044527][29696:29698] CHIP:DMG:                 },
-          [1674110684.044543][29696:29698] CHIP:DMG:
-          [1674110684.044553][29696:29698] CHIP:DMG:         ],
-          [1674110684.044572][29696:29698] CHIP:DMG:
-          [1674110684.044583][29696:29698] CHIP:DMG:         InteractionModelRevision = 1
-          [1674110684.044592][29696:29698] CHIP:DMG: },
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH verifies the corresponding GroupKeyMap entry has been removed"
-      PICS: PICS_SDK_CI_ONLY
+    - label:
+          "Step 11: TH verifies the corresponding GroupKeyMap entry has been
+          removed"
       cluster: "Group Key Management"
-      endpoint: 0
       command: "readAttribute"
       attribute: "GroupKeyMap"
       response:
           value: []
 
-    - label: "TH verifies the corresponding GroupKeyMap entry has been removed"
-      verification: |
-          ./chip-tool groupkeymanagement read group-key-map 1 0
-
-          Verify GroupKeyMap containing empty list on TH(chip-tool)  Logs:
-
-          [1674110744.294550][29707:29709] CHIP:DMG: ReportDataMessage =
-          [1674110744.294570][29707:29709] CHIP:DMG: {
-          [1674110744.294583][29707:29709] CHIP:DMG:         AttributeReportIBs =
-          [1674110744.294611][29707:29709] CHIP:DMG:         [
-          [1674110744.294626][29707:29709] CHIP:DMG:                 AttributeReportIB =
-          [1674110744.294654][29707:29709] CHIP:DMG:                 {
-          [1674110744.294667][29707:29709] CHIP:DMG:                         AttributeDataIB =
-          [1674110744.294686][29707:29709] CHIP:DMG:                         {
-          [1674110744.294703][29707:29709] CHIP:DMG:                                 DataVersion = 0x25341bb2,
-          [1674110744.294719][29707:29709] CHIP:DMG:                                 AttributePathIB =
-          [1674110744.294739][29707:29709] CHIP:DMG:                                 {
-          [1674110744.294756][29707:29709] CHIP:DMG:                                         Endpoint = 0x0,
-          [1674110744.294773][29707:29709] CHIP:DMG:                                         Cluster = 0x3f,
-          [1674110744.294847][29707:29709] CHIP:DMG:                                         Attribute = 0x0000_0000,
-          [1674110744.294864][29707:29709] CHIP:DMG:                                 }
-          [1674110744.294885][29707:29709] CHIP:DMG:
-          [1674110744.294900][29707:29709] CHIP:DMG:                                 Data = [
-          [1674110744.294917][29707:29709] CHIP:DMG:
-          [1674110744.294935][29707:29709] CHIP:DMG:                                 ],
-          [1674110744.294950][29707:29709] CHIP:DMG:                         },
-          [1674110744.294974][29707:29709] CHIP:DMG:
-          [1674110744.294986][29707:29709] CHIP:DMG:                 },
-          [1674110744.295012][29707:29709] CHIP:DMG:
-          [1674110744.295023][29707:29709] CHIP:DMG:         ],
-          [1674110744.295050][29707:29709] CHIP:DMG:
-          [1674110744.295063][29707:29709] CHIP:DMG:         SuppressResponse = true,
-          [1674110744.295079][29707:29709] CHIP:DMG:         InteractionModelRevision = 1
-          [1674110744.295093][29707:29709] CHIP:DMG: }
-          [1674110744.295288][29707:29709] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0000 DataVersion: 624171954
-          [1674110744.295368][29707:29709] CHIP:TOO:   GroupKeyMap: 0 entries
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH cleans up groups using RemoveAllGroups command"
+    - label:
+          "Step 12: TH cleans up groups using RemoveAllGroups command to the DUT
+          on PIXIT.G.ENDPOINT"
+      endpoint: Groups.Endpoint
       command: "RemoveAllGroups"
 
-    - label: "TH verifies the group has been removed in the GroupTable"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 13: TH verifies the group has been removed in the GroupTable"
       cluster: "Group Key Management"
-      endpoint: 0
       command: "readAttribute"
       attribute: "GroupTable"
       response:
           value: []
 
-    - label: "TH verifies the group has been removed in the GroupTable"
-      verification: |
-          ./chip-tool groupkeymanagement read group-table 1 0
-
-          Verify GroupTable containing empty list on TH(chip-tool)  Logs:
-
-          [1674110892.787761][29730:29732] CHIP:DMG: ReportDataMessage =
-          [1674110892.787768][29730:29732] CHIP:DMG: {
-          [1674110892.787772][29730:29732] CHIP:DMG:         AttributeReportIBs =
-          [1674110892.787780][29730:29732] CHIP:DMG:         [
-          [1674110892.787783][29730:29732] CHIP:DMG:                 AttributeReportIB =
-          [1674110892.787789][29730:29732] CHIP:DMG:                 {
-          [1674110892.787792][29730:29732] CHIP:DMG:                         AttributeDataIB =
-          [1674110892.787797][29730:29732] CHIP:DMG:                         {
-          [1674110892.787803][29730:29732] CHIP:DMG:                                 DataVersion = 0x25341bb2,
-          [1674110892.787806][29730:29732] CHIP:DMG:                                 AttributePathIB =
-          [1674110892.787811][29730:29732] CHIP:DMG:                                 {
-          [1674110892.787815][29730:29732] CHIP:DMG:                                         Endpoint = 0x0,
-          [1674110892.787819][29730:29732] CHIP:DMG:                                         Cluster = 0x3f,
-          [1674110892.787825][29730:29732] CHIP:DMG:                                         Attribute = 0x0000_0001,
-          [1674110892.787828][29730:29732] CHIP:DMG:                                 }
-          [1674110892.787834][29730:29732] CHIP:DMG:
-          [1674110892.787840][29730:29732] CHIP:DMG:                                 Data = [
-          [1674110892.787843][29730:29732] CHIP:DMG:
-          [1674110892.787847][29730:29732] CHIP:DMG:                                 ],
-          [1674110892.787850][29730:29732] CHIP:DMG:                         },
-          [1674110892.787855][29730:29732] CHIP:DMG:
-          [1674110892.787858][29730:29732] CHIP:DMG:                 },
-          [1674110892.787863][29730:29732] CHIP:DMG:
-          [1674110892.787865][29730:29732] CHIP:DMG:         ],
-          [1674110892.787871][29730:29732] CHIP:DMG:
-          [1674110892.787875][29730:29732] CHIP:DMG:         SuppressResponse = true,
-          [1674110892.787878][29730:29732] CHIP:DMG:         InteractionModelRevision = 1
-          [1674110892.787881][29730:29732] CHIP:DMG: }
-          [1674110892.787953][29730:29732] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 624171954
-          [1674110892.787973][29730:29732] CHIP:TOO:   GroupTable: 0 entries
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH removes ACL Operate privileges for Group 0x0103"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 14: TH removes ACL Operate privileges for Group 0x0103"
       cluster: "Access Control"
-      endpoint: 0
       command: "writeAttribute"
       attribute: "ACL"
       arguments:
@@ -738,60 +261,3 @@
                       Targets: null,
                   },
               ]
-
-    - label: "TH removes ACL Operate privileges for Group 0x0103"
-      verification: |
-          ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null }]' 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on  TH(chip-tool)  Logs:
-
-          [1674209548.549754][6888:6890] CHIP:DMG: WriteResponseMessage =
-          [1674209548.549758][6888:6890] CHIP:DMG: {
-          [1674209548.549760][6888:6890] CHIP:DMG:         AttributeStatusIBs =
-          [1674209548.549765][6888:6890] CHIP:DMG:         [
-          [1674209548.549768][6888:6890] CHIP:DMG:                 AttributeStatusIB =
-          [1674209548.549772][6888:6890] CHIP:DMG:                 {
-          [1674209548.549775][6888:6890] CHIP:DMG:                         AttributePathIB =
-          [1674209548.549779][6888:6890] CHIP:DMG:                         {
-          [1674209548.549782][6888:6890] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674209548.549786][6888:6890] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674209548.549789][6888:6890] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674209548.549792][6888:6890] CHIP:DMG:                         }
-          [1674209548.549797][6888:6890] CHIP:DMG:
-          [1674209548.549800][6888:6890] CHIP:DMG:                         StatusIB =
-          [1674209548.549804][6888:6890] CHIP:DMG:                         {
-          [1674209548.549807][6888:6890] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674209548.549810][6888:6890] CHIP:DMG:                         },
-          [1674209548.549813][6888:6890] CHIP:DMG:
-          [1674209548.549816][6888:6890] CHIP:DMG:                 },
-          [1674209548.549823][6888:6890] CHIP:DMG:
-          [1674209548.549825][6888:6890] CHIP:DMG:                 AttributeStatusIB =
-          [1674209548.549828][6888:6890] CHIP:DMG:                 {
-          [1674209548.549831][6888:6890] CHIP:DMG:                         AttributePathIB =
-          [1674209548.549836][6888:6890] CHIP:DMG:                         {
-          [1674209548.549839][6888:6890] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674209548.549842][6888:6890] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674209548.549845][6888:6890] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674209548.549849][6888:6890] CHIP:DMG:                                 ListIndex = Null,
-          [1674209548.549852][6888:6890] CHIP:DMG:                         }
-          [1674209548.549856][6888:6890] CHIP:DMG:
-          [1674209548.549859][6888:6890] CHIP:DMG:                         StatusIB =
-          [1674209548.549862][6888:6890] CHIP:DMG:                         {
-          [1674209548.549865][6888:6890] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674209548.549868][6888:6890] CHIP:DMG:                         },
-          [1674209548.549871][6888:6890] CHIP:DMG:
-          [1674209548.549873][6888:6890] CHIP:DMG:                 },
-          [1674209548.549878][6888:6890] CHIP:DMG:
-          [1674209548.549881][6888:6890] CHIP:DMG:         ],
-          [1674209548.549887][6888:6890] CHIP:DMG:
-          [1674209548.549890][6888:6890] CHIP:DMG:         InteractionModelRevision = 1
-          [1674209548.549892][6888:6890] CHIP:DMG: }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
diff --git a/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml b/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml
index 1eed00b..d6fa8b8 100644
--- a/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SC_5_2.yaml
@@ -13,7 +13,7 @@
 # limitations under the License.
 # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
 
-name: 19.1.2. [TC-SC-5.2] Receiving a group message - TH to DUT
+name: 26.1.2. [TC-SC-5.2] Receiving a group message - TH to DUT
 
 PICS:
     - MCORE.ROLE.COMMISSIONEE
@@ -21,11 +21,13 @@
 config:
     nodeId: 0x12344321
     cluster: "Groups"
+    endpoint: 0
+
     # Users should set endpoint value on the command line to PIXIT.G.ENDPOINT
-    endpoint: 1
+    Groups.Endpoint: 1
 
 tests:
-    - label: "Wait for the commissioned device to be retrieved"
+    - label: "Step 0: Wait for the commissioned device to be retrieved"
       cluster: "DelayCommands"
       command: "WaitForCommissionee"
       arguments:
@@ -41,10 +43,8 @@
               - name: "nodeId"
                 saveAs: commissionerNodeId
 
-    - label: "TH adds ACL Operate privileges for Group 0x0103"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 1: TH adds ACL Operate privileges for Group 0x0103"
       cluster: "Access Control"
-      endpoint: 0
       command: "writeAttribute"
       attribute: "ACL"
       arguments:
@@ -66,84 +66,8 @@
                   },
               ]
 
-    - label: "TH adds ACL Operate privileges for Group 0x0103"
-      verification: |
-          ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": ["0x0103"], "targets": null }]' 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on  TH(chip-tool)  Logs:
-
-          [1674197827.380263][1821:1823] CHIP:DMG: WriteResponseMessage =
-          [1674197827.380335][1821:1823] CHIP:DMG: {
-          [1674197827.380364][1821:1823] CHIP:DMG:         AttributeStatusIBs =
-          [1674197827.380405][1821:1823] CHIP:DMG:         [
-          [1674197827.380449][1821:1823] CHIP:DMG:                 AttributeStatusIB =
-          [1674197827.380486][1821:1823] CHIP:DMG:                 {
-          [1674197827.380541][1821:1823] CHIP:DMG:                         AttributePathIB =
-          [1674197827.380582][1821:1823] CHIP:DMG:                         {
-          [1674197827.380635][1821:1823] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674197827.380677][1821:1823] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674197827.380732][1821:1823] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674197827.380784][1821:1823] CHIP:DMG:                         }
-          [1674197827.380829][1821:1823] CHIP:DMG:
-          [1674197827.380878][1821:1823] CHIP:DMG:                         StatusIB =
-          [1674197827.380918][1821:1823] CHIP:DMG:                         {
-          [1674197827.380968][1821:1823] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674197827.381010][1821:1823] CHIP:DMG:                         },
-          [1674197827.381061][1821:1823] CHIP:DMG:
-          [1674197827.381094][1821:1823] CHIP:DMG:                 },
-          [1674197827.381152][1821:1823] CHIP:DMG:
-          [1674197827.381184][1821:1823] CHIP:DMG:                 AttributeStatusIB =
-          [1674197827.381230][1821:1823] CHIP:DMG:                 {
-          [1674197827.381263][1821:1823] CHIP:DMG:                         AttributePathIB =
-          [1674197827.381301][1821:1823] CHIP:DMG:                         {
-          [1674197827.381352][1821:1823] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674197827.381406][1821:1823] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674197827.381449][1821:1823] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674197827.381502][1821:1823] CHIP:DMG:                                 ListIndex = Null,
-          [1674197827.381543][1821:1823] CHIP:DMG:                         }
-          [1674197827.381597][1821:1823] CHIP:DMG:
-          [1674197827.381635][1821:1823] CHIP:DMG:                         StatusIB =
-          [1674197827.381673][1821:1823] CHIP:DMG:                         {
-          [1674197827.381725][1821:1823] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674197827.381763][1821:1823] CHIP:DMG:                         },
-          [1674197827.381814][1821:1823] CHIP:DMG:
-          [1674197827.381846][1821:1823] CHIP:DMG:                 },
-          [1674197827.381910][1821:1823] CHIP:DMG:
-          [1674197827.381942][1821:1823] CHIP:DMG:                 AttributeStatusIB =
-          [1674197827.381988][1821:1823] CHIP:DMG:                 {
-          [1674197827.382021][1821:1823] CHIP:DMG:                         AttributePathIB =
-          [1674197827.382070][1821:1823] CHIP:DMG:                         {
-          [1674197827.382109][1821:1823] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674197827.382161][1821:1823] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674197827.382204][1821:1823] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674197827.382255][1821:1823] CHIP:DMG:                                 ListIndex = Null,
-          [1674197827.382295][1821:1823] CHIP:DMG:                         }
-          [1674197827.382349][1821:1823] CHIP:DMG:
-          [1674197827.382387][1821:1823] CHIP:DMG:                         StatusIB =
-          [1674197827.382436][1821:1823] CHIP:DMG:                         {
-          [1674197827.382476][1821:1823] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674197827.382527][1821:1823] CHIP:DMG:                         },
-          [1674197827.382566][1821:1823] CHIP:DMG:
-          [1674197827.382599][1821:1823] CHIP:DMG:                 },
-          [1674197827.382650][1821:1823] CHIP:DMG:
-          [1674197827.382681][1821:1823] CHIP:DMG:         ],
-          [1674197827.382729][1821:1823] CHIP:DMG:
-          [1674197827.382759][1821:1823] CHIP:DMG:         InteractionModelRevision = 1
-          [1674197827.382789][1821:1823] CHIP:DMG: }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH sends KeySetWrite command with TH key"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 2: TH sends KeySetWrite command with TH key"
       cluster: "Group Key Management"
-      endpoint: 0
       command: "KeySetWrite"
       arguments:
           values:
@@ -160,125 +84,25 @@
                         EpochStartTime2: 2220002,
                     }
 
-    - label: "TH sends KeySetWrite command with TH key"
-      verification: |
-          ./chip-tool groupkeymanagement key-set-write '{"groupKeySetID": "0x01a3","groupKeySecurityPolicy": 0, "epochKey0":"d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1":"d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2":"d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on  TH(chip-tool)  Logs:
-
-          [1674198053.466794][1826:1829] CHIP:DMG: InvokeResponseMessage =
-          [1674198053.466849][1826:1829] CHIP:DMG: {
-          [1674198053.466903][1826:1829] CHIP:DMG:         suppressResponse = false,
-          [1674198053.466962][1826:1829] CHIP:DMG:         InvokeResponseIBs =
-          [1674198053.467036][1826:1829] CHIP:DMG:         [
-          [1674198053.467093][1826:1829] CHIP:DMG:                 InvokeResponseIB =
-          [1674198053.467170][1826:1829] CHIP:DMG:                 {
-          [1674198053.467231][1826:1829] CHIP:DMG:                         CommandStatusIB =
-          [1674198053.467304][1826:1829] CHIP:DMG:                         {
-          [1674198053.467371][1826:1829] CHIP:DMG:                                 CommandPathIB =
-          [1674198053.467449][1826:1829] CHIP:DMG:                                 {
-          [1674198053.467525][1826:1829] CHIP:DMG:                                         EndpointId = 0x0,
-          [1674198053.467606][1826:1829] CHIP:DMG:                                         ClusterId = 0x3f,
-          [1674198053.467691][1826:1829] CHIP:DMG:                                         CommandId = 0x0,
-          [1674198053.467769][1826:1829] CHIP:DMG:                                 },
-          [1674198053.467854][1826:1829] CHIP:DMG:
-          [1674198053.467922][1826:1829] CHIP:DMG:                                 StatusIB =
-          [1674198053.467999][1826:1829] CHIP:DMG:                                 {
-          [1674198053.468076][1826:1829] CHIP:DMG:                                         status = 0x00 (SUCCESS),
-          [1674198053.468154][1826:1829] CHIP:DMG:                                 },
-          [1674198053.468231][1826:1829] CHIP:DMG:
-          [1674198053.468338][1826:1829] CHIP:DMG:                         },
-          [1674198053.468419][1826:1829] CHIP:DMG:
-          [1674198053.468479][1826:1829] CHIP:DMG:                 },
-          [1674198053.468550][1826:1829] CHIP:DMG:
-          [1674198053.468606][1826:1829] CHIP:DMG:         ],
-          [1674198053.468676][1826:1829] CHIP:DMG:
-          [1674198053.468731][1826:1829] CHIP:DMG:         InteractionModelRevision = 1
-          [1674198053.468788][1826:1829] CHIP:DMG: },
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH binds GroupId to GroupKeySet"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 3: TH binds GroupId to GroupKeySet"
       cluster: "Group Key Management"
-      endpoint: 0
       command: "writeAttribute"
       attribute: "GroupKeyMap"
       arguments:
           value:
               [
-                  { FabricIndex: 1, GroupId: 0x0101, GroupKeySetID: 0x01a3 },
                   { FabricIndex: 1, GroupId: 0x0103, GroupKeySetID: 0x01a3 },
+                  { FabricIndex: 1, GroupId: 0x0101, GroupKeySetID: 0x01a3 },
               ]
 
-    - label: "TH binds GroupId to GroupKeySet"
-      verification: |
-          ./chip-tool groupkeymanagement write group-key-map '[{"groupId": "0x0103", "groupKeySetID": "0x01a3", "fabricIndex": 1},{"groupId": "0x0101", "groupKeySetID": "0x01a3", "fabricIndex": 1}]' 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on  TH(chip-tool)  Logs:
-
-          [1674198154.629775][1837:1839] CHIP:DMG: WriteResponseMessage =
-          [1674198154.629832][1837:1839] CHIP:DMG: {
-          [1674198154.629908][1837:1839] CHIP:DMG:         AttributeStatusIBs =
-          [1674198154.629983][1837:1839] CHIP:DMG:         [
-          [1674198154.630064][1837:1839] CHIP:DMG:                 AttributeStatusIB =
-          [1674198154.630105][1837:1839] CHIP:DMG:                 {
-          [1674198154.630142][1837:1839] CHIP:DMG:                         AttributePathIB =
-          [1674198154.630178][1837:1839] CHIP:DMG:                         {
-          [1674198154.630290][1837:1839] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674198154.630325][1837:1839] CHIP:DMG:                                 Cluster = 0x3f,
-          [1674198154.630358][1837:1839] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674198154.630400][1837:1839] CHIP:DMG:                         }
-          [1674198154.630437][1837:1839] CHIP:DMG:
-          [1674198154.630476][1837:1839] CHIP:DMG:                         StatusIB =
-          [1674198154.630508][1837:1839] CHIP:DMG:                         {
-          [1674198154.630549][1837:1839] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674198154.630581][1837:1839] CHIP:DMG:                         },
-          [1674198154.630621][1837:1839] CHIP:DMG:
-          [1674198154.630648][1837:1839] CHIP:DMG:                 },
-          [1674198154.630695][1837:1839] CHIP:DMG:
-          [1674198154.630721][1837:1839] CHIP:DMG:                 AttributeStatusIB =
-          [1674198154.630748][1837:1839] CHIP:DMG:                 {
-          [1674198154.630784][1837:1839] CHIP:DMG:                         AttributePathIB =
-          [1674198154.630814][1837:1839] CHIP:DMG:                         {
-          [1674198154.630854][1837:1839] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674198154.630887][1837:1839] CHIP:DMG:                                 Cluster = 0x3f,
-          [1674198154.630929][1837:1839] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674198154.630964][1837:1839] CHIP:DMG:                                 ListIndex = Null,
-          [1674198154.631004][1837:1839] CHIP:DMG:                         }
-          [1674198154.631039][1837:1839] CHIP:DMG:
-          [1674198154.631077][1837:1839] CHIP:DMG:                         StatusIB =
-          [1674198154.631108][1837:1839] CHIP:DMG:                         {
-          [1674198154.631148][1837:1839] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674198154.631179][1837:1839] CHIP:DMG:                         },
-          [1674198154.631208][1837:1839] CHIP:DMG:
-          [1674198154.631244][1837:1839] CHIP:DMG:                 },
-          [1674198154.631275][1837:1839] CHIP:DMG:
-          [1674198154.631310][1837:1839] CHIP:DMG:         ],
-          [1674198154.631345][1837:1839] CHIP:DMG:
-          [1674198154.631378][1837:1839] CHIP:DMG:         InteractionModelRevision = 1
-          [1674198154.631403][1837:1839] CHIP:DMG: }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH sends RemoveAllGroups command"
+    - label:
+          "Step 4: TH sends RemoveAllGroups command to the DUT on
+          PIXIT.G.ENDPOINT"
+      endpoint: Groups.Endpoint
       command: "RemoveAllGroups"
 
-    - label: "TH sends AddGroup command"
+    - label: "Step 5: TH sends AddGroup command to the DUT on PIXIT.G.ENDPOINT"
+      endpoint: Groups.Endpoint
       command: "AddGroup"
       arguments:
           values:
@@ -294,7 +118,8 @@
                 value: 0x0103
 
     - label:
-          "TH sends AddGroup command again but using group messaging (0x0103)"
+          "Step 6: TH sends AddGroup command again but using group messaging
+          (0x0103)"
       groupId: 0x0103
       command: "AddGroup"
       arguments:
@@ -325,8 +150,9 @@
               - name: "expectedValue"
                 value: "y"
 
-    - label: "TH sends ViewGroup command"
+    - label: "Step 7: TH sends ViewGroup command on Endpoint PIXIT.G.ENDPOINT "
       PICS: G.S.F00
+      endpoint: Groups.Endpoint
       command: "ViewGroup"
       arguments:
           values:
@@ -341,8 +167,9 @@
               - name: GroupName
                 value: "Test Group 0101"
 
-    - label: "TH sends ViewGroup command"
+    - label: "Step 8: TH sends ViewGroup command on Endpoint PIXIT.G.ENDPOINT "
       PICS: "!(G.S.F00)"
+      endpoint: Groups.Endpoint
       command: "ViewGroup"
       arguments:
           values:
@@ -357,68 +184,22 @@
               - name: GroupName
                 value: ""
 
-    - label: "TH removes the GroupKeySet"
+    - label: "Step 9: TH removes the GroupKeySet"
       cluster: "Group Key Management"
-      PICS: PICS_SDK_CI_ONLY
-      endpoint: 0
       command: "KeySetRemove"
       arguments:
           values:
               - name: GroupKeySetID
                 value: 0x01a3
 
-    - label: "TH removes the GroupKeySet"
-      verification: |
-          ./chip-tool groupkeymanagement key-set-remove "0x01a3" 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on TH(chip-tool)  Logs:
-
-          [1674199244.259870][1870:1872] CHIP:DMG: InvokeResponseMessage =
-          [1674199244.259895][1870:1872] CHIP:DMG: {
-          [1674199244.259918][1870:1872] CHIP:DMG:         suppressResponse = false,
-          [1674199244.259943][1870:1872] CHIP:DMG:         InvokeResponseIBs =
-          [1674199244.259975][1870:1872] CHIP:DMG:         [
-          [1674199244.259999][1870:1872] CHIP:DMG:                 InvokeResponseIB =
-          [1674199244.260035][1870:1872] CHIP:DMG:                 {
-          [1674199244.260061][1870:1872] CHIP:DMG:                         CommandStatusIB =
-          [1674199244.260093][1870:1872] CHIP:DMG:                         {
-          [1674199244.260120][1870:1872] CHIP:DMG:                                 CommandPathIB =
-          [1674199244.260154][1870:1872] CHIP:DMG:                                 {
-          [1674199244.260187][1870:1872] CHIP:DMG:                                         EndpointId = 0x0,
-          [1674199244.260222][1870:1872] CHIP:DMG:                                         ClusterId = 0x3f,
-          [1674199244.260257][1870:1872] CHIP:DMG:                                         CommandId = 0x3,
-          [1674199244.260305][1870:1872] CHIP:DMG:                                 },
-          [1674199244.260344][1870:1872] CHIP:DMG:
-          [1674199244.260373][1870:1872] CHIP:DMG:                                 StatusIB =
-          [1674199244.260406][1870:1872] CHIP:DMG:                                 {
-          [1674199244.260443][1870:1872] CHIP:DMG:                                         status = 0x00 (SUCCESS),
-          [1674199244.260476][1870:1872] CHIP:DMG:                                 },
-          [1674199244.260507][1870:1872] CHIP:DMG:
-          [1674199244.260536][1870:1872] CHIP:DMG:                         },
-          [1674199244.260569][1870:1872] CHIP:DMG:
-          [1674199244.260595][1870:1872] CHIP:DMG:                 },
-          [1674199244.260625][1870:1872] CHIP:DMG:
-          [1674199244.260650][1870:1872] CHIP:DMG:         ],
-          [1674199244.260680][1870:1872] CHIP:DMG:
-          [1674199244.260704][1870:1872] CHIP:DMG:         InteractionModelRevision = 1
-          [1674199244.260728][1870:1872] CHIP:DMG: },
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
-
-    - label: "TH cleans up groups using RemoveAllGroups command"
+    - label:
+          "Step 10: TH cleans up groups using RemoveAllGroups command to the DUT
+          on PIXIT.G.ENDPOINT"
+      endpoint: Groups.Endpoint
       command: "RemoveAllGroups"
 
-    - label: "TH removes ACL Operate privileges for Group 0x0103"
-      PICS: PICS_SDK_CI_ONLY
+    - label: "Step 11: TH removes ACL Operate privileges for Group 0x0103"
       cluster: "Access Control"
-      endpoint: 0
       command: "writeAttribute"
       attribute: "ACL"
       arguments:
@@ -432,60 +213,3 @@
                       Targets: null,
                   },
               ]
-
-    - label: "TH removes ACL Operate privileges for Group 0x0103"
-      verification: |
-          ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null }]' 1 0
-
-          Verify DUT sends SUCCESS(0x00) response on TH(chip-tool)  Logs:
-
-          [1674209548.549754][6888:6890] CHIP:DMG: WriteResponseMessage =
-          [1674209548.549758][6888:6890] CHIP:DMG: {
-          [1674209548.549760][6888:6890] CHIP:DMG:         AttributeStatusIBs =
-          [1674209548.549765][6888:6890] CHIP:DMG:         [
-          [1674209548.549768][6888:6890] CHIP:DMG:                 AttributeStatusIB =
-          [1674209548.549772][6888:6890] CHIP:DMG:                 {
-          [1674209548.549775][6888:6890] CHIP:DMG:                         AttributePathIB =
-          [1674209548.549779][6888:6890] CHIP:DMG:                         {
-          [1674209548.549782][6888:6890] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674209548.549786][6888:6890] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674209548.549789][6888:6890] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674209548.549792][6888:6890] CHIP:DMG:                         }
-          [1674209548.549797][6888:6890] CHIP:DMG:
-          [1674209548.549800][6888:6890] CHIP:DMG:                         StatusIB =
-          [1674209548.549804][6888:6890] CHIP:DMG:                         {
-          [1674209548.549807][6888:6890] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674209548.549810][6888:6890] CHIP:DMG:                         },
-          [1674209548.549813][6888:6890] CHIP:DMG:
-          [1674209548.549816][6888:6890] CHIP:DMG:                 },
-          [1674209548.549823][6888:6890] CHIP:DMG:
-          [1674209548.549825][6888:6890] CHIP:DMG:                 AttributeStatusIB =
-          [1674209548.549828][6888:6890] CHIP:DMG:                 {
-          [1674209548.549831][6888:6890] CHIP:DMG:                         AttributePathIB =
-          [1674209548.549836][6888:6890] CHIP:DMG:                         {
-          [1674209548.549839][6888:6890] CHIP:DMG:                                 Endpoint = 0x0,
-          [1674209548.549842][6888:6890] CHIP:DMG:                                 Cluster = 0x1f,
-          [1674209548.549845][6888:6890] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1674209548.549849][6888:6890] CHIP:DMG:                                 ListIndex = Null,
-          [1674209548.549852][6888:6890] CHIP:DMG:                         }
-          [1674209548.549856][6888:6890] CHIP:DMG:
-          [1674209548.549859][6888:6890] CHIP:DMG:                         StatusIB =
-          [1674209548.549862][6888:6890] CHIP:DMG:                         {
-          [1674209548.549865][6888:6890] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1674209548.549868][6888:6890] CHIP:DMG:                         },
-          [1674209548.549871][6888:6890] CHIP:DMG:
-          [1674209548.549873][6888:6890] CHIP:DMG:                 },
-          [1674209548.549878][6888:6890] CHIP:DMG:
-          [1674209548.549881][6888:6890] CHIP:DMG:         ],
-          [1674209548.549887][6888:6890] CHIP:DMG:
-          [1674209548.549890][6888:6890] CHIP:DMG:         InteractionModelRevision = 1
-          [1674209548.549892][6888:6890] CHIP:DMG: }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_SKIP_SAMPLE_APP
-      arguments:
-          values:
-              - name: "message"
-                value: "Enter 'y' after success"
-              - name: "expectedValue"
-                value: "y"
diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json
index 71a6406..33909c2 100644
--- a/src/app/tests/suites/ciTests.json
+++ b/src/app/tests/suites/ciTests.json
@@ -3,7 +3,6 @@
         "TestAccessControlCluster",
         "Test_TC_ACL_1_1",
         "Test_TC_ACL_2_1",
-        "Test_TC_ACL_2_2",
         "Test_TC_ACL_2_3",
         "Test_TC_ACL_2_4",
         "Test_TC_ACL_2_7",
@@ -127,8 +126,6 @@
         "Test_TC_APPLAUNCHER_3_5",
         "Test_TC_APPLAUNCHER_3_6",
         "Test_TC_APPLAUNCHER_3_7",
-        "Test_TC_APPLAUNCHER_3_8",
-        "Test_TC_APPLAUNCHER_3_9",
         "Test_TC_MEDIAINPUT_3_10",
         "Test_TC_MEDIAINPUT_3_11",
         "Test_TC_MEDIAINPUT_3_12",
@@ -175,7 +172,7 @@
     ],
     "PowerSourceConfiguration": ["Test_TC_PSCFG_1_1", "Test_TC_PSCFG_2_1"],
     "RelativeHumidityMeasurement": ["Test_TC_RH_1_1", "Test_TC_RH_2_1"],
-    "SecureChannel": ["Test_TC_SC_5_1", "Test_TC_SC_5_2"],
+    "SecureChannel": [],
     "Switch": ["Test_TC_SWTCH_1_1", "Test_TC_SWTCH_2_1"],
     "TemperatureMeasurement": ["Test_TC_TMP_1_1", "Test_TC_TMP_2_1"],
     "Thermostat": ["Test_TC_TSTAT_1_1", "Test_TC_TSTAT_2_1"],
diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json
index 5fd2b51..1d420ee1 100644
--- a/src/app/tests/suites/manualTests.json
+++ b/src/app/tests/suites/manualTests.json
@@ -65,7 +65,6 @@
         "Test_TC_DA_1_6"
     ],
     "DeviceManagement": [
-        "Test_TC_BINFO_2_2",
         "Test_TC_BINFO_2_4",
         "Test_TC_OPCREDS_3_1",
         "Test_TC_OPCREDS_3_2",
diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h
index feda117..1c16f25 100644
--- a/zzz_generated/chip-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h
@@ -38,7 +38,6 @@
         printf("TestAccessControlCluster\n");
         printf("Test_TC_ACL_1_1\n");
         printf("Test_TC_ACL_2_1\n");
-        printf("Test_TC_ACL_2_2\n");
         printf("Test_TC_ACL_2_3\n");
         printf("Test_TC_ACL_2_4\n");
         printf("Test_TC_ACL_2_7\n");
@@ -162,8 +161,6 @@
         printf("Test_TC_APPLAUNCHER_3_5\n");
         printf("Test_TC_APPLAUNCHER_3_6\n");
         printf("Test_TC_APPLAUNCHER_3_7\n");
-        printf("Test_TC_APPLAUNCHER_3_8\n");
-        printf("Test_TC_APPLAUNCHER_3_9\n");
         printf("Test_TC_MEDIAINPUT_3_10\n");
         printf("Test_TC_MEDIAINPUT_3_11\n");
         printf("Test_TC_MEDIAINPUT_3_12\n");
@@ -208,8 +205,6 @@
         printf("Test_TC_PSCFG_2_1\n");
         printf("Test_TC_RH_1_1\n");
         printf("Test_TC_RH_2_1\n");
-        printf("Test_TC_SC_5_1\n");
-        printf("Test_TC_SC_5_2\n");
         printf("Test_TC_SWTCH_1_1\n");
         printf("Test_TC_SWTCH_2_1\n");
         printf("Test_TC_TMP_1_1\n");
@@ -408,7 +403,6 @@
         printf("Test_TC_DA_1_4\n");
         printf("Test_TC_DA_1_5\n");
         printf("Test_TC_DA_1_6\n");
-        printf("Test_TC_BINFO_2_2\n");
         printf("Test_TC_BINFO_2_4\n");
         printf("Test_TC_OPCREDS_3_1\n");
         printf("Test_TC_OPCREDS_3_2\n");
@@ -2514,102 +2508,6 @@
     }
 };
 
-class Test_TC_ACL_2_2Suite : public TestCommand
-{
-public:
-    Test_TC_ACL_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_ACL_2_2", 3, credsIssuerConfig)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-
-    ~Test_TC_ACL_2_2Suite() {}
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
-
-    //
-    // Tests methods
-    //
-
-    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
-    {
-        bool shouldContinue = false;
-
-        switch (mTestIndex - 1)
-        {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::DataModel::DecodableList<chip::ClusterId> value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
-                VerifyOrReturn(CheckConstraintContains("value", value, 31UL));
-            }
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        default:
-            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
-        }
-
-        if (shouldContinue)
-        {
-            ContinueOnChipMainThread(CHIP_NO_ERROR);
-        }
-    }
-
-    CHIP_ERROR DoTestStep(uint16_t testIndex) override
-    {
-        using namespace chip::app::Clusters;
-        switch (testIndex)
-        {
-        case 0: {
-            LogStep(0, "Wait for the commissioned device to be retrieved");
-            ListFreer listFreer;
-            chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-            value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-            return WaitForCommissionee(kIdentityAlpha, value);
-        }
-        case 1: {
-            LogStep(1, "TH1 reads DUT Descriptor cluster ServerList attribute from Endpoint 0");
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), Descriptor::Id, Descriptor::Attributes::ServerList::Id, true,
-                                 chip::NullOptional);
-        }
-        case 2: {
-            LogStep(2, "TH1 reads DUT Descriptor cluster ServerList attribute from every Endpoint except 0");
-            VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message =
-                chip::Span<const char>("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        }
-        return CHIP_NO_ERROR;
-    }
-};
-
 class Test_TC_ACL_2_3Suite : public TestCommand
 {
 public:
@@ -47522,225 +47420,6 @@
     }
 };
 
-class Test_TC_APPLAUNCHER_3_8Suite : public TestCommand
-{
-public:
-    Test_TC_APPLAUNCHER_3_8Suite(CredentialIssuerCommands * credsIssuerConfig) :
-        TestCommand("Test_TC_APPLAUNCHER_3_8", 3, credsIssuerConfig)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("catalogVendorId", 0, UINT16_MAX, &mCatalogVendorId);
-        AddArgument("applicationId", &mApplicationId);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-
-    ~Test_TC_APPLAUNCHER_3_8Suite() {}
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mCatalogVendorId;
-    chip::Optional<chip::CharSpan> mApplicationId;
-    chip::Optional<uint16_t> mTimeout;
-
-    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
-
-    //
-    // Tests methods
-    //
-
-    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
-    {
-        bool shouldContinue = false;
-
-        switch (mTestIndex - 1)
-        {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value.status, 0U));
-            }
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        default:
-            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
-        }
-
-        if (shouldContinue)
-        {
-            ContinueOnChipMainThread(CHIP_NO_ERROR);
-        }
-    }
-
-    CHIP_ERROR DoTestStep(uint16_t testIndex) override
-    {
-        using namespace chip::app::Clusters;
-        switch (testIndex)
-        {
-        case 0: {
-            LogStep(0, "Wait for the commissioned device to be retrieved");
-            ListFreer listFreer;
-            chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-            value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-            return WaitForCommissionee(kIdentityAlpha, value);
-        }
-        case 1: {
-            LogStep(1, "Stop an app with the provided application ID");
-            VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.C01.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::ApplicationLauncher::Commands::StopApp::Type value;
-            value.application.Emplace();
-
-            value.application.Value().catalogVendorID = mCatalogVendorId.HasValue() ? mCatalogVendorId.Value() : 123U;
-            value.application.Value().applicationID =
-                mApplicationId.HasValue() ? mApplicationId.Value() : chip::Span<const char>("exampleid", 9);
-
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Commands::StopApp::Id,
-                               value, chip::NullOptional
-
-            );
-        }
-        case 2: {
-            LogStep(2, "Reads the Status attribute");
-            VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Please enter 'y' after successgarbage: not in length on purpose", 30);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        }
-        return CHIP_NO_ERROR;
-    }
-};
-
-class Test_TC_APPLAUNCHER_3_9Suite : public TestCommand
-{
-public:
-    Test_TC_APPLAUNCHER_3_9Suite(CredentialIssuerCommands * credsIssuerConfig) :
-        TestCommand("Test_TC_APPLAUNCHER_3_9", 3, credsIssuerConfig)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("catalogVendorId", 0, UINT16_MAX, &mCatalogVendorId);
-        AddArgument("applicationId", &mApplicationId);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-
-    ~Test_TC_APPLAUNCHER_3_9Suite() {}
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mCatalogVendorId;
-    chip::Optional<chip::CharSpan> mApplicationId;
-    chip::Optional<uint16_t> mTimeout;
-
-    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
-
-    //
-    // Tests methods
-    //
-
-    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
-    {
-        bool shouldContinue = false;
-
-        switch (mTestIndex - 1)
-        {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-            }
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        default:
-            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
-        }
-
-        if (shouldContinue)
-        {
-            ContinueOnChipMainThread(CHIP_NO_ERROR);
-        }
-    }
-
-    CHIP_ERROR DoTestStep(uint16_t testIndex) override
-    {
-        using namespace chip::app::Clusters;
-        switch (testIndex)
-        {
-        case 0: {
-            LogStep(0, "Wait for the commissioned device to be retrieved");
-            ListFreer listFreer;
-            chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-            value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-            return WaitForCommissionee(kIdentityAlpha, value);
-        }
-        case 1: {
-            LogStep(1, "TH sends HideApp command to DUT");
-            VerifyOrDo(!ShouldSkip("APPLAUNCHER.S.C02.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::ApplicationLauncher::Commands::HideApp::Type value;
-            value.application.Emplace();
-
-            value.application.Value().catalogVendorID = mCatalogVendorId.HasValue() ? mCatalogVendorId.Value() : 123U;
-            value.application.Value().applicationID =
-                mApplicationId.HasValue() ? mApplicationId.Value() : chip::Span<const char>("exampleid", 9);
-
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), ApplicationLauncher::Id, ApplicationLauncher::Commands::HideApp::Id,
-                               value, chip::NullOptional
-
-            );
-        }
-        case 2: {
-            LogStep(2, "Reads the Status attribute");
-            VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        }
-        return CHIP_NO_ERROR;
-    }
-};
-
 class Test_TC_MEDIAINPUT_3_10Suite : public TestCommand
 {
 public:
@@ -58136,1145 +57815,6 @@
     }
 };
 
-class Test_TC_SC_5_1Suite : public TestCommand
-{
-public:
-    Test_TC_SC_5_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_5_1", 31, credsIssuerConfig)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-
-    ~Test_TC_SC_5_1Suite() {}
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    chip::NodeId commissionerNodeId;
-
-    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
-
-    //
-    // Tests methods
-    //
-
-    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
-    {
-        bool shouldContinue = false;
-
-        switch (mTestIndex - 1)
-        {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                commissionerNodeId = value.nodeId;
-            }
-            shouldContinue = true;
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 3:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 4:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 5:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 6:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 7:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 8:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 9:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 10:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 11:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-            }
-            break;
-        case 12:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value.status, 0U));
-                VerifyOrReturn(CheckValue("groupID", value.groupID, 259U));
-                VerifyOrReturn(CheckValueAsString("groupName", value.groupName, chip::CharSpan("Test Group", 10)));
-            }
-            break;
-        case 13:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value.status, 0U));
-                VerifyOrReturn(CheckValue("groupID", value.groupID, 259U));
-                VerifyOrReturn(CheckValueAsString("groupName", value.groupName, chip::CharSpan("", 0)));
-            }
-            break;
-        case 14:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("groupKeySet.groupKeySetID", value.groupKeySet.groupKeySetID, 419U));
-                VerifyOrReturn(CheckValue("groupKeySet.groupKeySecurityPolicy", value.groupKeySet.groupKeySecurityPolicy, 0U));
-                VerifyOrReturn(CheckValueNull("groupKeySet.epochKey0", value.groupKeySet.epochKey0));
-                VerifyOrReturn(CheckValueNonNull("groupKeySet.epochStartTime0", value.groupKeySet.epochStartTime0));
-                VerifyOrReturn(
-                    CheckValue("groupKeySet.epochStartTime0.Value()", value.groupKeySet.epochStartTime0.Value(), 2220000ULL));
-                VerifyOrReturn(CheckValueNull("groupKeySet.epochKey1", value.groupKeySet.epochKey1));
-                VerifyOrReturn(CheckValueNonNull("groupKeySet.epochStartTime1", value.groupKeySet.epochStartTime1));
-                VerifyOrReturn(
-                    CheckValue("groupKeySet.epochStartTime1.Value()", value.groupKeySet.epochStartTime1.Value(), 2220001ULL));
-                VerifyOrReturn(CheckValueNull("groupKeySet.epochKey2", value.groupKeySet.epochKey2));
-                VerifyOrReturn(CheckValueNonNull("groupKeySet.epochStartTime2", value.groupKeySet.epochStartTime2));
-                VerifyOrReturn(
-                    CheckValue("groupKeySet.epochStartTime2.Value()", value.groupKeySet.epochStartTime2.Value(), 2220002ULL));
-            }
-            break;
-        case 15:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 16:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::DataModel::DecodableList<
-                    chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType>
-                    value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                {
-                    auto iter_0 = value.begin();
-                    VerifyOrReturn(CheckNextListItemDecodes<decltype(value)>("groupKeyMap", iter_0, 0));
-                    VerifyOrReturn(CheckValue("groupKeyMap[0].groupId", iter_0.GetValue().groupId, 259U));
-                    VerifyOrReturn(CheckValue("groupKeyMap[0].groupKeySetID", iter_0.GetValue().groupKeySetID, 419U));
-                    VerifyOrReturn(CheckValue("groupKeyMap[0].fabricIndex", iter_0.GetValue().fabricIndex, 1U));
-                    VerifyOrReturn(CheckNoMoreListItems<decltype(value)>("groupKeyMap", iter_0, 1));
-                }
-            }
-            break;
-        case 17:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 18:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::DataModel::DecodableList<
-                    chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType>
-                    value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                {
-                    auto iter_0 = value.begin();
-                    VerifyOrReturn(CheckNextListItemDecodes<decltype(value)>("groupTable", iter_0, 0));
-                    VerifyOrReturn(CheckValue("groupTable[0].groupId", iter_0.GetValue().groupId, 259U));
-                    {
-                        auto iter_2 = iter_0.GetValue().endpoints.begin();
-                        VerifyOrReturn(
-                            CheckNextListItemDecodes<decltype(iter_0.GetValue().endpoints)>("groupTable[0].endpoints", iter_2, 0));
-                        VerifyOrReturn(CheckValue("groupTable[0].endpoints[0]", iter_2.GetValue(),
-                                                  mEndpoint.HasValue() ? mEndpoint.Value() : 1U));
-                        VerifyOrReturn(
-                            CheckNoMoreListItems<decltype(iter_0.GetValue().endpoints)>("groupTable[0].endpoints", iter_2, 1));
-                    }
-                    VerifyOrReturn(CheckValuePresent("groupTable[0].groupName", iter_0.GetValue().groupName));
-                    VerifyOrReturn(CheckValueAsString("groupTable[0].groupName.Value()", iter_0.GetValue().groupName.Value(),
-                                                      chip::CharSpan("Test Group", 10)));
-                    VerifyOrReturn(CheckNoMoreListItems<decltype(value)>("groupTable", iter_0, 1));
-                }
-            }
-            break;
-        case 19:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 20:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::DataModel::DecodableList<
-                    chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType>
-                    value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                {
-                    auto iter_0 = value.begin();
-                    VerifyOrReturn(CheckNextListItemDecodes<decltype(value)>("groupTable", iter_0, 0));
-                    VerifyOrReturn(CheckValue("groupTable[0].groupId", iter_0.GetValue().groupId, 259U));
-                    {
-                        auto iter_2 = iter_0.GetValue().endpoints.begin();
-                        VerifyOrReturn(
-                            CheckNextListItemDecodes<decltype(iter_0.GetValue().endpoints)>("groupTable[0].endpoints", iter_2, 0));
-                        VerifyOrReturn(CheckValue("groupTable[0].endpoints[0]", iter_2.GetValue(),
-                                                  mEndpoint.HasValue() ? mEndpoint.Value() : 1U));
-                        VerifyOrReturn(
-                            CheckNoMoreListItems<decltype(iter_0.GetValue().endpoints)>("groupTable[0].endpoints", iter_2, 1));
-                    }
-                    VerifyOrReturn(CheckValuePresent("groupTable[0].groupName", iter_0.GetValue().groupName));
-                    VerifyOrReturn(CheckValueAsString("groupTable[0].groupName.Value()", iter_0.GetValue().groupName.Value(),
-                                                      chip::CharSpan("", 0)));
-                    VerifyOrReturn(CheckNoMoreListItems<decltype(value)>("groupTable", iter_0, 1));
-                }
-            }
-            break;
-        case 21:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 22:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 23:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 24:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::DataModel::DecodableList<
-                    chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType>
-                    value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                {
-                    auto iter_0 = value.begin();
-                    VerifyOrReturn(CheckNoMoreListItems<decltype(value)>("groupKeyMap", iter_0, 0));
-                }
-            }
-            break;
-        case 25:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 26:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 27:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::DataModel::DecodableList<
-                    chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType>
-                    value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                {
-                    auto iter_0 = value.begin();
-                    VerifyOrReturn(CheckNoMoreListItems<decltype(value)>("groupTable", iter_0, 0));
-                }
-            }
-            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));
-            break;
-        case 30:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        default:
-            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
-        }
-
-        if (shouldContinue)
-        {
-            ContinueOnChipMainThread(CHIP_NO_ERROR);
-        }
-    }
-
-    CHIP_ERROR DoTestStep(uint16_t testIndex) override
-    {
-        using namespace chip::app::Clusters;
-        switch (testIndex)
-        {
-        case 0: {
-            LogStep(0, "Wait for the commissioned device to be retrieved");
-            ListFreer listFreer;
-            chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-            value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-            return WaitForCommissionee(kIdentityAlpha, value);
-        }
-        case 1: {
-            LogStep(1, "Read the commissioner node ID");
-            ListFreer listFreer;
-            chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value;
-            return GetCommissionerNodeId(kIdentityAlpha, value);
-        }
-        case 2: {
-            LogStep(2, "TH adds ACL Operate privileges for Group 0x0103");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::DataModel::List<const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type> value;
-
-            {
-                auto * listHolder_0 =
-                    new ListHolder<chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type>(2);
-                listFreer.add(listHolder_0);
-
-                listHolder_0->mList[0].privilege =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryPrivilegeEnum>(5);
-                listHolder_0->mList[0].authMode =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryAuthModeEnum>(2);
-                listHolder_0->mList[0].subjects.SetNonNull();
-
-                {
-                    auto * listHolder_3 = new ListHolder<uint64_t>(1);
-                    listFreer.add(listHolder_3);
-                    listHolder_3->mList[0]                  = commissionerNodeId;
-                    listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List<uint64_t>(listHolder_3->mList, 1);
-                }
-                listHolder_0->mList[0].targets.SetNull();
-                listHolder_0->mList[0].fabricIndex = 1U;
-
-                listHolder_0->mList[1].privilege =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryPrivilegeEnum>(3);
-                listHolder_0->mList[1].authMode =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryAuthModeEnum>(3);
-                listHolder_0->mList[1].subjects.SetNonNull();
-
-                {
-                    auto * listHolder_3 = new ListHolder<uint64_t>(1);
-                    listFreer.add(listHolder_3);
-                    listHolder_3->mList[0]                  = 259ULL;
-                    listHolder_0->mList[1].subjects.Value() = chip::app::DataModel::List<uint64_t>(listHolder_3->mList, 1);
-                }
-                listHolder_0->mList[1].targets.SetNull();
-                listHolder_0->mList[1].fabricIndex = 1U;
-
-                value = chip::app::DataModel::List<chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type>(
-                    listHolder_0->mList, 2);
-            }
-            return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value,
-                                  chip::NullOptional, chip::NullOptional);
-        }
-        case 3: {
-            LogStep(3, "TH adds ACL Operate privileges for Group 0x0103");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 4: {
-            LogStep(4, "TH sends KeySetWrite command with incorrect key");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::GroupKeyManagement::Commands::KeySetWrite::Type value;
-
-            value.groupKeySet.groupKeySetID = 419U;
-            value.groupKeySet.groupKeySecurityPolicy =
-                static_cast<chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicyEnum>(0);
-            value.groupKeySet.epochKey0.SetNonNull();
-            value.groupKeySet.epochKey0.Value() = chip::ByteSpan(
-                chip::Uint8::from_const_char(
-                    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01garbage: not in length on purpose"),
-                16);
-            value.groupKeySet.epochStartTime0.SetNonNull();
-            value.groupKeySet.epochStartTime0.Value() = 111ULL;
-            value.groupKeySet.epochKey1.SetNonNull();
-            value.groupKeySet.epochKey1.Value() = chip::ByteSpan(
-                chip::Uint8::from_const_char(
-                    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02garbage: not in length on purpose"),
-                16);
-            value.groupKeySet.epochStartTime1.SetNonNull();
-            value.groupKeySet.epochStartTime1.Value() = 222ULL;
-            value.groupKeySet.epochKey2.SetNonNull();
-            value.groupKeySet.epochKey2.Value() = chip::ByteSpan(
-                chip::Uint8::from_const_char(
-                    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03garbage: not in length on purpose"),
-                16);
-            value.groupKeySet.epochStartTime2.SetNonNull();
-            value.groupKeySet.epochStartTime2.Value() = 333ULL;
-
-            return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                               GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional
-
-            );
-        }
-        case 5: {
-            LogStep(5, "TH sends KeySetWrite command with incorrect key");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 6: {
-            LogStep(6, "TH sends KeySetWrite command with TH key");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::GroupKeyManagement::Commands::KeySetWrite::Type value;
-
-            value.groupKeySet.groupKeySetID = 419U;
-            value.groupKeySet.groupKeySecurityPolicy =
-                static_cast<chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicyEnum>(0);
-            value.groupKeySet.epochKey0.SetNonNull();
-            value.groupKeySet.epochKey0.Value() = chip::ByteSpan(
-                chip::Uint8::from_const_char(
-                    "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"),
-                16);
-            value.groupKeySet.epochStartTime0.SetNonNull();
-            value.groupKeySet.epochStartTime0.Value() = 2220000ULL;
-            value.groupKeySet.epochKey1.SetNonNull();
-            value.groupKeySet.epochKey1.Value() = chip::ByteSpan(
-                chip::Uint8::from_const_char(
-                    "\xd1\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"),
-                16);
-            value.groupKeySet.epochStartTime1.SetNonNull();
-            value.groupKeySet.epochStartTime1.Value() = 2220001ULL;
-            value.groupKeySet.epochKey2.SetNonNull();
-            value.groupKeySet.epochKey2.Value() = chip::ByteSpan(
-                chip::Uint8::from_const_char(
-                    "\xd2\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"),
-                16);
-            value.groupKeySet.epochStartTime2.SetNonNull();
-            value.groupKeySet.epochStartTime2.Value() = 2220002ULL;
-
-            return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                               GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional
-
-            );
-        }
-        case 7: {
-            LogStep(7, "TH sends KeySetWrite command with TH key");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 8: {
-            LogStep(8, "TH binds GroupId to GroupKeySet");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::DataModel::List<const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type> value;
-
-            {
-                auto * listHolder_0 = new ListHolder<chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type>(1);
-                listFreer.add(listHolder_0);
-
-                listHolder_0->mList[0].groupId       = 259U;
-                listHolder_0->mList[0].groupKeySetID = 419U;
-                listHolder_0->mList[0].fabricIndex   = 1U;
-
-                value = chip::app::DataModel::List<chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type>(
-                    listHolder_0->mList, 1);
-            }
-            return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                                  GroupKeyManagement::Attributes::GroupKeyMap::Id, value, chip::NullOptional, chip::NullOptional);
-        }
-        case 9: {
-            LogStep(9, "TH binds GroupId to GroupKeySet");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 10: {
-            LogStep(10, "TH sends RemoveAllGroups command");
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::RemoveAllGroups::Type value;
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveAllGroups::Id, value,
-                               chip::NullOptional
-
-            );
-        }
-        case 11: {
-            LogStep(11, "TH sends AddGroup command");
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::AddGroup::Type value;
-            value.groupID   = 259U;
-            value.groupName = chip::Span<const char>("Test Groupgarbage: not in length on purpose", 10);
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value, chip::NullOptional
-
-            );
-        }
-        case 12: {
-            LogStep(12, "TH sends ViewGroup command");
-            VerifyOrDo(!ShouldSkip("G.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::ViewGroup::Type value;
-            value.groupID = 259U;
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value,
-                               chip::NullOptional
-
-            );
-        }
-        case 13: {
-            LogStep(13, "TH sends ViewGroup command");
-            VerifyOrDo(!ShouldSkip("!(G.S.F00)"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::ViewGroup::Type value;
-            value.groupID = 259U;
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value,
-                               chip::NullOptional
-
-            );
-        }
-        case 14: {
-            LogStep(14, "TH sends KeySetRead");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::Type value;
-            value.groupKeySetID = 419U;
-            return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetRead::Id,
-                               value, chip::NullOptional
-
-            );
-        }
-        case 15: {
-            LogStep(15, "TH sends KeySetRead");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 16: {
-            LogStep(16, "TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                                 GroupKeyManagement::Attributes::GroupKeyMap::Id, true, chip::NullOptional);
-        }
-        case 17: {
-            LogStep(17, "TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 18: {
-            LogStep(18, "TH reads GroupTable attribute");
-            VerifyOrDo(!ShouldSkip("G.S.F00 && PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                                 GroupKeyManagement::Attributes::GroupTable::Id, true, chip::NullOptional);
-        }
-        case 19: {
-            LogStep(19, "TH reads GroupTable attribute");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && G.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 20: {
-            LogStep(20, "TH reads GroupTable attribute");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY && !G.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                                 GroupKeyManagement::Attributes::GroupTable::Id, true, chip::NullOptional);
-        }
-        case 21: {
-            LogStep(21, "TH reads GroupTable attribute");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && !G.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 22: {
-            LogStep(22, "TH removes the GroupKeySet");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::Type value;
-            value.groupKeySetID = 419U;
-            return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                               GroupKeyManagement::Commands::KeySetRemove::Id, value, chip::NullOptional
-
-            );
-        }
-        case 23: {
-            LogStep(23, "TH removes the GroupKeySet");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 24: {
-            LogStep(24, "TH verifies the corresponding GroupKeyMap entry has been removed");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                                 GroupKeyManagement::Attributes::GroupKeyMap::Id, true, chip::NullOptional);
-        }
-        case 25: {
-            LogStep(25, "TH verifies the corresponding GroupKeyMap entry has been removed");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 26: {
-            LogStep(26, "TH cleans up groups using RemoveAllGroups command");
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::RemoveAllGroups::Type value;
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveAllGroups::Id, value,
-                               chip::NullOptional
-
-            );
-        }
-        case 27: {
-            LogStep(27, "TH verifies the group has been removed in the GroupTable");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                                 GroupKeyManagement::Attributes::GroupTable::Id, true, chip::NullOptional);
-        }
-        case 28: {
-            LogStep(28, "TH verifies the group has been removed in the GroupTable");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 29: {
-            LogStep(29, "TH removes ACL Operate privileges for Group 0x0103");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::DataModel::List<const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type> value;
-
-            {
-                auto * listHolder_0 =
-                    new ListHolder<chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type>(1);
-                listFreer.add(listHolder_0);
-
-                listHolder_0->mList[0].privilege =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryPrivilegeEnum>(5);
-                listHolder_0->mList[0].authMode =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryAuthModeEnum>(2);
-                listHolder_0->mList[0].subjects.SetNonNull();
-
-                {
-                    auto * listHolder_3 = new ListHolder<uint64_t>(1);
-                    listFreer.add(listHolder_3);
-                    listHolder_3->mList[0]                  = commissionerNodeId;
-                    listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List<uint64_t>(listHolder_3->mList, 1);
-                }
-                listHolder_0->mList[0].targets.SetNull();
-                listHolder_0->mList[0].fabricIndex = 1U;
-
-                value = chip::app::DataModel::List<chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type>(
-                    listHolder_0->mList, 1);
-            }
-            return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value,
-                                  chip::NullOptional, chip::NullOptional);
-        }
-        case 30: {
-            LogStep(30, "TH removes ACL Operate privileges for Group 0x0103");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        }
-        return CHIP_NO_ERROR;
-    }
-};
-
-class Test_TC_SC_5_2Suite : public TestCommand
-{
-public:
-    Test_TC_SC_5_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_SC_5_2", 20, credsIssuerConfig)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-
-    ~Test_TC_SC_5_2Suite() {}
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    chip::NodeId commissionerNodeId;
-
-    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
-
-    //
-    // Tests methods
-    //
-
-    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
-    {
-        bool shouldContinue = false;
-
-        switch (mTestIndex - 1)
-        {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeIdResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                commissionerNodeId = value.nodeId;
-            }
-            shouldContinue = true;
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 3:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 4:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 5:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 6:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 7:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 8:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 9:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value.status, 0U));
-                VerifyOrReturn(CheckValue("groupID", value.groupID, 259U));
-            }
-            break;
-        case 10:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-            }
-            break;
-        case 11:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 12:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 13:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value.status, 0U));
-                VerifyOrReturn(CheckValue("groupID", value.groupID, 257U));
-                VerifyOrReturn(CheckValueAsString("groupName", value.groupName, chip::CharSpan("Test Group 0101", 15)));
-            }
-            break;
-        case 14:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value.status, 0U));
-                VerifyOrReturn(CheckValue("groupID", value.groupID, 257U));
-                VerifyOrReturn(CheckValueAsString("groupName", value.groupName, chip::CharSpan("", 0)));
-            }
-            break;
-        case 15:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 16:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 17:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 18:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 19:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        default:
-            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
-        }
-
-        if (shouldContinue)
-        {
-            ContinueOnChipMainThread(CHIP_NO_ERROR);
-        }
-    }
-
-    CHIP_ERROR DoTestStep(uint16_t testIndex) override
-    {
-        using namespace chip::app::Clusters;
-        switch (testIndex)
-        {
-        case 0: {
-            LogStep(0, "Wait for the commissioned device to be retrieved");
-            ListFreer listFreer;
-            chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-            value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-            return WaitForCommissionee(kIdentityAlpha, value);
-        }
-        case 1: {
-            LogStep(1, "Read the commissioner node ID");
-            ListFreer listFreer;
-            chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value;
-            return GetCommissionerNodeId(kIdentityAlpha, value);
-        }
-        case 2: {
-            LogStep(2, "TH adds ACL Operate privileges for Group 0x0103");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::DataModel::List<const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type> value;
-
-            {
-                auto * listHolder_0 =
-                    new ListHolder<chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type>(2);
-                listFreer.add(listHolder_0);
-
-                listHolder_0->mList[0].privilege =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryPrivilegeEnum>(5);
-                listHolder_0->mList[0].authMode =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryAuthModeEnum>(2);
-                listHolder_0->mList[0].subjects.SetNonNull();
-
-                {
-                    auto * listHolder_3 = new ListHolder<uint64_t>(1);
-                    listFreer.add(listHolder_3);
-                    listHolder_3->mList[0]                  = commissionerNodeId;
-                    listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List<uint64_t>(listHolder_3->mList, 1);
-                }
-                listHolder_0->mList[0].targets.SetNull();
-                listHolder_0->mList[0].fabricIndex = 1U;
-
-                listHolder_0->mList[1].privilege =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryPrivilegeEnum>(4);
-                listHolder_0->mList[1].authMode =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryAuthModeEnum>(3);
-                listHolder_0->mList[1].subjects.SetNonNull();
-
-                {
-                    auto * listHolder_3 = new ListHolder<uint64_t>(1);
-                    listFreer.add(listHolder_3);
-                    listHolder_3->mList[0]                  = 259ULL;
-                    listHolder_0->mList[1].subjects.Value() = chip::app::DataModel::List<uint64_t>(listHolder_3->mList, 1);
-                }
-                listHolder_0->mList[1].targets.SetNull();
-                listHolder_0->mList[1].fabricIndex = 1U;
-
-                value = chip::app::DataModel::List<chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type>(
-                    listHolder_0->mList, 2);
-            }
-            return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value,
-                                  chip::NullOptional, chip::NullOptional);
-        }
-        case 3: {
-            LogStep(3, "TH adds ACL Operate privileges for Group 0x0103");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 4: {
-            LogStep(4, "TH sends KeySetWrite command with TH key");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::GroupKeyManagement::Commands::KeySetWrite::Type value;
-
-            value.groupKeySet.groupKeySetID = 419U;
-            value.groupKeySet.groupKeySecurityPolicy =
-                static_cast<chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicyEnum>(0);
-            value.groupKeySet.epochKey0.SetNonNull();
-            value.groupKeySet.epochKey0.Value() = chip::ByteSpan(
-                chip::Uint8::from_const_char(
-                    "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"),
-                16);
-            value.groupKeySet.epochStartTime0.SetNonNull();
-            value.groupKeySet.epochStartTime0.Value() = 2220000ULL;
-            value.groupKeySet.epochKey1.SetNonNull();
-            value.groupKeySet.epochKey1.Value() = chip::ByteSpan(
-                chip::Uint8::from_const_char(
-                    "\xd1\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"),
-                16);
-            value.groupKeySet.epochStartTime1.SetNonNull();
-            value.groupKeySet.epochStartTime1.Value() = 2220001ULL;
-            value.groupKeySet.epochKey2.SetNonNull();
-            value.groupKeySet.epochKey2.Value() = chip::ByteSpan(
-                chip::Uint8::from_const_char(
-                    "\xd2\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdfgarbage: not in length on purpose"),
-                16);
-            value.groupKeySet.epochStartTime2.SetNonNull();
-            value.groupKeySet.epochStartTime2.Value() = 2220002ULL;
-
-            return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                               GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional
-
-            );
-        }
-        case 5: {
-            LogStep(5, "TH sends KeySetWrite command with TH key");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 6: {
-            LogStep(6, "TH binds GroupId to GroupKeySet");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::DataModel::List<const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type> value;
-
-            {
-                auto * listHolder_0 = new ListHolder<chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type>(2);
-                listFreer.add(listHolder_0);
-
-                listHolder_0->mList[0].groupId       = 257U;
-                listHolder_0->mList[0].groupKeySetID = 419U;
-                listHolder_0->mList[0].fabricIndex   = 1U;
-
-                listHolder_0->mList[1].groupId       = 259U;
-                listHolder_0->mList[1].groupKeySetID = 419U;
-                listHolder_0->mList[1].fabricIndex   = 1U;
-
-                value = chip::app::DataModel::List<chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type>(
-                    listHolder_0->mList, 2);
-            }
-            return WriteAttribute(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                                  GroupKeyManagement::Attributes::GroupKeyMap::Id, value, chip::NullOptional, chip::NullOptional);
-        }
-        case 7: {
-            LogStep(7, "TH binds GroupId to GroupKeySet");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 8: {
-            LogStep(8, "TH sends RemoveAllGroups command");
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::RemoveAllGroups::Type value;
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveAllGroups::Id, value,
-                               chip::NullOptional
-
-            );
-        }
-        case 9: {
-            LogStep(9, "TH sends AddGroup command");
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::AddGroup::Type value;
-            value.groupID   = 259U;
-            value.groupName = chip::Span<const char>("Test Group 0103garbage: not in length on purpose", 15);
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::AddGroup::Id, value, chip::NullOptional
-
-            );
-        }
-        case 10: {
-            LogStep(10, "TH sends AddGroup command again but using group messaging (0x0103)");
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::AddGroup::Type value;
-            value.groupID   = 257U;
-            value.groupName = chip::Span<const char>("Test Group 0101garbage: not in length on purpose", 15);
-            return SendGroupCommand(kIdentityAlpha, 259, Groups::Id, Groups::Commands::AddGroup::Id, value);
-        }
-        case 11: {
-            LogStep(11, "Wait for AddGroup");
-            ListFreer listFreer;
-            chip::app::Clusters::DelayCommands::Commands::WaitForMs::Type value;
-            value.ms = 1000UL;
-            return WaitForMs(kIdentityAlpha, value);
-        }
-        case 12: {
-            LogStep(12, "Verify there is no response from DUT");
-            VerifyOrDo(!ShouldSkip("!PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message =
-                chip::Span<const char>("Verify that there is no response from DUTgarbage: not in length on purpose", 41);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 13: {
-            LogStep(13, "TH sends ViewGroup command");
-            VerifyOrDo(!ShouldSkip("G.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::ViewGroup::Type value;
-            value.groupID = 257U;
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value,
-                               chip::NullOptional
-
-            );
-        }
-        case 14: {
-            LogStep(14, "TH sends ViewGroup command");
-            VerifyOrDo(!ShouldSkip("!(G.S.F00)"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::ViewGroup::Type value;
-            value.groupID = 257U;
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::ViewGroup::Id, value,
-                               chip::NullOptional
-
-            );
-        }
-        case 15: {
-            LogStep(15, "TH removes the GroupKeySet");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::Type value;
-            value.groupKeySetID = 419U;
-            return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id,
-                               GroupKeyManagement::Commands::KeySetRemove::Id, value, chip::NullOptional
-
-            );
-        }
-        case 16: {
-            LogStep(16, "TH removes the GroupKeySet");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 17: {
-            LogStep(17, "TH cleans up groups using RemoveAllGroups command");
-            ListFreer listFreer;
-            chip::app::Clusters::Groups::Commands::RemoveAllGroups::Type value;
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), Groups::Id, Groups::Commands::RemoveAllGroups::Id, value,
-                               chip::NullOptional
-
-            );
-        }
-        case 18: {
-            LogStep(18, "TH removes ACL Operate privileges for Group 0x0103");
-            VerifyOrDo(!ShouldSkip("PICS_SDK_CI_ONLY"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::DataModel::List<const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type> value;
-
-            {
-                auto * listHolder_0 =
-                    new ListHolder<chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type>(1);
-                listFreer.add(listHolder_0);
-
-                listHolder_0->mList[0].privilege =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryPrivilegeEnum>(5);
-                listHolder_0->mList[0].authMode =
-                    static_cast<chip::app::Clusters::AccessControl::AccessControlEntryAuthModeEnum>(2);
-                listHolder_0->mList[0].subjects.SetNonNull();
-
-                {
-                    auto * listHolder_3 = new ListHolder<uint64_t>(1);
-                    listFreer.add(listHolder_3);
-                    listHolder_3->mList[0]                  = commissionerNodeId;
-                    listHolder_0->mList[0].subjects.Value() = chip::app::DataModel::List<uint64_t>(listHolder_3->mList, 1);
-                }
-                listHolder_0->mList[0].targets.SetNull();
-                listHolder_0->mList[0].fabricIndex = 1U;
-
-                value = chip::app::DataModel::List<chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type>(
-                    listHolder_0->mList, 1);
-            }
-            return WriteAttribute(kIdentityAlpha, GetEndpoint(0), AccessControl::Id, AccessControl::Attributes::Acl::Id, value,
-                                  chip::NullOptional, chip::NullOptional);
-        }
-        case 19: {
-            LogStep(19, "TH removes ACL Operate privileges for Group 0x0103");
-            VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        }
-        return CHIP_NO_ERROR;
-    }
-};
-
 class Test_TC_SWTCH_1_1Suite : public TestCommand
 {
 public:
@@ -116152,61 +114692,6 @@
     }
 };
 
-class Test_TC_BINFO_2_2Suite : public TestCommand
-{
-public:
-    Test_TC_BINFO_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_BINFO_2_2", 0, credsIssuerConfig)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-
-    ~Test_TC_BINFO_2_2Suite() {}
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
-
-    //
-    // Tests methods
-    //
-
-    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
-    {
-        bool shouldContinue = false;
-
-        switch (mTestIndex - 1)
-        {
-        default:
-            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
-        }
-
-        if (shouldContinue)
-        {
-            ContinueOnChipMainThread(CHIP_NO_ERROR);
-        }
-    }
-
-    CHIP_ERROR DoTestStep(uint16_t testIndex) override
-    {
-        using namespace chip::app::Clusters;
-        switch (testIndex)
-        {}
-        return CHIP_NO_ERROR;
-    }
-};
-
 class Test_TC_BINFO_2_4Suite : public TestCommand
 {
 public:
@@ -138894,7 +137379,6 @@
         make_unique<TestAccessControlClusterSuite>(credsIssuerConfig),
         make_unique<Test_TC_ACL_1_1Suite>(credsIssuerConfig),
         make_unique<Test_TC_ACL_2_1Suite>(credsIssuerConfig),
-        make_unique<Test_TC_ACL_2_2Suite>(credsIssuerConfig),
         make_unique<Test_TC_ACL_2_3Suite>(credsIssuerConfig),
         make_unique<Test_TC_ACL_2_4Suite>(credsIssuerConfig),
         make_unique<Test_TC_ACL_2_7Suite>(credsIssuerConfig),
@@ -139018,8 +137502,6 @@
         make_unique<Test_TC_APPLAUNCHER_3_5Suite>(credsIssuerConfig),
         make_unique<Test_TC_APPLAUNCHER_3_6Suite>(credsIssuerConfig),
         make_unique<Test_TC_APPLAUNCHER_3_7Suite>(credsIssuerConfig),
-        make_unique<Test_TC_APPLAUNCHER_3_8Suite>(credsIssuerConfig),
-        make_unique<Test_TC_APPLAUNCHER_3_9Suite>(credsIssuerConfig),
         make_unique<Test_TC_MEDIAINPUT_3_10Suite>(credsIssuerConfig),
         make_unique<Test_TC_MEDIAINPUT_3_11Suite>(credsIssuerConfig),
         make_unique<Test_TC_MEDIAINPUT_3_12Suite>(credsIssuerConfig),
@@ -139064,8 +137546,6 @@
         make_unique<Test_TC_PSCFG_2_1Suite>(credsIssuerConfig),
         make_unique<Test_TC_RH_1_1Suite>(credsIssuerConfig),
         make_unique<Test_TC_RH_2_1Suite>(credsIssuerConfig),
-        make_unique<Test_TC_SC_5_1Suite>(credsIssuerConfig),
-        make_unique<Test_TC_SC_5_2Suite>(credsIssuerConfig),
         make_unique<Test_TC_SWTCH_1_1Suite>(credsIssuerConfig),
         make_unique<Test_TC_SWTCH_2_1Suite>(credsIssuerConfig),
         make_unique<Test_TC_TMP_1_1Suite>(credsIssuerConfig),
@@ -139253,7 +137733,6 @@
         make_unique<Test_TC_DA_1_4Suite>(credsIssuerConfig),
         make_unique<Test_TC_DA_1_5Suite>(credsIssuerConfig),
         make_unique<Test_TC_DA_1_6Suite>(credsIssuerConfig),
-        make_unique<Test_TC_BINFO_2_2Suite>(credsIssuerConfig),
         make_unique<Test_TC_BINFO_2_4Suite>(credsIssuerConfig),
         make_unique<Test_TC_OPCREDS_3_1Suite>(credsIssuerConfig),
         make_unique<Test_TC_OPCREDS_3_2Suite>(credsIssuerConfig),
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
index 7e47aa2..8cbd89f 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
@@ -39,7 +39,6 @@
         printf("TestAccessControlCluster\n");
         printf("Test_TC_ACL_1_1\n");
         printf("Test_TC_ACL_2_1\n");
-        printf("Test_TC_ACL_2_2\n");
         printf("Test_TC_ACL_2_3\n");
         printf("Test_TC_ACE_1_1\n");
         printf("Test_TC_ACE_1_5\n");
@@ -168,7 +167,6 @@
         printf("Test_TC_PSCFG_2_1\n");
         printf("Test_TC_RH_1_1\n");
         printf("Test_TC_RH_2_1\n");
-        printf("Test_TC_SC_5_1\n");
         printf("Test_TC_SWTCH_1_1\n");
         printf("Test_TC_TMP_1_1\n");
         printf("Test_TC_TMP_2_1\n");
@@ -2964,143 +2962,6 @@
     }
 };
 
-class Test_TC_ACL_2_2 : public TestCommandBridge {
-public:
-    // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced
-    Test_TC_ACL_2_2()
-        : TestCommandBridge("Test_TC_ACL_2_2")
-        , mTestIndex(0)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-    // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull)
-
-    ~Test_TC_ACL_2_2() {}
-
-    /////////// TestCommand Interface /////////
-    void NextTest() override
-    {
-        CHIP_ERROR err = CHIP_NO_ERROR;
-
-        if (0 == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Start: Test_TC_ACL_2_2\n");
-        }
-
-        if (mTestCount == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Complete: Test_TC_ACL_2_2\n");
-            SetCommandExitStatus(CHIP_NO_ERROR);
-            return;
-        }
-
-        Wait();
-
-        // Ensure we increment mTestIndex before we start running the relevant
-        // command.  That way if we lose the timeslice after we send the message
-        // but before our function call returns, we won't end up with an
-        // incorrect mTestIndex value observed when we get the response.
-        switch (mTestIndex++) {
-        case 0:
-            ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n");
-            err = TestWaitForTheCommissionedDeviceToBeRetrieved_0();
-            break;
-        case 1:
-            ChipLogProgress(
-                chipTool, " ***** Test Step 1 : TH1 reads DUT Descriptor cluster ServerList attribute from Endpoint 0\n");
-            err = TestTh1ReadsDutDescriptorClusterServerListAttributeFromEndpoint0_1();
-            break;
-        case 2:
-            ChipLogProgress(chipTool,
-                " ***** Test Step 2 : TH1 reads DUT Descriptor cluster ServerList attribute from every Endpoint except 0\n");
-            if (ShouldSkip("PICS_USER_PROMPT")) {
-                NextTest();
-                return;
-            }
-            err = TestTh1ReadsDutDescriptorClusterServerListAttributeFromEveryEndpointExcept0_2();
-            break;
-        }
-
-        if (CHIP_NO_ERROR != err) {
-            ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err));
-            SetCommandExitStatus(err);
-        }
-    }
-
-    void OnStatusUpdate(const chip::app::StatusIB & status) override
-    {
-        switch (mTestIndex - 1) {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        }
-
-        // Go on to the next test.
-        ContinueOnChipMainThread(CHIP_NO_ERROR);
-    }
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 3;
-
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0()
-    {
-
-        chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-        value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-        return WaitForCommissionee("alpha", value);
-    }
-
-    CHIP_ERROR TestTh1ReadsDutDescriptorClusterServerListAttributeFromEndpoint0_1()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterDescriptor alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster readAttributeServerListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"TH1 reads DUT Descriptor cluster ServerList attribute from Endpoint 0 Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            VerifyOrReturn(CheckConstraintType("serverList", "list", "list"));
-            VerifyOrReturn(CheckConstraintContains("serverList", value, 31UL));
-
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestTh1ReadsDutDescriptorClusterServerListAttributeFromEveryEndpointExcept0_2()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message
-            = chip::Span<const char>("Factory Reset the DUT and enter 'y' after successgarbage: not in length on purpose", 49);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-};
-
 class Test_TC_ACL_2_3 : public TestCommandBridge {
 public:
     // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced
@@ -69984,1112 +69845,6 @@
     }
 };
 
-class Test_TC_SC_5_1 : public TestCommandBridge {
-public:
-    // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced
-    Test_TC_SC_5_1()
-        : TestCommandBridge("Test_TC_SC_5_1")
-        , mTestIndex(0)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-    // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull)
-
-    ~Test_TC_SC_5_1() {}
-
-    /////////// TestCommand Interface /////////
-    void NextTest() override
-    {
-        CHIP_ERROR err = CHIP_NO_ERROR;
-
-        if (0 == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Start: Test_TC_SC_5_1\n");
-        }
-
-        if (mTestCount == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Complete: Test_TC_SC_5_1\n");
-            SetCommandExitStatus(CHIP_NO_ERROR);
-            return;
-        }
-
-        Wait();
-
-        // Ensure we increment mTestIndex before we start running the relevant
-        // command.  That way if we lose the timeslice after we send the message
-        // but before our function call returns, we won't end up with an
-        // incorrect mTestIndex value observed when we get the response.
-        switch (mTestIndex++) {
-        case 0:
-            ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n");
-            err = TestWaitForTheCommissionedDeviceToBeRetrieved_0();
-            break;
-        case 1:
-            ChipLogProgress(chipTool, " ***** Test Step 1 : Read the commissioner node ID\n");
-            err = TestReadTheCommissionerNodeId_1();
-            break;
-        case 2:
-            ChipLogProgress(chipTool, " ***** Test Step 2 : TH adds ACL Operate privileges for Group 0x0103\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThAddsAclOperatePrivilegesForGroup0x0103_2();
-            break;
-        case 3:
-            ChipLogProgress(chipTool, " ***** Test Step 3 : TH adds ACL Operate privileges for Group 0x0103\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThAddsAclOperatePrivilegesForGroup0x0103_3();
-            break;
-        case 4:
-            ChipLogProgress(chipTool, " ***** Test Step 4 : TH sends KeySetWrite command with incorrect key\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsKeySetWriteCommandWithIncorrectKey_4();
-            break;
-        case 5:
-            ChipLogProgress(chipTool, " ***** Test Step 5 : TH sends KeySetWrite command with incorrect key\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsKeySetWriteCommandWithIncorrectKey_5();
-            break;
-        case 6:
-            ChipLogProgress(chipTool, " ***** Test Step 6 : TH sends KeySetWrite command with TH key\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsKeySetWriteCommandWithThKey_6();
-            break;
-        case 7:
-            ChipLogProgress(chipTool, " ***** Test Step 7 : TH sends KeySetWrite command with TH key\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsKeySetWriteCommandWithThKey_7();
-            break;
-        case 8:
-            ChipLogProgress(chipTool, " ***** Test Step 8 : TH binds GroupId to GroupKeySet\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThBindsGroupIdToGroupKeySet_8();
-            break;
-        case 9:
-            ChipLogProgress(chipTool, " ***** Test Step 9 : TH binds GroupId to GroupKeySet\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThBindsGroupIdToGroupKeySet_9();
-            break;
-        case 10:
-            ChipLogProgress(chipTool, " ***** Test Step 10 : TH sends RemoveAllGroups command\n");
-            err = TestThSendsRemoveAllGroupsCommand_10();
-            break;
-        case 11:
-            ChipLogProgress(chipTool, " ***** Test Step 11 : TH sends AddGroup command\n");
-            err = TestThSendsAddGroupCommand_11();
-            break;
-        case 12:
-            ChipLogProgress(chipTool, " ***** Test Step 12 : TH sends ViewGroup command\n");
-            if (ShouldSkip("G.S.F00")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsViewGroupCommand_12();
-            break;
-        case 13:
-            ChipLogProgress(chipTool, " ***** Test Step 13 : TH sends ViewGroup command\n");
-            if (ShouldSkip("!(G.S.F00)")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsViewGroupCommand_13();
-            break;
-        case 14:
-            ChipLogProgress(chipTool, " ***** Test Step 14 : TH sends KeySetRead\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsKeySetRead_14();
-            break;
-        case 15:
-            ChipLogProgress(chipTool, " ***** Test Step 15 : TH sends KeySetRead\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsKeySetRead_15();
-            break;
-        case 16:
-            ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThReadsGroupKeyMapAttributeFromTheGroupKeyManagementCluster_16();
-            break;
-        case 17:
-            ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThReadsGroupKeyMapAttributeFromTheGroupKeyManagementCluster_17();
-            break;
-        case 18:
-            ChipLogProgress(chipTool, " ***** Test Step 18 : TH reads GroupTable attribute\n");
-            if (ShouldSkip("G.S.F00 && PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThReadsGroupTableAttribute_18();
-            break;
-        case 19:
-            ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads GroupTable attribute\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP && G.S.F00")) {
-                NextTest();
-                return;
-            }
-            err = TestThReadsGroupTableAttribute_19();
-            break;
-        case 20:
-            ChipLogProgress(chipTool, " ***** Test Step 20 : TH reads GroupTable attribute\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY && !G.S.F00")) {
-                NextTest();
-                return;
-            }
-            err = TestThReadsGroupTableAttribute_20();
-            break;
-        case 21:
-            ChipLogProgress(chipTool, " ***** Test Step 21 : TH reads GroupTable attribute\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP && !G.S.F00")) {
-                NextTest();
-                return;
-            }
-            err = TestThReadsGroupTableAttribute_21();
-            break;
-        case 22:
-            ChipLogProgress(chipTool, " ***** Test Step 22 : TH removes the GroupKeySet\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThRemovesTheGroupKeySet_22();
-            break;
-        case 23:
-            ChipLogProgress(chipTool, " ***** Test Step 23 : TH removes the GroupKeySet\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThRemovesTheGroupKeySet_23();
-            break;
-        case 24:
-            ChipLogProgress(chipTool, " ***** Test Step 24 : TH verifies the corresponding GroupKeyMap entry has been removed\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThVerifiesTheCorrespondingGroupKeyMapEntryHasBeenRemoved_24();
-            break;
-        case 25:
-            ChipLogProgress(chipTool, " ***** Test Step 25 : TH verifies the corresponding GroupKeyMap entry has been removed\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThVerifiesTheCorrespondingGroupKeyMapEntryHasBeenRemoved_25();
-            break;
-        case 26:
-            ChipLogProgress(chipTool, " ***** Test Step 26 : TH cleans up groups using RemoveAllGroups command\n");
-            err = TestThCleansUpGroupsUsingRemoveAllGroupsCommand_26();
-            break;
-        case 27:
-            ChipLogProgress(chipTool, " ***** Test Step 27 : TH verifies the group has been removed in the GroupTable\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThVerifiesTheGroupHasBeenRemovedInTheGroupTable_27();
-            break;
-        case 28:
-            ChipLogProgress(chipTool, " ***** Test Step 28 : TH verifies the group has been removed in the GroupTable\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThVerifiesTheGroupHasBeenRemovedInTheGroupTable_28();
-            break;
-        case 29:
-            ChipLogProgress(chipTool, " ***** Test Step 29 : TH removes ACL Operate privileges for Group 0x0103\n");
-            if (ShouldSkip("PICS_SDK_CI_ONLY")) {
-                NextTest();
-                return;
-            }
-            err = TestThRemovesAclOperatePrivilegesForGroup0x0103_29();
-            break;
-        case 30:
-            ChipLogProgress(chipTool, " ***** Test Step 30 : TH removes ACL Operate privileges for Group 0x0103\n");
-            if (ShouldSkip("PICS_SKIP_SAMPLE_APP")) {
-                NextTest();
-                return;
-            }
-            err = TestThRemovesAclOperatePrivilegesForGroup0x0103_30();
-            break;
-        }
-
-        if (CHIP_NO_ERROR != err) {
-            ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err));
-            SetCommandExitStatus(err);
-        }
-    }
-
-    void OnStatusUpdate(const chip::app::StatusIB & status) override
-    {
-        switch (mTestIndex - 1) {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 3:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 4:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 5:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 6:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 7:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 8:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 9:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 10:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 11:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 12:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 13:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 14:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 15:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 16:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 17:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 18:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 19:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 20:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 21:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 22:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 23:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 24:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 25:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 26:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 27:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 28:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 29:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 30:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        }
-
-        // Go on to the next test.
-        ContinueOnChipMainThread(CHIP_NO_ERROR);
-    }
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 31;
-
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0()
-    {
-
-        chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-        value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-        return WaitForCommissionee("alpha", value);
-    }
-    NSNumber * _Nonnull commissionerNodeId;
-
-    CHIP_ERROR TestReadTheCommissionerNodeId_1()
-    {
-
-        chip::app::Clusters::CommissionerCommands::Commands::GetCommissionerNodeId::Type value;
-        return GetCommissionerNodeId("alpha", value, ^(const chip::GetCommissionerNodeIdResponse & values) {
-            {
-                commissionerNodeId = [[NSNumber alloc] initWithUnsignedLongLong:values.nodeId];
-            }
-            NextTest();
-        });
-    }
-
-    CHIP_ERROR TestThAddsAclOperatePrivilegesForGroup0x0103_2()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterAccessControl alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        id aclArgument;
-        {
-            NSMutableArray * temp_0 = [[NSMutableArray alloc] init];
-            temp_0[0] = [[MTRAccessControlClusterAccessControlEntryStruct alloc] init];
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).privilege = [NSNumber numberWithUnsignedChar:5U];
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).authMode = [NSNumber numberWithUnsignedChar:2U];
-            {
-                NSMutableArray * temp_3 = [[NSMutableArray alloc] init];
-                temp_3[0] = [commissionerNodeId copy];
-                ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).subjects = temp_3;
-            }
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = nil;
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).fabricIndex = [NSNumber numberWithUnsignedChar:1U];
-
-            temp_0[1] = [[MTRAccessControlClusterAccessControlEntryStruct alloc] init];
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).privilege = [NSNumber numberWithUnsignedChar:3U];
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).authMode = [NSNumber numberWithUnsignedChar:3U];
-            {
-                NSMutableArray * temp_3 = [[NSMutableArray alloc] init];
-                temp_3[0] = [NSNumber numberWithUnsignedLongLong:259ULL];
-                ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).subjects = temp_3;
-            }
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).targets = nil;
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[1]).fabricIndex = [NSNumber numberWithUnsignedChar:1U];
-
-            aclArgument = temp_0;
-        }
-        [cluster writeAttributeACLWithValue:aclArgument
-                                 completion:^(NSError * _Nullable err) {
-                                     NSLog(@"TH adds ACL Operate privileges for Group 0x0103 Error: %@", err);
-
-                                     VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                     NextTest();
-                                 }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThAddsAclOperatePrivilegesForGroup0x0103_3()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThSendsKeySetWriteCommandWithIncorrectKey_4()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRGroupKeyManagementClusterKeySetWriteParams alloc] init];
-        params.groupKeySet = [[MTRGroupKeyManagementClusterGroupKeySetStruct alloc] init];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySetID =
-            [NSNumber numberWithUnsignedShort:419U];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySecurityPolicy =
-            [NSNumber numberWithUnsignedChar:0U];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey0 =
-            [[NSData alloc] initWithBytes:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" length:16];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime0 =
-            [NSNumber numberWithUnsignedLongLong:111ULL];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey1 =
-            [[NSData alloc] initWithBytes:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02" length:16];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime1 =
-            [NSNumber numberWithUnsignedLongLong:222ULL];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey2 =
-            [[NSData alloc] initWithBytes:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03" length:16];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 =
-            [NSNumber numberWithUnsignedLongLong:333ULL];
-
-        [cluster keySetWriteWithParams:params
-                            completion:^(NSError * _Nullable err) {
-                                NSLog(@"TH sends KeySetWrite command with incorrect key Error: %@", err);
-
-                                VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                NextTest();
-                            }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThSendsKeySetWriteCommandWithIncorrectKey_5()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThSendsKeySetWriteCommandWithThKey_6()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRGroupKeyManagementClusterKeySetWriteParams alloc] init];
-        params.groupKeySet = [[MTRGroupKeyManagementClusterGroupKeySetStruct alloc] init];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySetID =
-            [NSNumber numberWithUnsignedShort:419U];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeySecurityPolicy =
-            [NSNumber numberWithUnsignedChar:0U];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey0 =
-            [[NSData alloc] initWithBytes:"\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" length:16];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime0 =
-            [NSNumber numberWithUnsignedLongLong:2220000ULL];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey1 =
-            [[NSData alloc] initWithBytes:"\xd1\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" length:16];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime1 =
-            [NSNumber numberWithUnsignedLongLong:2220001ULL];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochKey2 =
-            [[NSData alloc] initWithBytes:"\xd2\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" length:16];
-        ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 =
-            [NSNumber numberWithUnsignedLongLong:2220002ULL];
-
-        [cluster keySetWriteWithParams:params
-                            completion:^(NSError * _Nullable err) {
-                                NSLog(@"TH sends KeySetWrite command with TH key Error: %@", err);
-
-                                VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                NextTest();
-                            }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThSendsKeySetWriteCommandWithThKey_7()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThBindsGroupIdToGroupKeySet_8()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        id groupKeyMapArgument;
-        {
-            NSMutableArray * temp_0 = [[NSMutableArray alloc] init];
-            temp_0[0] = [[MTRGroupKeyManagementClusterGroupKeyMapStruct alloc] init];
-            ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) temp_0[0]).groupId = [NSNumber numberWithUnsignedShort:259U];
-            ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) temp_0[0]).groupKeySetID = [NSNumber numberWithUnsignedShort:419U];
-            ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) temp_0[0]).fabricIndex = [NSNumber numberWithUnsignedChar:1U];
-
-            groupKeyMapArgument = temp_0;
-        }
-        [cluster writeAttributeGroupKeyMapWithValue:groupKeyMapArgument
-                                         completion:^(NSError * _Nullable err) {
-                                             NSLog(@"TH binds GroupId to GroupKeySet Error: %@", err);
-
-                                             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                             NextTest();
-                                         }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThBindsGroupIdToGroupKeySet_9()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThSendsRemoveAllGroupsCommand_10()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroups alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster removeAllGroupsWithCompletion:^(NSError * _Nullable err) {
-            NSLog(@"TH sends RemoveAllGroups command Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThSendsAddGroupCommand_11()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroups alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRGroupsClusterAddGroupParams alloc] init];
-        params.groupID = [NSNumber numberWithUnsignedShort:259U];
-        params.groupName = @"Test Group";
-        [cluster addGroupWithParams:params
-                         completion:^(MTRGroupsClusterAddGroupResponseParams * _Nullable values, NSError * _Nullable err) {
-                             NSLog(@"TH sends AddGroup command Error: %@", err);
-
-                             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                             NextTest();
-                         }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThSendsViewGroupCommand_12()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroups alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRGroupsClusterViewGroupParams alloc] init];
-        params.groupID = [NSNumber numberWithUnsignedShort:259U];
-        [cluster viewGroupWithParams:params
-                          completion:^(MTRGroupsClusterViewGroupResponseParams * _Nullable values, NSError * _Nullable err) {
-                              NSLog(@"TH sends ViewGroup command Error: %@", err);
-
-                              VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                              {
-                                  id actualValue = values.status;
-                                  VerifyOrReturn(CheckValue("Status", actualValue, 0U));
-                              }
-
-                              {
-                                  id actualValue = values.groupID;
-                                  VerifyOrReturn(CheckValue("GroupID", actualValue, 259U));
-                              }
-
-                              {
-                                  id actualValue = values.groupName;
-                                  VerifyOrReturn(CheckValueAsString("GroupName", actualValue, @"Test Group"));
-                              }
-
-                              NextTest();
-                          }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThSendsViewGroupCommand_13()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroups alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRGroupsClusterViewGroupParams alloc] init];
-        params.groupID = [NSNumber numberWithUnsignedShort:259U];
-        [cluster viewGroupWithParams:params
-                          completion:^(MTRGroupsClusterViewGroupResponseParams * _Nullable values, NSError * _Nullable err) {
-                              NSLog(@"TH sends ViewGroup command Error: %@", err);
-
-                              VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                              {
-                                  id actualValue = values.status;
-                                  VerifyOrReturn(CheckValue("Status", actualValue, 0U));
-                              }
-
-                              {
-                                  id actualValue = values.groupID;
-                                  VerifyOrReturn(CheckValue("GroupID", actualValue, 259U));
-                              }
-
-                              {
-                                  id actualValue = values.groupName;
-                                  VerifyOrReturn(CheckValueAsString("GroupName", actualValue, @""));
-                              }
-
-                              NextTest();
-                          }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThSendsKeySetRead_14()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRGroupKeyManagementClusterKeySetReadParams alloc] init];
-        params.groupKeySetID = [NSNumber numberWithUnsignedShort:419U];
-        [cluster
-            keySetReadWithParams:params
-                      completion:^(
-                          MTRGroupKeyManagementClusterKeySetReadResponseParams * _Nullable values, NSError * _Nullable err) {
-                          NSLog(@"TH sends KeySetRead Error: %@", err);
-
-                          VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                          {
-                              id actualValue = values.groupKeySet;
-                              VerifyOrReturn(CheckValue("GroupKeySetID",
-                                  ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).groupKeySetID, 419U));
-                              VerifyOrReturn(CheckValue("GroupKeySecurityPolicy",
-                                  ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).groupKeySecurityPolicy, 0U));
-                              VerifyOrReturn(CheckValueNull(
-                                  "EpochKey0", ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochKey0));
-                              VerifyOrReturn(CheckValueNonNull("EpochStartTime0",
-                                  ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime0));
-                              VerifyOrReturn(CheckValue("EpochStartTime0",
-                                  ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime0, 2220000ULL));
-                              VerifyOrReturn(CheckValueNull(
-                                  "EpochKey1", ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochKey1));
-                              VerifyOrReturn(CheckValueNonNull("EpochStartTime1",
-                                  ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime1));
-                              VerifyOrReturn(CheckValue("EpochStartTime1",
-                                  ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime1, 2220001ULL));
-                              VerifyOrReturn(CheckValueNull(
-                                  "EpochKey2", ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochKey2));
-                              VerifyOrReturn(CheckValueNonNull("EpochStartTime2",
-                                  ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime2));
-                              VerifyOrReturn(CheckValue("EpochStartTime2",
-                                  ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime2, 2220002ULL));
-                          }
-
-                          NextTest();
-                      }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThSendsKeySetRead_15()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThReadsGroupKeyMapAttributeFromTheGroupKeyManagementCluster_16()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRReadParams alloc] init];
-        params.filterByFabric = true;
-        [cluster
-            readAttributeGroupKeyMapWithParams:params
-                                    completion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-                                        NSLog(@"TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster Error: %@", err);
-
-                                        VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                        {
-                                            id actualValue = value;
-                                            VerifyOrReturn(
-                                                CheckValue("GroupKeyMap", [actualValue count], static_cast<uint32_t>(1)));
-                                            VerifyOrReturn(CheckValue("GroupId",
-                                                ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) actualValue[0]).groupId, 259U));
-                                            VerifyOrReturn(CheckValue("GroupKeySetID",
-                                                ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) actualValue[0]).groupKeySetID,
-                                                419U));
-                                            VerifyOrReturn(CheckValue("FabricIndex",
-                                                ((MTRGroupKeyManagementClusterGroupKeyMapStruct *) actualValue[0]).fabricIndex,
-                                                1U));
-                                        }
-
-                                        NextTest();
-                                    }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThReadsGroupKeyMapAttributeFromTheGroupKeyManagementCluster_17()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThReadsGroupTableAttribute_18()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRReadParams alloc] init];
-        params.filterByFabric = true;
-        [cluster
-            readAttributeGroupTableWithParams:params
-                                   completion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-                                       NSLog(@"TH reads GroupTable attribute Error: %@", err);
-
-                                       VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                       {
-                                           id actualValue = value;
-                                           VerifyOrReturn(CheckValue("GroupTable", [actualValue count], static_cast<uint32_t>(1)));
-                                           VerifyOrReturn(CheckValue("GroupId",
-                                               ((MTRGroupKeyManagementClusterGroupInfoMapStruct *) actualValue[0]).groupId, 259U));
-                                           VerifyOrReturn(CheckValue("Endpoints",
-                                               [((MTRGroupKeyManagementClusterGroupInfoMapStruct *)
-                                                       actualValue[0]).endpoints count],
-                                               static_cast<uint32_t>(1)));
-                                           VerifyOrReturn(CheckValue("",
-                                               ((MTRGroupKeyManagementClusterGroupInfoMapStruct *) actualValue[0]).endpoints[0],
-                                               mEndpoint.HasValue() ? mEndpoint.Value() : 1U));
-                                           VerifyOrReturn(CheckValueAsString("GroupName",
-                                               ((MTRGroupKeyManagementClusterGroupInfoMapStruct *) actualValue[0]).groupName,
-                                               @"Test Group"));
-                                       }
-
-                                       NextTest();
-                                   }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThReadsGroupTableAttribute_19()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThReadsGroupTableAttribute_20()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRReadParams alloc] init];
-        params.filterByFabric = true;
-        [cluster
-            readAttributeGroupTableWithParams:params
-                                   completion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-                                       NSLog(@"TH reads GroupTable attribute Error: %@", err);
-
-                                       VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                       {
-                                           id actualValue = value;
-                                           VerifyOrReturn(CheckValue("GroupTable", [actualValue count], static_cast<uint32_t>(1)));
-                                           VerifyOrReturn(CheckValue("GroupId",
-                                               ((MTRGroupKeyManagementClusterGroupInfoMapStruct *) actualValue[0]).groupId, 259U));
-                                           VerifyOrReturn(CheckValue("Endpoints",
-                                               [((MTRGroupKeyManagementClusterGroupInfoMapStruct *)
-                                                       actualValue[0]).endpoints count],
-                                               static_cast<uint32_t>(1)));
-                                           VerifyOrReturn(CheckValue("",
-                                               ((MTRGroupKeyManagementClusterGroupInfoMapStruct *) actualValue[0]).endpoints[0],
-                                               mEndpoint.HasValue() ? mEndpoint.Value() : 1U));
-                                           VerifyOrReturn(CheckValueAsString("GroupName",
-                                               ((MTRGroupKeyManagementClusterGroupInfoMapStruct *) actualValue[0]).groupName, @""));
-                                       }
-
-                                       NextTest();
-                                   }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThReadsGroupTableAttribute_21()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThRemovesTheGroupKeySet_22()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRGroupKeyManagementClusterKeySetRemoveParams alloc] init];
-        params.groupKeySetID = [NSNumber numberWithUnsignedShort:419U];
-        [cluster keySetRemoveWithParams:params
-                             completion:^(NSError * _Nullable err) {
-                                 NSLog(@"TH removes the GroupKeySet Error: %@", err);
-
-                                 VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                 NextTest();
-                             }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThRemovesTheGroupKeySet_23()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThVerifiesTheCorrespondingGroupKeyMapEntryHasBeenRemoved_24()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRReadParams alloc] init];
-        params.filterByFabric = true;
-        [cluster
-            readAttributeGroupKeyMapWithParams:params
-                                    completion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-                                        NSLog(@"TH verifies the corresponding GroupKeyMap entry has been removed Error: %@", err);
-
-                                        VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                        {
-                                            id actualValue = value;
-                                            VerifyOrReturn(
-                                                CheckValue("GroupKeyMap", [actualValue count], static_cast<uint32_t>(0)));
-                                        }
-
-                                        NextTest();
-                                    }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThVerifiesTheCorrespondingGroupKeyMapEntryHasBeenRemoved_25()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThCleansUpGroupsUsingRemoveAllGroupsCommand_26()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroups alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster removeAllGroupsWithCompletion:^(NSError * _Nullable err) {
-            NSLog(@"TH cleans up groups using RemoveAllGroups command Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThVerifiesTheGroupHasBeenRemovedInTheGroupTable_27()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterGroupKeyManagement alloc] initWithDevice:device
-                                                                              endpointID:@(0)
-                                                                                   queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRReadParams alloc] init];
-        params.filterByFabric = true;
-        [cluster
-            readAttributeGroupTableWithParams:params
-                                   completion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-                                       NSLog(@"TH verifies the group has been removed in the GroupTable Error: %@", err);
-
-                                       VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                       {
-                                           id actualValue = value;
-                                           VerifyOrReturn(CheckValue("GroupTable", [actualValue count], static_cast<uint32_t>(0)));
-                                       }
-
-                                       NextTest();
-                                   }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThVerifiesTheGroupHasBeenRemovedInTheGroupTable_28()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThRemovesAclOperatePrivilegesForGroup0x0103_29()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterAccessControl alloc] initWithDevice:device endpointID:@(0) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        id aclArgument;
-        {
-            NSMutableArray * temp_0 = [[NSMutableArray alloc] init];
-            temp_0[0] = [[MTRAccessControlClusterAccessControlEntryStruct alloc] init];
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).privilege = [NSNumber numberWithUnsignedChar:5U];
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).authMode = [NSNumber numberWithUnsignedChar:2U];
-            {
-                NSMutableArray * temp_3 = [[NSMutableArray alloc] init];
-                temp_3[0] = [commissionerNodeId copy];
-                ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).subjects = temp_3;
-            }
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).targets = nil;
-            ((MTRAccessControlClusterAccessControlEntryStruct *) temp_0[0]).fabricIndex = [NSNumber numberWithUnsignedChar:1U];
-
-            aclArgument = temp_0;
-        }
-        [cluster writeAttributeACLWithValue:aclArgument
-                                 completion:^(NSError * _Nullable err) {
-                                     NSLog(@"TH removes ACL Operate privileges for Group 0x0103 Error: %@", err);
-
-                                     VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                                     NextTest();
-                                 }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestThRemovesAclOperatePrivilegesForGroup0x0103_30()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-};
-
 class Test_TC_SWTCH_1_1 : public TestCommandBridge {
 public:
     // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced
@@ -149785,7 +148540,6 @@
         make_unique<TestAccessControlCluster>(),
         make_unique<Test_TC_ACL_1_1>(),
         make_unique<Test_TC_ACL_2_1>(),
-        make_unique<Test_TC_ACL_2_2>(),
         make_unique<Test_TC_ACL_2_3>(),
         make_unique<Test_TC_ACE_1_1>(),
         make_unique<Test_TC_ACE_1_5>(),
@@ -149914,7 +148668,6 @@
         make_unique<Test_TC_PSCFG_2_1>(),
         make_unique<Test_TC_RH_1_1>(),
         make_unique<Test_TC_RH_2_1>(),
-        make_unique<Test_TC_SC_5_1>(),
         make_unique<Test_TC_SWTCH_1_1>(),
         make_unique<Test_TC_TMP_1_1>(),
         make_unique<Test_TC_TMP_2_1>(),