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