|
| 1 | +# shellcheck source=./test_runner.sh |
| 2 | +dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) |
| 3 | +. "${dir}"/test_runner.sh |
| 4 | +. "${dir}"/test_helper.sh |
| 5 | +runner=$(get_test_runner "${1:-local}") |
| 6 | + |
| 7 | +test_scala_import_library_passes_labels_of_direct_deps() { |
| 8 | + dependency_target='//test_expect_failure/scala_import:root_for_scala_import_passes_labels_of_direct_deps' |
| 9 | + test_target='test_expect_failure/scala_import:leaf_for_scala_import_passes_labels_of_direct_deps' |
| 10 | + |
| 11 | + test_scala_library_expect_failure_on_missing_direct_deps $dependency_target $test_target |
| 12 | +} |
| 13 | + |
| 14 | +test_plus_one_deps_only_works_for_java_info_targets() { |
| 15 | + #for example doesn't break scala proto which depends on proto_library |
| 16 | + bazel build --extra_toolchains="//test_expect_failure/plus_one_deps:plus_one_deps" //test/proto:test_proto |
| 17 | +} |
| 18 | + |
| 19 | +test_scala_import_expect_failure_on_missing_direct_deps_warn_mode() { |
| 20 | + dependency_target1='//test_expect_failure/scala_import:cats' |
| 21 | + dependency_target2='//test_expect_failure/scala_import:guava' |
| 22 | + test_target='test_expect_failure/scala_import:scala_import_propagates_compile_deps' |
| 23 | + |
| 24 | + local expected_message1="buildozer 'add deps $dependency_target1' //$test_target" |
| 25 | + local expected_message2="buildozer 'add deps $dependency_target2' //$test_target" |
| 26 | + |
| 27 | + test_expect_failure_or_warning_on_missing_direct_deps_with_expected_message "${expected_message1}" ${test_target} "--extra_toolchains=//test/toolchains:high_level_transitive_deps_strict_deps_warn" "ne" "${expected_message2}" |
| 28 | +} |
| 29 | + |
| 30 | +test_plus_one_ast_analyzer_strict_deps() { |
| 31 | + dependenecy_target='//test_expect_failure/missing_direct_deps/internal_deps:transitive_dependency' |
| 32 | + test_target='test_expect_failure/missing_direct_deps/internal_deps:transitive_dependency_user' |
| 33 | + |
| 34 | + expected_message_warn="warning: Target '$dependenecy_target' is used but isn't explicitly declared, please add it to the deps" |
| 35 | + expected_message_error="error: Target '$dependenecy_target' is used but isn't explicitly declared, please add it to the deps" |
| 36 | + |
| 37 | + test_expect_failure_or_warning_on_missing_direct_deps_with_expected_message "${expected_message_error}" ${test_target} "--extra_toolchains=//test/toolchains:ast_plus_one_deps_strict_deps_error" "eq" |
| 38 | + test_expect_failure_or_warning_on_missing_direct_deps_with_expected_message "${expected_message_error}" ${test_target} "--extra_toolchains=//scala:minimal_direct_source_deps" "eq" |
| 39 | + test_expect_failure_or_warning_on_missing_direct_deps_with_expected_message "${expected_message_warn}" ${test_target} "--extra_toolchains=//test/toolchains:ast_plus_one_deps_strict_deps_warn" "ne" |
| 40 | +} |
| 41 | + |
| 42 | +test_stamped_target_label_loading() { |
| 43 | + local test_target="//test_expect_failure/missing_direct_deps/external_deps:java_lib_with_a_transitive_external_dep" |
| 44 | + local expected_message="buildozer 'add deps @io_bazel_rules_scala_guava//:io_bazel_rules_scala_guava' ${test_target}" |
| 45 | + |
| 46 | + test_expect_failure_or_warning_on_missing_direct_deps_with_expected_message \ |
| 47 | + "${expected_message}" ${test_target} \ |
| 48 | + "--extra_toolchains=//test/toolchains:ast_plus_one_deps_unused_deps_error" \ |
| 49 | + "eq" |
| 50 | +} |
| 51 | + |
| 52 | +test_demonstrate_INCORRECT_scala_proto_library_stamp() { |
| 53 | + local test_target="//test_expect_failure/missing_direct_deps/scala_proto_deps:uses_transitive_scala_proto" |
| 54 | + local incorrectly_stamped_expected_message="buildozer 'add deps //test_expect_failure/missing_direct_deps/scala_proto_deps:proto' ${test_target}" |
| 55 | + |
| 56 | + # When stamping is fixed, expected stamp is: |
| 57 | + # local correctly_stamped_expected_message="buildozer 'add deps //test_expect_failure/missing_direct_deps/scala_proto_deps:scala_proto' ${test_target}" |
| 58 | + |
| 59 | + test_expect_failure_or_warning_on_missing_direct_deps_with_expected_message \ |
| 60 | + "${incorrectly_stamped_expected_message}" ${test_target} \ |
| 61 | + "--extra_toolchains=//test/toolchains:ast_plus_one_deps_strict_deps_error" \ |
| 62 | + "eq" |
| 63 | +} |
| 64 | + |
| 65 | + |
| 66 | +$runner test_scala_import_library_passes_labels_of_direct_deps |
| 67 | +$runner test_plus_one_deps_only_works_for_java_info_targets |
| 68 | +$runner test_scala_import_expect_failure_on_missing_direct_deps_warn_mode |
| 69 | +$runner test_plus_one_ast_analyzer_strict_deps |
| 70 | +$runner test_stamped_target_label_loading |
| 71 | +$runner test_demonstrate_INCORRECT_scala_proto_library_stamp |
0 commit comments