2 # This script generates a list of testsuites that should be run as part of
3 # the Samba 3 test suite.
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".
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.
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
23 sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest")))
24 import selftesthelpers
25 from selftesthelpers import bindir, srcdir, scriptdir, binpath
26 from selftesthelpers import plantestsuite, samba3srcdir
27 from selftesthelpers import smbtorture3, configuration, smbclient3, smbtorture4
28 from selftesthelpers import net, wbinfo, dbwrap_tool, rpcclient, python
29 from selftesthelpers import smbget, smbcacls, smbcquotas, ntlm_auth3
30 from selftesthelpers import valgrindify, smbtorture4_testsuites
31 from selftesthelpers import smbtorture4_options
32 from selftesthelpers import smbcontrol
33 smbtorture4_options.extend([
34 '--option=torture:sharedelay=100000',
35 '--option=torture:writetimeupdatedelay=500000',
39 def plansmbtorture4testsuite(name, env, options, description=''):
41 modname = "samba3.%s" % (name, )
43 modname = "samba3.%s %s" % (name, description)
45 selftesthelpers.plansmbtorture4testsuite(
46 name, env, options, target='samba3', modname=modname)
51 config_h = os.environ["CONFIG_H"]
53 samba4bindir = bindir()
54 config_h = os.path.join(samba4bindir, "default/include/config.h")
56 # check available features
58 f = open(config_h, 'r')
61 config_hash = dict((x[0], ' '.join(x[1:]))
62 for x in map(lambda line: line.strip().split(' ')[1:],
63 filter(lambda line: (line[0:7] == '#define') and (len(line.split(' ')) > 2), lines)))
67 have_linux_kernel_oplocks = ("HAVE_KERNEL_OPLOCKS_LINUX" in config_hash)
68 have_inotify = ("HAVE_INOTIFY" in config_hash)
69 have_ldwrap = ("HAVE_LDWRAP" in config_hash)
70 with_pthreadpool = ("WITH_PTHREADPOOL" in config_hash)
73 plantestsuite("samba3.blackbox.success", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")])
74 plantestsuite("samba3.blackbox.failure", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_failure.sh")])
76 plantestsuite("samba3.local_s3", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_local_s3.sh")])
78 plantestsuite("samba3.blackbox.registry.upgrade", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool])
80 tests = ["FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7", "LOCK9",
81 "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE",
82 "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR",
83 "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "LARGE_READX", "RW-SIGNING",
84 "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "WILDDELETE", "PROPERTIES", "W2K",
85 "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2", "OWNER-RIGHTS",
86 "CHAIN3", "PIDHIGH", "CLI_SPLICE",
87 "UID-REGRESSION-TEST", "SHORTNAME-TEST",
88 "CASE-INSENSITIVE-CREATE", "SMB2-BASIC", "NTTRANS-FSCTL", "SMB2-NEGPROT",
89 "SMB2-SESSION-REAUTH", "SMB2-SESSION-RECONNECT", "SMB2-FTRUNCATE",
90 "SMB2-ANONYMOUS", "SMB2-DIR-FSYNC",
97 plantestsuite("samba3.smbtorture_s3.plain.%s" % t, "fileserver", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
98 plantestsuite("samba3.smbtorture_s3.crypt_client.%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"])
100 # this is a negative test to verify that the server rejects
101 # access without encryption
102 plantestsuite("samba3.smbtorture_s3.crypt_server.%s" % t, "nt4_dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmpenc', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
103 if t == "CLI_SPLICE":
104 # We must test this against the SMB1 fallback.
105 plantestsuite("samba3.smbtorture_s3.plain.%s" % t, "fileserver", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH", "-mNT1"])
106 plantestsuite("samba3.smbtorture_s3.plain.%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"])
109 plantestsuite("samba3.smbtorture_s3.plain.%s" % t, "ad_dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER/tmp', '$DC_USERNAME', '$DC_PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
112 # RENAME-ACCESS needs to run against a special share - acl_xattr_ign_sysacl_windows
114 plantestsuite("samba3.smbtorture_s3.plain.%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"])
115 plantestsuite("samba3.smbtorture_s3.crypt_client.%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"])
118 tests = ["OPLOCK-CANCEL"]
120 plantestsuite("samba3.smbtorture_s3.plain.%s" % t, "nt4_dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
123 tests = ["MANGLE-ILLEGAL"]
125 plantestsuite("samba3.smbtorture_s3.plain.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/mangle_illegal', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"])
127 tests = ["RW1", "RW2", "RW3", "SMB2-BASIC"]
129 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"])
130 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"])
132 plantestsuite("samba3.smbtorture_s3.hidenewfiles(simpleserver)",
134 [os.path.join(samba3srcdir,
135 "script/tests/test_smbtorture_s3.sh"),
136 'hide-new-files-timeout',
137 '//$SERVER_IP/hidenewfiles',
145 "vfs_aio_pthread_async_dosmode_default1",
146 "vfs_aio_pthread_async_dosmode_default2",
147 "vfs_aio_pthread_async_dosmode_force_sync1",
148 "vfs_aio_pthread_async_dosmode_force_sync2"
151 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"])
152 t = "smb2.compound_find"
153 plansmbtorture4testsuite(t, "simpleserver", "//%s/%s %s" % ('$SERVER_IP', s, ' -U$USERNAME%$PASSWORD'), description=s)
155 posix_tests = ["POSIX", "POSIX-APPEND", "POSIX-SYMLINK-ACL", "POSIX-SYMLINK-EA", "POSIX-OFD-LOCK",
156 "POSIX-STREAM-DELETE", "WINDOWS-BAD-SYMLINK"]
158 for t in posix_tests:
159 plantestsuite("samba3.smbtorture_s3.plain.%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"])
160 plantestsuite("samba3.smbtorture_s3.crypt.%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"])
161 plantestsuite("samba3.smbtorture_s3.plain.%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"])
165 plantestsuite("samba3.smbtorture_s3.plain.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', binpath('smbtorture3'), "", "-l $LOCAL_PATH"])
174 "LOCAL-string_to_sid",
175 "LOCAL-sid_to_string",
176 "LOCAL-binary_to_sid",
179 "LOCAL-CONVERT-STRING",
180 "LOCAL-CONV-AUTH-INFO",
181 "LOCAL-IDMAP-TDB-COMMON",
182 "LOCAL-MESSAGING-READ1",
183 "LOCAL-MESSAGING-READ2",
184 "LOCAL-MESSAGING-READ3",
185 "LOCAL-MESSAGING-READ4",
186 "LOCAL-MESSAGING-FDPASS1",
187 "LOCAL-MESSAGING-FDPASS2",
188 "LOCAL-MESSAGING-FDPASS2a",
189 "LOCAL-MESSAGING-FDPASS2b",
190 "LOCAL-MESSAGING-SEND-ALL",
191 "LOCAL-PTHREADPOOL-TEVENT",
192 "LOCAL-CANONICALIZE-PATH",
193 "LOCAL-DBWRAP-WATCH1",
194 "LOCAL-DBWRAP-WATCH2",
195 "LOCAL-DBWRAP-DO-LOCKED1",
202 "LOCAL-NAMEMAP-CACHE1",
203 "LOCAL-hex_encode_buf",
204 "LOCAL-remove_duplicate_addrs2"]
206 for t in local_tests:
207 plantestsuite("samba3.smbtorture_s3.%s" % t, "none", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
209 plantestsuite("samba.vfstest.stream_depot", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/stream-depot/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
210 plantestsuite("samba.vfstest.xattr-tdb-1", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/xattr-tdb-1/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
211 plantestsuite("samba.vfstest.acl", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-acl/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
212 plantestsuite("samba.vfstest.catia", "nt4_dc:local", [os.path.join(samba3srcdir, "script/tests/vfstest-catia/run.sh"), binpath("vfstest"), "$PREFIX", configuration])
214 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"])
215 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"])
216 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"])
217 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"])
218 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"])
220 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])
221 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"]:
223 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])
225 for env in ["nt4_dc", "nt4_member", "ad_member", "ad_dc", "ad_dc_ntvfs", "s4member", "fl2000dc"]:
226 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])
227 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])
229 for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no", "--option=clientusespnego=no --option=clientntlmv2auth=no -mNT1", ""]:
230 for env in ["nt4_member", "ad_member"]:
231 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])
232 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])
235 plantestsuite("samba3.blackbox.smbspool", env, [os.path.join(samba3srcdir, "script/tests/test_smbspool.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', env])
237 for env in ["ad_member:local", "nt4_dc:local"]:
238 plantestsuite("samba3.blackbox.smbpasswd", env, [os.path.join(samba3srcdir, "script/tests/test_smbpasswd.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD'])
241 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])
243 for env in ["nt4_member", "ad_member", "nt4_dc_schannel", "ad_member_rfc2307", "ad_dc", "ktest"]:
244 for options in ["-mSMB2_02", "-mSMB2_10", "-mSMB3_00", "-mSMB3_02", "-mSMB3_11"]:
245 plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s SMB2/3" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration, options])
247 for env in ["nt4_member", "ad_member"]:
248 plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
251 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
252 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
253 plantestsuite("samba3.wbinfo_name_lookup", env,
254 [os.path.join(srcdir(),
255 "nsswitch/tests/test_wbinfo_name_lookup.sh"),
256 '$DOMAIN', '$REALM', '$DC_USERNAME'])
258 env = "ad_member:local"
259 plantestsuite("samba3.wbinfo_user_info", env,
260 [os.path.join(srcdir(),
261 "nsswitch/tests/test_wbinfo_user_info.sh"),
262 '$DOMAIN', '$REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
264 env = "fl2008r2dc:local"
265 plantestsuite("samba3.wbinfo_user_info", env,
266 [os.path.join(srcdir(),
267 "nsswitch/tests/test_wbinfo_user_info.sh"),
268 '$TRUST_DOMAIN', '$TRUST_REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
270 env = "nt4_member:local"
271 plantestsuite("samba3.wbinfo_sids_to_xids", env,
272 [os.path.join(srcdir(),
273 "nsswitch/tests/test_wbinfo_sids_to_xids.sh")])
276 t = "WBCLIENT-MULTI-PING"
277 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
278 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
280 for env in ["maptoguest", "simpleserver"]:
281 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"])
284 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"])
285 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])
288 for env in ["nt4_dc"]:
289 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"])
291 for env in ["nt4_member", "ad_member"]:
292 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"])
294 for env in ["nt4_dc"]:
295 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"])
297 for env in ["nt4_member", "ad_member"]:
298 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"])
300 for env in ["nt4_dc"]:
302 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"])
304 for env in ["fileserver"]:
305 plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
306 plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
307 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])
308 plantestsuite("samba3.blackbox.smbcquotas (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbcquota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbcquotas])
309 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])
310 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])
311 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'])
312 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'])
313 plantestsuite("samba3.blackbox.shadow_copy_torture", env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy_torture.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbtorture4])
314 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])
315 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])
316 plantestsuite("samba3.blackbox.netshareenum (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
317 plantestsuite("samba3.blackbox.acl_xattr.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mNT1'])
318 plantestsuite("samba3.blackbox.acl_xattr.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mSMB3'])
319 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])
320 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'])
321 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'])
322 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'])
323 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'])
324 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'])
325 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'])
326 plantestsuite("samba3.blackbox.large_acl.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'NT1'])
327 plantestsuite("samba3.blackbox.large_acl.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'SMB3'])
328 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'])
329 plantestsuite("samba3.blackbox.homes", env, [os.path.join(samba3srcdir, "script/tests/test_homes.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
330 plantestsuite("samba3.blackbox.force_group_change", env,
331 [os.path.join(samba3srcdir, "script/tests/test_force_group_change.sh"),
332 '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcontrol])
338 # Test smbclient/tarmode
339 plantestsuite("samba3.blackbox.smbclient_tarmode.NT1", env,
340 [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
341 '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
342 '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mNT1"])
343 plantestsuite("samba3.blackbox.smbclient_tarmode.SMB3", env,
344 [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
345 '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
346 '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mSMB3"])
348 # Test suite for new smbclient/tar with libarchive (GSoC 13)
349 plantestsuite("samba3.blackbox.smbclient_tar.NT1", env,
350 [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
351 '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
352 '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
353 '-d', '$PREFIX', '-b', smbclient3,
354 '--subunit', '--', configuration, '-mNT1'])
355 plantestsuite("samba3.blackbox.smbclient_tar.SMB3", env,
356 [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
357 '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
358 '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
359 '-d', '$PREFIX', '-b', smbclient3,
360 '--subunit', '--', configuration, '-mSMB3'])
362 plantestsuite("samba3.blackbox.net_usershare", "fileserver:local", [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])
364 # TODO encrypted against member, with member creds, and with DC creds
365 plantestsuite("samba3.blackbox.net.misc", "nt4_dc:local",
366 [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
367 scriptdir, "$SMB_CONF_PATH", net, configuration])
368 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
369 [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
370 scriptdir, "$SMB_CONF_PATH", net, configuration])
371 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
372 [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
373 scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
374 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
375 [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
376 scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
378 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
379 [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
380 scriptdir, "$SMB_CONF_PATH", net, configuration])
381 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
382 [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
383 scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
385 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
386 [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
387 scriptdir, "$SMB_CONF_PATH", net, configuration])
388 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
389 [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
390 scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
393 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
394 [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
398 "samba3.pthreadpool", "none",
399 [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
401 if with_pthreadpool and have_ldwrap:
402 plantestsuite("samba3.pthreadpool_cmocka", "none",
403 [os.path.join(bindir(), "pthreadpooltest_cmocka")])
406 plantestsuite("samba3.libwbclient_threads",
408 [os.path.join(samba3srcdir,
409 "script/tests/test_libwbclient_threads.sh"),
410 "$DOMAIN", "$DC_USERNAME"])
413 "samba3.resolvconf", "none",
414 [os.path.join(samba3srcdir, "script/tests/test_resolvconf.sh")])
416 plantestsuite("samba3.async_req", "nt4_dc",
417 [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
421 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
422 "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
423 "base.disconnect", "base.fdpass", "base.lock",
424 "base.mangle", "base.negnowait", "base.ntdeny1",
425 "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
426 "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
427 "base.xcopy", "base.samba3error"]
429 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
430 "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
431 "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
432 "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
433 "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
434 "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
435 "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
436 "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
437 "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
439 smb2 = smbtorture4_testsuites("smb2.")
441 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
442 "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
443 "rpc.samba3.getaliasmembership-0",
444 "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
445 "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
446 "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
447 "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
448 "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
449 "rpc.spoolss.driver",
450 "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
451 "rpc.lsa.privileges", "rpc.lsa.secrets",
452 "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
453 "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
454 "rpc.samr.priv", "rpc.samr.passwords.validate",
455 "rpc.netlogon.admin",
456 "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind"]
458 local = ["local.nss"]
460 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid", "idmap.ad"]
462 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
464 unix = ["unix.info2", "unix.whoami"]
468 libsmbclient = ["libsmbclient.version", "libsmbclient.initialize",
469 "libsmbclient.configuration", "libsmbclient.setConfiguration",
470 "libsmbclient.options", "libsmbclient.opendir",
471 "libsmbclient.list_shares", "libsmbclient.readdirplus"]
476 "vfs.fruit_netatalk",
478 "vfs.fruit_timemachine",
479 "vfs.fruit_conversion",
482 tests = base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
485 if t == "base.delaywrite" or t == "base.deny1" or t == "base.deny2":
486 plansmbtorture4testsuite(t, "fileserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
487 elif t == "base.createx_access":
488 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
490 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
491 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
492 elif t == "winbind.pac":
493 plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
494 elif t == "unix.whoami":
495 plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
496 plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
497 for env in ["nt4_dc", "nt4_member"]:
498 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
499 plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
500 for env in ["ad_dc", "ad_member"]:
501 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
502 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
503 plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
504 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
505 elif t == "raw.samba3posixtimedlock":
506 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
507 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
508 elif t == "raw.chkpath":
509 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
510 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
511 elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr":
512 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
513 plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
514 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
515 elif t == "raw.session":
516 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
517 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
518 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
519 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
520 elif t == "smb2.session":
521 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
522 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
523 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
524 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
525 # Certain tests fail when run against ad_member with MIT kerberos because the private krb5.conf overrides the provisioned lib/krb5.conf,
526 # ad_member_idmap_rid sets "create krb5.conf = no"
527 plansmbtorture4testsuite(t, "ad_member_idmap_rid", '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD', 'krb5')
529 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
530 plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
531 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
532 plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
533 elif t == "rpc.samr.passwords.validate":
534 plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
535 plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
536 elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay" or t == "smb2.durable-v2-delay":
537 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
538 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
539 elif t == "base.rw1":
540 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
541 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
542 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
543 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
544 elif t == "idmap.rfc2307":
545 plantestsuite(t, "ad_member_rfc2307",
546 [os.path.join(samba3srcdir,
547 "../nsswitch/tests/test_idmap_rfc2307.sh"),
549 'Administrator', '2000000',
551 '"Domain Users"', '2000002',
552 'DnsAdmins', '2000003',
554 'ou=idmap,dc=samba,dc=example,dc=com',
555 '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
556 elif t == "idmap.alloc":
557 plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
558 elif t == "idmap.rid":
559 plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
560 elif t == "idmap.ad":
561 plantestsuite(t, "ad_member_idmap_ad", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_ad.sh"), '$DOMAIN', '$DC_SERVER', '$DC_PASSWORD'])
562 elif t == "raw.acls":
563 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
564 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-40')
565 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special-40')
566 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-41')
567 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-40')
568 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-41')
569 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
570 elif t == "smb2.ioctl":
571 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
572 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
573 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
574 elif t == "smb2.lock":
575 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
576 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
577 elif t == "raw.lock" or t == "base.lock":
578 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
579 elif t == "raw.read":
580 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
581 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
582 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
583 elif t == "raw.search":
584 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
585 # test the dirsort module.
586 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
587 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
588 elif t == "vfs.fruit":
589 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')
590 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')
591 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')
592 elif t == "vfs.fruit_netatalk":
593 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
594 elif t == "vfs.fruit_timemachine":
595 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_timemachine -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
596 elif t == "vfs.fruit_file_id":
597 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD')
598 elif t == "vfs.fruit_conversion":
599 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:share2=vfs_fruit_wipe_intentionally_left_blank_rfork --option=torture:delete_empty_adfiles=false', 'wipe_intentionally_left_blank_rfork')
600 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:share2=vfs_fruit_delete_empty_adfiles --option=torture:delete_empty_adfiles=true', 'delete_empty_adfiles')
601 elif t == "rpc.schannel_anon_setpw":
602 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
603 plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
604 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
605 elif t == "local.nss":
606 for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
607 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
608 elif t == "smb2.change_notify_disabled":
609 plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
610 elif t == "smb2.notify" or t == "raw.notify" or t == "smb2.oplock" or t == "raw.oplock":
611 # These tests are a little slower so don't duplicate them with ad_dc
612 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
613 elif t == "smb2.dosmode":
614 plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
615 elif t == "smb2.kernel-oplocks":
616 if have_linux_kernel_oplocks:
617 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
618 elif t == "smb2.notify-inotify":
620 plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
621 elif t == "vfs.acl_xattr":
622 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
623 elif t == "smb2.compound_find":
624 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
625 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
626 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
627 elif t == "rpc.samr.users.privileges":
628 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:nt4_dc=true')
629 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
630 elif t == "smb2.compound":
631 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
632 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
633 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
634 elif t == "rpc.samba3.netlogon" or t == "rpc.samba3.sessionkey":
635 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
636 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
637 elif t.startswith("libsmbclient"):
638 url = "smb://$USERNAME:$PASSWORD@$SERVER/tmp"
639 if t == "libsmbclient.list_shares":
640 url = "smb://$USERNAME:$PASSWORD@$SERVER"
642 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%%$PASSWORD '
643 '--option=torture:smburl=' + url +
644 ' --option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
645 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%%$PASSWORD '
646 '--option=torture:smburl=' + url +
647 ' --option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
648 elif t == "smb2.streams":
649 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
650 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
651 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/streams_xattr -U$USERNAME%$PASSWORD', 'streams_xattr')
652 elif t == "smb2.aio_delay":
653 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio_delay_inject -U$USERNAME%$PASSWORD')
654 elif t == "smb2.delete-on-close-perms":
655 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
656 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/delete_readonly -U$USERNAME%$PASSWORD --option=torture:delete_readonly=true')
657 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
659 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
660 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
663 test = 'rpc.lsa.lookupsids'
664 auth_options = ["", "ntlm", "spnego", "spnego,ntlm", "spnego,smb1", "spnego,smb2"]
665 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
666 endianness_options = ["", ",bigendian"]
667 for s in signseal_options:
668 for e in endianness_options:
669 for a in auth_options:
670 binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
671 options = binding_string + " -U$USERNAME%$PASSWORD"
672 plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
673 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"),
674 "none", options, configuration])
676 # We should try more combinations in future, but this is all
677 # the pre-calculated credentials cache supports at the moment
679 # As the ktest env requires SMB3_00 we need to use "smb2" until
680 # dcerpc client code in smbtorture support autonegotiation
681 # of any smb dialect.
684 binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
685 options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
686 plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
688 options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
689 plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
691 auth_options2 = ["krb5", "spnego,krb5"]
692 for a in auth_options2:
693 binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
695 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"),
696 "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
698 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
699 "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
700 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
701 [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
702 configuration, os.path.join(bindir(), "sharesec"), "tmp"])
704 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
705 [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
706 smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
707 configuration, '$LOCAL_PATH', '$LOCK_DIR'])
709 plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
710 [os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh")])
712 plantestsuite("samba3.blackbox.durable_v2_delay", "simpleserver:local",
713 [os.path.join(samba3srcdir, "script/tests/test_durable_handle_reconnect.sh")])
715 plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
716 [os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
717 '$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
719 plantestsuite("samba3.blackbox.net_rpc_share_allowedusers", "nt4_dc",
720 [os.path.join(samba3srcdir, "script/tests/test_net_rpc_share_allowedusers.sh"),
721 "$SERVER", "$USERNAME", "$PASSWORD", "$PREFIX/net_rpc_share_allowedusers",
724 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
725 [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
726 "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
728 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
729 [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
730 "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
732 plantestsuite("samba3.blackbox.net_rpc_oldjoin", "nt4_dc:local",
733 [os.path.join(samba3srcdir, "script/tests/test_net_rpc_oldjoin.sh"),
734 "$SERVER", "$PREFIX/net_rpc_oldjoin",
736 plantestsuite("samba3.blackbox.net_rpc_join_creds", "nt4_dc",
737 [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join_creds.sh"),
738 "$DOMAIN", "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join_creds",
741 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
742 [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
743 "$USERNAME", "$PASSWORD", "$SERVER",
744 os.path.join(bindir(), "rpcclient"), "tmp"])
746 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
747 [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
748 "$USERNAME", "$PASSWORD", "$SERVER",
749 os.path.join(bindir(), "rpcclient")])
751 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
752 [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
753 "$USERNAME", "$PASSWORD", "$SERVER",
756 plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member",
757 [os.path.join(samba3srcdir,
758 "script/tests/test_rpcclient_netsessenum.sh"),
759 "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD", "$SERVER",
760 os.path.join(bindir(), "rpcclient"), smbtorture3, "tmp"])
762 # The ktest environment uses:
763 # server min protocol = SMB3_00
764 # client max protocol = SMB3
765 options_list = ["", "-e"]
766 for options in options_list:
767 plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
768 [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
769 "$PREFIX/ktest/krb5_ccache-2",
770 smbclient3, "$SERVER", options, configuration])
772 plantestsuite("samba3.blackbox.smbclient_krb5 new ccache %s" % options, "ktest:local",
773 [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
774 "$PREFIX/ktest/krb5_ccache-3",
775 smbclient3, "$SERVER", options, configuration])
777 plantestsuite("samba3.blackbox.smbclient_large_file %s krb5" % options, "ktest:local",
778 [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
779 "$PREFIX/ktest/krb5_ccache-3",
780 smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
782 options_list = ["-mNT1", "-mNT1 -e", "-mSMB3", "-mSMB3 -e"]
783 for options in options_list:
784 plantestsuite("samba3.blackbox.smbclient_large_file %s NTLM" % options, "nt4_dc:local",
785 [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
787 smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
789 for alias in ["foo", "bar"]:
790 plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
791 [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
792 smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
794 for e in endianness_options:
795 for a in auth_options:
796 for s in signseal_options:
797 binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
798 options = binding_string + " -U$USERNAME%$PASSWORD"
799 plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
801 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
802 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP[/pipe/FssagentRpc] -U$USERNAME%$PASSWORD', 'over ncacn_np')