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