]> source.dussan.org Git - aspectj.git/commitdiff
Tests more reliable on 1.7 and later
authorAndy Clement <aclement@gopivotal.com>
Fri, 8 Aug 2014 15:34:32 +0000 (08:34 -0700)
committerAndy Clement <aclement@gopivotal.com>
Fri, 8 Aug 2014 15:34:32 +0000 (08:34 -0700)
testing/newsrc/org/aspectj/testing/AntSpec.java
tests/src/org/aspectj/systemtest/ajc11/Ajc11Tests.java
tests/src/org/aspectj/systemtest/ajc11/ajc11-tests.xml
tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
tests/src/org/aspectj/systemtest/ajc150/ajc150.xml

index fe6a961b584d1d75db4fac18575a21a6b288820d..80278368467c5d301758e08b36c1f06c61cb77ff 100644 (file)
@@ -195,8 +195,9 @@ public class AntSpec implements ITestStep {
                }
                if (m_stdErrSpec != null) {
                        String stderr2 = stderr.toString();
+                       // Working around this rediculous message that still comes out of Java7 builds:
                        if (stderr2.indexOf("Class JavaLaunchHelper is implemented in both")!=-1 && stderr2.indexOf('\n')!=-1) {
-                               stderr2 = stderr2.substring(stderr2.indexOf('\n')+1);
+                               stderr2 = stderr2.replaceAll("objc\\[[0-9]*\\]: Class JavaLaunchHelper is implemented in both [^\n]*\n","");
                        }
                        m_stdErrSpec.matchAgainst(stderr2);
                }
index 01ea96560e283775980d0c9062468029b7032c16..ff19e79547173df3cc1e0f94b441a8d4c36d8020 100644 (file)
@@ -14,6 +14,7 @@ import java.io.File;
 import junit.framework.Test;
 
 import org.aspectj.testing.XMLBasedAjcTestCase;
+import org.aspectj.util.LangUtil;
 
 public class Ajc11Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
 
@@ -390,7 +391,11 @@ public class Ajc11Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
        }
 
        public void test092() {
-               runTest("Compiler crash in ajc 1.1 - terrible error for inaccessible constructor");
+               if (LangUtil.is17VMOrGreater()) {
+                       runTest("Compiler crash in ajc 1.1 - terrible error for inaccessible constructor - 1.7");
+               } else {
+                       runTest("Compiler crash in ajc 1.1 - terrible error for inaccessible constructor");
+               }
        }
 
        public void test093() {
index 116accbb6f3a36eb2ff8473e30d104d4ce01344d..e16c31ab158cbcb0fc13ef9b31216aa192398df2 100644 (file)
         </compile>
     </ajc-test>
     
+    <ajc-test dir="bugs" pr="39458"
+        title="Compiler crash in ajc 1.1 - terrible error for inaccessible constructor - 1.7">
+        <compile files="NewVoid.java">
+            <message kind="error" line="17"/>        
+            <message kind="error" line="20"/>        
+            <message kind="error" line="21"/>
+                  
+            <message kind="error" line="28"/>        
+            <message kind="warning" line="29"/>        
+            <message kind="error" line="30"/>            
+        </compile>
+    </ajc-test>
+    
     <ajc-test dir="bugs" pr="39460"
         title="Missing import crashes compiler">
         <compile files="MissingImport.java">      
index 0c21e3fcce865b287cc9c53da95d40d75873207b..c9998d6c9b0dc66d5e7bfbbd09702f11e5e0ddd5 100644 (file)
@@ -842,7 +842,11 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
        }
 
        public void testJava5SpecificFeaturesUsedAtJava14OrLower() {
-               runTest("java 5 pointcuts and declares at pre-java 5 compliance levels");
+               if (LangUtil.is17VMOrGreater()) {
+                       runTest("java 5 pointcuts and declares at pre-java 5 compliance levels - 1.7");
+               } else {
+                       runTest("java 5 pointcuts and declares at pre-java 5 compliance levels");       
+               }
        }
 
        public void testAnonymousTypes() {
index 1ee0ee75291b76e7430f7ebd71d6378e36edf319..c8a068c78cd7ad192beb1955c13565098d1b61bc 100644 (file)
         </run>
     </ajc-test>
     
-        <ajc-test dir="java5/compliance" title="java 5 pointcuts and declares at pre-java 5 compliance levels">
+    <ajc-test dir="java5/compliance" title="java 5 pointcuts and declares at pre-java 5 compliance levels">
       <compile files="AJ5FeaturesAtJ14.aj" options="-1.4">
         <message kind="error" line="3" text="the @annotation pointcut expression is only supported at Java 5 compliance level or above"/>
         <message kind="error" line="11" text="the @within pointcut expression is only supported at Java 5 compliance level or above"/>
       </compile>
     </ajc-test>
     
+    <ajc-test dir="java5/compliance" title="java 5 pointcuts and declares at pre-java 5 compliance levels - 1.7">
+      <compile files="AJ5FeaturesAtJ14.aj" options="-1.4">
+        <message kind="error" line="3" text="the @annotation pointcut expression is only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="11" text="the @within pointcut expression is only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="13" text="the @withincode pointcut expression is only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="5" text="the @this pointcut expression is only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="7" text="the @target pointcut expression is only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="9" text="the @args pointcut expression is only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="15" text="declare @type is only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="15" text="annotations are only available if source level is 1.5 or greater"/>
+        <message kind="error" line="15" text="Foo is not an annotation type"/>     
+        <message kind="error" line="17" text="declare @method is only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="17" text="annotations are only available if source level is 1.5 or greater"/>
+        <message kind="error" line="17" text="Foo is not an annotation type"/>
+        <message kind="error" line="19" text="declare @field is only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="19" text="annotations are only available if source level is 1.5 or greater"/>
+        <message kind="error" line="19" text="Foo is not an annotation type"/>
+        <message kind="error" line="21" text="declare @constructor is only supported at Java 5 compliance level or above"/>       
+        <message kind="error" line="21" text="annotations are only available if source level is 1.5 or greater"/>
+        <message kind="error" line="21" text="Foo is not an annotation type"/>
+        <message kind="error" line="25" text="annotation type patterns are only supported at Java 5 compliance level or above"/>
+        <message kind="error" line="27" text="annotation type patterns are only supported at Java 5 compliance level or above"/>
+      </compile>
+    </ajc-test>
+    
     
     <ajc-test dir="bugs150" pr="91114" title="before and after are valid identifiers in classes, part 2">
         <compile files="pr91114.aj">