selftest: Add test for rpcclient LSA lookup calls
[metze/samba-autobuild/.git] / source3 / selftest / tests.py
1 #!/usr/bin/python
2 # This script generates a list of testsuites that should be run as part of
3 # the Samba 3 test suite.
4
5 # The output of this script is parsed by selftest.pl, which then decides
6 # which of the tests to actually run. It will, for example, skip all tests
7 # listed in selftest/skip or only run a subset during "make quicktest".
8
9 # The idea is that this script outputs all of the tests of Samba 3, not
10 # just those that are known to pass, and list those that should be skipped
11 # or are known to fail in selftest/skip or selftest/samba3-knownfail. This makes it
12 # very easy to see what functionality is still missing in Samba 3 and makes
13 # it possible to run the testsuite against other servers, such as Samba 4 or
14 # Windows that have a different set of features.
15
16 # The syntax for a testsuite is "-- TEST --" on a single line, followed
17 # by the name of the test, the environment it needs and the command to run, all
18 # three separated by newlines. All other lines in the output are considered
19 # comments.
20
21 import os
22 import sys
23 sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest")))
24 import selftesthelpers
25 from selftesthelpers import bindir, srcdir, scriptdir, binpath
26 from selftesthelpers import plantestsuite, samba3srcdir
27 from selftesthelpers import smbtorture3, configuration, smbclient3, smbtorture4
28 from selftesthelpers import net, wbinfo, dbwrap_tool, rpcclient, python
29 from selftesthelpers import smbget, smbcacls, smbcquotas, ntlm_auth3
30 from selftesthelpers import valgrindify, smbtorture4_testsuites
31 from selftesthelpers import smbtorture4_options
32 from selftesthelpers import smbcontrol
33 from selftesthelpers import smbstatus
34 smbtorture4_options.extend([
35     '--option=torture:sharedelay=100000',
36    '--option=torture:writetimeupdatedelay=500000',
37 ])
38
39
40 def plansmbtorture4testsuite(name, env, options, description=''):
41     if description == '':
42         modname = "samba3.%s" % (name, )
43     else:
44         modname = "samba3.%s %s" % (name, description)
45
46     selftesthelpers.plansmbtorture4testsuite(
47         name, env, options, target='samba3', modname=modname)
48
49
50 # find config.h
51 try:
52     config_h = os.environ["CONFIG_H"]
53 except KeyError:
54     samba4bindir = bindir()
55     config_h = os.path.join(samba4bindir, "default/include/config.h")
56
57 # check available features
58 config_hash = dict()
59 f = open(config_h, 'r')
60 try:
61     lines = f.readlines()
62     config_hash = dict((x[0], ' '.join(x[1:]))
63                        for x in map(lambda line: line.strip().split(' ')[1:],
64                                     filter(lambda line: (line[0:7] == '#define') and (len(line.split(' ')) > 2), lines)))
65 finally:
66     f.close()
67
68 have_linux_kernel_oplocks = ("HAVE_KERNEL_OPLOCKS_LINUX" in config_hash)
69 have_inotify = ("HAVE_INOTIFY" in config_hash)
70 have_ldwrap = ("HAVE_LDWRAP" in config_hash)
71 with_pthreadpool = ("WITH_PTHREADPOOL" in config_hash)
72
73
74 plantestsuite("samba3.blackbox.success", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
75 plantestsuite("samba3.blackbox.failure", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
76
77 plantestsuite("samba3.local_s3", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
78
79 plantestsuite("samba3.blackbox.registry.upgrade", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool])
80
81 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, "NT1", 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, [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, [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, [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, [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, [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, [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, [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, [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, [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,
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,
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", "nt4_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", "nt4_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.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
520        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
521        "rpc.spoolss.driver",
522        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
523        "rpc.lsa.privileges", "rpc.lsa.secrets",
524        "rpc.mdssvc",
525        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
526        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
527        "rpc.samr.priv", "rpc.samr.passwords.validate",
528        "rpc.netlogon.admin",
529        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind",
530        "rpc.initshutdown", "rpc.wkssvc", "rpc.srvsvc"]
531
532 local = ["local.nss"]
533
534 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid", "idmap.ad"]
535
536 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
537
538 unix = ["unix.info2", "unix.whoami"]
539
540 nbt = ["nbt.dgram"]
541
542 vfs = [
543     "vfs.fruit",
544     "vfs.acl_xattr",
545     "vfs.fruit_netatalk",
546     "vfs.fruit_file_id",
547     "vfs.fruit_timemachine",
548     "vfs.fruit_conversion",
549     "vfs.unfruit",
550 ]
551
552 tests = base + raw + smb2 + rpc + unix + local + rap + nbt + idmap + vfs
553
554 for t in tests:
555     if t == "base.delaywrite" or t == "base.deny1" or t == "base.deny2":
556         plansmbtorture4testsuite(t, "fileserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
557     elif t == "base.createx_access":
558         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
559     elif t == "rap.sam":
560         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
561         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
562     elif t == "winbind.pac":
563         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
564     elif t == "unix.whoami":
565         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
566         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
567         for env in ["nt4_dc", "nt4_member"]:
568             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
569             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
570         for env in ["ad_dc", "ad_member"]:
571             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
572             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
573             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
574             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
575     elif t == "raw.samba3posixtimedlock" or t == "smb2.samba3misc":
576         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
577         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/brl_delay_inject1 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share',
578                                  description="brl_delay_inject1")
579         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/brl_delay_inject2 -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share',
580                                  description="brl_delay_inject2")
581         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
582     elif t == "raw.chkpath":
583         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
584         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
585     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr":
586         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
587         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
588         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
589     elif t == "raw.session":
590         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
591         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
592         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
593         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
594     elif t == "smb2.session":
595         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
596         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
597         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
598         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
599         # Certain tests fail when run against ad_member with MIT kerberos because the private krb5.conf overrides the provisioned lib/krb5.conf,
600         # ad_member_idmap_rid sets "create krb5.conf = no"
601         plansmbtorture4testsuite(t, "ad_member_idmap_rid", '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD', 'krb5')
602     elif t == "rpc.lsa":
603         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
604         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
605         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
606         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
607     elif t == "rpc.mdssvc":
608         plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:no_spotlight_localdir=$SELFTEST_PREFIX/fileserver/share')
609     elif t == "rpc.samr.passwords.validate":
610         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
611         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
612     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay" or t == "smb2.durable-v2-delay":
613         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
614         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
615     elif t == "base.rw1":
616         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
617         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
618         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
619         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
620     elif t == "idmap.rfc2307":
621         plantestsuite(t, "ad_member_rfc2307",
622                       [os.path.join(samba3srcdir,
623                                     "../nsswitch/tests/test_idmap_rfc2307.sh"),
624                        '$DOMAIN',
625                        'Administrator', '2000000',
626                        'Guest', '2000001',
627                        '"Domain Users"', '2000002',
628                        'DnsAdmins', '2000003',
629                        '2000005', '35',
630                        'ou=idmap,dc=samba,dc=example,dc=com',
631                        '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
632     elif t == "idmap.alloc":
633         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
634     elif t == "idmap.rid":
635         plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
636     elif t == "idmap.ad":
637         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'])
638     elif t == "raw.acls":
639         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
640         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-40')
641         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special-40')
642         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-41')
643         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-40')
644         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-41')
645         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_nfs_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-nfs-40')
646         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_nfs_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-nfs-41')
647         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
648     elif t == "smb2.ioctl":
649         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
650         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
651         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
652     elif t == "smb2.lock":
653         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
654         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
655     elif t == "raw.lock" or t == "base.lock":
656         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
657     elif t == "raw.read":
658         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
659         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
660         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
661     elif t == "raw.search":
662         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
663 # test the dirsort module.
664         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
665         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
666     elif t == "vfs.fruit":
667         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')
668         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')
669         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')
670         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')
671     elif t == "vfs.fruit_netatalk":
672         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
673     elif t == "vfs.fruit_timemachine":
674         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_timemachine -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
675     elif t == "vfs.fruit_file_id":
676         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_zero_fileid -U$USERNAME%$PASSWORD')
677     elif t == "vfs.fruit_conversion":
678         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')
679         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')
680     elif t == "vfs.unfruit":
681         creds = '-U$USERNAME%$PASSWORD'
682         share2 = '--option=torture:share2=tmp'
683         netopt = '--option=torture:net=%s' % net
684         shareopt = '--option=torture:sharename'
685
686         plansmbtorture4testsuite(t, "nt4_dc:local", '//$SERVER_IP/vfs_fruit %s %s %s %s=%s' % (creds, share2, netopt, shareopt, 'vfs_fruit'), 'metadata_netatalk')
687         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')
688         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')
689     elif t == "rpc.schannel_anon_setpw":
690         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
691         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
692         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
693     elif t == "local.nss":
694         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
695             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
696     elif t == "smb2.change_notify_disabled":
697         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
698     elif t == "smb2.notify" or t == "raw.notify" or t == "smb2.oplock" or t == "raw.oplock":
699         # These tests are a little slower so don't duplicate them with ad_dc
700         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
701     elif t == "smb2.dosmode":
702         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
703     elif t == "smb2.kernel-oplocks":
704         if have_linux_kernel_oplocks:
705             plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
706     elif t == "smb2.notify-inotify":
707         if have_inotify:
708             plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
709     elif t == "vfs.acl_xattr":
710         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
711     elif t == "smb2.compound_find":
712         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
713         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
714         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/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     else:
743         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
744         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
745
746
747 test = 'rpc.lsa.lookupsids'
748 auth_options = ["", "ntlm", "spnego", "spnego,ntlm", "spnego,smb1", "spnego,smb2"]
749 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
750 endianness_options = ["", ",bigendian"]
751 for s in signseal_options:
752     for e in endianness_options:
753         for a in auth_options:
754             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
755             options = binding_string + " -U$USERNAME%$PASSWORD"
756             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
757             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"),
758                                                                                                                  "none", options, configuration])
759
760     # We should try more combinations in future, but this is all
761     # the pre-calculated credentials cache supports at the moment
762     #
763     # As the ktest env requires SMB3_00 we need to use "smb2" until
764     # dcerpc client code in smbtorture support autonegotiation
765     # of any smb dialect.
766     e = ""
767     a = "smb2"
768     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
769     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
770     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
771
772     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
773     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
774
775     auth_options2 = ["krb5", "spnego,krb5"]
776     for a in auth_options2:
777         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
778
779         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"),
780                                                                                                             "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
781
782 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
783                                                                         "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
784 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
785               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
786                configuration, os.path.join(bindir(), "sharesec"),
787                os.path.join(bindir(), "net"), "tmp"])
788
789 plantestsuite("samba3.blackbox.close-denied-share", "simpleserver:local",
790               [os.path.join(samba3srcdir,
791                             "script/tests/test_close_denied_share.sh"),
792                configuration,
793                os.path.join(bindir(), "sharesec"),
794                os.path.join(bindir(), "smbclient"),
795                os.path.join(bindir(), "smbcontrol"),
796                '$SERVER_IP',
797                "tmp"])
798
799 plantestsuite("samba3.blackbox.force-close-share", "simpleserver:local",
800               [os.path.join(samba3srcdir,
801                             "script/tests/test_force_close_share.sh"),
802                configuration,
803                os.path.join(bindir(), "smbclient"),
804                os.path.join(bindir(), "smbcontrol"),
805                '$SERVER_IP',
806                "aio_delay_inject"])
807
808 plantestsuite("samba3.blackbox.open-eintr", "simpleserver:local",
809               [os.path.join(samba3srcdir,
810                             "script/tests/test_open_eintr.sh"),
811                configuration,
812                os.path.join(bindir(), "smbclient"),
813                os.path.join(bindir(), "smbcontrol"),
814                '$SERVER_IP',
815                "error_inject"])
816
817 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
818               [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
819                smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
820                configuration, '$LOCAL_PATH', '$LOCK_DIR'])
821
822 plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
823               [os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh")])
824
825 plantestsuite("samba3.blackbox.smbd_no_krb5", "ad_member:local",
826               [os.path.join(samba3srcdir, "script/tests/test_smbd_no_krb5.sh"),
827                smbclient3, '$SERVER', "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX"])
828
829 plantestsuite("samba3.blackbox.durable_v2_delay", "simpleserver:local",
830               [os.path.join(samba3srcdir, "script/tests/test_durable_handle_reconnect.sh")])
831
832 plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
833               [os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
834                '$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
835
836 plantestsuite("samba3.blackbox.net_rpc_share_allowedusers", "nt4_dc",
837               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_share_allowedusers.sh"),
838                "$SERVER", "$USERNAME", "$PASSWORD", "$PREFIX/net_rpc_share_allowedusers",
839                configuration])
840
841 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
842               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
843                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
844                configuration])
845 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
846               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
847                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
848                configuration])
849 plantestsuite("samba3.blackbox.net_rpc_oldjoin", "nt4_dc:local",
850               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_oldjoin.sh"),
851                "$SERVER", "$PREFIX/net_rpc_oldjoin",
852                "$SMB_CONF_PATH"])
853 plantestsuite("samba3.blackbox.net_rpc_join_creds", "nt4_dc",
854               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join_creds.sh"),
855                "$DOMAIN", "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join_creds",
856                configuration])
857
858 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
859               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
860                "$USERNAME", "$PASSWORD", "$SERVER",
861                os.path.join(bindir(), "rpcclient"), "tmp"])
862
863 plantestsuite("samba3.blackbox.rpcclient_lookup", "simpleserver",
864               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_lookup.sh"),
865                "$USERNAME", "$PASSWORD", "$SERVER",
866                os.path.join(bindir(), "rpcclient")])
867
868 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
869               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
870                "$USERNAME", "$PASSWORD", "$SERVER",
871                os.path.join(bindir(), "rpcclient")])
872
873 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
874               [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
875                "$USERNAME", "$PASSWORD", "$SERVER",
876                smbclient3])
877
878 plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member",
879               [os.path.join(samba3srcdir,
880                             "script/tests/test_rpcclient_netsessenum.sh"),
881                "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD", "$SERVER",
882                os.path.join(bindir(), "rpcclient"), smbtorture3, "tmp"])
883
884 # The ktest environment uses:
885 # server min protocol = SMB3_00
886 # client max protocol = SMB3
887 options_list = ["", "-e"]
888 for options in options_list:
889     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
890                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
891                    "$PREFIX/ktest/krb5_ccache-2",
892                    smbclient3, "$SERVER", options, configuration])
893
894     plantestsuite("samba3.blackbox.smbclient_krb5 new ccache %s" % options, "ktest:local",
895                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
896                    "$PREFIX/ktest/krb5_ccache-3",
897                    smbclient3, "$SERVER", options, configuration])
898
899     plantestsuite("samba3.blackbox.smbclient_large_file %s krb5" % options, "ktest:local",
900                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
901                    "$PREFIX/ktest/krb5_ccache-3",
902                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
903
904 options_list = ["-mNT1", "-mNT1 -e", "-mSMB3", "-mSMB3 -e"]
905 for options in options_list:
906     plantestsuite("samba3.blackbox.smbclient_large_file %s NTLM" % options, "nt4_dc:local",
907                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
908                    "none",
909                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
910
911 for alias in ["foo", "bar"]:
912     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
913                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
914                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
915
916 for e in endianness_options:
917     for a in auth_options:
918         for s in signseal_options:
919             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
920             options = binding_string + " -U$USERNAME%$PASSWORD"
921             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
922
923 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
924 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_np')
925
926 for env in ["ad_member_idmap_rid:local", "maptoguest:local"]:
927     plantestsuite("samba3.blackbox.guest", env,
928                   [os.path.join(samba3srcdir, "script/tests/test_guest_auth.sh"),
929                    '$SERVER', smbclient3, smbcontrol, net, configuration])
930
931 plantestsuite("samba3.blackbox.itime", "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_itime.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, 'xattr'])
932
933
934 def planclusteredmembertestsuite(tname, prefix):
935     '''Define a clustered test for the clusteredmember environment'''
936
937     tshare = 'tmp'
938
939     autharg = '-U${DOMAIN}/${DC_USERNAME}%${DC_PASSWORD}'
940     namearg = 'clustered.%s' % tname
941     modnamearg = 'samba3.%s' % namearg
942     extraargs = ''
943
944     prefix = os.path.join(prefix, 'clusteredmember')
945     unclist = os.path.join(prefix, 'unclists/%s.txt' % tshare)
946
947     unclistarg = '--unclist=%s' % unclist
948     sharearg = '//$SERVER_IP/%s' % tshare
949
950     return selftesthelpers.plansmbtorture4testsuite(
951         namearg,
952         'clusteredmember',
953         [extraargs, unclistarg, sharearg, autharg, tname],
954         target='samba3',
955         modname=modnamearg)
956
957
958 CLUSTERED_TESTS = [ 'base.ntdeny2' ]
959
960 for test in CLUSTERED_TESTS:
961     planclusteredmembertestsuite(test, "$PREFIX")