aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authoraclement <aclement>2004-08-11 13:18:24 +0000
committeraclement <aclement>2004-08-11 13:18:24 +0000
commitd43a39103f476d95cade6b87b604ee4578de25b3 (patch)
tree88f9042ebb174041e88e97688a5ee99cae473aca /tests
parent0f21863d2428663a84d914b928fba56e8baa8f14 (diff)
downloadaspectj-d43a39103f476d95cade6b87b604ee4578de25b3.tar.gz
aspectj-d43a39103f476d95cade6b87b604ee4578de25b3.zip
Tests and fix for Bugzilla Bug 54421
Compile time declarations (warning and error) do not accept string concatenation (with +)
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs/decwStrings.java49
-rw-r--r--tests/bugs/decwStringsErroneous.java29
-rw-r--r--tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java12
-rw-r--r--tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml24
4 files changed, 110 insertions, 4 deletions
diff --git a/tests/bugs/decwStrings.java b/tests/bugs/decwStrings.java
new file mode 100644
index 000000000..ef392a669
--- /dev/null
+++ b/tests/bugs/decwStrings.java
@@ -0,0 +1,49 @@
+class WarningSample {
+
+ public void method() {}
+ public void anotherMethod() {
+ this.method();
+ }
+
+ }
+
+ aspect WarningAspect {
+
+ pointcut illegalCall(): call(* WarningSample.method())
+ && within(WarningSample);
+
+ // the same thing happens with declare error
+ declare warning: illegalCall() : "Hey, don't " +
+ "do that, that is not nice. You should do something else";
+
+ public void e1() {}
+ declare warning: execution(* e1(..)): "hello " + /* comment */ "world";
+
+ public void e2() {}
+ declare warning: execution(* e2(..)): "hello " /* comment */ + "world";
+
+ public void e3() {}
+ declare warning: execution(* e3(..)): "hello " + // commenthere
+ // comment here too
+ "world";
+
+ public void e4() {}
+ declare warning: execution(* e4()): "hello " //xxx
+ + "world";
+
+ public void e5() {}
+ declare warning: execution(* e5()): "hello " //xxx
+ /* here */
+ + "world";
+
+ public void e6() {}
+ declare warning: execution(* e6()): "abc" +
+ "def" + // def was here
+ "ghijklmnopqrstuv" /* silly
+place
+for a
+comment */ +
+/* oops */
+ "wxyz";
+ }
+
diff --git a/tests/bugs/decwStringsErroneous.java b/tests/bugs/decwStringsErroneous.java
new file mode 100644
index 000000000..11664ac98
--- /dev/null
+++ b/tests/bugs/decwStringsErroneous.java
@@ -0,0 +1,29 @@
+class WarningSample {
+
+ public void method() {}
+ public void anotherMethod() {
+ this.method();
+ }
+
+ }
+
+ aspect WarningAspect {
+
+ pointcut illegalCall(): call(* WarningSample.method())
+ && within(WarningSample);
+
+ // the same thing happens with declare error
+ declare warning: illegalCall() : "Hey, don't " +
+ "do that, that is not nice. You should do something else";
+
+ public void e1() {}
+ declare warning: execution(* e1(..)): "hello " + /* comment */ "world"
+
+ public void e2() {}
+ declare warning: execution(* e2(..)): "hello " /* comment + "world";
+
+ public void e3() {}
+ declare warning: execution(* e3(..)): "hello " + // commenthere
+
+ }
+
diff --git a/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java b/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java
index 039dffa0e..805397df1 100644
--- a/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java
@@ -139,7 +139,8 @@ public class Ajc121Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void test025_proceedInAround3() {
runTest("proceed used as method name in around advice (3)");
}
- public void test026_bindingThisAndTargetToTheSameFormal() {
+
+ public void test026_bindingThisAndTargetToTheSameFormal() {
runTest("ajc crashes when compiling the following program (binding this() and target())");
}
@@ -155,7 +156,7 @@ public class Ajc121Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
runTest("Valid but inaccessible type names should not be flagged by XLint:invalidAbsoluteTypeName");
}
- public void test030_privateITDinitialisersBeingMatched() {
+ public void test030_privateITDinitialisersBeingMatched() {
runTest("intertype initialisers should match field set pointcuts");
}
@@ -166,6 +167,13 @@ public class Ajc121Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
assertTrue("Expected output '"+exp+"' but got "+getLastRunResult().getStdErr(),
getLastRunResult().getStdErr().equals(exp));
}
+
+ public void test032_stringConcatForDEOW() {
+ runTest("Compile time declarations (warning and error) do not accept string concatenation (with +)");
+ }
+ public void test033_stringConcatForDEOWErrorCase() {
+ runTest("Compile time declarations (warning and error) do not accept string concatenation (with +) (2)");
+ }
}
diff --git a/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml b/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml
index dc59c31c1..e1c6c5481 100644
--- a/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml
+++ b/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml
@@ -203,7 +203,6 @@
<run class="Proceeding3"/>
</ajc-test>
-
<ajc-test dir="bugs" pr="61572"
title="ITDs on inner classes should be static context">
<compile files="PR61572.aj">
@@ -254,4 +253,25 @@
title="intertype initialisers should match field set pointcuts (oxford testcase)">
<compile files="Oxford.java"/>
<run class="Oxford"/>
- </ajc-test> \ No newline at end of file
+ </ajc-test>
+
+ <ajc-test dir="bugs" pr="54421"
+ title="Compile time declarations (warning and error) do not accept string concatenation (with +)">
+ <compile files="decwStrings.java">
+ <message kind="warning" line="5"/>
+ <message kind="warning" line="19" text="hello world"/>
+ <message kind="warning" line="22" text="hello world"/>
+ <message kind="warning" line="25" text="hello world"/>
+ <message kind="warning" line="30" text="hello world"/>
+ <message kind="warning" line="34" text="hello world"/>
+ <message kind="warning" line="39" text="abcdefghijklmnopqrstuvwxyz"/>
+ </compile>
+ </ajc-test>
+
+ <ajc-test dir="bugs" pr="54421"
+ title="Compile time declarations (warning and error) do not accept string concatenation (with +) (2)">
+ <compile files="decwStringsErroneous.java">
+ <message kind="error" line="22"/>
+ </compile>
+ </ajc-test>
+