aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar richardwa <richardwa@google.com>2018-02-22 14:10:52 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-22 14:12:45 -0800
commit702429bbc4d84c0da2499297a2d249237f5e6257 (patch)
tree787168d15de53c9e2808fd5b28aca87fe511fbd6 /src/test/java/com/google/devtools/build/lib/analysis
parentaf79eb49df9fb9a4b5a00194e5068a6cfedf12ae (diff)
Increase test coverage of rootpath(s) and execpath(s) expansion to external workspaces
RELNOTES: None. PiperOrigin-RevId: 186672083
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/LocationExpanderIntegrationTest.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/LocationExpanderIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/LocationExpanderIntegrationTest.java
index 1db06a8883..6dff6b20bd 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/LocationExpanderIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/LocationExpanderIntegrationTest.java
@@ -17,6 +17,9 @@ package com.google.devtools.build.lib.analysis;
import static com.google.common.truth.Truth.assertThat;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
+import com.google.devtools.build.lib.vfs.FileSystemUtils;
+import com.google.devtools.build.lib.vfs.ModifiedFileSet;
+import com.google.devtools.build.lib.vfs.Root;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -83,6 +86,34 @@ public class LocationExpanderIntegrationTest extends BuildViewTestCase {
}
@Test
+ public void otherPathExternalExpansion() throws Exception {
+ scratch.file(
+ "expansion/BUILD",
+ "sh_library(name='lib', srcs=['@r//p:foo'])");
+ FileSystemUtils.appendIsoLatin1(
+ scratch.resolve("WORKSPACE"), "local_repository(name='r', path='/r')");
+
+ // Invalidate WORKSPACE so @r can be resolved.
+ getSkyframeExecutor()
+ .invalidateFilesUnderPathForTesting(
+ reporter, ModifiedFileSet.EVERYTHING_MODIFIED, Root.fromPath(rootDirectory));
+
+ FileSystemUtils.createDirectoryAndParents(scratch.resolve("/foo/bar"));
+ scratch.file("/r/WORKSPACE", "workspace(name = 'r')");
+ scratch.file("/r/p/BUILD", "genrule(name='foo', outs=['foo.txt'], cmd='never executed')");
+
+ LocationExpander expander = makeExpander("//expansion:lib");
+ assertThat(expander.expand("foo $(execpath @r//p:foo) bar"))
+ .matches("foo .*-out/.*/external/r/p/foo\\.txt bar");
+ assertThat(expander.expand("foo $(execpaths @r//p:foo) bar"))
+ .matches("foo .*-out/.*/external/r/p/foo\\.txt bar");
+ assertThat(expander.expand("foo $(rootpath @r//p:foo) bar"))
+ .matches("foo external/r/p/foo.txt bar");
+ assertThat(expander.expand("foo $(rootpaths @r//p:foo) bar"))
+ .matches("foo external/r/p/foo.txt bar");
+ }
+
+ @Test
public void otherPathMultiExpansion() throws Exception {
scratch.file(
"expansion/BUILD",