aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs198/github_125/Application.java11
-rw-r--r--tests/pom.xml11
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java20
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Tests.java35
-rw-r--r--tests/src/test/resources/org/aspectj/systemtest/ajc198/ajc198.xml14
5 files changed, 68 insertions, 23 deletions
diff --git a/tests/bugs198/github_125/Application.java b/tests/bugs198/github_125/Application.java
new file mode 100644
index 000000000..7e893fc1a
--- /dev/null
+++ b/tests/bugs198/github_125/Application.java
@@ -0,0 +1,11 @@
+public class Application {
+ public static void main(String[] argv) {
+ System.out.println("Hello world!");
+ }
+
+ static aspect MyAspect {
+ before(): execution(* Application.main(..)) {
+ System.out.println("Before advice");
+ }
+ }
+}
diff --git a/tests/pom.xml b/tests/pom.xml
index 8ab3878bc..33801c2f5 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -90,6 +90,17 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
+ <!--
+ Used for tests setting system properties, e.g. for AJC, when we need to avoid polluting the global
+ system properties namespace with settings potentially influencing other tests.
+ See https://github.com/bmuskalla/scoped-system-properties.
+ -->
+ <dependency>
+ <groupId>io.github.bmuskalla</groupId>
+ <artifactId>scoped-system-properties</artifactId>
+ <version>1.1.0</version>
+ <scope>test</scope>
+ </dependency>
<!--
The tests need these during runtime, even though no direct usage is in our classes.
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java b/tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java
index 45a3b1d62..ef597c8f1 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java
@@ -39,26 +39,6 @@ public class Ajc198TestsJava extends XMLBasedAjcTestCaseForJava17OrLater {
checkVersion("PersonAspect", Constants.MAJOR_17, 0 /* Constants.PREVIEW_MINOR_VERSION */);
}
- public void testAnnotationStyleSpecialIfClauses() {
- runTest("annotation style A");
- }
-
- public void testAnnotationStylePointcutInheritanceWithIfClauses() {
- runTest("annotation style B");
- }
-
- public void testAnnotationStyleSpecialIfClauses2_gh120() {
- runTest("annotation style C");
- }
-
- public void testAnnotationStyleSpecialIfClauses3_gh120() {
- runTest("annotation style D");
- }
-
- public void testAnnotationStyleNegatedIf_gh122() {
- runTest("annotation style negated if");
- }
-
public static Test suite() {
return XMLBasedAjcTestCase.loadSuite(Ajc198TestsJava.class);
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Tests.java b/tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Tests.java
index d8e57b534..7982ec630 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Tests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Tests.java
@@ -7,6 +7,8 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc198;
+import io.bmuskalla.system.properties.PropertyEnvironment;
+import io.bmuskalla.system.properties.ScopedSystemProperties;
import junit.framework.Test;
import org.aspectj.testing.XMLBasedAjcTestCase;
@@ -15,9 +17,36 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
*/
public class Bugs198Tests extends XMLBasedAjcTestCase {
- public void testGitHub_105() {
- runTest("ITD annotation with mandatory parameter via aspectpath");
- }
+ public void testGitHub_105() {
+ runTest("ITD annotation with mandatory parameter via aspectpath");
+ }
+
+ public void testAnnotationStyleSpecialIfClauses() {
+ runTest("annotation style A");
+ }
+
+ public void testAnnotationStylePointcutInheritanceWithIfClauses() {
+ runTest("annotation style B");
+ }
+
+ public void testAnnotationStyleSpecialIfClauses2_gh120() {
+ runTest("annotation style C");
+ }
+
+ public void testAnnotationStyleSpecialIfClauses3_gh120() {
+ runTest("annotation style D");
+ }
+
+ public void testAnnotationStyleNegatedIf_gh122() {
+ runTest("annotation style negated if");
+ }
+
+ public void testGitHub_125() {
+ try (PropertyEnvironment env = ScopedSystemProperties.newPropertyEnvironment()) {
+ env.setProperty("org.aspectj.weaver.openarchives", "20");
+ runTest("compiler can re-open closed JARs");
+ }
+ }
public static Test suite() {
return XMLBasedAjcTestCase.loadSuite(Bugs198Tests.class);
diff --git a/tests/src/test/resources/org/aspectj/systemtest/ajc198/ajc198.xml b/tests/src/test/resources/org/aspectj/systemtest/ajc198/ajc198.xml
index 9874736dd..0eb413baa 100644
--- a/tests/src/test/resources/org/aspectj/systemtest/ajc198/ajc198.xml
+++ b/tests/src/test/resources/org/aspectj/systemtest/ajc198/ajc198.xml
@@ -153,4 +153,18 @@
</run>
</ajc-test>
+ <ajc-test dir="bugs198/github_125" title="compiler can re-open closed JARs">
+ <!--
+ Here the Java test sets system property org.aspectj.weaver.openarchives to 20 in order to provoke
+ open JAR limit exhaustion
+ -->
+ <compile files="Application.java" options="-1.5" />
+ <run class="Application">
+ <stdout>
+ <line text="Before advice"/>
+ <line text="Hello world!"/>
+ </stdout>
+ </run>
+ </ajc-test>
+
</suite>