diff options
author | aclement <aclement> | 2004-12-09 16:15:38 +0000 |
---|---|---|
committer | aclement <aclement> | 2004-12-09 16:15:38 +0000 |
commit | eb673019179c372c6c17dd403e53d96feae434fd (patch) | |
tree | 844711e35a57220f405e2e8a95130519ad7e21be /tests | |
parent | 88fca98be4be9cfd15a25145ec96548f120dd8ab (diff) | |
download | aspectj-eb673019179c372c6c17dd403e53d96feae434fd.tar.gz aspectj-eb673019179c372c6c17dd403e53d96feae434fd.zip |
Complete varargs support.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/java5/varargs/SimpleVarargs.java | 1 | ||||
-rw-r--r-- | tests/java5/varargs/VarargsAspect05.aj | 5 | ||||
-rw-r--r-- | tests/java5/varargs/VarargsAspect06.aj | 5 | ||||
-rw-r--r-- | tests/java5/varargs/testcode.jar | bin | 618 -> 618 bytes | |||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc150/AllTestsJava5_binaryWeaving.java | 4 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc150/AnnotationPointcutsTests.java (renamed from tests/src/org/aspectj/systemtest/ajc150/AnnotationPointcuts.java) | 22 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc150/VarargsTests.java (renamed from tests/src/org/aspectj/systemtest/ajc150/Varargs.java) | 38 |
7 files changed, 52 insertions, 23 deletions
diff --git a/tests/java5/varargs/SimpleVarargs.java b/tests/java5/varargs/SimpleVarargs.java index 4060443ee..bcd1e1bdf 100644 --- a/tests/java5/varargs/SimpleVarargs.java +++ b/tests/java5/varargs/SimpleVarargs.java @@ -21,5 +21,6 @@ public class SimpleVarargs { s.fooInt(2,new Integer(45),new Integer(45)); s.fooInt(3,new Integer[]{new Integer(45),new Integer(45)}); // s.barInt(4,new Integer[]{new Integer(45),new Integer(45)}); + } } diff --git a/tests/java5/varargs/VarargsAspect05.aj b/tests/java5/varargs/VarargsAspect05.aj new file mode 100644 index 000000000..d170e3b1e --- /dev/null +++ b/tests/java5/varargs/VarargsAspect05.aj @@ -0,0 +1,5 @@ +public aspect VarargsAspect05 {
+
+ before(): call(* *(Integer...)) { }
+
+}
diff --git a/tests/java5/varargs/VarargsAspect06.aj b/tests/java5/varargs/VarargsAspect06.aj new file mode 100644 index 000000000..3ea869aa2 --- /dev/null +++ b/tests/java5/varargs/VarargsAspect06.aj @@ -0,0 +1,5 @@ +public aspect VarargsAspect06 {
+
+ before(): call(* *(int,Integer...)) { }
+
+}
diff --git a/tests/java5/varargs/testcode.jar b/tests/java5/varargs/testcode.jar Binary files differindex 86331bbeb..f4ea2d124 100644 --- a/tests/java5/varargs/testcode.jar +++ b/tests/java5/varargs/testcode.jar diff --git a/tests/src/org/aspectj/systemtest/ajc150/AllTestsJava5_binaryWeaving.java b/tests/src/org/aspectj/systemtest/ajc150/AllTestsJava5_binaryWeaving.java index f03ceef4f..f2df9add9 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/AllTestsJava5_binaryWeaving.java +++ b/tests/src/org/aspectj/systemtest/ajc150/AllTestsJava5_binaryWeaving.java @@ -29,8 +29,8 @@ public class AllTestsJava5_binaryWeaving { suite.addTestSuite(CovarianceTests.class); suite.addTestSuite(Enums.class); suite.addTestSuite(Annotations.class); - suite.addTestSuite(AnnotationPointcuts.class); - suite.addTestSuite(Varargs.class); + suite.addTestSuite(AnnotationPointcutsTests.class); + suite.addTestSuite(VarargsTests.class); //$JUnit-END$ return suite; } diff --git a/tests/src/org/aspectj/systemtest/ajc150/AnnotationPointcuts.java b/tests/src/org/aspectj/systemtest/ajc150/AnnotationPointcutsTests.java index 1f87b10c5..517b300ae 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/AnnotationPointcuts.java +++ b/tests/src/org/aspectj/systemtest/ajc150/AnnotationPointcutsTests.java @@ -20,7 +20,7 @@ import org.aspectj.tools.ajc.CompilationResult; /** * Tests the use of Annotations in pointcuts */ -public class AnnotationPointcuts extends TestUtils { +public class AnnotationPointcutsTests extends TestUtils { protected void setUp() throws Exception { super.setUp(); @@ -34,23 +34,9 @@ public class AnnotationPointcuts extends TestUtils { System.err.println(cR.getErrorMessages()); System.err.println(cR.getInfoMessages()); verifyWeavingMessagesOutput(cR,new String[]{ -"weaveinfo Type 'AnnotatedType' (AnnotatedType.java:3) advised by before advice from 'AnnotationAspect02' (AnnotationAspect02.aj:4)", -"weaveinfo Type 'AnnotatedType' (AnnotatedType.java:3) advised by before advice from 'AnnotationAspect02' (AnnotationAspect02.aj:2)", -"weaveinfo Type 'AnnotatedType' (AnnotatedType.java:4) advised by before advice from 'AnnotationAspect02' (AnnotationAspect02.aj:4)"}); - -// assertTrue("Expected three message about ITDs not allowed on Annotations but got: #"+ -// cR.getErrorMessages().size()+": \n"+cR.getErrorMessages(), -// cR.getErrorMessages().size()==3); -// IMessage msg1_ctor = (IMessage)cR.getErrorMessages().get(0); -// IMessage msg2_method = (IMessage)cR.getErrorMessages().get(1); -// IMessage msg3_field = (IMessage)cR.getErrorMessages().get(2); -// assertTrue("Expected message about ITDCs on annotations not allowed, but got: \n"+msg1_ctor, -// msg1_ctor.toString().indexOf("can't make inter-type constructor declarations")!=-1); -// assertTrue("Expected message about ITDMs on annotations not allowed, but got: \n"+msg2_method, -// msg2_method.toString().indexOf("can't make inter-type method declarations")!=-1); -// assertTrue("Expected message about ITDFs on annotations not allowed, but got: \n"+msg3_field, -// msg3_field.toString().indexOf("can't make inter-type field declarations")!=-1); -// verifyWeavingMessagesOutput(cR,new String[]{}); + "weaveinfo Type 'AnnotatedType' (AnnotatedType.java:3) advised by before advice from 'AnnotationAspect02' (AnnotationAspect02.aj:4)", + "weaveinfo Type 'AnnotatedType' (AnnotatedType.java:3) advised by before advice from 'AnnotationAspect02' (AnnotationAspect02.aj:2)", + "weaveinfo Type 'AnnotatedType' (AnnotatedType.java:4) advised by before advice from 'AnnotationAspect02' (AnnotationAspect02.aj:4)"}); } public void test002_AtAnnotationMatching() { diff --git a/tests/src/org/aspectj/systemtest/ajc150/Varargs.java b/tests/src/org/aspectj/systemtest/ajc150/VarargsTests.java index 075790c9b..7845f6bd1 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/Varargs.java +++ b/tests/src/org/aspectj/systemtest/ajc150/VarargsTests.java @@ -22,7 +22,7 @@ import org.aspectj.tools.ajc.CompilationResult; * 1. cannot match on a varargs method by using 'Object[]' in your signature, * this affects call/execution/initialization/withincode */ -public class Varargs extends TestUtils { +public class VarargsTests extends TestUtils { protected void setUp() throws Exception { super.setUp(); @@ -56,11 +56,43 @@ public class Varargs extends TestUtils { } // check when signature is from an withincode PCD + // In this test, it can be tricky to understand the results!! The reason being that the shadow + // isn't included in the error message (it really should be, but thats a bit hard to do cleanly) public void test003_cantMatchVarargsWithObjectArray_withincodePCD() { - CompilationResult cR = binaryWeave("testcode.jar","VarargsAspect04.aj",0,1,true); - assertTrue("Did not get expected message about a varags mismatch, instead got: "+cR.getWarningMessages(), + CompilationResult cR = binaryWeave("testcode.jar","VarargsAspect04.aj",0,7,true); + + // There are 7. Each piece of the pointcut is matched against all the shadows, so both + // the 'withincode' PCD and the 'call' PCD are matched against every join point. + assertTrue("Did not get expected message about a varargs mismatch, instead got: "+cR.getWarningMessages(), ((IMessage)cR.getWarningMessages().get(0)).toString().indexOf("varargs declared method")!=-1); + verifyWeavingMessagesOutput(cR,new String[]{}); } + + // before(): call(* *(Integer...)) { } + public void test_usingVarargsInPointcuts1() { + CompilationResult cR = binaryWeave("testcode.jar","VarargsAspect05.aj",0,0,true); + System.err.println(cR.getStandardError()); + System.err.println(cR.getErrorMessages()); + System.err.println(cR.getInfoMessages()); + verifyWeavingMessagesOutput(cR,new String[]{ + "weaveinfo Type 'SimpleVarargs' (SimpleVarargs.java:15) advised by before advice from 'VarargsAspect05' (VarargsAspect05.aj:3)", + "weaveinfo Type 'SimpleVarargs' (SimpleVarargs.java:16) advised by before advice from 'VarargsAspect05' (VarargsAspect05.aj:3)", + "weaveinfo Type 'SimpleVarargs' (SimpleVarargs.java:17) advised by before advice from 'VarargsAspect05' (VarargsAspect05.aj:3)"}); + } + + // before(): call(* *(int,Integer...)) { } - slightly more complex pcut + public void test_usingVarargsInPointcuts2() { + CompilationResult cR = binaryWeave("testcode.jar","VarargsAspect06.aj",0,0,true); + System.err.println(cR.getStandardError()); + System.err.println(cR.getErrorMessages()); + System.err.println(cR.getInfoMessages()); + + verifyWeavingMessagesOutput(cR,new String[]{ + "weaveinfo Type 'SimpleVarargs' (SimpleVarargs.java:20) advised by before advice from 'VarargsAspect06' (VarargsAspect06.aj:3)", + "weaveinfo Type 'SimpleVarargs' (SimpleVarargs.java:21) advised by before advice from 'VarargsAspect06' (VarargsAspect06.aj:3)", + "weaveinfo Type 'SimpleVarargs' (SimpleVarargs.java:22) advised by before advice from 'VarargsAspect06' (VarargsAspect06.aj:3)"}); + } + }
\ No newline at end of file |