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