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