[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-832-g681366b

Andrew Tridgell tridge at samba.org
Fri Feb 15 04:58:10 GMT 2008


The branch, v4-0-test has been updated
       via  681366b956a71aa7bd16b75263ccd73ddc680082 (commit)
       via  3abb33c8bff9aac8ba1ba4783b919732e5159283 (commit)
       via  1699b2a804cf91175de2528c1e640a09b4de4f08 (commit)
       via  05a110123df2372418e2ef2fd8f269b92054069c (commit)
      from  c37133fd95e6d02a0cdf0f7b5408211740d8046c (commit)

http://gitweb.samba.org/?samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit 681366b956a71aa7bd16b75263ccd73ddc680082
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Feb 15 15:53:11 2008 +1100

    convert gentest to use popt and the cmdline library

commit 3abb33c8bff9aac8ba1ba4783b919732e5159283
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Feb 15 15:52:52 2008 +1100

    make sure lp_ctx is initialised

commit 1699b2a804cf91175de2528c1e640a09b4de4f08
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Feb 15 15:39:07 2008 +1100

    fix typo

commit 05a110123df2372418e2ef2fd8f269b92054069c
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Feb 15 15:33:10 2008 +1100

    added a blackbox test for masktest

-----------------------------------------------------------------------

Summary of changes:
 source/selftest/samba4_tests.sh                    |    1 +
 source/torture/gentest.c                           |  166 ++++++++++----------
 source/torture/locktest.c                          |   20 ++-
 .../{test_locktest.sh => test_masktest.sh}         |    8 +-
 4 files changed, 101 insertions(+), 94 deletions(-)
 copy testprogs/blackbox/{test_locktest.sh => test_masktest.sh} (61%)


Changeset truncated at 500 lines:

diff --git a/source/selftest/samba4_tests.sh b/source/selftest/samba4_tests.sh
index ab7065c..98eade4 100755
--- a/source/selftest/samba4_tests.sh
+++ b/source/selftest/samba4_tests.sh
@@ -254,6 +254,7 @@ plantest "blackbox.cifsdd" dc $bbdir/test_cifsdd.sh "\$SERVER" "\$USERNAME" "\$P
 plantest "blackbox.nmblookup" dc $samba4srcdir/utils/tests/test_nmblookup.sh "\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP" 
 plantest "blackbox.nmblookup" member $samba4srcdir/utils/tests/test_nmblookup.sh "\$NETBIOSNAME" "\$NETBIOSALIAS" "\$SERVER" "\$SERVER_IP"
 plantest "blackbox.locktest" dc $bbdir/test_locktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
+plantest "blackbox.masktest" dc $bbdir/test_masktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
 
 # Tests using the "Simple" NTVFS backend
 
diff --git a/source/torture/gentest.c b/source/torture/gentest.c
index 8fa433a..28cac81 100644
--- a/source/torture/gentest.c
+++ b/source/torture/gentest.c
@@ -18,6 +18,7 @@
 */
 
 #include "includes.h"
+#include "lib/cmdline/popt_common.h"
 #include "system/time.h"
 #include "system/filesys.h"
 #include "libcli/raw/request.h"
@@ -1755,6 +1756,7 @@ static void gen_setfileinfo(int instance, union smb_setfileinfo *info)
 		info->end_of_file_info.in.size = gen_offset();
 		break;
 	case RAW_SFILEINFO_RENAME_INFORMATION:
+	case RAW_SFILEINFO_RENAME_INFORMATION_SMB2:
 		info->rename_information.in.overwrite = gen_bool();
 		info->rename_information.in.root_fid = gen_root_fid(instance);
 		info->rename_information.in.new_name = gen_fname_open(instance);
@@ -2129,25 +2131,13 @@ static bool start_gentest(struct loadparm_context *lp_ctx)
 }
 
 
