s4:torture: add boilerplate code for vfs_fruit
[kai/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:sharedelay=100000',
27    '--option=torture:writetimeupdatedelay=500000',
28    ])
29
30 def plansmbtorture4testsuite(name, env, options, description=''):
31     if description == '':
32         modname = "samba3.%s" % (name, )
33     else:
34         modname = "samba3.%s %s" % (name, description)
35
36     selftesthelpers.plansmbtorture4testsuite(
37         name, env, options, target='samba3', modname=modname)
38
39
40 plantestsuite("samba3.blackbox.success", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
41 plantestsuite("samba3.blackbox.failure", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
42
43 plantestsuite("samba3.local_s3", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
44
45 plantestsuite("samba3.blackbox.registry.upgrade", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool])
46
47 tests = ["FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7", "LOCK9",
48         "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE",
49         "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR",
50         "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "LARGE_READX", "RW-SIGNING",
51         "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "PROPERTIES", "W2K",
52         "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2",
53         "CHAIN3",
54         "GETADDRINFO", "UID-REGRESSION-TEST", "SHORTNAME-TEST",
55         "CASE-INSENSITIVE-CREATE", "SMB2-BASIC", "NTTRANS-FSCTL", "SMB2-NEGPROT",
56         "SMB2-SESSION-REAUTH", "SMB2-SESSION-RECONNECT",
57         "CLEANUP1",
58         "CLEANUP2",
59         "CLEANUP4",
60         "BAD-NBT-SESSION"]
61
62 for t in tests:
63     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"])
64     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"])
65     if t == "TORTURE":
66         # this is a negative test to verify that the server rejects
67         # access without encryption
68         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"])
69     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"])
70
71 # non-crypt only
72
73 tests = ["OPLOCK-CANCEL"]
74 for t in tests:
75     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"])
76
77 tests = ["RW1", "RW2", "RW3"]
78 for t in tests:
79     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"])
80
81 posix_tests = ["POSIX", "POSIX-APPEND"]
82
83 for t in posix_tests:
84     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"])
85     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"])
86     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"])
87
88 env = "s3dc:local"
89 t = "CLEANUP3"
90 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"])
91
92 local_tests = [
93     "LOCAL-SUBSTITUTE",
94     "LOCAL-GENCACHE",
95     "LOCAL-TALLOC-DICT",
96     "LOCAL-BASE64",
97     "LOCAL-RBTREE",
98     "LOCAL-MEMCACHE",
99     "LOCAL-STREAM-NAME",
100     "LOCAL-WBCLIENT",
101     "LOCAL-string_to_sid",
102     "LOCAL-sid_to_string",
103     "LOCAL-binary_to_sid",
104     "LOCAL-DBTRANS",
105     "LOCAL-TEVENT-SELECT",
106     "LOCAL-CONVERT-STRING",
107     "LOCAL-CONV-AUTH-INFO",
108     "LOCAL-IDMAP-TDB-COMMON",
109     "LOCAL-MESSAGING-READ1",
110     "LOCAL-MESSAGING-READ2",
111     "LOCAL-MESSAGING-READ3",
112     "LOCAL-hex_encode_buf",
113     "LOCAL-sprintf_append",
114     "LOCAL-remove_duplicate_addrs2"]
115
116 for t in local_tests:
117     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"])
118
119 plantestsuite("samba.vfstest.stream_depot", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
120 plantestsuite("samba.vfstest.xattr-tdb-1", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
121 plantestsuite("samba.vfstest.acl", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
122 plantestsuite("samba.vfstest.catia", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
123
124 for options in ["--option=clientusespnego=no", " --option=clientntlmv2auth=no --option=clientlanmanauth=yes --max-protocol=LANMAN2", ""]:
125     env = "s3dc"
126     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])
127
128 for env in ["s3dc", "member", "s3member", "dc", "s4member"]:
129     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])
130
131 for env in ["s3dc", "member", "s3member"]:
132     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])
133     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])
134
135 for env in ["member", "s3member"]:
136     plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
137
138 env = "s3member"
139 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
140 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
141
142 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])
143
144 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])
145
146
147 for env in ["maptoguest", "simpleserver"]:
148     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"])
149
150 env = "maptoguest"
151 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"])
152
153 # plain
154 for env in ["s3dc"]:
155     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])
156
157 for env in ["member", "s3member"]:
158     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])
159
160 for env in ["s3dc"]:
161     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"])
162
163 for env in ["member", "s3member"]:
164     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"])
165
166 for env in ["s3dc"]:
167     # encrypted
168     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"])
169
170
171     #
172     # tar command tests
173     #
174
175     # find config.h
176     try:
177         config_h = os.environ["CONFIG_H"]
178     except KeyError:
179         config_h = os.path.join(samba4bindir, "default/include/config.h")
180
181     # see if libarchive is supported
182     f = open(config_h, 'r')
183     try:
184         have_libarchive = ("HAVE_LIBARCHIVE 1" in f.read())
185     finally:
186         f.close()
187
188     # tar command enabled only if built with libarchive
189     if have_libarchive:
190         # Test smbclient/tarmode
191         plantestsuite("samba3.blackbox.smbclient_tarmode (%s)" % env, env,
192                       [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
193                        '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
194                        '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
195
196         # Test suite for new smbclient/tar with libarchive (GSoC 13)
197         plantestsuite("samba3.blackbox.smbclient_tar (%s)" % env, env,
198                       [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
199                        '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
200                        '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH',
201                        '-d', '$PREFIX', '-b', smbclient3,
202                        '--subunit', '--', 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.passwords.lockout", "rpc.samr.passwords.badpwdcount", "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.ndr"]
281
282 idmap = [ "idmap.rfc2307" ]
283
284 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
285
286 unix = ["unix.info2", "unix.whoami"]
287
288 nbt = ["nbt.dgram" ]
289
290 libsmbclient = ["libsmbclient"]
291
292 vfs = ["vfs.fruit"]
293
294 tests= base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
295
296 for t in tests:
297     if t == "base.delaywrite":
298         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
299     elif t == "rap.sam":
300         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
301         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
302     elif t == "winbind.pac":
303         plansmbtorture4testsuite(t, "s3member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
304     elif t == "unix.whoami":
305         plansmbtorture4testsuite(t, "member:local", '//$SERVER/tmp --machine-pass', description="machine account")
306         plansmbtorture4testsuite(t, "s3member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
307         for env in ["s3dc", "member"]:
308             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
309             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
310         for env in ["plugin_s4_dc", "s3member"]:
311             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
312             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
313             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
314     elif t == "raw.samba3posixtimedlock":
315         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/s3dc/share')
316         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/plugin_s4_dc/share')
317     elif t == "raw.chkpath":
318         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
319         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
320     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t ==  "raw.samba3closeerr":
321         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
322         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
323         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
324     elif t == "raw.session" or t == "smb2.session":
325         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
326         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
327         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
328         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
329     elif t == "rpc.lsa":
330         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
331         plansmbtorture4testsuite(t, "s3dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
332         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
333         plansmbtorture4testsuite(t, "plugin_s4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
334     elif t == "rpc.samr.passwords.validate":
335         plansmbtorture4testsuite(t, "s3dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
336         plansmbtorture4testsuite(t, "plugin_s4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
337     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open":
338         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
339         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
340     elif t == "base.rw1":
341         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
342         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
343         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
344         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
345     elif t == "idmap.rfc2307":
346         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'])
347     elif t == "raw.acls":
348         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
349         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/nfs4acl_simple -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple')
350         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/nfs4acl_special -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special')
351         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
352     elif t == "smb2.ioctl":
353         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
354         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
355         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
356     elif t == "smb2.lock":
357         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
358         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
359         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
360     elif t == "raw.search":
361         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
362 # test the dirsort module.
363         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
364         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
365     elif t == "vfs.fruit":
366         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:share1=vfs_fruit --option=torture:share2=tmp --option=torture:localdir=$SELFTEST_PREFIX/s3dc/share')
367         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:share1=vfs_fruit --option=torture:share2=tmp --option=torture:localdir=$SELFTEST_PREFIX/plugin_s4_dc/share')
368     else:
369         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
370         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
371
372
373 test = 'rpc.lsa.lookupsids'
374 auth_options = ["", "ntlm", "spnego", "spnego,ntlm" ]
375 signseal_options = ["", ",connect", ",sign", ",seal"]
376 endianness_options = ["", ",bigendian"]
377 for s in signseal_options:
378     for e in endianness_options:
379         for a in auth_options:
380             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
381             options = binding_string + " -U$USERNAME%$PASSWORD"
382             plansmbtorture4testsuite(test, "s3dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
383             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"),
384                                                              "none", options, configuration])
385
386     # We should try more combinations in future, but this is all
387     # the pre-calculated credentials cache supports at the moment
388     e = ""
389     a = ""
390     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
391     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
392     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
393
394     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
395     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
396
397     auth_options2 = ["krb5", "spnego,krb5"]
398     for a in auth_options2:
399         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
400
401         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"),
402                                                                                                                               "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
403
404 plantestsuite("samba3.blackbox.rpcclient_samlogon", "s3member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
405                                                                        "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
406
407 options_list = ["", "-e"]
408 for options in options_list:
409     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
410                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
411                    "$PREFIX/ktest/krb5_ccache-2",
412                    smbclient3, "$SERVER", options, configuration])
413
414     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
415                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
416                    "$PREFIX/ktest/krb5_ccache-2",
417                    smbclient3, "$SERVER", options, configuration])
418
419     plantestsuite("samba3.blackbox.smbclient_large_file %s" % options, "ktest:local",
420                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
421                    "$PREFIX/ktest/krb5_ccache-3",
422                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
423
424     plantestsuite("samba3.blackbox.smbclient_posix_large %s krb5" % options, "ktest:local",
425                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
426                    "$PREFIX/ktest/krb5_ccache-3",
427                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
428
429     plantestsuite("samba3.blackbox.smbclient_posix_large %s NTLM" % options, "s3dc:local",
430                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
431                    "none",
432                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
433
434 for e in endianness_options:
435     for a in auth_options:
436         for s in signseal_options:
437             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
438             options = binding_string + " -U$USERNAME%$PASSWORD"
439             plansmbtorture4testsuite(test, "s3dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
440
441 plansmbtorture4testsuite('rpc.epmapper', 's3dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')