s3/torture: add POSIX-LS-WILDCARD test
[samba.git] / source3 / selftest / tests.py
1 #!/usr/bin/python
2 # This script generates a list of testsuites that should be run as part of
3 # the Samba 3 test suite.
4
5 # The output of this script is parsed by selftest.pl, which then decides
6 # which of the tests to actually run. It will, for example, skip all tests
7 # listed in selftest/skip or only run a subset during "make quicktest".
8
9 # The idea is that this script outputs all of the tests of Samba 3, not
10 # just those that are known to pass, and list those that should be skipped
11 # or are known to fail in selftest/skip or selftest/samba3-knownfail. This makes it
12 # very easy to see what functionality is still missing in Samba 3 and makes
13 # it possible to run the testsuite against other servers, such as Samba 4 or
14 # Windows that have a different set of features.
15
16 # The syntax for a testsuite is "-- TEST --" on a single line, followed
17 # by the name of the test, the environment it needs and the command to run, all
18 # three separated by newlines. All other lines in the output are considered
19 # comments.
20
21 import os
22 import sys
23 import re
24 sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest")))
25 import selftesthelpers
26 from selftesthelpers import bindir, srcdir, scriptdir, binpath
27 from selftesthelpers import plantestsuite, samba3srcdir
28 from selftesthelpers import smbtorture3, configuration, smbclient3, smbtorture4
29 from selftesthelpers import net, wbinfo, dbwrap_tool, rpcclient, python
30 from selftesthelpers import smbget, smbcacls, smbcquotas, ntlm_auth3
31 from selftesthelpers import valgrindify, smbtorture4_testsuites
32 from selftesthelpers import smbtorture4_options
33 from selftesthelpers import smbcontrol
34 from selftesthelpers import smbstatus
35 smbtorture4_options.extend([
36     '--option=torture:sharedelay=100000',
37    '--option=torture:writetimeupdatedelay=500000',
38 ])
39
40
41 def plansmbtorture4testsuite(name, env, options, description=''):
42     if description == '':
43         modname = "samba3.%s" % (name, )
44     else:
45         modname = "samba3.%s %s" % (name, description)
46
47     selftesthelpers.plansmbtorture4testsuite(
48         name, env, options, target='samba3', modname=modname)
49
50 def compare_versions(version1, version2):
51     for i in range(max(len(version1),len(version2))):
52          v1 = version1[i] if i < len(version1) else 0
53          v2 = version2[i] if i < len(version2) else 0
54          if v1 > v2:
55             return 1
56          elif v1 <v2:
57             return -1
58     return 0
59
60 # find config.h
61 try:
62     config_h = os.environ["CONFIG_H"]
63 except KeyError:
64     samba4bindir = bindir()
65     config_h = os.path.join(samba4bindir, "default/include/config.h")
66
67 # check available features
68 config_hash = dict()
69 f = open(config_h, 'r')
70 try:
71     lines = f.readlines()
72     config_hash = dict((x[0], ' '.join(x[1:]))
73                        for x in map(lambda line: line.strip().split(' ')[1:],
74                                     filter(lambda line: (line[0:7] == '#define') and (len(line.split(' ')) > 2), lines)))
75 finally:
76     f.close()
77
78 if config_hash["SYSTEM_UNAME_SYSNAME"] == '"Linux"':
79     m = re.search(r'(\d+).(\d+).(\d+)', config_hash["SYSTEM_UNAME_RELEASE"])
80     if m:
81         linux_kernel_version = [int(m.group(1)), int(m.group(2)), int(m.group(3))]
82
83 have_linux_kernel_oplocks = False
84 if "HAVE_KERNEL_OPLOCKS_LINUX" in config_hash:
85     if compare_versions(linux_kernel_version, [5,3,1]) >= 0:
86         have_linux_kernel_oplocks = True
87
88 have_inotify = ("HAVE_INOTIFY" in config_hash)
89 have_ldwrap = ("HAVE_LDWRAP" in config_hash)
90 with_pthreadpool = ("WITH_PTHREADPOOL" in config_hash)
91
92 def is_module_enabled(module):
93     if module in config_hash["STRING_SHARED_MODULES"]:
94         return True
95     if module in config_hash["STRING_STATIC_MODULES"]:
96         return True
97     return False
98
99 plantestsuite("samba3.blackbox.success", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
100 plantestsuite("samba3.blackbox.failure", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
101
102 plantestsuite("samba3.local_s3", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
103
104 plantestsuite("samba3.blackbox.registry.upgrade", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool])
105
106 fileserver_tests = [
107          "FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7",
108          "LOCK9A", "LOCK9B",
109          "LOCK10",
110          "LOCK11",
111          "LOCK12",
112          "LOCK13",
113          "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE",
114          "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR",
115          "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "LARGE_READX", "RW-SIGNING",
116          "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "WILDDELETE", "PROPERTIES", "W2K",
117          "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2", "OWNER-RIGHTS",
118          "CHAIN3", "PIDHIGH", "CLI_SPLICE",
119          "UID-REGRESSION-TEST", "SHORTNAME-TEST",
120          "CASE-INSENSITIVE-CREATE", "SMB2-BASIC", "NTTRANS-FSCTL", "SMB2-NEGPROT",
121          "SMB2-SESSION-REAUTH", "SMB2-SESSION-RECONNECT", "SMB2-FTRUNCATE",
122          "SMB2-ANONYMOUS", "SMB2-DIR-FSYNC",
123          "SMB2-PATH-SLASH",
124          "SMB2-QUOTA1",
125          "CLEANUP1",
126          "CLEANUP2",
127          "CLEANUP4",
128          "DELETE-STREAM",
129          "BAD-NBT-SESSION",
130          "SMB1-WILD-MANGLE-UNLINK",
131          "SMB1-WILD-MANGLE-RENAME"]
132
133 for t in fileserver_tests:
134     fileserver_env = "fileserver_smb1"
135     if "SMB2" in t:
136         fileserver_env = "fileserver"
137     plantestsuite("samba3.smbtorture_s3.plain.%s" % t, fileserver_env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
138     plantestsuite("samba3.smbtorture_s3.crypt_client.%s" % t, "nt4_dc_smb1", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "-e", "-l $LOCAL_PATH"])
139     if t == "TORTURE":
140         # this is a negative test to verify that the server rejects
141         # access without encryption
142         plantestsuite("samba3.smbtorture_s3.crypt_server.%s" % t, "nt4_dc_smb1", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmpenc', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
143     if t == "CLI_SPLICE":
144         # We must test this against the SMB1 fallback.
145         plantestsuite("samba3.smbtorture_s3.plain.%s" % t, "fileserver_smb1", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH", "-mNT1"])
146     plantestsuite("samba3.smbtorture_s3.plain.%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"])
147
148 t = "TLDAP"
149 plantestsuite("samba3.smbtorture_s3.plain.%s" % t, "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER/tmp', '$DC_USERNAME', '$DC_PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
150
151 if have_linux_kernel_oplocks:
152     t = "OPLOCK5"
153     plantestsuite("samba3.smbtorture_s3.plain.%s" % t,
154                   "fileserver_smb1",
155                   [os.path.join(samba3srcdir,
156                                 "script/tests/test_smbtorture_s3.sh"),
157                    t,
158                    '//$SERVER/tmp',
159                    '$USERNAME',
160                    '$PASSWORD',
161                    smbtorture3,
162                    "",
163                    "-l $LOCAL_PATH",
164                    "-mNT1"])
165 #
166 # RENAME-ACCESS needs to run against a special share - acl_xattr_ign_sysacl_windows
167 #
168 plantestsuite("samba3.smbtorture_s3.plain.%s" % "RENAME-ACCESS", "nt4_dc_smb1", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), "RENAME-ACCESS", '//$SERVER_IP/acl_xattr_ign_sysacl_windows', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
169 plantestsuite("samba3.smbtorture_s3.crypt_client.%s" % "RENAME-ACCESS", "nt4_dc_smb1", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), "RENAME-ACCESS", '//$SERVER_IP/acl_xattr_ign_sysacl_windows', '$USERNAME', '$PASSWORD', smbtorture3, "-e", "-l $LOCAL_PATH"])
170 # non-crypt only
171
172 tests = ["OPLOCK-CANCEL"]
173 for t in tests:
174     plantestsuite("samba3.smbtorture_s3.plain.%s" % t, "nt4_dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
175
176 env = "nt4_dc_smb1"
177 tests = ["MANGLE-ILLEGAL"]
178 for t in tests:
179     plantestsuite("samba3.smbtorture_s3.plain.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/mangle_illegal', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
180
181 tests = ["RW1", "RW2", "RW3", "SMB2-BASIC"]
182 for t in tests:
183     if t == "SMB2-BASIC":
184         env = "simpleserver"
185     else:
186         env = "fileserver_smb1"
187
188     plantestsuite("samba3.smbtorture_s3.vfs_aio_pthread(%s).%s" % (env, t), env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/vfs_aio_pthread', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
189     plantestsuite("samba3.smbtorture_s3.vfs_aio_fork(%s).%s" % (env, t), env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/vfs_aio_fork', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
190
191 plantestsuite("samba3.smbtorture_s3.hidenewfiles(fileserver_smb1)",
192               "fileserver_smb1",
193               [os.path.join(samba3srcdir,
194                             "script/tests/test_smbtorture_s3.sh"),
195                'hide-new-files-timeout',
196                '//$SERVER_IP/hidenewfiles',
197                '$USERNAME',
198                '$PASSWORD',
199                smbtorture3,
200                "",
201                "-l $LOCAL_PATH"])
202
203 #
204 # MSDFS attribute tests.
205 #
206 plantestsuite("samba3.smbtorture_s3.smb2.MSDFS-ATTRIBUTE",
207                 "fileserver",
208                 [os.path.join(samba3srcdir,
209                               "script/tests/test_smbtorture_s3.sh"),
210                 'MSDFS-ATTRIBUTE',
211                 '//$SERVER_IP/msdfs-share',
212                 '$USERNAME',
213                 '$PASSWORD',
214                 smbtorture3,
215                 "-mSMB2",
216                 "-f msdfs-src1"])
217
218 plantestsuite("samba3.smbtorture_s3.smb1.MSDFS-ATTRIBUTE",
219                 "fileserver_smb1",
220                 [os.path.join(samba3srcdir,
221                               "script/tests/test_smbtorture_s3.sh"),
222                 'MSDFS-ATTRIBUTE',
223                 '//$SERVER_IP/msdfs-share',
224                 '$USERNAME',
225                 '$PASSWORD',
226                 smbtorture3,
227                 "-mNT1",
228                 "-f msdfs-src1"])
229
230 shares = [
231     "vfs_aio_pthread_async_dosmode_default1",
232     "vfs_aio_pthread_async_dosmode_default2",
233     "vfs_aio_pthread_async_dosmode_force_sync1",
234     "vfs_aio_pthread_async_dosmode_force_sync2"
235 ]
236 for s in shares:
237     plantestsuite("samba3.smbtorture_s3.%s(simpleserver).SMB2-BASIC" % s, "simpleserver", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), 'SMB2-BASIC', '//$SERVER_IP/' + s, '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
238     t = "smb2.compound_find"
239     plansmbtorture4testsuite(t, "simpleserver", "//%s/%s %s" % ('$SERVER_IP', s, ' -U$USERNAME%$PASSWORD'), description=s)
240
241 posix_tests = ["POSIX", "POSIX-APPEND", "POSIX-SYMLINK-ACL", "POSIX-SYMLINK-EA", "POSIX-OFD-LOCK",
242                "POSIX-STREAM-DELETE", "WINDOWS-BAD-SYMLINK", "POSIX-MKDIR",
243                "POSIX-BLOCKING-LOCK",
244                "POSIX-ACL-OPLOCK",
245                "POSIX-ACL-SHAREROOT",
246                "POSIX-LS-WILDCARD",
247               ]
248
249 for t in posix_tests:
250     plantestsuite("samba3.smbtorture_s3.plain.%s" % t, "nt4_dc_smb1", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/posix_share', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
251     plantestsuite("samba3.smbtorture_s3.crypt.%s" % t, "nt4_dc_smb1", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/posix_share', '$USERNAME', '$PASSWORD', smbtorture3, "-e", "-l $LOCAL_PATH"])
252
253 local_tests = [
254     "LOCAL-SUBSTITUTE",
255     "LOCAL-GENCACHE",
256     "LOCAL-BASE64",
257     "LOCAL-RBTREE",
258     "LOCAL-MEMCACHE",
259     "LOCAL-STREAM-NAME",
260     "LOCAL-string_to_sid",
261     "LOCAL-sid_to_string",
262     "LOCAL-binary_to_sid",
263     "LOCAL-DBTRANS",
264     "LOCAL-TEVENT-POLL",
265     "LOCAL-CONVERT-STRING",
266     "LOCAL-CONV-AUTH-INFO",
267     "LOCAL-IDMAP-TDB-COMMON",
268     "LOCAL-MESSAGING-READ1",
269     "LOCAL-MESSAGING-READ2",
270     "LOCAL-MESSAGING-READ3",
271     "LOCAL-MESSAGING-READ4",
272     "LOCAL-MESSAGING-FDPASS1",
273     "LOCAL-MESSAGING-FDPASS2",
274     "LOCAL-MESSAGING-FDPASS2a",
275     "LOCAL-MESSAGING-FDPASS2b",
276     "LOCAL-MESSAGING-SEND-ALL",
277     "LOCAL-PTHREADPOOL-TEVENT",
278     "LOCAL-CANONICALIZE-PATH",
279     "LOCAL-DBWRAP-WATCH1",
280     "LOCAL-DBWRAP-WATCH2",
281     "LOCAL-DBWRAP-WATCH3",
282     "LOCAL-DBWRAP-WATCH4",
283     "LOCAL-DBWRAP-DO-LOCKED1",
284     "LOCAL-G-LOCK1",
285     "LOCAL-G-LOCK2",
286     "LOCAL-G-LOCK3",
287     "LOCAL-G-LOCK4",
288     "LOCAL-G-LOCK4A",
289     "LOCAL-G-LOCK5",
290     "LOCAL-G-LOCK6",
291     "LOCAL-G-LOCK7",
292     "LOCAL-G-LOCK8",
293     "LOCAL-NAMEMAP-CACHE1",
294     "LOCAL-IDMAP-CACHE1",
295     "LOCAL-hex_encode_buf",
296     "LOCAL-remove_duplicate_addrs2"]
297
298 for t in local_tests:
299     plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
300
301 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
302 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
303 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
304 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
305
306 plantestsuite("samba3.blackbox.smbclient_basic.NT1", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mNT1"])
307 plantestsuite("samba3.blackbox.smbclient_basic.NT1", "nt4_dc_smb1", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mNT1"])
308 plantestsuite("samba3.blackbox.smbclient_basic.SMB2_02", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mSMB2_02"])
309 plantestsuite("samba3.blackbox.smbclient_basic.SMB2_10", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mSMB2_10"])
310 plantestsuite("samba3.blackbox.smbclient_basic.SMB3_02", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mSMB3_02"])
311 plantestsuite("samba3.blackbox.smbclient_basic.SMB3_11", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mSMB3_11"])
312
313 plantestsuite("samba3.blackbox.smbclient_basic", "ad_member", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration])
314 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"]:
315     if "NT1" in options or "LANMAN2" in options:
316         env = "nt4_dc_smb1_done"
317     else:
318         env = "nt4_dc"
319     plantestsuite("samba3.blackbox.smbclient_auth.plain.%s" % (options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, options])
320
321 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc", "ad_dc_ntvfs", "s4member", "fl2000dc"]:
322     plantestsuite("samba3.blackbox.smbclient_machine_auth.plain", "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_machine_auth.sh"), '$SERVER', smbclient3, configuration])
323     smb1_env = env
324     if smb1_env == "ad_dc" or smb1_env == "nt4_dc":
325         smb1_env = smb1_env + "_smb1_done"
326     plantestsuite("samba3.blackbox.smbclient_ntlm.plain NT1", smb1_env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_ntlm.sh"), '$SERVER', '$DC_USERNAME', '$DC_PASSWORD', "never", smbclient3, "NT1", configuration])
327     plantestsuite("samba3.blackbox.smbclient_ntlm.plain SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_ntlm.sh"), '$SERVER', '$DC_USERNAME', '$DC_PASSWORD', "never", smbclient3, "SMB3", configuration])
328
329
330 plantestsuite("samba3.blackbox.smbclient_log_basename", "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_smbclient_log_basename.sh"), '$SERVER', smbclient3, '$PREFIX', configuration])
331
332 for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no -mNT1", ""]:
333     # don't attempt to run SMB1 tests in nt4_member or ad_member
334     # as these test envs don't support SMB1, use nt4_dc instead
335     environs = ["nt4_member", "ad_member"]
336     if "NT1" in options or "LANMAN2" in options:
337         environs = ["nt4_dc_smb1_done"]
338     for env in environs:
339         plantestsuite("samba3.blackbox.smbclient_auth.plain.%s" % (options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, options])
340         plantestsuite("samba3.blackbox.smbclient_auth.plain.%s.member_creds" % (options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration, options])
341
342 for env in ["nt4_member", "ad_member"]:
343     plantestsuite("samba3.blackbox.smbclient_auth.empty_domain.domain_creds", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '/$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, options])
344     plantestsuite("samba3.blackbox.smbclient_auth.empty_domain.member_creds", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '/$USERNAME', '$PASSWORD', smbclient3, configuration, options])
345     plantestsuite("samba3.blackbox.smbclient_auth.dot_domain.domain_creds", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', './$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, options])
346     plantestsuite("samba3.blackbox.smbclient_auth.dot_domain.member_creds", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', './$USERNAME', '$PASSWORD', smbclient3, configuration, options])
347     plantestsuite("samba3.blackbox.smbclient_auth.upn.domain_creds", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME@$REALM', '$DC_PASSWORD', smbclient3, configuration, options])
348     plantestsuite("samba3.blackbox.smbclient_auth.upn.member_creds", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$USERNAME@$SERVER', '$PASSWORD', smbclient3, configuration, options])
349
350 env = "ad_dc_smb1"
351 plantestsuite("samba3.blackbox.smbspool", env, [os.path.join(samba3srcdir, "script/tests/test_smbspool.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', env])
352
353 for env in ["ad_member:local", "nt4_dc:local"]:
354     plantestsuite("samba3.blackbox.smbpasswd", env, [os.path.join(samba3srcdir, "script/tests/test_smbpasswd.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD'])
355
356 env = "nt4_dc"
357 plantestsuite("samba3.blackbox.smbclient_auth.plain.ipv6", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IPV6', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration])
358
359 for env in ["nt4_member", "ad_member"]:
360     plantestsuite("samba3.blackbox.net_cred_change", "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
361
362 env = "ad_member"
363 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
364 plantestsuite("samba3.wbinfo_simple.%s" % t, "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
365 plantestsuite("samba3.wbinfo_name_lookup", env,
366               [os.path.join(srcdir(),
367                             "nsswitch/tests/test_wbinfo_name_lookup.sh"),
368                '$DOMAIN', '$REALM', '$DC_USERNAME'])
369
370 env = "ad_member"
371 plantestsuite("samba3.wbinfo_user_info_cached", env,
372               [os.path.join(srcdir(),
373                             "nsswitch/tests/test_wbinfo_user_info_cached.sh"),
374                '$DOMAIN', '$REALM', 'joe', 'Secret007', '"Samba Users"', env])
375 plantestsuite("samba3.wbinfo_user_info_cached.trustdom", env,
376               [os.path.join(srcdir(),
377                             "nsswitch/tests/test_wbinfo_user_info_cached.sh"),
378                '$TRUST_F_BOTH_DOMAIN', '$TRUST_F_BOTH_REALM', 'joe', 'Secret007', '"Samba Users"', env])
379
380 env = "ad_member:local"
381 plantestsuite("samba3.wbinfo_user_info", env,
382               [os.path.join(srcdir(),
383                             "nsswitch/tests/test_wbinfo_user_info.sh"),
384                '$DOMAIN', '$REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
385
386 env = "fl2008r2dc:local"
387 plantestsuite("samba3.wbinfo_user_info", env,
388               [os.path.join(srcdir(),
389                             "nsswitch/tests/test_wbinfo_user_info.sh"),
390                '$TRUST_DOMAIN', '$TRUST_REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
391
392 env = "nt4_member:local"
393 plantestsuite("samba3.wbinfo_sids_to_xids", env,
394               [os.path.join(srcdir(),
395                             "nsswitch/tests/test_wbinfo_sids_to_xids.sh")])
396 plantestsuite(
397     "samba.wbinfo_lookuprids_cache",
398     env,
399     [os.path.join(samba3srcdir,
400                   "script/tests/test_wbinfo_lookuprids_cache.sh")])
401
402 env = "ad_member"
403 t = "WBCLIENT-MULTI-PING"
404 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
405 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
406
407 for env in ["maptoguest", "simpleserver"]:
408     plantestsuite("samba3.blackbox.smbclient_auth.plain.local_creds", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3, configuration + " --option=clientntlmv2auth=no --option=clientlanmanauth=yes"])
409
410 env = "maptoguest"
411 plantestsuite("samba3.blackbox.smbclient_auth.plain.bad_username", 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"])
412 plantestsuite("samba3.blackbox.smbclient_ntlm.plain.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_ntlm.sh"), '$SERVER', '$USERNAME', '$PASSWORD', "baduser", smbclient3, "NT1", configuration])
413 plantestsuite("samba3.blackbox.smbclient_ntlm.plain.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_ntlm.sh"), '$SERVER', '$USERNAME', '$PASSWORD', "baduser", smbclient3, "SMB3", configuration])
414
415 # plain
416 env = "nt4_dc_smb1_done"
417 plantestsuite("samba3.blackbox.smbclient_s3.NT1.plain", 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, "NT1"])
418 env = "nt4_dc"
419 plantestsuite("samba3.blackbox.smbclient_s3.SMB3.plain", 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, "SMB3"])
420
421 for env in ["nt4_member", "ad_member"]:
422     plantestsuite("samba3.blackbox.smbclient_s3.NT1.plain.member_creds", 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, "NT1"])
423     plantestsuite("samba3.blackbox.smbclient_s3.SMB3.plain.member_creds", 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, "SMB3"])
424
425 env = "nt4_dc_smb1_done"
426 plantestsuite("samba3.blackbox.smbclient_s3.NT1.sign", 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, "NT1", "--signing=required"])
427 env = "nt4_dc"
428 plantestsuite("samba3.blackbox.smbclient_s3.SMB3.sign", 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, "SMB3", "--signing=required"])
429
430 for env in ["nt4_member", "ad_member"]:
431     plantestsuite("samba3.blackbox.smbclient_s3.NT1.sign.member_creds", 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, "NT1", "--signing=required"])
432     plantestsuite("samba3.blackbox.smbclient_s3.SMB3.sign.member_creds", 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, "SMB3", "--signing=required"])
433
434 env = "nt4_dc_smb1_done"
435 # encrypted
436 plantestsuite("samba3.blackbox.smbclient_s3.NT1.crypt", 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, "NT1", "-e"])
437 env = "nt4_dc"
438 plantestsuite("samba3.blackbox.smbclient_s3.SMB3.crypt", 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, "SMB3", "-e"])
439
440 for env in ["fileserver"]:
441     plantestsuite("samba3.blackbox.preserve_case.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, "NT1"])
442     plantestsuite("samba3.blackbox.preserve_case.SMB2+", env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, '"SMB2 SMB3"'])
443     plantestsuite("samba3.blackbox.dfree_command.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, "NT1"])
444     plantestsuite("samba3.blackbox.dfree_command.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, "SMB3"])
445     plantestsuite("samba3.blackbox.dfree_quota.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_dfree_quota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcquotas, smbcacls, "NT1"])
446     plantestsuite("samba3.blackbox.dfree_quota.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_dfree_quota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcquotas, smbcacls, "SMB3"])
447     plantestsuite("samba3.blackbox.smbcquotas", env, [os.path.join(samba3srcdir, "script/tests/test_smbcquota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbcquotas])
448     plantestsuite("samba3.blackbox.valid_users", env, [os.path.join(samba3srcdir, "script/tests/test_valid_users.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
449     plantestsuite("samba3.blackbox.force_create_mode", env, [os.path.join(samba3srcdir, "script/tests/test_force_create_mode.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', env, smbclient3])
450     plantestsuite("samba3.blackbox.dropbox", env, [os.path.join(samba3srcdir, "script/tests/test_dropbox.sh"), '$SERVER', '$DOMAIN', 'gooduser', '$PASSWORD', '$PREFIX', env, smbclient3])
451     plantestsuite("samba3.blackbox.offline", env, [os.path.join(samba3srcdir, "script/tests/test_offline.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/offline', smbclient3])
452     plantestsuite("samba3.blackbox.shadow_copy2.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_shadow_copy.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbclient3, '-m', 'NT1'])
453     plantestsuite("samba3.blackbox.shadow_copy2.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbclient3, '-m', 'SMB3'])
454     plantestsuite("samba3.blackbox.shadow_copy_torture", env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy_torture.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbtorture4])
455     plantestsuite("samba3.blackbox.smbclient.forceuser_validusers", env, [os.path.join(samba3srcdir, "script/tests/test_forceuser_validusers.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
456     plantestsuite("samba3.blackbox.smbget", env, [os.path.join(samba3srcdir, "script/tests/test_smbget.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', 'smbget_user', '$PASSWORD', '$LOCAL_PATH/smbget', smbget])
457     plantestsuite("samba3.blackbox.netshareenum", env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
458     plantestsuite("samba3.blackbox.acl_xattr.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mNT1'])
459     plantestsuite("samba3.blackbox.acl_xattr.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mSMB3'])
460     plantestsuite("samba3.blackbox.smb2.not_casesensitive", env, [os.path.join(samba3srcdir, "script/tests/test_smb2_not_casesensitive.sh"), '//$SERVER/tmp', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
461     plantestsuite("samba3.blackbox.inherit_owner.default.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'tmp', '0', '0', '-m', 'NT1'])
462     plantestsuite("samba3.blackbox.inherit_owner.default.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'tmp', '0', '0', '-m', 'SMB3'])
463     plantestsuite("samba3.blackbox.inherit_owner.full.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'inherit_owner', '1', '1', '-m', 'NT1'])
464     plantestsuite("samba3.blackbox.inherit_owner.full.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'inherit_owner', '1', '1', '-m', 'SMB3'])
465     plantestsuite("samba3.blackbox.inherit_owner.unix.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'inherit_owner_u', '0', '1', '-m', 'NT1'])
466     plantestsuite("samba3.blackbox.inherit_owner.unix.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'inherit_owner_u', '0', '1', '-m', 'SMB3'])
467     plantestsuite("samba3.blackbox.large_acl.NT1", env + "_smb1_done", [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'NT1'])
468     plantestsuite("samba3.blackbox.large_acl.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'SMB3'])
469     plantestsuite("samba3.blackbox.give_owner", env, [os.path.join(samba3srcdir, "script/tests/test_give_owner.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'tmp'])
470     plantestsuite("samba3.blackbox.homes", env, [os.path.join(samba3srcdir, "script/tests/test_homes.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
471     plantestsuite("samba3.blackbox.force_group_change", env,
472                 [os.path.join(samba3srcdir, "script/tests/test_force_group_change.sh"),
473                 '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcontrol])
474     plantestsuite("samba3.blackbox.zero-data", env,
475                   [os.path.join(samba3srcdir, "script/tests/test_zero_data.sh"),
476                    '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH'])
477     plantestsuite("samba3.blackbox.timestamps", env,
478                   [os.path.join(samba3srcdir, "script/tests/test_timestamps.sh"),
479                    '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
480     plantestsuite("samba3.blackbox.smb1_system_security", env + "_smb1_done",
481                   [os.path.join(samba3srcdir, "script/tests/test_smb1_system_security.sh"),
482                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbtorture3, net, 'tmp'])
483     plantestsuite("samba3.blackbox.sacl_get_set", env,
484                   [os.path.join(samba3srcdir, "script/tests/test_sacl_set_get.sh"),
485                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbtorture3, net, 'tmp'])
486     plantestsuite("samba3.blackbox.NT1.shadow_copy_torture", env + "_smb1_done",
487                   [os.path.join(samba3srcdir, "script/tests/test_smb1_shadow_copy_torture.sh"),
488                    '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbtorture4])
489     plantestsuite("samba3.blackbox.smbclient_iconv.SMB2", env,
490                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_iconv.sh"),
491                    '$SERVER', '$SERVER_IP', 'bad_iconv', '$USERNAME', '$PASSWORD', smbclient3])
492     plantestsuite("samba3.blackbox.smbclient_iconv.NT1", env + "_smb1_done",
493                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_iconv.sh"),
494                    '$SERVER', '$SERVER_IP', 'bad_iconv', '$USERNAME', '$PASSWORD', smbclient3, '-mNT1'])
495     plantestsuite("samba3.blackbox.smbclient_iconv.CORE", env + "_smb1_done",
496                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_iconv.sh"),
497                    '$SERVER', '$SERVER_IP', 'bad_iconv', '$USERNAME', '$PASSWORD', smbclient3, '-mCORE'])
498
499     #
500     # tar command tests
501     #
502
503     # Test smbclient/tarmode
504     plantestsuite("samba3.blackbox.smbclient_tarmode.NT1", env + "_smb1_done",
505                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
506                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
507                    '$LOCAL_PATH/tarmode/smbclient_tar', '$PREFIX', smbclient3, configuration, "-mNT1"])
508     plantestsuite("samba3.blackbox.smbclient_tarmode.SMB3", env,
509                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
510                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
511                    '$LOCAL_PATH/tarmode/smbclient_tar', '$PREFIX', smbclient3, configuration, "-mSMB3"])
512
513     # Test suite for new smbclient/tar with libarchive (GSoC 13)
514     plantestsuite("samba3.blackbox.smbclient_tar.NT1", env + "_smb1_done",
515                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
516                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tarmode2',
517                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode2',
518                    '-d', '$PREFIX', '-b', smbclient3,
519                    '--subunit', '--', configuration, '-mNT1'])
520     plantestsuite("samba3.blackbox.smbclient_tar.SMB3", env,
521                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
522                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tarmode2',
523                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode2',
524                    '-d', '$PREFIX', '-b', smbclient3,
525                    '--subunit', '--', configuration, '-mSMB3'])
526
527 for env in ["fileserver:local"]:
528     plantestsuite("samba3.blackbox.net_usershare", env, [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])
529
530     plantestsuite("samba3.blackbox.smbstatus", env, [os.path.join(samba3srcdir, "script/tests/test_smbstatus.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient3, smbstatus, configuration, "SMB3"])
531     plantestsuite("samba3.blackbox.net_registry_import", env, [os.path.join(samba3srcdir, "script/tests/test_net_registry_import.sh"), '$SERVER', '$LOCAL_PATH', '$USERNAME', '$PASSWORD'])
532
533 # TODO encrypted against member, with member creds, and with DC creds
534 plantestsuite("samba3.blackbox.net.misc NT1", "ad_dc_smb1_done:local",
535               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
536                scriptdir, "$SMB_CONF_PATH", net, configuration, "NT1"])
537 plantestsuite("samba3.blackbox.net.misc SMB3", "ad_dc:local",
538               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
539                scriptdir, "$SMB_CONF_PATH", net, configuration, "SMB3"])
540 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
541               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
542                scriptdir, "$SMB_CONF_PATH", net, configuration])
543 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
544               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
545                scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
546 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
547               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
548                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
549
550 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
551               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
552                scriptdir, "$SMB_CONF_PATH", net, configuration])
553 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
554               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
555                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
556
557 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
558               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
559                scriptdir, "$SMB_CONF_PATH", net, configuration])
560 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
561               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
562                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
563
564
565 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
566               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
567                "$LOCAL_PATH"])
568
569 plantestsuite(
570     "samba3.pthreadpool", "none",
571     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
572
573 if with_pthreadpool and have_ldwrap:
574     plantestsuite("samba3.pthreadpool_cmocka", "none",
575                   [os.path.join(bindir(), "pthreadpooltest_cmocka")])
576
577 if with_pthreadpool:
578     plantestsuite("samba3.libwbclient_threads",
579                   "nt4_member",
580                   [os.path.join(samba3srcdir,
581                                 "script/tests/test_libwbclient_threads.sh"),
582                    "$DOMAIN", "$DC_USERNAME"])
583
584 plantestsuite("samba3.test_nfs4_acl", "none",
585               [os.path.join(bindir(), "test_nfs4_acls"),
586                "$SMB_CONF_PATH"])
587
588 plantestsuite("samba3.test_vfs_full_audit", "none",
589               [os.path.join(bindir(), "test_vfs_full_audit"),
590                "$SMB_CONF_PATH"])
591
592 plantestsuite("samba3.test_vfs_posixacl", "none",
593               [os.path.join(bindir(), "test_vfs_posixacl"),
594                "$SMB_CONF_PATH"])
595
596 if is_module_enabled("vfs_gpfs"):
597     plantestsuite("samba3.test_vfs_gpfs", "none",
598                   [os.path.join(bindir(), "test_vfs_gpfs")])
599
600 plantestsuite(
601     "samba3.resolvconf", "none",
602     [os.path.join(samba3srcdir, "script/tests/test_resolvconf.sh")])
603
604 plantestsuite("samba3.tevent_glib_glue", "none",
605     [os.path.join(samba3srcdir, "script/tests/test_tevent_glib_glue.sh")])
606
607 plantestsuite("samba3.async_req", "nt4_dc",
608               [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
609
610 # smbtorture4 tests
611
612 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
613         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
614         "base.disconnect", "base.fdpass", "base.lock",
615         "base.mangle", "base.negnowait", "base.ntdeny1",
616         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
617         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
618         "base.xcopy", "base.samba3error"]
619
620 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
621        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
622        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
623        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
624        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
625        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
626        "raw.samba3rootdirfid", "raw.samba3rootdirfid2", "raw.sfileinfo.end-of-file",
627        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
628        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
629
630 smb2 = smbtorture4_testsuites("smb2.")
631
632 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
633        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
634        "rpc.samba3.getaliasmembership-0",
635        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
636        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
637        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
638        "rpc.samba3.lsa_over_netlogon", "rpc.samba3.pipes_supported_interfaces",
639        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
640        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
641        "rpc.spoolss.driver",
642        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
643        "rpc.lsa.privileges", "rpc.lsa.secrets",
644        "rpc.mdssvc",
645        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
646        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
647        "rpc.samr.priv", "rpc.samr.passwords.validate", "rpc.samr.handletype",
648        "rpc.netlogon.admin",
649        "rpc.netlogon.zerologon",
650        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind",
651        "rpc.initshutdown", "rpc.wkssvc", "rpc.srvsvc"]
652
653 local = ["local.nss"]
654
655 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid", "idmap.ad"]
656
657 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
658
659 unix = ["unix.info2", "unix.whoami"]
660
661 nbt = ["nbt.dgram"]
662
663 vfs = [
664     "vfs.fruit",
665     "vfs.acl_xattr",
666     "vfs.fruit_netatalk",
667     "vfs.fruit_file_id",
668     "vfs.fruit_timemachine",
669     "vfs.fruit_conversion",
670     "vfs.unfruit",
671 ]
672
673 tests = base + raw + smb2 + rpc + unix + local + rap + nbt + idmap + vfs
674
675 for t in tests:
676     if t == "base.delaywrite" or t == "base.deny1" or t == "base.deny2":
677         plansmbtorture4testsuite(t, "fileserver_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
678     elif t == "base.createx_access":
679         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
680     elif t == "rap.sam":
681         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
682         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
683     elif t == "winbind.pac":
684         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
685     elif t == "unix.whoami":
686         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
687         plansmbtorture4testsuite(t, "ad_dc_smb1:local", '//$SERVER/tmp --machine-pass', description="machine account")
688         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
689         plansmbtorture4testsuite(t, "ad_dc_smb1:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
690         for env in ["nt4_dc_smb1", "nt4_member"]:
691             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
692             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
693         for env in ["ad_dc_smb1", "ad_member"]:
694             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
695             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
696             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
697             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
698     elif t == "raw.samba3posixtimedlock":
699         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc_smb1/share')
700         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/brl_delay_inject1 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc_smb1/share',
701                                  description="brl_delay_inject1")
702         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/brl_delay_inject2 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc_smb1/share',
703                                  description="brl_delay_inject2")
704         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc_smb1/share')
705     elif t == "smb2.samba3misc":
706         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
707         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/brl_delay_inject1 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share',
708                                  description="brl_delay_inject1")
709         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/brl_delay_inject2 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share',
710                                  description="brl_delay_inject2")
711         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
712     elif t == "raw.chkpath":
713         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
714         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
715     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr":
716         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
717         plansmbtorture4testsuite(t, "fileserver_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
718         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
719     elif t == "raw.session":
720         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
721         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
722         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
723         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
724     elif t == "smb2.session":
725         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
726         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
727         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
728         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
729         # Certain tests fail when run against ad_member with MIT kerberos because the private krb5.conf overrides the provisioned lib/krb5.conf,
730         # ad_member_idmap_rid sets "create krb5.conf = no"
731         plansmbtorture4testsuite(t, "ad_member_idmap_rid", '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD', 'krb5')
732     elif t == "rpc.lsa":
733         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
734         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
735         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
736         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
737     elif t == "rpc.mdssvc":
738         plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:no_spotlight_localdir=$SELFTEST_PREFIX/fileserver/share')
739     elif t == "rpc.samr.passwords.validate":
740         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
741         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
742     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay" or t == "smb2.durable-v2-delay":
743         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
744         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
745     elif t == "base.rw1":
746         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
747         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
748         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
749         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
750     elif t == "idmap.rfc2307":
751         plantestsuite(t, "ad_member_rfc2307",
752                       [os.path.join(samba3srcdir,
753                                     "../nsswitch/tests/test_idmap_rfc2307.sh"),
754                        '$DOMAIN',
755                        'Administrator', '2000000',
756                        'Guest', '2000001',
757                        '"Domain Users"', '2000002',
758                        'DnsAdmins', '2000003',
759                        '2000005', '35',
760                        'ou=idmap,dc=samba,dc=example,dc=com',
761                        '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
762     elif t == "idmap.alloc":
763         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
764     elif t == "idmap.rid":
765         plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
766     elif t == "idmap.ad":
767         plantestsuite(t, "ad_member_idmap_ad", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_ad.sh"), '$DOMAIN', '$DC_SERVER', '$DC_PASSWORD', '$TRUST_DOMAIN', '$TRUST_SERVER', '$TRUST_PASSWORD'])
768     elif t == "raw.acls":
769         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
770         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-40')
771         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_special_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special-40')
772         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_simple_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-41')
773         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_xdr_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-40')
774         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_xdr_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-41')
775         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_nfs_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-nfs-40')
776         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_nfs_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-nfs-41')
777         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
778     elif t == "smb2.ioctl":
779         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
780         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
781         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
782     elif t == "smb2.lock":
783         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
784         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
785     elif t == "raw.lock" or t == "base.lock":
786         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
787     elif t == "raw.read":
788         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
789         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
790         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
791     elif t == "raw.search":
792         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
793 # test the dirsort module.
794         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
795         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
796     elif t == "vfs.fruit":
797         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share --option=torture:share2=vfs_wo_fruit', 'metadata_netatalk')
798         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_metadata_stream -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share --option=torture:share2=vfs_wo_fruit', 'metadata_stream')
799         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_stream_depot -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share --option=torture:share2=vfs_wo_fruit_stream_depot', 'streams_depot')
800         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_delete_empty_adfiles -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share --option=torture:share2=vfs_wo_fruit', 'fruit_delete_empty_adfiles')
801     elif t == "vfs.fruit_netatalk":
802         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
803     elif t == "vfs.fruit_timemachine":
804         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_timemachine -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
805     elif t == "vfs.fruit_file_id":
806         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_zero_fileid -U$USERNAME%$PASSWORD')
807     elif t == "vfs.fruit_conversion":
808         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:share2=vfs_fruit_wipe_intentionally_left_blank_rfork --option=torture:delete_empty_adfiles=false', 'wipe_intentionally_left_blank_rfork')
809         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:share2=vfs_fruit_delete_empty_adfiles --option=torture:delete_empty_adfiles=true', 'delete_empty_adfiles')
810     elif t == "vfs.unfruit":
811         creds = '-U$USERNAME%$PASSWORD'
812         share2 = '--option=torture:share2=tmp'
813         netopt = '--option=torture:net=%s' % net
814         shareopt = '--option=torture:sharename'
815
816         plansmbtorture4testsuite(t, "nt4_dc:local", '//$SERVER_IP/vfs_fruit %s %s %s %s=%s' % (creds, share2, netopt, shareopt, 'vfs_fruit'), 'metadata_netatalk')
817         plansmbtorture4testsuite(t, "nt4_dc:local", '//$SERVER_IP/vfs_fruit_metadata_stream %s %s %s %s=%s' % (creds, share2, netopt, shareopt, 'vfs_fruit_metadata_stream'), 'metadata_stream')
818         plansmbtorture4testsuite(t, "nt4_dc:local", '//$SERVER_IP/vfs_fruit_stream_depot %s %s %s %s=%s' % (creds, share2, netopt, shareopt, 'vfs_fruit_stream_depot'), 'streams_depot')
819     elif t == "rpc.schannel_anon_setpw":
820         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
821         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
822         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
823     elif t == "local.nss":
824         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
825             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
826     elif t == "smb2.change_notify_disabled":
827         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
828     elif t == "smb2.notify" or t == "raw.notify" or t == "smb2.oplock" or t == "raw.oplock":
829         tmp_env = "nt4_dc"
830         if t == "raw.notify" or t == "raw.oplock":
831             tmp_env = "nt4_dc_smb1"
832         # These tests are a little slower so don't duplicate them with ad_dc
833         plansmbtorture4testsuite(t, tmp_env, '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
834     elif t == "smb2.dosmode":
835         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
836     elif t == "smb2.kernel-oplocks":
837         if have_linux_kernel_oplocks:
838             plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
839     elif t == "smb2.notify-inotify":
840         if have_inotify:
841             plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
842     elif t == "vfs.acl_xattr":
843         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
844     elif t == "smb2.compound_find":
845         plansmbtorture4testsuite(t, "fileserver", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
846         plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
847     elif t == "rpc.samr.users.privileges":
848         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:nt4_dc=true')
849         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
850     elif t == "smb2.compound":
851         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
852         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
853         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
854     elif t == "rpc.samba3.netlogon" or t == "rpc.samba3.sessionkey":
855         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
856         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
857     elif t == "smb2.streams":
858         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
859         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
860         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/streams_xattr -U$USERNAME%$PASSWORD', 'streams_xattr')
861     elif t == "smb2.aio_delay":
862         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio_delay_inject -U$USERNAME%$PASSWORD')
863     elif t == "smb2.delete-on-close-perms":
864         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
865         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/delete_readonly -U$USERNAME%$PASSWORD --option=torture:delete_readonly=true')
866         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
867     elif t == "smb2.fileid":
868         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD')
869     elif t == "rpc.wkssvc":
870         plansmbtorture4testsuite(t, "ad_member", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
871     elif t == "rpc.srvsvc":
872         plansmbtorture4testsuite(t, "ad_member", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
873         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
874     elif t == "rpc.samba3.lsa_over_netlogon":
875         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
876     elif t == "rpc.samba3.pipes_supported_interfaces":
877         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
878         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
879     elif t == "rpc.spoolss.notify":
880         plansmbtorture4testsuite(t, "ad_member", '//$SERVER_IP/tmp -U$DC_USERNAME%$DC_PASSWORD')
881     elif (t in base and t != "base.charset") \
882         or (t in rap and t != "rap.printing") \
883         or (t in unix) \
884         or (t in ["rpc.authcontext",
885                   "rpc.join",
886                   "rpc.samba3.bind",
887                   "rpc.samba3.getusername",
888                   "rpc.samba3.sharesec",
889                   "rpc.samba3.smb1-pipe-name",
890                   "rpc.samba3.smb-reauth1",
891                   "rpc.samba3.smb-reauth2",
892                   "rpc.samba3.spoolss",
893                   "rpc.samba3.wkssvc",]) \
894         or (t in ["raw.close",
895                   "raw.composite",
896                   "raw.eas",
897                   "raw.mkdir",
898                   "raw.open",
899                   "raw.rename",
900                   "raw.samba3badnameblob",
901                   "raw.samba3badpath",
902                   "raw.samba3caseinsensitive",
903                   "raw.samba3oplocklogoff",
904                   "raw.samba3posixtimedlock",
905                   "raw.samba3rootdirfid",
906                   "raw.samba3rootdirfid2",
907                   "raw.seek",
908                   "raw.sfileinfo.bug",
909                   "raw.sfileinfo.end-of-file",
910                   "raw.sfileinfo.rename",
911                   "raw.streams",
912                   "raw.unlink",
913                   "raw.write",]) :
914         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
915         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
916     elif t in ["base.mangle", "base.tcon", "raw.mkdir"]:
917         plansmbtorture4testsuite(t, "nt4_dc_smb1_done", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
918         plansmbtorture4testsuite(t, "ad_dc_smb1_done", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
919     else:
920         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
921         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
922
923 plantestsuite(
924     "idmap_ad.ticket_expiry",
925     "ad_member_idmap_ad:local",
926     [os.path.join(samba3srcdir, "../nsswitch/tests/test_ticket_expiry.sh"),
927      '$DOMAIN'])
928
929 plansmbtorture4testsuite(
930     "notifyd",
931     "fileserver:local",
932     '//foo/bar -U%')
933
934 test = 'rpc.lsa.lookupsids'
935 auth_options = ["", "ntlm", "spnego", "spnego,ntlm", "spnego,smb1", "spnego,smb2"]
936 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
937 endianness_options = ["", ",bigendian"]
938 for s in signseal_options:
939     for e in endianness_options:
940         for a in auth_options:
941             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
942             options = binding_string + " -U$USERNAME%$PASSWORD"
943             if "smb1" in a:
944                 plansmbtorture4testsuite(test, "nt4_dc_smb1_done", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
945             else:
946                 plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
947             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"),
948                                                                                                                  "none", options, configuration])
949
950     # We should try more combinations in future, but this is all
951     # the pre-calculated credentials cache supports at the moment
952     #
953     # As the ktest env requires SMB3_00 we need to use "smb2" until
954     # dcerpc client code in smbtorture support autonegotiation
955     # of any smb dialect.
956     e = ""
957     a = "smb2"
958     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
959     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
960     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
961
962     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
963     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
964
965     auth_options2 = ["krb5", "spnego,krb5"]
966     for a in auth_options2:
967         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
968
969         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"),
970                                                                                                             "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
971
972 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
973                                                                         "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
974 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
975               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
976                configuration, os.path.join(bindir(), "sharesec"),
977                os.path.join(bindir(), "net"), "tmp"])
978
979 plantestsuite("samba3.blackbox.close-denied-share", "simpleserver:local",
980               [os.path.join(samba3srcdir,
981                             "script/tests/test_close_denied_share.sh"),
982                configuration,
983                os.path.join(bindir(), "sharesec"),
984                os.path.join(bindir(), "smbclient"),
985                os.path.join(bindir(), "smbcontrol"),
986                '$SERVER_IP',
987                "tmp"])
988
989 plantestsuite("samba3.blackbox.force-close-share", "simpleserver:local",
990               [os.path.join(samba3srcdir,
991                             "script/tests/test_force_close_share.sh"),
992                configuration,
993                os.path.join(bindir(), "smbclient"),
994                os.path.join(bindir(), "smbcontrol"),
995                '$SERVER_IP',
996                "aio_delay_inject",
997                '$PREFIX/force-close-share'])
998
999 plantestsuite("samba3.blackbox.open-eintr", "simpleserver:local",
1000               [os.path.join(samba3srcdir,
1001                             "script/tests/test_open_eintr.sh"),
1002                configuration,
1003                os.path.join(bindir(), "smbclient"),
1004                os.path.join(bindir(), "smbcontrol"),
1005                '$SERVER_IP',
1006                "error_inject"])
1007
1008 plantestsuite("samba3.blackbox.netfileenum", "simpleserver:local",
1009               [os.path.join(samba3srcdir,
1010                             "script/tests/test_netfileenum.sh"),
1011                os.path.join(bindir(), "smbclient"),
1012                os.path.join(bindir(), "rpcclient"),
1013                os.path.join(bindir(), "net"),
1014                '$SERVER_IP',
1015                'tmp'])
1016
1017 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
1018               [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
1019                smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
1020                configuration, '$LOCAL_PATH', '$LOCK_DIR'])
1021
1022 plantestsuite("samba3.blackbox.aio-outstanding", "simpleserver:local",
1023               [os.path.join(samba3srcdir,
1024                             "script/tests/test_aio_outstanding.sh"),
1025                configuration,
1026                os.path.join(bindir(), "smbclient"),
1027                '$SERVER_IP',
1028                "aio_delay_inject"])
1029
1030 plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
1031               [os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh")])
1032
1033 plantestsuite("samba3.blackbox.smbd_no_krb5", "ad_member:local",
1034               [os.path.join(samba3srcdir, "script/tests/test_smbd_no_krb5.sh"),
1035                smbclient3, '$SERVER', "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX"])
1036
1037 plantestsuite("samba3.blackbox.durable_v2_delay", "simpleserver:local",
1038               [os.path.join(samba3srcdir, "script/tests/test_durable_handle_reconnect.sh")])
1039
1040 plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
1041               [os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
1042                '$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
1043
1044 plantestsuite("samba3.blackbox.net_rpc_share_allowedusers", "nt4_dc",
1045               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_share_allowedusers.sh"),
1046                "$SERVER", "$USERNAME", "$PASSWORD", "$PREFIX/net_rpc_share_allowedusers",
1047                configuration])
1048
1049 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
1050               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
1051                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
1052                configuration])
1053 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
1054               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
1055                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
1056                configuration])
1057 plantestsuite("samba3.blackbox.net_rpc_oldjoin", "nt4_dc:local",
1058               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_oldjoin.sh"),
1059                "$SERVER", "$PREFIX/net_rpc_oldjoin",
1060                "$SMB_CONF_PATH"])
1061 plantestsuite("samba3.blackbox.net_rpc_join_creds", "nt4_dc",
1062               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join_creds.sh"),
1063                "$DOMAIN", "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join_creds",
1064                configuration])
1065
1066 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
1067               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
1068                "$USERNAME", "$PASSWORD", "$SERVER",
1069                os.path.join(bindir(), "rpcclient"), "tmp"])
1070
1071 plantestsuite("samba3.blackbox.rpcclient_lookup", "simpleserver",
1072               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_lookup.sh"),
1073                "$USERNAME", "$PASSWORD", "$SERVER",
1074                os.path.join(bindir(), "rpcclient")])
1075
1076 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
1077               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
1078                "$USERNAME", "$PASSWORD", "$SERVER",
1079                os.path.join(bindir(), "rpcclient")])
1080
1081 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
1082               [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
1083                "$USERNAME", "$PASSWORD", "$SERVER",
1084                smbclient3])
1085
1086 for env in ['fileserver', 'simpleserver']:
1087     plantestsuite("samba3.blackbox.smbclient.encryption", env,
1088                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption.sh"),
1089                    "$USERNAME", "$PASSWORD", "$SERVER",
1090                    smbclient3, env])
1091
1092 plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member",
1093               [os.path.join(samba3srcdir,
1094                             "script/tests/test_rpcclient_netsessenum.sh"),
1095                "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD", "$SERVER",
1096                os.path.join(bindir(), "rpcclient"), smbtorture3, "tmp"])
1097
1098 # The ktest environment uses:
1099 # server min protocol = SMB3_00
1100 # client max protocol = SMB3
1101 options_list = ["", "-e"]
1102 for options in options_list:
1103     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
1104                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
1105                    "$PREFIX/ktest/krb5_ccache-2",
1106                    smbclient3, "$SERVER", options, configuration])
1107
1108     plantestsuite("samba3.blackbox.smbclient_krb5 new ccache %s" % options, "ktest:local",
1109                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
1110                    "$PREFIX/ktest/krb5_ccache-3",
1111                    smbclient3, "$SERVER", options, configuration])
1112
1113     plantestsuite("samba3.blackbox.smbclient_large_file %s krb5" % options, "ktest:local",
1114                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
1115                    "$PREFIX/ktest/krb5_ccache-3",
1116                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
1117
1118 options_list = ["-mNT1", "-mNT1 -e", "-mSMB3", "-mSMB3 -e"]
1119 for options in options_list:
1120     env = "nt4_dc"
1121     if "NT1" in options:
1122         env = "nt4_dc_smb1_done"
1123     plantestsuite("samba3.blackbox.smbclient_large_file %s NTLM" % options, "%s:local" % env,
1124                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
1125                    "none",
1126                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
1127
1128 for alias in ["foo", "bar"]:
1129     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
1130                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
1131                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
1132
1133 for e in endianness_options:
1134     for a in auth_options:
1135         for s in signseal_options:
1136             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
1137             options = binding_string + " -U$USERNAME%$PASSWORD"
1138             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
1139
1140 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
1141 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_np')
1142
1143 for env in ["ad_member_idmap_rid:local", "maptoguest:local"]:
1144     plantestsuite("samba3.blackbox.guest", env,
1145                   [os.path.join(samba3srcdir, "script/tests/test_guest_auth.sh"),
1146                    '$SERVER', smbclient3, smbcontrol, net, configuration])
1147
1148 plantestsuite("samba3.blackbox.itime", "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_itime.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, 'xattr'])
1149
1150 plantestsuite("samba3.blackbox.smbclient-mget",
1151               "fileserver",
1152               [os.path.join(samba3srcdir, "script/tests/test_smbclient_mget.sh"),
1153                smbclient3,
1154                "$SERVER",
1155                "tmp",
1156                "$USERNAME",
1157                "$PASSWORD",
1158                "valid_users"])
1159
1160 t = "readdir-timestamp"
1161 plantestsuite(
1162     "samba3.smbtorture_s3.plain.%s" % t,
1163     "clusteredmember",
1164     [os.path.join(samba3srcdir,
1165                   "script/tests/test_smbtorture_s3.sh"),
1166      t,
1167      '//foo/bar',
1168      '$DOMAIN\\\\$DC_USERNAME',
1169      '$DC_PASSWORD',
1170      smbtorture3,
1171      "",
1172      "-b $PREFIX/clusteredmember/unclists/tmp.txt -N 5 -o 10"])
1173
1174 plantestsuite(
1175     "samba3.net_lookup_ldap",
1176     "ad_dc:local",
1177     [os.path.join(samba3srcdir,
1178                   "script/tests/test_net_lookup.sh"),
1179      '$DC_SERVER',
1180      '$DC_USERNAME',
1181      '$DC_PASSWORD',
1182      "bin/net",
1183      "bin/samba-tool",
1184      '$DNSNAME'])
1185
1186 def planclusteredmembertestsuite(tname, prefix):
1187     '''Define a clustered test for the clusteredmember environment'''
1188
1189     tshare = 'tmp'
1190
1191     autharg = '-U${DOMAIN}/${DC_USERNAME}%${DC_PASSWORD}'
1192     namearg = 'clustered.%s' % tname
1193     modnamearg = 'samba3.%s' % namearg
1194     extraargs = ''
1195
1196     prefix = os.path.join(prefix, 'clusteredmember')
1197     unclist = os.path.join(prefix, 'unclists/%s.txt' % tshare)
1198
1199     unclistarg = '--unclist=%s' % unclist
1200     sharearg = '//$SERVER_IP/%s' % tshare
1201
1202     return selftesthelpers.plansmbtorture4testsuite(
1203         namearg,
1204         'clusteredmember',
1205         [extraargs, unclistarg, sharearg, autharg, tname],
1206         target='samba3',
1207         modname=modnamearg)
1208
1209
1210 CLUSTERED_TESTS = [ 'smb2.deny.deny2' ]
1211
1212 for test in CLUSTERED_TESTS:
1213     planclusteredmembertestsuite(test, "$PREFIX")
1214
1215 CLUSTERED_LOCAL_TESTS = [
1216     "ctdbd-conn1",
1217     "local-dbwrap-ctdb1"
1218 ]
1219
1220 for t in CLUSTERED_LOCAL_TESTS:
1221     plantestsuite(
1222         "samba3.%s" % t,
1223         "clusteredmember:local",
1224         [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"),
1225          t,
1226          '//foo/bar',
1227          '""',
1228          '""',
1229          smbtorture3,
1230          "-N 1000 -o 2000"])