C++: Fix path checking cc_shared_library
We were returning false when checking whether //foo:bar is under
//:__subpackages__
RELNOTES:none
PiperOrigin-RevId: 307808962
Change-Id: I080e4c239b75c188dae8af89f4b38aa935d92b0d
diff --git a/examples/experimental_cc_shared_library.bzl b/examples/experimental_cc_shared_library.bzl
index 7b62d21..7d7fc37 100644
--- a/examples/experimental_cc_shared_library.bzl
+++ b/examples/experimental_cc_shared_library.bzl
@@ -242,9 +242,12 @@
package_b_tokenized = label_b.package.split("/")
if len(package_b_tokenized) < len(package_a_tokenized):
return False
- for i in range(len(package_a_tokenized)):
- if package_a_tokenized[i] != package_b_tokenized[i]:
- return False
+
+ if package_a_tokenized[0] != "":
+ for i in range(len(package_a_tokenized)):
+ if package_a_tokenized[i] != package_b_tokenized[i]:
+ return False
+
return True
def _cc_shared_library_impl(ctx):
diff --git a/examples/test_cc_shared_library/starlark_tests.bzl b/examples/test_cc_shared_library/starlark_tests.bzl
index f301498..76a9e00 100644
--- a/examples/test_cc_shared_library/starlark_tests.bzl
+++ b/examples/test_cc_shared_library/starlark_tests.bzl
@@ -63,6 +63,8 @@
asserts.false(env, for_testing_dont_use_check_if_target_under_path(Label("@foo//bar"), Label("@foo//bar/baz:__subpackages__")))
asserts.false(env, for_testing_dont_use_check_if_target_under_path(Label("//bar"), Label("//bar/baz:__pkg__")))
+ asserts.true(env, for_testing_dont_use_check_if_target_under_path(Label("//foo/bar:baz"), Label("//:__subpackages__")))
+
return unittest.end(env)
paths_test = unittest.make(_paths_test_impl)