diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2024-03-22 18:25:56 +0100 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2024-03-23 20:22:39 +0100 |
commit | dcc2fd168c30a6d4293f3ceade2e95d822e67e36 (patch) | |
tree | 5377d8b90100fdf1330ff8e8fa7da40dc9b77415 | |
parent | 85b91b2f8427b654876b4511a16e9c5e2fa0e8a3 (diff) | |
download | aspectj-dcc2fd168c30a6d4293f3ceade2e95d822e67e36.tar.gz aspectj-dcc2fd168c30a6d4293f3ceade2e95d822e67e36.zip |
Adjust 1.6.1 'testRunningBrokenCode_pr102733*' tests ECJ Java 22
Initially, these tests made sure that an old AJC bug causing
incompatibility to ECJ when using `-proceedOnError` was fixed and there
were no regressions. See also:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=102733
Now with the Java 22 changes for JEP 463 "Implicitly Declared Classes
and Instance Main Methods (Second Preview)" in JDT Core, source code is
parsed into a significantly different AST structure than before, even
when using compiler targets < 22. See also https://openjdk.org/jeps/463.
One test has been temporarily adjusted to the byte code created by
ECJ/AJC now.
TODO: Revert/adjust after this upstream bug has been
fixed:
https://github.com/eclipse-jdt/eclipse.jdt.core/issues/2205
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
-rw-r--r-- | tests/bugs161/pr102733/C3.java | 6 | ||||
-rw-r--r-- | tests/bugs161/pr102733/Invoker.java | 27 | ||||
-rw-r--r-- | tests/bugs161/pr102733/Invoker3.java | 24 | ||||
-rw-r--r-- | tests/src/test/java/org/aspectj/systemtest/ajc161/Ajc161Tests.java | 10 | ||||
-rw-r--r-- | tests/src/test/resources/org/aspectj/systemtest/ajc161/ajc161.xml | 105 |
5 files changed, 110 insertions, 62 deletions
diff --git a/tests/bugs161/pr102733/C3.java b/tests/bugs161/pr102733/C3.java new file mode 100644 index 000000000..4f8ed164d --- /dev/null +++ b/tests/bugs161/pr102733/C3.java @@ -0,0 +1,6 @@ + +public class C3 { + public static void main(String[] argv) {} + + blahblahpackage pack; +} diff --git a/tests/bugs161/pr102733/Invoker.java b/tests/bugs161/pr102733/Invoker.java index bfa162de5..bc84365cd 100644 --- a/tests/bugs161/pr102733/Invoker.java +++ b/tests/bugs161/pr102733/Invoker.java @@ -1,14 +1,15 @@ -import java.lang.reflect.Method; - public class Invoker { - public static void main(String[] args) throws Throwable { - try { - C.main(null); - } catch (Throwable t) { - boolean failedCorrectly = t.toString().indexOf("Unresolved compilation")!=-1; - if (failedCorrectly) return; - throw t; - } - throw new RuntimeException("Call to main should have failed!"); - } -}
\ No newline at end of file + public static void main(String[] args) throws Throwable { + try { + new C(); + } + catch (Throwable t) { + boolean failedCorrectly = + t.toString().contains("Unresolved compilation problem") && + t.toString().contains("The method main cannot be declared static"); + if (failedCorrectly) + return; + throw new RuntimeException("Constructor call should have failed!", t); + } + } +} diff --git a/tests/bugs161/pr102733/Invoker3.java b/tests/bugs161/pr102733/Invoker3.java new file mode 100644 index 000000000..e7a0d461e --- /dev/null +++ b/tests/bugs161/pr102733/Invoker3.java @@ -0,0 +1,24 @@ +public class Invoker3 { + public static void main(String[] args) throws Throwable { + try { + C3.main(null); + } + catch (Throwable t) { + boolean failedCorrectly = t.toString().indexOf("Unresolved compilation") != -1; + if (failedCorrectly) + return; + throw new RuntimeException("Call to main should have failed!", t); + } + try { + new C3(); + } + catch (Throwable t) { + boolean failedCorrectly = + t.toString().contains("Unresolved compilation problem") && + t.toString().contains("blahblahpackage cannot be resolved to a type"); + if (failedCorrectly) + return; + throw new RuntimeException("Constructor call should have failed!", t); + } + } +} diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc161/Ajc161Tests.java b/tests/src/test/java/org/aspectj/systemtest/ajc161/Ajc161Tests.java index 5822a3f7c..11f24c2b1 100644 --- a/tests/src/test/java/org/aspectj/systemtest/ajc161/Ajc161Tests.java +++ b/tests/src/test/java/org/aspectj/systemtest/ajc161/Ajc161Tests.java @@ -54,12 +54,18 @@ public class Ajc161Tests extends org.aspectj.testing.XMLBasedAjcTestCase { runTest("ataspectj deow - 2"); } + public void testRunningBrokenCode_pr102733() { + // TODO: Revert, when https://github.com/eclipse-jdt/eclipse.jdt.core/issues/2205 is fixed + runTest("running broken code"); + } + public void testRunningBrokenCode_pr102733_2() { runTest("running broken code - 2"); } - public void testRunningBrokenCode_pr102733() { - runTest("running broken code"); + public void testRunningBrokenCode_pr102733_3() { + // TODO: Adjust as necessary, when https://github.com/eclipse-jdt/eclipse.jdt.core/issues/2205 is fixed + runTest("running broken code - 3"); } public void testErrorOnNonabstractGenericAtAspectJAspect_pr168982() { diff --git a/tests/src/test/resources/org/aspectj/systemtest/ajc161/ajc161.xml b/tests/src/test/resources/org/aspectj/systemtest/ajc161/ajc161.xml index abc3e058e..8a1798b8b 100644 --- a/tests/src/test/resources/org/aspectj/systemtest/ajc161/ajc161.xml +++ b/tests/src/test/resources/org/aspectj/systemtest/ajc161/ajc161.xml @@ -11,17 +11,17 @@ <ajc-test dir="bugs161/pr173978" title="lv table for around"> <compile files="TestAroundAspect.java Test.java" options="-1.5"/> </ajc-test> - + <ajc-test dir="bugs161/pr237419" title="generics ataround"> <compile files="problem/aspect/AnyAspect.java problem/SpecificService.java problem/Specific.java problem/GenericService.java problem/Generic.java" options="-1.5"/> <run class="problem.SpecificService"/> </ajc-test> - + <ajc-test dir="bugs161/pr203367" title="generic marker match"> <compile files="CantMatchOnInterfaceIntroducedToGenericClass.java" options="-1.5"/> <run class="bug.CantMatchOnInterfaceIntroducedToGenericClass"/> </ajc-test> - + <ajc-test dir="bugs161/pr198196" title="super itds - 2"> <compile files="Marker.java Foo.java MarkerAspect2.java"/> <run class="Foo"> @@ -35,65 +35,76 @@ </stdout> </run> </ajc-test> - + <ajc-test dir="bugs161/pr198196" title="super itds - 3"> <compile files="Marker.java Foo.java MarkerAspect1.java"/> <run class="Foo"/> </ajc-test> - + <ajc-test dir="bugs161/pr198196" title="super itds - 4"> <compile files="Marker.java Foo.java MarkerAspect3.java"/> <run class="Foo"/> </ajc-test> - + <ajc-test dir="bugs161/pr134425" title="super itds"> <compile files="Derived.java Base.java"/> <run class="pkg.Derived"/> </ajc-test> - + <ajc-test dir="bugs161/pr237381" title="ataspectj deow - 1"> <compile files="Deow1.java" options="-1.5"> <message kind="warning" line="7" text="fromX"/> <message kind="warning" line="15" text="fromY"/> </compile> </ajc-test> - + <ajc-test dir="bugs161/pr237381" title="ataspectj deow - 2"> <compile files="Deow2.java" options="-1.5"> <message kind="error" line="7" text="fromX"/> <message kind="error" line="15" text="fromY"/> </compile> </ajc-test> - + <ajc-test dir="bugs161/pr102733" title="running broken code"> - <compile files="Invoker.java C.java" options="-proceedOnError"> - <message kind="error" line="2" text="Syntax error"/> + <compile files="C.java" options="-proceedOnError"> + <message file="C.java" kind="error" line="1" text="Unnamed Classes and Instance Main Methods"/> + <message file="C.java" kind="error" line="2" text="blahblahpackage cannot be resolved to a type"/> + <message file="C.java" kind="error" line="2" text="Implicitly declared class must have a candidate main method"/> + <message file="C.java" kind="error" line="2" text="The method main cannot be declared static; static methods can only be declared in a static or top level type"/> </compile> + <compile files="Invoker.java"/> <run class="Invoker"/> </ajc-test> - + <ajc-test dir="bugs161/pr102733" title="running broken code - 2"> <compile files="Invoker2.java C2.java" options="-proceedOnError"> <message kind="error" line="5"/> </compile> <run class="Invoker2"/> </ajc-test> - + + <ajc-test dir="bugs161/pr102733" title="running broken code - 3"> + <compile files="C3.java Invoker3.java" options="-proceedOnError"> + <message file="C3.java" kind="error" line="5" text="blahblahpackage cannot be resolved to a type"/> + </compile> + <run class="Invoker3"/> + </ajc-test> + <ajc-test dir="bugs161/pr168982" title="error on non-abstract generic ataspectj aspect"> <compile files="TracingAspect2.java" options="-1.5"> <message kind="error" line="9"/> </compile> </ajc-test> - + <ajc-test dir="bugs161/pr234933" title="ignoring type level suppress"> <compile files="Foobar.java" options="-1.5 -Xlint:error"/> </ajc-test> - + <ajc-test dir="bugs161/pr223226" title="duplicate method signature - 2"> <compile files="AspectX.java BInterface.java FooInterface.java AspectXMarker.java Foo.java Test.java" options="-1.5"/> <run class="Test"/> </ajc-test> - + <ajc-test dir="bugs161/pr223226" title="duplicate method signature"> <compile files="AspectX.java BInterface.java FooInterface.java AspectXMarker.java Foo.java Test.java" options=""> <message kind="error" line="1"/> @@ -106,7 +117,7 @@ <ajc-test dir="bugs161/pr197719" title="protected methods and around advice - again - 2"> <compile files="test/aspects/C1.java test/aspects/C3.java test/aspects/MyAnn.java test/aspects/MyAnnAspect.java test/aspects2/C2.java" options="-1.5 -showWeaveInfo"> <message kind="weave" text="Join point 'method-call(void test.aspects.C1.aMethod())' in Type 'test.aspects.C1' (C1.java:12) "/> - + <!-- first of these through accessor - so line number wrong and target wrong --> <message kind="weave" text="Join point 'method-call(void test.aspects2.C2.aMethod())' in Type 'test.aspects2.C2' (C2.java:1) "/><!-- was line 18 --> <message kind="weave" text="Join point 'method-call(void test.aspects2.C2.aMethod())' in Type 'test.aspects2.C2' (C2.java:8) "/> @@ -123,7 +134,7 @@ <run class="test.aspects.C3"> </run> </ajc-test> - + <ajc-test dir="bugs161/pr197719" title="protected methods and around advice - again"> <compile files="A.java B.java X.java" options="-1.5"/> <run class="b.B"> @@ -139,24 +150,24 @@ <compile files="A.java B.java C.java X.java" options="-1.5"/> <run class="a.C"/> </ajc-test> - + <ajc-test dir="bugs161/pr174385" title="static strings in annotation pointcuts"> <compile files="StaticFinalStringInPointcutAspect.java" options="-1.5"/> <run class="bug.StaticFinalStringInPointcutAspect"/> </ajc-test> - + <ajc-test dir="bugs161/pr199130" title="complex bounds on generic aspect - 1"> <compile files="Simple.java" options="-1.5"/> <run class="Simple"> </run> </ajc-test> - + <ajc-test dir="bugs161/pr199130" title="complex bounds on generic aspect - 2"> <compile files="Complex.java" options="-1.5"/> <run class="Complex"> </run> </ajc-test> - + <ajc-test dir="bugs161/pr199130" title="complex bounds on generic aspect - 3"> <compile files="Complex2.java" options="-1.5"/> <run class="Complex2"> @@ -172,7 +183,7 @@ <ajc-test dir="bugs161/pr235829" title="crazy generics and inner types"> <compile files="Main.java a/Adapter.java a/b/Adapter.java" options="-1.5"/> <run class="Main"/> - </ajc-test> + </ajc-test> <ajc-test dir="bugs161/pr235597" title="annotation exposure and generics"> <compile files="AnnotationTest1.java SomeAnnotation.java SomeAspect.java" options="-1.5"/> @@ -196,12 +207,12 @@ </stdout> </run> </ajc-test> - + <ajc-test dir="bugs161/pr235204" title="incorrect call relationship"> <compile files="RecursiveCatcher.java" options="-1.5 -emacssym"/> </ajc-test> - + <ajc-test dir="bugs161/pr233838" title="itd precedence - 1"> <compile files="Z.java" options="-1.5"/> <run class="Z"> @@ -219,7 +230,7 @@ </stdout> </run> </ajc-test> - + <ajc-test dir="bugs161/pr227401" title="getfield problem with generics"> <compile files="Instrumentation.java Fails.java" options="-1.5"/> @@ -236,8 +247,8 @@ <line text="22"/> </stdout> </run> - </ajc-test> - + </ajc-test> + <ajc-test dir="bugs161/pr231478" title="generic abstract aspects"> <compile files="Base.java Sub.java AbstractComponent.java AbstractWindow.java" options="-1.5"/> </ajc-test> @@ -255,7 +266,7 @@ <line text="set of NO field"/> </stderr> </run> - </ajc-test> + </ajc-test> <ajc-test dir="bugs161/pr231187x" title="generics bounds decp"> <compile files="Cement.java ConcreteClass.java SuperClass.java SuperClassAspect.aj WetCement.java Main.java" options="-1.5"/> @@ -264,14 +275,14 @@ <line text="ran!"/> </stdout> </run> - </ajc-test> - + </ajc-test> + <ajc-test dir="bugs161/pr231187x" title="generics bounds decp - 2"> <compile files="Cement.java ConcreteClass.java SuperClass.java WetCement.java" options="-1.5"> <message kind="error" text="The type WetCement is not a valid substitute for the bounded parameter"/> </compile> - </ajc-test> - + </ajc-test> + <ajc-test dir="bugs161/pr230134" title="ltw inherited cflow"> <compile files="HW.java"/> <compile files="SimpleTracing.java Tracing.java HelloWorldTracing.java" outjar="foo.jar" options="-1.4"/> @@ -281,21 +292,21 @@ </stdout> </run> </ajc-test> - + <ajc-test dir="bugs161/pr229910" title="around advice on field set"> <compile files="Test.java" options="-1.5"/> <run class="Test"/> - </ajc-test> - + </ajc-test> + <ajc-test dir="bugs161/pr226567" title="pipeline compilation and generic return type"> <compile files="BarAspect.aj Foo.java Bar.java" options="-1.5"/> <compile files="BarAspect.aj Bar.java Foo.java" options="-1.5"/> - </ajc-test> - + </ajc-test> + <ajc-test dir="bugs161/pr235505" title="privileged generic aspect"> <compile files="A.java" options="-1.5"/> - </ajc-test> - + </ajc-test> + <ajc-test dir="bugs161/pr235505" title="privileged generic aspect - 2"> <compile files="B.java" options="-1.5"/> <run class="B"> @@ -304,18 +315,18 @@ <line text="Hello World"/> </stdout> </run> - </ajc-test> - + </ajc-test> + <ajc-test dir="bugs161/pr64222" title="parsing around advice no return"> <compile files="C.java" options="-1.5"> <message kind="error" line="6" text="to complete around advice declaration"/> </compile> - </ajc-test> + </ajc-test> <ajc-test dir="bugs161/pr159268" title="before array name"> <compile files="C.java" options="-1.5"/> - </ajc-test> - - + </ajc-test> + + -</suite>
\ No newline at end of file +</suite> |