aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar Vladimir Moskva <vladmos@google.com>2016-09-27 14:09:16 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-09-27 14:58:25 +0000
commit398b54d0ea0c511e412feb695fe46ebaa02f590b (patch)
treec8142f62f805d285d1869513f635a4b214aaa10f /src/test/java/com
parent6f6db014b4cd31c3d5d070640118ce64243cd42b (diff)
Fixed ISE while looking for cycles in WORKPLACE files #1793
-- MOS_MIGRATED_REVID=134403060
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryIntegrationTest.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryIntegrationTest.java
index 99d9936b6d..5365d855a3 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryIntegrationTest.java
@@ -36,6 +36,8 @@ import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
+import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -264,6 +266,32 @@ public class SkylarkRepositoryIntegrationTest extends BuildViewTestCase {
}
@Test
+ public void testCycleErrorInWorkspaceFileWithExternalRepo() throws Exception {
+ try (OutputStream output = scratch.resolve("WORKSPACE").getOutputStream(true /* append */)) {
+ output.write((
+ "\nload('//foo:bar.bzl', 'foobar')"
+ + "\ngit_repository(name = 'git_repo')").getBytes(StandardCharsets.UTF_8));
+ }
+ scratch.file("BUILD", "");
+ scratch.file("foo/BUILD", "");
+ scratch.file(
+ "foo/bar.bzl",
+ "load('@git_repo//xyz:foo.bzl', 'rule_from_git')",
+ "rule_from_git(name = 'foobar')");
+
+ invalidatePackages();
+ try {
+ getTarget("@//:git_repo");
+ fail();
+ } catch (AssertionError expected) {
+ assertThat(expected.getMessage()).contains("Failed to load Skylark extension "
+ + "'@git_repo//xyz:foo.bzl'.\n"
+ + "It usually happens when the repository is not defined prior to being used.\n"
+ + "Maybe repository 'git_repo' was defined later in your WORKSPACE file?");
+ }
+ }
+
+ @Test
public void testLoadDoesNotHideWorkspaceError() throws Exception {
reporter.removeHandler(failFastHandler);
scratch.file("/repo2/data.txt", "data");