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