PEP8: fix E401: multiple imports on one line
[kamenim/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
22 import sys
23 sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest")))
24 import selftesthelpers
25 from selftesthelpers import *
26 smbtorture4_options.extend([
27     '--option=torture:sharedelay=100000',
28    '--option=torture:writetimeupdatedelay=500000',
29 ])
30
31
32 def plansmbtorture4testsuite(name, env, options, description=''):
33     if description == '':
34         modname = "samba3.%s" % (name, )
35     else:
36         modname = "samba3.%s %s" % (name, description)
37
38     selftesthelpers.plansmbtorture4testsuite(
39         name, env, options, target='samba3', modname=modname)
40
41
42 # find config.h
43 try:
44     config_h = os.environ["CONFIG_H"]
45 except KeyError:
46     samba4bindir = bindir()
47     config_h = os.path.join(samba4bindir, "default/include/config.h")
48
49 # check available features
50 config_hash = dict()
51 f = open(config_h, 'r')
52 try:
53     lines = f.readlines()
54     config_hash = dict((x[0], ' '.join(x[1:]))
55                        for x in map(lambda line: line.strip().split(' ')[1:],
56                                     filter(lambda line: (line[0:7] == '#define') and (len(line.split(' ')) > 2), lines)))
57 finally:
58     f.close()
59
60 have_linux_kernel_oplocks = ("HAVE_KERNEL_OPLOCKS_LINUX" in config_hash)
61 have_inotify = ("HAVE_INOTIFY" in config_hash)
62 have_ldwrap = ("HAVE_LDWRAP" in config_hash)
63 with_pthreadpool = ("WITH_PTHREADPOOL" in config_hash)
64
65
66 plantestsuite("samba3.blackbox.success", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
67 plantestsuite("samba3.blackbox.failure", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
68
69 plantestsuite("samba3.local_s3", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
70
71 plantestsuite("samba3.blackbox.registry.upgrade", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool])
72
73 tests = ["FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7", "LOCK9",
74          "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE",
75          "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR",
76          "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "LARGE_READX", "RW-SIGNING",
77          "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "WILDDELETE", "PROPERTIES", "W2K",
78          "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2", "OWNER-RIGHTS",
79          "CHAIN3", "PIDHIGH", "CLI_SPLICE",
80          "UID-REGRESSION-TEST", "SHORTNAME-TEST",
81          "CASE-INSENSITIVE-CREATE", "SMB2-BASIC", "NTTRANS-FSCTL", "SMB2-NEGPROT",
82          "SMB2-SESSION-REAUTH", "SMB2-SESSION-RECONNECT", "SMB2-FTRUNCATE",
83          "SMB2-ANONYMOUS", "SMB2-DIR-FSYNC",
84          "CLEANUP1",
85          "CLEANUP2",
86          "CLEANUP4",
87          "BAD-NBT-SESSION"]
88
89 for t in tests:
90     plantestsuite("samba3.smbtorture_s3.plain(fileserver).%s" % t, "fileserver", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
91     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"])
92     if t == "TORTURE":
93         # this is a negative test to verify that the server rejects
94         # access without encryption
95         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"])
96     if t == "CLI_SPLICE":
97         # We must test this against the SMB1 fallback.
98         plantestsuite("samba3.smbtorture_s3.plain(fileserver).%s" % t, "fileserver", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH", "-mNT1"])
99     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"])
100
101 t = "TLDAP"
102 plantestsuite("samba3.smbtorture_s3.plain.%s(ad_dc)" % t, "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER/tmp', '$DC_USERNAME', '$DC_PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
103
104 #
105 # RENAME-ACCESS needs to run against a special share - acl_xattr_ign_sysacl_windows
106 #
107 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"])
108 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"])
109 # non-crypt only
110
111 tests = ["OPLOCK-CANCEL"]
112 for t in tests:
113     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"])
114
115 env = "nt4_dc"
116 tests = ["MANGLE-ILLEGAL"]
117 for t in tests:
118     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"])
119
120 tests = ["RW1", "RW2", "RW3", "SMB2-BASIC"]
121 for t in tests:
122     plantestsuite("samba3.smbtorture_s3.vfs_aio_pthread(simpleserver).%s" % t, "simpleserver", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/vfs_aio_pthread', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
123     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"])
124
125 shares = [
126     "vfs_aio_pthread_async_dosmode_default1",
127     "vfs_aio_pthread_async_dosmode_default2",
128     "vfs_aio_pthread_async_dosmode_force_sync1",
129     "vfs_aio_pthread_async_dosmode_force_sync2"
130 ]
131 for s in shares:
132     plantestsuite("samba3.smbtorture_s3.%s(simpleserver).SMB2-BASIC" % s, "simpleserver", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), 'SMB2-BASIC', '//$SERVER_IP/' + s, '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
133     t = "smb2.compound_find"
134     plansmbtorture4testsuite(t, "simpleserver", "//%s/%s %s" % ('$SERVER_IP', s, ' -U$USERNAME%$PASSWORD'), description=s)
135
136 posix_tests = ["POSIX", "POSIX-APPEND", "POSIX-SYMLINK-ACL", "POSIX-SYMLINK-EA", "POSIX-OFD-LOCK",
137                "POSIX-STREAM-DELETE", "WINDOWS-BAD-SYMLINK"]
138
139 for t in posix_tests:
140     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"])
141     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"])
142     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"])
143
144 env = "nt4_dc:local"
145 t = "CLEANUP3"
146 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"])
147
148 local_tests = [
149     "LOCAL-SUBSTITUTE",
150     "LOCAL-GENCACHE",
151     "LOCAL-BASE64",
152     "LOCAL-RBTREE",
153     "LOCAL-MEMCACHE",
154     "LOCAL-STREAM-NAME",
155     "LOCAL-string_to_sid",
156     "LOCAL-sid_to_string",
157     "LOCAL-binary_to_sid",
158     "LOCAL-DBTRANS",
159     "LOCAL-TEVENT-POLL",
160     "LOCAL-CONVERT-STRING",
161     "LOCAL-CONV-AUTH-INFO",
162     "LOCAL-IDMAP-TDB-COMMON",
163     "LOCAL-MESSAGING-READ1",
164     "LOCAL-MESSAGING-READ2",
165     "LOCAL-MESSAGING-READ3",
166     "LOCAL-MESSAGING-READ4",
167     "LOCAL-MESSAGING-FDPASS1",
168     "LOCAL-MESSAGING-FDPASS2",
169     "LOCAL-MESSAGING-FDPASS2a",
170     "LOCAL-MESSAGING-FDPASS2b",
171     "LOCAL-MESSAGING-SEND-ALL",
172     "LOCAL-PTHREADPOOL-TEVENT",
173     "LOCAL-CANONICALIZE-PATH",
174     "LOCAL-DBWRAP-WATCH1",
175     "LOCAL-DBWRAP-WATCH2",
176     "LOCAL-DBWRAP-DO-LOCKED1",
177     "LOCAL-G-LOCK1",
178     "LOCAL-G-LOCK2",
179     "LOCAL-G-LOCK3",
180     "LOCAL-G-LOCK4",
181     "LOCAL-G-LOCK5",
182     "LOCAL-G-LOCK6",
183     "LOCAL-NAMEMAP-CACHE1",
184     "LOCAL-hex_encode_buf",
185     "LOCAL-remove_duplicate_addrs2"]
186
187 for t in local_tests:
188     plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
189
190 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
191 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
192 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
193 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
194
195 plantestsuite("samba3.blackbox.smbclient_basic.NT1", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mNT1"])
196 plantestsuite("samba3.blackbox.smbclient_basic.SMB2_02", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mSMB2_02"])
197 plantestsuite("samba3.blackbox.smbclient_basic.SMB2_10", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mSMB2_10"])
198 plantestsuite("samba3.blackbox.smbclient_basic.SMB3_02", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mSMB3_02"])
199 plantestsuite("samba3.blackbox.smbclient_basic.SMB3_11", "nt4_dc_schannel", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, "-mSMB3_11"])
200
201 plantestsuite("samba3.blackbox.smbclient_basic", "ad_member", [os.path.join(samba3srcdir, "script/tests/test_smbclient_basic.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration])
202 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"]:
203     env = "nt4_dc"
204     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])
205
206 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc", "ad_dc_ntvfs", "s4member", "fl2000dc"]:
207     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])
208     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])
209
210 for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no -mNT1", ""]:
211     for env in ["nt4_member", "ad_member"]:
212         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])
213         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])
214
215 env = "ad_dc"
216 plantestsuite("samba3.blackbox.smbspool", env, [os.path.join(samba3srcdir, "script/tests/test_smbspool.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', env])
217
218 for env in ["ad_member:local", "nt4_dc:local"]:
219     plantestsuite("samba3.blackbox.smbpasswd", env, [os.path.join(samba3srcdir, "script/tests/test_smbpasswd.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD'])
220
221 env = "nt4_dc"
222 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])
223
224 for env in ["nt4_member", "ad_member"]:
225     plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
226
227 env = "ad_member"
228 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
229 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
230 plantestsuite("samba3.wbinfo_name_lookup", env,
231               [os.path.join(srcdir(),
232                              "nsswitch/tests/test_wbinfo_name_lookup.sh"),
233                 '$DOMAIN', '$REALM', '$DC_USERNAME'])
234
235 env = "ad_member:local"
236 plantestsuite("samba3.wbinfo_user_info", env,
237               [os.path.join(srcdir(),
238                              "nsswitch/tests/test_wbinfo_user_info.sh"),
239                 '$DOMAIN', '$REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe'])
240
241 env = "fl2008r2dc:local"
242 plantestsuite("samba3.wbinfo_user_info", env,
243               [os.path.join(srcdir(),
244                              "nsswitch/tests/test_wbinfo_user_info.sh"),
245                 '$TRUST_DOMAIN', '$TRUST_REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe'])
246
247 env = "ad_member"
248 t = "WBCLIENT-MULTI-PING"
249 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
250 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
251
252 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])
253
254 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])
255
256
257 for env in ["maptoguest", "simpleserver"]:
258     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"])
259
260 env = "maptoguest"
261 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"])
262 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])
263
264 # plain
265 for env in ["nt4_dc"]:
266     plantestsuite("samba3.blackbox.smbclient_s3.NT1.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, "NT1"])
267     plantestsuite("samba3.blackbox.smbclient_s3.SMB3.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, "SMB3"])
268
269 for env in ["nt4_member", "ad_member"]:
270     plantestsuite("samba3.blackbox.smbclient_s3.NT1.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, "NT1"])
271     plantestsuite("samba3.blackbox.smbclient_s3.SMB3.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, "SMB3"])
272
273 for env in ["nt4_dc"]:
274     plantestsuite("samba3.blackbox.smbclient_s3.NT1.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, "NT1", "--signing=required"])
275     plantestsuite("samba3.blackbox.smbclient_s3.SMB3.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, "SMB3", "--signing=required"])
276
277 for env in ["nt4_member", "ad_member"]:
278     plantestsuite("samba3.blackbox.smbclient_s3.NT1.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, "NT1", "--signing=required"])
279     plantestsuite("samba3.blackbox.smbclient_s3.SMB3.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, "SMB3", "--signing=required"])
280
281 for env in ["nt4_dc"]:
282     # encrypted
283     plantestsuite("samba3.blackbox.smbclient_s3.NT1.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, "NT1", "-e"])
284     plantestsuite("samba3.blackbox.smbclient_s3.SMB3.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, "SMB3", "-e"])
285
286 for env in ["fileserver"]:
287     plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
288     plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
289     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])
290     plantestsuite("samba3.blackbox.smbcquotas (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbcquota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbcquotas])
291     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])
292     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])
293     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'])
294     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'])
295     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])
296     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])
297     plantestsuite("samba3.blackbox.netshareenum (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
298     plantestsuite("samba3.blackbox.acl_xattr.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mNT1'])
299     plantestsuite("samba3.blackbox.acl_xattr.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mSMB3'])
300     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])
301     plantestsuite("samba3.blackbox.inherit_owner.default.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'tmp', '0', '0', '-m', 'NT1'])
302     plantestsuite("samba3.blackbox.inherit_owner.default.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'tmp', '0', '0', '-m', 'SMB3'])
303     plantestsuite("samba3.blackbox.inherit_owner.full.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'inherit_owner', '1', '1', '-m', 'NT1'])
304     plantestsuite("samba3.blackbox.inherit_owner.full.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'inherit_owner', '1', '1', '-m', 'SMB3'])
305     plantestsuite("samba3.blackbox.inherit_owner.unix.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'inherit_owner_u', '0', '1', '-m', 'NT1'])
306     plantestsuite("samba3.blackbox.inherit_owner.unix.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_inherit_owner.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'inherit_owner_u', '0', '1', '-m', 'SMB3'])
307     plantestsuite("samba3.blackbox.large_acl.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'NT1'])
308     plantestsuite("samba3.blackbox.large_acl.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'SMB3'])
309     plantestsuite("samba3.blackbox.give_owner", env, [os.path.join(samba3srcdir, "script/tests/test_give_owner.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, net, 'tmp'])
310
311     #
312     # tar command tests
313     #
314
315     # Test smbclient/tarmode
316     plantestsuite("samba3.blackbox.smbclient_tarmode.NT1", env,
317                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
318                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
319                    '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mNT1"])
320     plantestsuite("samba3.blackbox.smbclient_tarmode.SMB3", env,
321                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
322                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
323                    '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mSMB3"])
324
325     # Test suite for new smbclient/tar with libarchive (GSoC 13)
326     plantestsuite("samba3.blackbox.smbclient_tar.NT1", env,
327                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
328                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
329                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
330                    '-d', '$PREFIX', '-b', smbclient3,
331                    '--subunit', '--', configuration, '-mNT1'])
332     plantestsuite("samba3.blackbox.smbclient_tar.SMB3", env,
333                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
334                    '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
335                    '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
336                    '-d', '$PREFIX', '-b', smbclient3,
337                    '--subunit', '--', configuration, '-mSMB3'])
338
339 plantestsuite("samba3.blackbox.net_usershare", "fileserver:local", [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])
340
341 # TODO encrypted against member, with member creds, and with DC creds
342 plantestsuite("samba3.blackbox.net.misc", "nt4_dc:local",
343               [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
344                scriptdir, "$SMB_CONF_PATH", net, configuration])
345 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
346               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
347                scriptdir, "$SMB_CONF_PATH", net, configuration])
348 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
349               [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
350                scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
351 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
352               [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
353                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
354
355 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
356               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
357                scriptdir, "$SMB_CONF_PATH", net, configuration])
358 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
359               [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
360                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
361
362 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
363               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
364                scriptdir, "$SMB_CONF_PATH", net, configuration])
365 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
366               [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
367                scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
368
369
370 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
371               [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
372                "$LOCAL_PATH"])
373
374 plantestsuite(
375     "samba3.pthreadpool", "none",
376     [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
377
378 if with_pthreadpool and have_ldwrap:
379     plantestsuite("samba3.pthreadpool_cmocka", "none",
380                   [os.path.join(bindir(), "pthreadpooltest_cmocka")])
381
382 plantestsuite("samba3.async_req", "nt4_dc",
383               [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
384
385 # smbtorture4 tests
386
387 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
388         "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
389         "base.disconnect", "base.fdpass", "base.lock",
390         "base.mangle", "base.negnowait", "base.ntdeny1",
391         "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
392         "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
393         "base.xcopy", "base.samba3error"]
394
395 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
396        "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
397        "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
398        "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
399        "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
400        "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
401        "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
402        "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
403        "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
404
405 smb2 = smbtorture4_testsuites("smb2.")
406
407 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
408        "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
409        "rpc.samba3.getaliasmembership-0",
410        "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
411        "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
412        "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
413        "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
414        "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
415        "rpc.spoolss.driver",
416        "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
417        "rpc.lsa.privileges", "rpc.lsa.secrets",
418        "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
419        "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
420        "rpc.samr.priv", "rpc.samr.passwords.validate",
421        "rpc.netlogon.admin",
422        "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind"]
423
424 local = ["local.nss"]
425
426 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid", "idmap.ad"]
427
428 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
429
430 unix = ["unix.info2", "unix.whoami"]
431
432 nbt = ["nbt.dgram"]
433
434 libsmbclient = ["libsmbclient"]
435
436 vfs = ["vfs.fruit", "vfs.acl_xattr", "vfs.fruit_netatalk", "vfs.fruit_file_id", "vfs.fruit_timemachine"]
437
438 tests = base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
439
440 for t in tests:
441     if t == "base.delaywrite" or t == "base.deny1" or t == "base.deny2":
442         plansmbtorture4testsuite(t, "fileserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
443     elif t == "base.createx_access":
444         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
445     elif t == "rap.sam":
446         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
447         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
448     elif t == "winbind.pac":
449         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
450     elif t == "unix.whoami":
451         plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
452         plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
453         for env in ["nt4_dc", "nt4_member"]:
454             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
455             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
456         for env in ["ad_dc", "ad_member"]:
457             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
458             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
459             plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
460             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
461     elif t == "raw.samba3posixtimedlock":
462         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
463         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
464     elif t == "raw.chkpath":
465         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
466         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
467     elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr":
468         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
469         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
470         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
471     elif t == "raw.session" or t == "smb2.session":
472         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
473         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
474         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
475         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
476     elif t == "rpc.lsa":
477         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
478         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
479         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
480         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
481     elif t == "rpc.samr.passwords.validate":
482         plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
483         plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
484     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay":
485         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
486         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
487     elif t == "base.rw1":
488         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
489         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
490         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
491         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
492     elif t == "idmap.rfc2307":
493         plantestsuite(t, "ad_member_rfc2307",
494                       [os.path.join(samba3srcdir,
495                                     "../nsswitch/tests/test_idmap_rfc2307.sh"),
496                        '$DOMAIN',
497                        'Administrator', '2000000',
498                        'Guest', '2000001',
499                        '"Domain Users"', '2000002',
500                        'DnsAdmins', '2000003',
501                        '2000005', '35',
502                        'ou=idmap,dc=samba,dc=example,dc=com',
503                        '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
504     elif t == "idmap.alloc":
505         plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
506     elif t == "idmap.rid":
507         plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
508     elif t == "idmap.ad":
509         plantestsuite(t, "ad_member_idmap_ad", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_ad.sh"), '$DOMAIN', '$DC_SERVER', '$DC_PASSWORD'])
510     elif t == "raw.acls":
511         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
512         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-40')
513         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special-40')
514         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-41')
515         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-40')
516         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-41')
517         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
518     elif t == "smb2.ioctl":
519         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
520         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
521         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
522     elif t == "smb2.lock":
523         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
524         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
525     elif t == "raw.lock" or t == "base.lock":
526         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
527     elif t == "raw.read":
528         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
529         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
530         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
531     elif t == "raw.search":
532         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
533 # test the dirsort module.
534         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
535         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
536     elif t == "vfs.fruit":
537         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')
538         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_metadata_stream -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share --option=torture:share2=vfs_wo_fruit', 'metadata_stream')
539         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_stream_depot -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share --option=torture:share2=vfs_wo_fruit_stream_depot', 'streams_depot')
540     elif t == "vfs.fruit_netatalk":
541         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
542     elif t == "vfs.fruit_timemachine":
543         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_timemachine -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
544     elif t == "vfs.fruit_file_id":
545         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD')
546     elif t == "rpc.schannel_anon_setpw":
547         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
548         plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
549         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
550     elif t == "local.nss":
551         for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
552             plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
553     elif t == "smb2.change_notify_disabled":
554         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
555     elif t == "smb2.notify" or t == "raw.notify" or t == "smb2.oplock" or t == "raw.oplock":
556         # These tests are a little slower so don't duplicate them with ad_dc
557         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
558     elif t == "smb2.dosmode":
559         plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
560     elif t == "smb2.kernel-oplocks":
561         if have_linux_kernel_oplocks:
562             plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
563     elif t == "smb2.notify-inotify":
564         if have_inotify:
565             plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
566     elif t == "vfs.acl_xattr":
567         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
568     elif t == "smb2.compound_find":
569         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
570         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
571         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
572     elif t == "rpc.samr.users.privileges":
573         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:nt4_dc=true')
574         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
575     elif t == "smb2.compound":
576         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
577         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
578         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
579     elif t == "rpc.samba3.netlogon" or t == "rpc.samba3.sessionkey":
580         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
581         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
582     elif t == "libsmbclient":
583         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%%$PASSWORD '
584                                     '--option=torture:smburl=smb://$USERNAME:$PASSWORD@$SERVER/tmp '
585                                     '--option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
586         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%%$PASSWORD '
587                                     '--option=torture:smburl=smb://$USERNAME:$PASSWORD@$SERVER/tmp '
588                                     '--option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
589     elif t == "smb2.streams":
590         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
591         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
592         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/streams_xattr -U$USERNAME%$PASSWORD', 'streams_xattr')
593     else:
594         plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
595         plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
596
597
598 test = 'rpc.lsa.lookupsids'
599 auth_options = ["", "ntlm", "spnego", "spnego,ntlm", "spnego,smb1", "spnego,smb2"]
600 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
601 endianness_options = ["", ",bigendian"]
602 for s in signseal_options:
603     for e in endianness_options:
604         for a in auth_options:
605             binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
606             options = binding_string + " -U$USERNAME%$PASSWORD"
607             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
608             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"),
609                                                                                                                  "none", options, configuration])
610
611     # We should try more combinations in future, but this is all
612     # the pre-calculated credentials cache supports at the moment
613     #
614     # As the ktest env requires SMB3_00 we need to use "smb2" until
615     # dcerpc client code in smbtorture support autonegotiation
616     # of any smb dialect.
617     e = ""
618     a = "smb2"
619     binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
620     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
621     plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
622
623     options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
624     plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
625
626     auth_options2 = ["krb5", "spnego,krb5"]
627     for a in auth_options2:
628         binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
629
630         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"),
631                                                                                                             "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
632
633 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
634                                                                         "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
635 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
636               [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
637                configuration, os.path.join(bindir(), "sharesec"), "tmp"])
638
639 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
640               [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
641                 smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
642                 configuration, '$LOCAL_PATH', '$LOCK_DIR'])
643
644 plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
645               [os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh")])
646
647 plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
648               [os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
649                 '$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
650
651 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
652               [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
653                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
654                configuration])
655 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
656               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
657                "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
658                configuration])
659 plantestsuite("samba3.blackbox.net_rpc_oldjoin", "nt4_dc:local",
660               [os.path.join(samba3srcdir, "script/tests/test_net_rpc_oldjoin.sh"),
661                "$SERVER", "$PREFIX/net_rpc_oldjoin",
662                "$SMB_CONF_PATH"])
663
664 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
665               [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
666                "$USERNAME", "$PASSWORD", "$SERVER",
667                os.path.join(bindir(), "rpcclient"), "tmp"])
668
669 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
670               [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
671                "$USERNAME", "$PASSWORD", "$SERVER",
672                os.path.join(bindir(), "rpcclient")])
673
674 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
675               [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
676                "$USERNAME", "$PASSWORD", "$SERVER",
677                smbclient3])
678
679 plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member",
680               [os.path.join(samba3srcdir,
681                             "script/tests/test_rpcclient_netsessenum.sh"),
682                "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD", "$SERVER",
683                os.path.join(bindir(), "rpcclient"), smbtorture3, "tmp"])
684
685 # The ktest environment uses:
686 # server min protocol = SMB3_00
687 # client max protocol = SMB3
688 options_list = ["", "-e"]
689 for options in options_list:
690     plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
691                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
692                    "$PREFIX/ktest/krb5_ccache-2",
693                    smbclient3, "$SERVER", options, configuration])
694
695     plantestsuite("samba3.blackbox.smbclient_krb5 new ccache %s" % options, "ktest:local",
696                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
697                    "$PREFIX/ktest/krb5_ccache-3",
698                    smbclient3, "$SERVER", options, configuration])
699
700     plantestsuite("samba3.blackbox.smbclient_large_file %s krb5" % options, "ktest:local",
701                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
702                    "$PREFIX/ktest/krb5_ccache-3",
703                    smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
704
705 options_list = ["-mNT1", "-mNT1 -e", "-mSMB3", "-mSMB3 -e"]
706 for options in options_list:
707     plantestsuite("samba3.blackbox.smbclient_large_file %s NTLM" % options, "nt4_dc:local",
708                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
709                    "none",
710                    smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
711
712 for alias in ["foo", "bar"]:
713     plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
714                   [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
715                    smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
716
717 for e in endianness_options:
718     for a in auth_options:
719         for s in signseal_options:
720             binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
721             options = binding_string + " -U$USERNAME%$PASSWORD"
722             plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
723
724 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
725 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP[/pipe/FssagentRpc] -U$USERNAME%$PASSWORD', 'over ncacn_np')