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