123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586 |
- <!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]>
-
-
- <suite>
-
- <!-- Java ?? final, Java 17, 18 preview -->
- <ajc-test dir="features198/java17" vm="18" title="switch pattern matching error">
- <compile files="SwitchPatternError.java" options="--enable-preview -18">
- <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
- <message kind="error" file="SwitchPatternError.java" text="This case label is dominated by one of the preceding case labels"/>
- </compile>
- </ajc-test>
-
- <!-- Java ?? final, Java 17, 18 preview -->
- <ajc-test dir="features198/java17" vm="18" title="switch pattern matching java">
- <compile files="SwitchPatternOK.java" options="--enable-preview -18" />
- <run class="SwitchPatternOK" vmargs="--enable-preview">
- <stdout>
- <line text="null" />
- <line text="int 123" />
- <line text="long 999" />
- <line text="double 12.340000" />
- <line text="String foo" />
- <line text="[123, foo, 999, 12.34]" />
- <line text="Non-circle" />
- <line text="Small circle" />
- <line text="Large circle" />
- <line text="Sealed sub-class A" />
- <line text="Sealed sub-class B" />
- <line text="Sealed sub-record C" />
- </stdout>
- </run>
- </ajc-test>
-
- <!-- Java ?? final, Java 17, 18 preview -->
- <ajc-test dir="features198/java17" vm="18" title="switch pattern matching aspect">
- <compile files="SwitchPatternAspect.aj" options="--enable-preview -18" />
- <run class="Application" vmargs="--enable-preview">
- <stdout>
- <line text="null" />
- <line text="int 123" />
- <line text="long 999" />
- <line text="double 12.340000" />
- <line text="String foo" />
- <line text="[123, foo, 999, 12.34]" />
- <line text="Non-circle" />
- <line text="Small circle" />
- <line text="Large circle" />
- <line text="Sealed sub-class A" />
- <line text="Sealed sub-class B" />
- <line text="Sealed sub-record C" />
- </stdout>
- </run>
- </ajc-test>
-
- <!-- Java ?? final, Java 17, 18 preview -->
- <ajc-test dir="features199/java18" vm="18" title="switch pattern matching preview 2 error 1">
- <compile files="SwitchPatternPreview2Error1.java" options="--enable-preview -18">
- <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
- <message kind="error" file="SwitchPatternPreview2Error1.java" text="This case label is dominated by one of the preceding case labels"/>
- </compile>
- </ajc-test>
-
- <!-- Java ?? final, Java 17, 18 preview -->
- <ajc-test dir="features199/java18" vm="18" title="switch pattern matching preview 2 error 2">
- <compile files="SwitchPatternPreview2Error2.java" options="--enable-preview -18">
- <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
- <message kind="error" file="SwitchPatternPreview2Error2.java" text="This case label is dominated by one of the preceding case labels"/>
- </compile>
- </ajc-test>
-
- <!-- Java ?? final, Java 17, 18 preview -->
- <ajc-test dir="features199/java18" vm="18" title="switch pattern matching preview 2 java">
- <compile files="SwitchPatternPreview2OK.java" options="--enable-preview -18" />
- <run class="SwitchPatternPreview2OK" vmargs="--enable-preview">
- <message></message>
- <stdout>
- <line text="absolute value 1: -1" />
- <line text="other integer: 0" />
- <line text="positive integer: 42" />
- <line text="other integer: -99" />
- <line text="positive integer: 123" />
- <line text="value unavailable: null" />
- <!--
- <line text="null" />
- <line text="int 123" />
- <line text="long 999" />
- <line text="double 12.340000" />
- <line text="String foo" />
- <line text="[123, foo, 999, 12.34]" />
- <line text="Non-circle" />
- <line text="Small circle" />
- <line text="Large circle" />
- <line text="Sealed sub-class A" />
- <line text="Sealed sub-class B" />
- <line text="Sealed sub-record C" />
- -->
- </stdout>
- </run>
- </ajc-test>
-
- <!-- Java ?? final, Java 17, 18 preview -->
- <ajc-test dir="features199/java18" vm="18" title="switch pattern matching preview 2 aspect">
- <compile files="SwitchPatternPreview2Aspect.aj" options="--enable-preview -18" />
- <run class="Application" vmargs="--enable-preview">
- <stdout>
- <line text="absolute value 1: -1" />
- <line text="other integer: 0" />
- <line text="positive integer: 42" />
- <line text="other integer: -99" />
- <line text="positive integer: 123" />
- <line text="value unavailable: null" />
- <!--
- <line text="null" />
- <line text="int 123" />
- <line text="long 999" />
- <line text="double 12.340000" />
- <line text="String foo" />
- <line text="[123, foo, 999, 12.34]" />
- <line text="Non-circle" />
- <line text="Small circle" />
- <line text="Large circle" />
- <line text="Sealed sub-class A" />
- <line text="Sealed sub-class B" />
- <line text="Sealed sub-record C" />
- -->
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_115" title="annotation style A">
- <compile files="A.java" options="-1.5">
- <message kind="warning" line="28" text="advice defined in Azpect has not been applied [Xlint:adviceDidNotMatch]"/>
- </compile>
- <run class="A">
- <stdout>
- <line text="Azpect.before"/>
- <line text="A.main"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_115" title="annotation style B">
- <compile files="B.java" options="-1.5"/>
- <run class="B">
- <stdout>
- <line text="Azpect.before"/>
- <line text="B.main"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_120" title="annotation style C">
- <compile files="C.java" options="-1.5"/>
- <run class="C">
- <stdout>
- <line text="check if() pointcut running on C(1)"/>
- <line text="Azpect1.beforeAdvice executing"/>
- <line text="C.run() executing"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_120" title="annotation style D">
- <compile files="D.java" options="-1.5"/>
- <run class="D">
- <stdout>
- <line text="advice running"/>
- <line text="D.run() executing"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_122" title="annotation style negated if">
- <compile files="E.java" options="-1.5"/>
- <run class="E">
- <stdout>
- <line text="advice running"/>
- <line text="E.run() executing"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/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>
-
- <ajc-test dir="bugs199/github_128" title="asynchronous proceed for nested around-advice (@AspectJ)">
- <compile files="Application.java MarkerA.java MarkerB.java annotation_syntax/MarkerAAspect.aj annotation_syntax/MarkerBAspect.aj" options="-1.8 -XnoInline" />
- <run class="Application" options="1,1">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text="<< Outer intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- </stdout>
- </run>
- <run class="Application" options="2,1">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text="<< Outer intercept"/>
- </stdout>
- </run>
- <run class="Application" options="1,2">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text="<< Outer intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- </stdout>
- </run>
- <run class="Application" options="2,2">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" << Inner intercept"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text="<< Outer intercept"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_128" title="asynchronous proceed for nested around-advice (@AspectJ, thread pool)">
- <compile files="Application.java MarkerA.java MarkerB.java annotation_syntax/MarkerAAspect.aj annotation_syntax/MarkerBAspect.aj" options="-1.8 -XnoInline" />
- <run class="Application" options="1,1,true">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text="<< Outer intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- </stdout>
- </run>
- <run class="Application" options="2,1,true">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text="<< Outer intercept"/>
- </stdout>
- </run>
- <run class="Application" options="1,2,true">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text="<< Outer intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- </stdout>
- </run>
- <run class="Application" options="2,2,true">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" << Inner intercept"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text="<< Outer intercept"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_128" title="asynchronous proceed for nested around-advice (native)">
- <compile files="Application.java MarkerA.java MarkerB.java native_syntax/MarkerAAspect.aj native_syntax/MarkerBAspect.aj" options="-1.8 -XnoInline" />
- <run class="Application" options="1,1">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text="<< Outer intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- </stdout>
- </run>
- <run class="Application" options="2,1">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text="<< Outer intercept"/>
- </stdout>
- </run>
- <run class="Application" options="1,2">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text="<< Outer intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- </stdout>
- </run>
- <run class="Application" options="2,2">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" << Inner intercept"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text="<< Outer intercept"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_128" title="asynchronous proceed for nested around-advice (native, thread pool)">
- <compile files="Application.java MarkerA.java MarkerB.java native_syntax/MarkerAAspect.aj native_syntax/MarkerBAspect.aj" options="-1.8 -XnoInline" />
- <run class="Application" options="1,1,true">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text="<< Outer intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- </stdout>
- </run>
- <run class="Application" options="2,1,true">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text="<< Outer intercept"/>
- </stdout>
- </run>
- <run class="Application" options="1,2,true">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text="<< Outer intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- </stdout>
- </run>
- <run class="Application" options="2,2,true">
- <stdout ordered="no">
- <line text=">> Outer intercept"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" << Inner intercept"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Outer proceed"/>
- <line text=" >> Inner intercept"/>
- <line text=" >> Inner proceed"/>
- <line text=" << Inner intercept"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" << Outer proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" >> Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text=" Doing something"/>
- <line text=" << Inner proceed"/>
- <line text="<< Outer intercept"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_145/add_exports" title="use --add-exports" vm="9">
- <compile
- files="Application.java"
- options="-9 --add-exports java.base/sun.security.x509=ALL-UNNAMED"
- />
- <run
- class="Application"
- vmargs="--add-exports java.base/sun.security.x509=ALL-UNNAMED"
- >
- <stdout>
- <line text="java.security.cert.CertificateParsingException: java.io.IOException"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_145" title="use --add-reads" vm="9">
- <compile
- files="add_modules/my.module/module-info.java add_modules/my.module/my/module/Modular.java"
- options="-9"
- outjar="my.module.jar"
- />
- <compile
- files="add_reads/other.module/module-info.java add_reads/other.module/other/module/Application.java"
- options="-9 --add-reads other.module=my.module --add-exports my.module/my.module=other.module"
- modulepath="$sandbox/my.module.jar"
- outjar="other.module.jar"
- />
- <run
- class="other.module.Application"
- vmargs="--add-reads other.module=my.module"
- modulepath="$sandbox/my.module.jar:$sandbox/other.module.jar"
- >
- <stdout>
- <line text="One modular class can use another one"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_145/add_modules" title="use --add-modules" vm="9">
- <compile
- files="my.module/module-info.java my.module/my/module/Modular.java"
- options="-9"
- outjar="my.module.jar"
- />
- <compile
- files="NonModular.java"
- options="-9 --add-modules my.module --add-exports my.module/my.module=ALL-UNNAMED"
- modulepath="$sandbox/my.module.jar"
- />
- <run class="NonModular" modulepath="$sandbox/my.module.jar">
- <stdout>
- <line text="Non-modular class can use modular one"/>
- </stdout>
- </run>
- </ajc-test>
-
- <ajc-test dir="bugs199/github_145/add_modules" title="use --add-modules with non-public JDK module" vm="9">
- <!--
- Javac, AJC: no errors. ECJ: "invalid module name: jdk.charsets"
-
- This is because ECJ does not add internal JDK modules as root modules, but AJC does. This was not so much
- intentional in AJC, but simply due to the hacky implementation. Anyway, it works and makes AJC more
- Javac-compliant than ECJ, which is nice.
- -->
- <compile files="UseJDKExtendedCharsets.java" options="-9 --add-modules jdk.charsets --add-exports jdk.charsets/sun.nio.cs.ext=ALL-UNNAMED" />
- <run class="UseJDKExtendedCharsets" vmargs="-ea --add-modules jdk.charsets --add-exports jdk.charsets/sun.nio.cs.ext=ALL-UNNAMED">
- <stdout>
- <line text="ISO-2022-JP"/>
- </stdout>
- </run>
- </ajc-test>
-
- </suite>
|