From d952784de6d3b4f6c642edef80fc69c47c31c661 Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Wed, 28 May 2008 12:35:32 +0000
Subject: [PATCH] - Patch #254166 by boombatower and pwlonin: added --list
 feature to list all available test groups and fixed some indentation issues.

---
 scripts/run-functional-tests.sh | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/scripts/run-functional-tests.sh b/scripts/run-functional-tests.sh
index 669edc8365c0..245f3b395096 100755
--- a/scripts/run-functional-tests.sh
+++ b/scripts/run-functional-tests.sh
@@ -27,20 +27,22 @@
 All arguments are long options.
 
   --help      Print this page.
-  
+
+  --list      Display all available test groups.
+
   --clean     Cleans up database tables or directories from previous, failed,
               tests and then exits (no tests are run).
 
-   --url      Immediately preceeds a URL to set the host and path. You will
-              need this parameter if Drupal is in a subdirectory on your 
+  --url       Immediately preceeds a URL to set the host and path. You will
+              need this parameter if Drupal is in a subdirectory on your
               localhost and you have not set \$base_url in settings.php.
 
-   --reporter Immediatly preceeds the name of the output reporter to use.  This 
+  --reporter  Immediatly preceeds the name of the output reporter to use.  This
               Defaults to "text", while other options include "xml" and "html".
 
-   --all      Run all available tests.
+  --all       Run all available tests.
 
-   --class    Run tests identified by speficic class names.
+  --class     Run tests identified by speficic class names.
 
   <test1>[,<test2>[,<test3> ...]]
 
@@ -52,7 +54,7 @@
               specific test classes whose test methods will be run.  Tests must
               be separated by commas.  Ignored if --all is specified.
 
-To run this script you will normally invoke it from the root directory of your 
+To run this script you will normally invoke it from the root directory of your
 Drupal installation as
 
 php  ./scripts/{$script}
@@ -61,6 +63,7 @@
   exit;
 }
 
+$list = FALSE;
 $clean = FALSE;
 $all = FALSE;
 $class_names = FALSE;
@@ -68,6 +71,9 @@
 
 while ($param = array_shift($_SERVER['argv'])) {
   switch ($param) {
+    case '--list':
+      $list = TRUE;
+      break;
     case '--url':
       $url = array_shift($_SERVER['argv']);
       $parsed = parse_url($url);
@@ -133,6 +139,15 @@
 
 $test_instances = $total_test->getTestInstances();
 
+if ($list) {
+  // Display all availabe tests.
+  echo("Available test groups:\n----------------------\n");
+  foreach ($test_instances as $group_test) {
+    echo($group_test->getLabel() . "\n");
+  }
+  exit;
+}
+
 if ($all) {
   $test_list = NULL;
 }
-- 
GitLab