selftest: Make sure that LOCAL-DBWRAP-WATCH1 is run in make test
[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-hex_encode_buf",
151     "LOCAL-remove_duplicate_addrs2"]
152
153 for t in local_tests:
154     plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
155
156 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
157 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
158 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
159 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
160
161 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"]:
162     env = "nt4_dc"
163     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])
164
165 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc", "ad_dc_ntvfs", "s4member", "fl2000dc"]:
166     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])
167     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])
168
169 for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", ""]:
170     for env in ["nt4_member", "ad_member"]:
171         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])
172         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])
173
174 env="nt4_dc"
175 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])
176
177 for env in ["nt4_member", "ad_member"]:
178     plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
179
180 env = "ad_member"
181 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
182 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
183 t = "WBCLIENT-MULTI-PING"
184 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
185 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
186
187 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])
188
189 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])
190
191
192 for env in ["maptoguest", "simpleserver"]:
193     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"])
194
195 env = "maptoguest"
196 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"])
197 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])
198
199 # plain
200 for env in ["nt4_dc"]:
201     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])
202
203 for env in ["nt4_member", "ad_member"]:
204     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])
205
206 for env in ["nt4_dc"]:
207     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"])
208
209 for env in ["nt4_member", "ad_member"]:
210     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"])
211
212 for env in ["nt4_dc"]:
213     # encrypted
214     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"])
215
216 for env in ["fileserver"]:
217     plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
218     plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
219     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])
220     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])
221     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])
222     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'])
223     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'])
224     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])
225     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])
226     plantestsuite("samba3.blackbox.netshareenum (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
227     plantestsuite("samba3.blackbox.acl_xattr (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls])
228     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])
229     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'])
230     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'])
231     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'])
232     plantestsuite("samba3.blackbox.large_acl (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls])
233
234     #
235     # tar command tests
236     #
237
238     # tar command enabled only if built with libarchive
239     if have_libarchive:
240         # Test smbclient/tarmode
241         plantestsuite("samba3.blackbox.smbclient_tarmode (%s)" % env, env,
242                       [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
243                        '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
244                        '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
245
246         # Test suite for new smbclient/tar with libarchive (GSoC 13)
247         plantestsuite("samba3.blackbox.smbclient_tar (%s)" % env, env,
248                       [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
249                        '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
250                        '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH',
251                        '-d', '$PREFIX', '-b', smbclient3,
252                        '--subunit', '--', configuration])
253
254 #TODO encrypted against member, with member creds, and with DC creds
255 plantestsuite("samba3.blackbox.net.misc", "nt4_dc:local",
256               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
257                scriptdir, "$SMB_CONF_PATH", net, configuration])
258 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
259               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
260                scriptdir, "$SMB_CONF_PATH", net, configuration])
261 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
262               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
263                scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
264 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
265               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
266                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
267
268 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
269               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
270                scriptdir, "$SMB_CONF_PATH", net, configuration])
271 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
272               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
273                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
274
275 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
276               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
277                scriptdir, "$SMB_CONF_PATH", net, configuration])
278 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
279               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
280                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
281
282
283 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
284               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
285                "$LOCAL_PATH"])
286
287 plantestsuite(
288     "samba3.pthreadpool", "nt4_dc",
289     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
290
291 plantestsuite("samba3.async_req", "nt4_dc",
292               [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
293
294 #smbtorture4 tests
295
296 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
297         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
298         "base.disconnect", "base.fdpass", "base.lock",
299         "base.mangle", "base.negnowait", "base.ntdeny1",
300         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
301         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
302         "base.xcopy", "base.samba3error"]
303
304 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
305        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
306        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
307        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
308        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
309        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
310        "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
311        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
312        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
313
314 smb2 = smbtorture4_testsuites("smb2.")
315
316 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
317        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
318        "rpc.samba3.getaliasmembership-0",
319        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
320        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
321        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
322        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
323        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
324        "rpc.spoolss.driver",
325        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
326        "rpc.lsa.privileges", "rpc.lsa.secrets",
327        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
328        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
329        "rpc.samr.priv", "rpc.samr.passwords.validate",
330        "rpc.netlogon.admin",
331        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind"]
332
333 local = ["local.nss"]
334
335 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid"]
336
337 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
338
339 unix = ["unix.info2", "unix.whoami"]
340
341 nbt = ["nbt.dgram" ]
342
343 libsmbclient = ["libsmbclient"]
344
345 vfs = ["vfs.fruit", "vfs.acl_xattr", "vfs.fruit_netatalk", "vfs.fruit_file_id"]
346
347 tests= base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
348
349 for t in tests:
350     if t == "base.delaywrite":
351         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
352     elif t == "base.createx_access":
353         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
354     elif t == "rap.sam":
355         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
356         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
357     elif t == "winbind.pac":
358         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
359     elif t == "unix.whoami":
360         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
361         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
362         for env in ["nt4_dc", "nt4_member"]:
363             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
364             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
365         for env in ["ad_dc", "ad_member"]:
366             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
367             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
368             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
369             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
370     elif t == "raw.samba3posixtimedlock":
371         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
372         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
373     elif t == "raw.chkpath":
374         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
375         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
376     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t ==  "raw.samba3closeerr":
377         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
378         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
379         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
380     elif t == "raw.session" or t == "smb2.session":
381         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
382         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
383         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
384         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
385     elif t == "rpc.lsa":
386         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
387         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
388         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
389         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
390     elif t == "rpc.samr.passwords.validate":
391         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
392         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
393     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay":
394         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
395         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
396     elif t == "base.rw1":
397         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
398         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
399         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
400         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
401     elif t == "idmap.rfc2307":
402         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'])
403     elif t == "idmap.alloc":
404         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
405     elif t == "idmap.rid":
406         plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
407     elif t == "raw.acls":
408         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
409         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple')
410         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special')
411         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
412     elif t == "smb2.ioctl":
413         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
414         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
415         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
416     elif t == "smb2.lock":
417         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
418         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
419         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
420     elif t == "raw.read":
421         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
422         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
423         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
424     elif t == "raw.search":
425         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
426 # test the dirsort module.
427         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
428         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
429     elif t == "vfs.fruit":
430         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')
431         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_metadata_stream --option=torture:share2=vfs_wo_fruit -U$USERNAME%$PASSWORD', 'metadata_stream')
432         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_stream_depot --option=torture:share2=vfs_wo_fruit_stream_depot -U$USERNAME%$PASSWORD', 'streams_depot')
433     elif t == "vfs.fruit_netatalk":
434         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
435     elif t == "vfs.fruit_file_id":
436         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD')
437     elif t == "rpc.schannel_anon_setpw":
438         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
439         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
440         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
441     elif t == "local.nss":
442         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
443             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
444     elif t == "smb2.change_notify_disabled":
445         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
446     elif t == "smb2.notify":
447         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
448         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD --signing=required')
449     elif t == "smb2.dosmode":
450         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
451     elif t == "smb2.kernel-oplocks":
452         if have_linux_kernel_oplocks:
453             plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD')
454     elif t == "vfs.acl_xattr":
455         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
456     elif t == "smb2.compound_find":
457         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
458         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
459         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
460     else:
461         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
462         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
463
464
465 test = 'rpc.lsa.lookupsids'
466 auth_options = ["", "ntlm", "spnego", "spnego,ntlm" ]
467 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
468 endianness_options = ["", ",bigendian"]
469 for s in signseal_options:
470     for e in endianness_options:
471         for a in auth_options:
472             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
473             options = binding_string + " -U$USERNAME%$PASSWORD"
474             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
475             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"),
476                                                              "none", options, configuration])
477
478     # We should try more combinations in future, but this is all
479     # the pre-calculated credentials cache supports at the moment
480     #
481     # As the ktest env requires SMB3_00 we need to use "smb2" until
482     # dcerpc client code in smbtorture support autonegotiation
483     # of any smb dialect.
484     e = ""
485     a = "smb2"
486     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
487     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
488     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
489
490     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
491     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
492
493     auth_options2 = ["krb5", "spnego,krb5"]
494     for a in auth_options2:
495         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
496
497         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"),
498                                                                                                                               "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
499
500 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
501                                                                        "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
502 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
503               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
504                configuration, os.path.join(bindir(), "sharesec"), "tmp"])
505
506 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
507               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
508                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
509                configuration])
510 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
511               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
512                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
513                configuration])
514
515 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
516               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
517                "$USERNAME", "$PASSWORD", "$SERVER",
518                os.path.join(bindir(), "rpcclient"), "tmp"])
519
520 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
521               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
522                "$USERNAME", "$PASSWORD", "$SERVER",
523                os.path.join(bindir(), "rpcclient")])
524
525 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
526               [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
527                "$USERNAME", "$PASSWORD", "$SERVER",
528                smbclient3])
529
530 options_list = ["", "-e"]
531 for options in options_list:
532     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
533                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
534                    "$PREFIX/ktest/krb5_ccache-2",
535                    smbclient3, "$SERVER", options, configuration])
536
537     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
538                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
539                    "$PREFIX/ktest/krb5_ccache-2",
540                    smbclient3, "$SERVER", options, configuration])
541
542     plantestsuite("samba3.blackbox.smbclient_large_file %s" % options, "ktest:local",
543                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
544                    "$PREFIX/ktest/krb5_ccache-3",
545                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
546
547     plantestsuite("samba3.blackbox.smbclient_posix_large %s krb5" % options, "ktest:local",
548                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
549                    "$PREFIX/ktest/krb5_ccache-3",
550                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
551
552     plantestsuite("samba3.blackbox.smbclient_posix_large %s NTLM" % options, "nt4_dc:local",
553                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"),
554                    "none",
555                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
556
557 for alias in ["foo", "bar"]:
558     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
559                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
560                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
561
562 for e in endianness_options:
563     for a in auth_options:
564         for s in signseal_options:
565             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
566             options = binding_string + " -U$USERNAME%$PASSWORD"
567             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
568
569 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
570 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP[/pipe/FssagentRpc] -U$USERNAME%$PASSWORD', 'over ncacn_np')