aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRawi01 <Rawi01@users.noreply.github.com>2020-08-31 09:57:29 +0200
committerRawi01 <Rawi01@users.noreply.github.com>2020-08-31 09:57:29 +0200
commit82ac8aad1d0e3e152db4ce328184c40c73700cee (patch)
tree3d5abb9072d43b87f19e5faf88a3d09b6c6da8e4 /test
parent3d90a51163354930eeea0e26c2b0a567af8e96be (diff)
parent9148294f78a8e646ee131ca182a9b692bc028fdb (diff)
downloadlombok-82ac8aad1d0e3e152db4ce328184c40c73700cee.tar.gz
lombok-82ac8aad1d0e3e152db4ce328184c40c73700cee.tar.bz2
lombok-82ac8aad1d0e3e152db4ce328184c40c73700cee.zip
Merge branch 'master' into extensionmethod
Conflicts: build.xml
Diffstat (limited to 'test')
-rw-r--r--test/configuration/src/lombok/core/configuration/TestConfiguration.java4
-rw-r--r--test/core/src/lombok/AbstractRunTests.java24
-rw-r--r--test/core/src/lombok/DirectoryRunner.java20
-rw-r--r--test/core/src/lombok/LombokTestSource.java4
-rw-r--r--test/core/src/lombok/RunTestsViaDelombok.java2
-rw-r--r--test/core/src/lombok/RunTestsViaEcj.java108
-rw-r--r--test/core/src/lombok/TestBase.java (renamed from test/transform/src/lombok/transform/RunTransformTests.java)8
-rw-r--r--test/core/src/lombok/TestEclipse.java (renamed from test/core/src/lombok/RunAllTests.java)6
-rw-r--r--test/core/src/lombok/TestJavac.java31
-rw-r--r--test/pretty/resource/after/ThisParameter.java34
-rw-r--r--test/pretty/resource/before/ThisParameter.java41
-rw-r--r--test/stubs/com/fasterxml/jackson/annotation/JsonAnySetter.java12
-rw-r--r--test/transform/resource/after-delombok/BuilderConstructorJavadoc.java85
-rw-r--r--test/transform/resource/after-delombok/BuilderDefaults.java8
-rw-r--r--test/transform/resource/after-delombok/CheckerFrameworkSuperBuilder.java30
-rw-r--r--test/transform/resource/after-delombok/DelegateAlreadyImplemented.java43
-rw-r--r--test/transform/resource/after-delombok/DelegateGenerics.java32
-rw-r--r--test/transform/resource/after-delombok/DelegateWithVarargs2.java12
-rw-r--r--test/transform/resource/after-delombok/EqualsAndHashCodeRank.java31
-rw-r--r--test/transform/resource/after-delombok/GetterLazyArguments.java101
-rw-r--r--test/transform/resource/after-delombok/GetterSetterJavadoc.java2
-rw-r--r--test/transform/resource/after-delombok/JacksonBuilderSingular.java177
-rw-r--r--test/transform/resource/after-delombok/LoggerCommons.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerCustomWithTopicAndName.java6
-rw-r--r--test/transform/resource/after-delombok/LoggerJBossLog.java6
-rw-r--r--test/transform/resource/after-delombok/LoggerJul.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerLog4j.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerLog4j2.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerSlf4j.java17
-rw-r--r--test/transform/resource/after-delombok/LoggerSlf4jInvalidTopic.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerXSlf4j.java5
-rw-r--r--test/transform/resource/after-delombok/SkipSuppressWarnings.java24
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderBasic.java4
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderCustomized.java15
-rw-r--r--test/transform/resource/after-delombok/TypeUseAnnotations.java10
-rw-r--r--test/transform/resource/after-delombok/ValLambda.java6
-rw-r--r--test/transform/resource/after-delombok/ValueStaticConstructorOf.java10
-rw-r--r--test/transform/resource/after-ecj/BuilderConstructorJavadoc.java40
-rw-r--r--test/transform/resource/after-ecj/BuilderDefaults.java10
-rw-r--r--test/transform/resource/after-ecj/CheckerFrameworkSuperBuilder.java37
-rw-r--r--test/transform/resource/after-ecj/DelegateAlreadyImplemented.java29
-rw-r--r--test/transform/resource/after-ecj/DelegateGenerics.java24
-rw-r--r--test/transform/resource/after-ecj/DelegateWithVarargs2.java17
-rw-r--r--test/transform/resource/after-ecj/EqualsAndHashCodeAnnotated.java53
-rw-r--r--test/transform/resource/after-ecj/EqualsAndHashCodeRank.java36
-rw-r--r--test/transform/resource/after-ecj/GetterLazyArguments.java106
-rw-r--r--test/transform/resource/after-ecj/JacksonBuilderSingular.java164
-rw-r--r--test/transform/resource/after-ecj/LoggerCommons.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerCustomWithTopicAndName.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerJBossLog.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerJul.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerLog4j.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerLog4j2.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerSlf4j.java27
-rw-r--r--test/transform/resource/after-ecj/LoggerSlf4jInvalidTopic.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerXSlf4j.java11
-rw-r--r--test/transform/resource/after-ecj/SimpleTypeResolution.java2
-rw-r--r--test/transform/resource/after-ecj/SkipSuppressWarnings.java27
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderBasic.java4
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderCustomized.java8
-rw-r--r--test/transform/resource/after-ecj/TypeUseAnnotations.java9
-rw-r--r--test/transform/resource/after-ecj/ValLambda.java6
-rw-r--r--test/transform/resource/after-ecj/ValueStaticConstructorOf.java14
-rw-r--r--test/transform/resource/before/BuilderConstructorJavadoc.java35
-rw-r--r--test/transform/resource/before/CheckerFrameworkSuperBuilder.java2
-rw-r--r--test/transform/resource/before/DelegateAlreadyImplemented.java45
-rw-r--r--test/transform/resource/before/DelegateGenerics.java14
-rw-r--r--test/transform/resource/before/DelegateWithVarargs2.java9
-rw-r--r--test/transform/resource/before/EqualsAndHashCodeRank.java7
-rw-r--r--test/transform/resource/before/GetterLazyArguments.java21
-rw-r--r--test/transform/resource/before/JacksonBuilderSingular.java31
-rw-r--r--test/transform/resource/before/LoggerCommons.java5
-rw-r--r--test/transform/resource/before/LoggerCustomWithTopicAndName.java5
-rw-r--r--test/transform/resource/before/LoggerJBossLog.java5
-rw-r--r--test/transform/resource/before/LoggerJul.java5
-rw-r--r--test/transform/resource/before/LoggerLog4j.java5
-rw-r--r--test/transform/resource/before/LoggerLog4j2.java5
-rw-r--r--test/transform/resource/before/LoggerSlf4j.java14
-rw-r--r--test/transform/resource/before/LoggerSlf4jInvalidTopic.java5
-rw-r--r--test/transform/resource/before/LoggerXSlf4j.java5
-rw-r--r--test/transform/resource/before/SkipSuppressWarnings.java9
-rw-r--r--test/transform/resource/before/SuperBuilderBasic.java2
-rw-r--r--test/transform/resource/before/SuperBuilderCustomized.java10
-rw-r--r--test/transform/resource/before/TypeUseAnnotations.java2
-rw-r--r--test/transform/resource/before/ValLambda.java6
-rw-r--r--test/transform/resource/before/ValLub.java10
-rw-r--r--test/transform/resource/messages-delombok/LoggerSlf4jInvalidTopic.java.messages2
-rw-r--r--test/transform/resource/messages-ecj/CheckerFrameworkBasic.java.messages2
-rw-r--r--test/transform/resource/messages-ecj/CheckerFrameworkSuperBuilder.java.messages2
-rw-r--r--test/transform/resource/messages-ecj/LoggerSlf4jInvalidTopic.java.messages1
-rw-r--r--test/transform/resource/messages-ecj/SkipSuppressWarnings.java.messages1
-rw-r--r--test/transform/resource/messages-ecj/ValLambda.java.messages4
-rw-r--r--test/transform/resource/messages-idempotent/LoggerSlf4jInvalidTopic.java.messages1
93 files changed, 1781 insertions, 119 deletions
diff --git a/test/configuration/src/lombok/core/configuration/TestConfiguration.java b/test/configuration/src/lombok/core/configuration/TestConfiguration.java
index 3032daf3..504c36b2 100644
--- a/test/configuration/src/lombok/core/configuration/TestConfiguration.java
+++ b/test/configuration/src/lombok/core/configuration/TestConfiguration.java
@@ -65,8 +65,8 @@ public class TestConfiguration {
outStream.flush();
errStream.flush();
- String out = new String(rawOut.toByteArray()).replace("\r\n", "\n").replace('\\', '/').replaceAll(Pattern.quote(normalizedName) + "|" + Pattern.quote(baseName), "BASE/").trim();
- String err = new String(rawErr.toByteArray()).replace("\r\n", "\n").replace('\\', '/').replaceAll(Pattern.quote(normalizedName) + "|" + Pattern.quote(baseName), "BASE/").trim();
+ String out = new String(rawOut.toByteArray()).replace('\\', '/').replaceAll(Pattern.quote(normalizedName) + "|" + Pattern.quote(baseName), "BASE/").trim();
+ String err = new String(rawErr.toByteArray()).replace('\\', '/').replaceAll(Pattern.quote(normalizedName) + "|" + Pattern.quote(baseName), "BASE/").trim();
checkContent(directory, out, "out");
checkContent(directory, err, "err");
diff --git a/test/core/src/lombok/AbstractRunTests.java b/test/core/src/lombok/AbstractRunTests.java
index d223ae03..448f77ab 100644
--- a/test/core/src/lombok/AbstractRunTests.java
+++ b/test/core/src/lombok/AbstractRunTests.java
@@ -91,7 +91,7 @@ public abstract class AbstractRunTests {
}
});
- boolean changed = transformCode(messages, writer, file, sourceDirectives_.getSpecifiedEncoding(), sourceDirectives_.getFormatPreferences());
+ boolean changed = transformCode(messages, writer, file, sourceDirectives_.getSpecifiedEncoding(), sourceDirectives_.getFormatPreferences(), sourceDirectives_.minVersion());
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 +101,7 @@ public abstract class AbstractRunTests {
};
}
- protected abstract boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, File file, String encoding, Map<String, String> formatPreferences) throws Throwable;
+ protected abstract boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, File file, String encoding, Map<String, String> formatPreferences, int minVersion) throws Throwable;
protected String readFile(File file) throws IOException {
BufferedReader reader;
@@ -190,6 +190,8 @@ public abstract class AbstractRunTests {
for (CompilerMessage actualMessage : actualMessages) {
System.out.println(actualMessage);
}
+ System.out.println("**** Actual File ******");
+ System.out.println(lineNumber(actualFile));
System.out.println("*******************");
}
if (dumpActualFilesHere != null) {
@@ -199,6 +201,22 @@ public abstract class AbstractRunTests {
}
}
+ private CharSequence lineNumber(String content) {
+ StringBuilder out = new StringBuilder();
+ int pos = 0;
+ int ln = 1;
+ while (true) {
+ out.append(String.format("%4d ", ln));
+ int idx = content.indexOf('\n', pos);
+ if (idx == -1) {
+ return out.append(content.substring(pos));
+ }
+ out.append(content.substring(pos, idx + 1));
+ ln++;
+ pos = idx + 1;
+ }
+ }
+
@SuppressWarnings("null") /* eclipse bug workaround; it falsely thinks stuffAc will always be null. */
private static void compareMessages(String name, LombokImmutableList<CompilerMessageMatcher> expected, LinkedHashSet<CompilerMessage> actual) {
Iterator<CompilerMessageMatcher> expectedIterator = expected.iterator();
@@ -267,7 +285,7 @@ public abstract class AbstractRunTests {
endIdx--;
}
- return in.substring(0, endIdx);
+ return in.substring(0, endIdx + 1);
}
private static String[] removeBlanks(String[] in) {
diff --git a/test/core/src/lombok/DirectoryRunner.java b/test/core/src/lombok/DirectoryRunner.java
index b8b1da43..a174355d 100644
--- a/test/core/src/lombok/DirectoryRunner.java
+++ b/test/core/src/lombok/DirectoryRunner.java
@@ -47,7 +47,7 @@ public class DirectoryRunner extends Runner {
@Override public int getVersion() {
return Javac.getJavaCompilerVersion();
}
- },
+ },
JAVAC {
@Override public int getVersion() {
return DELOMBOK.getVersion();
@@ -82,8 +82,22 @@ public class DirectoryRunner extends Runner {
private static final FileFilter JAVA_FILE_FILTER = new FileFilter() {
@Override public boolean accept(File file) {
- return file.isFile() && file.getName().endsWith(".java") &&
- (DEBUG_FOCUS_ON_FILE.isEmpty() || DEBUG_FOCUS_ON_FILE.contains(file.getName()));
+ if (!file.isFile() || !file.getName().endsWith(".java")) return false;
+ boolean positiveFilter = false;
+ for (String dfof : DEBUG_FOCUS_ON_FILE) {
+ if (dfof.isEmpty()) continue;
+ if (!dfof.endsWith(".java")) dfof = dfof + ".java";
+ boolean invert = dfof.startsWith("!");
+ if (invert) dfof = dfof.substring(1);
+ positiveFilter = positiveFilter || !invert;
+ int starIdx = dfof.indexOf('*');
+ if (starIdx == -1) {
+ if (file.getName().equals(dfof)) return !invert;
+ } else {
+ if (file.getName().startsWith(dfof.substring(0, starIdx)) && file.getName().endsWith(dfof.substring(starIdx + 1))) return !invert;
+ }
+ }
+ return !positiveFilter;
}
};
diff --git a/test/core/src/lombok/LombokTestSource.java b/test/core/src/lombok/LombokTestSource.java
index b04f0ba0..57a32333 100644
--- a/test/core/src/lombok/LombokTestSource.java
+++ b/test/core/src/lombok/LombokTestSource.java
@@ -358,4 +358,8 @@ public class LombokTestSource {
if (specifiedEncoding == null || specifiedEncoding.equalsIgnoreCase(encoding)) return source;
return read0(sourceFolder, messagesFolder, fileName, specifiedEncoding);
}
+
+ public int minVersion() {
+ return Math.max(6, versionLowerLimit);
+ }
}
diff --git a/test/core/src/lombok/RunTestsViaDelombok.java b/test/core/src/lombok/RunTestsViaDelombok.java
index 0887de32..ffac8372 100644
--- a/test/core/src/lombok/RunTestsViaDelombok.java
+++ b/test/core/src/lombok/RunTestsViaDelombok.java
@@ -38,7 +38,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) throws Throwable {
+ public boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, final File file, String encoding, Map<String, String> formatPreferences, int version) throws Throwable {
delombok.setVerbose(true);
ChangedChecker cc = new ChangedChecker();
delombok.setFeedback(cc.feedback);
diff --git a/test/core/src/lombok/RunTestsViaEcj.java b/test/core/src/lombok/RunTestsViaEcj.java
index 3efe38f5..739d6316 100644
--- a/test/core/src/lombok/RunTestsViaEcj.java
+++ b/test/core/src/lombok/RunTestsViaEcj.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2014 The Project Lombok Authors.
+ * Copyright (C) 2010-2020 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -23,25 +23,33 @@ package lombok;
import java.io.File;
import java.io.StringWriter;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
import lombok.eclipse.Eclipse;
import lombok.javac.CapturingDiagnosticListener.CompilerMessage;
+import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
+import org.eclipse.jdt.core.dom.AST;
+import org.eclipse.jdt.core.dom.Co