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
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()
30 config_h
= os
.environ
["CONFIG_H"]
32 config_h
= os
.path
.join(samba4bindir
, "default/include/config.h")
34 # check available features
36 f
= open(config_h
, 'r')
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
))))
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")
65 skiptestsuite("subunit", "testscenarios not available")
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_misc",
73 name
="ldb.python.api_misc",
74 extra_path
=['lib/ldb/tests/python'],
75 environ
={'HAVE_LMDB': str(int(have_lmdb
))})
76 planpythontestsuite("none", "api_search",
77 name
="ldb.python.api_search",
78 extra_path
=['lib/ldb/tests/python'],
79 environ
={'HAVE_LMDB': str(int(have_lmdb
))})
80 planpythontestsuite("none", "api_add_modify",
81 name
="ldb.python.api_add_modify",
82 extra_path
=['lib/ldb/tests/python'],
83 environ
={'HAVE_LMDB': str(int(have_lmdb
))})
84 planpythontestsuite("none", "api_simple",
85 name
="ldb.python.api_simple",
86 extra_path
=['lib/ldb/tests/python'],
87 environ
={'HAVE_LMDB': str(int(have_lmdb
))})
88 planpythontestsuite("none", "crash",
89 name
="ldb.python.crash",
90 extra_path
=['lib/ldb/tests/python'],
91 environ
={'HAVE_LMDB': str(int(have_lmdb
))})
92 planpythontestsuite("none", "index",
93 name
="ldb.python.index",
94 extra_path
=['lib/ldb/tests/python'],
95 environ
={'HAVE_LMDB': str(int(have_lmdb
))})
96 planpythontestsuite("none", "repack",
97 name
="ldb.python.repack",
98 extra_path
=['lib/ldb/tests/python'],
99 environ
={'HAVE_LMDB': str(int(have_lmdb
))})
101 # LDB tests for standalone operation, in the tr_TR.UTF-8 to cover
102 # dotless i locales, see
103 # https://bugzilla.samba.org/show_bug.cgi?id=15248
104 planpythontestsuite("none", "api_misc",
105 name
="ldb.python.api_misc.tr",
106 extra_path
=['lib/ldb/tests/python'],
107 environ
={'LC_ALL': 'tr_TR.UTF-8',
108 'HAVE_LMDB': str(int(have_lmdb
))})
109 planpythontestsuite("none", "api_search",
110 name
="ldb.python.api_search.tr",
111 extra_path
=['lib/ldb/tests/python'],
112 environ
={'LC_ALL': 'tr_TR.UTF-8',
113 'HAVE_LMDB': str(int(have_lmdb
))})
114 planpythontestsuite("none", "api_add_modify",
115 name
="ldb.python.api_add_modify.tr",
116 extra_path
=['lib/ldb/tests/python'],
117 environ
={'LC_ALL': 'tr_TR.UTF-8',
118 'HAVE_LMDB': str(int(have_lmdb
))})
119 planpythontestsuite("none", "api_simple",
120 name
="ldb.python.api_simple.tr",
121 extra_path
=['lib/ldb/tests/python'],
122 environ
={'LC_ALL': 'tr_TR.UTF-8',
123 'HAVE_LMDB': str(int(have_lmdb
))})
124 planpythontestsuite("none", "index",
125 name
="ldb.python.index.tr",
126 extra_path
=['lib/ldb/tests/python'],
127 environ
={'LC_ALL': 'tr_TR.UTF-8',
128 'HAVE_LMDB': str(int(have_lmdb
))})
132 ldb_test_exes
= ['test_ldb_qsort',
135 'ldb_tdb_mod_op_test',
136 'ldb_tdb_guid_mod_op_test',
137 'ldb_tdb_kv_ops_test',
140 'ldb_key_value_test',
141 "test_ldb_comparison_fold",
142 # we currently don't run ldb_key_value_sub_txn_tdb_test as it
143 # tests the nested/sub transaction handling
144 # on operations which the TDB backend does not currently
146 # 'ldb_key_value_sub_txn_tdb_test'
148 'ldb_filter_attrs_test',
149 'ldb_filter_attrs_in_place_test',
151 # if LIB_LDAP and LIB_LBER defined, then we can test ldb_ldap backend
152 # behavior regression for bz#14413
153 if have_libldap
and have_liblber
:
154 ldb_test_exes
+= ["lldb_ldap_test"]
157 ldb_test_exes
+= ['ldb_mdb_mod_op_test',
159 # we don't want to run ldb_lmdb_size_test (which proves
160 # we can fit > 4G of data into the DB), it would fill up
161 # the disk on many of our test instances
162 'ldb_mdb_kv_ops_test',
163 'ldb_key_value_sub_txn_mdb_test',
164 'ldb_lmdb_free_list_test']
166 ldb_test_exes
+= ['ldb_no_lmdb_test']
168 for ldb_test_exe
in ldb_test_exes
:
169 plantestsuite(f
"ldb.unittests.{ldb_test_exe}", "none",
170 [os
.path
.join(bindir(), f
"default/lib/ldb/{ldb_test_exe}")])
172 # Shell based LDB blackbox tests and the older ldbtest C tests
173 ldbdir
= os
.path
.join(srcdir(), "lib/ldb")
174 plantestsuite("ldb.base", "none", "%s/tests/test-tdb-subunit.sh %s" % (ldbdir
, samba4bindir
))
176 planpythontestsuite("none", "samba.tests.credentials")
177 planpythontestsuite("none", "samba.tests.registry")
178 planpythontestsuite("ad_dc_ntvfs:local", "samba.tests.auth")
179 planpythontestsuite("none", "samba.tests.get_opt")
180 planpythontestsuite("none", "samba.tests.cred_opt")
181 planpythontestsuite("none", "samba.tests.security")
182 planpythontestsuite("none", "samba.tests.dcerpc.misc")
183 planpythontestsuite("none", "samba.tests.dcerpc.integer")
184 planpythontestsuite("none", "samba.tests.param")
185 planpythontestsuite("none", "samba.tests.upgrade")
186 planpythontestsuite("none", "samba.tests.core")
187 planpythontestsuite("none", "samba.tests.common")
188 planpythontestsuite("none", "samba.tests.provision")
189 planpythontestsuite("none", "samba.tests.password_quality")
190 planpythontestsuite("none", "samba.tests.strings")
191 planpythontestsuite("none", "samba.tests.netcmd")
192 planpythontestsuite("none", "samba.tests.dcerpc.rpc_talloc")
193 planpythontestsuite("none", "samba.tests.dcerpc.array")
194 planpythontestsuite("none", "samba.tests.dcerpc.string_tests")
195 planpythontestsuite("none", "samba.tests.hostconfig")
196 planpythontestsuite("ad_dc_ntvfs:local", "samba.tests.messaging")
197 planpythontestsuite("none", "samba.tests.s3param")
198 planpythontestsuite("none", "samba.tests.s3passdb")
199 planpythontestsuite("none", "samba.tests.s3registry")
200 planpythontestsuite("none", "samba.tests.s3windb")
201 planpythontestsuite("none", "samba.tests.s3idmapdb")
202 planpythontestsuite("none", "samba.tests.samba3sam")
203 planpythontestsuite("none", "samba.tests.dsdb_api")
204 planpythontestsuite("none", "samba.tests.smbconf")
205 planpythontestsuite("none", "samba.tests.logfiles")
206 planpythontestsuite("none", "samba.tests.conditional_ace_claims")
208 "none", "wafsamba.tests.test_suite",
209 extra_path
=[os
.path
.join(samba4srcdir
, "..", "buildtools"),
210 os
.path
.join(samba4srcdir
, "..", "third_party", "waf")])
211 planpythontestsuite("fileserver", "samba.tests.smbd_fuzztest")
212 planpythontestsuite("nt4_dc_smb1", "samba.tests.dcerpc.binding")
213 planpythontestsuite('ad_dc:local', "samba.tests.dcerpc.samr_change_password")
214 planpythontestsuite('ad_dc_fips:local',
215 "samba.tests.dcerpc.samr_change_password",
216 environ
={'GNUTLS_FORCE_FIPS_MODE': '1',
217 'OPENSSL_FORCE_FIPS_MODE': '1'})
219 planpythontestsuite("none", "samba.tests.safe_tarfile")
221 def cmdline(script
, *args
):
223 Prefix PYTHON env var and append --configurefile option to abs script path.
227 PYTHON=python /path/to/bbdir/script.sh arg1 arg2 \
228 --configurefile $SMB_CONF_FILE
231 "PYTHON=%s" % python
,
232 os
.path
.join(bbdir
, script
),
233 ] + list(args
) + [configuration
]
237 "samba4.blackbox.demote-saveddb", "none",
238 cmdline('demote-saveddb.sh', '$PREFIX_ABS/demote'))
241 "samba4.blackbox.dbcheck.alpha13", "none",
242 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
245 # same test as above but skip member link checks
247 "samba4.blackbox.dbcheck.alpha13.quick", "none",
248 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
249 'alpha13', '--quick-membership-checks'))
252 "samba4.blackbox.dbcheck.release-4-0-0", "none",
253 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
256 # same test as above but skip member link checks
258 "samba4.blackbox.dbcheck.release-4-0-0.quick", "none",
259 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
260 'release-4-0-0', '--quick-membership-checks'))
263 "samba4.blackbox.dbcheck.release-4-1-0rc3", "none",
264 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
267 # same test as above but skip member link checks
269 "samba4.blackbox.dbcheck.release-4-1-0rc3.quick", "none",
270 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
271 'release-4-1-0rc3', '--quick-membership-checks'))
274 "samba4.blackbox.dbcheck.release-4-1-6-partial-object", "none",
275 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
276 'release-4-1-6-partial-object'))
278 # same test as above but skip member link checks
280 "samba4.blackbox.dbcheck.release-4-1-6-partial-object.quick", "none",
281 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
282 'release-4-1-6-partial-object', '--quick-membership-checks'))
285 "samba4.blackbox.dbcheck.release-4-5-0-pre1", "none",
286 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
287 'release-4-5-0-pre1'))
289 # same test as above but skip member link checks
291 "samba4.blackbox.dbcheck.release-4-5-0-pre1.quick", "none",
292 cmdline('dbcheck-oldrelease.sh', '$PREFIX_ABS/provision',
293 'release-4-5-0-pre1', '--quick-membership-checks'))
296 "samba4.blackbox.upgradeprovision.alpha13", "none",
297 cmdline('upgradeprovision-oldrelease.sh', '$PREFIX_ABS/provision',
301 "samba4.blackbox.upgradeprovision.release-4-0-0", "none",
302 cmdline('upgradeprovision-oldrelease.sh', '$PREFIX_ABS/provision',
306 "samba4.blackbox.tombstones-expunge.release-4-5-0-pre1", "none",
307 cmdline('tombstones-expunge.sh', '$PREFIX_ABS/provision',
308 'release-4-5-0-pre1'))
311 "samba4.blackbox.dbcheck-links.release-4-5-0-pre1", "none",
312 cmdline('dbcheck-links.sh', '$PREFIX_ABS/provision',
313 'release-4-5-0-pre1'))
316 "samba4.blackbox.runtime-links.release-4-5-0-pre1", "none",
317 cmdline('runtime-links.sh', '$PREFIX_ABS/provision',
318 'release-4-5-0-pre1'))
321 "samba4.blackbox.schemaupgrade", "none",
322 cmdline('schemaupgrade.sh', '$PREFIX_ABS/provision'))
325 "samba4.blackbox.functionalprep", "none",
326 cmdline('functionalprep.sh', '$PREFIX_ABS/provision'))
329 "samba4.blackbox.test_special_group", "none",
330 cmdline('test_special_group.sh', '$PREFIX_ABS/provision'))
332 planpythontestsuite("fileserver", "samba.tests.blackbox.http_content")
333 planpythontestsuite("fileserver", "samba.tests.blackbox.http_chunk")
334 planpythontestsuite("none", "samba.tests.upgradeprovision")
335 planpythontestsuite("none", "samba.tests.xattr")
336 planpythontestsuite("none", "samba.tests.ntacls")
337 planpythontestsuite("none", "samba.tests.policy")
338 planpythontestsuite("none", "samba.tests.kcc.graph")
339 planpythontestsuite("none", "samba.tests.kcc.graph_utils")
340 planpythontestsuite("none", "samba.tests.kcc.ldif_import_export")
341 planpythontestsuite("none", "samba.tests.graph")
342 plantestsuite("wafsamba.duplicate_symbols", "none", [os
.path
.join(srcdir(), "buildtools/wafsamba/test_duplicate_symbol.sh")])
343 planpythontestsuite("none", "samba.tests.glue")
344 planpythontestsuite("none", "samba.tests.tdb_util")
345 planpythontestsuite("none", "samba.tests.samdb")
346 planpythontestsuite("none", "samba.tests.samdb_api")
347 planpythontestsuite("none", "samba.tests.ndr.gkdi")
348 planpythontestsuite("none", "samba.tests.ndr.gmsa")
349 planpythontestsuite("none", "samba.tests.ndr.wbint")
355 "description": "krb5",
356 "pam_options": "krb5_auth krb5_ccache_type=FILE:%s/krb5cc_pam_test_%%u" % (tempfile
.gettempdir()),
359 "description": "default",
364 description
= o
["description"]
365 pam_options
= "'%s'" % o
["pam_options"]
367 plantestsuite("samba.tests.pam_winbind(local+%s)" % description
, env
,
368 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
369 valgrindify(python
), pam_wrapper_so_path
,
370 "$SERVER", "$USERNAME", "$PASSWORD",
372 plantestsuite("samba.tests.pam_winbind(domain1+%s)" % description
, env
,
373 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
374 valgrindify(python
), pam_wrapper_so_path
,
375 "$DOMAIN", "$DC_USERNAME", "$DC_PASSWORD",
377 plantestsuite("samba.tests.pam_winbind(domain2+%s)" % description
, env
,
378 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
379 valgrindify(python
), pam_wrapper_so_path
,
380 "$REALM", "$DC_USERNAME", "$DC_PASSWORD",
382 plantestsuite("samba.tests.pam_winbind(domain3+%s)" % description
, env
,
383 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
384 valgrindify(python
), pam_wrapper_so_path
,
385 "''", "${DC_USERNAME}@${DOMAIN}", "$DC_PASSWORD",
387 plantestsuite("samba.tests.pam_winbind(domain4+%s)" % description
, env
,
388 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
389 valgrindify(python
), pam_wrapper_so_path
,
390 "''", "${DC_USERNAME}@${REALM}", "$DC_PASSWORD",
392 plantestsuite("samba.tests.pam_winbind(domain5+%s)" % description
, env
,
393 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
394 valgrindify(python
), pam_wrapper_so_path
,
395 "$REALM", "${DC_USERNAME}@${DOMAIN}", "$DC_PASSWORD",
397 plantestsuite("samba.tests.pam_winbind(domain6+%s)" % description
, env
,
398 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
399 valgrindify(python
), pam_wrapper_so_path
,
400 "$DOMAIN", "${DC_USERNAME}@${REALM}", "$DC_PASSWORD",
402 plantestsuite("samba.tests.pam_winbind(trust_f_both1+%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_DOMAIN",
406 "$TRUST_F_BOTH_USERNAME",
407 "$TRUST_F_BOTH_PASSWORD",
409 plantestsuite("samba.tests.pam_winbind(trust_f_both2+%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_REALM",
413 "$TRUST_F_BOTH_USERNAME",
414 "$TRUST_F_BOTH_PASSWORD",
416 plantestsuite("samba.tests.pam_winbind(trust_f_both3+%s)" % description
, env
,
417 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
418 valgrindify(python
), pam_wrapper_so_path
,
420 "${TRUST_F_BOTH_USERNAME}@${TRUST_F_BOTH_DOMAIN}",
421 "$TRUST_F_BOTH_PASSWORD",
423 plantestsuite("samba.tests.pam_winbind(trust_f_both4+%s)" % description
, env
,
424 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
425 valgrindify(python
), pam_wrapper_so_path
,
427 "${TRUST_F_BOTH_USERNAME}@${TRUST_F_BOTH_REALM}",
428 "$TRUST_F_BOTH_PASSWORD",
430 plantestsuite("samba.tests.pam_winbind(trust_f_both5+%s)" % description
, env
,
431 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
432 valgrindify(python
), pam_wrapper_so_path
,
433 "${TRUST_F_BOTH_REALM}",
434 "${TRUST_F_BOTH_USERNAME}@${TRUST_F_BOTH_DOMAIN}",
435 "$TRUST_F_BOTH_PASSWORD",
437 plantestsuite("samba.tests.pam_winbind(trust_f_both6+%s)" % description
, env
,
438 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
439 valgrindify(python
), pam_wrapper_so_path
,
440 "${TRUST_F_BOTH_DOMAIN}",
441 "${TRUST_F_BOTH_USERNAME}@${TRUST_F_BOTH_REALM}",
442 "$TRUST_F_BOTH_PASSWORD",
444 plantestsuite("samba.tests.pam_winbind(trust_e_both1+%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_DOMAIN",
448 "$TRUST_E_BOTH_USERNAME",
449 "$TRUST_E_BOTH_PASSWORD",
451 plantestsuite("samba.tests.pam_winbind(trust_e_both2+%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_REALM",
455 "$TRUST_E_BOTH_USERNAME",
456 "$TRUST_E_BOTH_PASSWORD",
458 plantestsuite("samba.tests.pam_winbind(trust_e_both3+%s)" % description
, env
,
459 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
460 valgrindify(python
), pam_wrapper_so_path
,
462 "${TRUST_E_BOTH_USERNAME}@${TRUST_E_BOTH_DOMAIN}",
463 "$TRUST_E_BOTH_PASSWORD",
465 plantestsuite("samba.tests.pam_winbind(trust_e_both4+%s)" % description
, env
,
466 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
467 valgrindify(python
), pam_wrapper_so_path
,
469 "${TRUST_E_BOTH_USERNAME}@${TRUST_E_BOTH_REALM}",
470 "$TRUST_E_BOTH_PASSWORD",
472 plantestsuite("samba.tests.pam_winbind(trust_e_both5+%s)" % description
, env
,
473 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
474 valgrindify(python
), pam_wrapper_so_path
,
475 "${TRUST_E_BOTH_REALM}",
476 "${TRUST_E_BOTH_USERNAME}@${TRUST_E_BOTH_DOMAIN}",
477 "$TRUST_E_BOTH_PASSWORD",
479 plantestsuite("samba.tests.pam_winbind(trust_e_both6+%s)" % description
, env
,
480 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind.sh"),
481 valgrindify(python
), pam_wrapper_so_path
,
482 "${TRUST_E_BOTH_DOMAIN}",
483 "${TRUST_E_BOTH_USERNAME}@${TRUST_E_BOTH_REALM}",
484 "$TRUST_E_BOTH_PASSWORD",
487 for authtok_options
in ["", "use_authtok", "try_authtok"]:
488 _pam_options
= "'%s %s'" % (o
["pam_options"], authtok_options
)
489 _description
= "%s %s" % (description
, authtok_options
)
490 plantestsuite("samba.tests.pam_winbind_chauthtok(domain+%s)" % _description
, env
,
491 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind_chauthtok.sh"),
492 valgrindify(python
), pam_wrapper_so_path
, pam_set_items_so_path
,
493 "$DOMAIN", "TestPamOptionsUser", "oldp@ssword0", "newp@ssword0",
495 "$DC_SERVER", "$DC_USERNAME", "$DC_PASSWORD"])
497 plantestsuite("samba.tests.pam_winbind_warn_pwd_expire(domain+%s)" % description
, env
,
498 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind_warn_pwd_expire.sh"),
499 valgrindify(python
), pam_wrapper_so_path
,
500 "$DOMAIN", "alice", "Secret007",
504 pam_options
= "'krb5_auth krb5_ccache_type=FILE:%s/krb5cc_pam_test_setcred_%%u'" % (tempfile
.gettempdir())
505 plantestsuite("samba.tests.pam_winbind_setcred(domain+%s)" % description
, "ad_dc:local",
506 [os
.path
.join(srcdir(), "python/samba/tests/test_pam_winbind_setcred.sh"),
507 valgrindify(python
), pam_wrapper_so_path
,
508 "${DOMAIN}", "${DC_USERNAME}", "${DC_PASSWORD}",
512 plantestsuite("samba.unittests.krb5samba", "none",
513 [os
.path
.join(bindir(), "default/testsuite/unittests/test_krb5samba")])
514 plantestsuite("samba.unittests.lib_util_modules", "none",
515 [os
.path
.join(bindir(), "default/testsuite/unittests/test_lib_util_modules")])
516 plantestsuite("samba.unittests.background_send",
520 "default/testsuite/unittests/test_background_send"),
523 plantestsuite("samba.unittests.smb1cli_session", "none",
524 [os
.path
.join(bindir(), "default/libcli/smb/test_smb1cli_session")])
525 plantestsuite("samba.unittests.smb_util_translate", "none",
526 [os
.path
.join(bindir(), "default/libcli/smb/test_util_translate")])
528 plantestsuite("samba.unittests.talloc_keep_secret", "none",
529 [os
.path
.join(bindir(), "default/lib/util/test_talloc_keep_secret")])
531 plantestsuite("samba.unittests.tldap", "none",
532 [os
.path
.join(bindir(), "default/source3/test_tldap")])
533 plantestsuite("samba.unittests.rfc1738", "none",
534 [os
.path
.join(bindir(), "default/lib/util/test_rfc1738")])
535 plantestsuite("samba.unittests.kerberos", "none",
536 [os
.path
.join(bindir(), "test_kerberos")])
537 plantestsuite("samba.unittests.ms_fnmatch", "none",
538 [os
.path
.join(bindir(), "default/lib/util/test_ms_fnmatch")])
539 plantestsuite("samba.unittests.byteorder", "none",
540 [os
.path
.join(bindir(), "default/lib/util/test_byteorder")])
541 plantestsuite("samba.unittests.bytearray", "none",
542 [os
.path
.join(bindir(), "default/lib/util/test_bytearray")])
543 plantestsuite("samba.unittests.byteorder_verify", "none",
544 [os
.path
.join(bindir(), "default/lib/util/test_byteorder_verify")])
545 plantestsuite("samba.unittests.util_paths", "none",
546 [os
.path
.join(bindir(), "default/lib/util/test_util_paths")])
547 plantestsuite("samba.unittests.util", "none",
548 [os
.path
.join(bindir(), "default/lib/util/test_util")])
549 plantestsuite("samba.unittests.memcache", "none",
550 [os
.path
.join(bindir(), "default/lib/util/test_memcache")])
551 plantestsuite("samba.unittests.sys_rw", "none",
552 [os
.path
.join(bindir(), "default/lib/util/test_sys_rw")])
553 plantestsuite("samba.unittests.stable_sort", "none",
554 [os
.path
.join(bindir(), "default/lib/util/test_stable_sort")])
555 plantestsuite("samba.unittests.ntlm_check", "none",
556 [os
.path
.join(bindir(), "default/libcli/auth/test_ntlm_check")])
557 plantestsuite("samba.unittests.gnutls", "none",
558 [os
.path
.join(bindir(), "default/libcli/auth/test_gnutls")])
559 plantestsuite("samba.unittests.rc4_passwd_buffer", "none",
560 [os
.path
.join(bindir(), "default/libcli/auth/test_rc4_passwd_buffer")])
561 plantestsuite("samba.unittests.schannel", "none",
562 [os
.path
.join(bindir(), "default/libcli/auth/test_schannel")])
563 plantestsuite("samba.unittests.test_registry_regfio", "none",
564 [os
.path
.join(bindir(), "default/source3/test_registry_regfio")])
565 plantestsuite("samba.unittests.test_oLschema2ldif", "none",
566 [os
.path
.join(bindir(), "default/source4/utils/oLschema2ldif/test_oLschema2ldif")])
567 plantestsuite("samba.unittests.auth.sam", "none",
568 [os
.path
.join(bindir(), "test_auth_sam")])
569 if have_heimdal_support
and not using_system_gssapi
:
570 plantestsuite("samba.unittests.auth.heimdal_gensec_unwrap_des", "none",
571 [valgrindify(os
.path
.join(bindir(), "test_heimdal_gensec_unwrap_des"))])
572 plantestsuite("samba.unittests.test_wsp_parser", "none",
573 [os
.path
.join(bindir(), "default/libcli/wsp/test_wsp_parser")] + [configuration
])
574 if with_elasticsearch_backend
:
575 plantestsuite("samba.unittests.mdsparser_es", "none",
576 [os
.path
.join(bindir(), "default/source3/test_mdsparser_es")] + [configuration
])
577 plantestsuite("samba.unittests.mdsparser_es_failures", "none",
578 [os
.path
.join(bindir(), "default/source3/test_mdsparser_es"),
579 " --option=elasticsearch:testmappingfailures=yes",
580 " --option=elasticsearch:ignoreunknownattribute=yes",
581 " --option=elasticsearch:ignoreunknowntype=yes"] +
583 plantestsuite("samba.unittests.credentials", "none",
584 [os
.path
.join(bindir(), "default/auth/credentials/test_creds")])
585 plantestsuite("samba.unittests.tsocket_bsd_addr", "none",
586 [os
.path
.join(bindir(), "default/lib/tsocket/test_tsocket_bsd_addr")])
587 if ("HAVE_TCP_USER_TIMEOUT" in config_hash
):
588 plantestsuite("samba.unittests.tsocket_tstream", "none",
589 [os
.path
.join(bindir(), "default/lib/tsocket/test_tstream")],
590 environ
={'SOCKET_WRAPPER_DIR': ''})
591 plantestsuite("samba.unittests.adouble", "none",
592 [os
.path
.join(bindir(), "test_adouble")])
593 plantestsuite("samba.unittests.gnutls_aead_aes_256_cbc_hmac_sha512", "none",
594 [os
.path
.join(bindir(), "test_gnutls_aead_aes_256_cbc_hmac_sha512")])
595 plantestsuite("samba.unittests.gnutls_sp800_108", "none",
596 [os
.path
.join(bindir(), "test_gnutls_sp800_108")])
597 plantestsuite("samba.unittests.gkdi", "none",
598 [os
.path
.join(bindir(), "test_gkdi")])
599 plantestsuite("samba.unittests.gkdi_key_derivation", "none",
600 [os
.path
.join(bindir(), "test_gkdi_key_derivation")])
601 plantestsuite("samba.unittests.encode_decode", "none",
602 [os
.path
.join(bindir(), "test_encode_decode")])
604 plantestsuite("samba.unittests.compression.lzxpress_huffman", "none",
605 [os
.path
.join(bindir(), "default/lib/compression/test_lzx_huffman")])
606 plantestsuite("samba.unittests.compression.lzxpress_plain", "none",
607 [os
.path
.join(bindir(),
608 "default/lib/compression/test_lzxpress_plain")])
610 plantestsuite("samba.unittests.sddl_conditional_ace", "none",
611 [os
.path
.join(bindir(), "test_sddl_conditional_ace")])
612 plantestsuite("samba.unittests.run_conditional_ace", "none",
613 [os
.path
.join(bindir(), "test_run_conditional_ace")])
614 plantestsuite("samba.unittests.claim_conversion", "none",
615 [os
.path
.join(bindir(), "test_claim_conversion")])
616 plantestsuite("samba.unittests.cmdline", "none",
617 [os
.path
.join(bindir(), "test_cmdline")])
619 # Run the Rust cargo tests
620 planpythontestsuite("none", "samba.tests.rust")