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