[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