e9b91d468ffaa6341a4ac1a3abc4bb7c49f58bc5
[samba.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 tests= base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap
293
294 for t in tests:
295     if t == "base.delaywrite":
296         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
297     elif t == "rap.sam":
298         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
299         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
300     elif t == "winbind.pac":
301         plansmbtorture4testsuite(t, "s3member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
302     elif t == "unix.whoami":
303         plansmbtorture4testsuite(t, "member:local", '//$SERVER/tmp --machine-pass', description="machine account")
304         plansmbtorture4testsuite(t, "s3member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
305         for env in ["s3dc", "member"]:
306             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
307             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
308         for env in ["plugin_s4_dc", "s3member"]:
309             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
310             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
311             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
312     elif t == "raw.samba3posixtimedlock":
313         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/s3dc/share')
314         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/plugin_s4_dc/share')
315     elif t == "raw.chkpath":
316         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
317         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
318     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t ==  "raw.samba3closeerr":
319         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
320         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
321         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
322     elif t == "raw.session" or t == "smb2.session":
323         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
324         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
325         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
326         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
327     elif t == "rpc.lsa":
328         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
329         plansmbtorture4testsuite(t, "s3dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
330         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
331         plansmbtorture4testsuite(t, "plugin_s4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
332     elif t == "rpc.samr.passwords.validate":
333         plansmbtorture4testsuite(t, "s3dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
334         plansmbtorture4testsuite(t, "plugin_s4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
335     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open":
336         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
337         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
338     elif t == "base.rw1":
339         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
340         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
341         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
342         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
343     elif t == "idmap.rfc2307":
344         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'])
345     elif t == "raw.acls":
346         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
347         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/nfs4acl_simple -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple')
348         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/nfs4acl_special -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special')
349         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
350     elif t == "smb2.ioctl":
351         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
352         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
353         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
354     elif t == "smb2.lock":
355         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
356         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
357         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
358     elif t == "raw.search":
359         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
360 # test the dirsort module.
361         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
362         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
363     else:
364         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
365         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
366
367
368 test = 'rpc.lsa.lookupsids'
369 auth_options = ["", "ntlm", "spnego", "spnego,ntlm" ]
370 signseal_options = ["", ",connect", ",sign", ",seal"]
371 endianness_options = ["", ",bigendian"]
372 for s in signseal_options:
373     for e in endianness_options:
374         for a in auth_options:
375             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
376             options = binding_string + " -U$USERNAME%$PASSWORD"
377             plansmbtorture4testsuite(test, "s3dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
378             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"),
379                                                              "none", options, configuration])
380
381     # We should try more combinations in future, but this is all
382     # the pre-calculated credentials cache supports at the moment
383     e = ""
384     a = ""
385     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
386     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
387     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
388
389     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
390     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
391
392     auth_options2 = ["krb5", "spnego,krb5"]
393     for a in auth_options2:
394         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
395
396         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"),
397                                                                                                                               "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
398
399 plantestsuite("samba3.blackbox.rpcclient_samlogon", "s3member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
400                                                                        "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
401
402 options_list = ["", "-e"]
403 for options in options_list:
404     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
405                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
406                    "$PREFIX/ktest/krb5_ccache-2",
407                    smbclient3, "$SERVER", options, configuration])
408
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_large_file %s" % options, "ktest:local",
415                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
416                    "$PREFIX/ktest/krb5_ccache-3",
417                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
418
419     plantestsuite("samba3.blackbox.smbclient_posix_large %s krb5" % 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 NTLM" % options, "s3dc:local",
425                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
426                    "none",
427                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
428
429 for e in endianness_options:
430     for a in auth_options:
431         for s in signseal_options:
432             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
433             options = binding_string + " -U$USERNAME%$PASSWORD"
434             plansmbtorture4testsuite(test, "s3dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
435
436 plansmbtorture4testsuite('rpc.epmapper', 's3dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')