aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/bytecode/src/lombok/bytecode/TestClassFileMetaData.java24
-rw-r--r--test/core/src/lombok/AbstractRunTests.java7
-rw-r--r--test/core/src/lombok/DirectoryRunner.java10
-rw-r--r--test/core/src/lombok/RunTestsViaDelombok.java50
-rw-r--r--test/core/src/lombok/RunTestsViaEcj.java3
-rw-r--r--test/transform/resource/after-delombok/BuilderSingularAnnotatedTypes.java1
-rw-r--r--test/transform/resource/after-delombok/BuilderSingularAnnotatedTypesWithSetterPrefix.java1
-rw-r--r--test/transform/resource/after-delombok/BuilderSingularNullBehavior2.java1
-rw-r--r--test/transform/resource/after-delombok/CheckerFrameworkBasic.java1
-rw-r--r--test/transform/resource/after-delombok/CheckerFrameworkSuperBuilder.java1
-rw-r--r--test/transform/resource/after-delombok/EqualsAndHashCodeAnnotated.java1
-rw-r--r--test/transform/resource/after-delombok/ExtensionMethodFunctional.java5
-rw-r--r--test/transform/resource/after-delombok/GetterLazyArguments.java1
-rw-r--r--test/transform/resource/after-delombok/JacksonBuilderSingular.java1
-rw-r--r--test/transform/resource/after-delombok/JacksonJsonProperty.java1
-rw-r--r--test/transform/resource/after-delombok/JacksonizedBuilderComplex.java1
-rw-r--r--test/transform/resource/after-delombok/JacksonizedBuilderSimple.java1
-rw-r--r--test/transform/resource/after-delombok/JacksonizedSuperBuilderSimple.java117
-rw-r--r--test/transform/resource/after-delombok/LoggerLog4j2.java1
-rw-r--r--test/transform/resource/after-delombok/LoggerSlf4jInvalidTopic.java5
-rw-r--r--test/transform/resource/after-delombok/NonNullTypeUse.java1
-rw-r--r--test/transform/resource/after-delombok/NullLibrary1.java1
-rw-r--r--test/transform/resource/after-delombok/NullLibrary2.java1
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderAbstract.java276
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderAbstractToBuilder.java354
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderBasic.java284
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderBasicToBuilder.java432
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderCustomized.java206
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderCustomizedWithSetterPrefix.java100
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderNameClashes.java254
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderNestedGenericTypes.java82
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderSingularAnnotatedTypes.java1
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderWithCustomBuilderMethod.java283
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderWithDefaults.java286
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderWithGenerics.java284
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderWithGenerics2.java284
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderWithGenericsAndToBuilder.java376
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderWithNonNull.java260
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderWithSetterPrefix.java432
-rw-r--r--test/transform/resource/after-delombok/TypeUseAnnotations.java1
-rw-r--r--test/transform/resource/after-delombok/ValDelegateMethodReference.java1
-rw-r--r--test/transform/resource/after-delombok/ValWeirdTypes.java1
-rw-r--r--test/transform/resource/after-delombok/WithByNullAnnos.java1
-rw-r--r--test/transform/resource/after-delombok/WithByTypes.java1
-rw-r--r--test/transform/resource/after-delombok/WithPlain.java1
-rw-r--r--test/transform/resource/after-ecj/BuilderSingularNullBehavior2.java1
-rw-r--r--test/transform/resource/after-ecj/ExtensionMethodFunctional.java4
-rw-r--r--test/transform/resource/after-ecj/LoggerSlf4jInvalidTopic.java9
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderAbstract.java222
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderAbstractToBuilder.java280
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderBasic.java244
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderBasicToBuilder.java366
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderCustomized.java182
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderCustomizedWithSetterPrefix.java90
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderNestedGenericTypes.java72
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderWithCustomBuilderMethod.java244
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderWithDefaults.java242
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderWithGenerics.java244
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderWithGenerics2.java244
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderWithGenericsAndToBuilder.java324
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderWithNonNull.java222
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderWithSetterPrefix.java366
-rw-r--r--test/transform/resource/after-ecj/ValueCallSuper.java64
-rw-r--r--test/transform/resource/before/BuilderSingularNullBehavior2.java1
-rw-r--r--test/transform/resource/before/CheckerFrameworkBasic.java1
-rw-r--r--test/transform/resource/before/CheckerFrameworkBuilder.java1
-rw-r--r--test/transform/resource/before/CheckerFrameworkSuperBuilder.java1
-rw-r--r--test/transform/resource/before/EqualsAndHashCodeAnnotated.java2
-rw-r--r--test/transform/resource/before/ExtensionMethodFunctional.java4
-rw-r--r--test/transform/resource/before/JacksonBuilderSingular.java1
-rw-r--r--test/transform/resource/before/JacksonJsonProperty.java1
-rw-r--r--test/transform/resource/before/JacksonizedBuilderComplex.java21
-rw-r--r--test/transform/resource/before/JacksonizedBuilderSimple.java1
-rw-r--r--test/transform/resource/before/JacksonizedSuperBuilderSimple.java1
-rw-r--r--test/transform/resource/before/JacksonizedSuperBuilderWithJsonDeserialize.java1
-rw-r--r--test/transform/resource/before/LoggerLog4j2.java1
-rw-r--r--test/transform/resource/before/LoggerSlf4jInvalidTopic.java5
-rw-r--r--test/transform/resource/before/NullLibrary1.java1
-rw-r--r--test/transform/resource/before/NullLibrary2.java1
-rw-r--r--test/transform/resource/before/SuperBuilderBasicToBuilder.java2
-rw-r--r--test/transform/resource/before/SuperBuilderCustomized.java1
-rw-r--r--test/transform/resource/before/SuperBuilderSingularAnnotatedTypes.java2
-rw-r--r--test/transform/resource/before/SuperBuilderWithCustomBuilderMethod.java1
-rw-r--r--test/transform/resource/before/ValDelegateMethodReference.java1
-rw-r--r--test/transform/resource/before/ValWeirdTypes.java1
-rw-r--r--test/transform/resource/before/ValueCallSuper.java14
-rw-r--r--test/transform/resource/before/WithByNullAnnos.java1
-rw-r--r--test/transform/resource/before/WithByTypes.java1
-rw-r--r--test/transform/resource/before/WithPlain.java1
-rw-r--r--test/transform/resource/messages-delombok/LoggerSlf4jInvalidTopic.java.messages2
-rw-r--r--test/transform/resource/messages-ecj/LoggerSlf4jInvalidTopic.java.messages1
-rw-r--r--test/transform/resource/messages-idempotent/LoggerSlf4jInvalidTopic.java.messages1
-rw-r--r--test/transform/src/lombok/transform/TestLombokFilesIdempotent.java6
-rw-r--r--test/transform/src/lombok/transform/TestSourceFiles.java6
-rw-r--r--test/transform/src/lombok/transform/TestWithDelombok.java6
-rw-r--r--test/transform/src/lombok/transform/TestWithEcj.java6
96 files changed, 4024 insertions, 3929 deletions
diff --git a/test/bytecode/src/lombok/bytecode/TestClassFileMetaData.java b/test/bytecode/src/lombok/bytecode/TestClassFileMetaData.java
index 5ff7e93b..7aef0d51 100644
--- a/test/bytecode/src/lombok/bytecode/TestClassFileMetaData.java
+++ b/test/bytecode/src/lombok/bytecode/TestClassFileMetaData.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 The Project Lombok Authors.
+ * Copyright (C) 2010-2021 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
@@ -56,7 +56,7 @@ public class TestClassFileMetaData {
public void testGetClassName() {
assertTrue(foo.containsUtf8("Foo"));
assertEquals("Foo", foo.getClassName());
-
+
assertTrue(bar.containsUtf8("Bar"));
assertEquals("Bar", bar.getClassName());
@@ -68,15 +68,13 @@ public class TestClassFileMetaData {
public void testGetSuperClassName() {
assertTrue(foo.containsUtf8("java/lang/Object"));
assertEquals("java/lang/Object", foo.getSuperClassName());
-
+
assertEquals("java/lang/Object", bar.getSuperClassName());
assertEquals("java/lang/Object", baz.getSuperClassName());
assertEquals("java/util/ArrayList", buux.getSuperClassName());
}
-
-
@Test
public void testUsesClass() {
assertTrue(foo.usesClass("java/lang/System"));
@@ -185,6 +183,22 @@ public class TestClassFileMetaData {
static byte[] compile(File file) {
try {
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
+ if (compiler == null) {
+ // The 'auto-find my compiler' code in java6 works because it hard-codes `c.s.t.j.a.JavacTool`, which we put on the classpath.
+ // On java8, it fails, because it looks for tools.jar, which won't be there.
+ // on J11+ place it succeeds again, as we run those on the real JDKs.
+
+ // Thus, let's try this, in cae we're on java 8:
+
+ try {
+ compiler = (JavaCompiler) Class.forName("com.sun.tools.javac.api.JavacTool").getConstructor().newInstance();
+ } catch (Exception e) {
+ compiler = null;
+ }
+ }
+
+ if (compiler == null) throw new RuntimeException("No javac tool is available in this distribution. Using an old JRE perhaps?");
+
File tempDir = getTempDir();
tempDir.mkdirs();
List<String> options = Arrays.asList("-proc:none", "-d", tempDir.getAbsolutePath());
diff --git a/test/core/src/lombok/AbstractRunTests.java b/test/core/src/lombok/AbstractRunTests.java
index 448f77ab..51ec41c5 100644
--- a/test/core/src/lombok/AbstractRunTests.java
+++ b/test/core/src/lombok/AbstractRunTests.java
@@ -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());
+ boolean checkPositions = !(params instanceof TestLombokFilesIdempotent || params instanceof TestSourceFiles) && !sourceDirectives_.isSkipCompareContent();
+
+ 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) 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;
diff --git a/test/core/src/lombok/DirectoryRunner.java b/test/core/src/lombok/DirectoryRunner.java
index 93b18039..b041c42e 100644
--- a/test/core/src/lombok/DirectoryRunner.java
+++ b/test/core/src/lombok/DirectoryRunner.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2020 The Project Lombok Authors.
+ * Copyright (C) 2009-2021 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
@@ -78,6 +78,9 @@ public class DirectoryRunner extends Runner {