s3: smbtorture3: Add new SMB2-DFS-SHARE-NON-DFS-PATH test.
[samba.git] / source3 / selftest / tests.py
1 #!/usr/bin/python
2 # This script generates a list of testsuites that should be run as part of
3 # the Samba 3 test suite.
4
5 # The output of this script is parsed by selftest.pl, which then decides
6 # which of the tests to actually run. It will, for example, skip all tests
7 # listed in selftest/skip or only run a subset during "make quicktest".
8
9 # The idea is that this script outputs all of the tests of Samba 3, not
10 # just those that are known to pass, and list those that should be skipped
11 # or are known to fail in selftest/skip or selftest/samba3-knownfail. This makes it
12 # very easy to see what functionality is still missing in Samba 3 and makes
13 # it possible to run the testsuite against other servers, such as Samba 4 or
14 # Windows that have a different set of features.
15
16 # The syntax for a testsuite is "-- TEST --" on a single line, followed
17 # by the name of the test, the environment it needs and the command to run, all
18 # three separated by newlines. All other lines in the output are considered
19 # comments.
20
21 import os
22 import sys
23 import re
24 import platform
25 sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest")))
26 import selftesthelpers
27 from selftesthelpers import bindir, srcdir, scriptdir, binpath
28 from selftesthelpers import plantestsuite, samba3srcdir
29 from selftesthelpers import planpythontestsuite
30 from selftesthelpers import smbtorture3, configuration, smbclient3, smbtorture4
31 from selftesthelpers import net, wbinfo, dbwrap_tool, rpcclient, python
32 from selftesthelpers import smbget, smbcacls, smbcquotas, ntlm_auth3
33 from selftesthelpers import valgrindify, smbtorture4_testsuites
34 from selftesthelpers import smbtorture4_options
35 from selftesthelpers import smbcontrol
36 from selftesthelpers import smbstatus
37 smbtorture4_options.extend([
38     '--option=torture:sharedelay=100000',
39    '--option=torture:writetimeupdatedelay=500000',
40 ])
41
42
43 def plansmbtorture4testsuite(name, env, options, description=''):
44     if description == '':
45         modname = "samba3.%s" % (name, )
46     else:
47         modname = "samba3.%s %s" % (name, description)
48
49     selftesthelpers.plansmbtorture4testsuite(
50         name, env, options, target='samba3', modname=modname)
51
52 def compare_versions(version1, version2):
53     for i in range(max(len(version1),len(version2))):
54          v1 = version1[i] if i < len(version1) else 0
55          v2 = version2[i] if i < len(version2) else 0
56          if v1 > v2:
57             return 1
58          elif v1 <v2:
59             return -1
60     return 0
61
62 # find config.h
63 try:
64     config_h = os.environ["CONFIG_H"]
65 except KeyError:
66     samba4bindir = bindir()
67     config_h = os.path.join(samba4bindir, "default/include/config.h")
68
69 # check available features
70 config_hash = dict()
71 f = open(config_h, 'r')
72 try:
73     lines = f.readlines()
74     config_hash = dict((x[0], ' '.join(x[1:]))
75                        for x in map(lambda line: line.strip().split(' ')[1:],
76                                     filter(lambda line: (line[0:7] == '#define') and (len(line.split(' ')) > 2), lines)))
77 finally:
78     f.close()
79
80 linux_kernel_version = None
81 if platform.system() == 'Linux':
82     m = re.search(r'(\d+).(\d+).(\d+)', platform.release())
83     if m:
84         linux_kernel_version = [int(m.group(1)), int(m.group(2)), int(m.group(3))]
85
86 have_linux_kernel_oplocks = False
87 if "HAVE_KERNEL_OPLOCKS_LINUX" in config_hash:
88     if compare_versions(linux_kernel_version, [5,3,1]) >= 0:
89         have_linux_kernel_oplocks = True
90
91 have_inotify = ("HAVE_INOTIFY" in config_hash)
92 have_ldwrap = ("HAVE_LDWRAP" in config_hash)
93 with_pthreadpool = ("WITH_PTHREADPOOL" in config_hash)
94
95 def is_module_enabled(module):
96     if module in config_hash["STRING_SHARED_MODULES"]:
97         return True
98     if module in config_hash["STRING_STATIC_MODULES"]:
99         return True
100     return False
101
102 plantestsuite("samba3.blackbox.success", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
103 plantestsuite("samba3.blackbox.failure", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
104
105 plantestsuite("samba3.local_s3", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
106
107 plantestsuite("samba3.blackbox.registry.upgrade", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool])
108
109 fileserver_tests = [
110          "FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7",
111          "LOCK9A", "LOCK9B",
112          "LOCK10",
113          "LOCK11",
114          "LOCK12",
115          "LOCK13",
116          "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE",
117          "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR",
118          "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "LARGE_READX", "RW-SIGNING",
119          "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "PROPERTIES", "W2K",
120          "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2", "OWNER-RIGHTS",
121          "CHAIN3", "PIDHIGH", "CLI_SPLICE",
122          "UID-REGRESSION-TEST", "SHORTNAME-TEST",
123          "CASE-INSENSITIVE-CREATE", "SMB2-BASIC", "NTTRANS-FSCTL", "SMB2-NEGPROT",
124          "SMB2-SESSION-REAUTH", "SMB2-SESSION-RECONNECT", "SMB2-FTRUNCATE",
125          "SMB2-ANONYMOUS", "SMB2-DIR-FSYNC",
126          "SMB2-PATH-SLASH",
127          "SMB2-QUOTA1",
128          "CLEANUP1",
129          "CLEANUP2",
130          "CLEANUP4",
131          "DELETE-STREAM",
132          "BAD-NBT-SESSION",
133          "SMB1-WILD-MANGLE-UNLINK",
134          "SMB1-WILD-MANGLE-RENAME"]
135
136 for t in fileserver_tests:
137     fileserver_env = "fileserver_smb1"
138     if "SMB2" in t:
139         fileserver_env = "fileserver"
140     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"])
141     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"])
142     if t == "TORTURE":
143         # this is a negative test to verify that the server rejects
144         # access without encryption
145         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"])
146     if t == "CLI_SPLICE":
147         # We must test this against the SMB1 fallback.
148         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"])
149     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"])
150
151 t = "TLDAP"
152 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"])
153
154 if have_linux_kernel_oplocks:
155     t = "OPLOCK5"
156     plantestsuite("samba3.smbtorture_s3.plain.%s" % t,
157                   "fileserver_smb1",
158                   [os.path.join(samba3srcdir,
159                                 "script/tests/test_smbtorture_s3.sh"),
160                    t,
161                    '//$SERVER/tmp',
162                    '$USERNAME',
163                    '$PASSWORD',
164                    smbtorture3,
165                    "",
166                    "-l $LOCAL_PATH",
167                    "-mNT1"])
168 #
169 # RENAME-ACCESS needs to run against a special share - acl_xattr_ign_sysacl_windows
170 #
171 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"])
172 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"])
173 # non-crypt only
174
175 tests = ["OPLOCK-CANCEL"]
176 for t in tests:
177     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"])
178
179 env = "nt4_dc_smb1"
180 tests = ["MANGLE-ILLEGAL"]
181 for t in tests:
182     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"])
183
184 tests = ["RW1", "RW2", "RW3", "SMB2-BASIC"]
185 for t in tests:
186     if t == "SMB2-BASIC":
187         env = "simpleserver"
188     else:
189         env = "fileserver_smb1"
190
191     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"])
192     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"])
193
194 plantestsuite("samba3.smbtorture_s3.hidenewfiles(fileserver_smb1)",
195               "fileserver_smb1",
196               [os.path.join(samba3srcdir,
197                             "script/tests/test_smbtorture_s3.sh"),
198                'hide-new-files-timeout',
199                '//$SERVER_IP/hidenewfiles',
200                '$USERNAME',
201                '$PASSWORD',
202                smbtorture3,
203                "",
204                "-l $LOCAL_PATH"])
205
206 #
207 # MSDFS attribute tests.
208 #
209 plantestsuite("samba3.smbtorture_s3.smb2.MSDFS-ATTRIBUTE",
210                 "fileserver",
211                 [os.path.join(samba3srcdir,
212                               "script/tests/test_smbtorture_s3.sh"),
213                 'MSDFS-ATTRIBUTE',
214                 '//$SERVER_IP/msdfs-share',
215                 '$USERNAME',
216                 '$PASSWORD',
217                 smbtorture3,
218                 "-mSMB2",
219                 "-f msdfs-src1"])
220
221 plantestsuite("samba3.smbtorture_s3.smb1.MSDFS-ATTRIBUTE",
222                 "fileserver_smb1",
223                 [os.path.join(samba3srcdir,
224                               "script/tests/test_smbtorture_s3.sh"),
225                 'MSDFS-ATTRIBUTE',
226                 '//$SERVER_IP/msdfs-share',
227                 '$USERNAME',
228                 '$PASSWORD',
229                 smbtorture3,
230                 "-mNT1",
231                 "-f msdfs-src1"])
232
233 #
234 # SMB2-DFS-PATHS needs to run against a special share msdfs-pathname-share
235 # This is an empty DFS share with no links, used merely to test
236 # incoming DFS pathnames and how they map to local paths.
237 #
238 plantestsuite("samba3.smbtorture_s3.smb2.SMB2-DFS-PATHS",
239                 "fileserver",
240                 [os.path.join(samba3srcdir,
241                               "script/tests/test_smbtorture_s3.sh"),
242                 'SMB2-DFS-PATHS',
243                 '//$SERVER_IP/msdfs-pathname-share',
244                 '$USERNAME',
245                 '$PASSWORD',
246                 smbtorture3,
247                 "-mSMB2"])
248
249 #
250 # SMB2-NON-DFS-SHARE needs to run against a special share non-msdfs-pathname-share
251 # This is an empty non-DFS share with no links, used merely to test
252 # incoming DFS pathnames and how they map to local paths. We are testing
253 # what happens if we set the FLAGS2_DFS_PATHNAMES and send DFS paths
254 # on a non-DFS share.
255 #
256 plantestsuite("samba3.smbtorture_s3.smb2.SMB2-NON-DFS-SHARE",
257                 "fileserver",
258                 [os.path.join(samba3srcdir,
259                               "script/tests/test_smbtorture_s3.sh"),
260                 'SMB2-NON-DFS-SHARE',
261                 '//$SERVER_IP/non-msdfs-pathname-share',
262                 '$USERNAME',
263                 '$PASSWORD',
264                 smbtorture3,
265                 "-mSMB2"])
266
267 #
268 # SMB2-DFS-SHARE-NON-DFS-PATH needs to run against a special share msdfs-pathname-share
269 # This is an empty DFS share with no links, used merely to test
270 # incoming non-DFS pathnames and how they map to local paths.
271 #
272 plantestsuite("samba3.smbtorture_s3.smb2.SMB2-DFS-SHARE-NON-DFS-PATH",
273                 "fileserver",
274                 [os.path.join(samba3srcdir,
275                               "script/tests/test_smbtorture_s3.sh"),
276                 'SMB2-DFS-SHARE-NON-DFS-PATH',
277                 '//$SERVER_IP/msdfs-pathname-share',
278                 '$USERNAME',
279                 '$PASSWORD',
280                 smbtorture3,
281                 "-mSMB2"])
282
283 #
284 # SMB1-DFS-PATHS needs to run against a special share msdfs-pathname-share
285 # This is an empty DFS share with no links, used merely to test
286 # incoming DFS pathnames and how they map to local paths.
287 #
288 plantestsuite("samba3.smbtorture_s3.smb1.SMB1-DFS-PATHS",
289                 "fileserver",
290                 [os.path.join(samba3srcdir,
291                               "script/tests/test_smbtorture_s3.sh"),
292                 'SMB1-DFS-PATHS',
293                 '//$SERVER_IP/msdfs-pathname-share',
294                 '$USERNAME',
295                 '$PASSWORD',
296                 smbtorture3,
297                 "-mNT1"])
298
299 #
300 # SMB1-DFS-SEARCH-PATHS needs to run against a special share msdfs-pathname-share
301 # This is an empty DFS share with no links, used merely to test
302 # incoming DFS pathnames and how they map to local paths.
303 #
304 plantestsuite("samba3.smbtorture_s3.smb1.SMB1-DFS-SEARCH-PATHS",
305                 "fileserver",
306                 [os.path.join(samba3srcdir,
307                               "script/tests/test_smbtorture_s3.sh"),
308                 'SMB1-DFS-SEARCH-PATHS',
309                 '//$SERVER_IP/msdfs-pathname-share',
310                 '$USERNAME',
311                 '$PASSWORD',
312                 smbtorture3,
313                 "-mNT1"])
314
315 #
316 # SMB1-DFS-OPERATIONS needs to run against a special share msdfs-pathname-share
317 # This is an empty DFS share with no links, used merely to test
318 # incoming DFS pathnames and how they map to local paths.
319 #
320 plantestsuite("samba3.smbtorture_s3.smb1.SMB1-DFS-OPERATIONS",
321                 "fileserver",
322                 [os.path.join(samba3srcdir,
323                               "script/tests/test_smbtorture_s3.sh"),
324                 'SMB1-DFS-OPERATIONS',
325                 '//$SERVER_IP/msdfs-pathname-share',
326                 '$USERNAME',
327                 '$PASSWORD',
328                 smbtorture3,
329                 "-mNT1"])
330
331 #
332 # SMB2-STREAM-ACL needs to run against a special share - vfs_wo_fruit
333 #
334 plantestsuite("samba3.smbtorture_s3.plain.%s" % "SMB2-STREAM-ACL",
335                 "fileserver",
336                 [os.path.join(samba3srcdir,
337                               "script/tests/test_smbtorture_s3.sh"),
338                 'SMB2-STREAM-ACL',
339                 '//$SERVER_IP/vfs_wo_fruit',
340                 '$USERNAME',
341                 '$PASSWORD',
342                 smbtorture3,
343                 "",
344                 "-l $LOCAL_PATH"])
345
346 #
347 # SMB2-LIST-DIR-ASYNC needs to run against a special share vfs_aio_pthread_async_dosmode_default1
348 #
349 plantestsuite("samba3.smbtorture_s3.plain.%s" % "SMB2-LIST-DIR-ASYNC",
350                 "simpleserver",
351                 [os.path.join(samba3srcdir,
352                               "script/tests/test_smbtorture_s3.sh"),
353                 'SMB2-LIST-DIR-ASYNC',
354                 '//$SERVER_IP/vfs_aio_pthread_async_dosmode_default1',
355                 '$USERNAME',
356                 '$PASSWORD',
357                 smbtorture3,
358                 "",
359                 "-l $LOCAL_PATH"])
360 #
361 # SMB2-DEL-ON-CLOSE-NONEMPTY needs to run against a special fileserver share veto_files_delete
362 #
363 plantestsuite("samba3.smbtorture_s3.plain.%s" % "SMB2-DEL-ON-CLOSE-NONEMPTY",
364                 "fileserver",
365                 [os.path.join(samba3srcdir,
366                               "script/tests/test_smbtorture_s3.sh"),
367                 'SMB2-DEL-ON-CLOSE-NONEMPTY',
368                 '//$SERVER_IP/veto_files_delete',
369                 '$USERNAME',
370                 '$PASSWORD',
371                 smbtorture3,
372                 "",
373                 "-l $LOCAL_PATH"])
374
375 #
376 # SMB2-DEL-ON-CLOSE-NONWRITE-DELETE-YES needs to run against a special fileserver share delete_yes_unwrite
377 #
378 plantestsuite("samba3.smbtorture_s3.plain.%s" % "SMB2-DEL-ON-CLOSE-NONWRITE-DELETE-YES",
379                 "fileserver",
380                 [os.path.join(samba3srcdir,
381                               "script/tests/test_smbtorture_s3.sh"),
382                 'SMB2-DEL-ON-CLOSE-NONWRITE-DELETE-YES',
383                 '//$SERVER_IP/delete_yes_unwrite',
384                 '$USERNAME',
385                 '$PASSWORD',
386                 smbtorture3,
387                 "",
388                 "-l $LOCAL_PATH"])
389
390 #
391 # SMB2-DEL-ON-CLOSE-NONWRITE-DELETE-NO needs to run against a special fileserver share delete_no_unwrite
392 #
393 plantestsuite("samba3.smbtorture_s3.plain.%s" % "SMB2-DEL-ON-CLOSE-NONWRITE-DELETE-NO",
394                 "fileserver",
395                 [os.path.join(samba3srcdir,
396                               "script/tests/test_smbtorture_s3.sh"),
397                 'SMB2-DEL-ON-CLOSE-NONWRITE-DELETE-NO',
398                 '//$SERVER_IP/delete_no_unwrite',
399                 '$USERNAME',
400                 '$PASSWORD',
401                 smbtorture3,
402                 "",
403                 "-l $LOCAL_PATH"])
404
405 shares = [
406     "vfs_aio_pthread_async_dosmode_default1",
407     "vfs_aio_pthread_async_dosmode_default2"
408 ]
409 for s in shares:
410     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"])
411     t = "smb2.compound_find"
412     plansmbtorture4testsuite(t, "simpleserver", "//%s/%s %s" % ('$SERVER_IP', s, ' -U$USERNAME%$PASSWORD'), description=s)
413
414 posix_tests = ["POSIX", "POSIX-APPEND", "POSIX-SYMLINK-ACL", "POSIX-SYMLINK-EA", "POSIX-OFD-LOCK",
415                "POSIX-STREAM-DELETE", "WINDOWS-BAD-SYMLINK", "POSIX-MKDIR",
416                "POSIX-BLOCKING-LOCK",
417                "POSIX-ACL-OPLOCK",
418                "POSIX-ACL-SHAREROOT",
419                "POSIX-LS-WILDCARD",
420                "POSIX-LS-SINGLE",
421                "POSIX-READLINK",
422                "POSIX-STAT",
423                "POSIX-SYMLINK-PARENT",
424                "POSIX-SYMLINK-CHMOD",
425                "POSIX-DIR-DEFAULT-ACL",
426                "POSIX-SYMLINK-RENAME",
427                "POSIX-SYMLINK-GETPATHINFO",
428                "POSIX-SYMLINK-SETPATHINFO",
429               ]
430
431 for t in posix_tests:
432     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"])
433     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"])
434
435 local_tests = [
436     "LOCAL-SUBSTITUTE",
437     "LOCAL-GENCACHE",
438     "LOCAL-BASE64",
439     "LOCAL-RBTREE",
440     "LOCAL-MEMCACHE",
441     "LOCAL-STREAM-NAME",
442     "LOCAL-STR-MATCH-MSWILD",
443     "LOCAL-STR-MATCH-REGEX-SUB1",
444     "LOCAL-string_to_sid",
445     "LOCAL-sid_to_string",
446     "LOCAL-binary_to_sid",
447     "LOCAL-DBTRANS",
448     "LOCAL-TEVENT-POLL",
449     "LOCAL-CONVERT-STRING",
450     "LOCAL-CONV-AUTH-INFO",
451     "LOCAL-IDMAP-TDB-COMMON",
452     "LOCAL-MESSAGING-READ1",
453     "LOCAL-MESSAGING-READ2",
454     "LOCAL-MESSAGING-READ3",
455     "LOCAL-MESSAGING-READ4",
456     "LOCAL-MESSAGING-FDPASS1",
457     "LOCAL-MESSAGING-FDPASS2",
458     "LOCAL-MESSAGING-FDPASS2a",
459     "LOCAL-MESSAGING-FDPASS2b",
460     "LOCAL-MESSAGING-SEND-ALL",
461     "LOCAL-PTHREADPOOL-TEVENT",
462     "LOCAL-CANONICALIZE-PATH",
463     "LOCAL-DBWRAP-WATCH1",
464     "LOCAL-DBWRAP-WATCH2",
465     "LOCAL-DBWRAP-WATCH3",
466     "LOCAL-DBWRAP-WATCH4",
467     "LOCAL-DBWRAP-DO-LOCKED1",
468     "LOCAL-G-LOCK1",
469     "LOCAL-G-LOCK2",
470     "LOCAL-G-LOCK3",
471     "LOCAL-G-LOCK4",
472     "LOCAL-G-LOCK4A",
473     "LOCAL-G-LOCK5",
474     "LOCAL-G-LOCK6",
475     "LOCAL-G-LOCK7",
476     "LOCAL-G-LOCK8",
477     "LOCAL-NAMEMAP-CACHE1",
478     "LOCAL-IDMAP-CACHE1",
479     "LOCAL-hex_encode_buf",
480     "LOCAL-remove_duplicate_addrs2"]
481
482 for t in local_tests:
483     plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
484
485 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
486 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
487 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
488 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
489 plantestsuite(
490     "samba.vfstest.full_audit_segfault",
491     "nt4_dc:local",
492     [os.path.join(samba3srcdir,
493                   "script/tests/full_audit_segfault/run.sh"),
494      binpath("vfstest"),
495      "$PREFIX",
496      configuration])
497
498 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"])
499 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"])
500 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"])
501 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"])
502 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"])
503 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"])
504
505 plantestsuite("samba3.blackbox.smbclient_usernamemap", "ad_member_idmap_nss:local", [os.path.join(samba3srcdir, "script/tests/test_usernamemap.sh"), '$SERVER', smbclient3])
506
507 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])
508 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"]:
509     if "NT1" in options or "LANMAN2" in options:
510         env = "nt4_dc_smb1_done"
511     else:
512         env = "nt4_dc"
513     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])
514
515 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc", "ad_dc_ntvfs", "s4member", "fl2000dc"]:
516     plantestsuite("samba3.blackbox.smbclient_machine_auth.plain", "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_machine_auth.sh"), '$SERVER', smbclient3, configuration])
517     smb1_env = env
518     if smb1_env == "ad_dc" or smb1_env == "nt4_dc":
519         smb1_env = smb1_env + "_smb1_done"
520     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])
521     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])
522
523
524 plantestsuite("samba3.blackbox.smbclient_log_basename", "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_smbclient_log_basename.sh"), '$SERVER', smbclient3, '$PREFIX', configuration])
525
526 for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no -mNT1", ""]:
527     # don't attempt to run SMB1 tests in nt4_member or ad_member
528     # as these test envs don't support SMB1, use nt4_dc instead
529     environs = ["nt4_member", "ad_member"]
530     if "NT1" in options or "LANMAN2" in options:
531         environs = ["nt4_dc_smb1_done"]
532     for env in environs:
533         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])
534         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])
535
536 for env in ["nt4_member", "ad_member"]:
537     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])
538     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])
539     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])
540     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])
541     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])
542     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])
543
544 env = "ad_dc_smb1"
545 plantestsuite("samba3.blackbox.smbspool", env, [os.path.join(samba3srcdir, "script/tests/test_smbspool.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', env])
546
547 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'])
548
549 for env in ["ad_member:local", "nt4_dc:local"]:
550     plantestsuite("samba3.blackbox.smbpasswd", env, [os.path.join(samba3srcdir, "script/tests/test_smbpasswd.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD'])
551
552 env = "nt4_dc"
553 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])
554
555 for env in ["nt4_member", "ad_member"]:
556     plantestsuite("samba3.blackbox.net_cred_change", "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
557
558 env = "ad_member"
559 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
560 plantestsuite("samba3.wbinfo_simple.%s" % t, "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
561 plantestsuite("samba3.wbinfo_name_lookup", env,
562               [os.path.join(srcdir(),
563                             "nsswitch/tests/test_wbinfo_name_lookup.sh"),
564                '$DOMAIN', '$REALM', '$DC_USERNAME'])
565
566 env = "ad_member"
567 plantestsuite("samba3.wbinfo_user_info_cached", env,
568               [os.path.join(srcdir(),
569                             "nsswitch/tests/test_wbinfo_user_info_cached.sh"),
570                '$DOMAIN', '$REALM', 'joe', 'Secret007', '"Samba Users"', env])
571 plantestsuite("samba3.wbinfo_user_info_cached.trustdom", env,
572               [os.path.join(srcdir(),
573                             "nsswitch/tests/test_wbinfo_user_info_cached.sh"),
574                '$TRUST_F_BOTH_DOMAIN', '$TRUST_F_BOTH_REALM', 'joe', 'Secret007', '"Samba Users"', env])
575
576 env = "ad_member:local"
577 plantestsuite("samba3.wbinfo_user_info", env,
578               [os.path.join(srcdir(),
579                             "nsswitch/tests/test_wbinfo_user_info.sh"),
580                '$DOMAIN', '$REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
581
582 env = "fl2008r2dc:local"
583 plantestsuite("samba3.wbinfo_user_info", env,
584               [os.path.join(srcdir(),
585                             "nsswitch/tests/test_wbinfo_user_info.sh"),
586                '$TRUST_DOMAIN', '$TRUST_REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
587
588 env = "nt4_member:local"
589 plantestsuite("samba3.wbinfo_sids_to_xids", env,
590               [os.path.join(srcdir(),
591                             "nsswitch/tests/test_wbinfo_sids_to_xids.sh")])
592 plantestsuite(
593     "samba.wbinfo_lookuprids_cache",
594     env,
595     [os.path.join(samba3srcdir,
596                   "script/tests/test_wbinfo_lookuprids_cache.sh")])
597
598 env = "ad_member"
599 t = "WBCLIENT-MULTI-PING"
600 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
601 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
602
603 for env in ["maptoguest", "simpleserver"]:
604     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"])
605
606 env = "maptoguest"
607 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"])
608 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])
609 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])
610
611 # plain
612 env = "nt4_dc_smb1_done"
613 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"])
614 env = "nt4_dc"
615 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"])
616
617 for env in ["nt4_member", "ad_member"]:
618     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"])
619     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"])
620
621 env = "nt4_dc_smb1_done"
622 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", "--client-protection=sign"])
623 env = "nt4_dc"
624 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", "--client-protection=sign"])
625
626 for env in ["nt4_member", "ad_member"]:
627     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", "--client-protection=sign"])
628     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", "--client-protection=sign"])
629
630 env = "nt4_dc_smb1_done"
631 # encrypted
632 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", "--client-protection=encrypt"])
633 env = "nt4_dc"
634 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", "--client-protection=encrypt"])
635
636 for env in ["fileserver"]:
637     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"])
638     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"'])
639     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"])
640     plantestsuite("samba3.blackbox.dfree_command.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, "SMB3"])
641     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"])
642     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"])
643     plantestsuite("samba3.blackbox.smbcquotas", env, [os.path.join(samba3srcdir, "script/tests/test_smbcquota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbcquotas])
644     plantestsuite("samba3.blackbox.valid_users", env, [os.path.join(samba3srcdir, "script/tests/test_valid_users.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
645     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])
646     plantestsuite("samba3.blackbox.dropbox", env, [os.path.join(samba3srcdir, "script/tests/test_dropbox.sh"), '$SERVER', '$DOMAIN', 'gooduser', '$PASSWORD', '$PREFIX', env, smbclient3])
647     plantestsuite("samba3.blackbox.offline", env, [os.path.join(samba3srcdir, "script/tests/test_offline.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/offline', smbclient3])
648     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'])
649     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'])
650     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, smbclient3])
651     plantestsuite("samba3.blackbox.smbclient.forceuser_validusers", env, [os.path.join(samba3srcdir, "script/tests/test_forceuser_validusers.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
652     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])
653     plantestsuite("samba3.blackbox.netshareenum", env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
654     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'])
655     plantestsuite("samba3.blackbox.acl_xattr.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mSMB3'])
656     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])
657     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'])
658     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'])
659     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'])
660     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'])
661     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'])
662     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'])
663     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'])
664     plantestsuite("samba3.blackbox.large_acl.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'SMB3'])
665     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'])
666     plantestsuite("samba3.blackbox.delete_stream", env, [os.path.join(samba3srcdir, "script/tests/test_delete_stream.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'acl_streams_xattr'])
667     plantestsuite("samba3.blackbox.homes", env, [os.path.join(samba3srcdir, "script/tests/test_homes.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
668     plantestsuite("samba3.blackbox.force_group_change", env,
669                 [os.path.join(samba3srcdir, "script/tests/test_force_group_change.sh"),
670                 '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcontrol])
671     plantestsuite("samba3.blackbox.zero-data", env,
672                   [os.path.join(samba3srcdir, "script/tests/test_zero_data.sh"),
673                    '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH'])
674     plantestsuite("samba3.blackbox.timestamps", env,
675                   [os.path.join(samba3srcdir, "script/tests/test_timestamps.sh"),
676                    '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
677     plantestsuite("samba3.blackbox.volumeserialnumber", env,
678                   [os.path.join(samba3srcdir, "script/tests/test_volume_serial_number.sh"),
679                    '$SERVER_IP', '$USERNAME', '$PASSWORD', 'volumeserialnumber', smbclient3])
680     plantestsuite("samba3.blackbox.smb1_system_security", env + "_smb1_done",
681                   [os.path.join(samba3srcdir, "script/tests/test_smb1_system_security.sh"),
682                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbtorture3, net, 'tmp'])
683     plantestsuite("samba3.blackbox.sacl_get_set", env,
684                   [os.path.join(samba3srcdir, "script/tests/test_sacl_set_get.sh"),
685                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbtorture3, net, 'tmp'])
686     plantestsuite("samba3.blackbox.NT1.shadow_copy_torture", env + "_smb1_done",
687                   [os.path.join(samba3srcdir, "script/tests/test_smb1_shadow_copy_torture.sh"),
688                    '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbtorture4])
689     plantestsuite("samba3.blackbox.smbclient_iconv.SMB2", env,
690                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_iconv.sh"),
691                    '$SERVER', '$SERVER_IP', 'bad_iconv', '$USERNAME', '$PASSWORD', smbclient3])
692     plantestsuite("samba3.blackbox.smbclient_iconv.NT1", env + "_smb1_done",
693                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_iconv.sh"),
694                    '$SERVER', '$SERVER_IP', 'bad_iconv', '$USERNAME', '$PASSWORD', smbclient3, '-mNT1'])
695     plantestsuite("samba3.blackbox.smbclient_iconv.CORE", env + "_smb1_done",
696                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_iconv.sh"),
697                    '$SERVER', '$SERVER_IP', 'bad_iconv', '$USERNAME', '$PASSWORD', smbclient3, '-mCORE'])
698     plantestsuite("samba3.blackbox.test_veto_rmdir", env,
699                   [os.path.join(samba3srcdir, "script/tests/test_veto_rmdir.sh"),
700                   '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/veto', smbclient3])
701     plantestsuite("samba3.blackbox.test_dangle_rmdir", env,
702                   [os.path.join(samba3srcdir, "script/tests/test_delete_veto_files_only_rmdir.sh"),
703                   '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/veto', smbclient3])
704     plantestsuite("samba3.blackbox.test_list_servers.NT1",
705                   env + "_smb1_done",
706                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_list_servers.sh"),
707                   '$SERVER',
708                   '$SERVER_IP',
709                   '$USERNAME',
710                   '$PASSWORD',
711                   smbclient3,
712                   "-mSMB3"])
713     plantestsuite("samba3.blackbox.test_list_servers.SMB2",
714                   env,
715                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_list_servers.sh"),
716                   '$SERVER',
717                   '$SERVER_IP',
718                   '$USERNAME',
719                   '$PASSWORD',
720                   smbclient3,
721                   "-mSMB3"])
722
723     plantestsuite("samba3.blackbox.test_symlink_traversal.SMB2", env,
724                   [os.path.join(samba3srcdir, "script/tests/test_symlink_traversal_smb2.sh"),
725                   '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/local_symlinks',
726                   '$PREFIX', smbclient3])
727
728     plantestsuite("samba3.blackbox.test_symlink_traversal.SMB1", env + "_smb1_done",
729                   [os.path.join(samba3srcdir, "script/tests/test_symlink_traversal_smb1.sh"),
730                   '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/local_symlinks',
731                   '$PREFIX', smbclient3])
732
733     plantestsuite("samba3.blackbox.test_symlink_traversal.SMB1.posix", env + "_smb1_done",
734                   [os.path.join(samba3srcdir, "script/tests/test_symlink_traversal_smb1_posix.sh"),
735                   '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/local_symlinks',
736                   '$PREFIX', smbclient3])
737
738     plantestsuite("samba3.blackbox.test_symlink_rename.SMB1.posix", env + "_smb1_done",
739                   [os.path.join(samba3srcdir, "script/tests/test_symlink_rename_smb1_posix.sh"),
740                   '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/local_symlinks',
741                   '$PREFIX', smbclient3])
742
743     plantestsuite("samba3.blackbox.test_veto_files", env,
744                   [os.path.join(samba3srcdir, "script/tests/test_veto_files.sh"),
745                   '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/veto', smbclient3])
746
747     #
748     # tar command tests
749     #
750
751     # Test smbclient/tarmode
752     plantestsuite("samba3.blackbox.smbclient_tarmode.NT1", env + "_smb1_done",
753                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
754                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
755                    '$LOCAL_PATH/tarmode/smbclient_tar', '$PREFIX', smbclient3, configuration, "-mNT1"])
756     plantestsuite("samba3.blackbox.smbclient_tarmode.SMB3", env,
757                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
758                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
759                    '$LOCAL_PATH/tarmode/smbclient_tar', '$PREFIX', smbclient3, configuration, "-mSMB3"])
760
761     # Test suite for new smbclient/tar with libarchive (GSoC 13)
762     plantestsuite("samba3.blackbox.smbclient_tar.NT1", env + "_smb1_done",
763                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
764                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tarmode2',
765                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode2',
766                    '-d', 'smbclient_tar.NT1', '-b', smbclient3,
767                    '--subunit', '--', configuration, '-mNT1'])
768     plantestsuite("samba3.blackbox.smbclient_tar.SMB3", env,
769                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
770                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tarmode2',
771                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode2',
772                    '-d', 'smbclient_tar.SMB3', '-b', smbclient3,
773                    '--subunit', '--', configuration, '-mSMB3'])
774     plantestsuite("samba3.blackbox.fifo", env,
775                   [os.path.join(samba3srcdir, "script/tests/test_fifo.sh"),
776                   '$SERVER', '$DOMAIN', 'gooduser', '$PASSWORD', '$PREFIX', env, smbclient3])
777     plantestsuite("samba3.blackbox.test_full_audit_success_badname", env,
778                   [os.path.join(samba3srcdir, "script/tests/test_bad_auditnames.sh"),
779                   '$SERVER', 'full_audit_success_bad_name', '$USERNAME', '$PASSWORD', smbclient3])
780     plantestsuite("samba3.blackbox.test_full_audit_fail_badname", env,
781                   [os.path.join(samba3srcdir, "script/tests/test_bad_auditnames.sh"),
782                   '$SERVER', 'full_audit_fail_bad_name', '$USERNAME', '$PASSWORD', smbclient3])
783     plantestsuite("samba3.blackbox.fruit.resource_stream", env,
784                   [os.path.join(samba3srcdir, "script/tests/test_fruit_resource_stream.sh"),
785                   '$SERVER', 'fruit_resource_stream', '$USERNAME', '$PASSWORD',
786                   '$LOCAL_PATH/fruit_resource_stream', smbclient3])
787
788 for env in ["fileserver:local"]:
789     plantestsuite("samba3.blackbox.net_usershare", env, [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])
790
791     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"])
792     plantestsuite("samba3.blackbox.net_registry_import", env, [os.path.join(samba3srcdir, "script/tests/test_net_registry_import.sh"), '$SERVER', '$LOCAL_PATH', '$USERNAME', '$PASSWORD'])
793
794 # TODO encrypted against member, with member creds, and with DC creds
795 plantestsuite("samba3.blackbox.net.misc NT1", "ad_dc_smb1_done:local",
796               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
797                scriptdir, "$SMB_CONF_PATH", net, configuration, "NT1"])
798 plantestsuite("samba3.blackbox.net.misc SMB3", "ad_dc:local",
799               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
800                scriptdir, "$SMB_CONF_PATH", net, configuration, "SMB3"])
801 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
802               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
803                scriptdir, "$SMB_CONF_PATH", net, configuration])
804 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
805               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
806                scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
807 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
808               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
809                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
810
811 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
812               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
813                scriptdir, "$SMB_CONF_PATH", net, configuration])
814 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
815               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
816                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
817
818 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
819               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
820                scriptdir, "$SMB_CONF_PATH", net, configuration])
821 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
822               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
823                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
824
825
826 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
827               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
828                "$LOCAL_PATH"])
829
830 plantestsuite(
831     "samba3.pthreadpool", "none",
832     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
833
834 if with_pthreadpool and have_ldwrap:
835     plantestsuite("samba3.pthreadpool_cmocka", "none",
836                   [os.path.join(bindir(), "pthreadpooltest_cmocka")])
837
838 if with_pthreadpool:
839     plantestsuite("samba3.libwbclient_threads",
840                   "nt4_member",
841                   [os.path.join(samba3srcdir,
842                                 "script/tests/test_libwbclient_threads.sh"),
843                    "$DOMAIN", "$DC_USERNAME"])
844
845 plantestsuite("samba3.test_nfs4_acl", "none",
846               [os.path.join(bindir(), "test_nfs4_acls"),
847                "$SMB_CONF_PATH"])
848
849 plantestsuite("samba3.test_vfs_full_audit", "none",
850               [os.path.join(bindir(), "test_vfs_full_audit"),
851                "$SMB_CONF_PATH"])
852
853 plantestsuite("samba3.test_vfs_posixacl", "none",
854               [os.path.join(bindir(), "test_vfs_posixacl"),
855                "$SMB_CONF_PATH"])
856
857 if is_module_enabled("vfs_gpfs"):
858     plantestsuite("samba3.test_vfs_gpfs", "none",
859                   [os.path.join(bindir(), "test_vfs_gpfs")])
860
861 plantestsuite(
862     "samba3.resolvconf", "none",
863     [os.path.join(samba3srcdir, "script/tests/test_resolvconf.sh")])
864
865 plantestsuite("samba3.tevent_glib_glue", "none",
866     [os.path.join(samba3srcdir, "script/tests/test_tevent_glib_glue.sh")])
867
868 plantestsuite("samba3.async_req", "nt4_dc",
869               [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
870
871 # smbtorture4 tests
872
873 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
874         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
875         "base.disconnect", "base.fdpass", "base.lock",
876         "base.mangle", "base.negnowait", "base.ntdeny1",
877         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
878         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
879         "base.xcopy", "base.samba3error"]
880
881 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
882        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
883        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
884        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
885        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
886        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
887        "raw.samba3rootdirfid", "raw.samba3rootdirfid2", "raw.sfileinfo.end-of-file",
888        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
889        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
890
891 smb2 = smbtorture4_testsuites("smb2.")
892
893 rpc = ["rpc.authcontext",
894        "rpc.samba3.bind",
895        "rpc.samba3.srvsvc",
896        "rpc.samba3.sharesec",
897        "rpc.samba3.spoolss",
898        "rpc.samba3.wkssvc",
899        "rpc.samba3.winreg",
900        "rpc.samba3.getaliasmembership-0",
901        "rpc.samba3.netlogon",
902        "rpc.samba3.sessionkey",
903        "rpc.samba3.getusername",
904        "rpc.samba3.smb1-pipe-name",
905        "rpc.samba3.smb2-pipe-name",
906        "rpc.samba3.smb-reauth1",
907        "rpc.samba3.smb-reauth2",
908        "rpc.samba3.lsa_over_netlogon",
909        "rpc.samba3.pipes_supported_interfaces",
910        "rpc.svcctl",
911        "rpc.ntsvcs",
912        "rpc.winreg",
913        "rpc.eventlog",
914        "rpc.spoolss.printserver",
915        "rpc.spoolss.win",
916        "rpc.spoolss.notify",
917        "rpc.spoolss.printer",
918        "rpc.spoolss.driver",
919        "rpc.lsa",
920        "rpc.lsa-getuser",
921        "rpc.lsa.lookupsids",
922        "rpc.lsa.lookupnames",
923        "rpc.lsa.privileges",
924        "rpc.lsa.secrets",
925        "rpc.mdssvc",
926        "rpc.samr",
927        "rpc.samr.users",
928        "rpc.samr.users.privileges",
929        "rpc.samr.passwords.default",
930        "rpc.samr.passwords.pwdlastset",
931        "rpc.samr.passwords.lockout",
932        "rpc.samr.passwords.badpwdcount",
933        "rpc.samr.large-dc",
934        "rpc.samr.machine.auth",
935        "rpc.samr.priv",
936        "rpc.samr.passwords.validate",
937        "rpc.samr.handletype",
938        "rpc.netlogon.admin",
939        "rpc.netlogon.zerologon",
940        "rpc.schannel",
941        "rpc.schannel2",
942        "rpc.bench-schannel1",
943        "rpc.schannel_anon_setpw",
944        "rpc.join",
945        "rpc.bind",
946        "rpc.initshutdown",
947        "rpc.wkssvc",
948        "rpc.srvsvc"]
949
950 local = ["local.nss"]
951
952 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid", "idmap.ad"]
953
954 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
955
956 unix = ["unix.info2", "unix.whoami"]
957
958 nbt = ["nbt.dgram"]
959
960 vfs = [
961     "vfs.fruit",
962     "vfs.acl_xattr",
963     "vfs.fruit_netatalk",
964     "vfs.fruit_file_id",
965     "vfs.fruit_timemachine",
966     "vfs.fruit_conversion",
967     "vfs.unfruit",
968 ]
969
970 tests = base + raw + smb2 + rpc + unix + local + rap + nbt + idmap + vfs
971
972 for t in tests:
973     if t == "base.delaywrite" or t == "base.deny1" or t == "base.deny2":
974         plansmbtorture4testsuite(t, "fileserver_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
975     elif t == "base.createx_access":
976         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
977     elif t == "rap.sam":
978         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
979         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
980     elif t == "winbind.pac":
981         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
982     elif t == "unix.whoami":
983         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
984         plansmbtorture4testsuite(t, "ad_dc_smb1:local", '//$SERVER/tmp --machine-pass', description="machine account")
985         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
986         plansmbtorture4testsuite(t, "ad_dc_smb1:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
987         for env in ["nt4_dc_smb1", "nt4_member"]:
988             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
989             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
990         for env in ["ad_dc_smb1", "ad_member"]:
991             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
992             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
993             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
994             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
995     elif t == "raw.samba3posixtimedlock":
996         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc_smb1/share')
997         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/brl_delay_inject1 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc_smb1/share',
998                                  description="brl_delay_inject1")
999         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/brl_delay_inject2 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc_smb1/share',
1000                                  description="brl_delay_inject2")
1001         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc_smb1/share')
1002     elif t == "smb2.samba3misc":
1003         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
1004         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/brl_delay_inject1 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share',
1005                                  description="brl_delay_inject1")
1006         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/brl_delay_inject2 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share',
1007                                  description="brl_delay_inject2")
1008         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
1009     elif t == "raw.chkpath":
1010         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
1011         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
1012     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr":
1013         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1014         plansmbtorture4testsuite(t, "fileserver_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1015         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1016     elif t == "raw.session":
1017         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
1018         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
1019         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
1020         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
1021     elif t == "smb2.session":
1022         alice_creds = "--option='torture:user2name=alice' --option='torture:user2password=Secret007'"
1023         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
1024         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
1025         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD ' + alice_creds, 'ntlm')
1026         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD ' + alice_creds, 'krb5')
1027         # Certain tests fail when run against ad_member with MIT kerberos because the private krb5.conf overrides the provisioned lib/krb5.conf,
1028         # ad_member_idmap_rid sets "create krb5.conf = no"
1029         plansmbtorture4testsuite(t, "ad_member_idmap_rid", '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD', 'krb5')
1030     elif t == "rpc.lsa":
1031         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
1032         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
1033     elif t.startswith("rpc.lsa."):
1034         # This avoids the rpc.lsa.* tests runing under ncacn_ip_tcp:
1035         # (there is rpc.lsa.secrets fails due to OpenPolicy2 for example)
1036         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1037     elif t == "rpc.mdssvc":
1038         plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1039     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay" or t == "smb2.durable-v2-delay":
1040         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
1041         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
1042     elif t == "base.rw1":
1043         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1044         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
1045         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
1046         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1047     elif t == "idmap.rfc2307":
1048         plantestsuite(t, "ad_member_rfc2307",
1049                       [os.path.join(samba3srcdir,
1050                                     "../nsswitch/tests/test_idmap_rfc2307.sh"),
1051                        '$DOMAIN',
1052                        'Administrator', '2000000',
1053                        'Guest', '2000001',
1054                        '"Domain Users"', '2000002',
1055                        'DnsAdmins', '2000003',
1056                        '2000005', '35',
1057                        'ou=idmap,dc=samba,dc=example,dc=com',
1058                        '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
1059     elif t == "idmap.alloc":
1060         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
1061     elif t == "idmap.rid":
1062         plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
1063         plantestsuite(t,
1064                       "admem_idmap_autorid",
1065                       [os.path.join(samba3srcdir,
1066                                     "../nsswitch/tests/test_idmap_rid.sh"),
1067                        '$DOMAIN',
1068                        '2000000'])
1069     elif t == "idmap.ad":
1070         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'])
1071     elif t == "raw.acls":
1072         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1073         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-40')
1074         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_special_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special-40')
1075         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_simple_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-41')
1076         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_xdr_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-40')
1077         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_xdr_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-41')
1078         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_nfs_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-nfs-40')
1079         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/nfs4acl_nfs_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-nfs-41')
1080         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
1081     elif t == "smb2.ioctl":
1082         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
1083         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1084         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1085     elif t == "smb2.lock":
1086         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
1087         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1088     elif t == "raw.lock" or t == "base.lock":
1089         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1090     elif t == "raw.read":
1091         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1092         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
1093         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1094     elif t == "raw.search":
1095         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1096 # test the dirsort module.
1097         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
1098         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1099     elif t == "vfs.fruit":
1100         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')
1101         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')
1102         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')
1103         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')
1104     elif t == "vfs.fruit_netatalk":
1105         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
1106     elif t == "vfs.fruit_timemachine":
1107         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_timemachine -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
1108     elif t == "vfs.fruit_file_id":
1109         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_zero_fileid -U$USERNAME%$PASSWORD')
1110     elif t == "vfs.fruit_conversion":
1111         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')
1112         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')
1113     elif t == "vfs.unfruit":
1114         creds = '-U$USERNAME%$PASSWORD'
1115         share2 = '--option=torture:share2=tmp'
1116         netopt = '--option=torture:net=%s' % net
1117         shareopt = '--option=torture:sharename'
1118
1119         plansmbtorture4testsuite(t, "nt4_dc:local", '//$SERVER_IP/vfs_fruit %s %s %s %s=%s' % (creds, share2, netopt, shareopt, 'vfs_fruit'), 'metadata_netatalk')
1120         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')
1121         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')
1122     elif t == "rpc.schannel_anon_setpw":
1123         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
1124         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
1125         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
1126     elif t == "local.nss":
1127         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
1128             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1129     elif t == "smb2.change_notify_disabled":
1130         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1131     elif t == "smb2.notify" or t == "raw.notify" or t == "smb2.oplock" or t == "raw.oplock":
1132         tmp_env = "nt4_dc"
1133         if t == "raw.notify" or t == "raw.oplock":
1134             tmp_env = "nt4_dc_smb1"
1135         # These tests are a little slower so don't duplicate them with ad_dc
1136         plansmbtorture4testsuite(t, tmp_env, '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --client-protection=sign')
1137     elif t == "smb2.dosmode":
1138         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
1139     elif t == "smb2.kernel-oplocks":
1140         if have_linux_kernel_oplocks:
1141             plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
1142     elif t == "smb2.notify-inotify":
1143         if have_inotify:
1144             plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1145     elif t == "vfs.acl_xattr":
1146         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1147     elif t == "smb2.compound_find":
1148         plansmbtorture4testsuite(t, "fileserver", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
1149         plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1150     elif t == "smb2.compound":
1151         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1152         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
1153         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1154     elif t == "smb2.ea":
1155         plansmbtorture4testsuite(t, "fileserver", '//$SERVER/ea_acl_xattr --option=torture:acl_xattr_name=hackme -U$USERNAME%$PASSWORD')
1156     elif t == "rpc.samba3.netlogon" or t == "rpc.samba3.sessionkey":
1157         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
1158         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
1159     elif t == "smb2.streams":
1160         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1161         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1162         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/streams_xattr -U$USERNAME%$PASSWORD', 'streams_xattr')
1163     elif t == "smb2.aio_delay":
1164         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio_delay_inject -U$USERNAME%$PASSWORD')
1165     elif t == "smb2.delete-on-close-perms":
1166         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1167         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/delete_readonly -U$USERNAME%$PASSWORD --option=torture:delete_readonly=true')
1168         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1169     elif t == "smb2.fileid":
1170         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD')
1171     elif t == "smb2.acls_non_canonical":
1172         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/acls_non_canonical -U$USERNAME%$PASSWORD')
1173     elif t == "smb2.async_dosmode":
1174         plansmbtorture4testsuite("smb2.async_dosmode",
1175                                  "simpleserver",
1176                                  "//$SERVER_IP/async_dosmode_shadow_copy2 -U$USERNAME%$PASSWORD")
1177     elif t == "smb2.rename":
1178         plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1179     elif t == "smb2.twrp":
1180         # This is being driven by samba3.blackbox.shadow_copy_torture
1181         pass
1182     elif t == "smb2.create_no_streams":
1183         plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD')
1184     elif t == "rpc.wkssvc":
1185         plansmbtorture4testsuite(t, "ad_member", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
1186     elif t == "rpc.srvsvc":
1187         plansmbtorture4testsuite(t, "ad_member", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
1188         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
1189     elif t == "rpc.samba3.lsa_over_netlogon":
1190         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1191     elif t == "rpc.samba3.pipes_supported_interfaces":
1192         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1193         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1194     elif t == "rpc.spoolss.notify":
1195         plansmbtorture4testsuite(t, "ad_member", '//$SERVER_IP/tmp -U$DC_USERNAME%$DC_PASSWORD')
1196     elif (t in base and t != "base.charset") \
1197         or (t in rap and t != "rap.printing") \
1198         or (t in unix) \
1199         or (t in ["rpc.authcontext",
1200                   "rpc.join",
1201                   "rpc.samba3.bind",
1202                   "rpc.samba3.getusername",
1203                   "rpc.samba3.sharesec",
1204                   "rpc.samba3.smb1-pipe-name",
1205                   "rpc.samba3.smb-reauth1",
1206                   "rpc.samba3.smb-reauth2",
1207                   "rpc.samba3.spoolss",
1208                   "rpc.samba3.wkssvc",]) \
1209         or (t in ["raw.close",
1210                   "raw.composite",
1211                   "raw.eas",
1212                   "raw.mkdir",
1213                   "raw.open",
1214                   "raw.rename",
1215                   "raw.samba3badnameblob",
1216                   "raw.samba3badpath",
1217                   "raw.samba3caseinsensitive",
1218                   "raw.samba3oplocklogoff",
1219                   "raw.samba3posixtimedlock",
1220                   "raw.samba3rootdirfid",
1221                   "raw.samba3rootdirfid2",
1222                   "raw.seek",
1223                   "raw.sfileinfo.bug",
1224                   "raw.sfileinfo.end-of-file",
1225                   "raw.sfileinfo.rename",
1226                   "raw.streams",
1227                   "raw.unlink",
1228                   "raw.write",]) :
1229         plansmbtorture4testsuite(t, "nt4_dc_smb1", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1230         plansmbtorture4testsuite(t, "ad_dc_smb1", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1231     elif t in ["base.mangle", "base.tcon", "raw.mkdir"]:
1232         plansmbtorture4testsuite(t, "nt4_dc_smb1_done", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1233         plansmbtorture4testsuite(t, "ad_dc_smb1_done", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1234     elif t == "rpc.samr.passwords.validate":
1235         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
1236     elif t == "rpc.samr.users.privileges":
1237         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:nt4_dc=true')
1238     elif t == "rpc.samr" or t.startswith("rpc.samr."):
1239         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1240     else:
1241         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
1242         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
1243
1244 plantestsuite(
1245     "idmap_ad.ticket_expiry",
1246     "ad_member_idmap_ad:local",
1247     [os.path.join(samba3srcdir, "../nsswitch/tests/test_ticket_expiry.sh"),
1248      '$DOMAIN'])
1249
1250 plansmbtorture4testsuite(
1251     "notifyd",
1252     "fileserver:local",
1253     '//foo/bar -U%')
1254
1255 plansmbtorture4testsuite(
1256     "smb2.streams",
1257     "simpleserver",
1258     '//$SERVER/external_streams_depot -U$USERNAME%$PASSWORD')
1259
1260 test = 'rpc.lsa.lookupsids'
1261 auth_options = ["", "ntlm", "spnego", "spnego,ntlm", "spnego,smb1", "spnego,smb2"]
1262 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
1263 endianness_options = ["", ",bigendian"]
1264 for s in signseal_options:
1265     for e in endianness_options:
1266         for a in auth_options:
1267             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
1268             options = binding_string + " -U$USERNAME%$PASSWORD"
1269             if "smb1" in a:
1270                 plansmbtorture4testsuite(test, "nt4_dc_smb1_done", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
1271             else:
1272                 plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
1273             plantestsuite(
1274                 f'samba3.blackbox.rpcclient over ncacn_np with [{a}{s}{e}] ',
1275                 "nt4_dc:local",
1276                 [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"),
1277                  "none",
1278                  options + " -c getusername",
1279                  configuration])
1280             plantestsuite(
1281                 f'samba3.blackbox.rpcclient over ncalrpc with [{a}{s}{e}] ',
1282                 "nt4_dc:local",
1283                 [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"),
1284                  "none",
1285                  f'ncalrpc:[{a}{s}{e}] -c epmmap',
1286                  configuration])
1287             if s != ",connect":
1288                 plantestsuite(
1289                     f'samba3.blackbox.rpcclient over ncacn_ip_tcp with [{a}{s}{e}] ',
1290                     "nt4_dc:local",
1291                     [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"),
1292                      "none",
1293                      f'ncacn_ip_tcp:"$SERVER_IP"[{a}{s}{e}] -c epmmap -U"$USERNAME"%"$PASSWORD"',
1294                      configuration])
1295
1296     # We should try more combinations in future, but this is all
1297     # the pre-calculated credentials cache supports at the moment
1298     #
1299     # As the ktest env requires SMB3_00 we need to use "smb2" until
1300     # dcerpc client code in smbtorture support autonegotiation
1301     # of any smb dialect.
1302     e = ""
1303     a = "smb2"
1304     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
1305     options = binding_string + " --use-krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
1306     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
1307
1308     options = binding_string + " --use-krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
1309     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
1310
1311     auth_options2 = ["krb5", "spnego,krb5"]
1312     for a in auth_options2:
1313         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
1314
1315         plantestsuite(
1316             f'samba3.blackbox.rpcclient krb5 ncacn_np with [{a}{s}{e}] ',
1317             "ktest:local",
1318             [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"),
1319              "$PREFIX/ktest/krb5_ccache-3",
1320              binding_string,
1321              "--use-krb5-ccache=$PREFIX/ktest/krb5_ccache-3 -c getusername",
1322              configuration])
1323
1324 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
1325                                                                         "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
1326 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
1327               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
1328                configuration, os.path.join(bindir(), "sharesec"),
1329                os.path.join(bindir(), "net"), "tmp"])
1330
1331 plantestsuite("samba3.blackbox.close-denied-share", "simpleserver:local",
1332               [os.path.join(samba3srcdir,
1333                             "script/tests/test_close_denied_share.sh"),
1334                configuration,
1335                os.path.join(bindir(), "sharesec"),
1336                os.path.join(bindir(), "smbclient"),
1337                os.path.join(bindir(), "smbcontrol"),
1338                '$SERVER_IP',
1339                "tmp"])
1340
1341 plantestsuite("samba3.blackbox.force-close-share", "simpleserver:local",
1342               [os.path.join(samba3srcdir,
1343                             "script/tests/test_force_close_share.sh"),
1344                configuration,
1345                os.path.join(bindir(), "smbclient"),
1346                os.path.join(bindir(), "smbcontrol"),
1347                '$SERVER_IP',
1348                "aio_delay_inject",
1349                '$PREFIX/force-close-share'])
1350
1351 plantestsuite("samba3.blackbox.open-eintr", "simpleserver:local",
1352               [os.path.join(samba3srcdir,
1353                             "script/tests/test_open_eintr.sh"),
1354                configuration,
1355                os.path.join(bindir(), "smbclient"),
1356                os.path.join(bindir(), "smbcontrol"),
1357                '$SERVER_IP',
1358                "error_inject"])
1359
1360 plantestsuite("samba3.blackbox.chdir-cache", "simpleserver:local",
1361               [os.path.join(samba3srcdir,
1362                             "script/tests/test_chdir_cache.sh"),
1363                configuration,
1364                os.path.join(bindir(), "smbclient"),
1365                os.path.join(bindir(), "smbcontrol"),
1366                '$SERVER_IP',
1367                "error_inject"])
1368
1369 plantestsuite("samba3.blackbox.netfileenum", "simpleserver:local",
1370               [os.path.join(samba3srcdir,
1371                             "script/tests/test_netfileenum.sh"),
1372                os.path.join(bindir(), "smbclient"),
1373                os.path.join(bindir(), "rpcclient"),
1374                os.path.join(bindir(), "net"),
1375                '$SERVER_IP',
1376                'tmp'])
1377
1378 plantestsuite("samba3.blackbox.netshareenum_username", "fileserver",
1379               [os.path.join(samba3srcdir,
1380                             "script/tests/test_user_in_sharelist.sh"),
1381                os.path.join(bindir(), "rpcclient"),
1382                '$SERVER_IP'])
1383
1384 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
1385               [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
1386                smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
1387                configuration, '$LOCAL_PATH', '$LOCK_DIR'])
1388
1389 plantestsuite("samba3.blackbox.aio-outstanding", "simpleserver:local",
1390               [os.path.join(samba3srcdir,
1391                             "script/tests/test_aio_outstanding.sh"),
1392                configuration,
1393                os.path.join(bindir(), "smbclient"),
1394                '$SERVER_IP',
1395                "aio_delay_inject"])
1396
1397 plantestsuite("samba3.blackbox.deadtime", "simpleserver:local",
1398               [os.path.join(samba3srcdir, "script/tests/test_deadtime.sh"),
1399                '$SERVER_IP'])
1400
1401 plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
1402               [os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh")])
1403
1404 plantestsuite("samba3.blackbox.smbd_no_krb5", "ad_member:local",
1405               [os.path.join(samba3srcdir, "script/tests/test_smbd_no_krb5.sh"),
1406                smbclient3, '$SERVER', "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX"])
1407
1408 plantestsuite("samba3.blackbox.winbind_ignore_domain", "ad_member_idmap_ad:local",
1409               [os.path.join(samba3srcdir, "script/tests/test_winbind_ignore_domains.sh")])
1410
1411 plantestsuite("samba3.blackbox.durable_v2_delay", "simpleserver:local",
1412               [os.path.join(samba3srcdir, "script/tests/test_durable_handle_reconnect.sh")])
1413
1414 plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
1415               [os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
1416                '$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
1417
1418 plantestsuite("samba3.blackbox.net_rpc_share_allowedusers", "nt4_dc",
1419               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_share_allowedusers.sh"),
1420                "$SERVER", "$USERNAME", "$PASSWORD", "$PREFIX/net_rpc_share_allowedusers",
1421                configuration])
1422
1423 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
1424               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
1425                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
1426                configuration])
1427 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
1428               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
1429                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
1430                configuration])
1431 plantestsuite("samba3.blackbox.net_rpc_oldjoin", "nt4_dc:local",
1432               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_oldjoin.sh"),
1433                "$SERVER", "$PREFIX/net_rpc_oldjoin",
1434                "$SMB_CONF_PATH"])
1435 plantestsuite("samba3.blackbox.net_rpc_join_creds", "nt4_dc",
1436               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join_creds.sh"),
1437                "$DOMAIN", "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join_creds",
1438                configuration])
1439
1440 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
1441               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
1442                "$USERNAME", "$PASSWORD", "$SERVER",
1443                os.path.join(bindir(), "rpcclient"), "tmp"])
1444
1445 plantestsuite("samba3.blackbox.rpcclient_lookup", "simpleserver",
1446               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_lookup.sh"),
1447                "$USERNAME", "$PASSWORD", "$SERVER",
1448                os.path.join(bindir(), "rpcclient")])
1449
1450 plantestsuite("samba3.blackbox.rpcclient_dfs", "fileserver:local",
1451               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_dfs.sh"),
1452                "$USERNAME", "$PASSWORD", "$SERVER",
1453                os.path.join(bindir(), "rpcclient")])
1454
1455 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
1456               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
1457                "$USERNAME", "$PASSWORD", "$SERVER",
1458                os.path.join(bindir(), "rpcclient")])
1459
1460 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
1461               [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
1462                "$USERNAME", "$PASSWORD", "$SERVER",
1463                smbclient3])
1464
1465 plantestsuite("samba3.blackbox.smbXsrv_client_dead_rec", "fileserver:local",
1466               [os.path.join(samba3srcdir,
1467                             "script/tests/test_smbXsrv_client_dead_rec.sh"),
1468                configuration,
1469                '$SERVER_IP',
1470                "tmp"])
1471
1472 plantestsuite("samba3.blackbox.smbXsrv_client_cross_node", "clusteredmember:local",
1473               [os.path.join(samba3srcdir,
1474                             "script/tests/test_smbXsrv_client_cross_node.sh"),
1475                configuration,
1476                'ctdb0', 'ctdb1',
1477                "tmp"])
1478
1479 env = 'fileserver'
1480 plantestsuite("samba3.blackbox.virus_scanner", "%s:local" % (env),
1481               [os.path.join(samba3srcdir,
1482                             "script/tests/test_virus_scanner.sh"),
1483                '$SERVER_IP',
1484                "virusfilter",
1485                '$LOCAL_PATH',
1486                smbclient3])
1487
1488 for env in ['fileserver', 'simpleserver']:
1489     plantestsuite("samba3.blackbox.smbclient.encryption", env,
1490                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption.sh"),
1491                    "$USERNAME", "$PASSWORD", "$SERVER",
1492                    smbclient3, env])
1493
1494 plantestsuite("samba3.blackbox.smbclient.kerberos", 'ad_dc',
1495               [os.path.join(samba3srcdir,
1496                             "script/tests/test_smbclient_kerberos.sh"),
1497                "alice",
1498                "$REALM",
1499                "Secret007",
1500                "$SERVER",
1501                smbclient3,
1502                env])
1503 for env in ['ad_dc_fips', 'ad_member_fips']:
1504     plantestsuite("samba3.blackbox.smbclient.kerberos", env,
1505                   [os.path.join(samba3srcdir,
1506                                 "script/tests/test_smbclient_kerberos.sh"),
1507                    "alice",
1508                    "$REALM",
1509                    "Secret007",
1510                    "$SERVER",
1511                    smbclient3,
1512                    env],
1513                   environ={'GNUTLS_FORCE_FIPS_MODE': '1',
1514                            'OPENSSL_FORCE_FIPS_MODE': '1'})
1515
1516 plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member",
1517               [os.path.join(samba3srcdir,
1518                             "script/tests/test_rpcclient_netsessenum.sh"),
1519                "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD", "$SERVER",
1520                os.path.join(bindir(), "rpcclient"), smbtorture3, "tmp"])
1521
1522 # The ktest environment uses:
1523 # server min protocol = SMB3_00
1524 # client max protocol = SMB3
1525 options_list = ["", "--client-protection=encrypt"]
1526 for options in options_list:
1527     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
1528                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
1529                    "$PREFIX/ktest/krb5_ccache-2",
1530                    smbclient3, "$SERVER", options, configuration])
1531
1532     plantestsuite("samba3.blackbox.smbclient_krb5 new ccache %s" % options, "ktest:local",
1533                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
1534                    "$PREFIX/ktest/krb5_ccache-3",
1535                    smbclient3, "$SERVER", options, configuration])
1536
1537     plantestsuite("samba3.blackbox.smbclient_large_file %s krb5" % options, "ktest:local",
1538                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
1539                    "$PREFIX/ktest/krb5_ccache-3",
1540                    smbclient3, "$SERVER", "$PREFIX", options, "--use-krb5-ccache=$PREFIX/ktest/krb5_ccache-3 " + configuration])
1541
1542 options_list = ["-mNT1", "-mNT1 --client-protection=encrypt", "-mSMB3", "-mSMB3 --client-protection=encrypt"]
1543 for options in options_list:
1544     env = "nt4_dc"
1545     if "NT1" in options:
1546         env = "nt4_dc_smb1_done"
1547     plantestsuite("samba3.blackbox.smbclient_large_file %s NTLM" % options, "%s:local" % env,
1548                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
1549                    "none",
1550                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
1551
1552 for alias in ["foo", "bar"]:
1553     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
1554                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
1555                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX",
1556                    configuration])
1557
1558 for e in endianness_options:
1559     for a in auth_options:
1560         for s in signseal_options:
1561             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
1562             options = binding_string + " -U$USERNAME%$PASSWORD"
1563             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
1564
1565 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
1566 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_np')
1567
1568 for env in ["ad_member_idmap_rid:local", "maptoguest:local"]:
1569     plantestsuite("samba3.blackbox.guest", env,
1570                   [os.path.join(samba3srcdir, "script/tests/test_guest_auth.sh"),
1571                    '$SERVER', smbclient3, smbcontrol, net, configuration])
1572
1573 plantestsuite("samba3.blackbox.smbclient-mget",
1574               "fileserver",
1575               [os.path.join(samba3srcdir, "script/tests/test_smbclient_mget.sh"),
1576                smbclient3,
1577                "$SERVER",
1578                "tmp",
1579                "$USERNAME",
1580                "$PASSWORD",
1581                "valid_users"])
1582
1583 t = "readdir-timestamp"
1584 plantestsuite(
1585     "samba3.smbtorture_s3.plain.%s" % t,
1586     "clusteredmember",
1587     [os.path.join(samba3srcdir,
1588                   "script/tests/test_smbtorture_s3.sh"),
1589      t,
1590      '//foo/bar',
1591      '$DOMAIN\\\\$DC_USERNAME',
1592      '$DC_PASSWORD',
1593      smbtorture3,
1594      "",
1595      "-b $PREFIX/clusteredmember/unclists/tmp.txt -N 5 -o 10"])
1596
1597 plantestsuite(
1598     "samba3.net_machine_account",
1599     "clusteredmember",
1600     [os.path.join(samba3srcdir,
1601                   "script/tests/test_net_machine_account.sh"),
1602      "bin/net",
1603      "$SERVERCONFFILE",
1604      "$SERVER_IP"])
1605
1606 plantestsuite(
1607     "samba3.net_lookup_ldap",
1608     "ad_dc:local",
1609     [os.path.join(samba3srcdir,
1610                   "script/tests/test_net_lookup.sh"),
1611      '$DC_SERVER',
1612      '$DC_USERNAME',
1613      '$DC_PASSWORD',
1614      "bin/net",
1615      "bin/samba-tool",
1616      '$DNSNAME'])
1617
1618 plantestsuite("samba3.blackbox.force-user-unlink",
1619               "maptoguest:local",
1620               [os.path.join(samba3srcdir,
1621                             "script/tests/test_force_user_unlink.sh")])
1622
1623 def planclusteredmembertestsuite(tname, prefix):
1624     '''Define a clustered test for the clusteredmember environment'''
1625
1626     tshare = 'tmp'
1627
1628     autharg = '-U${DOMAIN}/${DC_USERNAME}%${DC_PASSWORD}'
1629     namearg = 'clustered.%s' % tname
1630     modnamearg = 'samba3.%s' % namearg
1631     extraargs = ''
1632
1633     prefix = os.path.join(prefix, 'clusteredmember')
1634     unclist = os.path.join(prefix, 'unclists/%s.txt' % tshare)
1635
1636     unclistarg = '--unclist=%s' % unclist
1637     sharearg = '//$SERVER_IP/%s' % tshare
1638
1639     return selftesthelpers.plansmbtorture4testsuite(
1640         namearg,
1641         'clusteredmember',
1642         [extraargs, unclistarg, sharearg, autharg, tname],
1643         target='samba3',
1644         modname=modnamearg)
1645
1646
1647 CLUSTERED_TESTS = [ 'smb2.deny.deny2' ]
1648
1649 for test in CLUSTERED_TESTS:
1650     planclusteredmembertestsuite(test, "$PREFIX")
1651
1652 CLUSTERED_LOCAL_TESTS = [
1653     "ctdbd-conn1",
1654     "local-dbwrap-ctdb1"
1655 ]
1656
1657 for t in CLUSTERED_LOCAL_TESTS:
1658     plantestsuite(
1659         "samba3.%s" % t,
1660         "clusteredmember:local",
1661         [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"),
1662          t,
1663          '//foo/bar',
1664          '""',
1665          '""',
1666          smbtorture3,
1667          "-N 1000 -o 2000"])
1668
1669 planpythontestsuite("fileserver", "samba.tests.smb3unix")