diff options
author | 2016-09-27 14:09:16 +0000 | |
---|---|---|
committer | 2016-09-27 14:58:25 +0000 | |
commit | 398b54d0ea0c511e412feb695fe46ebaa02f590b (patch) | |
tree | c8142f62f805d285d1869513f635a4b214aaa10f /src/test/java/com | |
parent | 6f6db014b4cd31c3d5d070640118ce64243cd42b (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.java | 28 |
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"); |