]> source.dussan.org Git - aspectj.git/commitdiff
318884: incremental: throws clause change
authoraclement <aclement>
Mon, 5 Jul 2010 22:16:22 +0000 (22:16 +0000)
committeraclement <aclement>
Mon, 5 Jul 2010 22:16:22 +0000 (22:16 +0000)
12 files changed:
tests/multiIncremental/pr318884_1/base/src/A.java [new file with mode: 0644]
tests/multiIncremental/pr318884_1/base/src/B.java [new file with mode: 0644]
tests/multiIncremental/pr318884_1/inc1/src/A.java [new file with mode: 0644]
tests/multiIncremental/pr318884_2/base/src/A.java [new file with mode: 0644]
tests/multiIncremental/pr318884_2/base/src/B.java [new file with mode: 0644]
tests/multiIncremental/pr318884_2/inc1/src/A.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/AllTests15.java
tests/src/org/aspectj/systemtest/ajc1610/Ajc1610Tests.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc1610/AllTestsAspectJ1610.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc1610/ajc1610.xml [new file with mode: 0644]
tests/src/org/aspectj/systemtest/incremental/tools/AbstractMultiProjectIncrementalAjdeInteractionTestbed.java
tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java [new file with mode: 0644]

diff --git a/tests/multiIncremental/pr318884_1/base/src/A.java b/tests/multiIncremental/pr318884_1/base/src/A.java
new file mode 100644 (file)
index 0000000..8df91bb
--- /dev/null
@@ -0,0 +1,4 @@
+public class A {
+  public void m() {
+  }
+}
diff --git a/tests/multiIncremental/pr318884_1/base/src/B.java b/tests/multiIncremental/pr318884_1/base/src/B.java
new file mode 100644 (file)
index 0000000..3443831
--- /dev/null
@@ -0,0 +1,6 @@
+public class B {
+  public static void main(String []argv) {
+    A a = new A();
+    a.m();
+  }
+}
diff --git a/tests/multiIncremental/pr318884_1/inc1/src/A.java b/tests/multiIncremental/pr318884_1/inc1/src/A.java
new file mode 100644 (file)
index 0000000..dce9f6b
--- /dev/null
@@ -0,0 +1,4 @@
+public class A {
+  public void m() throws java.io.IOException {
+  }
+}
diff --git a/tests/multiIncremental/pr318884_2/base/src/A.java b/tests/multiIncremental/pr318884_2/base/src/A.java
new file mode 100644 (file)
index 0000000..dce9f6b
--- /dev/null
@@ -0,0 +1,4 @@
+public class A {
+  public void m() throws java.io.IOException {
+  }
+}
diff --git a/tests/multiIncremental/pr318884_2/base/src/B.java b/tests/multiIncremental/pr318884_2/base/src/B.java
new file mode 100644 (file)
index 0000000..03081af
--- /dev/null
@@ -0,0 +1,6 @@
+public class B {
+  public static void main(String []argv) throws java.io.IOException {
+    A a = new A();
+    a.m();
+  }
+}
diff --git a/tests/multiIncremental/pr318884_2/inc1/src/A.java b/tests/multiIncremental/pr318884_2/inc1/src/A.java
new file mode 100644 (file)
index 0000000..e073fa1
--- /dev/null
@@ -0,0 +1,4 @@
+public class A {
+  public void m() throws Exception {
+  }
+}
index c8a2ce89a8e124d52889e4862c7d6b4697ccec98..8b19ef23b30633ce8d9714ef169295e3e4a6a74b 100644 (file)
@@ -12,6 +12,7 @@ import org.aspectj.systemtest.ajc151.AllTestsAspectJ151;
 import org.aspectj.systemtest.ajc152.AllTestsAspectJ152;
 import org.aspectj.systemtest.ajc153.AllTestsAspectJ153;
 import org.aspectj.systemtest.ajc154.AllTestsAspectJ154;
