Migrate cc_shared_library tests to rules_testing
This change migrates the first few tests, the rest will be done in follow up
changes.
RELNOTES:none
PiperOrigin-RevId: 527235966
Change-Id: Ie34eb4f3bf7e6766aa226c5bfc2a3c2a758065b9
diff --git a/distdir_deps.bzl b/distdir_deps.bzl
index 1133dc3..89c0a1a 100644
--- a/distdir_deps.bzl
+++ b/distdir_deps.bzl
@@ -365,7 +365,10 @@
"rules_testing": {
"sha256": "4e21f9aa7996944ce91431f27bca374bff56e680acfe497276074d56bc5d9af2",
"strip_prefix": "rules_testing-0.0.4",
- "urls": ["https://github.com/bazelbuild/rules_testing/releases/download/v0.0.4/rules_testing-v0.0.4.tar.gz"],
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_testing/releases/download/v0.0.4/rules_testing-v0.0.4.tar.gz",
+ "https://github.com/bazelbuild/rules_testing/releases/download/v0.0.4/rules_testing-v0.0.4.tar.gz",
+ ],
"archive": "rules_testing-v0.0.4.tar.gz",
"used_in": ["additional_distfiles", "test_WORKSPACE_files"],
"package_version": "0.0.4",
diff --git a/src/main/starlark/tests/builtins_bzl/BUILD b/src/main/starlark/tests/builtins_bzl/BUILD
index f5a6115..804dc11 100644
--- a/src/main/starlark/tests/builtins_bzl/BUILD
+++ b/src/main/starlark/tests/builtins_bzl/BUILD
@@ -22,6 +22,9 @@
":cc_builtin_test_files",
"//src/test/shell/bazel:test-deps",
"@bazel_tools//tools/bash/runfiles",
+ "@rules_testing//lib:analysis_test_bzl",
+ "@rules_testing//lib:truth_bzl",
+ "@rules_testing//lib:util_bzl",
],
)
diff --git a/src/main/starlark/tests/builtins_bzl/builtin_test_setup.sh b/src/main/starlark/tests/builtins_bzl/builtin_test_setup.sh
index d1daa52..f3cbbff 100644
--- a/src/main/starlark/tests/builtins_bzl/builtin_test_setup.sh
+++ b/src/main/starlark/tests/builtins_bzl/builtin_test_setup.sh
@@ -19,6 +19,7 @@
# implementation can rely on release Bazel, we can add the tests directly.
function setup_tests() {
+ add_rules_testing_to_workspace "WORKSPACE"
setup_skylib_support
src=$(get_runfiles_dir $1)
dest="${2:-$1}"
@@ -44,4 +45,4 @@
elif [[ -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then
echo $(grep -m1 "io_bazel/$1" "${RUNFILES_MANIFEST_FILE}" | cut -d' ' -f2 | sed "s|$1.*|$1|")
fi
-}
\ No newline at end of file
+}
diff --git a/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/BUILD.builtin_test b/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/BUILD.builtin_test
index 489581a..f08f91b 100644
--- a/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/BUILD.builtin_test
+++ b/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/BUILD.builtin_test
@@ -12,6 +12,7 @@
"nocode_cc_lib",
"wrapped_cc_lib",
)
+load("@rules_testing//lib:analysis_test.bzl", "analysis_test")
LINKABLE_MORE_THAN_ONCE = "LINKABLE_MORE_THAN_ONCE"
@@ -456,9 +457,10 @@
target_under_test = "//src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/failing_targets:two_dynamic_deps_same_export_in_binary",
)
-debug_files_test(
+analysis_test(
name = "debug_files_test",
- target_under_test = ":binary",
+ impl = debug_files_test,
+ target = ":binary",
)
interface_library_output_group_test(
diff --git a/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/starlark_tests.bzl b/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/starlark_tests.bzl
index 8cac580..d7b2347 100644
--- a/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/starlark_tests.bzl
+++ b/src/main/starlark/tests/builtins_bzl/cc/cc_shared_library/test_cc_shared_library/starlark_tests.bzl
@@ -155,14 +155,7 @@
paths_test = unittest.make(_paths_test_impl)
-def _debug_files_test_impl(ctx):
- env = analysistest.begin(ctx)
-
- target_under_test = analysistest.target_under_test(env)
- actual_files = []
- for debug_file in target_under_test[OutputGroupInfo].rule_impl_debug_files.to_list():
- actual_files.append(debug_file.basename)
-
+def _debug_files_test_impl(env, target):
expected_files = [
"bar_so_exports.txt",
"bar_so_link_once_static_libs.txt",
@@ -172,11 +165,14 @@
"foo_so_link_once_static_libs.txt",
"binary_link_once_static_libs.txt",
]
- asserts.equals(env, expected_files, actual_files)
- return analysistest.end(env)
+ actual_files = []
+ for debug_file in target[OutputGroupInfo].rule_impl_debug_files.to_list():
+ actual_files.append(debug_file.basename)
-debug_files_test = analysistest.make(_debug_files_test_impl)
+ env.expect.that_collection(expected_files).contains_exactly(actual_files)
+
+debug_files_test = _debug_files_test_impl
def _runfiles_test_impl(ctx):
env = analysistest.begin(ctx)
diff --git a/src/test/shell/testenv.sh.tmpl b/src/test/shell/testenv.sh.tmpl
index 3cb2072..2140a19 100755
--- a/src/test/shell/testenv.sh.tmpl
+++ b/src/test/shell/testenv.sh.tmpl
@@ -333,6 +333,7 @@
"rules_proto"
"rules_python"
"rules_pkg"
+ "rules_testing"
)
for repo in "${repos[@]}"; do
reponame="${repo%"_for_testing"}"
@@ -512,6 +513,8 @@
}
function setup_skylib_support() {
+ mkdir -p rules/private
+ touch rules/private/BUILD
cat >> WORKSPACE << EOF
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
@@ -571,6 +574,8 @@
}
function add_rules_testing_to_workspace() {
+ mkdir lib
+ touch lib/BUILD
cat >> "$1"<<EOF
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")