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