d6e6869d165dce805a861017cf6d51e207a08888
[metze/samba/wip.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", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
41 plantestsuite("samba3.blackbox.failure", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
42
43 plantestsuite("samba3.local_s3", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
44
45 plantestsuite("samba3.blackbox.registry.upgrade", "nt4_dc: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(nt4_dc).%s" % t, "nt4_dc", [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(nt4_dc).%s" % t, "nt4_dc", [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(nt4_dc).%s" % t, "nt4_dc", [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(ad_dc_ntvfs).%s" % t, "ad_dc_ntvfs", [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(nt4_dc).%s" % t, "nt4_dc", [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(nt4_dc).%s" % t, "nt4_dc", [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(nt4_dc).%s" % t, "nt4_dc", [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(ad_dc_ntvfs).%s" % t, "ad_dc_ntvfs", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/posix_share', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
87
88 env = "nt4_dc: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-string_to_sid",
101     "LOCAL-sid_to_string",
102     "LOCAL-binary_to_sid",
103     "LOCAL-DBTRANS",
104     "LOCAL-TEVENT-SELECT",
105     "LOCAL-CONVERT-STRING",
106     "LOCAL-CONV-AUTH-INFO",
107     "LOCAL-IDMAP-TDB-COMMON",
108     "LOCAL-MESSAGING-READ1",
109     "LOCAL-MESSAGING-READ2",
110     "LOCAL-MESSAGING-READ3",
111     "LOCAL-MESSAGING-READ4",
112     "LOCAL-MESSAGING-FDPASS1",
113     "LOCAL-MESSAGING-FDPASS2",
114     "LOCAL-MESSAGING-FDPASS2a",
115     "LOCAL-MESSAGING-FDPASS2b",
116     "LOCAL-hex_encode_buf",
117     "LOCAL-sprintf_append",
118     "LOCAL-remove_duplicate_addrs2"]
119
120 for t in local_tests:
121     plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
122
123 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
124 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
125 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
126 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
127
128 for options in ["--option=clientusespnego=no", " --option=clientntlmv2auth=no --option=clientlanmanauth=yes --max-protocol=LANMAN2", ""]:
129     env = "nt4_dc"
130     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])
131
132 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc_ntvfs", "s4member"]:
133     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])
134
135 for env in ["nt4_dc", "nt4_member", "ad_member"]:
136     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])
137     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])
138
139 for env in ["nt4_member", "ad_member"]:
140     plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
141
142 env = "ad_member"
143 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
144 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
145 t = "WBCLIENT-MULTI-PING"
146 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
147
148
149 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])
150
151 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])
152
153
154 for env in ["maptoguest", "simpleserver"]:
155     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"])
156
157 env = "maptoguest"
158 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"])
159
160 # plain
161 for env in ["nt4_dc"]:
162     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])
163
164 for env in ["nt4_member", "ad_member"]:
165     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])
166
167 for env in ["nt4_dc"]:
168     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"])
169
170 for env in ["nt4_member", "ad_member"]:
171     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"])
172
173 for env in ["nt4_dc"]:
174     # encrypted
175     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"])
176
177
178     #
179     # tar command tests
180     #
181
182     # find config.h
183     try:
184         config_h = os.environ["CONFIG_H"]
185     except KeyError:
186         config_h = os.path.join(samba4bindir, "default/include/config.h")
187
188     # see if libarchive is supported
189     f = open(config_h, 'r')
190     try:
191         have_libarchive = ("HAVE_LIBARCHIVE 1" in f.read())
192     finally:
193         f.close()
194
195     # tar command enabled only if built with libarchive
196     if have_libarchive:
197         # Test smbclient/tarmode
198         plantestsuite("samba3.blackbox.smbclient_tarmode (%s)" % env, env,
199                       [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
200                        '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
201                        '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
202
203         # Test suite for new smbclient/tar with libarchive (GSoC 13)
204         plantestsuite("samba3.blackbox.smbclient_tar (%s)" % env, env,
205                       [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
206                        '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
207                        '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH',
208                        '-d', '$PREFIX', '-b', smbclient3,
209                        '--subunit', '--', configuration])
210
211 #TODO encrypted against member, with member creds, and with DC creds
212 plantestsuite("samba3.blackbox.net.misc", "nt4_dc:local",
213               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
214                scriptdir, "$SMB_CONF_PATH", net, configuration])
215 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
216               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
217                scriptdir, "$SMB_CONF_PATH", net, configuration])
218 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
219               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
220                scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
221 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
222               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
223                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
224
225 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
226               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
227                scriptdir, "$SMB_CONF_PATH", net, configuration])
228 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
229               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
230                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
231
232 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
233               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
234                scriptdir, "$SMB_CONF_PATH", net, configuration])
235 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
236               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
237                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
238
239
240 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
241               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
242                "$LOCAL_PATH"])
243
244 plantestsuite(
245     "samba3.pthreadpool", "nt4_dc",
246     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
247
248 #smbtorture4 tests
249
250 base = ["base.attr", "base.charset", "base.chkpath", "base.defer_open", "base.delaywrite", "base.delete",
251         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
252         "base.disconnect", "base.fdpass", "base.lock",
253         "base.mangle", "base.negnowait", "base.ntdeny1",
254         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
255         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
256         "base.xcopy", "base.samba3error"]
257
258 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
259        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
260        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
261        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
262        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
263        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
264        "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
265        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
266        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
267
268 smb2 = smbtorture4_testsuites("smb2.")
269
270 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
271        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
272        "rpc.samba3.getaliasmembership-0",
273        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
274        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
275        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
276        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
277        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
278        "rpc.spoolss.driver",
279        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
280        "rpc.lsa.privileges", "rpc.lsa.secrets",
281        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
282        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
283        "rpc.samr.priv", "rpc.samr.passwords.validate",
284        "rpc.netlogon.admin",
285        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind"]
286
287 local = ["local.nss", "local.ndr"]
288
289 idmap = [ "idmap.rfc2307" ]
290
291 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
292
293 unix = ["unix.info2", "unix.whoami"]
294
295 nbt = ["nbt.dgram" ]
296
297 libsmbclient = ["libsmbclient"]
298
299 vfs = ["vfs.fruit"]
300
301 tests= base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
302
303 for t in tests:
304     if t == "base.delaywrite":
305         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
306     elif t == "rap.sam":
307         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
308         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
309     elif t == "winbind.pac":
310         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
311     elif t == "unix.whoami":
312         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
313         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
314         for env in ["nt4_dc", "nt4_member"]:
315             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
316             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
317         for env in ["ad_dc", "ad_member"]:
318             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
319             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
320             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
321     elif t == "raw.samba3posixtimedlock":
322         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
323         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
324     elif t == "raw.chkpath":
325         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
326         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
327     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t ==  "raw.samba3closeerr":
328         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
329         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
330         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
331     elif t == "raw.session" or t == "smb2.session":
332         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
333         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
334         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
335         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
336     elif t == "rpc.lsa":
337         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
338         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
339         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
340         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
341     elif t == "rpc.samr.passwords.validate":
342         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
343         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
344     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay":
345         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
346         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
347     elif t == "base.rw1":
348         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
349         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
350         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
351         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
352     elif t == "idmap.rfc2307":
353         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rfc2307.sh"), '$DOMAIN', 'Administrator', '2000000', 'Guest', '2000001', '"Domain Users"', '2000002', 'DnsAdmins', '2000003', 'ou=idmap,dc=samba,dc=example,dc=com', '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
354     elif t == "raw.acls":
355         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
356         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple')
357         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special')
358         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
359     elif t == "smb2.ioctl":
360         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
361         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
362         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
363     elif t == "smb2.lock":
364         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
365         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
366         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
367     elif t == "raw.read":
368         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
369         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
370         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
371     elif t == "raw.search":
372         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
373 # test the dirsort module.
374         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
375         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
376     elif t == "vfs.fruit":
377         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:share1=vfs_fruit --option=torture:share2=tmp --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
378         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:share1=vfs_fruit --option=torture:share2=tmp --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
379     elif t == "rpc.schannel_anon_setpw":
380         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
381         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
382         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
383     elif t == "local.nss":
384         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local", "ad_dc_ntvfs:local"]:
385             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
386     elif t == "smb2.notify":
387         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
388         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD --signing=required')
389     else:
390         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
391         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
392
393
394 test = 'rpc.lsa.lookupsids'
395 auth_options = ["", "ntlm", "spnego", "spnego,ntlm" ]
396 signseal_options = ["", ",connect", ",sign", ",seal"]
397 endianness_options = ["", ",bigendian"]
398 for s in signseal_options:
399     for e in endianness_options:
400         for a in auth_options:
401             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
402             options = binding_string + " -U$USERNAME%$PASSWORD"
403             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
404             plantestsuite("samba3.blackbox.rpcclient over ncacn_np with [%s%s%s] " % (a, s, e), "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"),
405                                                              "none", options, configuration])
406
407     # We should try more combinations in future, but this is all
408     # the pre-calculated credentials cache supports at the moment
409     e = ""
410     a = ""
411     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
412     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
413     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
414
415     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
416     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
417
418     auth_options2 = ["krb5", "spnego,krb5"]
419     for a in auth_options2:
420         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
421
422         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"),
423                                                                                                                               "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
424
425 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
426                                                                        "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
427
428 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
429               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
430                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
431                configuration])
432 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
433               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
434                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
435                configuration])
436
437 options_list = ["", "-e"]
438 for options in options_list:
439     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
440                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
441                    "$PREFIX/ktest/krb5_ccache-2",
442                    smbclient3, "$SERVER", options, configuration])
443
444     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
445                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
446                    "$PREFIX/ktest/krb5_ccache-2",
447                    smbclient3, "$SERVER", options, configuration])
448
449     plantestsuite("samba3.blackbox.smbclient_large_file %s" % options, "ktest:local",
450                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
451                    "$PREFIX/ktest/krb5_ccache-3",
452                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
453
454     plantestsuite("samba3.blackbox.smbclient_posix_large %s krb5" % options, "ktest:local",
455                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
456                    "$PREFIX/ktest/krb5_ccache-3",
457                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
458
459     plantestsuite("samba3.blackbox.smbclient_posix_large %s NTLM" % options, "nt4_dc:local",
460                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
461                    "none",
462                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
463
464 for e in endianness_options:
465     for a in auth_options:
466         for s in signseal_options:
467             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
468             options = binding_string + " -U$USERNAME%$PASSWORD"
469             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
470
471 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
472 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP[/pipe/FssagentRpc] -U$USERNAME%$PASSWORD', 'over ncacn_np')