diff options
author | 2018-02-22 14:10:52 -0800 | |
---|---|---|
committer | 2018-02-22 14:12:45 -0800 | |
commit | 702429bbc4d84c0da2499297a2d249237f5e6257 (patch) | |
tree | 787168d15de53c9e2808fd5b28aca87fe511fbd6 /src/test/java/com/google/devtools/build/lib/analysis | |
parent | af79eb49df9fb9a4b5a00194e5068a6cfedf12ae (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.java | 31 |
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", |