s3-lib: Remove unused function sprintf_append
[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", "WILDDELETE", "PROPERTIES", "W2K",
52         "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2",
53         "CHAIN3", "PIDHIGH",
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", "POSIX-SYMLINK-ACL", "POSIX-SYMLINK-EA", "POSIX-OFD-LOCK",
82               "POSIX-STREAM-DELETE" ]
83
84 for t in posix_tests:
85     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"])
86     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"])
87     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"])
88
89 env = "nt4_dc:local"
90 t = "CLEANUP3"
91 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"])
92
93 local_tests = [
94     "LOCAL-SUBSTITUTE",
95     "LOCAL-GENCACHE",
96     "LOCAL-TALLOC-DICT",
97     "LOCAL-BASE64",
98     "LOCAL-RBTREE",
99     "LOCAL-MEMCACHE",
100     "LOCAL-STREAM-NAME",
101     "LOCAL-string_to_sid",
102     "LOCAL-sid_to_string",
103     "LOCAL-binary_to_sid",
104     "LOCAL-DBTRANS",
105     "LOCAL-TEVENT-SELECT",
106     "LOCAL-CONVERT-STRING",
107     "LOCAL-CONV-AUTH-INFO",
108     "LOCAL-IDMAP-TDB-COMMON",
109     "LOCAL-MESSAGING-READ1",
110     "LOCAL-MESSAGING-READ2",
111     "LOCAL-MESSAGING-READ3",
112     "LOCAL-MESSAGING-READ4",
113     "LOCAL-MESSAGING-FDPASS1",
114     "LOCAL-MESSAGING-FDPASS2",
115     "LOCAL-MESSAGING-FDPASS2a",
116     "LOCAL-MESSAGING-FDPASS2b",
117     "LOCAL-PTHREADPOOL-TEVENT",
118     "LOCAL-hex_encode_buf",
119     "LOCAL-remove_duplicate_addrs2"]
120
121 for t in local_tests:
122     plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
123
124 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
125 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
126 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
127 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
128
129 for options in ["", "--option=clientntlmv2auth=no", "--option=clientusespnego=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", "--option=clientntlmv2auth=no --option=clientlanmanauth=yes --max-protocol=LANMAN2", "--option=clientntlmv2auth=no --option=clientlanmanauth=yes --option=clientmaxprotocol=NT1"]:
130     env = "nt4_dc"
131     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])
132
133 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc", "ad_dc_ntvfs", "s4member", "fl2000dc"]:
134     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])
135     plantestsuite("samba3.blackbox.smbclient_ntlm.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_ntlm.sh"), '$SERVER', '$DC_USERNAME', '$DC_PASSWORD', "never", smbclient3, configuration])
136
137 for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", ""]:
138     for env in ["nt4_member", "ad_member"]:
139         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])
140         plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s member creds" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration, options])
141
142 env="nt4_dc"
143 plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) ipv6" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IPV6', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration])
144
145 for env in ["nt4_member", "ad_member"]:
146     plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
147
148 env = "ad_member"
149 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
150 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
151 t = "WBCLIENT-MULTI-PING"
152 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
153
154
155 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])
156
157 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])
158
159
160 for env in ["maptoguest", "simpleserver"]:
161     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"])
162
163 env = "maptoguest"
164 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"])
165 plantestsuite("samba3.blackbox.smbclient_ntlm.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_ntlm.sh"), '$SERVER', '$USERNAME', '$PASSWORD', "baduser", smbclient3, configuration])
166
167 # plain
168 for env in ["nt4_dc"]:
169     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])
170
171 for env in ["nt4_member", "ad_member"]:
172     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])
173
174 for env in ["nt4_dc"]:
175     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"])
176
177 for env in ["nt4_member", "ad_member"]:
178     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"])
179
180 for env in ["nt4_dc"]:
181     # encrypted
182     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"])
183
184 for env in ["fileserver"]:
185     plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
186     plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
187     plantestsuite("samba3.blackbox.dfree_quota (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_quota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcquotas, smbcacls])
188     plantestsuite("samba3.blackbox.valid_users (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_valid_users.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
189     plantestsuite("samba3.blackbox.offline (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_offline.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/offline', smbclient3])
190     plantestsuite("samba3.blackbox.shadow_copy2 (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbclient3])
191     plantestsuite("samba3.blackbox.smbclient.forceuser_validusers (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_forceuser_validusers.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
192     plantestsuite("samba3.blackbox.smbget (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbget.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', 'smbget_user', '$PASSWORD', '$LOCAL_PATH/smbget', smbget])
193     plantestsuite("samba3.blackbox.netshareenum (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
194     plantestsuite("samba3.blackbox.acl_xattr (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls])
195     plantestsuite("samba3.blackbox.smb2.not_casesensitive (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smb2_not_casesensitive.sh"), '//$SERVER/tmp', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
196     plantestsuite("samba3.blackbox.inherit_owner.default(%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, 'tmp', '0', '0', '-m', 'NT1'])
197     plantestsuite("samba3.blackbox.inherit_owner.full (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, 'inherit_owner', '1', '1', '-m', 'NT1'])
198     plantestsuite("samba3.blackbox.inherit_owner.unix (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, 'inherit_owner_u', '0', '1', '-m', 'NT1'])
199
200     #
201     # tar command tests
202     #
203
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")
209
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()
216
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])
224
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])
232
233 #TODO encrypted against member, with member creds, and with DC creds
234 plantestsuite("samba3.blackbox.net.misc", "nt4_dc: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", "nt4_dc: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", "nt4_dc: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", "nt4_dc",
244               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
245                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
246
247 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc: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", "nt4_dc",
251               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
252                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
253
254 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc: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", "nt4_dc",
258               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
259                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
260
261
262 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
263               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
264                "$LOCAL_PATH"])
265
266 plantestsuite(
267     "samba3.pthreadpool", "nt4_dc",
268     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
269
270 plantestsuite("samba3.async_req", "nt4_dc",
271               [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
272
273 #smbtorture4 tests
274
275 base = ["base.attr", "base.charset", "base.chkpath", "base.defer_open", "base.delaywrite", "base.delete",
276         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
277         "base.disconnect", "base.fdpass", "base.lock",
278         "base.mangle", "base.negnowait", "base.ntdeny1",
279         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
280         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
281         "base.xcopy", "base.samba3error"]
282
283 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
284        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
285        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
286        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
287        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
288        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
289        "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
290        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
291        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
292
293 smb2 = smbtorture4_testsuites("smb2.")
294
295 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
296        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
297        "rpc.samba3.getaliasmembership-0",
298        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
299        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
300        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
301        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
302        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
303        "rpc.spoolss.driver",
304        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
305        "rpc.lsa.privileges", "rpc.lsa.secrets",
306        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
307        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
308        "rpc.samr.priv", "rpc.samr.passwords.validate",
309        "rpc.netlogon.admin",
310        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind"]
311
312 local = ["local.nss"]
313
314 idmap = ["idmap.rfc2307", "idmap.alloc"]
315
316 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
317
318 unix = ["unix.info2", "unix.whoami"]
319
320 nbt = ["nbt.dgram" ]
321
322 libsmbclient = ["libsmbclient"]
323
324 vfs = ["vfs.fruit"]
325
326 tests= base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
327
328 for t in tests:
329     if t == "base.delaywrite":
330         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
331     elif t == "rap.sam":
332         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
333         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
334     elif t == "winbind.pac":
335         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
336     elif t == "unix.whoami":
337         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
338         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
339         for env in ["nt4_dc", "nt4_member"]:
340             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
341             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
342         for env in ["ad_dc", "ad_member"]:
343             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
344             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
345             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
346     elif t == "raw.samba3posixtimedlock":
347         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
348         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
349     elif t == "raw.chkpath":
350         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
351         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
352     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t ==  "raw.samba3closeerr":
353         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
354         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
355         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
356     elif t == "raw.session" or t == "smb2.session":
357         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
358         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
359         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
360         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
361     elif t == "rpc.lsa":
362         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
363         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
364         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
365         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
366     elif t == "rpc.samr.passwords.validate":
367         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
368         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
369     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay":
370         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
371         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
372     elif t == "base.rw1":
373         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
374         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
375         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
376         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
377     elif t == "idmap.rfc2307":
378         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rfc2307.sh"), '$DOMAIN', 'Administrator', '2000000', 'Guest', '2000001', '"Domain Users"', '2000002', 'DnsAdmins', '2000003', 'ou=idmap,dc=samba,dc=example,dc=com', '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
379     elif t == "idmap.alloc":
380         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
381     elif t == "raw.acls":
382         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
383         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple')
384         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special')
385         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
386     elif t == "smb2.ioctl":
387         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
388         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
389         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
390     elif t == "smb2.lock":
391         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
392         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
393         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
394     elif t == "raw.read":
395         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
396         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
397         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
398     elif t == "raw.search":
399         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
400 # test the dirsort module.
401         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
402         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
403     elif t == "vfs.fruit":
404         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
405         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
406     elif t == "rpc.schannel_anon_setpw":
407         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
408         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
409         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
410     elif t == "local.nss":
411         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
412             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
413     elif t == "smb2.change_notify_disabled":
414         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
415     elif t == "smb2.notify":
416         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
417         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD --signing=required')
418     elif t == "smb2.dosmode":
419         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
420     else:
421         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
422         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
423
424
425 test = 'rpc.lsa.lookupsids'
426 auth_options = ["", "ntlm", "spnego", "spnego,ntlm" ]
427 signseal_options = ["", ",connect", ",sign", ",seal"]
428 endianness_options = ["", ",bigendian"]
429 for s in signseal_options:
430     for e in endianness_options:
431         for a in auth_options:
432             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
433             options = binding_string + " -U$USERNAME%$PASSWORD"
434             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
435             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"),
436                                                              "none", options, configuration])
437
438     # We should try more combinations in future, but this is all
439     # the pre-calculated credentials cache supports at the moment
440     e = ""
441     a = ""
442     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
443     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
444     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
445
446     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
447     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
448
449     auth_options2 = ["krb5", "spnego,krb5"]
450     for a in auth_options2:
451         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
452
453         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"),
454                                                                                                                               "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
455
456 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
457                                                                        "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
458 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
459               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
460                configuration, os.path.join(bindir(), "sharesec"), "tmp"])
461
462 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
463               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
464                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
465                configuration])
466 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
467               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
468                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
469                configuration])
470
471 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
472               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
473                "$USERNAME", "$PASSWORD", "$SERVER",
474                os.path.join(bindir(), "rpcclient"), "tmp"])
475
476 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
477               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
478                "$USERNAME", "$PASSWORD", "$SERVER",
479                os.path.join(bindir(), "rpcclient")])
480
481 options_list = ["", "-e"]
482 for options in options_list:
483     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
484                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
485                    "$PREFIX/ktest/krb5_ccache-2",
486                    smbclient3, "$SERVER", options, configuration])
487
488     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
489                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
490                    "$PREFIX/ktest/krb5_ccache-2",
491                    smbclient3, "$SERVER", options, configuration])
492
493     plantestsuite("samba3.blackbox.smbclient_large_file %s" % options, "ktest:local",
494                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
495                    "$PREFIX/ktest/krb5_ccache-3",
496                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
497
498     plantestsuite("samba3.blackbox.smbclient_posix_large %s krb5" % options, "ktest:local",
499                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
500                    "$PREFIX/ktest/krb5_ccache-3",
501                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
502
503     plantestsuite("samba3.blackbox.smbclient_posix_large %s NTLM" % options, "nt4_dc:local",
504                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
505                    "none",
506                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
507
508 for alias in ["foo", "bar"]:
509     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
510                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
511                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
512
513 for e in endianness_options:
514     for a in auth_options:
515         for s in signseal_options:
516             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
517             options = binding_string + " -U$USERNAME%$PASSWORD"
518             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
519
520 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
521 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP[/pipe/FssagentRpc] -U$USERNAME%$PASSWORD', 'over ncacn_np')