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