+import org.aspectj.systemtest.incremental.tools.IncrementalCompilationTests;
 import org.aspectj.systemtest.incremental.tools.IncrementalOutputLocationManagerTests;
 import org.aspectj.systemtest.incremental.tools.IncrementalPerformanceTests;
 import org.aspectj.systemtest.incremental.tools.MoreOutputLocationManagerTests;
@@ -37,6 +38,7 @@ public class AllTests15 {
                 * issues and are excluded on the build machine so moving them here loses nothing for the moment.
                 */
                suite.addTestSuite(MultiProjectIncrementalTests.class);
+               suite.addTestSuite(IncrementalCompilationTests.class);
                suite.addTestSuite(IncrementalPerformanceTests.class);
                suite.addTestSuite(MoreOutputLocationManagerTests.class);
                suite.addTestSuite(IncrementalOutputLocationManagerTests.class);
diff --git a/tests/src/org/aspectj/systemtest/ajc1610/Ajc1610Tests.java b/tests/src/org/aspectj/systemtest/ajc1610/Ajc1610Tests.java
new file mode 100644 (file)
index 0000000..020b0c5
--- /dev/null
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Contributors 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Andy Clement - initial API and implementation
+ *******************************************************************************/
+package org.aspectj.systemtest.ajc1610;
+
+import java.io.File;
+
+import junit.framework.Test;
+
+import org.aspectj.testing.XMLBasedAjcTestCase;
+
+public class Ajc1610Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
+
+       // public void testMessyDecp_318241() {
+       // runTest("messy decp");
+       // }
+
+       // ---
+
+       public static Test suite() {
+               return XMLBasedAjcTestCase.loadSuite(Ajc1610Tests.class);
+       }
+
+       @Override
+       protected File getSpecFile() {
+               return new File("../tests/src/org/aspectj/systemtest/ajc169/ajc169.xml");
+       }
+
+}
\ No newline at end of file
diff --git a/tests/src/org/aspectj/systemtest/ajc1610/AllTestsAspectJ1610.java b/tests/src/org/aspectj/systemtest/ajc1610/AllTestsAspectJ1610.java
new file mode 100644 (file)
index 0000000..dfbf422
--- /dev/null
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Contributors
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Andy Clement - initial API and implementation
+ *******************************************************************************/
+package org.aspectj.systemtest.ajc1610;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTestsAspectJ1610 {
+
+       public static Test suite() {
+               TestSuite suite = new TestSuite("AspectJ 1.6.10 tests");
+               // $JUnit-BEGIN$
+               suite.addTest(Ajc1610Tests.suite());
+               // $JUnit-END$
+               return suite;
+       }
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc1610/ajc1610.xml b/tests/src/org/aspectj/systemtest/ajc1610/ajc1610.xml
new file mode 100644 (file)
index 0000000..8e4eab5
--- /dev/null
@@ -0,0 +1,413 @@
+<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]>
+
+<suite>
+
+  <ajc-test dir="bugs169/pr318241" title="messy decp">
+    <compile files="PkItd.aj Two.aj SomeClass.java Pk.java SomeAnnotation.java" options="-1.5">
+    </compile>
+  </ajc-test>
+
+  <ajc-test dir="bugs169/pr287613" title="compound declare patterns - method - 2">
+        <compile files="DAMethod2.java" options="-1.5 -showWeaveInfo">
+               <message kind="weave" text="'public void Person.foo()' (DAMethod2.java:11) is annotated with @Annot method annotation from 'DAMethod2' (DAMethod2.java:26)"/>
+               <message kind="weave" text="public boolean Person.bar()' (DAMethod2.java:13) is annotated with @Annot method annotation from 'DAMethod2' (DAMethod2.java:26)"/>
+               <message kind="weave" text="public boolean Person.isSet()' (DAMethod2.java:17) is annotated with @Annot method annotation from 'DAMethod2' (DAMethod2.java:26)"/>
+               <message kind="weave" text="public void Person.isNotReturningBoolean()' (DAMethod2.java:19) is annotated with @Annot method annotation from 'DAMethod2' (DAMethod2.java:26)"/>
+               <message kind="weave" text="'public void Person.getin()' (DAMethod2.java:21) is annotated with @Annot method annotation from 'DAMethod2' (DAMethod2.java:28)"/>
+        </compile>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr287613" title="compound declare patterns - method - 1">
+        <compile files="DAMethod1.java" options="-1.5 -showWeaveInfo">
+               <message kind="weave" text="'public java.lang.String Person.getString()' (DAMethod1.java:9) is annotated with @Annot method annotation from 'DAMethod1' (DAMethod1.java:15)"/>
+               <message kind="weave" text="'public boolean Person.isSet()' (DAMethod1.java:10) is annotated with @Annot method annotation from 'DAMethod1' (DAMethod1.java:15)"/>
+        </compile>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr315820" title="multiple annos running - 1">
+        <compile files="MultiAnno2.java" options="-1.5"/>
+        <run class="MultiAnno2">
+        <stdout>
+        <line text="XXX"/>
+        </stdout>
+        </run>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr315820" title="multiple annos parsing">
+        <compile files="MultiAnno.java" options="-1.5"/>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr287613" title="compound declare patterns - fields - 2">
+        <compile files="Target.java" options="-1.5"/>
+        <run class="Target">
+        <stdout>
+        <line text="Field one"/>
+        <line text="@Annot1()"/>
+        <line text="@Annot1()"/>
+        <line text="Field two"/>
+        <line text="@Annot2()"/>
+        <line text="no annotations"/>
+        <line text="Field three"/>
+        <line text="@Annot3()"/>
+        <line text="@Annot3()"/>
+        </stdout></run>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr287613" title="compound declare patterns - fields - 1">
+        <compile files="DeclareAnnot.java" options="-1.5"/>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr287613" title="compound declare patterns - methodctor - 1">
+        <compile files="DeclareAnnotMethodCtor.java" options="-1.5"/>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr310506" title="optional aspects">
+     <compile files="Anno.java" outjar="anno.jar" options="-1.5"/>
+     <compile files="AspectA.java" classpath="anno.jar" outjar="aspect.jar" options="-Xlint:ignore -1.5"/>
+     <compile files="AspectB.java" outjar="aspect2.jar" options="-Xlint:ignore -1.5"/>
+     <compile files="Code.java" classpath="code.jar;aspect.jar;aspect2.jar" options="-1.5"/>
+     <file deletefile="anno.jar"/>
+     <run class="Code" ltw="META-INF/aop.xml" classpath=".;aspect.jar;aspect2.jar">
+     <stderr>
+     <line text="AspectJ Weaver Version"/>
+     <line text="register classloader"/>
+     <line text="using configuration"/>
+     <line text="register aspect"/>
+     <line text="deactivating aspect"/>
+     <line text="register aspect"/>     
+     <line text="processing reweavable"/>
+     </stderr>
+     <stdout>
+     <line text="staticinitialization"/>
+     <line text="abcde"/>
+     </stdout>
+     </run>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr310506" title="optional aspects 2">
+     <compile files="Anno.java" outjar="anno.jar" options="-1.5"/>
+     <compile files="AspectA.java" classpath="anno.jar" outjar="aspect.jar" options="-Xlint:ignore -1.5"/>
+     <compile files="AspectB.java" outjar="aspect2.jar" options="-Xlint:ignore -1.5"/>
+     <compile files="Code.java Code2.java" classpath="anno.jar;code.jar;aspect.jar;aspect2.jar" options="-1.5"/>
+     <run class="Code2" ltw="META-INF/aop.xml" classpath=".;aspect.jar;aspect2.jar">
+     <stderr>
+     <line text="AspectJ Weaver Version"/>
+     <line text="register classloader"/>
+     <line text="using configuration"/>
+     <line text="register aspect"/>
+     <line text="register aspect"/>     
+     <line text="processing reweavable"/>
+     <line text="processing reweavable"/>
+     </stderr>
+     <stdout>
+     <line text="staticinitialization"/>
+     <line text="A"/>
+     <line text="abcde"/>
+     </stdout>
+     </run>
+  </ajc-test>
+
+  <ajc-test dir="bugs169/pr315651" title="infinite loop">
+     <compile files="test/Profiling.aj test/Main.java" options="-1.5"/>
+     <run class="test.Main"/>
+  </ajc-test>
+
+  <ajc-test dir="bugs169/pr314965" title="anno typo">
+     <compile files="MinimalExample.java" options="-1.5">
+       <message kind="warning" text="no match for this type name: AnnotationWithParamAndTypo [Xlint:invalidAbsoluteTypeName]"/>
+     </compile>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr314840" title="validate branch recursion">
+     <compile files="Arguments.aj Test1.java Test2.java Test.java" options="-1.5"/>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr313026/one" title="clashing declare annos">
+     <compile files="Target.java Asp.java Bsp.java Wibble.java Precedence1.java" options="-1.5 -Xlint:ignore"/>
+     <run class="Target">
+       <stdout>
+         <line text="@Wibble(value=abc)"/>
+       </stdout>
+     </run>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr312839/one" title="class file size - 1">
+     <compile files="Class.java X.aj" options="-1.5"/>
+     <run class="com.wibble.foo.Class">
+       <stdout>
+         <line text="Hello Andy"/>
+       </stdout>
+     </run>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr122460/one" title="scoping ltw - 3">
+     <compile files="A.java" options="-1.5 -Xlint:ignore" outjar="aspects.jar"/>
+     <compile files="Code.java Runner.java"/>
+     <run class="code.Code" ltw="aop_none.xml" classpath="aspects.jar">
+     <stdout>
+     <line text="running"/>
+     </stdout>
+     </run>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr122460/one" title="scoping ltw - 1">
+     <compile files="A.java" options="-1.5 -Xlint:ignore" outjar="aspects.jar"/>
+     <compile files="Code.java Runner.java"/>
+     <run class="code.Code" ltw="aop.xml" classpath="aspects.jar">
+     <stdout>
+     <line text="intercepted class code.Code"/>
+     <line text="intercepted class runner.Runner"/>
+     <line text="running"/>
+     </stdout>
+     </run>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr122460/one" title="scoping ltw - 2">
+     <compile files="A.java" options="-1.5 -Xlint:ignore" outjar="aspects.jar"/>
+     <compile files="Code.java Runner.java"/>
+     <run class="code.Code" ltw="aop_codeonly.xml" classpath="aspects.jar">
+     <stdout>
+     <line text="intercepted class code.Code"/>
+     <line text="running"/>
+     </stdout>
+     </run>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr307009" title="declare soft and call - 1">
+       <compile files="Test.java Test2.java Ann.java Bug.aj" options="-1.5 -showWeaveInfo">
+               <message kind="weave" text="Softening exceptions in type 'Test' (Test.java:4) as defined by aspect 'Bug' (Bug.aj:3)"/>
+       </compile>
+   </ajc-test>
+
+   <ajc-test dir="bugs169/pr307009" title="declare soft and call - 2">
+       <compile files="Test2.java Test.java Ann.java Bug.aj" options="-1.5 -showWeaveInfo">
+               <message kind="weave" text="Softening exceptions in type 'Test' (Test.java:4) as defined by aspect 'Bug' (Bug.aj:3)"/>
+       </compile>
+   </ajc-test>
+   
+   <ajc-test dir="bugs169/pr310043" title="rogue error">
+       <compile files="B.java" classpath="code.jar" aspectpath="code.jar"/>
+   </ajc-test>
+   
+   <ajc-test dir="bugs169/pr309743" title="itd marker annotations - 1">
+     <compile files="A.java" options="-1.5"/>
+     <run class="A">
+       <stdout>
+         <line text="foo"/>
+       </stdout>
+     </run>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr309743" title="itd marker annotations - 2">
+     <compile files="B.java" options="-1.5"/>
+     <run class="B">
+       <stdout>
+         <line text="boo"/>
+       </stdout>
+     </run>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr309336" title="pipelining and generics">
+     <compile files="NoSystemStreams.aj UseOperators.java Operators.java" options="-1.5">
+       <message kind="warning" text="No system.out"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr308773" title="subtle generics problem">
+     <compile files="Aspy.aj Zzz.java Top.java Middle.java" options="-1.5"/>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr307147" title="advising privileged access method">
+     <compile files="B.java Test2.java" options="-showWeaveInfo">
+       <message kind="weave" text="Type 'B' (B.java) has intertyped method from 'Test'"/>
+       <message kind="weave" text="Join point 'field-get(int A.goo)' in Type 'Test'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr307120" title="advising privileged access member">
+     <compile files="A.java Test.java" options="-showWeaveInfo">
+       <message kind="weave" text="Type 'A' (A.java) has intertyped method from 'Test'"/> <!-- getFoo and getGoo -->
+       <message kind="weave" text="Join point 'field-get(int A.goo)' in Type 'Test'"/>
+       <message kind="weave" text="Join point 'field-get(int A.foo)' in Type 'Test'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr309440" title="crash param annos">
+     <compile files="foobar/ExportMode.java" classpath="jsr305.jar" options="-1.6"/>
+     <compile files="foobar/CrashAspectJCompiler.java" classpath="jsr305.jar" options="-1.6"/>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr307120" title="advising privileged access member - 2">
+     <compile files="Test.java A.java" options="-showWeaveInfo">
+       <message kind="weave" text="Type 'A' (A.java) has intertyped method from 'Test'"/> <!-- getFoo and getGoo -->
+       <message kind="weave" text="Join point 'field-get(int A.goo)' in Type 'Test'"/>
+       <message kind="weave" text="Join point 'field-get(int A.foo)' in Type 'Test'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr292262" title="if with statically recognizable code">
+     <compile files="A.java">
+       <message kind="weave" text="Join point 'staticinitialization(void SimpleClass.&lt;clinit&gt;())' in Type 'SimpleClass'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - class">
+     <compile files="SimpleClass.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'staticinitialization(void SimpleClass.&lt;clinit&gt;())' in Type 'SimpleClass'"/>
+       <message kind="weave" text="Join point 'staticinitialization(void Bar.&lt;clinit&gt;())' in Type 'Bar'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - interface">
+     <compile files="SimpleInterface.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'staticinitialization(void Foo.&lt;clinit&gt;())' in Type 'Foo'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - enum">
+     <compile files="SimpleEnum.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'staticinitialization(void Foo.&lt;clinit&gt;())' in Type 'Foo'"/>
+     </compile>
+  </ajc-test>
+   
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - annotation">
+     <compile files="SimpleAnnotation.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'staticinitialization(void WibbleAnno.&lt;clinit&gt;())' in Type 'WibbleAnno'"/>
+     </compile>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr44365" title="type category type patterns - anonymous">
+     <compile files="SimpleAnonymous.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'staticinitialization(void Bar$1.&lt;clinit&gt;())' in Type 'Bar$1'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - inner">
+     <compile files="SimpleInner.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'staticinitialization(void Bar$Inner.&lt;clinit&gt;())' in Type 'Bar$Inner'"/>
+       <message kind="weave" text="Join point 'staticinitialization(void Bar$1.&lt;clinit&gt;())' in Type 'Bar$1'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - inner - 2">
+     <compile files="SimpleInner2.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'staticinitialization(void Bar$Inner.&lt;clinit&gt;())' in Type 'Bar$Inner'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - inner - 3">
+     <compile files="SimpleInner3.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'method-execution(void Bar$Inner.foo())' in Type 'Bar$Inner' (SimpleInner3.java:12) advised"/>
+     </compile>
+  </ajc-test>
+   
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - aspect">
+     <compile files="SimpleAspect.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'staticinitialization(void X.&lt;clinit&gt;())' in Type 'X'"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - e1">
+     <compile files="Errors1.java" options="-1.5 -showWeaveInfo">
+       <message kind="error" text="Syntax error on token &quot;(&quot;, &quot;)"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - e2">
+     <compile files="Errors5.java" options="-1.5 -showWeaveInfo">
+       <message kind="error" text="Syntax error on token &quot;)&quot;, &quot;(&quot; expected"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr44365" title="type category type patterns - e3">
+     <compile files="Errors2.java" options="-1.5 -showWeaveInfo">
+       <message kind="weave" text="Join point 'method-execution(void Errors2.is(java.lang.String))' in Type"/>
+     </compile>
+  </ajc-test>
+
+   <ajc-test dir="bugs169/pr48080" title="inserts in messages">
+     <compile files="Warnings.java" options="-1.5">
+       <message kind="warning" text="UNKNOWN_KEY{}foobar"/>
+       <message kind="warning" text="{}wibble"/>
+       <message kind="warning" text="signature name for method is m"/>
+       <message kind="warning" text="joinpoint declaring type is p.A"/>
+       <message kind="warning" text="joinpoint signature is void p.A.m()"/>
+       <message kind="warning" text="joinpoint line is '23'"/>
+       <message kind="warning" text="joinpoint kind is method-execution"/>
+       <message kind="warning" text="joinpoint kind is 'method-execution'"/>
+       <message kind="warning" text="joinpoint is method-execution(void p.A.m())"/>
+       <message kind="warning" text="joinpoint location is"/>
+       <message kind="warning" text="signature name for field is i"/>
+       <message kind="warning" text="joinpoint signature is int p.A.i"/>
+       <message kind="warning" text="aspect is p.Checker"/>
+       <message kind="warning" text="advice sourcelocation is"/>
+       <message kind="warning" text="test 18{}23"/>
+     </compile>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr299062" title="verifyerror on atAj">
+     <compile files="Test.java Work.java SmartAspect.java Idempotent.java" options="-1.5"/>
+     <run class="Test">
+     </run>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr298665" title="ambiguous method">
+     <compile files="Main.java" options="-1.5"/>
+     <run class="Main">
+     </run>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr298388" title="declare mixin and generics">
+     <compile files="PR298388.java" options="-1.5"/>
+     <run class="PR298388">
+       <stdout>
+         <line text="done"/>
+       </stdout>
+     </run>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr295491" title="model annotation npe">
+     <compile files="SpringConfigurableMixin.java" options="-1.5 -emacssym"/>
+  </ajc-test>
+  
+   <ajc-test dir="bugs169/pr292584" title="annotation around advice verifyerror">
+     <compile files="AbstractAspect.java,ClassWithJoinPoint.java,ConcreteAspect.java" options="-1.5"/>
+     <run class="ClassWithJoinPoint">
+       <stdout>
+         <line text="Testing annotation style (should print &quot;true&quot;):"/>
+         <line text="true"/>
+       </stdout>
+     </run>
+  </ajc-test>
+  
+  <!-- declare type warning -->
+  
+  <ajc-test dir="bugs169/pr291206" title="declare type warning - 1">
+     <compile files="One.java" options="-1.5">
+       <message kind="warning" line="8" text="Nothing should be"/>
+     </compile>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr291206" title="declare type warning - 2">
+     <compile files="Two.java" options="-1.5">
+       <message kind="warning" line="7" text="Missing foo()"/>
+       <message kind="warning" line="13" text="Missing foo()"/>
+     </compile>
+  </ajc-test>
+  
+  <!-- testing build of model with one of these in -->
+  <ajc-test dir="bugs169/pr291206" title="declare type warning - 3">
+     <compile files="Two.java" options="-1.5 -emacssym">
+       <message kind="warning" line="7" text="Missing foo()"/>
+       <message kind="warning" line="13" text="Missing foo()"/>
+     </compile>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr291206" title="declare type error - 1">
+     <compile files="Three.java" options="-1.5">
+       <message kind="error" line="7" text="Missing foo()"/>
+       <message kind="error" line="13" text="Missing foo()"/>
+     </compile>
+  </ajc-test>
+  
+</suite>
\ No newline at end of file
index 2976e5f190a6496271c7a7c5810c6e830a1a863d..871e444044df519bde7d322b373d965c24bab233 100644 (file)
@@ -203,4 +203,11 @@ public class AbstractMultiProjectIncrementalAjdeInteractionTestbed extends AjdeI
                                        + " in the aop.xml file but found " + aspectCount + " occurrences");
                }
        }
