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