selftest: add a test for %U variable expansion in spoolssd
[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                "POSIX-LS-SINGLE",
248                "POSIX-READLINK",
249                "POSIX-STAT",
250               ]
251
252 for t in posix_tests:
253     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"])
254     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"])
255
256 local_tests = [
257     "LOCAL-SUBSTITUTE",
258     "LOCAL-GENCACHE",
259     "LOCAL-BASE64",
260     "LOCAL-RBTREE",
261     "LOCAL-MEMCACHE",
262     "LOCAL-STREAM-NAME",
263     "LOCAL-string_to_sid",
264     "LOCAL-sid_to_string",
265     "LOCAL-binary_to_sid",
266     "LOCAL-DBTRANS",
267     "LOCAL-TEVENT-POLL",
268     "LOCAL-CONVERT-STRING",
269     "LOCAL-CONV-AUTH-INFO",
270     "LOCAL-IDMAP-TDB-COMMON",
271     "LOCAL-MESSAGING-READ1",
272     "LOCAL-MESSAGING-READ2",
273     "LOCAL-MESSAGING-READ3",
274     "LOCAL-MESSAGING-READ4",
275     "LOCAL-MESSAGING-FDPASS1",
276     "LOCAL-MESSAGING-FDPASS2",
277     "LOCAL-MESSAGING-FDPASS2a",
278     "LOCAL-MESSAGING-FDPASS2b",
279     "LOCAL-MESSAGING-SEND-ALL",
280     "LOCAL-PTHREADPOOL-TEVENT",
281     "LOCAL-CANONICALIZE-PATH",
282     "LOCAL-DBWRAP-WATCH1",
283     "LOCAL-DBWRAP-WATCH2",
284     "LOCAL-DBWRAP-WATCH3",
285     "LOCAL-DBWRAP-WATCH4",
286     "LOCAL-DBWRAP-DO-LOCKED1",
287     "LOCAL-G-LOCK1",
288     "LOCAL-G-LOCK2",
289     "LOCAL-G-LOCK3",
290     "LOCAL-G-LOCK4",
291     "LOCAL-G-LOCK4A",
292     "LOCAL-G-LOCK5",
293     "LOCAL-G-LOCK6",
294     "LOCAL-G-LOCK7",
295     "LOCAL-G-LOCK8",
296     "LOCAL-NAMEMAP-CACHE1",
297     "LOCAL-IDMAP-CACHE1",
298     "LOCAL-hex_encode_buf",
299     "LOCAL-remove_duplicate_addrs2"]
300
301 for t in local_tests:
302     plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
303
304 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
305 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
306 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
307 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
308
309 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"])
310 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"])
311 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"])
312 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"])
313 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"])
314 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"])
315
316 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])
317 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"]:
318     if "NT1" in options or "LANMAN2" in options:
319         env = "nt4_dc_smb1_done"
320     else:
321         env = "nt4_dc"
322     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])
323
324 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc", "ad_dc_ntvfs", "s4member", "fl2000dc"]:
325     plantestsuite("samba3.blackbox.smbclient_machine_auth.plain", "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_machine_auth.sh"), '$SERVER', smbclient3, configuration])
326     smb1_env = env
327     if smb1_env == "ad_dc" or smb1_env == "nt4_dc":
328         smb1_env = smb1_env + "_smb1_done"
329     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])
330     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])
331
332
333 plantestsuite("samba3.blackbox.smbclient_log_basename", "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_smbclient_log_basename.sh"), '$SERVER', smbclient3, '$PREFIX', configuration])
334
335 for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no -mNT1", ""]:
336     # don't attempt to run SMB1 tests in nt4_member or ad_member
337     # as these test envs don't support SMB1, use nt4_dc instead
338     environs = ["nt4_member", "ad_member"]
339     if "NT1" in options or "LANMAN2" in options:
340         environs = ["nt4_dc_smb1_done"]
341     for env in environs:
342         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])
343         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])
344
345 for env in ["nt4_member", "ad_member"]:
346     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])
347     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])
348     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])
349     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])
350     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])
351     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])
352
353 env = "ad_dc_smb1"
354 plantestsuite("samba3.blackbox.smbspool", env, [os.path.join(samba3srcdir, "script/tests/test_smbspool.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', env])
355
356 plantestsuite("samba3.blackbox.printing_var_exp", "nt4_dc", [os.path.join(samba3srcdir, "script/tests/test_printing_var_exp.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD'])
357
358 for env in ["ad_member:local", "nt4_dc:local"]:
359     plantestsuite("samba3.blackbox.smbpasswd", env, [os.path.join(samba3srcdir, "script/tests/test_smbpasswd.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD'])
360
361 env = "nt4_dc"
362 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])
363
364 for env in ["nt4_member", "ad_member"]:
365     plantestsuite("samba3.blackbox.net_cred_change", "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
366
367 env = "ad_member"
368 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
369 plantestsuite("samba3.wbinfo_simple.%s" % t, "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
370 plantestsuite("samba3.wbinfo_name_lookup", env,
371               [os.path.join(srcdir(),
372                             "nsswitch/tests/test_wbinfo_name_lookup.sh"),
373                '$DOMAIN', '$REALM', '$DC_USERNAME'])
374
375 env = "ad_member"
376 plantestsuite("samba3.wbinfo_user_info_cached", env,
377               [os.path.join(srcdir(),
378                             "nsswitch/tests/test_wbinfo_user_info_cached.sh"),
379                '$DOMAIN', '$REALM', 'joe', 'Secret007', '"Samba Users"', env])
380 plantestsuite("samba3.wbinfo_user_info_cached.trustdom", env,
381               [os.path.join(srcdir(),
382                             "nsswitch/tests/test_wbinfo_user_info_cached.sh"),
383                '$TRUST_F_BOTH_DOMAIN', '$TRUST_F_BOTH_REALM', 'joe', 'Secret007', '"Samba Users"', env])
384
385 env = "ad_member:local"
386 plantestsuite("samba3.wbinfo_user_info", env,
387               [os.path.join(srcdir(),
388                             "nsswitch/tests/test_wbinfo_user_info.sh"),
389                '$DOMAIN', '$REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
390
391 env = "fl2008r2dc:local"
392 plantestsuite("samba3.wbinfo_user_info", env,
393               [os.path.join(srcdir(),
394                             "nsswitch/tests/test_wbinfo_user_info.sh"),
395                '$TRUST_DOMAIN', '$TRUST_REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
396
397 env = "nt4_member:local"
398 plantestsuite("samba3.wbinfo_sids_to_xids", env,
399               [os.path.join(srcdir(),
400                             "nsswitch/tests/test_wbinfo_sids_to_xids.sh")])
401 plantestsuite(
402     "samba.wbinfo_lookuprids_cache",
403     env,
404     [os.path.join(samba3srcdir,
405                   "script/tests/test_wbinfo_lookuprids_cache.sh")])
406
407 env = "ad_member"
408 t = "WBCLIENT-MULTI-PING"
409 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
410 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
411
412 for env in ["maptoguest", "simpleserver"]:
413     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"])
414
415 env = "maptoguest"
416 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"])
417 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])
418 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])
419
420 # plain
421 env = "nt4_dc_smb1_done"
422 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"])
423 env = "nt4_dc"
424 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"])
425
426 for env in ["nt4_member", "ad_member"]:
427     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"])
428     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"])
429
430 env = "nt4_dc_smb1_done"
431 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"])
432 env = "nt4_dc"
433 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"])
434
435 for env in ["nt4_member", "ad_member"]:
436     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"])
437     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"])
438
439 env = "nt4_dc_smb1_done"
440 # encrypted
441 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"])
442 env = "nt4_dc"
443 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"])
444
445 for env in ["fileserver"]:
446     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"])
447     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"'])
448     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"])
449     plantestsuite("samba3.blackbox.dfree_command.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, "SMB3"])
450     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"])
451     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"])
452     plantestsuite("samba3.blackbox.smbcquotas", env, [os.path.join(samba3srcdir, "script/tests/test_smbcquota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbcquotas])
453     plantestsuite("samba3.blackbox.valid_users", env, [os.path.join(samba3srcdir, "script/tests/test_valid_users.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
454     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])
455     plantestsuite("samba3.blackbox.dropbox", env, [os.path.join(samba3srcdir, "script/tests/test_dropbox.sh"), '$SERVER', '$DOMAIN', 'gooduser', '$PASSWORD', '$PREFIX', env, smbclient3])
456     plantestsuite("samba3.blackbox.offline", env, [os.path.join(samba3srcdir, "script/tests/test_offline.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/offline', smbclient3])
457     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'])
458     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'])
459     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])
460     plantestsuite("samba3.blackbox.smbclient.forceuser_validusers", env, [os.path.join(samba3srcdir, "script/tests/test_forceuser_validusers.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
461     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])
462     plantestsuite("samba3.blackbox.netshareenum", env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
463     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'])
464     plantestsuite("samba3.blackbox.acl_xattr.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mSMB3'])
465     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])
466     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'])
467     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'])
468     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'])
469     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'])
470     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'])
471     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'])
472     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'])
473     plantestsuite("samba3.blackbox.large_acl.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'SMB3'])
474     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'])
475     plantestsuite("samba3.blackbox.homes", env, [os.path.join(samba3srcdir, "script/tests/test_homes.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
476     plantestsuite("samba3.blackbox.force_group_change", env,
477                 [os.path.join(samba3srcdir, "script/tests/test_force_group_change.sh"),
478                 '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcontrol])
479     plantestsuite("samba3.blackbox.zero-data", env,
480                   [os.path.join(samba3srcdir, "script/tests/test_zero_data.sh"),
481                    '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH'])
482     plantestsuite("samba3.blackbox.timestamps", env,
483                   [os.path.join(samba3srcdir, "script/tests/test_timestamps.sh"),
484                    '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
485     plantestsuite("samba3.blackbox.smb1_system_security", env + "_smb1_done",
486                   [os.path.join(samba3srcdir, "script/tests/test_smb1_system_security.sh"),
487                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbtorture3, net, 'tmp'])
488     plantestsuite("samba3.blackbox.sacl_get_set", env,
489                   [os.path.join(samba3srcdir, "script/tests/test_sacl_set_get.sh"),
490                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbtorture3, net, 'tmp'])
491     plantestsuite("samba3.blackbox.NT1.shadow_copy_torture", env + "_smb1_done",
492                   [os.path.join(samba3srcdir, "script/tests/test_smb1_shadow_copy_torture.sh"),
493                    '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbtorture4])
494     plantestsuite("samba3.blackbox.smbclient_iconv.SMB2", env,
495                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_iconv.sh"),
496                    '$SERVER', '$SERVER_IP', 'bad_iconv', '$USERNAME', '$PASSWORD', smbclient3])
497     plantestsuite("samba3.blackbox.smbclient_iconv.NT1", env + "_smb1_done",
498                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_iconv.sh"),
499                    '$SERVER', '$SERVER_IP', 'bad_iconv', '$USERNAME', '$PASSWORD', smbclient3, '-mNT1'])
500     plantestsuite("samba3.blackbox.smbclient_iconv.CORE", env + "_smb1_done",
501                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_iconv.sh"),
502                    '$SERVER', '$SERVER_IP', 'bad_iconv', '$USERNAME', '$PASSWORD', smbclient3, '-mCORE'])
503
504     #
505     # tar command tests
506     #
507
508     # Test smbclient/tarmode
509     plantestsuite("samba3.blackbox.smbclient_tarmode.NT1", env + "_smb1_done",
510                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
511                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
512                    '$LOCAL_PATH/tarmode/smbclient_tar', '$PREFIX', smbclient3, configuration, "-mNT1"])
513     plantestsuite("samba3.blackbox.smbclient_tarmode.SMB3", env,
514                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
515                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
516                    '$LOCAL_PATH/tarmode/smbclient_tar', '$PREFIX', smbclient3, configuration, "-mSMB3"])
517
518     # Test suite for new smbclient/tar with libarchive (GSoC 13)
519     plantestsuite("samba3.blackbox.smbclient_tar.NT1", env + "_smb1_done",
520                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
521                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tarmode2',
522                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode2',
523                    '-d', 'smbclient_tar.NT1', '-b', smbclient3,
524                    '--subunit', '--', configuration, '-mNT1'])
525     plantestsuite("samba3.blackbox.smbclient_tar.SMB3", env,
526                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
527                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tarmode2',
528                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode2',
529                    '-d', 'smbclient_tar.SMB3', '-b', smbclient3,
530                    '--subunit', '--', configuration, '-mSMB3'])
531
532 for env in ["fileserver:local"]:
533     plantestsuite("samba3.blackbox.net_usershare", env, [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])
534
535     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"])
536     plantestsuite("samba3.blackbox.net_registry_import", env, [os.path.join(samba3srcdir, "script/tests/test_net_registry_import.sh"), '$SERVER', '$LOCAL_PATH', '$USERNAME', '$PASSWORD'])
537
538 # TODO encrypted against member, with member creds, and with DC creds
539 plantestsuite("samba3.blackbox.net.misc NT1", "ad_dc_smb1_done:local",
540               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
541                scriptdir, "$SMB_CONF_PATH", net, configuration, "NT1"])
542 plantestsuite("samba3.blackbox.net.misc SMB3", "ad_dc:local",
543               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
544                scriptdir, "$SMB_CONF_PATH", net, configuration, "SMB3"])
545 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
546               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
547                scriptdir, "$SMB_CONF_PATH", net, configuration])
548 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
549               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
550                scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
551 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
552               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
553                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
554
555 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
556               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
557                scriptdir, "$SMB_CONF_PATH", net, configuration])
558 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
559               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
560                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
561
562 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
563               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
564                scriptdir, "$SMB_CONF_PATH", net, configuration])
565 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
566               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
567                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
568
569
570 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
571               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
572                "$LOCAL_PATH"])
573
574 plantestsuite(
575     "samba3.pthreadpool", "none",
576     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
577
578 if with_pthreadpool and have_ldwrap:
579     plantestsuite("samba3.pthreadpool_cmocka", "none",
580                   [os.path.join(bindir(), "pthreadpooltest_cmocka")])
581
582 if with_pthreadpool:
583     plantestsuite("samba3.libwbclient_threads",
584                   "nt4_member",
585                   [os.path.join(samba3srcdir,
586                                 "script/tests/test_libwbclient_threads.sh"),
587                    "$DOMAIN", "$DC_USERNAME"])
588
589 plantestsuite("samba3.test_nfs4_acl", "none",
590               [os.path.join(bindir(), "test_nfs4_acls"),
591                "$SMB_CONF_PATH"])
592
593 plantestsuite("samba3.test_vfs_full_audit", "none",
594               [os.path.join(bindir(), "test_vfs_full_audit"),
595                "$SMB_CONF_PATH"])
596
597 plantestsuite("samba3.test_vfs_posixacl", "none",
598               [os.path.join(bindir(), "test_vfs_posixacl"),
599                "$SMB_CONF_PATH"])
600
601 if is_module_enabled("vfs_gpfs"):
602     plantestsuite("samba3.test_vfs_gpfs", "none",
603                   [os.path.join(bindir(), "test_vfs_gpfs")])
604
605 plantestsuite(
606     "samba3.resolvconf", "none",
607     [os.path.join(samba3srcdir, "script/tests/test_resolvconf.sh")])
608
609 plantestsuite("samba3.tevent_glib_glue", "none",
610     [os.path.join(samba3srcdir, "script/tests/test_tevent_glib_glue.sh")])
611
612 plantestsuite("samba3.async_req", "nt4_dc",
613               [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
614
615 # smbtorture4 tests
616
617 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
618         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
619         "base.disconnect", "base.fdpass", "base.lock",
620         "base.mangle", "base.negnowait", "base.ntdeny1",
621         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
622         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
623         "base.xcopy", "base.samba3error"]
624
625 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
626        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
627        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
628        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
629        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
630        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
631        "raw.samba3rootdirfid", "raw.samba3rootdirfid2", "raw.sfileinfo.end-of-file",
632        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
633        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
634
635 smb2 = smbtorture4_testsuites("smb2.")
636
637 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
638        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
639        "rpc.samba3.getaliasmembership-0",
640        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
641        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
642        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
643        "rpc.samba3.lsa_over_netlogon", "rpc.samba3.pipes_supported_interfaces",
644        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
645        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
646        "rpc.spoolss.driver",
647        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
648        "rpc.lsa.privileges", "rpc.lsa.secrets",
649        "rpc.mdssvc",
650        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
651        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
652        "rpc.samr.priv", "rpc.samr.passwords.validate", "rpc.samr.handletype",
653        "rpc.netlogon.admin",
654        "rpc.netlogon.zerologon",
655        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind",
656        "rpc.initshutdown", "rpc.wkssvc", "rpc.srvsvc"]
657
658 local = ["local.nss"]
659
660 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid", "idmap.ad"]
661
662 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
663
664 unix = ["unix.info2", "unix.whoami"]
665
666 nbt = ["nbt.dgram"]
667
668 vfs = [
669     "vfs.fruit",
670     "vfs.acl_xattr",
671     "vfs.fruit_netatalk",
672     "vfs.fruit_file_id",
673     "vfs.fruit_timemachine",
674     "vfs.fruit_conversion",
675     "vfs.unfruit",
676 ]
677
678 tests = base + raw + smb2 + rpc + unix + local + rap + nbt + idmap + vfs
679
680 for t in tests:
681     if t == "base.delaywrite" or t == "base.deny1" or t == "base.deny2":
682         plansmbtorture4testsuite(t, "fileserver_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
683     elif t == "base.createx_access":
684         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
685     elif t == "rap.sam":
686         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
687         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
688     elif t == "winbind.pac":
689         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
690     elif t == "unix.whoami":
691         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
692         plansmbtorture4testsuite(t, "ad_dc_smb1:local", '//$SERVER/tmp --machine-pass', description="machine account")
693         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
694         plansmbtorture4testsuite(t, "ad_dc_smb1:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
695         for env in ["nt4_dc_smb1", "nt4_member"]:
696             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
697             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
698         for env in ["ad_dc_smb1", "ad_member"]:
699             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
700             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
701             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
702             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
703     elif t == "raw.samba3posixtimedlock":
704         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc_smb1/share')
705         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/brl_delay_inject1 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc_smb1/share',
706                                  description="brl_delay_inject1")
707         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/brl_delay_inject2 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc_smb1/share',
708                                  description="brl_delay_inject2")
709         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc_smb1/share')
710     elif t == "smb2.samba3misc":
711         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
712         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/brl_delay_inject1 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share',
713                                  description="brl_delay_inject1")
714         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/brl_delay_inject2 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share',
715                                  description="brl_delay_inject2")
716         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
717     elif t == "raw.chkpath":
718         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
719         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
720     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr":
721         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
722         plansmbtorture4testsuite(t, "fileserver_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
723         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
724     elif t == "raw.session":
725         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
726         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
727         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
728         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
729     elif t == "smb2.session":
730         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
731         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
732         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
733         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
734         # Certain tests fail when run against ad_member with MIT kerberos because the private krb5.conf overrides the provisioned lib/krb5.conf,
735         # ad_member_idmap_rid sets "create krb5.conf = no"
736         plansmbtorture4testsuite(t, "ad_member_idmap_rid", '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD', 'krb5')
737     elif t == "rpc.lsa":
738         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
739         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
740         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
741         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
742     elif t == "rpc.mdssvc":
743         plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:no_spotlight_localdir=$SELFTEST_PREFIX/fileserver/share')
744     elif t == "rpc.samr.passwords.validate":
745         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
746         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
747     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay" or t == "smb2.durable-v2-delay":
748         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
749         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
750     elif t == "base.rw1":
751         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
752         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
753         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
754         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
755     elif t == "idmap.rfc2307":
756         plantestsuite(t, "ad_member_rfc2307",
757                       [os.path.join(samba3srcdir,
758                                     "../nsswitch/tests/test_idmap_rfc2307.sh"),
759                        '$DOMAIN',
760                        'Administrator', '2000000',
761                        'Guest', '2000001',
762                        '"Domain Users"', '2000002',
763                        'DnsAdmins', '2000003',
764                        '2000005', '35',
765                        'ou=idmap,dc=samba,dc=example,dc=com',
766                        '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
767     elif t == "idmap.alloc":
768         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
769     elif t == "idmap.rid":
770         plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
771     elif t == "idmap.ad":
772         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'])
773     elif t == "raw.acls":
774         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
775         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-40')
776         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_special_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special-40')
777         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_simple_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-41')
778         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_xdr_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-40')
779         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_xdr_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-41')
780         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_nfs_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-nfs-40')
781         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_nfs_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-nfs-41')
782         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
783     elif t == "smb2.ioctl":
784         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
785         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
786         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
787     elif t == "smb2.lock":
788         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
789         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
790     elif t == "raw.lock" or t == "base.lock":
791         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
792     elif t == "raw.read":
793         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
794         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
795         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
796     elif t == "raw.search":
797         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
798 # test the dirsort module.
799         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
800         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
801     elif t == "vfs.fruit":
802         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')
803         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')
804         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')
805         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')
806     elif t == "vfs.fruit_netatalk":
807         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
808     elif t == "vfs.fruit_timemachine":
809         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_timemachine -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
810     elif t == "vfs.fruit_file_id":
811         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_zero_fileid -U$USERNAME%$PASSWORD')
812     elif t == "vfs.fruit_conversion":
813         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')
814         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')
815     elif t == "vfs.unfruit":
816         creds = '-U$USERNAME%$PASSWORD'
817         share2 = '--option=torture:share2=tmp'
818         netopt = '--option=torture:net=%s' % net
819         shareopt = '--option=torture:sharename'
820
821         plansmbtorture4testsuite(t, "nt4_dc:local", '//$SERVER_IP/vfs_fruit %s %s %s %s=%s' % (creds, share2, netopt, shareopt, 'vfs_fruit'), 'metadata_netatalk')
822         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')
823         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')
824     elif t == "rpc.schannel_anon_setpw":
825         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
826         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
827         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
828     elif t == "local.nss":
829         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
830             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
831     elif t == "smb2.change_notify_disabled":
832         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
833     elif t == "smb2.notify" or t == "raw.notify" or t == "smb2.oplock" or t == "raw.oplock":
834         tmp_env = "nt4_dc"
835         if t == "raw.notify" or t == "raw.oplock":
836             tmp_env = "nt4_dc_smb1"
837         # These tests are a little slower so don't duplicate them with ad_dc
838         plansmbtorture4testsuite(t, tmp_env, '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
839     elif t == "smb2.dosmode":
840         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
841     elif t == "smb2.kernel-oplocks":
842         if have_linux_kernel_oplocks:
843             plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
844     elif t == "smb2.notify-inotify":
845         if have_inotify:
846             plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
847     elif t == "vfs.acl_xattr":
848         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
849     elif t == "smb2.compound_find":
850         plansmbtorture4testsuite(t, "fileserver", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
851         plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
852     elif t == "rpc.samr.users.privileges":
853         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:nt4_dc=true')
854         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
855     elif t == "smb2.compound":
856         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
857         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
858         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
859     elif t == "rpc.samba3.netlogon" or t == "rpc.samba3.sessionkey":
860         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
861         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
862     elif t == "smb2.streams":
863         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
864         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
865         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/streams_xattr -U$USERNAME%$PASSWORD', 'streams_xattr')
866     elif t == "smb2.aio_delay":
867         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio_delay_inject -U$USERNAME%$PASSWORD')
868     elif t == "smb2.delete-on-close-perms":
869         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
870         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/delete_readonly -U$USERNAME%$PASSWORD --option=torture:delete_readonly=true')
871         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
872     elif t == "smb2.fileid":
873         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD')
874     elif t == "rpc.wkssvc":
875         plansmbtorture4testsuite(t, "ad_member", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
876     elif t == "rpc.srvsvc":
877         plansmbtorture4testsuite(t, "ad_member", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
878         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
879     elif t == "rpc.samba3.lsa_over_netlogon":
880         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
881     elif t == "rpc.samba3.pipes_supported_interfaces":
882         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
883         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
884     elif t == "rpc.spoolss.notify":
885         plansmbtorture4testsuite(t, "ad_member", '//$SERVER_IP/tmp -U$DC_USERNAME%$DC_PASSWORD')
886     elif (t in base and t != "base.charset") \
887         or (t in rap and t != "rap.printing") \
888         or (t in unix) \
889         or (t in ["rpc.authcontext",
890                   "rpc.join",
891                   "rpc.samba3.bind",
892                   "rpc.samba3.getusername",
893                   "rpc.samba3.sharesec",
894                   "rpc.samba3.smb1-pipe-name",
895                   "rpc.samba3.smb-reauth1",
896                   "rpc.samba3.smb-reauth2",
897                   "rpc.samba3.spoolss",
898                   "rpc.samba3.wkssvc",]) \
899         or (t in ["raw.close",
900                   "raw.composite",
901                   "raw.eas",
902                   "raw.mkdir",
903                   "raw.open",
904                   "raw.rename",
905                   "raw.samba3badnameblob",
906                   "raw.samba3badpath",
907                   "raw.samba3caseinsensitive",
908                   "raw.samba3oplocklogoff",
909                   "raw.samba3posixtimedlock",
910                   "raw.samba3rootdirfid",
911                   "raw.samba3rootdirfid2",
912                   "raw.seek",
913                   "raw.sfileinfo.bug",
914                   "raw.sfileinfo.end-of-file",
915                   "raw.sfileinfo.rename",
916                   "raw.streams",
917                   "raw.unlink",
918                   "raw.write",]) :
919         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
920         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
921     elif t in ["base.mangle", "base.tcon", "raw.mkdir"]:
922         plansmbtorture4testsuite(t, "nt4_dc_smb1_done", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
923         plansmbtorture4testsuite(t, "ad_dc_smb1_done", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
924     else:
925         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
926         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
927
928 plantestsuite(
929     "idmap_ad.ticket_expiry",
930     "ad_member_idmap_ad:local",
931     [os.path.join(samba3srcdir, "../nsswitch/tests/test_ticket_expiry.sh"),
932      '$DOMAIN'])
933
934 plansmbtorture4testsuite(
935     "notifyd",
936     "fileserver:local",
937     '//foo/bar -U%')
938
939 test = 'rpc.lsa.lookupsids'
940 auth_options = ["", "ntlm", "spnego", "spnego,ntlm", "spnego,smb1", "spnego,smb2"]
941 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
942 endianness_options = ["", ",bigendian"]
943 for s in signseal_options:
944     for e in endianness_options:
945         for a in auth_options:
946             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
947             options = binding_string + " -U$USERNAME%$PASSWORD"
948             if "smb1" in a:
949                 plansmbtorture4testsuite(test, "nt4_dc_smb1_done", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
950             else:
951                 plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
952             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"),
953                                                                                                                  "none", options, configuration])
954
955     # We should try more combinations in future, but this is all
956     # the pre-calculated credentials cache supports at the moment
957     #
958     # As the ktest env requires SMB3_00 we need to use "smb2" until
959     # dcerpc client code in smbtorture support autonegotiation
960     # of any smb dialect.
961     e = ""
962     a = "smb2"
963     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
964     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
965     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
966
967     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
968     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
969
970     auth_options2 = ["krb5", "spnego,krb5"]
971     for a in auth_options2:
972         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
973
974         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"),
975                                                                                                             "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
976
977 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
978                                                                         "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
979 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
980               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
981                configuration, os.path.join(bindir(), "sharesec"),
982                os.path.join(bindir(), "net"), "tmp"])
983
984 plantestsuite("samba3.blackbox.close-denied-share", "simpleserver:local",
985               [os.path.join(samba3srcdir,
986                             "script/tests/test_close_denied_share.sh"),
987                configuration,
988                os.path.join(bindir(), "sharesec"),
989                os.path.join(bindir(), "smbclient"),
990                os.path.join(bindir(), "smbcontrol"),
991                '$SERVER_IP',
992                "tmp"])
993
994 plantestsuite("samba3.blackbox.force-close-share", "simpleserver:local",
995               [os.path.join(samba3srcdir,
996                             "script/tests/test_force_close_share.sh"),
997                configuration,
998                os.path.join(bindir(), "smbclient"),
999                os.path.join(bindir(), "smbcontrol"),
1000                '$SERVER_IP',
1001                "aio_delay_inject",
1002                '$PREFIX/force-close-share'])
1003
1004 plantestsuite("samba3.blackbox.open-eintr", "simpleserver:local",
1005               [os.path.join(samba3srcdir,
1006                             "script/tests/test_open_eintr.sh"),
1007                configuration,
1008                os.path.join(bindir(), "smbclient"),
1009                os.path.join(bindir(), "smbcontrol"),
1010                '$SERVER_IP',
1011                "error_inject"])
1012
1013 plantestsuite("samba3.blackbox.netfileenum", "simpleserver:local",
1014               [os.path.join(samba3srcdir,
1015                             "script/tests/test_netfileenum.sh"),
1016                os.path.join(bindir(), "smbclient"),
1017                os.path.join(bindir(), "rpcclient"),
1018                os.path.join(bindir(), "net"),
1019                '$SERVER_IP',
1020                'tmp'])
1021
1022 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
1023               [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
1024                smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
1025                configuration, '$LOCAL_PATH', '$LOCK_DIR'])
1026
1027 plantestsuite("samba3.blackbox.aio-outstanding", "simpleserver:local",
1028               [os.path.join(samba3srcdir,
1029                             "script/tests/test_aio_outstanding.sh"),
1030                configuration,
1031                os.path.join(bindir(), "smbclient"),
1032                '$SERVER_IP',
1033                "aio_delay_inject"])
1034
1035 plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
1036               [os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh")])
1037
1038 plantestsuite("samba3.blackbox.smbd_no_krb5", "ad_member:local",
1039               [os.path.join(samba3srcdir, "script/tests/test_smbd_no_krb5.sh"),
1040                smbclient3, '$SERVER', "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX"])
1041
1042 plantestsuite("samba3.blackbox.winbind_ignore_domain", "ad_member_idmap_ad:local",
1043               [os.path.join(samba3srcdir, "script/tests/test_winbind_ignore_domains.sh")])
1044
1045 plantestsuite("samba3.blackbox.durable_v2_delay", "simpleserver:local",
1046               [os.path.join(samba3srcdir, "script/tests/test_durable_handle_reconnect.sh")])
1047
1048 plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
1049               [os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
1050                '$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
1051
1052 plantestsuite("samba3.blackbox.net_rpc_share_allowedusers", "nt4_dc",
1053               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_share_allowedusers.sh"),
1054                "$SERVER", "$USERNAME", "$PASSWORD", "$PREFIX/net_rpc_share_allowedusers",
1055                configuration])
1056
1057 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
1058               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
1059                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
1060                configuration])
1061 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
1062               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
1063                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
1064                configuration])
1065 plantestsuite("samba3.blackbox.net_rpc_oldjoin", "nt4_dc:local",
1066               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_oldjoin.sh"),
1067                "$SERVER", "$PREFIX/net_rpc_oldjoin",
1068                "$SMB_CONF_PATH"])
1069 plantestsuite("samba3.blackbox.net_rpc_join_creds", "nt4_dc",
1070               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join_creds.sh"),
1071                "$DOMAIN", "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join_creds",
1072                configuration])
1073
1074 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
1075               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
1076                "$USERNAME", "$PASSWORD", "$SERVER",
1077                os.path.join(bindir(), "rpcclient"), "tmp"])
1078
1079 plantestsuite("samba3.blackbox.rpcclient_lookup", "simpleserver",
1080               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_lookup.sh"),
1081                "$USERNAME", "$PASSWORD", "$SERVER",
1082                os.path.join(bindir(), "rpcclient")])
1083
1084 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
1085               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
1086                "$USERNAME", "$PASSWORD", "$SERVER",
1087                os.path.join(bindir(), "rpcclient")])
1088
1089 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
1090               [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
1091                "$USERNAME", "$PASSWORD", "$SERVER",
1092                smbclient3])
1093
1094 for env in ['fileserver', 'simpleserver']:
1095     plantestsuite("samba3.blackbox.smbclient.encryption", env,
1096                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption.sh"),
1097                    "$USERNAME", "$PASSWORD", "$SERVER",
1098                    smbclient3, env])
1099
1100 plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member",
1101               [os.path.join(samba3srcdir,
1102                             "script/tests/test_rpcclient_netsessenum.sh"),
1103                "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD", "$SERVER",
1104                os.path.join(bindir(), "rpcclient"), smbtorture3, "tmp"])
1105
1106 # The ktest environment uses:
1107 # server min protocol = SMB3_00
1108 # client max protocol = SMB3
1109 options_list = ["", "-e"]
1110 for options in options_list:
1111     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
1112                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
1113                    "$PREFIX/ktest/krb5_ccache-2",
1114                    smbclient3, "$SERVER", options, configuration])
1115
1116     plantestsuite("samba3.blackbox.smbclient_krb5 new ccache %s" % options, "ktest:local",
1117                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
1118                    "$PREFIX/ktest/krb5_ccache-3",
1119                    smbclient3, "$SERVER", options, configuration])
1120
1121     plantestsuite("samba3.blackbox.smbclient_large_file %s krb5" % options, "ktest:local",
1122                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
1123                    "$PREFIX/ktest/krb5_ccache-3",
1124                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
1125
1126 options_list = ["-mNT1", "-mNT1 -e", "-mSMB3", "-mSMB3 -e"]
1127 for options in options_list:
1128     env = "nt4_dc"
1129     if "NT1" in options:
1130         env = "nt4_dc_smb1_done"
1131     plantestsuite("samba3.blackbox.smbclient_large_file %s NTLM" % options, "%s:local" % env,
1132                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
1133                    "none",
1134                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
1135
1136 for alias in ["foo", "bar"]:
1137     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
1138                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
1139                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
1140
1141 for e in endianness_options:
1142     for a in auth_options:
1143         for s in signseal_options:
1144             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
1145             options = binding_string + " -U$USERNAME%$PASSWORD"
1146             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
1147
1148 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
1149 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_np')
1150
1151 for env in ["ad_member_idmap_rid:local", "maptoguest:local"]:
1152     plantestsuite("samba3.blackbox.guest", env,
1153                   [os.path.join(samba3srcdir, "script/tests/test_guest_auth.sh"),
1154                    '$SERVER', smbclient3, smbcontrol, net, configuration])
1155
1156 plantestsuite("samba3.blackbox.itime", "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_itime.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, 'xattr'])
1157
1158 plantestsuite("samba3.blackbox.smbclient-mget",
1159               "fileserver",
1160               [os.path.join(samba3srcdir, "script/tests/test_smbclient_mget.sh"),
1161                smbclient3,
1162                "$SERVER",
1163                "tmp",
1164                "$USERNAME",
1165                "$PASSWORD",
1166                "valid_users"])
1167
1168 t = "readdir-timestamp"
1169 plantestsuite(
1170     "samba3.smbtorture_s3.plain.%s" % t,
1171     "clusteredmember",
1172     [os.path.join(samba3srcdir,
1173                   "script/tests/test_smbtorture_s3.sh"),
1174      t,
1175      '//foo/bar',
1176      '$DOMAIN\\\\$DC_USERNAME',
1177      '$DC_PASSWORD',
1178      smbtorture3,
1179      "",
1180      "-b $PREFIX/clusteredmember/unclists/tmp.txt -N 5 -o 10"])
1181
1182 plantestsuite(
1183     "samba3.net_lookup_ldap",
1184     "ad_dc:local",
1185     [os.path.join(samba3srcdir,
1186                   "script/tests/test_net_lookup.sh"),
1187      '$DC_SERVER',
1188      '$DC_USERNAME',
1189      '$DC_PASSWORD',
1190      "bin/net",
1191      "bin/samba-tool",
1192      '$DNSNAME'])
1193
1194 plantestsuite("samba3.blackbox.force-user-unlink",
1195               "maptoguest:local",
1196               [os.path.join(samba3srcdir,
1197                             "script/tests/test_force_user_unlink.sh")])
1198
1199 def planclusteredmembertestsuite(tname, prefix):
1200     '''Define a clustered test for the clusteredmember environment'''
1201
1202     tshare = 'tmp'
1203
1204     autharg = '-U${DOMAIN}/${DC_USERNAME}%${DC_PASSWORD}'
1205     namearg = 'clustered.%s' % tname
1206     modnamearg = 'samba3.%s' % namearg
1207     extraargs = ''
1208
1209     prefix = os.path.join(prefix, 'clusteredmember')
1210     unclist = os.path.join(prefix, 'unclists/%s.txt' % tshare)
1211
1212     unclistarg = '--unclist=%s' % unclist
1213     sharearg = '//$SERVER_IP/%s' % tshare
1214
1215     return selftesthelpers.plansmbtorture4testsuite(
1216         namearg,
1217         'clusteredmember',
1218         [extraargs, unclistarg, sharearg, autharg, tname],
1219         target='samba3',
1220         modname=modnamearg)
1221
1222
1223 CLUSTERED_TESTS = [ 'smb2.deny.deny2' ]
1224
1225 for test in CLUSTERED_TESTS:
1226     planclusteredmembertestsuite(test, "$PREFIX")
1227
1228 CLUSTERED_LOCAL_TESTS = [
1229     "ctdbd-conn1",
1230     "local-dbwrap-ctdb1"
1231 ]
1232
1233 for t in CLUSTERED_LOCAL_TESTS:
1234     plantestsuite(
1235         "samba3.%s" % t,
1236         "clusteredmember:local",
1237         [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"),
1238          t,
1239          '//foo/bar',
1240          '""',
1241          '""',
1242          smbtorture3,
1243          "-N 1000 -o 2000"])