-static void usage(void)
+static void usage(poptContext pc)
 {
 	printf(
 "Usage:\n\
-  gentest2 //server1/share1 //server2/share2 [options..]\n\
-  options:\n\
-        -U user%%pass        (can be specified twice)\n\
-        -s seed\n\
-        -o numops\n\
-        -a            (show all ops)\n\
-        -A            backtrack to find minimal ops\n\
-        -i FILE       add a list of wildcard exclusions\n\
-        -O            enable oplocks\n\
-        -S FILE       set preset seeds file\n\
-        -L            use preset seeds\n\
-        -F            fast reconnect (just close files)\n\
-        -C            continuous analysis mode\n\
-        -X            analyse even when test OK\n\
+  gentest //server1/share1 //server2/share2 [options..]\n\
 ");
+	poptPrintUsage(pc, stdout, 0);
 }
 
 /**
@@ -2180,14 +2170,88 @@ static bool split_unc_name(const char *unc, char **server, char **share)
 	int opt;
 	int i, username_count=0;
 	bool ret;
+	char *ignore_file=NULL;
 	struct loadparm_context *lp_ctx;
+	poptContext pc;
+	int argc_new;
+	char **argv_new;
+	enum {OPT_UNCLIST=1000};
+	struct poptOption long_options[] = {
+		POPT_AUTOHELP
+		{"seed",	  0, POPT_ARG_INT,  &options.seed, 	0,	"Seed to use for randomizer", 	NULL},
+		{"num-ops",	  0, POPT_ARG_INT,  &options.numops, 	0, 	"num ops",	NULL},
+		{"oplocks",       0, POPT_ARG_NONE, &options.use_oplocks,0,      "use oplocks", NULL},
+		{"showall",       0, POPT_ARG_NONE, &options.showall,    0,      "display all operations", NULL},
+		{"analyse",       0, POPT_ARG_NONE, &options.analyze,    0,      "do backtrack analysis", NULL},
+		{"analysealways", 0, POPT_ARG_NONE, &options.analyze_always,    0,      "analysis always", NULL},
+		{"analysecontinuous", 0, POPT_ARG_NONE, &options.analyze_continuous,    0,      "analysis continuous", NULL},
+		{"ignore",        0, POPT_ARG_STRING, &ignore_file,    0,      "ignore from file", NULL},
+		{"preset",        0, POPT_ARG_NONE, &options.use_preset_seeds,    0,      "use preset seeds", NULL},
+		{"fast",          0, POPT_ARG_NONE, &options.fast_reconnect,    0,      "use fast reconnect", NULL},
+		{"unclist",	  0, POPT_ARG_STRING,	NULL, 	OPT_UNCLIST,	"unclist", 	NULL},
+		{"seedsfile",	  0, POPT_ARG_STRING,  &options.seeds_file, 0,	"seed file", 	NULL},
+		{ "user", 'U',       POPT_ARG_STRING, NULL, 'U', "Set the network username", "[DOMAIN/]USERNAME[%PASSWORD]" },
+		POPT_COMMON_SAMBA
+		POPT_COMMON_CONNECTION
+		POPT_COMMON_CREDENTIALS
+		POPT_COMMON_VERSION
+		{ NULL }
+	};
+
+	setlinebuf(stdout);
+	options.seed = time(NULL);
+
+	pc = poptGetContext("gentest", argc, (const char **) argv, long_options, 
+			    POPT_CONTEXT_KEEP_FIRST);
+
+	poptSetOtherOptionHelp(pc, "<unc1> <unc2>");
+
+	lp_ctx = cmdline_lp_ctx;
+	servers[0].credentials = cli_credentials_init(talloc_autofree_context());
+	servers[1].credentials = cli_credentials_init(talloc_autofree_context());
+	cli_credentials_guess(servers[0].credentials, lp_ctx);
+	cli_credentials_guess(servers[1].credentials, lp_ctx);
+
+	while((opt = poptGetNextOpt(pc)) != -1) {
+		switch (opt) {
+		case OPT_UNCLIST:
+			lp_set_cmdline(cmdline_lp_ctx, "torture:unclist", poptGetOptArg(pc));
+			break;
+		case 'U':
+			if (username_count == 2) {
+				usage(pc);
+				exit(1);
+			}
+			cli_credentials_parse_string(servers[username_count].credentials, poptGetOptArg(pc), CRED_SPECIFIED);
+			username_count++;
+			break;
+		}
+	}
+
+	if (ignore_file) {
+		options.ignore_patterns = file_lines_load(ignore_file, NULL, NULL);
+	}
+
+	argv_new = discard_const_p(char *, poptGetArgs(pc));
+	argc_new = argc;
+	for (i=0; i<argc; i++) {
+		if (argv_new[i] == NULL) {
+			argc_new = i;
+			break;
+		}
+	}
+
+	if (!(argc_new >= 3)) {
+		usage(pc);
+		exit(1);
+	}
 
 	setlinebuf(stdout);
 
 	setup_logging("gentest", DEBUG_STDOUT);
 
 	if (argc < 3 || argv[1][0] == '-') {
-		usage();
+		usage(pc);
 		exit(1);
 	}
 
@@ -2195,7 +2259,6 @@ static bool split_unc_name(const char *unc, char **server, char **share)
 
 	for (i=0;i<NSERVERS;i++) {
 		const char *share = argv[1+i];
-		servers[i].credentials = cli_credentials_init(NULL);
 		if (!split_unc_name(share, &servers[i].server_name, &servers[i].share_name)) {
 			printf("Invalid share name '%s'\n", share);
 			return -1;
@@ -2205,80 +2268,15 @@ static bool split_unc_name(const char *unc, char **server, char **share)
 	argc -= NSERVERS;
 	argv += NSERVERS;
 
-	global_loadparm = lp_ctx = loadparm_init(talloc_autofree_context());
 	lp_load(lp_ctx, dyn_CONFIGFILE);
 
-	servers[0].credentials = cli_credentials_init(talloc_autofree_context());
-	servers[1].credentials = cli_credentials_init(talloc_autofree_context());
-	cli_credentials_guess(servers[0].credentials, lp_ctx);
-	cli_credentials_guess(servers[1].credentials, lp_ctx);
-
 	options.seed = time(NULL);
 	options.numops = 1000;
 	options.max_open_handles = 20;
 	options.seeds_file = "gentest_seeds.dat";
 
-	while ((opt = getopt(argc, argv, "U:s:o:ad:i:AOhS:LFXC")) != EOF) {
-		switch (opt) {
-		case 'U':
-			if (username_count == 2) {
-				usage();
-				exit(1);
-			}
-			cli_credentials_parse_string(servers[username_count].credentials, 
-						     optarg, CRED_SPECIFIED);
-			username_count++;
-			break;
-		case 'd':
-			DEBUGLEVEL = atoi(optarg);
-			setup_logging(NULL, DEBUG_STDOUT);
-			break;
-		case 's':
-			options.seed = atoi(optarg);
-			break;
-		case 'S':
-			options.seeds_file = optarg;
-			break;
-		case 'L':
-			options.use_preset_seeds = true;
-			break;
-		case 'F':
-			options.fast_reconnect = true;
-			break;
-		case 'o':
-			options.numops = atoi(optarg);
-			break;
-		case 'O':
-			options.use_oplocks = true;
-			break;
-		case 'a':
-			options.showall = true;
-			break;
-		case 'A':
-			options.analyze = true;
-			break;
-		case 'X':
-			options.analyze_always = true;
-			break;
-		case 'C':
-			options.analyze_continuous = true;
-			break;
-		case 'i':
-			options.ignore_patterns = file_lines_load(optarg, NULL, NULL);
-			break;
-		case 'h':
-			usage();
-			exit(1);
-		default:
-			printf("Unknown option %c (%d)\n", (char)opt, opt);
-			exit(1);
-		}
-	}
-
-	gensec_init(lp_ctx);
-
 	if (username_count == 0) {
-		usage();
+		usage(pc);
 		return -1;
 	}
 	if (username_count == 1) {
@@ -2287,6 +2285,8 @@ static bool split_unc_name(const char *unc, char **server, char **share)
 
 	printf("seed=%u\n", options.seed);
 
+	gensec_init(lp_ctx);
+
 	ret = start_gentest(lp_ctx);
 
 	if (ret) {
diff --git a/source/torture/locktest.c b/source/torture/locktest.c
index ebc325f..039484a 100644
--- a/source/torture/locktest.c
+++ b/source/torture/locktest.c
@@ -396,7 +396,7 @@ static int retest(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
    we then do random locking ops in tamdem on the 4 fnums from each
    server and ensure that the results match
  */
