s3:util:sharesec ace_compare() uses NUMERIC_CMP()
[samba.git] / selftest / tests.py
blob21e1a490644842a487e33a17ef91d6d4197906ee
1 #!/usr/bin/python
2 # This script generates a list of testsuites that should be run as part of
3 # the Samba 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, 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 and makes
13 # it possible to run the testsuite against other servers, such as
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, tempfile
22 from selftesthelpers import bindir, srcdir, python
23 from selftesthelpers import planpythontestsuite, samba4srcdir
24 from selftesthelpers import plantestsuite, bbdir
25 from selftesthelpers import configuration, valgrindify
26 from selftesthelpers import skiptestsuite
28 samba4bindir = bindir()
29 try:
30 config_h = os.environ["CONFIG_H"]
31 except KeyError:
32 config_h = os.path.join(samba4bindir, "default/include/config.h")
34 # check available features
35 config_hash = dict()
36 f = open(config_h, 'r')
37 try:
38 lines = f.readlines()
39 config_hash = dict((x[0], ' '.join(x[1:]))
40 for x in map(lambda line: line.strip().split(' ')[1:],
41 list(filter(lambda line: (line[0:7] == '#define') and (len(line.split(' ')) > 2), lines))))
42 finally:
43 f.close()
45 have_man_pages_support = ("XSLTPROC_MANPAGES" in config_hash)
46 with_pam = ("WITH_PAM" in config_hash)
47 with_elasticsearch_backend = ("HAVE_SPOTLIGHT_BACKEND_ES" in config_hash)
48 pam_wrapper_so_path = config_hash.get("LIBPAM_WRAPPER_SO_PATH")
49 pam_set_items_so_path = config_hash.get("PAM_SET_ITEMS_SO_PATH")
50 have_heimdal_support = "SAMBA4_USES_HEIMDAL" in config_hash
51 using_system_gssapi = "USING_SYSTEM_GSSAPI" in config_hash
52 have_lmdb = "HAVE_LMDB" in config_hash
53 have_libldap = "HAVE_LIBLDAP" in config_hash
54 have_liblber = "HAVE_LIBLBER" in config_hash
56 planpythontestsuite("none", "samba.tests.source")
57 planpythontestsuite("none", "samba.tests.source_chars")
59 if have_man_pages_support:
60 planpythontestsuite("none", "samba.tests.docs")
62 try:
63 import testscenarios
64 except ImportError:
65 skiptestsuite("subunit", "testscenarios not available")
66 else:
67 planpythontestsuite("none", "subunit.tests.test_suite")
68 planpythontestsuite("none", "samba.tests.blackbox.ndrdump")
69 planpythontestsuite("none", "samba.tests.blackbox.check_output")
71 # LDB tests for standalone operation
72 planpythontestsuite("none", "api",
73 name="ldb.python.api",
74 extra_path=['lib/ldb/tests/python'],
75 environ={'HAVE_LMDB': str(int(have_lmdb))})
76 planpythontestsuite("none", "crash",
77 name="ldb.python.crash",
78 extra_path=['lib/ldb/tests/python'],
79 environ={'HAVE_LMDB': str(int(have_lmdb))})
80 planpythontestsuite("none", "index",
81 name="ldb.python.index",
82 extra_path=['lib/ldb/tests/python'],
83 environ={'HAVE_LMDB': str(int(have_lmdb))})
84 planpythontestsuite("none", "repack",
85 name="ldb.python.repack",
86 extra_path=['lib/ldb/tests/python'],
87 environ={'HAVE_LMDB': str(int(have_lmdb))})
89 # LDB tests for standalone operation, in the tr_TR.UTF-8 to cover
90 # dotless i locales, see
91 # https://bugzilla.samba.org/show_bug.cgi?id=15248
92 planpythontestsuite("none", "api",
93 name="ldb.python.api.tr",
94 extra_path=['lib/ldb/tests/python'],
95 environ={'LC_ALL': 'tr_TR.UTF-8',
96 'HAVE_LMDB': str(int(have_lmdb))})
97 planpythontestsuite("none", "index",
98 name="ldb.python.index.tr",
99 extra_path=['lib/ldb/tests/python'],
100 environ={'LC_ALL': 'tr_TR.UTF-8',
101 'HAVE_LMDB': str(int(have_lmdb))})
103 # LDB cmocka tests
105 ldb_test_exes = ['test_ldb_qsort',
106 'test_ldb_dn',
107 'ldb_msg_test',
108 'ldb_tdb_mod_op_test',
109 'ldb_tdb_guid_mod_op_test',
110 'ldb_tdb_kv_ops_test',
111 'ldb_tdb_test',
112 'ldb_match_test',
113 'ldb_key_value_test',
114 # we currently don't run ldb_key_value_sub_txn_tdb_test as it
115 # tests the nested/sub transaction handling
116 # on operations which the TDB backend does not currently
117 # support
118 # 'ldb_key_value_sub_txn_tdb_test'
119 'ldb_parse_test',
120 'ldb_filter_attrs_test',
121 'ldb_filter_attrs_in_place_test',
123 # if LIB_LDAP and LIB_LBER defined, then we can test ldb_ldap backend
124 # behavior regression for bz#14413
125 if have_libldap and have_liblber:
126 ldb_test_exes += ["lldb_ldap_test"]
128 if have_lmdb:
129 ldb_test_exes += ['ldb_mdb_mod_op_test',
130 'ldb_lmdb_test',
131 # we don't want to run ldb_lmdb_size_test (which proves
132 # we can fit > 4G of data into the DB), it would fill up
133 # the disk on many of our test instances
134 'ldb_mdb_kv_ops_test',
135 'ldb_key_value_sub_txn_mdb_test',
136 'ldb_lmdb_free_list_test']
137 else:
138 ldb_test_exes += ['ldb_no_lmdb_test']
140 for ldb_test_exe in ldb_test_exes:
141 plantestsuite(f"ldb.unittests.{ldb_test_exe}", "none",
142 [os.path.join(bindir(), f"default/lib/ldb/{ldb_test_exe}")])
144 # Shell based LDB blackbox tests and the older ldbtest C tests
145 ldbdir = os.path.join(srcdir(), "lib/ldb")
146 plantestsuite("ldb.base", "none", "%s/tests/test-tdb-subunit.sh %s" % (ldbdir, samba4bindir))
148 planpythontestsuite("none", "samba.tests.credentials")
149 planpythontestsuite("none", "samba.tests.registry")
150 planpythontestsuite("ad_dc_ntvfs:local", "samba.tests.auth")
151 planpythontestsuite("none", "samba.tests.get_opt")
152 planpythontestsuite("none", "samba.tests.cred_opt")
153 planpythontestsuite("none", "samba.tests.security")
154 planpythontestsuite("none", "samba.tests.dcerpc.misc")
155 planpythontestsuite("none", "samba.tests.dcerpc.integer")
156 planpythontestsuite("none", "samba.tests.param")
157 planpythontestsuite("none", "samba.tests.upgrade")
158 planpythontestsuite("none", "samba.tests.core")
159 planpythontestsuite("none", "samba.tests.common")
160 planpythontestsuite("none", "samba.tests.provision")
161 planpythontestsuite("none", "samba.tests.password_quality")
162 planpythontestsuite("none", "samba.tests.strings")
163 planpythontestsuite("none", "samba.tests.netcmd")
164 planpythontestsuite("none", "samba.tests.dcerpc.rpc_talloc")
165 planpythontestsuite("none", "samba.tests.dcerpc.array")
166 planpythontestsuite("none", "samba.tests.dcerpc.string_tests")
167 planpythontestsuite("none", "samba.tests.hostconfig")
168 planpythontestsuite("ad_dc_ntvfs:local", "samba.tests.messaging")
169 planpythontestsuite("none", "samba.tests.s3param")
170 planpythontestsuite("none", "samba.tests.s3passdb")
171 planpythontestsuite("none", "samba.tests.s3registry")
172 planpythontestsuite("none", "samba.tests.s3windb")
173 planpythontestsuite("none", "samba.tests.s3idmapdb")
174 planpythontestsuite("none", "samba.tests.samba3sam")
175 planpythontestsuite("none", "samba.tests.dsdb_api")
176 planpythontestsuite("none", "samba.tests.smbconf")
177 planpythontestsuite("none", "samba.tests.logfiles")
178 planpythontestsuite("none", "samba.tests.conditional_ace_claims")
179 planpythontestsuite(
180 "none", "wafsamba.tests.test_suite",
181 extra_path=[os.path.join(samba4srcdir, "..", "buildtools"),
182 os.path.join(samba4srcdir, "..", "third_party", "waf")])
183 planpythontestsuite("fileserver", "samba.tests.smbd_fuzztest")
184 planpythontestsuite("nt4_dc_smb1", "samba.tests.dcerpc.binding")
185 planpythontestsuite('ad_dc:local', "samba.tests.dcerpc.samr_change_password")
186 planpythontestsuite('ad_dc_fips:local',
187 "samba.tests.dcerpc.samr_change_password",
188 environ={'GNUTLS_FORCE_FIPS_MODE': '1',
189 'OPENSSL_FORCE_FIPS_MODE': '1'})
191 planpythontestsuite("none", "samba.tests.safe_tarfile")
193 def cmdline(script, *args):
195 Prefix PYTHON env var and append --configurefile option to abs script path.
197 script.sh arg1 arg2
199 PYTHON=python /path/to/bbdir/script.sh arg1 arg2 \
200 --configurefile $SMB_CONF_FILE
202 return [
203 "PYTHON=%s" % python,
204 os.path.join(bbdir, script),
205 ] + list(args) + [configuration]
208 plantestsuite(
209 "samba4.blackbox.demote-saveddb", "none",
210 cmdline('demote-saveddb.sh', '$PREFIX_ABS/demote'))
212 plantestsuite(
213 "samba4.blackbox.dbcheck.alpha13", "none",
214 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
215 'alpha13'))
217 # same test as above but skip member link checks
218 plantestsuite(
219 "samba4.blackbox.dbcheck.alpha13.quick", "none",
220 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
221 'alpha13', '--quick-membership-checks'))
223 plantestsuite(
224 "samba4.blackbox.dbcheck.release-4-0-0", "none",
225 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
226 'release-4-0-0'))
228 # same test as above but skip member link checks
229 plantestsuite(
230 "samba4.blackbox.dbcheck.release-4-0-0.quick", "none",
231 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
232 'release-4-0-0', '--quick-membership-checks'))
234 plantestsuite(
235 "samba4.blackbox.dbcheck.release-4-1-0rc3", "none",
236 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
237 'release-4-1-0rc3'))
239 # same test as above but skip member link checks
240 plantestsuite(
241 "samba4.blackbox.dbcheck.release-4-1-0rc3.quick", "none",
242 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
243 'release-4-1-0rc3', '--quick-membership-checks'))
245 plantestsuite(
246 "samba4.blackbox.dbcheck.release-4-1-6-partial-object", "none",
247 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
248 'release-4-1-6-partial-object'))
250 # same test as above but skip member link checks
251 plantestsuite(
252 "samba4.blackbox.dbcheck.release-4-1-6-partial-object.quick", "none",
253 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
254 'release-4-1-6-partial-object', '--quick-membership-checks'))
256 plantestsuite(
257 "samba4.blackbox.dbcheck.release-4-5-0-pre1", "none",
258 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
259 'release-4-5-0-pre1'))
261 # same test as above but skip member link checks
262 plantestsuite(
263 "samba4.blackbox.dbcheck.release-4-5-0-pre1.quick", "none",
264 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
265 'release-4-5-0-pre1', '--quick-membership-checks'))
267 plantestsuite(
268 "samba4.blackbox.upgradeprovision.alpha13", "none",
269 cmdline('upgradeprovision-oldrelease.sh', '$PREFIX_ABS/provision',
270 'alpha13'))
272 plantestsuite(
273 "samba4.blackbox.upgradeprovision.release-4-0-0", "none",
274 cmdline('upgradeprovision-oldrelease.sh', '$PREFIX_ABS/provision',
275 'release-4-0-0'))
277 plantestsuite(
278 "samba4.blackbox.tombstones-expunge.release-4-5-0-pre1", "none",
279 cmdline('tombstones-expunge.sh', '$PREFIX_ABS/provision',
280 'release-4-5-0-pre1'))
282 plantestsuite(
283 "samba4.blackbox.dbcheck-links.release-4-5-0-pre1", "none",
284 cmdline('dbcheck-links.sh', '$PREFIX_ABS/provision',
285 'release-4-5-0-pre1'))
287 plantestsuite(
288 "samba4.blackbox.runtime-links.release-4-5-0-pre1", "none",
289 cmdline('runtime-links.sh', '$PREFIX_ABS/provision',
290 'release-4-5-0-pre1'))
292 plantestsuite(
293 "samba4.blackbox.schemaupgrade", "none",
294 cmdline('schemaupgrade.sh', '$PREFIX_ABS/provision'))
296 plantestsuite(
297 "samba4.blackbox.functionalprep", "none",
298 cmdline('functionalprep.sh', '$PREFIX_ABS/provision'))
300 plantestsuite(
301 "samba4.blackbox.test_special_group", "none",
302 cmdline('test_special_group.sh', '$PREFIX_ABS/provision'))
304 planpythontestsuite("fileserver", "samba.tests.blackbox.http_content")
305 planpythontestsuite("fileserver", "samba.tests.blackbox.http_chunk")
306 planpythontestsuite("none", "samba.tests.upgradeprovision")
307 planpythontestsuite("none", "samba.tests.xattr")
308 planpythontestsuite("none", "samba.tests.ntacls")
309 planpythontestsuite("none", "samba.tests.policy")
310 planpythontestsuite("none", "samba.tests.kcc.graph")
311 planpythontestsuite("none", "samba.tests.kcc.graph_utils")
312 planpythontestsuite("none", "samba.tests.kcc.ldif_import_export")
313 planpythontestsuite("none", "samba.tests.graph")
314 plantestsuite("wafsamba.duplicate_symbols", "none", [os.path.join(srcdir(), "buildtools/wafsamba/test_duplicate_symbol.sh")])
315 planpythontestsuite("none", "samba.tests.glue")
316 planpythontestsuite("none", "samba.tests.tdb_util")
317 planpythontestsuite("none", "samba.tests.samdb")
318 planpythontestsuite("none", "samba.tests.samdb_api")
319 planpythontestsuite("none", "samba.tests.ndr.gkdi")
320 planpythontestsuite("none", "samba.tests.ndr.gmsa")
321 planpythontestsuite("none", "samba.tests.ndr.wbint")
323 if with_pam:
324 env = "ad_member"
325 options = [
327 "description": "krb5",
328 "pam_options": "krb5_auth krb5_ccache_type=FILE:%s/krb5cc_pam_test_%%u" % (tempfile.gettempdir()),
331 "description": "default",
332 "pam_options": "",
335 for o in options:
336 description = o["description"]
337 pam_options = "'%s'" % o["pam_options"]
339 plantestsuite("samba.tests.pam_winbind(local+%s)" % description, env,
340 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
341 valgrindify(python), pam_wrapper_so_path,
342 "$SERVER", "$USERNAME", "$PASSWORD",
343 pam_options])
344 plantestsuite("samba.tests.pam_winbind(domain1+%s)" % description, env,
345 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
346 valgrindify(python), pam_wrapper_so_path,
347 "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD",
348 pam_options])
349 plantestsuite("samba.tests.pam_winbind(domain2+%s)" % description, env,
350 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
351 valgrindify(python), pam_wrapper_so_path,
352 "$REALM", "$DC_USERNAME", "$DC_PASSWORD",
353 pam_options])
354 plantestsuite("samba.tests.pam_winbind(domain3+%s)" % description, env,
355 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
356 valgrindify(python), pam_wrapper_so_path,
357 "''", "${DC_USERNAME}@${DOMAIN}", "$DC_PASSWORD",
358 pam_options])
359 plantestsuite("samba.tests.pam_winbind(domain4+%s)" % description, env,
360 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
361 valgrindify(python), pam_wrapper_so_path,
362 "''", "${DC_USERNAME}@${REALM}", "$DC_PASSWORD",
363 pam_options])
364 plantestsuite("samba.tests.pam_winbind(domain5+%s)" % description, env,
365 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
366 valgrindify(python), pam_wrapper_so_path,
367 "$REALM", "${DC_USERNAME}@${DOMAIN}", "$DC_PASSWORD",
368 pam_options])
369 plantestsuite("samba.tests.pam_winbind(domain6+%s)" % description, env,
370 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
371 valgrindify(python), pam_wrapper_so_path,
372 "$DOMAIN", "${DC_USERNAME}@${REALM}", "$DC_PASSWORD",
373 pam_options])
374 plantestsuite("samba.tests.pam_winbind(trust_f_both1+%s)" % description, env,
375 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
376 valgrindify(python), pam_wrapper_so_path,
377 "$TRUST_F_BOTH_DOMAIN",
378 "$TRUST_F_BOTH_USERNAME",
379 "$TRUST_F_BOTH_PASSWORD",
380 pam_options])
381 plantestsuite("samba.tests.pam_winbind(trust_f_both2+%s)" % description, env,
382 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
383 valgrindify(python), pam_wrapper_so_path,
384 "$TRUST_F_BOTH_REALM",
385 "$TRUST_F_BOTH_USERNAME",
386 "$TRUST_F_BOTH_PASSWORD",
387 pam_options])
388 plantestsuite("samba.tests.pam_winbind(trust_f_both3+%s)" % description, env,
389 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
390 valgrindify(python), pam_wrapper_so_path,
391 "''",
392 "${TRUST_F_BOTH_USERNAME}@${TRUST_F_BOTH_DOMAIN}",
393 "$TRUST_F_BOTH_PASSWORD",
394 pam_options])
395 plantestsuite("samba.tests.pam_winbind(trust_f_both4+%s)" % description, env,
396 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
397 valgrindify(python), pam_wrapper_so_path,
398 "''",
399 "${TRUST_F_BOTH_USERNAME}@${TRUST_F_BOTH_REALM}",
400 "$TRUST_F_BOTH_PASSWORD",
401 pam_options])
402 plantestsuite("samba.tests.pam_winbind(trust_f_both5+%s)" % description, env,
403 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
404 valgrindify(python), pam_wrapper_so_path,
405 "${TRUST_F_BOTH_REALM}",
406 "${TRUST_F_BOTH_USERNAME}@${TRUST_F_BOTH_DOMAIN}",
407 "$TRUST_F_BOTH_PASSWORD",
408 pam_options])
409 plantestsuite("samba.tests.pam_winbind(trust_f_both6+%s)" % description, env,
410 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
411 valgrindify(python), pam_wrapper_so_path,
412 "${TRUST_F_BOTH_DOMAIN}",
413 "${TRUST_F_BOTH_USERNAME}@${TRUST_F_BOTH_REALM}",
414 "$TRUST_F_BOTH_PASSWORD",
415 pam_options])
416 plantestsuite("samba.tests.pam_winbind(trust_e_both1+%s)" % description, env,
417 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
418 valgrindify(python), pam_wrapper_so_path,
419 "$TRUST_E_BOTH_DOMAIN",
420 "$TRUST_E_BOTH_USERNAME",
421 "$TRUST_E_BOTH_PASSWORD",
422 pam_options])
423 plantestsuite("samba.tests.pam_winbind(trust_e_both2+%s)" % description, env,
424 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
425 valgrindify(python), pam_wrapper_so_path,
426 "$TRUST_E_BOTH_REALM",
427 "$TRUST_E_BOTH_USERNAME",
428 "$TRUST_E_BOTH_PASSWORD",
429 pam_options])
430 plantestsuite("samba.tests.pam_winbind(trust_e_both3+%s)" % description, env,
431 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
432 valgrindify(python), pam_wrapper_so_path,
433 "''",
434 "${TRUST_E_BOTH_USERNAME}@${TRUST_E_BOTH_DOMAIN}",
435 "$TRUST_E_BOTH_PASSWORD",
436 pam_options])
437 plantestsuite("samba.tests.pam_winbind(trust_e_both4+%s)" % description, env,
438 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
439 valgrindify(python), pam_wrapper_so_path,
440 "''",
441 "${TRUST_E_BOTH_USERNAME}@${TRUST_E_BOTH_REALM}",
442 "$TRUST_E_BOTH_PASSWORD",
443 pam_options])
444 plantestsuite("samba.tests.pam_winbind(trust_e_both5+%s)" % description, env,
445 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
446 valgrindify(python), pam_wrapper_so_path,
447 "${TRUST_E_BOTH_REALM}",
448 "${TRUST_E_BOTH_USERNAME}@${TRUST_E_BOTH_DOMAIN}",
449 "$TRUST_E_BOTH_PASSWORD",
450 pam_options])
451 plantestsuite("samba.tests.pam_winbind(trust_e_both6+%s)" % description, env,
452 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
453 valgrindify(python), pam_wrapper_so_path,
454 "${TRUST_E_BOTH_DOMAIN}",
455 "${TRUST_E_BOTH_USERNAME}@${TRUST_E_BOTH_REALM}",
456 "$TRUST_E_BOTH_PASSWORD",
457 pam_options])
459 for authtok_options in ["", "use_authtok", "try_authtok"]:
460 _pam_options = "'%s %s'" % (o["pam_options"], authtok_options)
461 _description = "%s %s" % (description, authtok_options)
462 plantestsuite("samba.tests.pam_winbind_chauthtok(domain+%s)" % _description, env,
463 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind_chauthtok.sh"),
464 valgrindify(python), pam_wrapper_so_path, pam_set_items_so_path,
465 "$DOMAIN", "TestPamOptionsUser", "oldp@ssword0", "newp@ssword0",
466 _pam_options, 'yes',
467 "$DC_SERVER", "$DC_USERNAME", "$DC_PASSWORD"])
469 plantestsuite("samba.tests.pam_winbind_warn_pwd_expire(domain+%s)" % description, env,
470 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind_warn_pwd_expire.sh"),
471 valgrindify(python), pam_wrapper_so_path,
472 "$DOMAIN", "alice", "Secret007",
473 pam_options])
475 description = "krb5"
476 pam_options = "'krb5_auth krb5_ccache_type=FILE:%s/krb5cc_pam_test_setcred_%%u'" % (tempfile.gettempdir())
477 plantestsuite("samba.tests.pam_winbind_setcred(domain+%s)" % description, "ad_dc:local",
478 [os.path.join(srcdir(), "python/samba/tests/test_pam_winbind_setcred.sh"),
479 valgrindify(python), pam_wrapper_so_path,
480 "${DOMAIN}", "${DC_USERNAME}", "${DC_PASSWORD}",
481 pam_options])
484 plantestsuite("samba.unittests.krb5samba", "none",
485 [os.path.join(bindir(), "default/testsuite/unittests/test_krb5samba")])
486 plantestsuite("samba.unittests.lib_util_modules", "none",
487 [os.path.join(bindir(), "default/testsuite/unittests/test_lib_util_modules")])
488 plantestsuite("samba.unittests.background_send",
489 "none",
490 [os.path.join(
491 bindir(),
492 "default/testsuite/unittests/test_background_send"),
493 "$SMB_CONF_PATH"])
495 plantestsuite("samba.unittests.smb1cli_session", "none",
496 [os.path.join(bindir(), "default/libcli/smb/test_smb1cli_session")])
497 plantestsuite("samba.unittests.smb_util_translate", "none",
498 [os.path.join(bindir(), "default/libcli/smb/test_util_translate")])
500 plantestsuite("samba.unittests.talloc_keep_secret", "none",
501 [os.path.join(bindir(), "default/lib/util/test_talloc_keep_secret")])
503 plantestsuite("samba.unittests.tldap", "none",
504 [os.path.join(bindir(), "default/source3/test_tldap")])
505 plantestsuite("samba.unittests.rfc1738", "none",
506 [os.path.join(bindir(), "default/lib/util/test_rfc1738")])
507 plantestsuite("samba.unittests.kerberos", "none",
508 [os.path.join(bindir(), "test_kerberos")])
509 plantestsuite("samba.unittests.ms_fnmatch", "none",
510 [os.path.join(bindir(), "default/lib/util/test_ms_fnmatch")])
511 plantestsuite("samba.unittests.byteorder", "none",
512 [os.path.join(bindir(), "default/lib/util/test_byteorder")])
513 plantestsuite("samba.unittests.bytearray", "none",
514 [os.path.join(bindir(), "default/lib/util/test_bytearray")])
515 plantestsuite("samba.unittests.byteorder_verify", "none",
516 [os.path.join(bindir(), "default/lib/util/test_byteorder_verify")])
517 plantestsuite("samba.unittests.util_paths", "none",
518 [os.path.join(bindir(), "default/lib/util/test_util_paths")])
519 plantestsuite("samba.unittests.util", "none",
520 [os.path.join(bindir(), "default/lib/util/test_util")])
521 plantestsuite("samba.unittests.memcache", "none",
522 [os.path.join(bindir(), "default/lib/util/test_memcache")])
523 plantestsuite("samba.unittests.sys_rw", "none",
524 [os.path.join(bindir(), "default/lib/util/test_sys_rw")])
525 plantestsuite("samba.unittests.stable_sort", "none",
526 [os.path.join(bindir(), "default/lib/util/test_stable_sort")])
527 plantestsuite("samba.unittests.ntlm_check", "none",
528 [os.path.join(bindir(), "default/libcli/auth/test_ntlm_check")])
529 plantestsuite("samba.unittests.gnutls", "none",
530 [os.path.join(bindir(), "default/libcli/auth/test_gnutls")])
531 plantestsuite("samba.unittests.rc4_passwd_buffer", "none",
532 [os.path.join(bindir(), "default/libcli/auth/test_rc4_passwd_buffer")])
533 plantestsuite("samba.unittests.schannel", "none",
534 [os.path.join(bindir(), "default/libcli/auth/test_schannel")])
535 plantestsuite("samba.unittests.test_registry_regfio", "none",
536 [os.path.join(bindir(), "default/source3/test_registry_regfio")])
537 plantestsuite("samba.unittests.test_oLschema2ldif", "none",
538 [os.path.join(bindir(), "default/source4/utils/oLschema2ldif/test_oLschema2ldif")])
539 plantestsuite("samba.unittests.auth.sam", "none",
540 [os.path.join(bindir(), "test_auth_sam")])
541 if have_heimdal_support and not using_system_gssapi:
542 plantestsuite("samba.unittests.auth.heimdal_gensec_unwrap_des", "none",
543 [valgrindify(os.path.join(bindir(), "test_heimdal_gensec_unwrap_des"))])
544 plantestsuite("samba.unittests.test_wsp_parser", "none",
545 [os.path.join(bindir(), "default/libcli/wsp/test_wsp_parser")] + [configuration])
546 if with_elasticsearch_backend:
547 plantestsuite("samba.unittests.mdsparser_es", "none",
548 [os.path.join(bindir(), "default/source3/test_mdsparser_es")] + [configuration])
549 plantestsuite("samba.unittests.mdsparser_es_failures", "none",
550 [os.path.join(bindir(), "default/source3/test_mdsparser_es"),
551 " --option=elasticsearch:testmappingfailures=yes",
552 " --option=elasticsearch:ignoreunknownattribute=yes",
553 " --option=elasticsearch:ignoreunknowntype=yes"] +
554 [configuration])
555 plantestsuite("samba.unittests.credentials", "none",
556 [os.path.join(bindir(), "default/auth/credentials/test_creds")])
557 plantestsuite("samba.unittests.tsocket_bsd_addr", "none",
558 [os.path.join(bindir(), "default/lib/tsocket/test_tsocket_bsd_addr")])
559 if ("HAVE_TCP_USER_TIMEOUT" in config_hash):
560 plantestsuite("samba.unittests.tsocket_tstream", "none",
561 [os.path.join(bindir(), "default/lib/tsocket/test_tstream")],
562 environ={'SOCKET_WRAPPER_DIR': ''})
563 plantestsuite("samba.unittests.adouble", "none",
564 [os.path.join(bindir(), "test_adouble")])
565 plantestsuite("samba.unittests.gnutls_aead_aes_256_cbc_hmac_sha512", "none",
566 [os.path.join(bindir(), "test_gnutls_aead_aes_256_cbc_hmac_sha512")])
567 plantestsuite("samba.unittests.gnutls_sp800_108", "none",
568 [os.path.join(bindir(), "test_gnutls_sp800_108")])
569 plantestsuite("samba.unittests.gkdi", "none",
570 [os.path.join(bindir(), "test_gkdi")])
571 plantestsuite("samba.unittests.gkdi_key_derivation", "none",
572 [os.path.join(bindir(), "test_gkdi_key_derivation")])
573 plantestsuite("samba.unittests.encode_decode", "none",
574 [os.path.join(bindir(), "test_encode_decode")])
576 plantestsuite("samba.unittests.compression.lzxpress_huffman", "none",
577 [os.path.join(bindir(), "default/lib/compression/test_lzx_huffman")])
578 plantestsuite("samba.unittests.compression.lzxpress_plain", "none",
579 [os.path.join(bindir(),
580 "default/lib/compression/test_lzxpress_plain")])
582 plantestsuite("samba.unittests.sddl_conditional_ace", "none",
583 [os.path.join(bindir(), "test_sddl_conditional_ace")])
584 plantestsuite("samba.unittests.run_conditional_ace", "none",
585 [os.path.join(bindir(), "test_run_conditional_ace")])
586 plantestsuite("samba.unittests.claim_conversion", "none",
587 [os.path.join(bindir(), "test_claim_conversion")])