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