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