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"]:
244 plantestsuite("samba3.blackbox.net_cred_change.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_net_cred_change.sh"), configuration])
247 t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD"
248 plantestsuite("samba3.wbinfo_simple.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t])
249 plantestsuite("samba3.wbinfo_name_lookup", env,
250 [os.path.join(srcdir(),
251 "nsswitch/tests/test_wbinfo_name_lookup.sh"),
252 '$DOMAIN', '$REALM', '$DC_USERNAME'])
254 env = "ad_member:local"
255 plantestsuite("samba3.wbinfo_user_info", env,
256 [os.path.join(srcdir(),
257 "nsswitch/tests/test_wbinfo_user_info.sh"),
258 '$DOMAIN', '$REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
260 env = "fl2008r2dc:local"
261 plantestsuite("samba3.wbinfo_user_info", env,
262 [os.path.join(srcdir(),
263 "nsswitch/tests/test_wbinfo_user_info.sh"),
264 '$TRUST_DOMAIN', '$TRUST_REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
266 env = "nt4_member:local"
267 plantestsuite("samba3.wbinfo_sids_to_xids", env,
268 [os.path.join(srcdir(),
269 "nsswitch/tests/test_wbinfo_sids_to_xids.sh")])
272 t = "WBCLIENT-MULTI-PING"
273 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])
274 plantestsuite("samba3.substitutions", env, [os.path.join(samba3srcdir, "script/tests/test_substitutions.sh"), "$SERVER", "alice", "Secret007", "$PREFIX"])
276 for env in ["maptoguest", "simpleserver"]:
277 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"])
280 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"])
281 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])
284 for env in ["nt4_dc"]:
285 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"])
287 for env in ["nt4_member", "ad_member"]:
288 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"])
290 for env in ["nt4_dc"]:
291 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"])
293 for env in ["nt4_member", "ad_member"]:
294 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"])
296 for env in ["nt4_dc"]:
298 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"])
300 for env in ["fileserver"]:
301 plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
302 plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
303 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])
304 plantestsuite("samba3.blackbox.smbcquotas (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbcquota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbcquotas])
305 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])
306 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])
307 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'])
308 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'])
309 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])
310 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])
311 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])
312 plantestsuite("samba3.blackbox.netshareenum (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shareenum.sh"), '$SERVER', '$USERNAME', '$PASSWORD', rpcclient])
313 plantestsuite("samba3.blackbox.acl_xattr.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mNT1'])
314 plantestsuite("samba3.blackbox.acl_xattr.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_acl_xattr.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3, smbcacls, '-mSMB3'])
315 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])
316 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'])
317 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'])
318 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'])
319 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'])
320 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'])
321 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'])
322 plantestsuite("samba3.blackbox.large_acl.NT1", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'NT1'])
323 plantestsuite("samba3.blackbox.large_acl.SMB3", env, [os.path.join(samba3srcdir, "script/tests/test_large_acl.sh"), '$SERVER', '$USERNAME', '$PASSWORD', smbclient3, smbcacls, '-m', 'SMB3'])
324 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'])
325 plantestsuite("samba3.blackbox.homes", env, [os.path.join(samba3srcdir, "script/tests/test_homes.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient3, configuration])
326 plantestsuite("samba3.blackbox.force_group_change", env,
327 [os.path.join(samba3srcdir, "script/tests/test_force_group_change.sh"),
328 '$SERVER', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcontrol])
334 # Test smbclient/tarmode
335 plantestsuite("samba3.blackbox.smbclient_tarmode.NT1", env,
336 [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"),
337 '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD',
338 '$LOCAL_PATH/tarmode', '$PREFIX', smbclient3, configuration, "-mNT1"])
339 plantestsuite("samba3.blackbox.smbclient_tarmode.SMB3", 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, "-mSMB3"])
344 # Test suite for new smbclient/tar with libarchive (GSoC 13)
345 plantestsuite("samba3.blackbox.smbclient_tar.NT1", env,
346 [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
347 '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
348 '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
349 '-d', '$PREFIX', '-b', smbclient3,
350 '--subunit', '--', configuration, '-mNT1'])
351 plantestsuite("samba3.blackbox.smbclient_tar.SMB3", env,
352 [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.pl"),
353 '-n', '$SERVER', '-i', '$SERVER_IP', '-s', 'tmp',
354 '-u', '$USERNAME', '-p', '$PASSWORD', '-l', '$LOCAL_PATH/tarmode',
355 '-d', '$PREFIX', '-b', smbclient3,
356 '--subunit', '--', configuration, '-mSMB3'])
358 plantestsuite("samba3.blackbox.net_usershare", "fileserver:local", [os.path.join(samba3srcdir, "script/tests/test_net_usershare.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3])
360 # TODO encrypted against member, with member creds, and with DC creds
361 plantestsuite("samba3.blackbox.net.misc", "nt4_dc:local",
362 [os.path.join(samba3srcdir, "script/tests/test_net_misc.sh"),
363 scriptdir, "$SMB_CONF_PATH", net, configuration])
364 plantestsuite("samba3.blackbox.net.local.registry", "nt4_dc:local",
365 [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
366 scriptdir, "$SMB_CONF_PATH", net, configuration])
367 plantestsuite("samba3.blackbox.net.registry.check", "nt4_dc:local",
368 [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"),
369 scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool])
370 plantestsuite("samba3.blackbox.net.rpc.registry", "nt4_dc",
371 [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"),
372 scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
374 plantestsuite("samba3.blackbox.net.local.registry.roundtrip", "nt4_dc:local",
375 [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
376 scriptdir, "$SMB_CONF_PATH", net, configuration])
377 plantestsuite("samba3.blackbox.net.rpc.registry.roundtrip", "nt4_dc",
378 [os.path.join(samba3srcdir, "script/tests/test_net_registry_roundtrip.sh"),
379 scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
381 plantestsuite("samba3.blackbox.net.local.conf", "nt4_dc:local",
382 [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
383 scriptdir, "$SMB_CONF_PATH", net, configuration])
384 plantestsuite("samba3.blackbox.net.rpc.conf", "nt4_dc",
385 [os.path.join(samba3srcdir, "script/tests/test_net_conf.sh"),
386 scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc'])
389 plantestsuite("samba3.blackbox.testparm", "nt4_dc:local",
390 [os.path.join(samba3srcdir, "script/tests/test_testparm_s3.sh"),
394 "samba3.pthreadpool", "none",
395 [os.path.join(samba3srcdir, "script/tests/test_pthreadpool.sh")])
397 if with_pthreadpool and have_ldwrap:
398 plantestsuite("samba3.pthreadpool_cmocka", "none",
399 [os.path.join(bindir(), "pthreadpooltest_cmocka")])
402 plantestsuite("samba3.libwbclient_threads",
404 [os.path.join(samba3srcdir,
405 "script/tests/test_libwbclient_threads.sh"),
406 "$DOMAIN", "$DC_USERNAME"])
409 "samba3.resolvconf", "none",
410 [os.path.join(samba3srcdir, "script/tests/test_resolvconf.sh")])
412 plantestsuite("samba3.async_req", "nt4_dc",
413 [os.path.join(samba3srcdir, "script/tests/test_async_req.sh")])
417 base = ["base.attr", "base.charset", "base.chkpath", "base.createx_access", "base.defer_open", "base.delaywrite", "base.delete",
418 "base.deny1", "base.deny2", "base.deny3", "base.denydos", "base.dir1", "base.dir2",
419 "base.disconnect", "base.fdpass", "base.lock",
420 "base.mangle", "base.negnowait", "base.ntdeny1",
421 "base.ntdeny2", "base.open", "base.openattr", "base.properties", "base.rename", "base.rw1",
422 "base.secleak", "base.tcon", "base.tcondev", "base.trans2", "base.unlink", "base.vuid",
423 "base.xcopy", "base.samba3error"]
425 raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", "raw.eas",
426 "raw.ioctl", "raw.lock", "raw.mkdir", "raw.mux", "raw.notify", "raw.open", "raw.oplock",
427 "raw.qfileinfo", "raw.qfsinfo", "raw.read", "raw.rename", "raw.search", "raw.seek",
428 "raw.sfileinfo.base", "raw.sfileinfo.bug", "raw.streams", "raw.unlink", "raw.write",
429 "raw.samba3hide", "raw.samba3badpath", "raw.sfileinfo.rename", "raw.session",
430 "raw.samba3caseinsensitive", "raw.samba3posixtimedlock",
431 "raw.samba3rootdirfid", "raw.sfileinfo.end-of-file",
432 "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon",
433 "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff", "raw.samba3badnameblob"]
435 smb2 = smbtorture4_testsuites("smb2.")
437 rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec",
438 "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg",
439 "rpc.samba3.getaliasmembership-0",
440 "rpc.samba3.netlogon", "rpc.samba3.sessionkey", "rpc.samba3.getusername",
441 "rpc.samba3.smb1-pipe-name", "rpc.samba3.smb2-pipe-name",
442 "rpc.samba3.smb-reauth1", "rpc.samba3.smb-reauth2",
443 "rpc.svcctl", "rpc.ntsvcs", "rpc.winreg", "rpc.eventlog",
444 "rpc.spoolss.printserver", "rpc.spoolss.win", "rpc.spoolss.notify", "rpc.spoolss.printer",
445 "rpc.spoolss.driver",
446 "rpc.lsa", "rpc.lsa-getuser", "rpc.lsa.lookupsids", "rpc.lsa.lookupnames",
447 "rpc.lsa.privileges", "rpc.lsa.secrets",
448 "rpc.samr", "rpc.samr.users", "rpc.samr.users.privileges", "rpc.samr.passwords",
449 "rpc.samr.passwords.pwdlastset", "rpc.samr.passwords.lockout", "rpc.samr.passwords.badpwdcount", "rpc.samr.large-dc", "rpc.samr.machine.auth",
450 "rpc.samr.priv", "rpc.samr.passwords.validate",
451 "rpc.netlogon.admin",
452 "rpc.schannel", "rpc.schannel2", "rpc.bench-schannel1", "rpc.schannel_anon_setpw", "rpc.join", "rpc.bind"]
454 local = ["local.nss"]
456 idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid", "idmap.ad"]
458 rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
460 unix = ["unix.info2", "unix.whoami"]
464 libsmbclient = ["libsmbclient.version", "libsmbclient.initialize",
465 "libsmbclient.configuration", "libsmbclient.setConfiguration",
466 "libsmbclient.options", "libsmbclient.opendir",
467 "libsmbclient.list_shares", "libsmbclient.readdirplus"]
472 "vfs.fruit_netatalk",
474 "vfs.fruit_timemachine",
475 "vfs.fruit_conversion",
478 tests = base + raw + smb2 + rpc + unix + local + rap + nbt + libsmbclient + idmap + vfs
481 if t == "base.delaywrite" or t == "base.deny1" or t == "base.deny2":
482 plansmbtorture4testsuite(t, "fileserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900')
483 elif t == "base.createx_access":
484 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD -k yes --maximum-runtime=900')
486 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
487 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1')
488 elif t == "winbind.pac":
489 plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
490 elif t == "unix.whoami":
491 plansmbtorture4testsuite(t, "nt4_member:local", '//$SERVER/tmp --machine-pass', description="machine account")
492 plansmbtorture4testsuite(t, "ad_member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account")
493 for env in ["nt4_dc", "nt4_member"]:
494 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD')
495 plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection')
496 for env in ["ad_dc", "ad_member"]:
497 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER')
498 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection')
499 plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection')
500 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k no -U$DC_USERNAME@$REALM%$DC_PASSWORD', description='ntlm user@realm')
501 elif t == "raw.samba3posixtimedlock":
502 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
503 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/ad_dc/share')
504 elif t == "raw.chkpath":
505 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
506 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
507 elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr":
508 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
509 plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
510 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
511 elif t == "raw.session":
512 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
513 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
514 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
515 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
516 elif t == "smb2.session":
517 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain')
518 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc')
519 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm')
520 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5')
521 # Certain tests fail when run against ad_member with MIT kerberos because the private krb5.conf overrides the provisioned lib/krb5.conf,
522 # ad_member_idmap_rid sets "create krb5.conf = no"
523 plansmbtorture4testsuite(t, "ad_member_idmap_rid", '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD', 'krb5')
525 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
526 plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
527 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ')
528 plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
529 elif t == "rpc.samr.passwords.validate":
530 plansmbtorture4testsuite(t, "nt4_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
531 plansmbtorture4testsuite(t, "ad_dc", 'ncacn_ip_tcp:$SERVER_IP[seal] -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ')
532 elif t == "smb2.durable-open" or t == "smb2.durable-v2-open" or t == "smb2.replay" or t == "smb2.durable-v2-delay":
533 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
534 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
535 elif t == "base.rw1":
536 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
537 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
538 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
539 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
540 elif t == "idmap.rfc2307":
541 plantestsuite(t, "ad_member_rfc2307",
542 [os.path.join(samba3srcdir,
543 "../nsswitch/tests/test_idmap_rfc2307.sh"),
545 'Administrator', '2000000',
547 '"Domain Users"', '2000002',
548 'DnsAdmins', '2000003',
550 'ou=idmap,dc=samba,dc=example,dc=com',
551 '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
552 elif t == "idmap.alloc":
553 plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
554 elif t == "idmap.rid":
555 plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
556 elif t == "idmap.ad":
557 plantestsuite(t, "ad_member_idmap_ad", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_ad.sh"), '$DOMAIN', '$DC_SERVER', '$DC_PASSWORD'])
558 elif t == "raw.acls":
559 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
560 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-40')
561 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_special_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-special-40')
562 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple-41')
563 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_40 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-40')
564 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_xdr_41 -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-xdr-41')
565 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD')
566 elif t == "smb2.ioctl":
567 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/fs_specific -U$USERNAME%$PASSWORD', 'fs_specific')
568 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
569 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
570 elif t == "smb2.lock":
571 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
572 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
573 elif t == "raw.lock" or t == "base.lock":
574 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
575 elif t == "raw.read":
576 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
577 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
578 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
579 elif t == "raw.search":
580 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
581 # test the dirsort module.
582 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmpsort -U$USERNAME%$PASSWORD')
583 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
584 elif t == "vfs.fruit":
585 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')
586 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')
587 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')
588 elif t == "vfs.fruit_netatalk":
589 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_xattr -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
590 elif t == "vfs.fruit_timemachine":
591 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit_timemachine -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
592 elif t == "vfs.fruit_file_id":
593 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/vfs_fruit -U$USERNAME%$PASSWORD')
594 elif t == "vfs.fruit_conversion":
595 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')
596 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')
597 elif t == "rpc.schannel_anon_setpw":
598 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$%', description="anonymous password set")
599 plansmbtorture4testsuite(t, "nt4_dc_schannel", '//$SERVER_IP/tmp -U$%', description="anonymous password set (schannel enforced server-side)")
600 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$%', description="anonymous password set")
601 elif t == "local.nss":
602 for env in ["nt4_dc:local", "ad_member:local", "nt4_member:local", "ad_dc:local"]:
603 plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$USERNAME%$PASSWORD')
604 elif t == "smb2.change_notify_disabled":
605 plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
606 elif t == "smb2.notify" or t == "raw.notify" or t == "smb2.oplock" or t == "raw.oplock":
607 # These tests are a little slower so don't duplicate them with ad_dc
608 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --signing=required')
609 elif t == "smb2.dosmode":
610 plansmbtorture4testsuite(t, "simpleserver", '//$SERVER/dosmode -U$USERNAME%$PASSWORD')
611 elif t == "smb2.kernel-oplocks":
612 if have_linux_kernel_oplocks:
613 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share')
614 elif t == "smb2.notify-inotify":
616 plansmbtorture4testsuite(t, "fileserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
617 elif t == "vfs.acl_xattr":
618 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
619 elif t == "smb2.compound_find":
620 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER/compound_find -U$USERNAME%$PASSWORD')
621 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
622 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
623 elif t == "rpc.samr.users.privileges":
624 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:nt4_dc=true')
625 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
626 elif t == "smb2.compound":
627 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
628 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio -U$USERNAME%$PASSWORD', 'aio')
629 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
630 elif t == "rpc.samba3.netlogon" or t == "rpc.samba3.sessionkey":
631 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
632 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD --option=torture:wksname=samba3rpctest')
633 elif t.startswith("libsmbclient"):
634 url = "smb://$USERNAME:$PASSWORD@$SERVER/tmp"
635 if t == "libsmbclient.list_shares":
636 url = "smb://$USERNAME:$PASSWORD@$SERVER"
638 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%%$PASSWORD '
639 '--option=torture:smburl=' + url +
640 ' --option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
641 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%%$PASSWORD '
642 '--option=torture:smburl=' + url +
643 ' --option=torture:replace_smbconf=%s' % os.path.join(srcdir(), "testdata/samba3/smb_new.conf"))
644 elif t == "smb2.streams":
645 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
646 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
647 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/streams_xattr -U$USERNAME%$PASSWORD', 'streams_xattr')
648 elif t == "smb2.aio_delay":
649 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/aio_delay_inject -U$USERNAME%$PASSWORD')
650 elif t == "smb2.delete-on-close-perms":
651 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
652 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/delete_readonly -U$USERNAME%$PASSWORD --option=torture:delete_readonly=true')
653 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
655 plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
656 plansmbtorture4testsuite(t, "ad_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
659 test = 'rpc.lsa.lookupsids'
660 auth_options = ["", "ntlm", "spnego", "spnego,ntlm", "spnego,smb1", "spnego,smb2"]
661 signseal_options = ["", ",connect", ",packet", ",sign", ",seal"]
662 endianness_options = ["", ",bigendian"]
663 for s in signseal_options:
664 for e in endianness_options:
665 for a in auth_options:
666 binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
667 options = binding_string + " -U$USERNAME%$PASSWORD"
668 plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e))
669 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"),
670 "none", options, configuration])
672 # We should try more combinations in future, but this is all
673 # the pre-calculated credentials cache supports at the moment
675 # As the ktest env requires SMB3_00 we need to use "smb2" until
676 # dcerpc client code in smbtorture support autonegotiation
677 # of any smb dialect.
680 binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
681 options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2"
682 plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e))
684 options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3"
685 plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e))
687 auth_options2 = ["krb5", "spnego,krb5"]
688 for a in auth_options2:
689 binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e)
691 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"),
692 "$PREFIX/ktest/krb5_ccache-3", binding_string, "-k", configuration])
694 plantestsuite("samba3.blackbox.rpcclient_samlogon", "ad_member:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient_samlogon.sh"),
695 "$DC_USERNAME", "$DC_PASSWORD", "ncacn_np:$DC_SERVER", configuration])
696 plantestsuite("samba3.blackbox.sharesec", "simpleserver:local",
697 [os.path.join(samba3srcdir, "script/tests/test_sharesec.sh"),
698 configuration, os.path.join(bindir(), "sharesec"), "tmp"])
700 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
701 [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
702 smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
703 configuration, '$LOCAL_PATH', '$LOCK_DIR'])
705 plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
706 [os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh")])
708 plantestsuite("samba3.blackbox.durable_v2_delay", "simpleserver:local",
709 [os.path.join(samba3srcdir, "script/tests/test_durable_handle_reconnect.sh")])
711 plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
712 [os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
713 '$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])
715 plantestsuite("samba3.blackbox.net_rpc_share_allowedusers", "nt4_dc",
716 [os.path.join(samba3srcdir, "script/tests/test_net_rpc_share_allowedusers.sh"),
717 "$SERVER", "$USERNAME", "$PASSWORD", "$PREFIX/net_rpc_share_allowedusers",
720 plantestsuite("samba3.blackbox.net_dom_join_fail_dc", "nt4_dc",
721 [os.path.join(samba3srcdir, "script/tests/test_net_dom_join_fail_dc.sh"),
722 "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_dom_join_fail_dc",
724 plantestsuite("samba3.blackbox.net_rpc_join", "nt4_dc",
725 [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join.sh"),
726 "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join",
728 plantestsuite("samba3.blackbox.net_rpc_oldjoin", "nt4_dc:local",
729 [os.path.join(samba3srcdir, "script/tests/test_net_rpc_oldjoin.sh"),
730 "$SERVER", "$PREFIX/net_rpc_oldjoin",
732 plantestsuite("samba3.blackbox.net_rpc_join_creds", "nt4_dc",
733 [os.path.join(samba3srcdir, "script/tests/test_net_rpc_join_creds.sh"),
734 "$DOMAIN", "$USERNAME", "$PASSWORD", "$SERVER", "$PREFIX/net_rpc_join_creds",
737 plantestsuite("samba3.blackbox.rpcclient_srvsvc", "simpleserver",
738 [os.path.join(samba3srcdir, "script/tests/test_rpcclientsrvsvc.sh"),
739 "$USERNAME", "$PASSWORD", "$SERVER",
740 os.path.join(bindir(), "rpcclient"), "tmp"])
742 plantestsuite("samba3.blackbox.rpcclient.pw-nt-hash", "simpleserver",
743 [os.path.join(samba3srcdir, "script/tests/test_rpcclient_pw_nt_hash.sh"),
744 "$USERNAME", "$PASSWORD", "$SERVER",
745 os.path.join(bindir(), "rpcclient")])
747 plantestsuite("samba3.blackbox.smbclient.encryption_off", "simpleserver",
748 [os.path.join(samba3srcdir, "script/tests/test_smbclient_encryption_off.sh"),
749 "$USERNAME", "$PASSWORD", "$SERVER",
752 plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member",
753 [os.path.join(samba3srcdir,
754 "script/tests/test_rpcclient_netsessenum.sh"),
755 "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD", "$SERVER",
756 os.path.join(bindir(), "rpcclient"), smbtorture3, "tmp"])
758 # The ktest environment uses:
759 # server min protocol = SMB3_00
760 # client max protocol = SMB3
761 options_list = ["", "-e"]
762 for options in options_list:
763 plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local",
764 [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
765 "$PREFIX/ktest/krb5_ccache-2",
766 smbclient3, "$SERVER", options, configuration])
768 plantestsuite("samba3.blackbox.smbclient_krb5 new ccache %s" % options, "ktest:local",
769 [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"),
770 "$PREFIX/ktest/krb5_ccache-3",
771 smbclient3, "$SERVER", options, configuration])
773 plantestsuite("samba3.blackbox.smbclient_large_file %s krb5" % options, "ktest:local",
774 [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
775 "$PREFIX/ktest/krb5_ccache-3",
776 smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration])
778 options_list = ["-mNT1", "-mNT1 -e", "-mSMB3", "-mSMB3 -e"]
779 for options in options_list:
780 plantestsuite("samba3.blackbox.smbclient_large_file %s NTLM" % options, "nt4_dc:local",
781 [os.path.join(samba3srcdir, "script/tests/test_smbclient_large_file.sh"),
783 smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration])
785 for alias in ["foo", "bar"]:
786 plantestsuite("samba3.blackbox.smbclient_netbios_aliases [%s]" % alias, "ad_member:local",
787 [os.path.join(samba3srcdir, "script/tests/test_smbclient_netbios_aliases.sh"),
788 smbclient3, alias, "$DC_USERNAME", "$DC_PASSWORD", "$PREFIX", options, configuration])
790 for e in endianness_options:
791 for a in auth_options:
792 for s in signseal_options:
793 binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e)
794 options = binding_string + " -U$USERNAME%$PASSWORD"
795 plansmbtorture4testsuite(test, "nt4_dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e))
797 plansmbtorture4testsuite('rpc.epmapper', 'nt4_dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc')
798 plansmbtorture4testsuite('rpc.fsrvp', 'nt4_dc:local', 'ncacn_np:$SERVER_IP[/pipe/FssagentRpc] -U$USERNAME%$PASSWORD', 'over ncacn_np')