lib/tsocket: fix receiving of udp packets from 0 bytes (bug #9184)
[Samba/gebeck_regimport.git] / source4 / selftest / tests.py
blob575d61b65228c8b77ce018a1b8768a421e069187
1 #!/usr/bin/python
2 # This script generates a list of testsuites that should be run as part of
3 # the Samba 4 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 4, 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/knownfail. This makes it
12 # very easy to see what functionality is still missing in Samba 4 and makes
13 # it possible to run the testsuite against other servers, such as Samba 3 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
19 # comments.
21 import os, sys
22 sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../../selftest"))
23 from selftesthelpers import *
24 import subprocess
26 samba4srcdir = source4dir()
27 samba4bindir = bindir()
28 smb4torture = binpath("smbtorture4")
29 smb4torture_testsuite_list = subprocess.Popen([smb4torture, "--list-suites"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate("")[0].splitlines()
30 validate = os.getenv("VALIDATE", "")
31 if validate:
32 validate_list = [validate]
33 else:
34 validate_list = []
36 nmblookup = binpath('nmblookup4')
37 smbclient = binpath('smbclient4')
39 def plansmbtorturetestsuite(name, env, options, modname=None):
40 if modname is None:
41 modname = "samba4.%s" % name
42 if isinstance(options, list):
43 options = " ".join(options)
44 cmdline = "%s $LISTOPT %s %s" % (valgrindify(smb4torture), options, name)
45 plantestsuite_loadlist(modname, env, cmdline)
47 def smb4torture_testsuites(prefix):
48 return filter(lambda x: x.startswith(prefix), smb4torture_testsuite_list)
50 subprocess.call([smb4torture, "-V"], stdout=sys.stderr)
52 bbdir = os.path.join(srcdir(), "testprogs/blackbox")
54 configuration = "--configfile=$SMB_CONF_PATH"
56 torture_options = [configuration, "--maximum-runtime=$SELFTEST_MAXTIME", "--target=samba4", "--basedir=$SELFTEST_TMPDIR"]
57 if not os.getenv("SELFTEST_VERBOSE"):
58 torture_options.append("--option=torture:progress=no")
59 torture_options.append("--format=subunit")
60 if os.getenv("SELFTEST_QUICK"):
61 torture_options.append("--option=torture:quick=yes")
62 smb4torture += " " + " ".join(torture_options)
64 print >>sys.stderr, "OPTIONS %s" % " ".join(torture_options)
66 # Simple tests for LDAP and CLDAP
67 for options in ['-U"$USERNAME%$PASSWORD" --option=socket:testnonblock=true', '-U"$USERNAME%$PASSWORD"', '-U"$USERNAME%$PASSWORD" -k yes', '-U"$USERNAME%$PASSWORD" -k no', '-U"$USERNAME%$PASSWORD" -k no --sign', '-U"$USERNAME%$PASSWORD" -k no --encrypt', '-U"$USERNAME%$PASSWORD" -k yes --encrypt', '-U"$USERNAME%$PASSWORD" -k yes --sign']:
68 plantestsuite("samba4.ldb.ldap with options %s(dc)" % options, "dc", "%s/test_ldb.sh ldap $SERVER %s" % (bbdir, options))
70 # see if we support ADS on the Samba3 side
71 try:
72 config_h = os.environ["CONFIG_H"]
73 except KeyError:
74 config_h = os.path.join(samba4bindir, "default/include/config.h")
76 # see if we support ldaps
77 f = open(config_h, 'r')
78 try:
79 have_tls_support = ("ENABLE_GNUTLS 1" in f.read())
80 finally:
81 f.close()
83 if have_tls_support:
84 for options in ['-U"$USERNAME%$PASSWORD"']:
85 plantestsuite("samba4.ldb.ldaps with options %s(dc)" % options, "dc",
86 "%s/test_ldb.sh ldaps $SERVER_IP %s" % (bbdir, options))
88 for options in ['-U"$USERNAME%$PASSWORD"']:
89 plantestsuite("samba4.ldb.ldapi with options %s(dc:local)" % options, "dc:local",
90 "%s/test_ldb.sh ldapi $PREFIX_ABS/dc/private/ldapi %s" % (bbdir, options))
92 for t in smb4torture_testsuites("ldap."):
93 plansmbtorturetestsuite(t, "dc", '-U"$USERNAME%$PASSWORD" //$SERVER_IP/_none_')
95 ldbdir = os.path.join(srcdir(), "lib/ldb")
96 # Don't run LDB tests when using system ldb, as we won't have ldbtest installed
97 if os.path.exists(os.path.join(samba4bindir, "ldbtest")):
98 plantestsuite("ldb.base", "none", "%s/tests/test-tdb-subunit.sh %s" % (ldbdir, samba4bindir))
99 else:
100 skiptestsuite("ldb.base", "Using system LDB, ldbtest not available")
102 # Tests for RPC
104 # add tests to this list as they start passing, so we test
105 # that they stay passing
106 ncacn_np_tests = ["rpc.schannel", "rpc.join", "rpc.lsa", "rpc.dssetup", "rpc.altercontext", "rpc.multibind", "rpc.netlogon", "rpc.handles", "rpc.samsync", "rpc.samba3-sessionkey", "rpc.samba3-getusername", "rpc.samba3-lsa", "rpc.samba3-bind", "rpc.samba3-netlogon", "rpc.asyncbind", "rpc.lsalookup", "rpc.lsa-getuser", "rpc.schannel2", "rpc.authcontext"]
107 ncalrpc_tests = ["rpc.schannel", "rpc.join", "rpc.lsa", "rpc.dssetup", "rpc.altercontext", "rpc.multibind", "rpc.netlogon", "rpc.drsuapi", "rpc.asyncbind", "rpc.lsalookup", "rpc.lsa-getuser", "rpc.schannel2", "rpc.authcontext"]
108 drs_rpc_tests = smb4torture_testsuites("drs.rpc")
109 ncacn_ip_tcp_tests = ["rpc.schannel", "rpc.join", "rpc.lsa", "rpc.dssetup", "rpc.multibind", "rpc.netlogon", "rpc.asyncbind", "rpc.lsalookup", "rpc.lsa-getuser", "rpc.schannel2", "rpc.authcontext"] + drs_rpc_tests
110 slow_ncacn_np_tests = ["rpc.samlogon", "rpc.samr.users", "rpc.samr.large-dc", "rpc.samr.users.privileges", "rpc.samr.passwords", "rpc.samr.passwords.pwdlastset"]
111 slow_ncacn_ip_tcp_tests = ["rpc.samr", "rpc.cracknames"]
113 all_rpc_tests = ncalrpc_tests + ncacn_np_tests + ncacn_ip_tcp_tests + slow_ncacn_np_tests + slow_ncacn_ip_tcp_tests + ["rpc.lsa.secrets", "rpc.pac", "rpc.samba3-sharesec", "rpc.countcalls"]
115 # Make sure all tests get run
116 rpc_tests = smb4torture_testsuites("rpc.")
117 auto_rpc_tests = filter(lambda t: t not in all_rpc_tests, rpc_tests)
119 for bindoptions in ["seal,padcheck"] + validate_list + ["bigendian"]:
120 for transport in ["ncalrpc", "ncacn_np", "ncacn_ip_tcp"]:
121 env = "dc"
122 if transport == "ncalrpc":
123 tests = ncalrpc_tests
124 env = "dc:local"
125 elif transport == "ncacn_np":
126 tests = ncacn_np_tests
127 elif transport == "ncacn_ip_tcp":
128 tests = ncacn_ip_tcp_tests
129 else:
130 raise AssertionError("invalid transport %r"% transport)
131 for t in tests:
132 plansmbtorturetestsuite(t, env, ["%s:$SERVER[%s]" % (transport, bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s on %s with %s" % (t, transport, bindoptions))
133 plansmbtorturetestsuite('rpc.samba3-sharesec', env, ["%s:$SERVER[%s]" % (transport, bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=torture:share=tmp'], "samba4.rpc.samba3.sharesec on %s with %s" % (transport, bindoptions))
135 #Plugin S4 DC tests (confirms named pipe auth forwarding). This can be expanded once kerberos is supported in the plugin DC
137 for bindoptions in ["seal,padcheck"] + validate_list + ["bigendian"]:
138 for t in ncacn_np_tests:
139 env = "plugin_s4_dc"
140 transport = "ncacn_np"
141 plansmbtorturetestsuite(t, env, ["%s:$SERVER[%s]" % (transport, bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s with %s" % (t, bindoptions))
143 for bindoptions in [""] + validate_list + ["bigendian"]:
144 for t in auto_rpc_tests:
145 plansmbtorturetestsuite(t, "dc", ["$SERVER[%s]" % bindoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s with %s" % (t, bindoptions))
147 t = "rpc.countcalls"
148 plansmbtorturetestsuite(t, "dc:local", ["$SERVER[%s]" % bindoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname="samba4.%s" % t)
150 for transport in ["ncacn_np", "ncacn_ip_tcp"]:
151 env = "dc"
152 if transport == "ncacn_np":
153 tests = slow_ncacn_np_tests
154 elif transport == "ncacn_ip_tcp":
155 tests = slow_ncacn_ip_tcp_tests
156 else:
157 raise AssertionError("Invalid transport %r" % transport)
158 for t in tests:
159 plansmbtorturetestsuite(t, env, ["%s:$SERVER" % transport, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s on %s" % (t, transport))
161 # Tests for the DFS referral calls implementation
162 for t in smb4torture_testsuites("dfs."):
163 plansmbtorturetestsuite(t, "dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD')
164 plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD')
166 # Tests for the NET API (net.api.become.dc tested below against all the roles)
167 net_tests = filter(lambda x: "net.api.become.dc" not in x, smb4torture_testsuites("net."))
168 for t in net_tests:
169 plansmbtorturetestsuite(t, "dc", '$SERVER[%s] -U$USERNAME%%$PASSWORD -W$DOMAIN' % validate)
171 # Tests for session keys and encryption of RPC pipes
172 # FIXME: Integrate these into a single smbtorture test
174 transport = "ncacn_np"
175 for env in ["dc", "s3dc"]:
176 for ntlmoptions in [
177 "-k no --option=usespnego=yes",
178 "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no",
179 "-k no --option=usespnego=yes --option=ntlmssp_client:56bit=yes",
180 "-k no --option=usespnego=yes --option=ntlmssp_client:56bit=no",
181 "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:56bit=yes",
182 "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:56bit=no",
183 "-k no --option=usespnego=yes --option=clientntlmv2auth=yes",
184 "-k no --option=usespnego=yes --option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no",
185 "-k no --option=usespnego=yes --option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:56bit=yes",
186 "-k no --option=usespnego=no --option=clientntlmv2auth=yes",
187 "-k no --option=gensec:spnego=no --option=clientntlmv2auth=yes",
188 "-k no --option=usespnego=no"]:
189 name = "rpc.lsa.secrets on %s with with %s" % (transport, ntlmoptions)
190 plansmbtorturetestsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport), ntlmoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.%s" % name)
191 plantestsuite("samba.blackbox.pdbtest", "%s:local" % env, [os.path.join(bbdir, "test_pdbtest.sh"), '$SERVER', "$PREFIX", smbclient, '$SMB_CONF_PATH', configuration])
193 transports = ["ncacn_np", "ncacn_ip_tcp"]
195 #Kerberos varies between functional levels, so it is important to check this on all of them
196 for env in ["dc", "fl2000dc", "fl2003dc", "fl2008r2dc", "plugin_s4_dc"]:
197 transport = "ncacn_np"
198 plansmbtorturetestsuite('rpc.pac', env, ["%s:$SERVER[]" % (transport, ), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.pac on %s" % (transport,))
199 plansmbtorturetestsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport, ), '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=gensec:target_hostname=$NETBIOSNAME', 'rpc.lsa.secrets'], "samba4.rpc.lsa.secrets on %s with Kerberos" % (transport,))
200 plansmbtorturetestsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport, ), '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', "--option=clientusespnegoprincipal=yes", '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.rpc.lsa.secrets on %s with Kerberos - use target principal" % (transport,))
201 plansmbtorturetestsuite('rpc.lsa.secrets.none*', env, ["%s:$SERVER" % transport, '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', "--option=gensec:fake_gssapi_krb5=yes", '--option=gensec:gssapi_krb5=no', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.rpc.lsa.secrets on %s with Kerberos - use Samba3 style login" % transport)
202 plansmbtorturetestsuite('rpc.lsa.secrets.none*', env, ["%s:$SERVER" % transport, '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', "--option=clientusespnegoprincipal=yes", '--option=gensec:fake_gssapi_krb5=yes', '--option=gensec:gssapi_krb5=no', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.rpc.lsa.secrets on %s with Kerberos - use Samba3 style login, use target principal" % transport)
203 for transport in transports:
204 plansmbtorturetestsuite('rpc.echo', env, ["%s:$SERVER[]" % (transport,), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on %s" % (transport, ))
206 # Echo tests test bulk Kerberos encryption of DCE/RPC
207 for bindoptions in ["connect", "spnego", "spnego,sign", "spnego,seal"] + validate_list + ["padcheck", "bigendian", "bigendian,seal"]:
208 echooptions = "--option=socket:testnonblock=True --option=torture:quick=yes -k yes"
209 plansmbtorturetestsuite('rpc.echo', env, ["%s:$SERVER[%s]" % (transport, bindoptions), echooptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on %s with %s and %s" % (transport, bindoptions, echooptions))
210 plansmbtorturetestsuite("net.api.become.dc", env, '$SERVER[%s] -U$USERNAME%%$PASSWORD -W$DOMAIN' % validate)
212 for bindoptions in ["sign", "seal"]:
213 plansmbtorturetestsuite('rpc.backupkey', "dc", ["ncacn_np:$SERVER[%s]" % ( bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.backupkey with %s" % (bindoptions))
215 for transport in transports:
216 for bindoptions in ["sign", "seal"]:
217 for ntlmoptions in [
218 "--option=ntlmssp_client:ntlm2=yes --option=torture:quick=yes",
219 "--option=ntlmssp_client:ntlm2=no --option=torture:quick=yes",
220 "--option=ntlmssp_client:ntlm2=yes --option=ntlmssp_client:128bit=no --option=torture:quick=yes",
221 "--option=ntlmssp_client:ntlm2=no --option=ntlmssp_client:128bit=no --option=torture:quick=yes",
222 "--option=ntlmssp_client:ntlm2=yes --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes",
223 "--option=ntlmssp_client:ntlm2=no --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes",
224 "--option=clientntlmv2auth=yes --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes",
225 "--option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:keyexchange=yes --option=torture:quick=yes",
226 "--option=clientntlmv2auth=yes --option=ntlmssp_client:128bit=no --option=ntlmssp_client:keyexchange=no --option=torture:quick=yes"]:
227 if transport == "ncalrpc":
228 env = "dc:local"
229 else:
230 env = "dc"
231 plansmbtorturetestsuite('rpc.echo', env, ["%s:$SERVER[%s]" % (transport, bindoptions), ntlmoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on %s with %s and %s" % (transport, bindoptions, ntlmoptions))
233 plansmbtorturetestsuite('rpc.echo', "dc", ['ncacn_np:$SERVER[smb2]', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on ncacn_np over smb2")
235 plansmbtorturetestsuite('ntp.signd', "dc:local", ['ncacn_np:$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.ntp.signd")
237 nbt_tests = smb4torture_testsuites("nbt.")
238 for t in nbt_tests:
239 plansmbtorturetestsuite(t, "dc", "//$SERVER/_none_ -U\"$USERNAME%$PASSWORD\"")
241 # Tests against the NTVFS POSIX backend
242 ntvfsargs = ["--option=torture:sharedelay=10000", "--option=torture:oplocktimeout=3", "--option=torture:writetimeupdatedelay=50000"]
244 smb2 = smb4torture_testsuites("smb2.")
245 #The QFILEINFO-IPC test needs to be on ipc$
246 raw = filter(lambda x: "raw.qfileinfo.ipc" not in x, smb4torture_testsuites("raw."))
247 base = smb4torture_testsuites("base.")
249 netapi = smb4torture_testsuites("netapi.")
251 libsmbclient = smb4torture_testsuites("libsmbclient.")
253 for t in base + raw + smb2 + netapi + libsmbclient:
254 plansmbtorturetestsuite(t, "dc", ['//$SERVER/tmp', '-U$USERNAME%$PASSWORD'] + ntvfsargs)
256 plansmbtorturetestsuite("raw.qfileinfo.ipc", "dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD')
258 for t in smb4torture_testsuites("rap."):
259 plansmbtorturetestsuite(t, "dc", '//$SERVER/IPC\$ -U$USERNAME%$PASSWORD')
261 # Tests against the NTVFS CIFS backend
262 for t in base + raw:
263 plansmbtorturetestsuite(t, "dc", ['//$NETBIOSNAME/cifs', '-U$USERNAME%$PASSWORD', '--kerberos=yes'] + ntvfsargs, modname="samba4.ntvfs.cifs.krb5.%s" % t)
265 # Test NTVFS CIFS backend with S4U2Self and S4U2Proxy
266 t = "base.unlink"
267 plansmbtorturetestsuite(t, "dc", ['//$NETBIOSNAME/cifs', '-U$USERNAME%$PASSWORD', '--kerberos=no'] + ntvfsargs, "samba4.ntvfs.cifs.ntlm.%s" % t)
268 plansmbtorturetestsuite(t, "rpc_proxy", ['//$NETBIOSNAME/cifs_to_dc', '-U$DC_USERNAME%$DC_PASSWORD', '--kerberos=yes'] + ntvfsargs, "samba4.ntvfs.cifs.krb5.%s" % t)
269 plansmbtorturetestsuite(t, "rpc_proxy", ['//$NETBIOSNAME/cifs_to_dc', '-U$DC_USERNAME%$DC_PASSWORD', '--kerberos=no'] + ntvfsargs, "samba4.ntvfs.cifs.ntlm.%s" % t)
271 plansmbtorturetestsuite('echo.udp', 'dc:local', '//$SERVER/whatever')
273 # Local tests
274 for t in smb4torture_testsuites("local."):
275 #The local.resolve test needs a name to look up using real system (not emulated) name routines
276 plansmbtorturetestsuite(t, "none", "ncalrpc:localhost")
278 # Confirm these tests with the system iconv too
279 for t in ["local.convert_string_handle", "local.convert_string", "local.ndr"]:
280 options = "ncalrpc: --option='iconv:use_builtin_handlers=false'"
281 plansmbtorturetestsuite(t, "none", options,
282 modname="samba4.%s.system.iconv" % t)
284 tdbtorture4 = binpath("tdbtorture")
285 if os.path.exists(tdbtorture4):
286 plantestsuite("tdb.stress", "none", valgrindify(tdbtorture4))
287 else:
288 skiptestsuite("tdb.stress", "Using system TDB, tdbtorture not available")
290 plansmbtorturetestsuite("drs.unit", "none", "ncalrpc:")
292 # Pidl tests
293 for f in sorted(os.listdir(os.path.join(samba4srcdir, "../pidl/tests"))):
294 if f.endswith(".pl"):
295 planperltestsuite("pidl.%s" % f[:-3], os.path.normpath(os.path.join(samba4srcdir, "../pidl/tests", f)))
297 # DNS tests
298 planpythontestsuite("fl2003dc", "samba.tests.dns")
299 for t in smb4torture_testsuites("dns_internal."):
300 plansmbtorturetestsuite(t, "dc:local", '//$SERVER/whavever')
302 # Local tests
303 for t in smb4torture_testsuites("dlz_bind9."):
304 #The dlz_bind9 tests needs to look at the DNS database
305 plansmbtorturetestsuite(t, "chgdcpass:local", "ncalrpc:localhost")
307 planpythontestsuite("s3dc", "samba.tests.libsmb_samba_internal");
309 # Blackbox Tests:
310 # tests that interact directly with the command-line tools rather than using
311 # the API. These mainly test that the various command-line options of commands
312 # work correctly.
314 for env in ["s3member", "s4member", "dc", "chgdcpass"]:
315 plantestsuite("samba4.blackbox.smbclient(%s:local)" % env, "%s:local" % env, [os.path.join(samba4srcdir, "utils/tests/test_smbclient.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient])
317 planpythontestsuite("none", "samba.tests.blackbox.ndrdump")
318 planpythontestsuite("none", "samba.tests.source")
319 plantestsuite("samba4.blackbox.samba_tool(dc:local)", "dc:local", [os.path.join(samba4srcdir, "utils/tests/test_samba_tool.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient])
320 plantestsuite("samba4.blackbox.pkinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_pkinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration])
321 plantestsuite("samba4.blackbox.kinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration])
322 plantestsuite("samba4.blackbox.kinit(fl2000dc:local)", "fl2000dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "arcfour-hmac-md5", smbclient, configuration])
323 plantestsuite("samba4.blackbox.kinit(fl2008r2dc:local)", "fl2008r2dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration])
324 plantestsuite("samba4.blackbox.ktpass(dc)", "dc", [os.path.join(bbdir, "test_ktpass.sh"), '$PREFIX'])
325 plantestsuite("samba4.blackbox.passwords(dc:local)", "dc:local", [os.path.join(bbdir, "test_passwords.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', "$PREFIX", smbclient])
326 plantestsuite("samba4.blackbox.export.keytab(dc:local)", "dc:local", [os.path.join(bbdir, "test_export_keytab.sh"), '$SERVER', '$USERNAME', '$REALM', '$DOMAIN', "$PREFIX", smbclient])
327 plantestsuite("samba4.blackbox.cifsdd(dc)", "dc", [os.path.join(samba4srcdir, "client/tests/test_cifsdd.sh"), '$SERVER', '$USERNAME', '$PASSWORD', "$DOMAIN"])
328 plantestsuite("samba4.blackbox.nmblookup(dc)", "dc", [os.path.join(samba4srcdir, "utils/tests/test_nmblookup.sh"), '$NETBIOSNAME', '$NETBIOSALIAS', '$SERVER', '$SERVER_IP', nmblookup])
329 plantestsuite("samba4.blackbox.locktest(dc)", "dc", [os.path.join(samba4srcdir, "torture/tests/test_locktest.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$DOMAIN', '$PREFIX'])
330 plantestsuite("samba4.blackbox.masktest", "dc", [os.path.join(samba4srcdir, "torture/tests/test_masktest.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$DOMAIN', '$PREFIX'])
331 plantestsuite("samba4.blackbox.gentest(dc)", "dc", [os.path.join(samba4srcdir, "torture/tests/test_gentest.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$DOMAIN', "$PREFIX"])
332 plantestsuite("samba4.blackbox.wbinfo(dc:local)", "dc:local", [os.path.join(samba4srcdir, "../nsswitch/tests/test_wbinfo.sh"), '$DOMAIN', '$USERNAME', '$PASSWORD', "dc"])
333 plantestsuite("samba4.blackbox.wbinfo(s4member:local)", "s4member:local", [os.path.join(samba4srcdir, "../nsswitch/tests/test_wbinfo.sh"), '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', "s4member"])
334 plantestsuite("samba4.blackbox.chgdcpass", "chgdcpass", [os.path.join(bbdir, "test_chgdcpass.sh"), '$SERVER', "CHGDCPASS\$", '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", '$SELFTEST_PREFIX/chgdcpass', smbclient])
335 plantestsuite_loadlist("samba4.rpc.echo against NetBIOS alias", "dc", [valgrindify(smb4torture), "$LISTOPT", 'ncacn_np:$NETBIOSALIAS', '-U$DOMAIN/$USERNAME%$PASSWORD', 'rpc.echo'])
337 # Tests using the "Simple" NTVFS backend
338 for t in ["base.rw1"]:
339 plansmbtorturetestsuite(t, "dc", ["//$SERVER/simple", '-U$USERNAME%$PASSWORD'], modname="samba4.ntvfs.simple.%s" % t)
341 # Domain S4member Tests
342 plansmbtorturetestsuite('rpc.echo', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.echo against s4member server with local creds")
343 plansmbtorturetestsuite('rpc.echo', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'], "samba4.rpc.echo against s4member server with domain creds")
344 plansmbtorturetestsuite('rpc.samr', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr against s4member server with local creds")
345 plansmbtorturetestsuite('rpc.samr.users', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr.users against s4member server with local creds",)
346 plansmbtorturetestsuite('rpc.samr.passwords', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr.passwords against s4member server with local creds")
347 plantestsuite("samba4.blackbox.smbclient against s4member server with local creds", "s4member", [os.path.join(samba4srcdir, "client/tests/test_smbclient.sh"), '$NETBIOSNAME', '$USERNAME', '$PASSWORD', '$NETBIOSNAME', '$PREFIX', smbclient])
349 # RPC Proxy
350 plansmbtorturetestsuite("rpc.echo", "rpc_proxy", ['ncacn_ip_tcp:$NETBIOSNAME', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'], modname="samba4.rpc.echo against rpc proxy with domain creds")
352 # Tests SMB signing
353 for mech in [
354 "-k no",
355 "-k no --option=usespnego=no",
356 "-k no --option=gensec:spengo=no",
357 "-k yes",
358 "-k yes --option=gensec:fake_gssapi_krb5=yes --option=gensec:gssapi_krb5=no"]:
359 for signing in ["--signing=on", "--signing=required"]:
360 signoptions = "%s %s" % (mech, signing)
361 name = "smb.signing on with %s" % signoptions
362 plansmbtorturetestsuite('base.xcopy', "dc", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$USERNAME%$PASSWORD'], modname="samba4.%s" % name)
364 for mech in [
365 "-k no",
366 "-k no --option=usespnego=no",
367 "-k no --option=gensec:spengo=no",
368 "-k yes"]:
369 signoptions = "%s --signing=off" % mech
370 name = "smb.signing disabled on with %s" % signoptions
371 plansmbtorturetestsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$DC_USERNAME%$DC_PASSWORD'], "samba4.%s domain-creds" % name)
372 plansmbtorturetestsuite('base.xcopy', "s3member", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$DC_USERNAME%$DC_PASSWORD'], "samba4.%s domain-creds" % name)
373 plansmbtorturetestsuite('base.xcopy', "plugin_s4_dc", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$USERNAME%$PASSWORD'], "samba4.%s" % name)
374 plansmbtorturetestsuite('base.xcopy', "plugin_s4_dc",
375 ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$DC_USERNAME%$DC_PASSWORD'], "samba4.%s administrator" % name)
377 plantestsuite("samba4.blackbox.bogusdomain", "s3member", ["testprogs/blackbox/bogus.sh", "$NETBIOSNAME", "xcopy_share", '$USERNAME', '$PASSWORD', '$DC_USERNAME', '$DC_PASSWORD', smbclient])
378 for mech in [
379 "-k no",
380 "-k no --option=usespnego=no",
381 "-k no --option=gensec:spengo=no"]:
382 signoptions = "%s --signing=off" % mech
383 plansmbtorturetestsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], modname="samba4.smb.signing on with %s local-creds" % signoptions)
385 plansmbtorturetestsuite('base.xcopy', "dc", ['//$NETBIOSNAME/xcopy_share', '-k', 'no', '--signing=yes', '-U%'], modname="samba4.smb.signing --signing=yes anon")
386 plansmbtorturetestsuite('base.xcopy', "dc", ['//$NETBIOSNAME/xcopy_share', '-k', 'no', '--signing=required', '-U%'], modname="samba4.smb.signing --signing=required anon")
387 plansmbtorturetestsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', '-k', 'no', '--signing=no', '-U%'], modname="samba4.smb.signing --signing=no anon")
390 wb_opts = ["--option=\"torture:strict mode=no\"", "--option=\"torture:timelimit=1\"", "--option=\"torture:winbindd_separator=/\"", "--option=\"torture:winbindd_netbios_name=$SERVER\"", "--option=\"torture:winbindd_netbios_domain=$DOMAIN\""]
392 winbind_struct_tests = smb4torture_testsuites("winbind.struct")
393 winbind_ndr_tests = smb4torture_testsuites("winbind.ndr")
394 for env in ["plugin_s4_dc", "dc", "s4member"]:
395 for t in winbind_struct_tests:
396 plansmbtorturetestsuite(t, env, wb_opts + ['//_none_/_none_'])
398 for t in winbind_ndr_tests:
399 plansmbtorturetestsuite(t, env, wb_opts + ['//_none_/_none_'])
401 nsstest4 = binpath("nsstest")
402 for env in ["plugin_s4_dc", "dc", "s4member", "s3dc", "s3member", "member"]:
403 if os.path.exists(nsstest4):
404 plantestsuite("samba4.nss.test using winbind(%s)" % env, env, [os.path.join(bbdir, "nsstest.sh"), nsstest4, os.path.join(samba4bindir, "default/nsswitch/libnss-winbind.so")])
405 else:
406 skiptestsuite("samba4.nss.test using winbind(%s)" % env, "nsstest not available")
408 subunitrun = valgrindify(python) + " " + os.path.join(samba4srcdir, "scripting/bin/subunitrun")
409 def planoldpythontestsuite(env, module, name=None, extra_path=[], environ={}, extra_args=[]):
410 environ = dict(environ)
411 py_path = list(extra_path)
412 if py_path:
413 environ["PYTHONPATH"] = ":".join(["$PYTHONPATH"] + py_path)
414 args = ["%s=%s" % item for item in environ.iteritems()]
415 args += [subunitrun, "$LISTOPT", module]
416 args += extra_args
417 if name is None:
418 name = module
419 plantestsuite(name, env, args)
421 planpythontestsuite("none", "selftest.tests.test_suite", extra_path=[srcdir()])
422 planpythontestsuite("none", "api", name="ldb.python", extra_path=['lib/ldb/tests/python'])
423 planpythontestsuite("none", "samba.tests.credentials")
424 planoldpythontestsuite("dc:local", "samba.tests.gensec", extra_args=['-U"$USERNAME%$PASSWORD"'])
425 planpythontestsuite("none", "samba.tests.registry")
426 planoldpythontestsuite("none", "simple", extra_path=["%s/lib/tdb/python/tests" % srcdir()], name="tdb.python")
427 planpythontestsuite("none", "samba.tests.auth")
428 planpythontestsuite("none", "samba.tests.getopt")
429 planpythontestsuite("none", "samba.tests.security")
430 planpythontestsuite("none", "samba.tests.dcerpc.misc")
431 planpythontestsuite("none", "samba.tests.param")
432 planpythontestsuite("none", "samba.tests.upgrade")
433 planpythontestsuite("none", "samba.tests.core")
434 planpythontestsuite("none", "samba.tests.provision")
435 planpythontestsuite("none", "samba.tests.samba3")
436 planpythontestsuite("none", "samba.tests.strings")
437 planpythontestsuite("dc:local", "samba.tests.dcerpc.sam")
438 planpythontestsuite("dc:local", "samba.tests.dsdb")
439 planpythontestsuite("none", "samba.tests.netcmd")
440 planpythontestsuite("dc:local", "samba.tests.dcerpc.bare")
441 planpythontestsuite("dc:local", "samba.tests.dcerpc.unix")
442 planpythontestsuite("dc:local", "samba.tests.dcerpc.srvsvc")
443 planpythontestsuite("none", "samba.tests.dcerpc.rpc_talloc")
444 planpythontestsuite("none", "samba.tests.samdb")
445 planpythontestsuite("none", "samba.tests.hostconfig")
446 planpythontestsuite("none", "samba.tests.messaging")
447 planpythontestsuite("none", "samba.tests.samba3sam")
449 planpythontestsuite("dc:local", "samba.tests.samba_tool.timecmd")
450 planpythontestsuite("dc:local", "samba.tests.samba_tool.user")
451 planpythontestsuite("dc:local", "samba.tests.samba_tool.group")
452 planpythontestsuite("plugin_s4_dc:local", "samba.tests.samba_tool.ntacl")
454 planpythontestsuite("none", "subunit")
455 planpythontestsuite("dc:local", "samba.tests.dcerpc.rpcecho")
456 planpythontestsuite("none", "wafsamba.tests.test_suite", extra_path=[os.path.join(samba4srcdir, "..", "buildtools"), os.path.join(samba4srcdir, "..", "buildtools", "wafadmin")])
457 planoldpythontestsuite("dc:local", "samba.tests.dcerpc.registry", extra_args=['-U"$USERNAME%$PASSWORD"'])
458 planoldpythontestsuite("dc", "samba.tests.dcerpc.dnsserver", extra_args=['-U"$USERNAME%$PASSWORD"'])
459 planoldpythontestsuite("plugin_s4_dc", "samba.tests.dcerpc.dnsserver", extra_args=['-U"$USERNAME%$PASSWORD"'])
460 plantestsuite("samba4.ldap.python(dc)", "dc", [python, os.path.join(samba4srcdir, "dsdb/tests/python/ldap.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])
461 plantestsuite("samba4.tokengroups.python(dc)", "dc:local", [python, os.path.join(samba4srcdir, "dsdb/tests/python/token_group.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])
462 plantestsuite("samba4.sam.python(dc)", "dc", [python, os.path.join(samba4srcdir, "dsdb/tests/python/sam.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])
463 planoldpythontestsuite("dc", "dsdb_schema_info",
464 extra_path=[os.path.join(samba4srcdir, 'dsdb/tests/python')],
465 name="samba4.schemaInfo.python(dc)",
466 extra_args=['-U"$DOMAIN/$DC_USERNAME%$DC_PASSWORD"'])
467 plantestsuite("samba4.urgent_replication.python(dc)", "dc:local", [python, os.path.join(samba4srcdir, "dsdb/tests/python/urgent_replication.py"), '$PREFIX_ABS/dc/private/sam.ldb'], allow_empty_output=True)
468 plantestsuite("samba4.ldap.dirsync.python(dc)", "dc", [python, os.path.join(samba4srcdir, "dsdb/tests/python/dirsync.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])
469 plantestsuite("samba4.ldap.sites.python(dc)", "dc", [python, os.path.join(samba4srcdir, "dsdb/tests/python/sites.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])
470 for env in ["dc", "fl2000dc", "fl2003dc", "fl2008r2dc"]:
471 plantestsuite("samba4.ldap_schema.python(%s)" % env, env, [python, os.path.join(samba4srcdir, "dsdb/tests/python/ldap_schema.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])
472 plantestsuite("samba4.ldap.possibleInferiors.python(%s)" % env, env, [python, os.path.join(samba4srcdir, "dsdb/samdb/ldb_modules/tests/possibleinferiors.py"), "ldap://$SERVER", '-U"$USERNAME%$PASSWORD"', "-W$DOMAIN"])
473 plantestsuite("samba4.ldap.secdesc.python(%s)" % env, env, [python, os.path.join(samba4srcdir, "dsdb/tests/python/sec_descriptor.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])
474 plantestsuite("samba4.ldap.acl.python(%s)" % env, env, [python, os.path.join(samba4srcdir, "dsdb/tests/python/acl.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])
475 if env != "fl2000dc":
476 # This test makes excessive use of the "userPassword" attribute which
477 # isn't available on DCs with Windows 2000 domain function level -
478 # therefore skip it in that configuration
479 plantestsuite("samba4.ldap.passwords.python(%s)" % env, env, [python, os.path.join(samba4srcdir, "dsdb/tests/python/passwords.py"), "$SERVER", '-U"$USERNAME%$PASSWORD"', "-W$DOMAIN"])
481 plantestsuite("samba4.blackbox.dbcheck.alpha13", "none" , ["PYTHON=%s" % python, os.path.join(bbdir, "dbcheck-alpha13.sh"), '$PREFIX_ABS/provision', configuration])
482 planpythontestsuite("dc:local", "samba.tests.upgradeprovisionneeddc")
483 planpythontestsuite("none", "samba.tests.upgradeprovision")
484 planpythontestsuite("none", "samba.tests.xattr")
485 planpythontestsuite("none", "samba.tests.ntacls")
486 planpythontestsuite("plugin_s4_dc:local", "samba.tests.posixacl")
487 plantestsuite("samba4.deletetest.python(dc)", "dc", ['PYTHONPATH="$PYTHONPATH:%s/lib/subunit/python:%s/lib/testtools"' % (srcdir(), srcdir()),
488 python, os.path.join(samba4srcdir, "dsdb/tests/python/deletetest.py"),
489 '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN'])
490 planpythontestsuite("none", "samba.tests.policy")
491 plantestsuite("samba4.blackbox.samba3dump", "none", [python, os.path.join(samba4srcdir, "scripting/bin/samba3dump"), os.path.join(samba4srcdir, "../testdata/samba3")], allow_empty_output=True)
492 plantestsuite("samba4.blackbox.upgrade", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_s3upgrade.sh"), '$PREFIX/provision'])
493 plantestsuite("samba4.blackbox.provision.py", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_provision.sh"), '$PREFIX/provision'])
494 plantestsuite("samba4.blackbox.upgradeprovision.py", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_upgradeprovision.sh"), '$PREFIX/provision'])
495 plantestsuite("samba4.blackbox.setpassword.py", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_setpassword.sh"), '$PREFIX/provision'])
496 plantestsuite("samba4.blackbox.newuser.py", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_newuser.sh"), '$PREFIX/provision'])
497 plantestsuite("samba4.blackbox.group.py", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_group.sh"), '$PREFIX/provision'])
498 plantestsuite("samba4.blackbox.spn.py(dc:local)", "dc:local", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_spn.sh"), '$PREFIX/dc'])
499 plantestsuite("samba4.ldap.bind(dc)", "dc", [python, os.path.join(srcdir(), "auth/credentials/tests/bind.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"'])
501 # DRS python tests
502 planoldpythontestsuite("vampire_dc", "samba.tests.blackbox.samba_tool_drs",
503 environ={'DC1': '$DC_SERVER', 'DC2': '$VAMPIRE_DC_SERVER'},
504 extra_args=['-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
505 planoldpythontestsuite("vampire_dc:local", "replica_sync",
506 extra_path=[os.path.join(samba4srcdir, 'torture/drs/python')],
507 name="samba4.drs.replica_sync.python(vampire_dc)",
508 environ={'DC1': '$DC_SERVER', 'DC2': '$VAMPIRE_DC_SERVER'},
509 extra_args=['-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
510 planoldpythontestsuite("vampire_dc", "delete_object",
511 extra_path=[os.path.join(samba4srcdir, 'torture/drs/python')],
512 name="samba4.drs.delete_object.python(vampire_dc)",
513 environ={'DC1': '$DC_SERVER', 'DC2': '$VAMPIRE_DC_SERVER'},
514 extra_args=['-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
515 planoldpythontestsuite("vampire_dc", "fsmo",
516 name="samba4.drs.fsmo.python(vampire_dc)",
517 extra_path=[os.path.join(samba4srcdir, 'torture/drs/python')],
518 environ={'DC1': "$DC_SERVER", 'DC2': "$VAMPIRE_DC_SERVER"},
519 extra_args=['-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
520 planoldpythontestsuite("vampire_dc", "repl_schema",
521 extra_path=[os.path.join(samba4srcdir, 'torture/drs/python')],
522 name="samba4.drs.repl_schema.python(vampire_dc)",
523 environ={'DC1': "$DC_SERVER", 'DC2': '$VAMPIRE_DC_SERVER'},
524 extra_args=['-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
526 # This makes sure we test the rid allocation code
527 t = "rpc.samr.large-dc"
528 plansmbtorturetestsuite(t, "vampire_dc", ['$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname=("samba4.%s.one" % t))
529 plansmbtorturetestsuite(t, "vampire_dc", ['$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname="samba4.%s.two" % t)
531 # some RODC testing
532 for env in ['rodc']:
533 plansmbtorturetestsuite('rpc.echo', env, ['ncacn_np:$SERVER', "-k", "yes", '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname="samba4.rpc.echo")
534 plansmbtorturetestsuite('rpc.echo', "%s:local" % env, ['ncacn_np:$SERVER', "-k", "yes", '-P', '--workgroup=$DOMAIN'], modname="samba4.rpc.echo")
535 plantestsuite("samba4.blackbox.provision-backend", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_provision-backend.sh"), '$PREFIX/provision'])
537 # Test renaming the DC
538 plantestsuite("samba4.blackbox.renamedc.sh", "none", ["PYTHON=%s" % python, os.path.join(bbdir, "renamedc.sh"), '$PREFIX/provision'])
540 # Demote the vampire DC, it must be the last test on the VAMPIRE DC
541 for env in ['vampire_dc', 'promoted_vampire_dc']:
542 plantestsuite("samba4.blackbox.samba_tool_demote(%s)" % env, env, [os.path.join(samba4srcdir, "utils/tests/test_demote.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', '$DC_SERVER', '$PREFIX/%s' % env, smbclient])
543 # check the databases are all OK. PLEASE LEAVE THIS AS THE LAST TEST
544 for env in ["dc", "fl2000dc", "fl2003dc", "fl2008r2dc", 'vampire_dc', 'promoted_vampire_dc']:
545 plantestsuite("samba4.blackbox.dbcheck(%s)" % env, env + ":local" , ["PYTHON=%s" % python, os.path.join(bbdir, "dbcheck.sh"), '$PREFIX/provision', configuration])