aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2008-07-17 20:08:03 +0000
committeraclement <aclement>2008-07-17 20:08:03 +0000
commit1e6310e5b532fddaf538e569439eaf39290e21cc (patch)
treed4a20a460d873e22a3f6bf9efde90a9b413904ad
parenteeb2e60d0777af6cbcbc92efe467acaa1c12f123 (diff)
downloadaspectj-1e6310e5b532fddaf538e569439eaf39290e21cc.tar.gz
aspectj-1e6310e5b532fddaf538e569439eaf39290e21cc.zip
240360 - test and fix for -proceedOnError and weaving in the face of broken source
-rw-r--r--tests/multiIncremental/pr240360/base/test/Base.java28
-rw-r--r--tests/multiIncremental/pr240360/base/test/Error.java5
-rw-r--r--tests/multiIncremental/pr240360/base/test/Sub.java33
-rw-r--r--tests/multiIncremental/pr240360/base/test/TestIt.java10
-rw-r--r--tests/multiIncremental/pr240360/base/test/aj/ModelAspect.aj12
-rw-r--r--tests/multiIncremental/pr240360/inc1/test/Error.java5
-rw-r--r--tests/multiIncremental/pr240360/inc2/test/aj/ModelAspect.aj13
-rw-r--r--tests/src/org/aspectj/systemtest/ajc161/ajc161.xml4
-rw-r--r--tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java41
9 files changed, 148 insertions, 3 deletions
diff --git a/tests/multiIncremental/pr240360/base/test/Base.java b/tests/multiIncremental/pr240360/base/test/Base.java
new file mode 100644
index 000000000..fe9a5e681
--- /dev/null
+++ b/tests/multiIncremental/pr240360/base/test/Base.java
@@ -0,0 +1,28 @@
+package test;
+
+public class Base {
+ private int id;
+ private String value;
+
+ public Base(int id, String value) {
+ super();
+ this.id = id;
+ this.value = value;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
diff --git a/tests/multiIncremental/pr240360/base/test/Error.java b/tests/multiIncremental/pr240360/base/test/Error.java
new file mode 100644
index 000000000..0e01e5e30
--- /dev/null
+++ b/tests/multiIncremental/pr240360/base/test/Error.java
@@ -0,0 +1,5 @@
+package test;
+
+public class Error {
+asdf
+}
diff --git a/tests/multiIncremental/pr240360/base/test/Sub.java b/tests/multiIncremental/pr240360/base/test/Sub.java
new file mode 100644
index 000000000..342d06e03
--- /dev/null
+++ b/tests/multiIncremental/pr240360/base/test/Sub.java
@@ -0,0 +1,33 @@
+package test;
+
+public class Sub extends Base {
+ private int numValue;
+
+ private String description;
+
+ public Sub(int id, String value, String description, int numValue) {
+ super(id, value);
+ this.description = description;
+ this.numValue = numValue;
+ }
+
+ public int getNumValue() {
+ return numValue;
+ }
+
+ public void setNumValue(int numValue) {
+ this.numValue = numValue;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public void other() {
+// blah;
+ }
+}
diff --git a/tests/multiIncremental/pr240360/base/test/TestIt.java b/tests/multiIncremental/pr240360/base/test/TestIt.java
new file mode 100644
index 000000000..28d4dc71a
--- /dev/null
+++ b/tests/multiIncremental/pr240360/base/test/TestIt.java
@@ -0,0 +1,10 @@
+package test;
+
+public class TestIt {
+ public static void main(String[] args) {
+ Sub s = new Sub(3, "testValue", "Desc", 17);
+ s.setValue("another value");
+ s.setDescription("blue");
+ System.out.println("done.");
+ }
+}
diff --git a/tests/multiIncremental/pr240360/base/test/aj/ModelAspect.aj b/tests/multiIncremental/pr240360/base/test/aj/ModelAspect.aj
new file mode 100644
index 000000000..f71995b77
--- /dev/null
+++ b/tests/multiIncremental/pr240360/base/test/aj/ModelAspect.aj
@@ -0,0 +1,12 @@
+package test.aj;
+
+import test.Base;
+
+
+public aspect ModelAspect {
+ pointcut setter(Base o, Object v): set(* Base+.*) && target(o) && args(v);
+
+ void around(Base o, Object v) : setter(o, v) {
+ System.out.println(o + ": " +thisJoinPoint.getSignature().getName()+", "+v);
+ }
+}
diff --git a/tests/multiIncremental/pr240360/inc1/test/Error.java b/tests/multiIncremental/pr240360/inc1/test/Error.java
new file mode 100644
index 000000000..0e01e5e30
--- /dev/null
+++ b/tests/multiIncremental/pr240360/inc1/test/Error.java
@@ -0,0 +1,5 @@
+package test;
+
+public class Error {
+asdf
+}
diff --git a/tests/multiIncremental/pr240360/inc2/test/aj/ModelAspect.aj b/tests/multiIncremental/pr240360/inc2/test/aj/ModelAspect.aj
new file mode 100644
index 000000000..130089e3e
--- /dev/null
+++ b/tests/multiIncremental/pr240360/inc2/test/aj/ModelAspect.aj
@@ -0,0 +1,13 @@
+package test.aj;
+
+import test.Base;
+
+
+public aspect ModelAspect {
+ pointcut setter(Base o, Object v): set(* Base+.*) && target(o) && args(v);
+
+ void around(Base o, Object v) : setter(o, v) {
+System.out.println("Advice changed");
+ System.out.println(o + ": " +thisJoinPoint.getSignature().getName()+", "+v);
+ }
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc161/ajc161.xml b/tests/src/org/aspectj/systemtest/ajc161/ajc161.xml
index b28941e6a..29a3448e0 100644
--- a/tests/src/org/aspectj/systemtest/ajc161/ajc161.xml
+++ b/tests/src/org/aspectj/systemtest/ajc161/ajc161.xml
@@ -66,14 +66,14 @@
</ajc-test>
<ajc-test dir="bugs161/pr102733" title="running broken code">
- <compile files="Invoker.java C.java" options="">
+ <compile files="Invoker.java C.java" options="-proceedOnError">
<message kind="error" line="2" text="Syntax error"/>
</compile>
<run class="Invoker"/>
</ajc-test>
<ajc-test dir="bugs161/pr102733" title="running broken code - 2">
- <compile files="Invoker2.java C2.java" options="">
+ <compile files="Invoker2.java C2.java" options="-proceedOnError">
<message kind="error" line="5"/>
</compile>
<run class="Invoker2"/>
diff --git a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
index 317dc6c9a..aaf74b812 100644
--- a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
+++ b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
@@ -251,9 +251,48 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
build("P2");
checkWasntFullBuild();
}
+
+ public void testBuildingBrokenCode_pr240360() {
+ AjdeInteractionTestbed.VERBOSE=true;
+ initialiseProject("pr240360");
+ //configureNonStandardCompileOptions("pr240360","-proceedOnError");
+ build("pr240360");
+ checkWasFullBuild();
+ checkCompileWeaveCount("pr240360",5,4);
+ assertTrue("There should be an error:\n"
+ +getErrorMessages("pr240360"),!getErrorMessages("pr240360").isEmpty());
+
+ Set s = AsmManager.getDefault().getRelationshipMap().getEntries();
+ int relmapLength = s.size();
+
+ // Delete the erroneous type
+ String f = getWorkingDir().getAbsolutePath() + File.separatorChar + "pr240360" + File.separatorChar + "src" + File.separatorChar + "test" + File.separatorChar + "Error.java";
+ (new File(f)).delete();
+ build("pr240360");
+ checkWasntFullBuild();
+ checkCompileWeaveCount("pr240360",0,0);
+ assertEquals(relmapLength,AsmManager.getDefault().getRelationshipMap().getEntries().size());
+
+ // Readd the erroneous type
+ alter("pr240360","inc1");
+ build("pr240360");
+ checkWasntFullBuild();
+ checkCompileWeaveCount("pr240360",1,0);
+ assertEquals(relmapLength,AsmManager.getDefault().getRelationshipMap().getEntries().size());
+
+ // Change the advice
+ alter("pr240360","inc2");
+ build("pr240360");
+ checkWasFullBuild();
+ checkCompileWeaveCount("pr240360",6,4);
+ assertEquals(relmapLength,AsmManager.getDefault().getRelationshipMap().getEntries().size());
+
+ }
+
public void testBrokenCodeCompilation() {
initialiseProject("pr102733_1");
+// configureNonStandardCompileOptions("pr102733_1","-proceedOnError");
build("pr102733_1");
checkWasFullBuild();
checkCompileWeaveCount("pr102733_1",1,0);
@@ -632,7 +671,7 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
initialiseProject("pr117209");
configureNonStandardCompileOptions("pr117209","-proceedOnError");
build("pr117209");
- checkCompileWeaveCount("pr117209",6,6);
+ checkCompileWeaveCount("pr117209",6,5);
} finally {
//MyBuildOptionsAdapter.reset();
}