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