diff options
author | 2016-02-09 18:57:13 +0000 | |
---|---|---|
committer | 2016-02-10 10:23:12 +0000 | |
commit | ea172999bd6f0b6f5b05613040f730a03ea40a1d (patch) | |
tree | b25dae9e3ce276a3c9446f2a401a1397816710d7 /src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionFunction.java | |
parent | dc68ccdf6aa833f83cddf598326e34ecfc0dca68 (diff) |
Skyframe-based loading phase runner: report errors if a package is in error.
This is a bit odd - the legacy loading phase runner reports a loading error,
but no target pattern error in keep_going mode, even though it's clearly an
error in the referenced target itself, rather than in its transitive closure.
This happens because the target pattern eval swallows such errors in keep_going
mode, and doesn't even report the error. I tried changing that, but it's a
fairly large refactoring, and that code path is dead if we switch to the new
one.
In the Skyframe-based implementation, both keep_going and nokeep_going paths
now report a target pattern error. (Note that the new code can never report a
loading error, because it doesn't perform transitive loading.)
The corresponding test is moved from SkyframeLoadingAndAnalysisTest to
LoadingPhaseRunnerTest - we don't need any integration test setup for that.
--
MOS_MIGRATED_REVID=114236897
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionFunction.java | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionFunction.java index ad2cff7a29..d5ecb25ae2 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionFunction.java @@ -107,6 +107,9 @@ final class TestSuiteExpansionFunction implements SkyFunction { } try { builder.add(pkg.getTarget(label.getName())); + if (pkg.containsErrors()) { + builder.setError(); + } } catch (NoSuchTargetException e) { builder.setError(); } |