aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authormwebster <mwebster>2006-11-06 13:50:14 +0000
committermwebster <mwebster>2006-11-06 13:50:14 +0000
commit36ba801b8f3f45f8c9acd2af2b03489958b97b55 (patch)
tree4cbba55ea756e74e2a6afa2cc971767ca6d44d2d /tests
parent4add2e21b067b1e0ea1fb6e862d5c22429336c4a (diff)
downloadaspectj-36ba801b8f3f45f8c9acd2af2b03489958b97b55.tar.gz
aspectj-36ba801b8f3f45f8c9acd2af2b03489958b97b55.zip
Bug 155033 "Use ajcore for LTW problems" (add ajcore LTW testcases)
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs153/pr155033/Annotation.java1
-rw-r--r--tests/bugs153/pr155033/Aspect.aj9
-rw-r--r--tests/bugs153/pr155033/Class1.java8
-rw-r--r--tests/bugs153/pr155033/Class2.java8
-rw-r--r--tests/bugs153/pr155033/Class3.java7
-rw-r--r--tests/bugs153/pr155033/MultipleDumpTest.java24
-rw-r--r--tests/bugs153/pr155033/ant.xml27
-rw-r--r--tests/bugs153/pr155033/aop-multipledumponerror.xml4
-rw-r--r--tests/ltw/HelloWorldWithException.java (renamed from tests/ltw/HelloWorld.java)2
-rw-r--r--tests/ltw/ant.xml24
-rw-r--r--tests/ltw/aop-dumponerror.xml7
-rw-r--r--tests/ltw/server-helloworld.properties2
-rw-r--r--tests/ltw/server-parentandchild.properties2
-rw-r--r--tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java20
-rw-r--r--tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml59
15 files changed, 188 insertions, 16 deletions
diff --git a/tests/bugs153/pr155033/Annotation.java b/tests/bugs153/pr155033/Annotation.java
new file mode 100644
index 000000000..12f6811c7
--- /dev/null
+++ b/tests/bugs153/pr155033/Annotation.java
@@ -0,0 +1 @@
+@interface Annotation {} \ No newline at end of file
diff --git a/tests/bugs153/pr155033/Aspect.aj b/tests/bugs153/pr155033/Aspect.aj
new file mode 100644
index 000000000..60b1b57c2
--- /dev/null
+++ b/tests/bugs153/pr155033/Aspect.aj
@@ -0,0 +1,9 @@
+public aspect Aspect {
+
+ declare @method : public static void main(String[]) : @Annotation;
+
+ before () : execution(public Class*.new()) {
+ System.out.println("? Aspect.before()");
+ }
+
+} \ No newline at end of file
diff --git a/tests/bugs153/pr155033/Class1.java b/tests/bugs153/pr155033/Class1.java
new file mode 100644
index 000000000..aae2faf15
--- /dev/null
+++ b/tests/bugs153/pr155033/Class1.java
@@ -0,0 +1,8 @@
+public class Class1 /*implements MissingInterface*/ {
+
+ @Annotation
+ public static void main(String[] args) {
+ System.out.println("? Class1.main()");
+ new Class1();
+ }
+} \ No newline at end of file
diff --git a/tests/bugs153/pr155033/Class2.java b/tests/bugs153/pr155033/Class2.java
new file mode 100644
index 000000000..bfbd85e6d
--- /dev/null
+++ b/tests/bugs153/pr155033/Class2.java
@@ -0,0 +1,8 @@
+public class Class2 /*implements MissingInterface*/ {
+
+ @Annotation
+ public static void main(String[] args) {
+ System.out.println("? Class2.main()");
+ new Class2();
+ }
+} \ No newline at end of file
diff --git a/tests/bugs153/pr155033/Class3.java b/tests/bugs153/pr155033/Class3.java
new file mode 100644
index 000000000..9577464dd
--- /dev/null
+++ b/tests/bugs153/pr155033/Class3.java
@@ -0,0 +1,7 @@
+public class Class3 {
+
+ public static void main(String[] args) {
+ System.out.println("? Class3.main()");
+ new Class3();
+ }
+} \ No newline at end of file
diff --git a/tests/bugs153/pr155033/MultipleDumpTest.java b/tests/bugs153/pr155033/MultipleDumpTest.java
new file mode 100644
index 000000000..554460bb1
--- /dev/null
+++ b/tests/bugs153/pr155033/MultipleDumpTest.java
@@ -0,0 +1,24 @@
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public class MultipleDumpTest {
+
+ public static void main(String[] args) throws Exception {
+ System.out.println("? MultipleDumpTest.main()");
+ invokeMain("Class1",args);
+ invokeMain("Class2",args);
+ invokeMain("Class3",args);
+ }
+
+ private static void invokeMain (String className, String[] args) throws Exception
+ {
+ Class clazz = Class.forName(className);
+ Class[] paramTypes = new Class[1];
+ paramTypes[0] = args.getClass();
+
+ Method method = clazz.getDeclaredMethod("main",paramTypes);
+ Object[] params = new Object[1];
+ params[0] = args;
+ method.invoke(null,params);
+ }
+} \ No newline at end of file
diff --git a/tests/bugs153/pr155033/ant.xml b/tests/bugs153/pr155033/ant.xml
new file mode 100644
index 000000000..5995cb9d5
--- /dev/null
+++ b/tests/bugs153/pr155033/ant.xml
@@ -0,0 +1,27 @@
+<!-- ajc-ant script, not to be used from Ant commant line - see AntSpec -->
+<project name="ltw">
+
+ <!-- using this we can debug the forked VM -->
+ <property
+ name="jdwp"
+ value="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/>
+ <property name="aj.bootpath" refid="aj.path"/>
+
+ <target name="multiple dump on error">
+ <copy file="aop-multipledumponerror.xml"
+ tofile="${aj.sandbox}/META-INF/aop.xml"/>
+ <java fork="yes" classname="MultipleDumpTest" failonerror="yes">
+ <classpath refid="aj.path"/>
+ <jvmarg value="-Dorg.aspectj.weaver.Dump.condition=error"/>
+ <sysproperty key="org.aspectj.dump.directory" path="${aj.sandbox}"/>
+ <jvmarg value="-javaagent:${aj.root}/lib/test/loadtime5.jar"/>
+<!-- <jvmarg line="${jdwp}"/>-->
+<!--
+ <jvmarg value="-Dorg.aspectj.tracing.enabled=true"/>
+ <jvmarg value="-Dorg.aspectj.tracing.factory=default"/>
+ <jvmarg value="-Dorg.aspectj.tracing.messages=true"/>
+-->
+ </java>
+ </target>
+
+</project>
diff --git a/tests/bugs153/pr155033/aop-multipledumponerror.xml b/tests/bugs153/pr155033/aop-multipledumponerror.xml
new file mode 100644
index 000000000..c3c75fb47
--- /dev/null
+++ b/tests/bugs153/pr155033/aop-multipledumponerror.xml
@@ -0,0 +1,4 @@
+<aspectj>
+ <!--<weaver options="-XmessageHandlerClass:AbortingMessageHandler -debug -XnoInline -Xlint:error"/>-->
+ <weaver options="-1.5 -Xlint:error"/>
+</aspectj> \ No newline at end of file
diff --git a/tests/ltw/HelloWorld.java b/tests/ltw/HelloWorldWithException.java
index 9c810cf25..b043000a1 100644
--- a/tests/ltw/HelloWorld.java
+++ b/tests/ltw/HelloWorldWithException.java
@@ -1,4 +1,4 @@
-public class HelloWorld {
+public class HelloWorldWithException {
public static void main (String[] args) throws Exception {
System.out.println("Hello World!");
diff --git a/tests/ltw/ant.xml b/tests/ltw/ant.xml
index e1cb0a6bd..dff2071e7 100644
--- a/tests/ltw/ant.xml
+++ b/tests/ltw/ant.xml
@@ -8,7 +8,7 @@
<property name="aj.bootpath" refid="aj.path"/>
<target name="JDK14 LTW with XML">
- <java fork="yes" classname="HelloWorld" failonerror="yes">
+ <java fork="yes" classname="HelloWorldWithException" failonerror="yes">
<classpath refid="aj.path"/>
<jvmarg value="-Djava.system.class.loader=org.aspectj.weaver.loadtime.WeavingURLClassLoader"/>
<sysproperty key="aj.class.path" path="${aj.sandbox}/hello.jar:${aj.sandbox}/handler.jar"/>
@@ -24,7 +24,7 @@
</target>
<target name="JDK14 LTW with ASPECTPATH">
- <java fork="yes" classname="HelloWorld" failonerror="yes">
+ <java fork="yes" classname="HelloWorldWithException" failonerror="yes">
<classpath refid="aj.path"/>
<jvmarg value="-Djava.system.class.loader=org.aspectj.weaver.loadtime.WeavingURLClassLoader"/>
<sysproperty key="aj.class.path" path="${aj.sandbox}/hello.jar:${aj.sandbox}/handler.jar"/>
@@ -47,7 +47,7 @@
<target name="override default path using -Dorg.aspectj.weaver.loadtime.configuration">
<copy file="${aj.root}/tests/ltw/aop-orgaspectjweaverloadtimeconfiguration.xml"
tofile="${aj.sandbox}/META-INF/aop-random.xml"/>
- <java fork="yes" classname="HelloWorld" failonerror="yes">
+ <java fork="yes" classname="HelloWorldWithException" failonerror="yes">
<classpath refid="aj.path"/>
<classpath>
<pathelement path="${aj.sandbox}/hello.jar:${aj.sandbox}/handler.jar:${aj.sandbox}/tracing.jar"/>
@@ -68,7 +68,7 @@
SecurityManager that will be loaded _before_ the class loader
hierarch is fully initialized. -->
<target name="NPE with custom agent">
- <java fork="yes" classname="HelloWorld" failonerror="yes">
+ <java fork="yes" classname="HelloWorldWithException" failonerror="yes">
<!-- Prepend custom URLClassLoader and append AspectJ
to bootclasspath -->
@@ -97,7 +97,7 @@
<target name="simple LTW">
<copy file="${aj.root}/tests/ltw/aop-simple.xml"
tofile="${aj.sandbox}/META-INF/aop.xml"/>
- <java fork="yes" classname="HelloWorld" failonerror="yes">
+ <java fork="yes" classname="HelloWorldWithException" failonerror="yes">
<classpath refid="aj.path"/>
<!-- use META-INF/aop.xml style -->
<jvmarg value="-javaagent:${aj.root}/lib/test/loadtime5.jar"/>
@@ -105,4 +105,18 @@
</java>
</target>
+ <target name="dump on error">
+ <copy file="${aj.root}/tests/ltw/aop-dumponerror.xml"
+ tofile="${aj.sandbox}/META-INF/aop.xml"/>
+ <java fork="yes" classname="HelloWorldWithException" failonerror="no">
+ <classpath refid="aj.path"/>
+ <jvmarg value="-Dorg.aspectj.weaver.Dump.condition=error"/>
+ <sysproperty key="org.aspectj.dump.directory" path="${aj.sandbox}"/>
+ <!-- use META-INF/aop.xml style -->
+ <jvmarg value="-javaagent:${aj.root}/lib/test/loadtime5.jar"/>
+<!-- <jvmarg line="${jdwp}"/>-->
+ <jvmarg value="-Dorg.aspectj.tracing.factory=default"/>
+ </java>
+ </target>
+
</project>
diff --git a/tests/ltw/aop-dumponerror.xml b/tests/ltw/aop-dumponerror.xml
new file mode 100644
index 000000000..8115618bc
--- /dev/null
+++ b/tests/ltw/aop-dumponerror.xml
@@ -0,0 +1,7 @@
+<aspectj>
+ <aspects>
+ <concrete-aspect name="SubAspect" extends="MissingAspect">
+ <pointcut name="scope" expression=""/>
+ </concrete-aspect>
+ </aspects>
+</aspectj> \ No newline at end of file
diff --git a/tests/ltw/server-helloworld.properties b/tests/ltw/server-helloworld.properties
index baf42dbe0..09ec740a7 100644
--- a/tests/ltw/server-helloworld.properties
+++ b/tests/ltw/server-helloworld.properties
@@ -2,4 +2,4 @@
loader.application=Application,hello.jar;handler.jar
# main=Class,Loader
-main=HelloWorld,Application \ No newline at end of file
+main=HelloWorldWithException,Application \ No newline at end of file
diff --git a/tests/ltw/server-parentandchild.properties b/tests/ltw/server-parentandchild.properties
index d0a7af85e..b917f564e 100644
--- a/tests/ltw/server-parentandchild.properties
+++ b/tests/ltw/server-parentandchild.properties
@@ -3,4 +3,4 @@ loader.parent=Parent,parent.jar
loader.child=Child,child.jar,Parent
# main=Class,Loader
-main=Child,Child \ No newline at end of file
+main=HelloWorldWithException,Child \ No newline at end of file
diff --git a/tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java b/tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java
index 267593468..79f793b32 100644
--- a/tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java
+++ b/tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java
@@ -150,13 +150,29 @@ public class LTWTests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void testConfigutationSystemProperty_pr149289 () {
runTest("override default path using -Dorg.aspectj.weaver.loadtime.configuration");
-
}
public void testSimpleLTW_pr159854 () {
runTest("simple LTW");
-
}
+
+ public void testDumpOnError_pr155033 () {
+ runTest("dump on error");
+
+ File dir = getSandboxDirectory();
+ CountingFilenameFilter cff = new CountingFilenameFilter(".txt");
+ dir.listFiles(cff);
+ assertEquals("Missing ajcore file in " + dir.getAbsolutePath(),1,cff.getCount());
+ }
+
+ public void testMultipleDumpOnError_pr155033 () {
+ runTest("multiple dump on error");
+
+ File dir = getSandboxDirectory();
+ CountingFilenameFilter cff = new CountingFilenameFilter(".txt");
+ dir.listFiles(cff);
+ assertEquals("Missing ajcore file in " + dir.getAbsolutePath(),2,cff.getCount());
+ }
/*
* Allow system properties to be set and restored
diff --git a/tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml b/tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml
index 59bb176bd..a58fc0b45 100644
--- a/tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml
+++ b/tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml
@@ -536,7 +536,7 @@
</ajc-test>
<ajc-test dir="ltw" title="JDK14 LTW with XML" keywords="ltw">
- <compile files="HelloWorld.java" options="-outjar hello.jar"/>
+ <compile files="HelloWorldWithException.java" options="-outjar hello.jar"/>
<compile files="ExceptionHandler.aj" options="-outxml -outjar handler.jar"/>
<ant file="ant.xml" target="JDK14 LTW with XML" verbose="true">
<stdout>
@@ -549,7 +549,7 @@
</ajc-test>
<ajc-test dir="ltw" title="JDK14 LTW with ASPECTPATH" keywords="ltw">
- <compile files="HelloWorld.java" options="-outjar hello.jar"/>
+ <compile files="HelloWorldWithException.java" options="-outjar hello.jar"/>
<compile files="ExceptionHandler.aj" options="-outjar handler.jar"/>
<ant file="ant.xml" target="JDK14 LTW with ASPECTPATH" verbose="true">
<stdout>
@@ -562,7 +562,7 @@
</ajc-test>
<ajc-test dir="ltw" title="TestServer with HelloWorld" keywords="ltw,server">
- <compile files="HelloWorld.java" options="-outjar hello.jar"/>
+ <compile files="HelloWorldWithException.java" options="-outjar hello.jar"/>
<compile files="ExceptionHandler.aj" options="-outxml -outjar handler.jar"/>
<ant file="ant-server.xml" target="TestServer with HelloWorld" verbose="true">
<stdout>
@@ -573,7 +573,7 @@
</stdout>
</ant>
</ajc-test>
-
+<!--
<ajc-test dir="ltw" title="TestServer with Parent and Child" keywords="ltw,server">
<compile files="Parent.java" options="-outjar parent.jar"/>
<compile files="Child.java" options="-classpath parent.jar -outjar child.jar"/>
@@ -587,9 +587,22 @@
</stdout>
</ant>
</ajc-test>
+-->
+ <ajc-test dir="ltw" title="TestServer with Parent and Child" keywords="ltw,server">
+ <compile files="HelloWorldWithException.java" options="-outjar child.jar"/>
+ <compile files="ExceptionHandler.aj" options="-outxml -outjar parent.jar"/>
+ <ant file="ant-server.xml" target="TestServer with Parent and Child" verbose="true">
+ <stdout>
+ <line text="Starting ..."/>
+ <line text="Running HelloWorld"/>
+ <line text="Hello World!"/>
+ <line text="Stopping ..."/>
+ </stdout>
+ </ant>
+ </ajc-test>
<ajc-test dir="ltw" title="override default path using -Dorg.aspectj.weaver.loadtime.configuration" keywords="ltw">
- <compile files="HelloWorld.java" options="-outjar hello.jar"/>
+ <compile files="HelloWorldWithException.java" options="-outjar hello.jar"/>
<compile files="ExceptionHandler.aj" options="-outxml -outjar handler.jar"/>
<compile files="Tracing.aj" options="-outxml -outjar tracing.jar"/>
<ant file="ant.xml" target="override default path using -Dorg.aspectj.weaver.loadtime.configuration" verbose="true">
@@ -645,7 +658,7 @@
</ajc-test>
<ajc-test dir="ltw" title="simple LTW" keywords="ltw">
- <compile files="HelloWorld.java"/>
+ <compile files="HelloWorldWithException.java"/>
<compile files="ExceptionHandler.aj" options="-outxml"/>
<ant file="ant.xml" target="simple LTW" verbose="true">
<stdout>
@@ -653,5 +666,39 @@
</stdout>
</ant>
</ajc-test>
+
+ <ajc-test dir="ltw" title="dump on error" keywords="ltw">
+ <compile files="HelloWorldWithException.java"/>
+ <compile files="ExceptionHandler.aj" options="-outxml"/>
+ <ant file="ant.xml" target="dump on error" verbose="true">
+ <stdout>
+ <line text="Hello World!"/>
+ </stdout>
+ </ant>
+ </ajc-test>
+
+ <ajc-test dir="bugs153/pr155033" title="multiple dump on error" keywords="ltw">
+ <compile files="Annotation.java" options="-1.5"/>
+ <compile files="MultipleDumpTest.java, Class1.java, Class2.java, Class3.java" options="-1.5"/>
+ <compile files="Aspect.aj" options="-1.5 -outxml -Xlint:ignore"/>
+<!--
+ <run class="MultipleDumpTest" ltw="aop-multipledumponerror.xml">
+ <stdout>
+ <line text="? AbortingMessageHandler.AbortingMessageHandler()"/>
+ </stdout>
+ </run>
+-->
+ <ant file="ant.xml" target="multiple dump on error" verbose="true">
+ <stdout>
+ <line text="? MultipleDumpTest.main()"/>
+ <line text="? Class1.main()"/>
+ <line text="? Aspect.before()"/>
+ <line text="? Class2.main()"/>
+ <line text="? Aspect.before()"/>
+ <line text="? Class3.main()"/>
+ <line text="? Aspect.before()"/>
+ </stdout>
+ </ant>
+ </ajc-test>
\ No newline at end of file