aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar Benjamin Peterson <bp@benjamin.pe>2018-06-18 08:54:36 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-18 08:56:15 -0700
commitba2f39140735948e83168de7e8124cddc477d0f1 (patch)
treec6ebf5ad2bae1e48006094d91df665a04e501704 /src/test
parente35e8cfabd33e2e35b88d3693083350cf3c9d006 (diff)
Consider runfiles symlinks when computing Runfiles.getEmptyFilenames().
Runfiles.getEmptyFilenames() only considered the unconditional and pruning manifest artifacts for empty-file insertion. Actual manifest creation asks the empty files supplier for empty files over symlinks (but not root symlinks!), too. Change-Id: Ice69bbaa9e6169bff7ec5833ee7ef1b73049a4a7 Closes #5334. Change-Id: Ice69bbaa9e6169bff7ec5833ee7ef1b73049a4a7 PiperOrigin-RevId: 201002604
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java
index 6e2e3a1850..54d215a31f 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java
@@ -432,4 +432,24 @@ public class RunfilesTest extends FoundationTestCase {
assertThat(runfilesMerged.getExtraMiddlemen())
.containsExactlyElementsIn(ImmutableList.of(mm1, mm2));
}
+
+ @Test
+ public void testGetEmptyFilenames() {
+ ArtifactRoot root = ArtifactRoot.asSourceRoot(Root.fromPath(scratch.resolve("/workspace")));
+ Artifact artifact = new Artifact(PathFragment.create("my-artifact"), root);
+ Runfiles runfiles =
+ new Runfiles.Builder("TESTING")
+ .addArtifact(artifact)
+ .addSymlink(PathFragment.create("my-symlink"), artifact)
+ .addRootSymlink(PathFragment.create("my-root-symlink"), artifact)
+ .setEmptyFilesSupplier(
+ (manifestPaths) ->
+ manifestPaths
+ .stream()
+ .map((f) -> f.replaceName(f.getBaseName() + "-empty"))
+ .collect(ImmutableList.toImmutableList()))
+ .build();
+ assertThat(runfiles.getEmptyFilenames())
+ .containsExactly("my-artifact-empty", "my-symlink-empty");
+ }
}