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