Fix Skylark outputs to properly report errors in template placeholders.
Fixes #1479.
PiperOrigin-RevId: 175979487
diff --git a/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java
index c0e098a..b0a3a23 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java
@@ -136,13 +136,17 @@
String[] expectedSubstitutions,
String[] expectedFoundPlaceholders)
throws Exception {
- List<String> foundAttributes = new ArrayList<>();
- List<String> substitutions =
- ImplicitOutputsFunction.substitutePlaceholderIntoTemplate(
- template, null, attrValues, foundAttributes);
- assertThat(foundAttributes)
+ // Directly call into ParsedTemplate in order to access the attribute names.
+ ImplicitOutputsFunction.ParsedTemplate parsedTemplate =
+ ImplicitOutputsFunction.ParsedTemplate.parse(template);
+
+ assertThat(parsedTemplate.attributeNames())
.containsExactlyElementsIn(Arrays.asList(expectedFoundPlaceholders))
.inOrder();
+
+ // Test the actual substitution code.
+ List<String> substitutions =
+ ImplicitOutputsFunction.substitutePlaceholderIntoTemplate(template, null, attrValues);
assertThat(substitutions)
.containsExactlyElementsIn(Arrays.asList(expectedSubstitutions));
}