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