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