diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2023-12-11 09:13:40 +0700 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2023-12-11 03:38:37 +0100 |
commit | 05de3c05c3619c0aacd5b47a80ac1c6767deb39c (patch) | |
tree | b87ceda18dcf6ab02c3a01476a46043cf1d7e19f | |
parent | 8c72d2da438d06885d48ffd3ade30b89a782b874 (diff) | |
download | aspectj-05de3c05c3619c0aacd5b47a80ac1c6767deb39c.tar.gz aspectj-05de3c05c3619c0aacd5b47a80ac1c6767deb39c.zip |
Add tests for Java 21 unnamed classes and instance methods
TODO: Activate the unnamed class test after
https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1106 is done.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
5 files changed, 80 insertions, 0 deletions
diff --git a/tests/features1921/java21/NamedAspectWithSimpleMainMethodPreview1.aj b/tests/features1921/java21/NamedAspectWithSimpleMainMethodPreview1.aj new file mode 100644 index 000000000..337f1b9b1 --- /dev/null +++ b/tests/features1921/java21/NamedAspectWithSimpleMainMethodPreview1.aj @@ -0,0 +1,11 @@ +/** + * Example according to <a href="https://openjdk.org/jeps/445">JEP 445</a> + * <p> + * This actually does not require any compiler changes and should be compilable without {@code --enable-preview}. + * It merely serves as a test case for the JVM launcher protocol. + */ +public aspect NamedAspectWithSimpleMainMethodPreview1 { + void main() { + System.out.println("Hello world!"); + } +} diff --git a/tests/features1921/java21/NamedClassWithSimpleMainMethodPreview1.java b/tests/features1921/java21/NamedClassWithSimpleMainMethodPreview1.java new file mode 100644 index 000000000..d6fced008 --- /dev/null +++ b/tests/features1921/java21/NamedClassWithSimpleMainMethodPreview1.java @@ -0,0 +1,11 @@ +/** + * Example according to <a href="https://openjdk.org/jeps/445">JEP 445</a> + * <p> + * This actually does not require any compiler changes and should be compilable without {@code --enable-preview}. + * It merely serves as a test case for the JVM launcher protocol. + */ +public class NamedClassWithSimpleMainMethodPreview1 { + void main() { + System.out.println("Hello world!"); + } +} diff --git a/tests/features1921/java21/UnnamedClassWithSimpleMainMethodPreview1.java b/tests/features1921/java21/UnnamedClassWithSimpleMainMethodPreview1.java new file mode 100644 index 000000000..a9ecd1d7e --- /dev/null +++ b/tests/features1921/java21/UnnamedClassWithSimpleMainMethodPreview1.java @@ -0,0 +1,6 @@ +/** + * Example according to <a href="https://openjdk.org/jeps/445">JEP 445</a> + */ +void main() { + System.out.println("Hello world!"); +} diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1921/Java21PreviewFeaturesTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc1921/Java21PreviewFeaturesTests.java index bdde4b67e..79ce4c6cb 100644 --- a/tests/src/test/java/org/aspectj/systemtest/ajc1921/Java21PreviewFeaturesTests.java +++ b/tests/src/test/java/org/aspectj/systemtest/ajc1921/Java21PreviewFeaturesTests.java @@ -46,6 +46,25 @@ public class Java21PreviewFeaturesTests extends XMLBasedAjcTestCaseForJava21Only System.out.println("Unnamed patterns still are not implemented with the Java 21 release Eclipse 2023-12 (4.30)"); } + public void testNamedClassWithSimpleMainMethod() { + runTest("named class with simple main method"); + } + + public void testNamedAspectWithSimpleMainMethod() { + runTest("named aspect with simple main method"); + } + + /** + * Still not implemented with the Java 21 release Eclipse 2023-12 (4.30), + * see <a href="https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1106">GitHub issue 1106</a>. + * <p> + * TODO: Activate after JDT Core implementation and merge. + */ + public void testUnnamedClassWithSimpleMainMethod() { + //runTest("unnamed class with simple main method"); + System.out.println("Unnamed classes still are not implemented with the Java 21 release Eclipse 2023-12 (4.30)"); + } + public static Test suite() { return XMLBasedAjcTestCase.loadSuite(Java21PreviewFeaturesTests.class); } diff --git a/tests/src/test/resources/org/aspectj/systemtest/ajc1921/ajc1921.xml b/tests/src/test/resources/org/aspectj/systemtest/ajc1921/ajc1921.xml index edb41fb31..0c31700b2 100644 --- a/tests/src/test/resources/org/aspectj/systemtest/ajc1921/ajc1921.xml +++ b/tests/src/test/resources/org/aspectj/systemtest/ajc1921/ajc1921.xml @@ -300,4 +300,37 @@ </run> </ajc-test> + <!-- Java 21 preview --> + <ajc-test dir="features1921/java21" vm="21" title="named class with simple main method"> + <!-- Compiles without preview mode, but needs preview mode to run --> + <compile files="NamedClassWithSimpleMainMethodPreview1.java" options="-21"/> + <run class="NamedClassWithSimpleMainMethodPreview1" vmargs="--enable-preview"> + <stdout> + <line text="Hello world!"/> + </stdout> + </run> + </ajc-test> + + <!-- Java 21 preview --> + <ajc-test dir="features1921/java21" vm="21" title="named aspect with simple main method"> + <!-- Compiles without preview mode, but needs preview mode to run --> + <compile files="NamedAspectWithSimpleMainMethodPreview1.aj" options="-21"/> + <run class="NamedAspectWithSimpleMainMethodPreview1" vmargs="--enable-preview"> + <stdout> + <line text="Hello world!"/> + </stdout> + </run> + </ajc-test> + + <!-- Java 21 preview --> + <!-- TODO: Activate after https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1106 is done --> + <ajc-test dir="features1921/java21" vm="21" title="unnamed class with simple main method"> + <compile files="UnnamedClassWithSimpleMainMethodPreview1.java" options="--enable-preview -21"/> + <run class="UnnamedClassWithSimpleMainMethodPreview1" vmargs="--enable-preview"> + <stdout> + <line text="Hello world!"/> + </stdout> + </run> + </ajc-test> + </suite> |