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