diff options
author | Kristina Chodorow <kchodorow@google.com> | 2016-05-10 22:20:12 +0000 |
---|---|---|
committer | Klaus Aehlig <aehlig@google.com> | 2016-05-11 10:23:49 +0000 |
commit | d15c5be755b86017a19864a230e613c166d63737 (patch) | |
tree | 16e7ac4f574db15bb30aeb3e70533e0e77b58b4f /src/test/java/com/google/devtools/build/lib/skylark | |
parent | 0a447860fa68bdfefe6d5cd506f0de0562f18955 (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/BUILD | 63 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java | 25 |
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"); + } } |