-static void test_locks(struct loadparm_context *lp_ctx, char *share[NSERVERS])
+static int test_locks(struct loadparm_context *lp_ctx, char *share[NSERVERS])
 {
 	struct smbcli_state *cli[NSERVERS][NCONNECTIONS];
 	int fnum[NSERVERS][NCONNECTIONS][NFILES];
@@ -451,7 +451,12 @@ static void test_locks(struct loadparm_context *lp_ctx, char *share[NSERVERS])
 	open_files(cli, fnum);
 	n = retest(cli, fnum, numops);
 
-	if (n == numops || !analyze) return;
+	if (n == numops || !analyze) {
+		if (n != numops) {
+			return 1;
+		}
+		return 0;
+	}
 	n++;
 
 	skip = n/2;
@@ -517,11 +522,13 @@ static void test_locks(struct loadparm_context *lp_ctx, char *share[NSERVERS])
 		       (double)recorded[i].len,
 		       recorded[i].needed);
 	}	
+
+	return 1;
 }
 
 
 
-_NORETURN_ static void usage(poptContext pc)
+static void usage(poptContext pc)
 {
 	printf("Usage:\n\tlocktest //server1/share1 //server2/share2 [options..]\n");
 	poptPrintUsage(pc, stdout, 0);
@@ -566,11 +573,12 @@ _NORETURN_ static void usage(poptContext pc)
 	setlinebuf(stdout);
 	seed = time(NULL);
 
-	pc = poptGetContext("locjtest", argc, (const char **) argv, long_options, 
+	pc = poptGetContext("locktest", argc, (const char **) argv, long_options, 
 			    POPT_CONTEXT_KEEP_FIRST);
 
 	poptSetOtherOptionHelp(pc, "<unc1> <unc2>");
 
+	lp_ctx = cmdline_lp_ctx;
 	servers[0] = cli_credentials_init(talloc_autofree_context());
 	servers[1] = cli_credentials_init(talloc_autofree_context());
 	cli_credentials_guess(servers[0], lp_ctx);
@@ -632,8 +640,6 @@ _NORETURN_ static void usage(poptContext pc)
 		 seed, lock_base, lock_range, min_length));
 	srandom(seed);
 
