Bladeren bron

Bug 155033 "Use ajcore for LTW problems" (add ajcore LTW testcases)

tags/V1_5_3rc1
mwebster 17 jaren geleden
bovenliggende
commit
36ba801b8f

+ 1
- 0
tests/bugs153/pr155033/Annotation.java Bestand weergeven

@@ -0,0 +1 @@
@interface Annotation {}

+ 9
- 0
tests/bugs153/pr155033/Aspect.aj Bestand weergeven

@@ -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()");
}
}

+ 8
- 0
tests/bugs153/pr155033/Class1.java Bestand weergeven

@@ -0,0 +1,8 @@
public class Class1 /*implements MissingInterface*/ {
@Annotation
public static void main(String[] args) {
System.out.println("? Class1.main()");
new Class1();
}
}

+ 8
- 0
tests/bugs153/pr155033/Class2.java Bestand weergeven

@@ -0,0 +1,8 @@
public class Class2 /*implements MissingInterface*/ {
@Annotation
public static void main(String[] args) {
System.out.println("? Class2.main()");
new Class2();
}
}

+ 7
- 0
tests/bugs153/pr155033/Class3.java Bestand weergeven

@@ -0,0 +1,7 @@
public class Class3 {
public static void main(String[] args) {
System.out.println("? Class3.main()");
new Class3();
}
}

+ 24
- 0
tests/bugs153/pr155033/MultipleDumpTest.java Bestand weergeven

@@ -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);
}
}

+ 27
- 0
tests/bugs153/pr155033/ant.xml Bestand weergeven

@@ -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>

+ 4
- 0
tests/bugs153/pr155033/aop-multipledumponerror.xml Bestand weergeven

@@ -0,0 +1,4 @@
<aspectj>
<!--<weaver options="-XmessageHandlerClass:AbortingMessageHandler -debug -XnoInline -Xlint:error"/>-->
<weaver options="-1.5 -Xlint:error"/>
</aspectj>

tests/ltw/HelloWorld.java → tests/ltw/HelloWorldWithException.java Bestand weergeven

@@ -1,4 +1,4 @@
public class HelloWorld {
public class HelloWorldWithException {
public static void main (String[] args) throws Exception {
System.out.println("Hello World!");

+ 19
- 5
tests/ltw/ant.xml Bestand weergeven

@@ -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>

+ 7
- 0
tests/ltw/aop-dumponerror.xml Bestand weergeven

@@ -0,0 +1,7 @@
<aspectj>
<aspects>
<concrete-aspect name="SubAspect" extends="MissingAspect">
<pointcut name="scope" expression=""/>
</concrete-aspect>
</aspects>
</aspectj>

+ 1
- 1
tests/ltw/server-helloworld.properties Bestand weergeven

@@ -2,4 +2,4 @@
loader.application=Application,hello.jar;handler.jar

# main=Class,Loader
main=HelloWorld,Application
main=HelloWorldWithException,Application

+ 1
- 1
tests/ltw/server-parentandchild.properties Bestand weergeven

@@ -3,4 +3,4 @@ loader.parent=Parent,parent.jar
loader.child=Child,child.jar,Parent

# main=Class,Loader
main=Child,Child
main=HelloWorldWithException,Child

+ 18
- 2
tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java Bestand weergeven

@@ -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

+ 53
- 6
tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml Bestand weergeven

@@ -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>

Laden…
Annuleren
Opslaan