diff options
author | Stefan Metzmacher <metze@samba.org> | 2020-11-19 11:49:25 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2021-04-13 08:23:35 +0000 |
commit | 0e7a7440f7cc44a8e18942048527b3152e26e0eb (patch) | |
tree | b99ee2b862b30daf916c314f5defd98210ed26e2 /script | |
parent | 467cfaf852e67a283c453b71007a10ee7f9cf0d4 (diff) | |
download | samba-0e7a7440f7cc44a8e18942048527b3152e26e0eb.tar.gz |
script/autobuild.py: change the task definitions into an dictionary
The will make it easier to add more meta data properties to task
definitions.
Use 'git show -w' to see the minimal diff.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'script')
-rwxr-xr-x | script/autobuild.py | 815 |
1 files changed, 449 insertions, 366 deletions
diff --git a/script/autobuild.py b/script/autobuild.py index f9a835981ee..f4c1c92ae4c 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -186,30 +186,34 @@ def make_test( # and to make it a dependency of 'page' for the coverage report. tasks = { - "ctdb": [ - ("random-sleep", random_sleep(300, 900)), - ("configure", "./configure " + ctdb_configure_params), - ("make", "make all"), - ("install", "make install"), - ("test", "make autotest"), - ("check-clean-tree", "../script/clean-source-tree.sh"), - ("clean", "make clean"), + "ctdb": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "./configure " + ctdb_configure_params), + ("make", "make all"), + ("install", "make install"), + ("test", "make autotest"), + ("check-clean-tree", "../script/clean-source-tree.sh"), + ("clean", "make clean"), ], - - "docs-xml": [ - ("random-sleep", random_sleep(300, 900)), - ("autoconf", "autoconf"), - ("configure", "./configure"), - ("make", "make html htmlman"), - ("clean", "make clean"), + }, + "docs-xml": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("autoconf", "autoconf"), + ("configure", "./configure"), + ("make", "make html htmlman"), + ("clean", "make clean"), ], + }, # We have 'test' before 'install' because, 'test' should work without 'install (runs all the other envs)' - "samba": [ - ("random-sleep", random_sleep(300, 900)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(exclude_envs=[ + "samba": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(exclude_envs=[ "none", "nt4_dc", "nt4_dc_smb1", @@ -259,19 +263,21 @@ tasks = { "schema_dc", "clusteredmember", ])), - ("test-slow-none", make_test(cmd='make test', TESTS="--include=selftest/slow-none", include_envs=["none"])), - ("lcov", LCOV_CMD), - ("install", "make install"), - ("check-clean-tree", "script/clean-source-tree.sh"), - ("clean", "make clean"), + ("test-slow-none", make_test(cmd='make test', TESTS="--include=selftest/slow-none", include_envs=["none"])), + ("lcov", LCOV_CMD), + ("install", "make install"), + ("check-clean-tree", "script/clean-source-tree.sh"), + ("clean", "make clean"), ], + }, # We have 'test' before 'install' because, 'test' should work without 'install (runs all the other envs)' - "samba-mitkrb5": [ - ("random-sleep", random_sleep(300, 900)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(exclude_envs=[ + "samba-mitkrb5": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(exclude_envs=[ "none", "nt4_dc", "nt4_dc_smb1", @@ -322,17 +328,19 @@ tasks = { "schema_dc", "clusteredmember", ])), - ("lcov", LCOV_CMD), - ("install", "make install"), - ("check-clean-tree", "script/clean-source-tree.sh"), - ("clean", "make clean"), + ("lcov", LCOV_CMD), + ("install", "make install"), + ("check-clean-tree", "script/clean-source-tree.sh"), + ("clean", "make clean"), ], - - "samba-nt4": [ - ("random-sleep", random_sleep(300, 900)), - ("configure", "./configure.developer --without-ad-dc --without-ldap --without-ads --without-json --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-nt4": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "./configure.developer --without-ad-dc --without-ldap --without-ads --without-json --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "nt4_dc", "nt4_dc_smb1", "nt4_dc_smb1_done", @@ -340,16 +348,18 @@ tasks = { "nt4_member", "simpleserver", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), - ("clean", "make clean"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), + ("clean", "make clean"), ], - - "samba-fileserver": [ - ("random-sleep", random_sleep(300, 900)), - ("configure", "./configure.developer --without-ad-dc --with-system-heimdalkrb5 --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-fileserver": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "./configure.developer --without-ad-dc --with-system-heimdalkrb5 --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "fileserver", "fileserver_smb1", "fileserver_smb1_done", @@ -357,157 +367,181 @@ tasks = { "ktest", # ktest is also tested in samba and samba-mitkrb5 # but is tested here against a system Heimdal ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-admem": [ - ("random-sleep", random_sleep(300, 900)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-admem": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "ad_member", "ad_member_idmap_rid", "ad_member_idmap_ad", "ad_member_rfc2307", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-no-opath": [ - ("random-sleep", random_sleep(300, 900)), - ("configure", "ADDITIONAL_CFLAGS='-DDISABLE_OPATH=1' ./configure.developer --without-ad-dc --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test( - cmd="make test DISABLE_OPATH=1", - include_envs=[ - "nt4_dc", - "nt4_dc_smb1", - "nt4_dc_smb1_done", - "nt4_dc_schannel", - "nt4_member", - "simpleserver", - "fileserver", - "fileserver_smb1", - "fileserver_smb1_done", - ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + }, + + "samba-no-opath": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "ADDITIONAL_CFLAGS='-DDISABLE_OPATH=1' ./configure.developer --without-ad-dc --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test( + cmd="make test DISABLE_OPATH=1", + include_envs=[ + "nt4_dc", + "nt4_dc_smb1", + "nt4_dc_smb1_done", + "nt4_dc_schannel", + "nt4_member", + "simpleserver", + "fileserver", + "fileserver_smb1", + "fileserver_smb1_done", + ])), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-ad-dc-1": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-ad-dc-1": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "ad_dc", "ad_dc_smb1", "ad_dc_smb1_done", "ad_dc_no_nss", "ad_dc_no_ntlm", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-ad-dc-2": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-ad-dc-2": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "vampire_dc", "vampire_2000_dc", "rodc", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-ad-dc-3": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-ad-dc-3": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "promoted_dc", "chgdcpass", "preforkrestartdc", "proclimitdc", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-ad-dc-4": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-ad-dc-4": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "fl2000dc", "fl2003dc", "fl2008dc", "fl2008r2dc", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-ad-dc-5": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-ad-dc-5": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "ad_dc_default", "ad_dc_default_smb1", "ad_dc_default_smb1_done"])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-ad-dc-6": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=["ad_dc_slowtests"])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + }, + + "samba-ad-dc-6": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=["ad_dc_slowtests"])), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-schemaupgrade": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=["schema_dc", "schema_pair_dc"])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + }, + + "samba-schemaupgrade": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=["schema_dc", "schema_pair_dc"])), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], + }, # We split out the ad_dc_ntvfs tests (which are long) so other test do not wait # This is currently the longest task, so we don't randomly delay it. - "samba-ad-dc-ntvfs": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=["ad_dc_ntvfs"])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + "samba-ad-dc-ntvfs": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=["ad_dc_ntvfs"])), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], + }, # Test fips compliance - "samba-fips": [ - ("random-sleep", random_sleep(100, 500)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=["ad_dc_fips", "ad_member_fips"])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + "samba-fips": { + "sequence": [ + ("random-sleep", random_sleep(100, 500)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=["ad_dc_fips", "ad_member_fips"])), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], + }, # run the backup/restore testenvs separately as they're fairly standalone # (and CI seems to max out at ~8 different DCs running at once) - "samba-ad-dc-backup": [ - ("random-sleep", random_sleep(300, 900)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + "samba-ad-dc-backup": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "backupfromdc", "restoredc", "renamedc", @@ -515,107 +549,121 @@ tasks = { "labdc", "ad_dc_backup", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-admem-mit": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-admem-mit": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "ad_member", "ad_member_idmap_rid", "ad_member_idmap_ad", "ad_member_rfc2307", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-ad-dc-1-mitkrb5": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-ad-dc-1-mitkrb5": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "ad_dc", "ad_dc_smb1", "ad_dc_smb1_done", "ad_dc_no_nss", "ad_dc_no_ntlm", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-ad-dc-4-mitkrb5": [ - ("random-sleep", random_sleep(1, 1)), - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ + }, + + "samba-ad-dc-4-mitkrb5": { + "sequence": [ + ("random-sleep", random_sleep(1, 1)), + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --with-system-mitkrb5 --with-experimental-mit-ad-dc" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(include_envs=[ "fl2000dc", "fl2003dc", "fl2008dc", "fl2008r2dc", ])), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), ], - - "samba-test-only": [ - ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --abi-check-disable" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(TESTS="${TESTS}")), - ("lcov", LCOV_CMD), + }, + + "samba-test-only": { + "sequence": [ + ("configure", "./configure.developer --with-selftest-prefix=./bin/ab --abi-check-disable" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(TESTS="${TESTS}")), + ("lcov", LCOV_CMD), ], + }, # Test cross-compile infrastructure - "samba-xc": [ - ("random-sleep", random_sleep(900, 1500)), - ("configure-native", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), - ("configure-cross-execute", "./configure.developer --out ./bin-xe --cross-compile --cross-execute=script/identity_cc.sh" \ + "samba-xc": { + "sequence": [ + ("random-sleep", random_sleep(900, 1500)), + ("configure-native", "./configure.developer --with-selftest-prefix=./bin/ab" + samba_configure_params), + ("configure-cross-execute", "./configure.developer --out ./bin-xe --cross-compile --cross-execute=script/identity_cc.sh" \ " --cross-answers=./bin-xe/cross-answers.txt --with-selftest-prefix=./bin-xe/ab" + samba_configure_params), - ("verify-cross-execute-output", "grep '^Checking value of NSIG' ./bin-xe/cross-answers.txt"), - ("configure-cross-answers", "./configure.developer --out ./bin-xa --cross-compile" \ + ("verify-cross-execute-output", "grep '^Checking value of NSIG' ./bin-xe/cross-answers.txt"), + ("configure-cross-answers", "./configure.developer --out ./bin-xa --cross-compile" \ " --cross-answers=./bin-xe/cross-answers.txt --with-selftest-prefix=./bin-xa/ab" + samba_configure_params), - ("compare-results", "script/compare_cc_results.py " + ("compare-results", "script/compare_cc_results.py " "./bin/c4che/default{} " "./bin-xe/c4che/default{} " "./bin-xa/c4che/default{}".format(*([CACHE_SUFFIX]*3))), - ("modify-cross-answers", "sed -i.bak -e 's/^\\(Checking value of NSIG:\\) .*/\\1 \"1234\"/' ./bin-xe/cross-answers.txt"), - ("configure-cross-answers-modified", "./configure.developer --out ./bin-xa2 --cross-compile" \ + ("modify-cross-answers", "sed -i.bak -e 's/^\\(Checking value of NSIG:\\) .*/\\1 \"1234\"/' ./bin-xe/cross-answers.txt"), + ("configure-cross-answers-modified", "./configure.developer --out ./bin-xa2 --cross-compile" \ " --cross-answers=./bin-xe/cross-answers.txt --with-selftest-prefix=./bin-xa2/ab" + samba_configure_params), - ("verify-cross-answers", "test $(sed -n -e 's/VALUEOF_NSIG = \\(.*\\)/\\1/p' ./bin-xa2/c4che/default{})" \ + ("verify-cross-answers", "test $(sed -n -e 's/VALUEOF_NSIG = \\(.*\\)/\\1/p' ./bin-xa2/c4che/default{})" \ " = \"'1234'\"".format(CACHE_SUFFIX)), - ("invalidate-cross-answers", "sed -i.bak -e '/^Checking value of NSIG/d' ./bin-xe/cross-answers.txt"), - ("configure-cross-answers-fail", "./configure.developer --out ./bin-xa3 --cross-compile" \ + ("invalidate-cross-answers", "sed -i.bak -e '/^Checking value of NSIG/d' ./bin-xe/cross-answers.txt"), + ("configure-cross-answers-fail", "./configure.developer --out ./bin-xa3 --cross-compile" \ " --cross-answers=./bin-xe/cross-answers.txt --with-selftest-prefix=./bin-xa3/ab" + samba_configure_params + \ " ; test $? -ne 0"), ], + }, # test build with -O3 -- catches extra warnings and bugs, tests the ad_dc environments - "samba-o3": [ - ("random-sleep", random_sleep(300, 900)), - ("configure", "ADDITIONAL_CFLAGS='-O3 -Wp,-D_FORTIFY_SOURCE=2' ./configure.developer --with-selftest-prefix=./bin/ab --abi-check-disable" + samba_configure_params), - ("make", "make -j"), - ("test", make_test(cmd='make test', TESTS="--exclude=selftest/slow-none", include_envs=["none"])), - ("quicktest", make_test(cmd='make quicktest', include_envs=["ad_dc", "ad_dc_smb1", "ad_dc_smb1_done"])), - ("lcov", LCOV_CMD), - ("install", "make install"), - ("check-clean-tree", "script/clean-source-tree.sh"), - ("clean", "make clean"), + "samba-o3": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "ADDITIONAL_CFLAGS='-O3 -Wp,-D_FORTIFY_SOURCE=2' ./configure.developer --with-selftest-prefix=./bin/ab --abi-check-disable" + samba_configure_params), + ("make", "make -j"), + ("test", make_test(cmd='make test', TESTS="--exclude=selftest/slow-none", include_envs=["none"])), + ("quicktest", make_test(cmd='make quicktest', include_envs=["ad_dc", "ad_dc_smb1", "ad_dc_smb1_done"])), + ("lcov", LCOV_CMD), + ("install", "make install"), + ("check-clean-tree", "script/clean-source-tree.sh"), + ("clean", "make clean"), ], + }, - "samba-ctdb": [ - ("random-sleep", random_sleep(900, 1500)), + "samba-ctdb": { + "sequence": [ + ("random-sleep", random_sleep(900, 1500)), # make sure we have tdb around: - ("tdb-configure", "cd lib/tdb && PYTHONPATH=${PYTHON_PREFIX}:$PYTHONPATH PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX_DIR}/lib/pkgconfig ./configure --bundled-libraries=NONE --abi-check --enable-debug -C ${PREFIX}"), - ("tdb-make", "cd lib/tdb && make"), - ("tdb-install", "cd lib/tdb && make install"), + ("tdb-configure", "cd lib/tdb && PYTHONPATH=${PYTHON_PREFIX}:$PYTHONPATH PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX_DIR}/lib/pkgconfig ./configure --bundled-libraries=NONE --abi-check --enable-debug -C ${PREFIX}"), + ("tdb-make", "cd lib/tdb && make"), + ("tdb-install", "cd lib/tdb && make install"), # build samba with cluster support (also building ctdb): - ("samba-configure", + ("samba-configure", "PYTHONPATH=${PYTHON_PREFIX}:$PYTHONPATH " "PKG_CONFIG_PATH=${PREFIX_DIR}/lib/pkgconfig:${PKG_CONFIG_PATH} " "./configure.developer ${PREFIX} " @@ -624,57 +672,62 @@ tasks = { "--with-cluster-support " "--without-ad-dc " "--bundled-libraries=!tdb"), - ("samba-make", "make"), - ("samba-check", "./bin/smbd -b | grep CLUSTER_SUPPORT"), - ("samba-install", "make install"), - ("ctdb-check", "test -e ${PREFIX_DIR}/sbin/ctdbd"), + ("samba-make", "make"), + ("samba-check", "./bin/smbd -b | grep CLUSTER_SUPPORT"), + ("samba-install", "make install"), + ("ctdb-check", "test -e ${PREFIX_DIR}/sbin/ctdbd"), - ("test", + ("test", make_test(cmd='make test', include_envs=["clusteredmember"]) ), # clean up: - ("check-clean-tree", "script/clean-source-tree.sh"), - ("clean", "make clean"), - ("ctdb-clean", "cd ./ctdb && make clean"), + ("check-clean-tree", "script/clean-source-tree.sh"), + ("clean", "make clean"), + ("ctdb-clean", "cd ./ctdb && make clean"), ], + }, - "samba-libs": [ - ("random-sleep", random_sleep(300, 900)), - ("talloc-configure", "cd lib/talloc && " + samba_libs_configure_libs), - ("talloc-make", "cd lib/talloc && make"), - ("talloc-install", "cd lib/talloc && make install"), + "samba-libs": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("talloc-configure", "cd lib/talloc && " + samba_libs_configure_libs), + ("talloc-make", "cd lib/talloc && make"), + ("talloc-install", "cd lib/talloc && make install"), - ("tdb-configure", "cd lib/tdb && " + samba_libs_configure_libs), - ("tdb-make", "cd lib/tdb && make"), - ("tdb-install", "cd lib/tdb && make install"), + ("tdb-configure", "cd lib/tdb && " + samba_libs_configure_libs), + ("tdb-make", "cd lib/tdb && make"), + ("tdb-install", "cd lib/tdb && make install"), - ("tevent-configure", "cd lib/tevent && " + samba_libs_configure_libs), - ("tevent-make", "cd lib/tevent && make"), - ("tevent-install", "cd lib/tevent && make install"), + ("tevent-configure", "cd lib/tevent && " + samba_libs_configure_libs), + ("tevent-make", "cd lib/tevent && make"), + ("tevent-install", "cd lib/tevent && make install"), - ("ldb-configure", "cd lib/ldb && " + samba_libs_configure_libs), - ("ldb-make", "cd lib/ldb && make"), - ("ldb-install", "cd lib/ldb && make install"), + ("ldb-configure", "cd lib/ldb && " + samba_libs_configure_libs), + ("ldb-make", "cd lib/ldb && make"), + ("ldb-install", "cd lib/ldb && make install"), - ("nondevel-configure", "./configure ${PREFIX}"), - ("nondevel-make", "make -j"), - ("nondevel-check", "./bin/smbd -b | grep WITH_NTVFS_FILESERVER && exit 1; exit 0"), - ("nondevel-install", "make install"), - ("nondevel-dist", "make dist"), + ("nondevel-configure", "./configure ${PREFIX}"), + ("nondevel-make", "make -j"), + ("nondevel-check", "./bin/smbd -b | grep WITH_NTVFS_FILESERVER && exit 1; exit 0"), + ("nondevel-install", "make install"), + ("nondevel-dist", "make dist"), # retry with all modules shared - ("allshared-distclean", "make distclean"), - ("allshared-configure", samba_libs_configure_samba + " --with-shared-modules=ALL"), - ("allshared-make", "make -j"), + ("allshared-distclean", "make distclean"), + ("allshared-configure", samba_libs_configure_samba + " --with-shared-modules=ALL"), + ("allshared-make", "make -j"), ], + }, - "samba-fuzz": [ + "samba-fuzz": { + "sequence": [ # build the fuzzers (static) via the oss-fuzz script - ("fuzzers-mkdir-prefix", "mkdir -p ${PREFIX_DIR}"), - ("fuzzers-build", "OUT=${PREFIX_DIR} LIB_FUZZING_ENGINE= SANITIZER=address CXX= CFLAGS= ADDITIONAL_LDFLAGS='-fuse-ld=bfd' ./lib/fuzzing/oss-fuzz/build_samba.sh --enable-afl-fuzzer"), + ("fuzzers-mkdir-prefix", "mkdir -p ${PREFIX_DIR}"), + ("fuzzers-build", "OUT=${PREFIX_DIR} LIB_FUZZING_ENGINE= SANITIZER=address CXX= CFLAGS= ADDITIONAL_LDFLAGS='-fuse-ld=bfd' ./lib/fuzzing/oss-fuzz/build_samba.sh --enable-afl-fuzzer"), ], + }, # * Test smbd and smbtorture can build semi-static # @@ -686,134 +739,157 @@ tasks = { # to support this environment). # # The target here is for vendors shipping a minimal smbd. - "samba-minimal-smbd": [ - ("random-sleep", random_sleep(300, 900)), + "samba-minimal-smbd": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), # build with all modules static - ("allstatic-configure", "./configure.developer " + samba_configure_params + " --with-static-modules=ALL"), - ("allstatic-make", "make -j"), - ("allstatic-test", make_test(TESTS="samba3.smb2.create.*nt4_dc")), - ("lcov", LCOV_CMD), + ("allstatic-configure", "./configure.developer " + samba_configure_params + " --with-static-modules=ALL"), + ("allstatic-make", "make -j"), + ("allstatic-test", make_test(TESTS="samba3.smb2.create.*nt4_dc")), + ("lcov", LCOV_CMD), # retry with nonshared smbd and smbtorture - ("nonshared-distclean", "make distclean"), - ("nonshared-configure", "./configure.developer " + samba_configure_params + " --bundled-libraries=ALL --with-static-modules=ALL --nonshared-binary=smbtorture,smbd/smbd"), - ("nonshared-make", "make -j"), - - ("configure", "./configure.developer ${ENABLE_COVERAGE} ${PREFIX} --with-profiling-data --disable-python --without-ad-dc"), - ("make", "make -j"), - ("find-python", "script/find_python.sh ${PREFIX}"), - ("test", "make test-nopython"), - ("lcov", LCOV_CMD), - ("check-clean-tree", "script/clean-source-tree.sh"), - ("clean", "make clean"), - - ("talloc-configure", "cd lib/talloc && " + samba_libs_configure_base + " --bundled-libraries=cmocka,NONE --disable-python"), - ("talloc-make", "cd lib/talloc && make"), - ("talloc-install", "cd lib/talloc && make install"), - - ("tdb-configure", "cd lib/tdb && " + samba_libs_configure_base + " --bundled-libraries=cmocka,NONE --disable-python"), - ("tdb-make", "cd lib/tdb && make"), - ("tdb-install", "cd lib/tdb && make install"), - - ("tevent-configure", "cd lib/tevent && " + samba_libs_configure_base + " --bundled-libraries=cmocka,NONE --disable-python"), - ("tevent-make", "cd lib/tevent && make"), - ("tevent-install", "cd lib/tevent && make install"), - - ("ldb-configure", "cd lib/ldb && " + samba_libs_configure_base + " --bundled-libraries=cmocka,NONE --disable-python"), - ("ldb-make", "cd lib/ldb && make"), - ("ldb-install", "cd lib/ldb && make install"), + ("nonshared-distclean", "make distclean"), + ("nonshared-configure", "./configure.developer " + samba_configure_params + " --bundled-libraries=ALL --with-static-modules=ALL --nonshared-binary=smbtorture,smbd/smbd"), + ("nonshared-make", "make -j"), + + ("configure", "./configure.developer ${ENABLE_COVERAGE} ${PREFIX} --with-profiling-data --disable-python --without-ad-dc"), + ("make", "make -j"), + ("find-python", "script/find_python.sh ${PREFIX}"), + ("test", "make test-nopython"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "script/clean-source-tree.sh"), + ("clean", "make clean"), + + ("talloc-configure", "cd lib/talloc && " + samba_libs_configure_base + " --bundled-libraries=cmocka,NONE --disable-python"), + ("talloc-make", "cd lib/talloc && make"), + ("talloc-install", "cd lib/talloc && make install"), + + ("tdb-configure", "cd lib/tdb && " + samba_libs_configure_base + " --bundled-libraries=cmocka,NONE --disable-python"), + ("tdb-make", "cd lib/tdb && make"), + ("tdb-install", "cd lib/tdb && make install"), + + ("tevent-configure", "cd lib/tevent && " + samba_libs_configure_base + " --bundled-libraries=cmocka,NONE --disable-python"), + ("tevent-make", "cd lib/tevent && make"), + ("tevent-install", "cd lib/tevent && make install"), + + ("ldb-configure", "cd lib/ldb && " + samba_libs_configure_base + " --bundled-libraries=cmocka,NONE --disable-python"), + ("ldb-make", "cd lib/ldb && make"), + ("ldb-install", "cd lib/ldb && make install"), # retry against installed library packages, but no required modules - ("libs-configure", samba_libs_configure_base + samba_libs_configure_bundled_libs + " --disable-python --without-ad-dc --with-static-modules=!FORCED,!DEFAULT --with-shared-modules=!FORCED,!DEFAULT"), - ("libs-make", "make -j"), - ("libs-install", "make install"), - ("libs-check-clean-tree", "script/clean-source-tree.sh"), - ("libs-clean", "make clean"), + ("libs-configure", samba_libs_configure_base + samba_libs_configure_bundled_libs + " --disable-python --without-ad-dc --with-static-modules=!FORCED,!DEFAULT --with-shared-modules=!FORCED,!DEFAULT"), + ("libs-make", "make -j"), + ("libs-install", "make install"), + ("libs-check-clean-tree", "script/clean-source-tree.sh"), + ("libs-clean", "make clean"), ], - - "ldb": [ - ("random-sleep", random_sleep(60, 600)), - ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), - ("make", "make"), - ("install", "make install"), - ("test", "make test"), - ("lcov", LCOV_CMD), - ("clean", "make clean"), - ("configure-no-lmdb", "./configure ${ENABLE_COVERAGE} --enable-developer --without-ldb-lmdb -C ${PREFIX}"), - ("make-no-lmdb", "make"), - ("test-no-lmdb", "make test"), - ("lcov-no-lmdb", LCOV_CMD), - ("install-no-lmdb", "make install"), - ("check-clean-tree", "../../script/clean-source-tree.sh"), - ("distcheck", "make distcheck"), - ("clean", "make clean"), + }, + + "ldb": { + "sequence": [ + ("random-sleep", random_sleep(60, 600)), + ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), + ("make", "make"), + ("install", "make install"), + ("test", "make test"), + ("lcov", LCOV_CMD), + ("clean", "make clean"), + ("configure-no-lmdb", "./configure ${ENABLE_COVERAGE} --enable-developer --without-ldb-lmdb -C ${PREFIX}"), + ("make-no-lmdb", "make"), + ("test-no-lmdb", "make test"), + ("lcov-no-lmdb", LCOV_CMD), + ("install-no-lmdb", "make install"), + ("check-clean-tree", "../../script/clean-source-tree.sh"), + ("distcheck", "make distcheck"), + ("clean", "make clean"), ], - - "tdb": [ - ("random-sleep", random_sleep(60, 600)), - ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), - ("make", "make"), - ("install", "make install"), - ("test", "make test"), - ("lcov", LCOV_CMD), - ("check-clean-tree", "../../script/clean-source-tree.sh"), - ("distcheck", "make distcheck"), - ("clean", "make clean"), + }, + + "tdb": { + "sequence": [ + ("random-sleep", random_sleep(60, 600)), + ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), + ("make", "make"), + ("install", "make install"), + ("test", "make test"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "../../script/clean-source-tree.sh"), + ("distcheck", "make distcheck"), + ("clean", "make clean"), ], - - "talloc": [ - ("random-sleep", random_sleep(60, 600)), - ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), - ("make", "make"), - ("install", "make install"), - ("test", "make test"), - ("lcov", LCOV_CMD), - ("check-clean-tree", "../../script/clean-source-tree.sh"), - ("distcheck", "make distcheck"), - ("clean", "make clean"), + }, + + "talloc": { + "sequence": [ + ("random-sleep", random_sleep(60, 600)), + ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), + ("make", "make"), + ("install", "make install"), + ("test", "make test"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "../../script/clean-source-tree.sh"), + ("distcheck", "make distcheck"), + ("clean", "make clean"), ], - - "replace": [ - ("random-sleep", random_sleep(60, 600)), - ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), - ("make", "make"), - ("install", "make install"), - ("test", "make test"), - ("lcov", LCOV_CMD), - ("check-clean-tree", "../../script/clean-source-tree.sh"), - ("distcheck", "make distcheck"), - ("clean", "make clean"), + }, + + "replace": { + "sequence": [ + ("random-sleep", random_sleep(60, 600)), + ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), + ("make", "make"), + ("install", "make install"), + ("test", "make test"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "../../script/clean-source-tree.sh"), + ("distcheck", "make distcheck"), + ("clean", "make clean"), ], - - "tevent": [ - ("random-sleep", random_sleep(60, 600)), - ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), - ("make", "make"), - ("install", "make install"), - ("test", "make test"), - ("lcov", LCOV_CMD), - ("check-clean-tree", "../../script/clean-source-tree.sh"), - ("distcheck", "make distcheck"), - ("clean", "make clean"), + }, + + "tevent": { + "sequence": [ + ("random-sleep", random_sleep(60, 600)), + ("configure", "./configure ${ENABLE_COVERAGE} --enable-developer -C ${PREFIX}"), + ("make", "make"), + ("install", "make install"), + ("test", "make test"), + ("lcov", LCOV_CMD), + ("check-clean-tree", "../../script/clean-source-tree.sh"), + ("distcheck", "make distcheck"), + ("clean", "make clean"), ], - - "pidl": [ - ("random-sleep", random_sleep(60, 600)), - ("configure", "perl Makefile.PL PREFIX=${PREFIX_DIR}"), - ("touch", "touch *.yp"), - ("make", "make"), - ("test", "make test"), - ("install", "make install"), - ("checkout-yapp-generated", "git checkout lib/Parse/Pidl/IDL.pm lib/Parse/Pidl/Expr.pm"), - ("check-clean-tree", "../script/clean-source-tree.sh"), - ("clean", "make clean"), + }, + + "pidl": { + "git-clone-required": True, + "sequence": [ + ("random-sleep", random_sleep(60, 600)), + ("configure", "perl Makefile.PL PREFIX=${PREFIX_DIR}"), + ("touch", "touch *.yp"), + ("make", "make"), + ("test", "make test"), + ("install", "make install"), + ("checkout-yapp-generated", "git checkout lib/Parse/Pidl/IDL.pm lib/Parse/Pidl/Expr.pm"), + ("check-clean-tree", "../script/clean-source-tree.sh"), + ("clean", "make clean"), ], + }, # these are useful for debugging autobuild - 'pass': [("pass", 'echo passing && /bin/true')], - 'fail': [("fail", 'echo failing && /bin/false')], + "pass": { + "sequence": [ + ("pass", 'echo passing && /bin/true'), + ], + }, + "fail": { + "sequence": [ + ("fail", 'echo failing && /bin/false'), + ], + }, } defaulttasks = list(tasks.keys()) @@ -861,11 +937,15 @@ def rmdir_force(dirname, re_raise=True): class builder(object): '''handle build of one directory''' - def __init__(self, name, sequence, cp=True): + def __init__(self, name, definition): self.name = name self.dir = builddirs.get(name, '.') self.tag = self.name.replace('/', '_') - self.sequence = sequence + self.definition = definition + self.sequence = definition["sequence"] + self.git_clone_required = False + if "git-clone-required" in definition: + self.git_clone_required = bool(definition["git-clone-required"]) self.next = 0 self.stdout_path = "%s/%s.stdout" % (gitroot, self.tag) self.stderr_path = "%s/%s.stderr" % (gitroot, self.tag) @@ -881,7 +961,7 @@ class builder(object): self.prefix = "%s/%s" % (test_prefix, self.tag) rmdir_force(self.test_source_dir) rmdir_force(self.prefix) - if cp: + if not self.git_clone_required: run_cmd("cp -R -a -l %s %s" % (test_master, self.test_source_dir), dir=test_master, show=True) else: run_cmd("git clone --recursive --shared %s %s" % (test_master, self.test_source_dir), dir=test_master, show=True) @@ -923,11 +1003,14 @@ class buildlist(object): else: tasknames = defaulttasks - self.tlist = [builder(n, tasks[n], cp=(n != "pidl")) for n in tasknames] + self.tlist = [builder(n, tasks[n]) for n in tasknames] if options.retry: rebase_remote = "rebaseon" - retry_task = [("retry", + retry_task = { + "git-clone-required": True, + "sequence": [ + ("retry", '''set -e git remote add -t %s %s %s git fetch %s @@ -944,9 +1027,9 @@ class buildlist(object): rebase_remote, rebase_branch, rebase_remote, rebase_remote, rebase_branch - ))] + ))]} - self.retry = builder('retry', retry_task, cp=False) + self.retry = builder('retry', retry_task) self.need_retry = False def kill_kids(self): |