Improve error messages for ActionTemplateExpansionFunction preconditions checks. PiperOrigin-RevId: 421064197
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java index 259e9f4..5ce5967 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java
@@ -168,18 +168,23 @@ for (Artifact output : action.getOutputs()) { Preconditions.checkState( output.getArtifactOwner().equals(key), - "%s generated an action with an output owned by the wrong owner: %s", + "%s generated an action with an output owned by the wrong owner %s not %s (%s)", actionTemplate, + output.getArtifactOwner(), + key, action); Preconditions.checkState( output.hasParent(), - "%s generated an action which outputs a non-TreeFileArtifact: %s", + "%s generated an action which outputs a non-TreeFileArtifact %s (%s)", actionTemplate, + output, action); Preconditions.checkState( outputs.contains(output.getParent()), - "%s generated an action with an output under an undeclared tree: %s", + "%s generated an action with an output %s under an undeclared tree not in %s (%s)", actionTemplate, + output, + outputs, action); } }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java index c196841..bf7c240 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
@@ -324,7 +324,10 @@ assertThat(e) .hasCauseThat() .hasMessageThat() - .contains(template + " generated an action with an output under an undeclared tree"); + .contains( + template + + " generated an action with an output File:[[<execution_root>]out]undeclared/child" + + " under an undeclared tree not in [File:[[<execution_root>]out]output]"); } @Test