]> source.dussan.org Git - aspectj.git/commitdiff
508661: testcode
authorAndy Clement <aclement@pivotal.io>
Fri, 9 Dec 2016 17:04:56 +0000 (09:04 -0800)
committerAndy Clement <aclement@pivotal.io>
Fri, 9 Dec 2016 17:04:56 +0000 (09:04 -0800)
tests/bugs1810/508661/A_yes.java [new file with mode: 0644]
tests/bugs1810/508661/B_no.java [new file with mode: 0644]
tests/bugs1810/508661/CacheMethodResult.java [new file with mode: 0644]
tests/bugs1810/508661/CacheMethodResultAspect.java [new file with mode: 0644]
tests/bugs1810/508661/Run.java [new file with mode: 0644]
tests/bugs1810/508661/aop.xml [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc1810/Ajc1810Tests.java
tests/src/org/aspectj/systemtest/ajc1810/ajc1810.xml

diff --git a/tests/bugs1810/508661/A_yes.java b/tests/bugs1810/508661/A_yes.java
new file mode 100644 (file)
index 0000000..9920f06
--- /dev/null
@@ -0,0 +1,8 @@
+public class A_yes {
+  @CacheMethodResult
+  public void m() {
+    System.out.println("A_yes.m()");
+    Class[] itfs = A_yes.class.getInterfaces();
+    System.out.println("A_yes has interface? "+((itfs==null||itfs.length==0)?"no":itfs[0].getName()));
+  }
+}
diff --git a/tests/bugs1810/508661/B_no.java b/tests/bugs1810/508661/B_no.java
new file mode 100644 (file)
index 0000000..e65d633
--- /dev/null
@@ -0,0 +1,7 @@
+class B_no {
+  public void m() {
+    System.out.println("B_no.m()");
+    Class[] itfs = B_no.class.getInterfaces();
+    System.out.println("B_no has interface? "+((itfs==null||itfs.length==0)?"no":itfs[0].getName()));
+  }
+}
diff --git a/tests/bugs1810/508661/CacheMethodResult.java b/tests/bugs1810/508661/CacheMethodResult.java
new file mode 100644 (file)
index 0000000..fd919bd
--- /dev/null
@@ -0,0 +1,4 @@
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface CacheMethodResult {}
diff --git a/tests/bugs1810/508661/CacheMethodResultAspect.java b/tests/bugs1810/508661/CacheMethodResultAspect.java
new file mode 100644 (file)
index 0000000..d7626a9
--- /dev/null
@@ -0,0 +1,10 @@
+aspect CacheMethodResultAspect perthis(cache()) {
+
+  pointcut cache() : execution(@CacheMethodResult * *.*(..));
+
+  Object around() : cache() {
+    System.out.println("around: "+thisJoinPointStaticPart.getSignature());
+    return proceed();
+  }
+}
+
diff --git a/tests/bugs1810/508661/Run.java b/tests/bugs1810/508661/Run.java
new file mode 100644 (file)
index 0000000..176e5a4
--- /dev/null
@@ -0,0 +1,6 @@
+public class Run {
+  public static void main(String []argv) {
+    new A_yes().m();
+    new B_no().m();
+  }
+}
diff --git a/tests/bugs1810/508661/aop.xml b/tests/bugs1810/508661/aop.xml
new file mode 100644 (file)
index 0000000..5b89e66
--- /dev/null
@@ -0,0 +1,10 @@
+<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
+<aspectj>
+       <weaver>
+       </weaver>
+
+       <aspects>
+               <aspect name="CacheMethodResultAspect" />
+       </aspects>
+
+</aspectj>
index 3cae1378cdde813a0b8da271f72a8c1ce0f7f5eb..37896b42ff75bde6cdcda3089fe742bd46b3ba8a 100644 (file)
@@ -24,6 +24,10 @@ import junit.framework.Test;
  */
 public class Ajc1810Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
 
+       public void testBinding_508661() {
+               runTest("various ltw");
+       }
+       
        public void testBinding_500035() {
                runTest("ataspectj binding");
        }
index 7485c1c20816bdd7ce696ebd38814f23d7077bb6..0171f5b55d6da33b95679cb6d75e75ab9f232d50 100644 (file)
@@ -2,6 +2,20 @@
 
 <suite>
 
+       <ajc-test dir="bugs1810/508661" title="various ltw">
+               <compile options="-1.8" files="CacheMethodResult.java A_yes.java B_no.java Run.java" outjar="classes.jar"/>
+               <compile options="-1.8 -Xlint:ignore" files="CacheMethodResultAspect.java" outjar="aspects.jar"/>
+               <run class="Run" ltw="aop.xml">
+                       <stdout>
+                               <line text="around: void A_yes.m()"/>
+                               <line text="A_yes.m()"/>
+                               <line text="A_yes has interface? CacheMethodResultAspect$ajcMightHaveAspect"/>
+                               <line text="B_no.m()"/>
+                               <line text="B_no has interface? no"/>
+                       </stdout>
+               </run>
+       </ajc-test>
+
        <ajc-test dir="bugs1810/500035" title="ataspectj binding">
                <compile options="-1.8" files="Code.java"/>
                <run class="Code">