-	test_locks(lp_ctx, share);
-
-	return(0);
+	return test_locks(lp_ctx, share);
 }
 
diff --git a/testprogs/blackbox/test_locktest.sh b/testprogs/blackbox/test_masktest.sh
similarity index 61%
copy from testprogs/blackbox/test_locktest.sh
copy to testprogs/blackbox/test_masktest.sh
index c08b408..ef429a1 100755
--- a/testprogs/blackbox/test_locktest.sh
+++ b/testprogs/blackbox/test_masktest.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
-# Blackbox tests for locktest
+# Blackbox tests for masktest
 # Copyright (C) 2008 Andrew Tridgell
 # based on test_smbclient.sh
 
 if [ $# -lt 5 ]; then
 cat <<EOF
-Usage: test_locktest.sh SERVER USERNAME PASSWORD DOMAIN PREFIX
+Usage: test_masktest.sh SERVER USERNAME PASSWORD DOMAIN PREFIX
 EOF
 exit 1;
 fi
@@ -19,7 +19,7 @@ shift 5
 failed=0
 
 samba4bindir=`dirname $0`/../../source/bin
-locktest=$samba4bindir/locktest
+masktest=$samba4bindir/masktest
 
 testit() {
 	name="$1"
@@ -36,6 +36,6 @@ testit() {
 	return $status
 }
 
-testit "locktest" $VALGRIND $locktest //$SERVER/test1 //$SERVER/test2 --num-ops=100  -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@ || failed=`expr $failed + 1`
+testit "masktest" $VALGRIND $masktest //$SERVER/tmp --num-ops=200 --dieonerror -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@ || failed=`expr $failed + 1`
 
 exit $failed


-- 
Samba Shared Repository


More information about the samba-cvs mailing list