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