diff --git a/tests/bootstrap_test.sh b/tests/bootstrap_test.sh index 7925ab00e..17b441903 100755 --- a/tests/bootstrap_test.sh +++ b/tests/bootstrap_test.sh @@ -890,34 +890,4 @@ function test_queryview_null_build() { fi } -test_smoke -test_null_build -test_soong_docs_smoke -test_null_build_after_soong_docs -test_soong_build_rebuilt_if_blueprint_changes -test_glob_noop_incremental -test_add_file_to_glob -test_add_android_bp -test_change_android_bp -test_delete_android_bp -test_add_file_to_soong_build -test_glob_during_bootstrapping -test_soong_build_rerun_iff_environment_changes -test_create_global_include_directory -test_multiple_soong_build_modes -test_dump_json_module_graph -test_json_module_graph_back_and_forth_null_build -test_write_to_source_tree -test_queryview_smoke -test_queryview_null_build -test_bp2build_smoke -test_bp2build_generates_marker_file -test_bp2build_null_build -test_bp2build_back_and_forth_null_build -test_bp2build_add_android_bp -test_bp2build_add_irrelevant_file -test_bp2build_add_to_glob -test_bp2build_bazel_workspace_structure -test_bp2build_bazel_workspace_add_file -test_bp2build_build_file_precedence -test_bp2build_reports_multiple_errors +scan_and_run_tests diff --git a/tests/bp2build_bazel_test.sh b/tests/bp2build_bazel_test.sh index 679ac557c..2e7b9a892 100755 --- a/tests/bp2build_bazel_test.sh +++ b/tests/bp2build_bazel_test.sh @@ -8,7 +8,7 @@ source "$(dirname "$0")/lib.sh" readonly GENERATED_BUILD_FILE_NAME="BUILD.bazel" -function test_bp2build_null_build() { +function test_bp2build_null_build { setup run_soong bp2build local -r output_mtime1=$(stat -c "%y" out/soong/bp2build_workspace_marker) @@ -21,9 +21,7 @@ function test_bp2build_null_build() { fi } -test_bp2build_null_build - -function test_bp2build_null_build_with_globs() { +function test_bp2build_null_build_with_globs { setup mkdir -p foo/bar @@ -46,8 +44,6 @@ EOF fi } -test_bp2build_null_build_with_globs - function test_different_relative_outdir { setup @@ -68,8 +64,6 @@ EOF (export OUT_DIR=$outdir; run_soong bp2build && run_bazel build --config=bp2build //a:g) } -test_different_relative_outdir - function test_different_absolute_outdir { setup @@ -90,9 +84,7 @@ EOF (export OUT_DIR=$outdir; run_soong bp2build && run_bazel build --config=bp2build //a:g) } -test_different_absolute_outdir - -function test_bp2build_generates_all_buildfiles { +function _bp2build_generates_all_buildfiles { setup mkdir -p foo/convertible_soong_module @@ -157,10 +149,12 @@ EOF fi } -_save_trap=$(trap -p EXIT) -trap '[[ $? -ne 0 ]] && echo Are you running this locally? Try changing --sandbox_tmpfs_path to something other than /tmp/ in build/bazel/linux.bazelrc.' EXIT -test_bp2build_generates_all_buildfiles -eval ${_save_trap} +function test_bp2build_generates_all_buildfiles { + _save_trap=$(trap -p EXIT) + trap '[[ $? -ne 0 ]] && echo Are you running this locally? Try changing --sandbox_tmpfs_path to something other than /tmp/ in build/bazel/linux.bazelrc.' EXIT + _bp2build_generates_all_buildfiles + eval "${_save_trap}" +} function test_cc_correctness { setup @@ -213,8 +207,6 @@ EOF fi } -test_cc_correctness - # Regression test for the following failure during symlink forest creation: # # Cannot stat '/tmp/st.rr054/foo/bar/unresolved_symlink': stat /tmp/st.rr054/foo/bar/unresolved_symlink: no such file or directory @@ -239,4 +231,4 @@ EOF fi } -test_bp2build_null_build_with_unresolved_symlink_in_source +scan_and_run_tests diff --git a/tests/lib.sh b/tests/lib.sh index e40f0adda..f68199a96 100644 --- a/tests/lib.sh +++ b/tests/lib.sh @@ -150,3 +150,16 @@ info "Mock top: $MOCK_TOP" export ALLOW_MISSING_DEPENDENCIES=true export ALLOW_BP_UNDER_SYMLINKS=true warmup_mock_top + +function scan_and_run_tests { + # find all test_ functions + # NB "declare -F" output is sorted, hence test order is deterministic + readarray -t test_fns < <(declare -F | sed -n -e 's/^declare -f \(test_.*\)$/\1/p') + info "Found ${#test_fns[*]} tests" + if [[ ${#test_fns[*]} -eq 0 ]]; then + fail "No tests found" + fi + for f in ${test_fns[*]}; do + $f + done +} \ No newline at end of file