+
+       protected void assertContains(String expectedSubstring, Object object) {
+               String actualString = object.toString();
+               if (actualString.indexOf(expectedSubstring) == -1) {
+                       fail("Expected to find '" + expectedSubstring + "' in '" + actualString + "'");
+               }
+       }
 }
diff --git a/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java b/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java
new file mode 100644 (file)
index 0000000..38e6b48
--- /dev/null
@@ -0,0 +1,54 @@
+/********************************************************************
+ * Copyright (c) 2010 Contributors. All rights reserved. 
+ * This program and the accompanying materials are made available 
+ * under the terms of the Eclipse Public License v1.0 
+ * which accompanies this distribution and is available at 
+ * http://eclipse.org/legal/epl-v10.html 
+ *  
+ * Contributors: 
+ *     Andy Clement (SpringSource)         initial implementation
+ *******************************************************************/
+package org.aspectj.systemtest.incremental.tools;
+
+/**
+ * Incremental compilation tests. MultiProjectIncrementalTests was getting unwieldy - started this new test class for 1.6.10.
+ * 
+ * @author Andy Clement
+ * @since 1.6.10
+ */
+public class IncrementalCompilationTests extends AbstractMultiProjectIncrementalAjdeInteractionTestbed {
+
+       /**
+        * Build a pair of files, then change the throws clause in the first one (add a throws clause where there wasnt one). The second
+        * file should now have a 'unhandled exception' error on it.
+        */
+       public void testModifiedThrowsClauseShouldTriggerError_318884() throws Exception {
+               String p = "pr318884_1";
+               initialiseProject(p);
+               build(p);
+               checkWasFullBuild();
+               checkCompileWeaveCount(p, 2, 2);
+               alter(p, "inc1");
+               build(p);
+               checkWasntFullBuild();
+               assertEquals(1, getErrorMessages(p).size());
+               assertContains("B.java:4:0::0 Unhandled exception type IOException", getErrorMessages(p).get(0));
+       }
+
+       /**
+        * Build a pair of files, then change the throws clause in the first one (change the type of the thrown exception). The second
+        * file should now have a 'unhandled exception' error on it.
+        */
+       public void testModifiedThrowsClauseShouldTriggerError_318884_2() throws Exception {
+               String p = "pr318884_2";
+               initialiseProject(p);
+               build(p);
+               checkWasFullBuild();
+               checkCompileWeaveCount(p, 2, 2);
+               alter(p, "inc1");
+               build(p);
+               checkWasntFullBuild();
+               assertEquals(1, getErrorMessages(p).size());
+               assertContains("B.java:4:0::0 Unhandled exception type Exception", getErrorMessages(p).get(0));
+       }
+}