r21028: Generate list of tests rather than maintaining it manually.
authorJelmer Vernooij <jelmer@samba.org>
Fri, 26 Jan 2007 13:03:28 +0000 (13:03 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:44:21 +0000 (14:44 -0500)
source/script/tests/test_posix.sh
source/torture/smbtorture.c

index 81e7268c2d7dcca1e1d8345634cc665456767ca0..e8a8ef3f6e224024daabf71ecb3dbb692734ab88 100755 (executable)
@@ -20,32 +20,7 @@ ADDARGS="$*"
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-#
-# please don't remove tests here, when you want them to be skipped!
-# just add them to the skipped line below
-# this should be the complete list smbtorture offers as BASE-* tests
-#
-base="BASE-ATTR BASE-CHARSET BASE-CHKPATH BASE-DEFER_OPEN BASE-DELAYWRITE BASE-DELETE"
-base="$base BASE-DENY1 BASE-DENY2 BASE-DENY3 BASE-DENYDOS BASE-DIR1 BASE-DIR2"
-base="$base BASE-DISCONNECT BASE-FDPASS BASE-LOCK "
-base="$base BASE-MANGLE BASE-NEGNOWAIT BASE-NTDENY1"
-base="$base BASE-NTDENY2 BASE-OPEN BASE-OPENATTR BASE-PROPERTIES BASE-RENAME BASE-RW1"
-base="$base BASE-SECLEAK BASE-TCON BASE-TCONDEV BASE-TRANS2 BASE-UNLINK BASE-VUID"
-base="$base BASE-XCOPY"
-
-#
-# please don't remove tests here, when you want them to be skipped!
-# just add them to the skipped line below
-# this should be the complete list smbtorture offers as RAW-* tests
-#
-raw="RAW-CHKPATH RAW-CLOSE RAW-COMPOSITE RAW-CONTEXT RAW-EAS"
-raw="$raw RAW-IOCTL RAW-LOCK RAW-MKDIR RAW-MUX RAW-NOTIFY RAW-OPEN RAW-OPLOCK"
-raw="$raw RAW-QFILEINFO RAW-QFSINFO RAW-READ RAW-RENAME RAW-SEARCH RAW-SEEK"
-raw="$raw RAW-SFILEINFO RAW-SFILEINFO-BUG RAW-STREAMS RAW-UNLINK RAW-WRITE"
-
-smb2="SMB2-CONNECT SMB2-GETINFO SMB2-SETINFO SMB2-FIND"
-
-tests="$base $raw $smb2"
+tests=`bin/smbtorture --list | grep "^(BASE|RAW|SMB2)-" | xargs`
 
 #
 # please add tests you want to be skipped here!
index 018c7260af668fd1aa4530d700b5acd89118828d..016f3e603e83033c7a7bb450ee36dda0a913dbc3 100644 (file)
@@ -163,6 +163,23 @@ static void parse_dns(const char *dns)
 
 }
 
+static void print_test_list(void)
+{
+       struct torture_suite *o;
+       struct torture_suite *s;
+       struct torture_tcase *t;
+
+       for (o = torture_root->children; o; o = o->next) {
+               for (s = o->children; s; s = s->next) {
+                       printf("%s-%s\n", o->name, s->name);
+               }
+
+               for (t = o->testcases; t; t = t->next) {
+                       printf("%s-%s\n", o->name, t->name);
+               }
+       }
+}
+
 static void usage(poptContext pc)
 {
        struct torture_suite *o;
@@ -487,7 +504,8 @@ int main(int argc,char *argv[])
        NTSTATUS status;
        int shell = False;
        static const char *ui_ops_name = "simple";
-       enum {OPT_LOADFILE=1000,OPT_UNCLIST,OPT_TIMELIMIT,OPT_DNS,
+       static int list_tests = 0;
+       enum {OPT_LOADFILE=1000,OPT_UNCLIST,OPT_TIMELIMIT,OPT_DNS, OPT_LIST,
              OPT_DANGEROUS,OPT_SMB_PORTS,OPT_ASYNC,OPT_NUMPROGS, OPT_BASEDIR};
        
        struct poptOption long_options[] = {
@@ -500,6 +518,7 @@ int main(int argc,char *argv[])
                {"num-ops",       0, POPT_ARG_INT,  &torture_numops,    0,      "num ops",      NULL},
                {"entries",       0, POPT_ARG_INT,  &torture_entries,   0,      "entries",      NULL},
                {"loadfile",      0, POPT_ARG_STRING,   NULL,   OPT_LOADFILE,   "loadfile",     NULL},
+               {"list",          0, POPT_ARG_NONE, &list_tests, 0, NULL, NULL },
                {"unclist",       0, POPT_ARG_STRING,   NULL,   OPT_UNCLIST,    "unclist",      NULL},
                {"timelimit",   't', POPT_ARG_INT,      NULL,   OPT_TIMELIMIT,  "timelimit",    NULL},
                {"failures",    'f', POPT_ARG_INT,  &torture_failures,  0,      "failures",     NULL},
@@ -584,6 +603,11 @@ int main(int argc,char *argv[])
        torture_init();
        ldb_global_init();
 
+       if (list_tests) {
+               print_test_list();
+               return 0;
+       }
+
        subunit_dir = lp_parm_string_list(-1, "torture", "subunitdir", ":");
        if (subunit_dir == NULL) 
                torture_subunit_load_testsuites(dyn_TORTUREDIR, true, NULL);