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