]> source.dussan.org Git - aspectj.git/commitdiff
tests for pr113447 from Helen Hawkins.
authoraclement <aclement>
Fri, 11 Nov 2005 11:23:43 +0000 (11:23 +0000)
committeraclement <aclement>
Fri, 11 Nov 2005 11:23:43 +0000 (11:23 +0000)
tests/bugs150/PR113447.java [deleted file]
tests/bugs150/pr113447/PR113447.java [new file with mode: 0644]
tests/bugs150/pr113447/PR113447a.java [new file with mode: 0644]
tests/bugs150/pr113447/PR113447b.java [new file with mode: 0644]
tests/bugs150/pr113447/PR113447c.java [new file with mode: 0644]
tests/bugs150/pr113447/PR113447d.java [new file with mode: 0644]
tests/bugs150/pr113447/PR113447e.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
tests/src/org/aspectj/systemtest/ajc150/ajc150.xml

diff --git a/tests/bugs150/PR113447.java b/tests/bugs150/PR113447.java
deleted file mode 100644 (file)
index 8fd45ed..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-public class PR113447 {
-
-       public static void main(String[] args) {
-               PR113447 me = new PR113447();
-               me.method1();
-               me.method3();
-       }
-       
-       public void method1(){}
-
-       public void method3(){}
-}
-
-aspect Super {
-
-       // second method doesn't exist
-       pointcut pc1(PR113447 s) : 
-               (this(s) && execution(void method1()))
-               || (this(s) && execution(void method2()));
-
-       before(PR113447 s) : pc1(s) {
-       }
-       
-       // second method does exist
-       pointcut pc2(PR113447 s) : 
-               (this(s) && execution(void method1()))
-               || (this(s) && execution(void method3()));
-
-       before(PR113447 s) : pc2(s) {
-       }
-       
-       // second method doesn't exist
-       pointcut pc3(PR113447 s) : 
-               (args(s) && execution(void method1()))
-               || (args(s) && execution(void method2()));
-
-       before(PR113447 s) : pc3(s) {
-       }
-
-}
diff --git a/tests/bugs150/pr113447/PR113447.java b/tests/bugs150/pr113447/PR113447.java
new file mode 100644 (file)
index 0000000..074f803
--- /dev/null
@@ -0,0 +1,42 @@
+public class PR113447 {
+
+       public static void main(String[] args) {
+               PR113447 me = new PR113447();
+               me.method1();
+               me.method3();
+       }
+       
+       public void method1(){}
+
+       public void method3(){}
+}
+
+aspect Super {
+
+       // second method doesn't exist
+       pointcut pc1(PR113447 s) : 
+               (this(PR113447) && this(s) && execution(void method1()) && this(PR113447))
+               || (this(s) && execution(void method2()) && this(PR113447));
+
+       before(PR113447 s) : pc1(s) {
+       }
+       
+/*
+       // second method does exist
+       pointcut pc2(PR113447 s) : 
+               (this(s) && execution(void method1()))
+               || (this(s) && execution(void method3()));
+
+       before(PR113447 s) : pc2(s) {
+       }
+       
+       // second method doesn't exist
+       pointcut pc3(PR113447 s) : 
+               (args(s) && execution(void method1()))
+               || (args(s) && execution(void method2()));
+
+       before(PR113447 s) : pc3(s) {
+       }
+*/
+
+}
diff --git a/tests/bugs150/pr113447/PR113447a.java b/tests/bugs150/pr113447/PR113447a.java
new file mode 100644 (file)
index 0000000..d720c52
--- /dev/null
@@ -0,0 +1,65 @@
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Annotation{};
+
+@Annotation
+public class PR113447a {
+
+       public static void main(String[] args) {
+               PR113447a me = new PR113447a();
+               me.method1();
+               me.method3();
+               me.method4(2);
+       }
+       
+       public void method1(){}
+
+       public void method3(){}
+       
+       public void method4(int i){}
+       public void method5(int i){}
+}
+
+aspect Super {
+
+       // second method doesn't exist
+       pointcut pc1(Annotation a) : 
+               (@this(a) && execution(void method1()))
+               || (@this(a) && execution(void method2()));
+
+       before(Annotation a) : pc1(a) {}
+       
+       // second method does exist
+       pointcut pc2(Annotation a) : 
+               (@this(a) && execution(void method1()))
+               || (@this(a) && execution(void method3()));
+
+       before(Annotation a) : pc2(a) {}
+       
+       // second method doesn't exist
+       pointcut pc3(Annotation a) : 
+               (@target(a) && call(void method1()))
+               || (@target(a) && call(void method2()));
+
+       before(Annotation a) : pc3(a) {
+       }
+       
+       // second method does exist
+       pointcut pc4(Annotation a) : 
+               (@target(a) && call(void method1()))
+               || (@target(a) && call(void method3()));
+
+       before(Annotation a) : pc4(a) {
+       }
+       
+       // @this equivalent of BaseTests.test024 which was affected by
+       // the fix for the non annotation version
+       pointcut p(Annotation a) : 
+               @target(a) && (call(void method4(int)) 
+                               || call(void method5(int)));
+
+       before(Annotation a) : p(a) {}
+       after(Annotation a): p(a) {}
+}
diff --git a/tests/bugs150/pr113447/PR113447b.java b/tests/bugs150/pr113447/PR113447b.java
new file mode 100644 (file)
index 0000000..baa0aba
--- /dev/null
@@ -0,0 +1,27 @@
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Annotation{};
+
+@Annotation
+public class PR113447b {
+
+       public static void main(String[] args) {
+               PR113447b me = new PR113447b();
+               me.method4(1);
+       }
+       
+       public void method4(int i){}
+       public void method5(int i){}
+}
+
+aspect Super {
+
+       pointcut p(Annotation a) : 
+               @within(a) && (call(void method4(int)) 
+                               || call(void method5(int)));
+
+       before(Annotation a) : p(a) {}
+
+}
diff --git a/tests/bugs150/pr113447/PR113447c.java b/tests/bugs150/pr113447/PR113447c.java
new file mode 100644 (file)
index 0000000..d903dbb
--- /dev/null
@@ -0,0 +1,27 @@
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Annotation{};
+
+public class PR113447c {
+
+       @Annotation
+       public static void main(String[] args) {
+               PR113447c me = new PR113447c();
+               me.method4(1);
+       }
+
+       public void method4(int i){}
+       public void method5(int i){}
+}
+
+aspect Super {
+
+       pointcut p(Annotation a) : 
+               @withincode(a) && (call(void method4(int)) 
+                               || call(void method5(int)));
+
+       before(Annotation a) : p(a) {}
+
+}
diff --git a/tests/bugs150/pr113447/PR113447d.java b/tests/bugs150/pr113447/PR113447d.java
new file mode 100644 (file)
index 0000000..bf7520d
--- /dev/null
@@ -0,0 +1,25 @@
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Annotation{};
+
+public class PR113447d {
+
+       public static void main(String[] args) {
+               PR113447d me = new PR113447d();
+               me.method4(1);
+       }
+       
+       @Annotation public void method4(int i){}
+       @Annotation public void method5(int i){}
+}
+
+aspect Super {
+       
+       pointcut p(Annotation a) : 
+               @annotation(a) && (call(void method4(int)) 
+                               || call(void method5(int)));
+
+       before(Annotation a) : p(a) {}
+}
diff --git a/tests/bugs150/pr113447/PR113447e.java b/tests/bugs150/pr113447/PR113447e.java
new file mode 100644 (file)
index 0000000..424089d
--- /dev/null
@@ -0,0 +1,36 @@
+public class PR113447e {
+
+       public static void main(String[] args) {
+               PR113447e me = new PR113447e();
+               me.method1(1);
+               me.method3(2);
+       }
+       
+       public void method1(int i){}
+
+       public void method3(int i){}
+}
+
+aspect Super {
+
+       // second method doesn't exist
+       pointcut pc1(int i) : 
+               (args(i) && call(void method1(int)))
+               || (args(i) && call(void method2(int)));
+
+       before(int i) : pc1(i) {}
+       
+       // second method does exist
+       pointcut pc2(int i) : 
+               (args(i) && call(void method1(int)))
+               || (args(i) && call(void method3(int)));
+
+       before(int i) : pc2(i) {}
+       
+       // ensure this still works
+       pointcut pc3(int i) :
+               args(i) && (call(void method1(int)) || call(void method2(int)));
+       
+       before(int i) : pc3(i) {}
+       after(int i) : pc3(i) {}
+}
index c2e2114f7c44e5a08f6febd475bef382d86a62d6..a7993fb8676331f1ffa5a8333719f6c920d6b6e6 100644 (file)
@@ -658,10 +658,6 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
          runTest("weaveinfo message for declare at method on an ITDd method");
   }
   
