638ec06e086ffece84870a39bffdb6446eadfa9c
[metze/samba/wip.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 smbtorture4_options.extend([
34     '--option=torture:sharedelay=100000',
35    '--option=torture:writetimeupdatedelay=500000',
36 ])
37
38
39 def plansmbtorture4testsuite(name, env, options, description=''):
40     if description == '':
41         modname = "samba3.%s" % (name, )
42     else:
43         modname = "samba3.%s %s" % (name, description)
44
45     selftesthelpers.plansmbtorture4testsuite(
46         name, env, options, target='samba3', modname=modname)
47
48
49 # find config.h
50 try:
51     config_h = os.environ["CONFIG_H"]
52 except KeyError:
53     samba4bindir = bindir()
54     config_h = os.path.join(samba4bindir, "default/include/config.h")
55
56 # check available features
57 config_hash = dict()
58 f = open(config_h, 'r')
59 try:
60     lines = f.readlines()
61     config_hash = dict((x[0], ' '.join(x[1:]))
62                        for x in map(lambda line: line.strip().split(' ')[1:],
63                                     filter(lambda line: (line[0:7] == '#define') and (len(line.split(' ')) > 2), lines)))
64 finally:
65     f.close()
66
67 have_linux_kernel_oplocks = ("HAVE_KERNEL_OPLOCKS_LINUX" in config_hash)
68 have_inotify = ("HAVE_INOTIFY" in config_hash)
69 have_ldwrap = ("HAVE_LDWRAP" in config_hash)
70 with_pthreadpool = ("WITH_PTHREADPOOL" in config_hash)
71
72
73 plantestsuite("samba3.blackbox.success", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
74 plantestsuite("samba3.blackbox.failure", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
75
76 plantestsuite("samba3.local_s3", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
77
78 plantestsuite("samba3.blackbox.registry.upgrade", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool])
79
80 tests = ["FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7", "LOCK9",
81          "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE",
82          "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR",
83          "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "LARGE_READX", "RW-SIGNING",
84          "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "WILDDELETE", "PROPERTIES", "W2K",
85          "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2", "OWNER-RIGHTS",
86          "CHAIN3", "PIDHIGH", "CLI_SPLICE",
87          "UID-REGRESSION-TEST", "SHORTNAME-TEST",
88          "CASE-INSENSITIVE-CREATE", "SMB2-BASIC", "NTTRANS-FSCTL", "SMB2-NEGPROT",
89          "SMB2-SESSION-REAUTH", "SMB2-SESSION-RECONNECT", "SMB2-FTRUNCATE",
90          "SMB2-ANONYMOUS", "SMB2-DIR-FSYNC",
91          "CLEANUP1",
92          "CLEANUP2",
93          "CLEANUP4",
94          "BAD-NBT-SESSION"]
95
96 for t in tests:
97     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"])
98     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"])
99     if t == "TORTURE":
100         # this is a negative test to verify that the server rejects
101         # access without encryption
102         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"])
103     if t == "CLI_SPLICE":
104         # We must test this against the SMB1 fallback.
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", "-mNT1"])
106     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"])
107
108 t = "TLDAP"
109 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"])
110
111 #
112 # RENAME-ACCESS needs to run against a special share - acl_xattr_ign_sysacl_windows
113 #
114 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"])
115 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"])
116 # non-crypt only
117
118 tests = ["OPLOCK-CANCEL"]
119 for t in tests:
120     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"])
121
122 env = "nt4_dc"
123 tests = ["MANGLE-ILLEGAL"]
124 for t in tests:
125     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"])
126
127 tests = ["RW1", "RW2", "RW3", "SMB2-BASIC"]
128 for t in tests:
129     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"])
130     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"])
131
132 plantestsuite("samba3.smbtorture_s3.hidenewfiles(simpleserver)",
133               "simpleserver",
134               [os.path.join(samba3srcdir,
135                             "script/tests/test_smbtorture_s3.sh"),
136                'hide-new-files-timeout',
137                '//$SERVER_IP/hidenewfiles',
138                '$USERNAME',
139                '$PASSWORD',
140                smbtorture3,
141                "",
142                "-l $LOCAL_PATH"])
143
144 shares = [
145     "vfs_aio_pthread_async_dosmode_default1",
146     "vfs_aio_pthread_async_dosmode_default2",
147     "vfs_aio_pthread_async_dosmode_force_sync1",
148     "vfs_aio_pthread_async_dosmode_force_sync2"
149 ]
150 for s in shares:
151     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"])
152     t = "smb2.compound_find"
153     plansmbtorture4testsuite(t, "simpleserver", "//%s/%s %s" % ('$SERVER_IP', s, ' -U$USERNAME%$PASSWORD'), description=s)
154
155 posix_tests = ["POSIX", "POSIX-APPEND", "POSIX-SYMLINK-ACL", "POSIX-SYMLINK-EA", "POSIX-OFD-LOCK",
156                "POSIX-STREAM-DELETE", "WINDOWS-BAD-SYMLINK"]
157
158 for t in posix_tests:
159     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"])
160     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"])
161     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"])
162
163 env = "nt4_dc:local"
164 t = "CLEANUP3"
165 plantestsuite("samba3.smbtorture_s3.plain.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', binpath('smbtorture3'), "", "-l $LOCAL_PATH"])
166
167 local_tests = [
168     "LOCAL-SUBSTITUTE",
169     "LOCAL-GENCACHE",
170     "LOCAL-BASE64",
171     "LOCAL-RBTREE",
172     "LOCAL-MEMCACHE",
173     "LOCAL-STREAM-NAME",
174     "LOCAL-string_to_sid",
175     "LOCAL-sid_to_string",
176     "LOCAL-binary_to_sid",
177     "LOCAL-DBTRANS",
178     "LOCAL-TEVENT-POLL",
179     "LOCAL-CONVERT-STRING",
180     "LOCAL-CONV-AUTH-INFO",
181     "LOCAL-IDMAP-TDB-COMMON",
182     "LOCAL-MESSAGING-READ1",
183     "LOCAL-MESSAGING-READ2",
184     "LOCAL-MESSAGING-READ3",
185     "LOCAL-MESSAGING-READ4",
186     "LOCAL-MESSAGING-FDPASS1",
187     "LOCAL-MESSAGING-FDPASS2",
188     "LOCAL-MESSAGING-FDPASS2a",
189     "LOCAL-MESSAGING-FDPASS2b",
190     "LOCAL-MESSAGING-SEND-ALL",
191     "LOCAL-PTHREADPOOL-TEVENT",
192     "LOCAL-CANONICALIZE-PATH",
193     "LOCAL-DBWRAP-WATCH1",
194     "LOCAL-DBWRAP-WATCH2",
195     "LOCAL-DBWRAP-DO-LOCKED1",
196     "LOCAL-G-LOCK1",
197     "LOCAL-G-LOCK2",
198     "LOCAL-G-LOCK3",
199     "LOCAL-G-LOCK4",
200     "LOCAL-G-LOCK5",
201     "LOCAL-G-LOCK6",
202     "LOCAL-NAMEMAP-CACHE1",
203     "LOCAL-hex_encode_buf",
204     "LOCAL-remove_duplicate_addrs2"]
205
206 for t in local_tests:
207     plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
208
209 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
210 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
211 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
212 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
213
214 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"])
215 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"])
216 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"])
217 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"])
218 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"])
219
220 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])
221 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"]:
222     env = "nt4_dc"
223     plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, options])
224
225 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc", "ad_dc_ntvfs", "s4member", "fl2000dc"]:
226     plantestsuite("samba3.blackbox.smbclient_machine_auth.plain (%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_machine_auth.sh"), '$SERVER', smbclient3, configuration])
227     plantestsuite("samba3.blackbox.smbclient_ntlm.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_ntlm.sh"), '$SERVER', '$DC_USERNAME', '$DC_PASSWORD', "never", smbclient3, configuration])
228
229 for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no -mNT1", ""]:
230     for env in ["nt4_member", "ad_member"]:
231         plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, options])
232         plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s member creds" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration, options])
233
234 env = "ad_dc"
235 plantestsuite("samba3.blackbox.smbspool", env, [os.path.join(samba3srcdir, "script/tests/test_smbspool.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', env])
236
237 for env in ["ad_member:local", "nt4_dc:local"]:
238     plantestsuite("samba3.blackbox.smbpasswd", env, [os.path.join(samba3srcdir, "script/tests/test_smbpasswd.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD'])
239
240 env = "nt4_dc"
241 plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) ipv6" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IPV6', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration])
242
243 for env in ["nt4_member", "ad_member", "nt4_dc_schannel", "ad_member_rfc2307", "ad_dc", "ktest"]:
244     for options in ["-mSMB2_02", "-mSMB2_10", "-mSMB3_00", "-mSMB3_02", "-mSMB3_11"]:
245         plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s SMB2/3" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration, options])
246
247 for env in ["nt4_member", "ad_member"]:
248     plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
249
250 env = "ad_member"
251 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
252 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
253 plantestsuite("samba3.wbinfo_name_lookup", env,
254               [os.path.join(srcdir(),
255                             "nsswitch/tests/test_wbinfo_name_lookup.sh"),
256                '$DOMAIN', '$REALM', '$DC_USERNAME'])
257
258 env = "ad_member:local"
259 plantestsuite("samba3.wbinfo_user_info", env,
260               [os.path.join(srcdir(),
261                             "nsswitch/tests/test_wbinfo_user_info.sh"),
262                '$DOMAIN', '$REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
263
264 env = "fl2008r2dc:local"
265 plantestsuite("samba3.wbinfo_user_info", env,
266               [os.path.join(srcdir(),
267                             "nsswitch/tests/test_wbinfo_user_info.sh"),
268                '$TRUST_DOMAIN', '$TRUST_REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
269
270 env = "nt4_member:local"
271 plantestsuite("samba3.wbinfo_sids_to_xids", env,
272               [os.path.join(srcdir(),
273                             "nsswitch/tests/test_wbinfo_sids_to_xids.sh")])
274
275 env = "ad_member"
276 t = "WBCLIENT-MULTI-PING"
277 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
278 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
279
280 for env in ["maptoguest", "simpleserver"]:
281     plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) local creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3, configuration + " --option=clientntlmv2auth=no --option=clientlanmanauth=yes"])
282
283 env = "maptoguest"
284 plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) bad username" % env, 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"])
285 plantestsuite("samba3.blackbox.smbclient_ntlm.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_ntlm.sh"), '$SERVER', '$USERNAME', '$PASSWORD', "baduser", smbclient3, configuration])
286
287 # plain
288 for env in ["nt4_dc"]:
289     plantestsuite("samba3.blackbox.smbclient_s3.NT1.plain (%s)" % env, 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"])
290
291 for env in ["nt4_member", "ad_member"]:
292     plantestsuite("samba3.blackbox.smbclient_s3.NT1.plain (%s) member creds" % env, 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"])
293
294 for env in ["nt4_dc"]:
295     plantestsuite("samba3.blackbox.smbclient_s3.NT1.sign (%s)" % env, 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"])
296
297 for env in ["nt4_member", "ad_member"]:
298     plantestsuite("samba3.blackbox.smbclient_s3.NT1.sign (%s) member creds" % env, 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"])
299
300 for env in ["nt4_dc"]:
301     # encrypted
302     plantestsuite("samba3.blackbox.smbclient_s3.NT1.crypt (%s)" % env, 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"])
303
304 for env in ["fileserver"]:
305     plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
306     plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
307     plantestsuite("samba3.blackbox.dfree_quota (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_quota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcquotas, smbcacls])
308     plantestsuite("samba3.blackbox.smbcquotas (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbcquota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbcquotas])
309     plantestsuite("samba3.blackbox.valid_users (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_valid_users.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
310     plantestsuite("samba3.blackbox.offline (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_offline.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/offline', smbclient3])
311     plantestsuite("samba3.blackbox.shadow_copy2 NT1 (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbclient3, '-m', 'NT1'])
312     plantestsuite("samba3.blackbox.shadow_copy2 SMB3 (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbclient3, '-m', 'SMB3'])
313     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])
314     plantestsuite("samba3.blackbox.smbclient.forceuser_validusers (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_forceuser_validusers.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
315     plantestsuite("samba3.blackbox.smbget (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbget.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', 'smbget_user', '$PASSWORD', '$LOCAL_PATH/smbget', smbget])
316     plantestsuite("samba3.blackbox.netshareenum (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
317     plantestsuite("samba3.blackbox.acl_xattr.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mNT1'])
318     plantestsuite("samba3.blackbox.acl_xattr.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mSMB3'])
319     plantestsuite("samba3.blackbox.smb2.not_casesensitive (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smb2_not_casesensitive.sh"), '//$SERVER/tmp', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3])
320     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'])
321     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'])
322     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'])
323     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'])
324     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'])
325     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'])
326     plantestsuite("samba3.blackbox.large_acl.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'NT1'])
327     plantestsuite("samba3.blackbox.large_acl.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'SMB3'])
328     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'])
329     plantestsuite("samba3.blackbox.homes", env, [os.path.join(samba3srcdir, "script/tests/test_homes.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
330     plantestsuite("samba3.blackbox.force_group_change", env,
331                 [os.path.join(samba3srcdir, "script/tests/test_force_group_change.sh"),
332                 '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcontrol])
333
334     #
335     # tar command tests
336     #
337
338     # Test smbclient/tarmode
339     plantestsuite("samba3.blackbox.smbclient_tarmode.NT1", env,
340                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
341                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
342                    '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mNT1"])
343     plantestsuite("samba3.blackbox.smbclient_tarmode.SMB3", env,
344                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
345                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
346                    '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mSMB3"])
347
348     # Test suite for new smbclient/tar with libarchive (GSoC 13)
349     plantestsuite("samba3.blackbox.smbclient_tar.NT1", env,
350                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
351                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
352                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
353                    '-d', '$PREFIX', '-b', smbclient3,
354                    '--subunit', '--', configuration, '-mNT1'])
355     plantestsuite("samba3.blackbox.smbclient_tar.SMB3", env,
356                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
357                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
358                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
359                    '-d', '$PREFIX', '-b', smbclient3,
360                    '--subunit', '--', configuration, '-mSMB3'])
361
362 plantestsuite("samba3.blackbox.net_usershare", "fileserver:local", [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])
363
364 # TODO encrypted against member, with member creds, and with DC creds
365 plantestsuite("samba3.blackbox.net.misc", "nt4_dc:local",
366               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
367                scriptdir, "$SMB_CONF_PATH", net, configuration])
368 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
369               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
370                scriptdir, "$SMB_CONF_PATH", net, configuration])
371 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
372               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
373                scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
374 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
375               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
376                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
377
378 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
379               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
380                scriptdir, "$SMB_CONF_PATH", net, configuration])
381 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
382               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
383                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
384
385 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
386               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
387                scriptdir, "$SMB_CONF_PATH", net, configuration])
388 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
389               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
390                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
391
392
393 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
394               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
395                "$LOCAL_PATH"])
396
397 plantestsuite(
398     "samba3.pthreadpool", "none",
399     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
400
401 if with_pthreadpool and have_ldwrap:
402     plantestsuite("samba3.pthreadpool_cmocka", "none",
403                   [os.path.join(bindir(), "pthreadpooltest_cmocka")])
404
405 if with_pthreadpool:
406     plantestsuite("samba3.libwbclient_threads",
407                   "nt4_member",
408                   [os.path.join(samba3srcdir,
409                                 "script/tests/test_libwbclient_threads.sh"),
410                    "$DOMAIN", "$DC_USERNAME"])
411
412 plantestsuite(
413     "samba3.resolvconf", "none",
414     [os.path.join(samba3srcdir, "script/tests/test_resolvconf.sh")])
415
416 plantestsuite("samba3.async_req", "nt4_dc",
417               [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
418
419 # smbtorture4 tests
420
421 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
422         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
423         "base.disconnect", "base.fdpass", "base.lock",
424         "base.mangle", "base.negnowait", "base.ntdeny1",
425         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
426         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
427         "base.xcopy", "base.samba3error"]
428
429 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
430        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
431        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
432        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
433        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
434        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
435        "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
436        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
437        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
438
439 smb2 = smbtorture4_testsuites("smb2.")
440
441 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
442        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
443        "rpc.samba3.getaliasmembership-0",
444        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
445        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
446        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
447        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
448        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
449        "rpc.spoolss.driver",
450        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
451        "rpc.lsa.privileges", "rpc.lsa.secrets",
452        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
453        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
454        "rpc.samr.priv", "rpc.samr.passwords.validate",
455        "rpc.netlogon.admin",
456        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind"]
457
458 local = ["local.nss"]
459
460 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid", "idmap.ad"]
461
462 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
463
464 unix = ["unix.info2", "unix.whoami"]
465
466 nbt = ["nbt.dgram"]
467
468 libsmbclient = ["libsmbclient.version", "libsmbclient.initialize",
469                 "libsmbclient.configuration", "libsmbclient.setConfiguration",
470                 "libsmbclient.options", "libsmbclient.opendir",
471                 "libsmbclient.list_shares", "libsmbclient.readdirplus"]
472
473 vfs = [
474     "vfs.fruit",
475     "vfs.acl_xattr",
476     "vfs.fruit_netatalk",
477     "vfs.fruit_file_id",
478     "vfs.fruit_timemachine",
479     "vfs.fruit_conversion",
480 ]
481
482 tests = base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
483
484 for t in tests:
485     if t == "base.delaywrite" or t == "base.deny1" or t == "base.deny2":
486         plansmbtorture4testsuite(t, "fileserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
487     elif t == "base.createx_access":
488         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
489     elif t == "rap.sam":
490         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
491         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
492     elif t == "winbind.pac":
493         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
494     elif t == "unix.whoami":
495         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
496         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
497         for env in ["nt4_dc", "nt4_member"]:
498             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
499             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
500         for env in ["ad_dc", "ad_member"]:
501             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
502             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
503             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
504             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
505     elif t == "raw.samba3posixtimedlock":
506         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
507         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
508     elif t == "raw.chkpath":
509         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
510         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
511     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr":
512         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
513         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
514         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
515     elif t == "raw.session":
516         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
517         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
518         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
519         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
520     elif t == "smb2.session":
521         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
522         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
523         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
524         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
525         # Certain tests fail when run against ad_member with MIT kerberos because the private krb5.conf overrides the provisioned lib/krb5.conf,
526         # ad_member_idmap_rid sets "create krb5.conf = no"
527         plansmbtorture4testsuite(t, "ad_member_idmap_rid", '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD', 'krb5')
528     elif t == "rpc.lsa":
529         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
530         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
531         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
532         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
533     elif t == "rpc.samr.passwords.validate":
534         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
535         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
536     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay" or t == "smb2.durable-v2-delay":
537         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
538         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
539     elif t == "base.rw1":
540         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
541         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
542         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
543         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
544     elif t == "idmap.rfc2307":
545         plantestsuite(t, "ad_member_rfc2307",
546                       [os.path.join(samba3srcdir,
547                                     "../nsswitch/tests/test_idmap_rfc2307.sh"),
548                        '$DOMAIN',
549                        'Administrator', '2000000',
550                        'Guest', '2000001',
551                        '"Domain Users"', '2000002',
552                        'DnsAdmins', '2000003',
553                        '2000005', '35',
554                        'ou=idmap,dc=samba,dc=example,dc=com',
555                        '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
556     elif t == "idmap.alloc":
557         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
558     elif t == "idmap.rid":
559         plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
560     elif t == "idmap.ad":
561         plantestsuite(t, "ad_member_idmap_ad", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_ad.sh"), '$DOMAIN', '$DC_SERVER', '$DC_PASSWORD'])
562     elif t == "raw.acls":
563         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
564         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-40')
565         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special-40')
566         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-41')
567         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-40')
568         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-41')
569         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
570     elif t == "smb2.ioctl":
571         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
572         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
573         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
574     elif t == "smb2.lock":
575         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
576         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
577     elif t == "raw.lock" or t == "base.lock":
578         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
579     elif t == "raw.read":
580         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
581         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
582         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
583     elif t == "raw.search":
584         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
585 # test the dirsort module.
586         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
587         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
588     elif t == "vfs.fruit":
589         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')
590         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')
591         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')
592     elif t == "vfs.fruit_netatalk":
593         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
594     elif t == "vfs.fruit_timemachine":
595         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_timemachine -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
596     elif t == "vfs.fruit_file_id":
597         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD')
598     elif t == "vfs.fruit_conversion":
599         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')
600         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')
601     elif t == "rpc.schannel_anon_setpw":
602         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
603         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
604         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
605     elif t == "local.nss":
606         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
607             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
608     elif t == "smb2.change_notify_disabled":
609         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
610     elif t == "smb2.notify" or t == "raw.notify" or t == "smb2.oplock" or t == "raw.oplock":
611         # These tests are a little slower so don't duplicate them with ad_dc
612         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
613     elif t == "smb2.dosmode":
614         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
615     elif t == "smb2.kernel-oplocks":
616         if have_linux_kernel_oplocks:
617             plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
618     elif t == "smb2.notify-inotify":
619         if have_inotify:
620             plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
621     elif t == "vfs.acl_xattr":
622         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
623     elif t == "smb2.compound_find":
624         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
625         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
626         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
627     elif t == "rpc.samr.users.privileges":
628         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:nt4_dc=true')
629         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
630     elif t == "smb2.compound":
631         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
632         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
633         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
634     elif t == "rpc.samba3.netlogon" or t == "rpc.samba3.sessionkey":
635         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
636         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
637     elif t.startswith("libsmbclient"):
638         url = "smb://$USERNAME:$PASSWORD@$SERVER/tmp"
639         if t == "libsmbclient.list_shares":
640             url = "smb://$USERNAME:$PASSWORD@$SERVER"
641
642         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%%$PASSWORD '
643                                     '--option=torture:smburl=' + url +
644                                     ' --option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
645         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%%$PASSWORD '
646                                     '--option=torture:smburl=' + url +
647                                     ' --option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
648     elif t == "smb2.streams":
649         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
650         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
651         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/streams_xattr -U$USERNAME%$PASSWORD', 'streams_xattr')
652     elif t == "smb2.aio_delay":
653         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio_delay_inject -U$USERNAME%$PASSWORD')
654     elif t == "smb2.delete-on-close-perms":
655         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
656         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/delete_readonly -U$USERNAME%$PASSWORD --option=torture:delete_readonly=true')
657         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
658     else:
659         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
660         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
661
662
663 test = 'rpc.lsa.lookupsids'
664 auth_options = ["", "ntlm", "spnego", "spnego,ntlm", "spnego,smb1", "spnego,smb2"]
665 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
666 endianness_options = ["", ",bigendian"]
667 for s in signseal_options:
668     for e in endianness_options:
669         for a in auth_options:
670             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
671             options = binding_string + " -U$USERNAME%$PASSWORD"
672             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
673             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"),
674                                                                                                                  "none", options, configuration])
675
676     # We should try more combinations in future, but this is all
677     # the pre-calculated credentials cache supports at the moment
678     #
679     # As the ktest env requires SMB3_00 we need to use "smb2" until
680     # dcerpc client code in smbtorture support autonegotiation
681     # of any smb dialect.
682     e = ""
683     a = "smb2"
684     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
685     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
686     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
687
688     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
689     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
690
691     auth_options2 = ["krb5", "spnego,krb5"]
692     for a in auth_options2:
693         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
694
695         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"),
696                                                                                                             "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
697
698 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
699                                                                         "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
700 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
701               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
702                configuration, os.path.join(bindir(), "sharesec"), "tmp"])
703
704 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
705               [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
706                smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
707                configuration, '$LOCAL_PATH', '$LOCK_DIR'])
708
709 plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
710               [os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh")])
711
712 plantestsuite("samba3.blackbox.durable_v2_delay", "simpleserver:local",
713               [os.path.join(samba3srcdir, "script/tests/test_durable_handle_reconnect.sh")])
714
715 plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
716               [os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
717                '$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
718
719 plantestsuite("samba3.blackbox.net_rpc_share_allowedusers", "nt4_dc",
720               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_share_allowedusers.sh"),
721                "$SERVER", "$USERNAME", "$PASSWORD", "$PREFIX/net_rpc_share_allowedusers",
722                configuration])
723
724 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
725               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
726                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
727                configuration])
728 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
729               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
730                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
731                configuration])
732 plantestsuite("samba3.blackbox.net_rpc_oldjoin", "nt4_dc:local",
733               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_oldjoin.sh"),
734                "$SERVER", "$PREFIX/net_rpc_oldjoin",
735                "$SMB_CONF_PATH"])
736 plantestsuite("samba3.blackbox.net_rpc_join_creds", "nt4_dc",
737               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join_creds.sh"),
738                "$DOMAIN", "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join_creds",
739                configuration])
740
741 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
742               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
743                "$USERNAME", "$PASSWORD", "$SERVER",
744                os.path.join(bindir(), "rpcclient"), "tmp"])
745
746 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
747               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
748                "$USERNAME", "$PASSWORD", "$SERVER",
749                os.path.join(bindir(), "rpcclient")])
750
751 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
752               [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
753                "$USERNAME", "$PASSWORD", "$SERVER",
754                smbclient3])
755
756 plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member",
757               [os.path.join(samba3srcdir,
758                             "script/tests/test_rpcclient_netsessenum.sh"),
759                "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD", "$SERVER",
760                os.path.join(bindir(), "rpcclient"), smbtorture3, "tmp"])
761
762 # The ktest environment uses:
763 # server min protocol = SMB3_00
764 # client max protocol = SMB3
765 options_list = ["", "-e"]
766 for options in options_list:
767     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
768                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
769                    "$PREFIX/ktest/krb5_ccache-2",
770                    smbclient3, "$SERVER", options, configuration])
771
772     plantestsuite("samba3.blackbox.smbclient_krb5 new ccache %s" % options, "ktest:local",
773                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
774                    "$PREFIX/ktest/krb5_ccache-3",
775                    smbclient3, "$SERVER", options, configuration])
776
777     plantestsuite("samba3.blackbox.smbclient_large_file %s krb5" % options, "ktest:local",
778                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
779                    "$PREFIX/ktest/krb5_ccache-3",
780                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
781
782 options_list = ["-mNT1", "-mNT1 -e", "-mSMB3", "-mSMB3 -e"]
783 for options in options_list:
784     plantestsuite("samba3.blackbox.smbclient_large_file %s NTLM" % options, "nt4_dc:local",
785                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
786                    "none",
787                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
788
789 for alias in ["foo", "bar"]:
790     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
791                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
792                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
793
794 for e in endianness_options:
795     for a in auth_options:
796         for s in signseal_options:
797             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
798             options = binding_string + " -U$USERNAME%$PASSWORD"
799             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
800
801 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
802 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP[/pipe/FssagentRpc] -U$USERNAME%$PASSWORD', 'over ncacn_np')