[testing] also ignore unset positions for the pretty print tester.

This commit is contained in:
Reinier Zwitserloot committed 2021-03-13 18:20:14 +01:00
1 parent c979ee9ddf
commit fb10b185bd
3 files changed
+25 -9

No files matched your search

+5 -2
View File
@@ -48,6 +48,7 @@ import lombok.core.configuration.ConfigurationResolver;
import lombok.core.configuration.ConfigurationResolverFactory;
import lombok.javac.CapturingDiagnosticListener.CompilerMessage;
import lombok.transform.TestLombokFilesIdempotent;
import lombok.transform.TestSourceFiles;
public abstract class AbstractRunTests {
private final File dumpActualFilesHere;
@@ -91,7 +92,9 @@ public abstract class AbstractRunTests {
}
});
boolean changed = transformCode(messages, writer, file, sourceDirectives_.getSpecifiedEncoding(), sourceDirectives_.getFormatPreferences(), sourceDirectives_.minVersion(), params instanceof TestLombokFilesIdempotent);
boolean checkPositions = !(params instanceof TestLombokFilesIdempotent || params instanceof TestSourceFiles);
boolean changed = transformCode(messages, writer, file, sourceDirectives_.getSpecifiedEncoding(), sourceDirectives_.getFormatPreferences(), sourceDirectives_.minVersion(), checkPositions);
boolean forceUnchanged = sourceDirectives_.forceUnchanged() || sourceDirectives_.isSkipCompareContent();
if (params.expectChanges() && !forceUnchanged && !changed) messages.add(new CompilerMessage(-1, -1, true, "not flagged modified"));
if (!params.expectChanges() && changed) messages.add(new CompilerMessage(-1, -1, true, "unexpected modification"));
@@ -101,7 +104,7 @@ public abstract class AbstractRunTests {
};
}
protected abstract boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, File file, String encoding, Map<String, String> formatPreferences, int minVersion, boolean idempotentCheck) throws Throwable;
protected abstract boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, File file, String encoding, Map<String, String> formatPreferences, int minVersion, boolean checkPositions) throws Throwable;
protected String readFile(File file) throws IOException {
BufferedReader reader;
+19 -6
View File
@@ -53,6 +53,7 @@ import com.sun.tools.javac.tree.JCTree.JCIdent;
import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
import com.sun.tools.javac.tree.JCTree.JCModifiers;
import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
import com.sun.tools.javac.tree.JCTree.TypeBoundKind;
import lombok.delombok.Delombok;
import lombok.javac.CapturingDiagnosticListener;
@@ -63,7 +64,7 @@ public class RunTestsViaDelombok extends AbstractRunTests {
private Delombok delombok = new Delombok();
@Override
public boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, final File file, String encoding, Map<String, String> formatPreferences, int version, boolean idempotentCheck) throws Throwable {
public boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, final File file, String encoding, Map<String, String> formatPreferences, int version, boolean checkPositions) throws Throwable {
delombok.setVerbose(true);
ChangedChecker cc = new ChangedChecker();
delombok.setFeedback(cc.feedback);
@@ -73,9 +74,7 @@ public class RunTestsViaDelombok extends AbstractRunTests {
delombok.setDiagnosticsListener(new CapturingDiagnosticListener(file, messages));
if (!idempotentCheck) {
delombok.addAdditionalAnnotationProcessor(new ValidatePositionProcessor());
}
if (checkPositions) delombok.addAdditionalAnnotationProcessor(new ValidatePositionProcessor(version));
delombok.addFile(file.getAbsoluteFile().getParentFile(), file.getName());
delombok.setSourcepath(file.getAbsoluteFile().getParent());
@@ -93,6 +92,12 @@ public class RunTestsViaDelombok extends AbstractRunTests {
}
public static class ValidatePositionProcessor extends TreeProcessor {
private final int version;
public ValidatePositionProcessor(int version) {
this.version = version;
}
@Override void processCompilationUnit(final JCCompilationUnit unit) {
unit.accept(new TreeScanner() {
@Override public void scan(JCTree tree) {
@@ -105,10 +110,18 @@ public class RunTestsViaDelombok extends AbstractRunTests {
fail("Start position of doc comment (" + Javac.getDocComment(unit, tree) + ") of " + tree + " not set");
}
if (tree.pos == -1) {
boolean check = true;
if (version < 8 && tree instanceof TypeBoundKind) {
// TypeBoundKind works differently in java6, and as a consequence,
// the position is not set properly.
// Given status of j6/j7, not worth properly testing.
check = false;
}
if (check && tree.pos == -1) {
fail("Start position of " + tree + " not set");
}
if (Javac.getEndPosition(tree, unit) == -1) {
if (check && Javac.getEndPosition(tree, unit) == -1) {
fail("End position of " + tree + " not set");
}
} finally {
+1 -1
View File
@@ -109,7 +109,7 @@ public class RunTestsViaEcj extends AbstractRunTests {
}
@Override
public boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, File file, String encoding, Map<String, String> formatPreferences, int minVersion, boolean idempotentCheck) throws Throwable {
public boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, File file, String encoding, Map<String, String> formatPreferences, int minVersion, boolean checkPositions) throws Throwable {
final AtomicReference<CompilationResult> compilationResult_ = new AtomicReference<CompilationResult>();
final AtomicReference<CompilationUnitDeclaration> compilationUnit_ = new AtomicReference<CompilationUnitDeclaration>();
ICompilerRequestor bitbucketRequestor = new ICompilerRequestor() {