aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src
diff options
context:
space:
mode:
authoracolyer <acolyer>2006-06-22 04:49:26 +0000
committeracolyer <acolyer>2006-06-22 04:49:26 +0000
commit426cbdccfdf8fcfcda07b86d8e524d1034b2d0b7 (patch)
tree86e17625eadc66a8d7c6d908d5db6c7c746c7eec /tests/src
parent497dcf1140b7ec4eab3aab80fa5a22c8259bae48 (diff)
downloadaspectj-426cbdccfdf8fcfcda07b86d8e524d1034b2d0b7.tar.gz
aspectj-426cbdccfdf8fcfcda07b86d8e524d1034b2d0b7.zip
tests and "fix" for pr148007 - workaround JRockit "goto" bug by generating code closer to that produced by javac when weaving after and after returning. In particular: avoid adding a goto that branches to the next instruction (now replaces that return opcode with a nop instead), and store the return value on the top of the stack in a temp before branching to the after advice dispatch and restore it afterwards.
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/org/aspectj/systemtest/ajc152/Ajc152Tests.java2
-rw-r--r--tests/src/org/aspectj/systemtest/ajc152/ajc152.xml11
2 files changed, 12 insertions, 1 deletions
diff --git a/tests/src/org/aspectj/systemtest/ajc152/Ajc152Tests.java b/tests/src/org/aspectj/systemtest/ajc152/Ajc152Tests.java
index 22c02cd03..79a3dc233 100644
--- a/tests/src/org/aspectj/systemtest/ajc152/Ajc152Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc152/Ajc152Tests.java
@@ -99,6 +99,8 @@ public class Ajc152Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void testSuperCallsInAtAspectJAdvice_pr139749() { runTest("Super calls in @AspectJ advice");}
public void testNoClassCastExceptionWithPerThis_pr138286() { runTest("No ClassCastException with perThis");}
public void testGenericAspectHierarchyWithBounds_pr147845() { runTest("Generic abstract aspect hierarchy with bounds"); }
+ public void testJRockitBooleanReturn_pr148007() { runTest("jrockit boolean fun");}
+ public void testJRockitBooleanReturn2_pr148007() { runTest("jrockit boolean fun (no aspects)");}
public void testDeclareAtMethodRelationship_pr143924() {
//AsmManager.setReporting("c:/debug.txt",true,true,true,true);
diff --git a/tests/src/org/aspectj/systemtest/ajc152/ajc152.xml b/tests/src/org/aspectj/systemtest/ajc152/ajc152.xml
index 370d24ad9..da553bad9 100644
--- a/tests/src/org/aspectj/systemtest/ajc152/ajc152.xml
+++ b/tests/src/org/aspectj/systemtest/ajc152/ajc152.xml
@@ -729,5 +729,14 @@
</stderr>
</run>
</ajc-test>
-
+
+ <ajc-test dir="bugs152/pr148007" title="jrockit boolean fun">
+ <compile files="test/BooleanUnitTest.java, test/LoggingAspect.aj"/>
+ <run class="test.BooleanUnitTest"/>
+ </ajc-test>
+
+ <ajc-test dir="bugs152/pr148007/purejava" title="jrockit boolean fun (no aspects)">
+ <compile files="test/BooleanUnitTest.java, test/LoggingAspect.java" options="-inlineJSR"/>
+ <run class="test.BooleanUnitTest"/>
+ </ajc-test>
</suite> \ No newline at end of file