jdk/test/langtools/lib/combo/tools/javac/combo/ComboWatcher.java
Qing Xiao 741ae06c55 8313613: Use JUnit in langtools/lib tests
Reviewed-by: cstein, asotona
2023-10-16 17:14:34 +00:00

32 lines
1.2 KiB
Java

package tools.javac.combo;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.junit.jupiter.api.extension.AfterAllCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.TestWatcher;
public class ComboWatcher implements TestWatcher, AfterAllCallback {
private final Set<String> errors = Collections.synchronizedSet(new HashSet<>());
@Override
public void testFailed(ExtensionContext context, Throwable cause) {
if (context.getRequiredTestInstance() instanceof JavacTemplateTestBase instance) {
errors.addAll(instance.diags.errorKeys());
if (instance instanceof CompilationTestCase) {
// Make sure offending template ends up in log file on failure
System.err.printf("Diagnostics: %s%nTemplate: %s%n", instance.diags.errorKeys(),
instance.sourceFiles.stream().map(SourceFile::template).toList());
}
}
}
@Override
public void afterAll(ExtensionContext extensionContext) {
if (errors.isEmpty()) return;
System.err.println("Errors found in tests: " + errors);
}
}