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