disable remote
diff --git a/lib/tests/tar/BUILD.bazel b/lib/tests/tar/BUILD.bazel index 0be7390..a0da599 100644 --- a/lib/tests/tar/BUILD.bazel +++ b/lib/tests/tar/BUILD.bazel
@@ -165,6 +165,16 @@ tar( name = "tar_runfiles", srcs = [":cat_src_file"], + tags = [ + # bsdtar does an optimization where it canonicalizes files in the archive with same dev/inode + # by hardlinking them to make the archive smaller. This is an unhermetic behavior because + # bazel uses different sandboxing mechanisms depending on the platform and they don't suffer + # from this problem. + # However, on some RBE implementations like buildbuddy where everything is a hardlink (assuming) + # this doesn't work as it allows bsdtar to optimize archive by canonicalizing entries. + # See: https://github.com/aspect-build/bazel-lib/issues/620 + "no-remote-exec", + ], ) genrule(
diff --git a/lib/tests/tar/asserts.bzl b/lib/tests/tar/asserts.bzl index a3ce57e..8dd944f 100644 --- a/lib/tests/tar/asserts.bzl +++ b/lib/tests/tar/asserts.bzl
@@ -4,7 +4,7 @@ load("@bazel_skylib//rules:write_file.bzl", "write_file") # buildifier: disable=function-docstring -def assert_tar_listing(name, actual, expected): +def assert_tar_listing(name, actual, expected, tags = []): actual_listing = "_{}_listing".format(name) expected_listing = "_{}_expected".format(name) @@ -14,12 +14,14 @@ outs = ["_{}.listing".format(name)], cmd = "$(BSDTAR_BIN) -tvf $(execpath {}) >$@".format(actual), toolchains = ["@bsd_tar_toolchains//:resolved_toolchain"], + tags = tags, ) write_file( name = expected_listing, out = "_{}.expected".format(name), content = expected + [""], + tags = tags, ) diff_test( @@ -27,4 +29,5 @@ file1 = actual_listing, file2 = expected_listing, timeout = "short", + tags = tags, )