selftest: run vfs_fruit tests against share with fruit:metadata=stream
[kai/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, sys
22 sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest")))
23 import selftesthelpers
24 from selftesthelpers import *
25 smbtorture4_options.extend([
26    '--option=torture:sharedelay=100000',
27    '--option=torture:writetimeupdatedelay=500000',
28    ])
29
30 def plansmbtorture4testsuite(name, env, options, description=''):
31     if description == '':
32         modname = "samba3.%s" % (name, )
33     else:
34         modname = "samba3.%s %s" % (name, description)
35
36     selftesthelpers.plansmbtorture4testsuite(
37         name, env, options, target='samba3', modname=modname)
38
39
40 plantestsuite("samba3.blackbox.success", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
41 plantestsuite("samba3.blackbox.failure", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
42
43 plantestsuite("samba3.local_s3", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
44
45 plantestsuite("samba3.blackbox.registry.upgrade", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool])
46
47 tests = ["FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7", "LOCK9",
48         "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE",
49         "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR",
50         "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "LARGE_READX", "RW-SIGNING",
51         "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "WILDDELETE", "PROPERTIES", "W2K",
52         "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2", "OWNER-RIGHTS",
53         "CHAIN3", "PIDHIGH",
54         "GETADDRINFO", "UID-REGRESSION-TEST", "SHORTNAME-TEST",
55         "CASE-INSENSITIVE-CREATE", "SMB2-BASIC", "NTTRANS-FSCTL", "SMB2-NEGPROT",
56         "SMB2-SESSION-REAUTH", "SMB2-SESSION-RECONNECT", "SMB2-FTRUNCATE",
57         "CLEANUP1",
58         "CLEANUP2",
59         "CLEANUP4",
60         "BAD-NBT-SESSION"]
61
62 for t in tests:
63     plantestsuite("samba3.smbtorture_s3.plain(nt4_dc).%s" % t, "nt4_dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
64     plantestsuite("samba3.smbtorture_s3.crypt_client(nt4_dc).%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"])
65     if t == "TORTURE":
66         # this is a negative test to verify that the server rejects
67         # access without encryption
68         plantestsuite("samba3.smbtorture_s3.crypt_server(nt4_dc).%s" % t, "nt4_dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmpenc', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
69     plantestsuite("samba3.smbtorture_s3.plain(ad_dc_ntvfs).%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"])
70
71 #
72 # RENAME-ACCESS needs to run against a special share - acl_xattr_ign_sysacl_windows
73 #
74 plantestsuite("samba3.smbtorture_s3.plain(nt4_dc).%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"])
75 plantestsuite("samba3.smbtorture_s3.crypt_client(nt4_dc).%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"])
76 # non-crypt only
77
78 tests = ["OPLOCK-CANCEL"]
79 for t in tests:
80     plantestsuite("samba3.smbtorture_s3.plain(nt4_dc).%s" % t, "nt4_dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
81
82 env = "nt4_dc"
83 tests = ["MANGLE-ILLEGAL"]
84 for t in tests:
85     plantestsuite("samba3.smbtorture_s3.plain(%s).%s" % (env, t), env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/mangle_illegal', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
86
87 tests = ["RW1", "RW2", "RW3"]
88 for t in tests:
89     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"])
90
91 posix_tests = ["POSIX", "POSIX-APPEND", "POSIX-SYMLINK-ACL", "POSIX-SYMLINK-EA", "POSIX-OFD-LOCK",
92               "POSIX-STREAM-DELETE", "WINDOWS-BAD-SYMLINK" ]
93
94 for t in posix_tests:
95     plantestsuite("samba3.smbtorture_s3.plain(nt4_dc).%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"])
96     plantestsuite("samba3.smbtorture_s3.crypt(nt4_dc).%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"])
97     plantestsuite("samba3.smbtorture_s3.plain(ad_dc_ntvfs).%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"])
98
99 env = "nt4_dc:local"
100 t = "CLEANUP3"
101 plantestsuite("samba3.smbtorture_s3.plain(%s).%s" % (env, t), env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', binpath('smbtorture3'), "", "-l $LOCAL_PATH"])
102
103 local_tests = [
104     "LOCAL-SUBSTITUTE",
105     "LOCAL-GENCACHE",
106     "LOCAL-TALLOC-DICT",
107     "LOCAL-BASE64",
108     "LOCAL-RBTREE",
109     "LOCAL-MEMCACHE",
110     "LOCAL-STREAM-NAME",
111     "LOCAL-string_to_sid",
112     "LOCAL-sid_to_string",
113     "LOCAL-binary_to_sid",
114     "LOCAL-DBTRANS",
115     "LOCAL-TEVENT-SELECT",
116     "LOCAL-CONVERT-STRING",
117     "LOCAL-CONV-AUTH-INFO",
118     "LOCAL-IDMAP-TDB-COMMON",
119     "LOCAL-MESSAGING-READ1",
120     "LOCAL-MESSAGING-READ2",
121     "LOCAL-MESSAGING-READ3",
122     "LOCAL-MESSAGING-READ4",
123     "LOCAL-MESSAGING-FDPASS1",
124     "LOCAL-MESSAGING-FDPASS2",
125     "LOCAL-MESSAGING-FDPASS2a",
126     "LOCAL-MESSAGING-FDPASS2b",
127     "LOCAL-PTHREADPOOL-TEVENT",
128     "LOCAL-CANONICALIZE-PATH",
129     "LOCAL-hex_encode_buf",
130     "LOCAL-remove_duplicate_addrs2"]
131
132 for t in local_tests:
133     plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
134
135 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
136 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
137 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
138 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
139
140 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"]:
141     env = "nt4_dc"
142     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])
143
144 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc", "ad_dc_ntvfs", "s4member", "fl2000dc"]:
145     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])
146     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])
147
148 for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", ""]:
149     for env in ["nt4_member", "ad_member"]:
150         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])
151         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])
152
153 env="nt4_dc"
154 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])
155
156 for env in ["nt4_member", "ad_member"]:
157     plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
158
159 env = "ad_member"
160 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
161 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
162 t = "WBCLIENT-MULTI-PING"
163 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
164 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
165
166 plantestsuite("samba3.ntlm_auth.krb5 with old ccache(ktest:local)", "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_krb5.sh"), valgrindify(python), samba3srcdir, ntlm_auth3, '$PREFIX/ktest/krb5_ccache-2', '$SERVER', configuration])
167
168 plantestsuite("samba3.ntlm_auth.krb5(ktest:local)", "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_krb5.sh"), valgrindify(python), samba3srcdir, ntlm_auth3, '$PREFIX/ktest/krb5_ccache-3', '$SERVER', configuration])
169
170
171 for env in ["maptoguest", "simpleserver"]:
172     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"])
173
174 env = "maptoguest"
175 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"])
176 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])
177
178 # plain
179 for env in ["nt4_dc"]:
180     plantestsuite("samba3.blackbox.smbclient_s3.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])
181
182 for env in ["nt4_member", "ad_member"]:
183     plantestsuite("samba3.blackbox.smbclient_s3.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])
184
185 for env in ["nt4_dc"]:
186     plantestsuite("samba3.blackbox.smbclient_s3.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, "--signing=required"])
187
188 for env in ["nt4_member", "ad_member"]:
189     plantestsuite("samba3.blackbox.smbclient_s3.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, "--signing=required"])
190
191 for env in ["nt4_dc"]:
192     # encrypted
193     plantestsuite("samba3.blackbox.smbclient_s3.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, "-e"])
194
195 for env in ["fileserver"]:
196     plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
197     plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
198     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])
199     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])
200     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])
201     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'])
202     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'])
203     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])
204     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])
205     plantestsuite("samba3.blackbox.netshareenum (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
206     plantestsuite("samba3.blackbox.acl_xattr (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls])
207     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])
208     plantestsuite("samba3.blackbox.inherit_owner.default(%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, 'tmp', '0', '0', '-m', 'NT1'])
209     plantestsuite("samba3.blackbox.inherit_owner.full (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, 'inherit_owner', '1', '1', '-m', 'NT1'])
210     plantestsuite("samba3.blackbox.inherit_owner.unix (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, 'inherit_owner_u', '0', '1', '-m', 'NT1'])
211
212     #
213     # tar command tests
214     #
215
216     # find config.h
217     try:
218         config_h = os.environ["CONFIG_H"]
219     except KeyError:
220         samba4bindir = bindir()
221         config_h = os.path.join(samba4bindir, "default/include/config.h")
222
223     # see if libarchive is supported
224     f = open(config_h, 'r')
225     try:
226         have_libarchive = ("HAVE_LIBARCHIVE 1" in f.read())
227     finally:
228         f.close()
229
230     # tar command enabled only if built with libarchive
231     if have_libarchive:
232         # Test smbclient/tarmode
233         plantestsuite("samba3.blackbox.smbclient_tarmode (%s)" % env, env,
234                       [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
235                        '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
236                        '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
237
238         # Test suite for new smbclient/tar with libarchive (GSoC 13)
239         plantestsuite("samba3.blackbox.smbclient_tar (%s)" % env, env,
240                       [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
241                        '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
242                        '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH',
243                        '-d', '$PREFIX', '-b', smbclient3,
244                        '--subunit', '--', configuration])
245
246 #TODO encrypted against member, with member creds, and with DC creds
247 plantestsuite("samba3.blackbox.net.misc", "nt4_dc:local",
248               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
249                scriptdir, "$SMB_CONF_PATH", net, configuration])
250 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
251               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
252                scriptdir, "$SMB_CONF_PATH", net, configuration])
253 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
254               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
255                scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
256 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
257               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
258                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
259
260 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
261               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
262                scriptdir, "$SMB_CONF_PATH", net, configuration])
263 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
264               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
265                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
266
267 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
268               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
269                scriptdir, "$SMB_CONF_PATH", net, configuration])
270 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
271               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
272                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
273
274
275 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
276               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
277                "$LOCAL_PATH"])
278
279 plantestsuite(
280     "samba3.pthreadpool", "nt4_dc",
281     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
282
283 plantestsuite("samba3.async_req", "nt4_dc",
284               [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
285
286 #smbtorture4 tests
287
288 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
289         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
290         "base.disconnect", "base.fdpass", "base.lock",
291         "base.mangle", "base.negnowait", "base.ntdeny1",
292         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
293         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
294         "base.xcopy", "base.samba3error"]
295
296 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
297        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
298        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
299        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
300        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
301        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
302        "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
303        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
304        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
305
306 smb2 = smbtorture4_testsuites("smb2.")
307
308 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
309        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
310        "rpc.samba3.getaliasmembership-0",
311        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
312        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
313        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
314        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
315        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
316        "rpc.spoolss.driver",
317        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
318        "rpc.lsa.privileges", "rpc.lsa.secrets",
319        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
320        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
321        "rpc.samr.priv", "rpc.samr.passwords.validate",
322        "rpc.netlogon.admin",
323        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind"]
324
325 local = ["local.nss"]
326
327 idmap = ["idmap.rfc2307", "idmap.alloc"]
328
329 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
330
331 unix = ["unix.info2", "unix.whoami"]
332
333 nbt = ["nbt.dgram" ]
334
335 libsmbclient = ["libsmbclient"]
336
337 vfs = ["vfs.fruit", "vfs.acl_xattr", "vfs.fruit_netatalk"]
338
339 tests= base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
340
341 for t in tests:
342     if t == "base.delaywrite":
343         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
344     if t == "base.createx_access":
345         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
346     elif t == "rap.sam":
347         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
348         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
349     elif t == "winbind.pac":
350         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
351     elif t == "unix.whoami":
352         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
353         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
354         for env in ["nt4_dc", "nt4_member"]:
355             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
356             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
357         for env in ["ad_dc", "ad_member"]:
358             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
359             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
360             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
361             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
362     elif t == "raw.samba3posixtimedlock":
363         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
364         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
365     elif t == "raw.chkpath":
366         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
367         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
368     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t ==  "raw.samba3closeerr":
369         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
370         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
371         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
372     elif t == "raw.session" or t == "smb2.session":
373         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
374         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
375         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
376         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
377     elif t == "rpc.lsa":
378         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
379         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
380         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
381         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
382     elif t == "rpc.samr.passwords.validate":
383         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
384         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
385     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay":
386         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
387         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
388     elif t == "base.rw1":
389         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
390         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
391         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
392         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
393     elif t == "idmap.rfc2307":
394         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rfc2307.sh"), '$DOMAIN', 'Administrator', '2000000', 'Guest', '2000001', '"Domain Users"', '2000002', 'DnsAdmins', '2000003', 'ou=idmap,dc=samba,dc=example,dc=com', '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
395     elif t == "idmap.alloc":
396         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
397     elif t == "raw.acls":
398         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
399         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple')
400         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special')
401         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
402     elif t == "smb2.ioctl":
403         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
404         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
405         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
406     elif t == "smb2.lock":
407         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
408         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
409         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
410     elif t == "raw.read":
411         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
412         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
413         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
414     elif t == "raw.search":
415         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
416 # test the dirsort module.
417         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
418         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
419     elif t == "vfs.fruit":
420         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
421         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_metadata_stream -U$USERNAME%$PASSWORD')
422     elif t == "vfs.fruit_netatalk":
423         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
424     elif t == "rpc.schannel_anon_setpw":
425         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
426         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
427         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
428     elif t == "local.nss":
429         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
430             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
431     elif t == "smb2.change_notify_disabled":
432         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
433     elif t == "smb2.notify":
434         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
435         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD --signing=required')
436     elif t == "smb2.dosmode":
437         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
438     elif t == "vfs.acl_xattr":
439         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
440     else:
441         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
442         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
443
444
445 test = 'rpc.lsa.lookupsids'
446 auth_options = ["", "ntlm", "spnego", "spnego,ntlm" ]
447 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
448 endianness_options = ["", ",bigendian"]
449 for s in signseal_options:
450     for e in endianness_options:
451         for a in auth_options:
452             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
453             options = binding_string + " -U$USERNAME%$PASSWORD"
454             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
455             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"),
456                                                              "none", options, configuration])
457
458     # We should try more combinations in future, but this is all
459     # the pre-calculated credentials cache supports at the moment
460     #
461     # As the ktest env requires SMB3_00 we need to use "smb2" until
462     # dcerpc client code in smbtorture support autonegotiation
463     # of any smb dialect.
464     e = ""
465     a = "smb2"
466     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
467     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
468     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
469
470     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
471     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
472
473     auth_options2 = ["krb5", "spnego,krb5"]
474     for a in auth_options2:
475         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
476
477         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"),
478                                                                                                                               "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
479
480 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
481                                                                        "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
482 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
483               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
484                configuration, os.path.join(bindir(), "sharesec"), "tmp"])
485
486 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
487               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
488                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
489                configuration])
490 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
491               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
492                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
493                configuration])
494
495 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
496               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
497                "$USERNAME", "$PASSWORD", "$SERVER",
498                os.path.join(bindir(), "rpcclient"), "tmp"])
499
500 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
501               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
502                "$USERNAME", "$PASSWORD", "$SERVER",
503                os.path.join(bindir(), "rpcclient")])
504
505 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
506               [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
507                "$USERNAME", "$PASSWORD", "$SERVER",
508                smbclient3])
509
510 options_list = ["", "-e"]
511 for options in options_list:
512     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
513                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
514                    "$PREFIX/ktest/krb5_ccache-2",
515                    smbclient3, "$SERVER", options, configuration])
516
517     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
518                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
519                    "$PREFIX/ktest/krb5_ccache-2",
520                    smbclient3, "$SERVER", options, configuration])
521
522     plantestsuite("samba3.blackbox.smbclient_large_file %s" % options, "ktest:local",
523                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
524                    "$PREFIX/ktest/krb5_ccache-3",
525                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
526
527     plantestsuite("samba3.blackbox.smbclient_posix_large %s krb5" % options, "ktest:local",
528                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
529                    "$PREFIX/ktest/krb5_ccache-3",
530                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
531
532     plantestsuite("samba3.blackbox.smbclient_posix_large %s NTLM" % options, "nt4_dc:local",
533                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
534                    "none",
535                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
536
537 for alias in ["foo", "bar"]:
538     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
539                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
540                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
541
542 for e in endianness_options:
543     for a in auth_options:
544         for s in signseal_options:
545             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
546             options = binding_string + " -U$USERNAME%$PASSWORD"
547             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
548
549 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
550 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP[/pipe/FssagentRpc] -U$USERNAME%$PASSWORD', 'over ncacn_np')