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