]> source.dussan.org Git - aspectj.git/commitdiff
238992: test and fix
authoraclement <aclement>
Mon, 7 Jul 2008 22:32:39 +0000 (22:32 +0000)
committeraclement <aclement>
Mon, 7 Jul 2008 22:32:39 +0000 (22:32 +0000)
tests/bugs162/pr238992/Foo.java [new file with mode: 0644]
tests/bugs162/pr238992/Foo2.java [new file with mode: 0644]
tests/bugs162/pr238992/Foo3.java [new file with mode: 0644]
tests/bugs162/pr238992/Foo4.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc162/Ajc162Tests.java
tests/src/org/aspectj/systemtest/ajc162/ajc162.xml

diff --git a/tests/bugs162/pr238992/Foo.java b/tests/bugs162/pr238992/Foo.java
new file mode 100644 (file)
index 0000000..d4fe360
--- /dev/null
@@ -0,0 +1,36 @@
+import java.lang.annotation.*;
+import java.io.*;
+
+@Entity(indexed=false)
+public class Foo {
+  public static void main(String []argv) {
+    Foo f = new Foo();
+    Goo g = new Goo();
+    if (f instanceof Serializable) {
+       throw new RuntimeException("Foo should not implement it");        
+    }
+    if (!(g instanceof Serializable)) {
+       throw new RuntimeException("Goo should implement it");        
+    }
+    if (new Hoo() instanceof Serializable) {
+       throw new RuntimeException("Hoo should not implement it");        
+    }
+  }
+}
+
+@Entity(indexed=true)
+class Goo {
+}
+
+@Entity // default is false
+class Hoo {
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Entity {
+  boolean indexed() default false;
+}
+
+aspect X {
+  declare parents: (@Entity(indexed=true) *) implements java.io.Serializable;
+}
diff --git a/tests/bugs162/pr238992/Foo2.java b/tests/bugs162/pr238992/Foo2.java
new file mode 100644 (file)
index 0000000..38f496d
--- /dev/null
@@ -0,0 +1,36 @@
+import java.lang.annotation.*;
+import java.io.*;
+
+@Entity(indexed=false)
+public class Foo2 {
+  public static void main(String []argv) {
+    Foo2 f = new Foo2();
+    Goo g = new Goo();
+    if (f instanceof Serializable) {
+       throw new RuntimeException("Foo2 should not implement it");        
+    }
+    if (!(g instanceof Serializable)) {
+       throw new RuntimeException("Goo should implement it");        
+    }
+    if (!(new Hoo() instanceof Serializable)) {
+       throw new RuntimeException("Hoo should implement it");        
+    }
+  }
+}
+
+@Entity(indexed=true)
+class Goo {
+}
+
+@Entity // default is true
+class Hoo {
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Entity {
+  boolean indexed() default true;
+}
+
+aspect X {
+  declare parents: (@Entity(indexed=true) *) implements java.io.Serializable;
+}
diff --git a/tests/bugs162/pr238992/Foo3.java b/tests/bugs162/pr238992/Foo3.java
new file mode 100644 (file)
index 0000000..5935688
--- /dev/null
@@ -0,0 +1,36 @@
+import java.lang.annotation.*;
+import java.io.*;
+
+@Entity(i=1)
+public class Foo3 {
+  public static void main(String []argv) {
+    Foo3 f = new Foo3();
+    Goo g = new Goo();
+    if (f instanceof Serializable) {
+       throw new RuntimeException("Foo3 should not implement it");        
+    }
+    if (!(g instanceof Serializable)) {
+       throw new RuntimeException("Goo should implement it");        
+    }
+    if (new Hoo() instanceof Serializable) {
+       throw new RuntimeException("Hoo should not implement it");        
+    }
+  }
+}
+
+@Entity(i=2)
+class Goo {
+}
+
+@Entity // default is 1
+class Hoo {
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Entity {
+  int i() default 1;
+}
+
+aspect X {
+  declare parents: (@Entity(i=2) *) implements java.io.Serializable;
+}
diff --git a/tests/bugs162/pr238992/Foo4.java b/tests/bugs162/pr238992/Foo4.java
new file mode 100644 (file)
index 0000000..87ee3c6
--- /dev/null
@@ -0,0 +1,36 @@
+import java.lang.annotation.*;
+import java.io.*;
+
+@Entity(i=1)
+public class Foo4 {
+  public static void main(String []argv) {
+    Foo4 f = new Foo4();
+    Goo g = new Goo();
+    if (f instanceof Serializable) {
+       throw new RuntimeException("Foo4 should not implement it");        
+    }
+    if (!(g instanceof Serializable)) {
+       throw new RuntimeException("Goo should implement it");        
+    }
+    if (!(new Hoo() instanceof Serializable)) {
+       throw new RuntimeException("Hoo should implement it");        
+    }
+  }
+}
+
+@Entity(i=2)
+class Goo {
+}
+
+@Entity // default is 2
+class Hoo {
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Entity {
+  int i() default 2;
+}
+
+aspect X {
+  declare parents: (@Entity(i=2) *) implements java.io.Serializable;
+}
index d8d539b24d83a8d6f0fa6a36a4f4653878b6fe22..2cb1d38264a319df79f055fa77c9e4dd3910b7ab 100644 (file)
@@ -19,8 +19,12 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
 public class Ajc162Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
        
        // AspectJ1.6.2 
-       public void testAnnotationDecp_pr239441() { runTest("annotation decp"); }
-
+//     public void testAnnotationDecp_pr239441() { runTest("annotation decp"); }
+       public void testAnnotationValueDecp_pr238992() { runTest("annotation value decp"); }
+       public void testAnnotationValueDecp_pr238992_2() { runTest("annotation value decp - 2"); }
+       public void testAnnotationValueDecp_pr238992_3() { runTest("annotation value decp - 3"); }
+       public void testAnnotationValueDecp_pr238992_4() { runTest("annotation value decp - 4"); }
+       
        public static Test suite() {
       return XMLBasedAjcTestCase.loadSuite(Ajc162Tests.class);
     }
index 08e86272dfa46f6598ced81843c368c6685701c8..5b2b599bab5b353500fcbab60572b51c88a5bdba 100644 (file)
@@ -7,5 +7,35 @@
        <compile files="Test3.java SampleAspect.java" options="-1.5 -showWeaveInfo -XhasMember">
        </compile>
     </ajc-test>    
+    
+       <ajc-test dir="bugs162/pr238992" title="annotation value decp">
+       <compile files="Foo.java" options="-1.5 -showWeaveInfo">
+         <message kind="weave" text="Extending interface set for type 'Goo'"/>
+       </compile>
+       <run class="Foo"/>
+    </ajc-test>    
+    
+       <ajc-test dir="bugs162/pr238992" title="annotation value decp - 2">
+       <compile files="Foo2.java" options="-1.5 -showWeaveInfo">
+         <message kind="weave" text="Extending interface set for type 'Goo'"/>
+         <message kind="weave" text="Extending interface set for type 'Hoo'"/>
+       </compile>
+       <run class="Foo2"/>
+    </ajc-test>    
+    
+       <ajc-test dir="bugs162/pr238992" title="annotation value decp - 3">
+       <compile files="Foo3.java" options="-1.5 -showWeaveInfo">
+         <message kind="weave" text="Extending interface set for type 'Goo'"/>
+       </compile>
+       <run class="Foo3"/>
+    </ajc-test>    
+    
+       <ajc-test dir="bugs162/pr238992" title="annotation value decp - 4">
+       <compile files="Foo4.java" options="-1.5 -showWeaveInfo">
+         <message kind="weave" text="Extending interface set for type 'Goo'"/>
+         <message kind="weave" text="Extending interface set for type 'Hoo'"/>
+       </compile>
+       <run class="Foo4"/>
+    </ajc-test>    
 
 </suite>
\ No newline at end of file