aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skylark
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2016-05-10 22:20:12 +0000
committerGravatar Klaus Aehlig <aehlig@google.com>2016-05-11 10:23:49 +0000
commitd15c5be755b86017a19864a230e613c166d63737 (patch)
tree16e7ac4f574db15bb30aeb3e70533e0e77b58b4f /src/test/java/com/google/devtools/build/lib/skylark
parent0a447860fa68bdfefe6d5cd506f0de0562f18955 (diff)
Use runfiles path, not execroot path, for Skylark's short_path
Will help with fixing #1233. -- MOS_MIGRATED_REVID=121993946
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/BUILD63
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java25
2 files changed, 88 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/BUILD b/src/test/java/com/google/devtools/build/lib/skylark/BUILD
new file mode 100644
index 0000000000..2580fb27c3
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/skylark/BUILD
@@ -0,0 +1,63 @@
+java_library(
+ name = "testutil",
+ srcs = glob([
+ "util/*.java",
+ ]),
+ visibility = ["//visibility:public"],
+ deps = [
+ "//src/main/java/com/google/devtools/build/lib:bazel-main",
+ "//src/main/java/com/google/devtools/build/lib:bazel-rules",
+ "//src/main/java/com/google/devtools/build/lib:build-base",
+ "//src/main/java/com/google/devtools/build/lib:collect",
+ "//src/main/java/com/google/devtools/build/lib:concurrent",
+ "//src/main/java/com/google/devtools/build/lib:events",
+ "//src/main/java/com/google/devtools/build/lib:packages",
+ "//src/main/java/com/google/devtools/build/lib:vfs",
+ "//src/main/java/com/google/devtools/build/lib/actions",
+ "//src/test/java/com/google/devtools/build/lib:analysis_testutil",
+ "//src/test/java/com/google/devtools/build/lib:foundations_testutil",
+ "//src/test/java/com/google/devtools/build/lib:syntax_testutil",
+ "//src/test/java/com/google/devtools/build/lib:testutil",
+ "//third_party:guava",
+ "//third_party:guava-testlib",
+ "//third_party:jsr305",
+ "//third_party:junit4",
+ "//third_party:truth",
+ ],
+)
+
+java_test(
+ name = "SkylarkTests",
+ srcs = glob([
+ "*.java",
+ ]),
+ test_class = "com.google.devtools.build.lib.AllTests",
+ deps = [
+ ":testutil",
+ "//src/main/java/com/google/devtools/build/lib:bazel-main",
+ "//src/main/java/com/google/devtools/build/lib:bazel-rules",
+ "//src/main/java/com/google/devtools/build/lib:build-base",
+ "//src/main/java/com/google/devtools/build/lib:collect",
+ "//src/main/java/com/google/devtools/build/lib:concurrent",
+ "//src/main/java/com/google/devtools/build/lib:events",
+ "//src/main/java/com/google/devtools/build/lib:java-rules",
+ "//src/main/java/com/google/devtools/build/lib:packages",
+ "//src/main/java/com/google/devtools/build/lib:python-rules",
+ "//src/main/java/com/google/devtools/build/lib:skylarkinterface",
+ "//src/main/java/com/google/devtools/build/lib:util",
+ "//src/main/java/com/google/devtools/build/lib:vfs",
+ "//src/main/java/com/google/devtools/build/lib/actions",
+ "//src/main/java/com/google/devtools/build/lib/rules/cpp",
+ "//src/main/java/com/google/devtools/build/skyframe",
+ "//src/test/java/com/google/devtools/build/lib:actions_testutil",
+ "//src/test/java/com/google/devtools/build/lib:analysis_testutil",
+ "//src/test/java/com/google/devtools/build/lib:foundations_testutil",
+ "//src/test/java/com/google/devtools/build/lib:test_runner",
+ "//src/test/java/com/google/devtools/build/lib:testutil",
+ "//third_party:guava",
+ "//third_party:guava-testlib",
+ "//third_party:jsr305",
+ "//third_party:junit4",
+ "//third_party:truth",
+ ],
+)
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");
+ }
}