selftest/selftesthelpers.py: Share configuration variable, strip whitespace.
[nivanova/samba-autobuild/.git] / source3 / selftest / tests.py
1 #!/usr/bin/python
2 # This script generates a list of testsuites that should be run as part of
3 # the Samba 3 test suite.
4
5 # The output of this script is parsed by selftest.pl, which then decides
6 # which of the tests to actually run. It will, for example, skip all tests
7 # listed in selftest/skip or only run a subset during "make quicktest".
8
9 # The idea is that this script outputs all of the tests of Samba 3, not
10 # just those that are known to pass, and list those that should be skipped
11 # or are known to fail in selftest/skip or selftest/samba3-knownfail. This makes it
12 # very easy to see what functionality is still missing in Samba 3 and makes
13 # it possible to run the testsuite against other servers, such as Samba 4 or
14 # Windows that have a different set of features.
15
16 # The syntax for a testsuite is "-- TEST --" on a single line, followed
17 # by the name of the test, the environment it needs and the command to run, all
18 # three separated by newlines. All other lines in the output are considered
19 # comments.
20
21 import os, sys
22 sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest")))
23 from selftesthelpers import *
24 import subprocess
25 samba3srcdir = srcdir() + "/source3"
26 scriptdir = os.path.join(samba3srcdir, "../script/tests")
27
28 smbclient = binpath('smbclient3')
29 wbinfo = binpath('wbinfo')
30 net = binpath('net')
31 smbtorture3 = binpath('smbtorture3')
32 ntlm_auth = binpath('ntlm_auth3')
33 dbwrap_tool = binpath('dbwrap_tool')
34 vfstest = binpath('vfstest')
35
36 torture_options = [configuration, "--maximum-runtime=$SELFTEST_MAXTIME",
37                    "--basedir=$SELFTEST_TMPDIR",
38                    '--option="torture:winbindd_netbios_name=$SERVER"',
39                    '--option="torture:winbindd_netbios_domain=$DOMAIN"',
40                    '--option=torture:sharedelay=100000',
41                    '--option=torture:writetimeupdatedelay=500000' ]
42
43 if not os.getenv("SELFTEST_VERBOSE"):
44     torture_options.append("--option=torture:progress=no")
45 torture_options.append("--format=subunit")
46 if os.getenv("SELFTEST_QUICK"):
47     torture_options.append("--option=torture:quick=yes")
48
49 smbtorture4 += " " + " ".join(torture_options)
50
51 sub = subprocess.Popen("%s --version 2> /dev/null" % smbtorture4, stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)
52 sub.communicate("")
53 smbtorture4_possible = (sub.returncode == 0)
54
55
56 def plansmbtorturetestsuite(name, env, options, description=''):
57     target = "samba3"
58     if description == '':
59         modname = "%s.%s" % (target, name)
60     else:
61         modname = "%s.%s %s" % (target, name, description)
62
63     cmdline = "%s $LISTOPT %s --target=%s %s" % (valgrindify(smbtorture4), options, target, name)
64     if smbtorture4_possible:
65         plantestsuite_loadlist(modname, env, cmdline)
66
67
68 plantestsuite("samba3.blackbox.success", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
69 plantestsuite("samba3.blackbox.failure", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
70
71 plantestsuite("samba3.local_s3", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
72
73 plantestsuite("samba3.blackbox.registry.upgrade", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool])
74
75 tests=[ "FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7", "LOCK9",
76         "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE",
77         "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR",
78         "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "RW-SIGNING",
79         "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "PROPERTIES", "W2K",
80         "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2",
81         "CHAIN3",
82         "GETADDRINFO", "UID-REGRESSION-TEST", "SHORTNAME-TEST",
83         "CASE-INSENSITIVE-CREATE", "SMB2-BASIC", "NTTRANS-FSCTL", "SMB2-NEGPROT",
84         "SMB2-SESSION-REAUTH", "SMB2-SESSION-RECONNECT",
85         "CLEANUP1",
86         "CLEANUP2",
87         "BAD-NBT-SESSION"]
88
89 for t in tests:
90     plantestsuite("samba3.smbtorture_s3.plain(s3dc).%s" % t, "s3dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
91     plantestsuite("samba3.smbtorture_s3.crypt_client(s3dc).%s" % t, "s3dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "-e", "-l $LOCAL_PATH"])
92     if t == "TORTURE":
93         # this is a negative test to verify that the server rejects
94         # access without encryption
95         plantestsuite("samba3.smbtorture_s3.crypt_server(s3dc).%s" % t, "s3dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmpenc', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
96     plantestsuite("samba3.smbtorture_s3.plain(dc).%s" % t, "dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
97
98 tests = ["RW1", "RW2", "RW3"]
99 for t in tests:
100     plantestsuite("samba3.smbtorture_s3.vfs_aio_fork(simpleserver).%s" % t, "simpleserver", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/vfs_aio_fork', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
101
102 posix_tests=[ "POSIX", "POSIX-APPEND"]
103
104 for t in posix_tests:
105     plantestsuite("samba3.smbtorture_s3.plain(s3dc).%s" % t, "s3dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/posix_share', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
106     plantestsuite("samba3.smbtorture_s3.crypt(s3dc).%s" % t, "s3dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/posix_share', '$USERNAME', '$PASSWORD', smbtorture3, "-e", "-l $LOCAL_PATH"])
107     plantestsuite("samba3.smbtorture_s3.plain(dc).%s" % t, "dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/posix_share', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
108
109 env = "s3dc:local"
110 t = "CLEANUP3"
111 plantestsuite("samba3.smbtorture_s3.plain(%s).%s" % (env, t), env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', binpath('smbtorture3'), "", "-l $LOCAL_PATH"])
112
113 local_tests=[
114         "LOCAL-SUBSTITUTE",
115         "LOCAL-GENCACHE",
116         "LOCAL-TALLOC-DICT",
117         "LOCAL-BASE64",
118         "LOCAL-RBTREE",
119         "LOCAL-MEMCACHE",
120         "LOCAL-STREAM-NAME",
121         "LOCAL-WBCLIENT",
122         "LOCAL-string_to_sid",
123         "LOCAL-binary_to_sid",
124         "LOCAL-DBTRANS",
125         "LOCAL-TEVENT-SELECT",
126         "LOCAL-CONVERT-STRING",
127         "LOCAL-CONV-AUTH-INFO",
128         "LOCAL-IDMAP-TDB-COMMON",
129         "LOCAL-hex_encode_buf",
130         "LOCAL-sprintf_append",
131         "LOCAL-remove_duplicate_addrs2"]
132
133 for t in local_tests:
134     plantestsuite("samba3.smbtorture_s3.%s" % t, "s3dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "-e"])
135
136 tests=["--ping", "--separator",
137        "--own-domain",
138        "--all-domains",
139        "--trusted-domains",
140        "--domain-info=BUILTIN",
141        "--domain-info=$DOMAIN",
142        "--online-status",
143        "--online-status --domain=BUILTIN",
144        "--online-status --domain=$DOMAIN",
145        "--check-secret --domain=$DOMAIN",
146        "--change-secret --domain=$DOMAIN",
147        "--check-secret --domain=$DOMAIN",
148        "--online-status --domain=$DOMAIN",
149        #Didn't pass yet# "--domain-users",
150        "--domain-groups",
151        "--name-to-sid=$DC_USERNAME",
152        "--name-to-sid=$DOMAIN\\\\$DC_USERNAME",
153      #Didn't pass yet# "--user-info=$USERNAME",
154        "--user-groups=$DOMAIN\\\\$DC_USERNAME",
155        "--authenticate=$DOMAIN\\\\$DC_USERNAME%$DC_PASSWORD",
156        "--allocate-uid",
157        "--allocate-gid"]
158
159 plantestsuite("samba.vfstest.stream_depot", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
160 plantestsuite("samba.vfstest.xattr-tdb-1", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
161 plantestsuite("samba.vfstest.acl", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
162
163 for options in ["--option=clientusespnego=no", " --option=clientntlmv2auth=no --option=clientlanmanauth=yes --max-protocol=LANMAN2", ""]:
164     env = "s3dc"
165     plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient, configuration, options])
166
167 for env in ["s3dc", "member", "s3member", "dc", "s4member"]:
168     plantestsuite("samba3.blackbox.smbclient_machine_auth.plain (%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_machine_auth.sh"), '$SERVER', smbclient, configuration])
169
170 for env in ["s3dc", "member", "s3member"]:
171     plantestsuite("samba3.blackbox.smbclient_auth.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient, configuration])
172     plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER\\\\$USERNAME', '$PASSWORD', smbclient, configuration])
173
174     for t in tests:
175         plantestsuite("samba3.wbinfo_s3.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_wbinfo_s3.sh"), t])
176
177     plantestsuite(
178         "samba3.wbinfo_sids2xids.(%s:local)" % env, "%s:local" % env,
179         [os.path.join(samba3srcdir, "script/tests/test_wbinfo_sids2xids.sh")])
180
181     plantestsuite(
182         "samba3.ntlm_auth.diagnostics(%s:local)" % env, "%s:local" % env,
183         [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_diagnostics.sh"), ntlm_auth, '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', configuration])
184
185     plantestsuite("samba3.ntlm_auth.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_s3.sh"), valgrindify(python), samba3srcdir, ntlm_auth,  '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', configuration])
186
187 env = "s3member"
188 t = "--krb5auth=$DOMAIN\\\\$DC_USERNAME%$DC_PASSWORD"
189 plantestsuite("samba3.wbinfo_s3.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_wbinfo_s3.sh"), t])
190
191 plantestsuite("samba3.ntlm_auth.krb5(ktest:local) old ccache", "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_krb5.sh"), valgrindify(python), samba3srcdir, ntlm_auth, '$PREFIX/ktest/krb5_ccache-2', '$SERVER', configuration])
192
193 plantestsuite("samba3.ntlm_auth.krb5(ktest:local)", "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_krb5.sh"), valgrindify(python), samba3srcdir, ntlm_auth, '$PREFIX/ktest/krb5_ccache-3', '$SERVER', configuration])
194
195
196 for env in ["maptoguest", "simpleserver"]:
197     plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) local creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient, configuration + " --option=clientntlmv2auth=no --option=clientlanmanauth=yes"])
198
199 env = "maptoguest"
200 plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) bad username" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', 'notmy$USERNAME', '$PASSWORD', smbclient, configuration + " --option=clientntlmv2auth=no --option=clientlanmanauth=yes"])
201
202 # plain
203 for env in ["s3dc"]:
204     plantestsuite("samba3.blackbox.smbclient_s3.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration])
205
206 for env in ["member", "s3member"]:
207     plantestsuite("samba3.blackbox.smbclient_s3.plain (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$SERVER', '$SERVER\\\\$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration])
208
209 for env in ["s3dc"]:
210     plantestsuite("samba3.blackbox.smbclient_s3.sign (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration, "--signing=required"])
211
212 for env in ["member", "s3member"]:
213     plantestsuite("samba3.blackbox.smbclient_s3.sign (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$SERVER', '$SERVER\\\\$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration, "--signing=required"])
214
215 for env in ["s3dc"]:
216     # encrypted
217     plantestsuite("samba3.blackbox.smbclient_s3.crypt (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration, "-e"])
218
219     # Test smbclient/tarmode
220     plantestsuite("samba3.blackbox.smbclient_tarmode (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient, configuration])
221
222 #TODO encrypted against member, with member creds, and with DC creds
223 plantestsuite("samba3.blackbox.net.misc", "s3dc:local",
224               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
225                scriptdir, "$SMB_CONF_PATH", net, configuration])
226 plantestsuite("samba3.blackbox.net.local.registry", "s3dc:local",
227               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
228                scriptdir, "$SMB_CONF_PATH", net, configuration])
229 plantestsuite("samba3.blackbox.net.registry.check", "s3dc:local",
230               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
231                scriptdir, "$SMB_CONF_PATH", net, configuration,dbwrap_tool])
232 plantestsuite("samba3.blackbox.net.rpc.registry", "s3dc",
233               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
234                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
235
236 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "s3dc:local",
237               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
238                scriptdir, "$SMB_CONF_PATH", net, configuration])
239 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "s3dc",
240               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
241                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
242
243 plantestsuite("samba3.blackbox.net.local.conf", "s3dc:local",
244               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
245                scriptdir, "$SMB_CONF_PATH", net, configuration])
246 plantestsuite("samba3.blackbox.net.rpc.conf", "s3dc",
247               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
248                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
249
250
251 plantestsuite("samba3.blackbox.testparm", "s3dc:local",
252               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
253                "$LOCAL_PATH"])
254
255 plantestsuite(
256     "samba3.pthreadpool", "s3dc",
257     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
258
259 #smbtorture4 tests
260
261 base = ["base.attr", "base.charset", "base.chkpath", "base.defer_open", "base.delaywrite", "base.delete",
262         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
263         "base.disconnect", "base.fdpass", "base.lock",
264         "base.mangle", "base.negnowait", "base.ntdeny1",
265         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
266         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
267         "base.xcopy", "base.samba3error"]
268
269 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
270        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
271        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
272        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
273        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
274        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
275        "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
276        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
277        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
278
279 smb2 = smbtorture4_testsuites("smb2.")
280
281 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
282        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
283        "rpc.samba3.getaliasmembership-0",
284        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
285        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
286        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
287        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
288        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
289        "rpc.spoolss.driver",
290        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
291        "rpc.lsa.privileges", "rpc.lsa.secrets",
292        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
293        "rpc.samr.passwords.pwdlastset", "rpc.samr.large-dc", "rpc.samr.machine.auth",
294        "rpc.samr.priv",
295        "rpc.netlogon.admin",
296        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.join", "rpc.bind"]
297
298 local = ["local.nss-wrapper", "local.ndr"]
299
300 winbind = ["winbind.struct", "winbind.wbclient", "winbind.pac"]
301
302 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
303
304 unix = ["unix.info2", "unix.whoami"]
305
306 nbt = ["nbt.dgram" ]
307
308 libsmbclient = ["libsmbclient"]
309
310 tests= base + raw + smb2 + rpc + unix + local + winbind + rap + nbt + libsmbclient
311
312 for t in tests:
313     if t == "base.delaywrite":
314         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
315         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
316     elif t == "rap.sam":
317         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
318         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
319     elif t == "winbind.pac":
320         plansmbtorturetestsuite(t, "s3member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
321     elif t == "unix.whoami":
322         plansmbtorturetestsuite(t, "member:local", '//$SERVER/tmp --machine-pass', description="machine account")
323         plansmbtorturetestsuite(t, "s3member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
324         for env in ["s3dc", "member"]:
325             plansmbtorturetestsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
326             plansmbtorturetestsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
327         for env in ["plugin_s4_dc", "s3member"]:
328             plansmbtorturetestsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
329             plansmbtorturetestsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
330             plansmbtorturetestsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
331     elif t == "raw.samba3posixtimedlock":
332         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/s3dc/share')
333         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/plugin_s4_dc/share')
334     elif t == "raw.chkpath":
335         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
336         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
337     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t ==  "raw.samba3closeerr":
338         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
339         plansmbtorturetestsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
340         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
341     elif t == "raw.session" or t == "smb2.session":
342         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
343         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
344         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
345         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
346     elif t == "rpc.lsa":
347         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
348         plansmbtorturetestsuite(t, "s3dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
349         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
350         plansmbtorturetestsuite(t, "plugin_s4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
351     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open":
352         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
353         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
354     else:
355         plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
356         plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
357
358
359 test = 'rpc.lsa.lookupsids'
360 auth_options = ["", "ntlm", "spnego", "spnego,ntlm" ]
361 signseal_options = ["", ",connect", ",sign", ",seal"]
362 endianness_options = ["", ",bigendian"]
363 for s in signseal_options:
364     for e in endianness_options:
365         for a in auth_options:
366             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
367             options = binding_string + " -U$USERNAME%$PASSWORD"
368             plansmbtorturetestsuite(test, "s3dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
369             plantestsuite("samba3.blackbox.rpcclient over ncacn_np with [%s%s%s] " % (a, s, e), "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"),
370                                                              "none", options, configuration])
371
372     # We should try more combinations in future, but this is all
373     # the pre-calculated credentials cache supports at the moment
374     e = ""
375     a = ""
376     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
377     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
378     plansmbtorturetestsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
379
380     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
381     plansmbtorturetestsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
382
383     auth_options2 = ["krb5", "spnego,krb5"]
384     for a in auth_options2:
385         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
386
387         plantestsuite("samba3.blackbox.rpcclient krb5 ncacn_np with [%s%s%s] " % (a, s, e), "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"),
388                                                                                                                               "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
389
390
391 options_list = ["", "-e"]
392 for options in options_list:
393     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
394                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
395                    "$PREFIX/ktest/krb5_ccache-2",
396                    smbclient, "$SERVER", options, configuration])
397
398     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
399                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
400                    "$PREFIX/ktest/krb5_ccache-2",
401                    smbclient, "$SERVER", options, configuration])
402
403     plantestsuite("samba3.blackbox.smbclient_large_file %s" % options, "ktest:local",
404                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
405                    "$PREFIX/ktest/krb5_ccache-3",
406                    smbclient, "$SERVER", "$PREFIX", options, "-k " + configuration])
407
408     plantestsuite("samba3.blackbox.smbclient_posix_large %s krb5" % options, "ktest:local",
409                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
410                    "$PREFIX/ktest/krb5_ccache-3",
411                    smbclient, "$SERVER", "$PREFIX", options, "-k " + configuration])
412
413     plantestsuite("samba3.blackbox.smbclient_posix_large %s NTLM" % options, "s3dc:local",
414                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
415                    "none",
416                    smbclient, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
417
418 for e in endianness_options:
419     for a in auth_options:
420         for s in signseal_options:
421             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
422             options = binding_string + " -U$USERNAME%$PASSWORD"
423             plansmbtorturetestsuite(test, "s3dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
424
425 plansmbtorturetestsuite('rpc.epmapper', 's3dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')