00b3c9d8242818a04741cea1b0762272246fef34
[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"]:
244     plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
245
246 env = "ad_member"
247 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
248 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
249 plantestsuite("samba3.wbinfo_name_lookup", env,
250               [os.path.join(srcdir(),
251                             "nsswitch/tests/test_wbinfo_name_lookup.sh"),
252                '$DOMAIN', '$REALM', '$DC_USERNAME'])
253
254 env = "ad_member:local"
255 plantestsuite("samba3.wbinfo_user_info", env,
256               [os.path.join(srcdir(),
257                             "nsswitch/tests/test_wbinfo_user_info.sh"),
258                '$DOMAIN', '$REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
259
260 env = "fl2008r2dc:local"
261 plantestsuite("samba3.wbinfo_user_info", env,
262               [os.path.join(srcdir(),
263                             "nsswitch/tests/test_wbinfo_user_info.sh"),
264                '$TRUST_DOMAIN', '$TRUST_REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
265
266 env = "nt4_member:local"
267 plantestsuite("samba3.wbinfo_sids_to_xids", env,
268               [os.path.join(srcdir(),
269                             "nsswitch/tests/test_wbinfo_sids_to_xids.sh")])
270
271 env = "ad_member"
272 t = "WBCLIENT-MULTI-PING"
273 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
274 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
275
276 for env in ["maptoguest", "simpleserver"]:
277     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"])
278
279 env = "maptoguest"
280 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"])
281 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])
282
283 # plain
284 for env in ["nt4_dc"]:
285     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"])
286
287 for env in ["nt4_member", "ad_member"]:
288     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"])
289
290 for env in ["nt4_dc"]:
291     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"])
292
293 for env in ["nt4_member", "ad_member"]:
294     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"])
295
296 for env in ["nt4_dc"]:
297     # encrypted
298     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"])
299
300 for env in ["fileserver"]:
301     plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
302     plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
303     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])
304     plantestsuite("samba3.blackbox.smbcquotas (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbcquota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbcquotas])
305     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])
306     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])
307     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'])
308     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'])
309     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])
310     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])
311     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])
312     plantestsuite("samba3.blackbox.netshareenum (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
313     plantestsuite("samba3.blackbox.acl_xattr.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mNT1'])
314     plantestsuite("samba3.blackbox.acl_xattr.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mSMB3'])
315     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])
316     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'])
317     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'])
318     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'])
319     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'])
320     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'])
321     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'])
322     plantestsuite("samba3.blackbox.large_acl.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'NT1'])
323     plantestsuite("samba3.blackbox.large_acl.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'SMB3'])
324     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'])
325     plantestsuite("samba3.blackbox.homes", env, [os.path.join(samba3srcdir, "script/tests/test_homes.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
326     plantestsuite("samba3.blackbox.force_group_change", env,
327                 [os.path.join(samba3srcdir, "script/tests/test_force_group_change.sh"),
328                 '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcontrol])
329
330     #
331     # tar command tests
332     #
333
334     # Test smbclient/tarmode
335     plantestsuite("samba3.blackbox.smbclient_tarmode.NT1", env,
336                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
337                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
338                    '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mNT1"])
339     plantestsuite("samba3.blackbox.smbclient_tarmode.SMB3", 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, "-mSMB3"])
343
344     # Test suite for new smbclient/tar with libarchive (GSoC 13)
345     plantestsuite("samba3.blackbox.smbclient_tar.NT1", env,
346                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
347                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
348                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
349                    '-d', '$PREFIX', '-b', smbclient3,
350                    '--subunit', '--', configuration, '-mNT1'])
351     plantestsuite("samba3.blackbox.smbclient_tar.SMB3", env,
352                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
353                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
354                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
355                    '-d', '$PREFIX', '-b', smbclient3,
356                    '--subunit', '--', configuration, '-mSMB3'])
357
358 plantestsuite("samba3.blackbox.net_usershare", "fileserver:local", [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])
359
360 # TODO encrypted against member, with member creds, and with DC creds
361 plantestsuite("samba3.blackbox.net.misc", "nt4_dc:local",
362               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
363                scriptdir, "$SMB_CONF_PATH", net, configuration])
364 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
365               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
366                scriptdir, "$SMB_CONF_PATH", net, configuration])
367 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
368               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
369                scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
370 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
371               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
372                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
373
374 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
375               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
376                scriptdir, "$SMB_CONF_PATH", net, configuration])
377 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
378               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
379                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
380
381 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
382               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
383                scriptdir, "$SMB_CONF_PATH", net, configuration])
384 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
385               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
386                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
387
388
389 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
390               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
391                "$LOCAL_PATH"])
392
393 plantestsuite(
394     "samba3.pthreadpool", "none",
395     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
396
397 if with_pthreadpool and have_ldwrap:
398     plantestsuite("samba3.pthreadpool_cmocka", "none",
399                   [os.path.join(bindir(), "pthreadpooltest_cmocka")])
400
401 if with_pthreadpool:
402     plantestsuite("samba3.libwbclient_threads",
403                   "nt4_member",
404                   [os.path.join(samba3srcdir,
405                                 "script/tests/test_libwbclient_threads.sh"),
406                    "$DOMAIN", "$DC_USERNAME"])
407
408 plantestsuite(
409     "samba3.resolvconf", "none",
410     [os.path.join(samba3srcdir, "script/tests/test_resolvconf.sh")])
411
412 plantestsuite("samba3.async_req", "nt4_dc",
413               [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
414
415 # smbtorture4 tests
416
417 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
418         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
419         "base.disconnect", "base.fdpass", "base.lock",
420         "base.mangle", "base.negnowait", "base.ntdeny1",
421         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
422         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
423         "base.xcopy", "base.samba3error"]
424
425 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
426        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
427        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
428        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
429        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
430        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
431        "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
432        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
433        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
434
435 smb2 = smbtorture4_testsuites("smb2.")
436
437 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
438        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
439        "rpc.samba3.getaliasmembership-0",
440        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
441        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
442        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
443        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
444        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
445        "rpc.spoolss.driver",
446        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
447        "rpc.lsa.privileges", "rpc.lsa.secrets",
448        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
449        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
450        "rpc.samr.priv", "rpc.samr.passwords.validate",
451        "rpc.netlogon.admin",
452        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind"]
453
454 local = ["local.nss"]
455
456 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid", "idmap.ad"]
457
458 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
459
460 unix = ["unix.info2", "unix.whoami"]
461
462 nbt = ["nbt.dgram"]
463
464 libsmbclient = ["libsmbclient.version", "libsmbclient.initialize",
465                 "libsmbclient.configuration", "libsmbclient.setConfiguration",
466                 "libsmbclient.options", "libsmbclient.opendir",
467                 "libsmbclient.list_shares", "libsmbclient.readdirplus"]
468
469 vfs = [
470     "vfs.fruit",
471     "vfs.acl_xattr",
472     "vfs.fruit_netatalk",
473     "vfs.fruit_file_id",
474     "vfs.fruit_timemachine",
475     "vfs.fruit_conversion",
476 ]
477
478 tests = base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
479
480 for t in tests:
481     if t == "base.delaywrite" or t == "base.deny1" or t == "base.deny2":
482         plansmbtorture4testsuite(t, "fileserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
483     elif t == "base.createx_access":
484         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
485     elif t == "rap.sam":
486         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
487         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
488     elif t == "winbind.pac":
489         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
490     elif t == "unix.whoami":
491         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
492         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
493         for env in ["nt4_dc", "nt4_member"]:
494             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
495             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
496         for env in ["ad_dc", "ad_member"]:
497             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
498             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
499             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
500             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
501     elif t == "raw.samba3posixtimedlock":
502         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
503         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
504     elif t == "raw.chkpath":
505         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
506         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
507     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr":
508         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
509         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
510         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
511     elif t == "raw.session":
512         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
513         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
514         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
515         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
516     elif t == "smb2.session":
517         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
518         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
519         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
520         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
521         # Certain tests fail when run against ad_member with MIT kerberos because the private krb5.conf overrides the provisioned lib/krb5.conf,
522         # ad_member_idmap_rid sets "create krb5.conf = no"
523         plansmbtorture4testsuite(t, "ad_member_idmap_rid", '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD', 'krb5')
524     elif t == "rpc.lsa":
525         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
526         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
527         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
528         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
529     elif t == "rpc.samr.passwords.validate":
530         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
531         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
532     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay" or t == "smb2.durable-v2-delay":
533         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
534         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
535     elif t == "base.rw1":
536         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
537         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
538         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
539         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
540     elif t == "idmap.rfc2307":
541         plantestsuite(t, "ad_member_rfc2307",
542                       [os.path.join(samba3srcdir,
543                                     "../nsswitch/tests/test_idmap_rfc2307.sh"),
544                        '$DOMAIN',
545                        'Administrator', '2000000',
546                        'Guest', '2000001',
547                        '"Domain Users"', '2000002',
548                        'DnsAdmins', '2000003',
549                        '2000005', '35',
550                        'ou=idmap,dc=samba,dc=example,dc=com',
551                        '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
552     elif t == "idmap.alloc":
553         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
554     elif t == "idmap.rid":
555         plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
556     elif t == "idmap.ad":
557         plantestsuite(t, "ad_member_idmap_ad", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_ad.sh"), '$DOMAIN', '$DC_SERVER', '$DC_PASSWORD'])
558     elif t == "raw.acls":
559         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
560         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-40')
561         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special-40')
562         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-41')
563         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-40')
564         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-41')
565         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
566     elif t == "smb2.ioctl":
567         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
568         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
569         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
570     elif t == "smb2.lock":
571         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
572         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
573     elif t == "raw.lock" or t == "base.lock":
574         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
575     elif t == "raw.read":
576         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
577         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
578         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
579     elif t == "raw.search":
580         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
581 # test the dirsort module.
582         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
583         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
584     elif t == "vfs.fruit":
585         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')
586         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')
587         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')
588     elif t == "vfs.fruit_netatalk":
589         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
590     elif t == "vfs.fruit_timemachine":
591         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_timemachine -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
592     elif t == "vfs.fruit_file_id":
593         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD')
594     elif t == "vfs.fruit_conversion":
595         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')
596         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')
597     elif t == "rpc.schannel_anon_setpw":
598         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
599         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
600         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
601     elif t == "local.nss":
602         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
603             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
604     elif t == "smb2.change_notify_disabled":
605         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
606     elif t == "smb2.notify" or t == "raw.notify" or t == "smb2.oplock" or t == "raw.oplock":
607         # These tests are a little slower so don't duplicate them with ad_dc
608         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
609     elif t == "smb2.dosmode":
610         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
611     elif t == "smb2.kernel-oplocks":
612         if have_linux_kernel_oplocks:
613             plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
614     elif t == "smb2.notify-inotify":
615         if have_inotify:
616             plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
617     elif t == "vfs.acl_xattr":
618         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
619     elif t == "smb2.compound_find":
620         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
621         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
622         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
623     elif t == "rpc.samr.users.privileges":
624         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:nt4_dc=true')
625         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
626     elif t == "smb2.compound":
627         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
628         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
629         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
630     elif t == "rpc.samba3.netlogon" or t == "rpc.samba3.sessionkey":
631         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
632         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
633     elif t.startswith("libsmbclient"):
634         url = "smb://$USERNAME:$PASSWORD@$SERVER/tmp"
635         if t == "libsmbclient.list_shares":
636             url = "smb://$USERNAME:$PASSWORD@$SERVER"
637
638         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%%$PASSWORD '
639                                     '--option=torture:smburl=' + url +
640                                     ' --option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
641         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%%$PASSWORD '
642                                     '--option=torture:smburl=' + url +
643                                     ' --option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
644     elif t == "smb2.streams":
645         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
646         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
647         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/streams_xattr -U$USERNAME%$PASSWORD', 'streams_xattr')
648     elif t == "smb2.aio_delay":
649         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio_delay_inject -U$USERNAME%$PASSWORD')
650     elif t == "smb2.delete-on-close-perms":
651         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
652         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/delete_readonly -U$USERNAME%$PASSWORD --option=torture:delete_readonly=true')
653         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
654     else:
655         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
656         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
657
658
659 test = 'rpc.lsa.lookupsids'
660 auth_options = ["", "ntlm", "spnego", "spnego,ntlm", "spnego,smb1", "spnego,smb2"]
661 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
662 endianness_options = ["", ",bigendian"]
663 for s in signseal_options:
664     for e in endianness_options:
665         for a in auth_options:
666             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
667             options = binding_string + " -U$USERNAME%$PASSWORD"
668             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
669             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"),
670                                                                                                                  "none", options, configuration])
671
672     # We should try more combinations in future, but this is all
673     # the pre-calculated credentials cache supports at the moment
674     #
675     # As the ktest env requires SMB3_00 we need to use "smb2" until
676     # dcerpc client code in smbtorture support autonegotiation
677     # of any smb dialect.
678     e = ""
679     a = "smb2"
680     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
681     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
682     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
683
684     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
685     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
686
687     auth_options2 = ["krb5", "spnego,krb5"]
688     for a in auth_options2:
689         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
690
691         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"),
692                                                                                                             "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
693
694 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
695                                                                         "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
696 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
697               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
698                configuration, os.path.join(bindir(), "sharesec"), "tmp"])
699
700 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
701               [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
702                smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
703                configuration, '$LOCAL_PATH', '$LOCK_DIR'])
704
705 plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
706               [os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh")])
707
708 plantestsuite("samba3.blackbox.durable_v2_delay", "simpleserver:local",
709               [os.path.join(samba3srcdir, "script/tests/test_durable_handle_reconnect.sh")])
710
711 plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
712               [os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
713                '$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
714
715 plantestsuite("samba3.blackbox.net_rpc_share_allowedusers", "nt4_dc",
716               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_share_allowedusers.sh"),
717                "$SERVER", "$USERNAME", "$PASSWORD", "$PREFIX/net_rpc_share_allowedusers",
718                configuration])
719
720 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
721               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
722                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
723                configuration])
724 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
725               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
726                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
727                configuration])
728 plantestsuite("samba3.blackbox.net_rpc_oldjoin", "nt4_dc:local",
729               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_oldjoin.sh"),
730                "$SERVER", "$PREFIX/net_rpc_oldjoin",
731                "$SMB_CONF_PATH"])
732 plantestsuite("samba3.blackbox.net_rpc_join_creds", "nt4_dc",
733               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join_creds.sh"),
734                "$DOMAIN", "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join_creds",
735                configuration])
736
737 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
738               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
739                "$USERNAME", "$PASSWORD", "$SERVER",
740                os.path.join(bindir(), "rpcclient"), "tmp"])
741
742 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
743               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
744                "$USERNAME", "$PASSWORD", "$SERVER",
745                os.path.join(bindir(), "rpcclient")])
746
747 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
748               [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
749                "$USERNAME", "$PASSWORD", "$SERVER",
750                smbclient3])
751
752 plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member",
753               [os.path.join(samba3srcdir,
754                             "script/tests/test_rpcclient_netsessenum.sh"),
755                "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD", "$SERVER",
756                os.path.join(bindir(), "rpcclient"), smbtorture3, "tmp"])
757
758 # The ktest environment uses:
759 # server min protocol = SMB3_00
760 # client max protocol = SMB3
761 options_list = ["", "-e"]
762 for options in options_list:
763     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
764                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
765                    "$PREFIX/ktest/krb5_ccache-2",
766                    smbclient3, "$SERVER", options, configuration])
767
768     plantestsuite("samba3.blackbox.smbclient_krb5 new ccache %s" % options, "ktest:local",
769                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
770                    "$PREFIX/ktest/krb5_ccache-3",
771                    smbclient3, "$SERVER", options, configuration])
772
773     plantestsuite("samba3.blackbox.smbclient_large_file %s krb5" % options, "ktest:local",
774                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
775                    "$PREFIX/ktest/krb5_ccache-3",
776                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
777
778 options_list = ["-mNT1", "-mNT1 -e", "-mSMB3", "-mSMB3 -e"]
779 for options in options_list:
780     plantestsuite("samba3.blackbox.smbclient_large_file %s NTLM" % options, "nt4_dc:local",
781                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
782                    "none",
783                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
784
785 for alias in ["foo", "bar"]:
786     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
787                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
788                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
789
790 for e in endianness_options:
791     for a in auth_options:
792         for s in signseal_options:
793             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
794             options = binding_string + " -U$USERNAME%$PASSWORD"
795             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
796
797 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
798 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP[/pipe/FssagentRpc] -U$USERNAME%$PASSWORD', 'over ncacn_np')