-  public void testNoVerifyErrorWithTwoThisPCDs_pr113447() {
-         runTest("no verify error with two this pcds");
-  }
-  
   public void testITDCWithNoExplicitConsCall() {
          runTest("ITDC with no explicit cons call");
   }
@@ -682,6 +678,31 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
          runTest("pointcut expression containing 'assert'");
   }
   
+  public void testNoVerifyErrorWithTwoThisPCDs_pr113447() {
+         runTest("no verify error with two this pcds");
+  }
+
+  public void testNoVerifyErrorWithTwoAtThisPCDs_pr113447() {
+         runTest("no verify error with two at this pcds");
+  }
+  
+  public void testNoVerifyErrorWithAtWithinPCDs_pr113447() {
+         runTest("no verify error with at within pcds");
+  }
+  
+  public void testNoVerifyErrorWithAtWithincodePCDs_pr113447() {
+         runTest("no verify error with at withincode pcds");
+  }
+  
+  public void testNoVerifyErrorWithAtAnnotationPCDs_pr113447() {
+         runTest("no verify error with at annotation pcds");
+  }
+  
+  public void testNoVerifyErrorWithTwoArgsPCDs_pr113447() {
+         runTest("no verify error with two args pcds");
+  }
+  
+  
   // helper methods.....
   
   public SyntheticRepository createRepos(File cpentry) {
index 80492b8783999b25d4d0a41ebfd22b673c47a50a..e5122ff09c856a8ca9c0e42ae9912a578a80df10 100644 (file)
         </compile>
     </ajc-test> 
 
-    <ajc-test dir="bugs150" title="no verify error with two this pcds">
+    <ajc-test dir="bugs150/pr113447" title="no verify error with two this pcds">
         <compile files="PR113447.java">
         </compile>
         <run class="PR113447"/>
     </ajc-test> 
 
+       <ajc-test dir="bugs150/pr113447" title="no verify error with two at this pcds">
+        <compile files="PR113447a.java" options="-1.5">
+        </compile>
+        <run class="PR113447a"/>
+    </ajc-test>
+
+       <ajc-test dir="bugs150/pr113447" title="no verify error with at within pcds">
+        <compile files="PR113447b.java" options="-1.5">
+        </compile>
+        <run class="PR113447b"/>
+    </ajc-test>
+
+       <ajc-test dir="bugs150/pr113447" title="no verify error with at withincode pcds">
+        <compile files="PR113447c.java" options="-1.5">
+        </compile>
+        <run class="PR113447c"/>
+    </ajc-test>
+
+       <ajc-test dir="bugs150/pr113447" title="no verify error with at annotation pcds">
+        <compile files="PR113447d.java" options="-1.5">
+        </compile>
+        <run class="PR113447d"/>
+    </ajc-test>
+
+       <ajc-test dir="bugs150/pr113447" title="no verify error with two args pcds">
+        <compile files="PR113447e.java" options="-1.5">
+        </compile>
+        <run class="PR113447e"/>
+    </ajc-test>
+
     <!-- ============================================================================ -->
     <!-- ============================================================================ -->