aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
index beec598f4b..6dae07f5e5 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
@@ -37,6 +37,7 @@ import com.google.devtools.build.lib.syntax.SkylarkDict;
import com.google.devtools.build.lib.syntax.SkylarkList;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.testutil.TestConstants;
+import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
import org.junit.Before;
@@ -969,4 +970,28 @@ public class SkylarkRuleContextTest extends SkylarkTestCase {
SkylarkList noEmptyFilenamesList = (SkylarkList) noEmptyFilenames;
assertThat(noEmptyFilenamesList).containsExactly().inOrder();
}
+
+ @Test
+ public void testExternalShortPath() throws Exception {
+ scratch.file("/bar/WORKSPACE");
+ scratch.file("/bar/bar.txt");
+ scratch.file("/bar/BUILD", "exports_files(['bar.txt'])");
+ FileSystemUtils.appendIsoLatin1(
+ scratch.resolve("WORKSPACE"),
+ "local_repository(name = 'foo', path = '/bar')");
+ scratch.file(
+ "test/BUILD",
+ "genrule(",
+ " name = 'lib',",
+ " srcs = ['@foo//:bar.txt'],",
+ " cmd = 'echo $(SRCS) $@',",
+ " outs = ['lib.out'],",
+ " executable = 1,",
+ ")");
+ invalidatePackages();
+ SkylarkRuleContext ruleContext = createRuleContext("//test:lib");
+ String filename = evalRuleContextCode(ruleContext, "ruleContext.files.srcs[0].short_path")
+ .toString();
+ assertThat(filename).isEqualTo("../foo/bar.txt");
+ }
}