diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ajcTestsFailing.xml | 21 | ||||
-rw-r--r-- | tests/bugs/fieldsOnInterfaces/IntFieldOnInterface.java | 37 | ||||
-rw-r--r-- | tests/bugs/fieldsOnInterfaces/ObjectFieldOnInterface.java | 24 | ||||
-rw-r--r-- | tests/bugs/fieldsOnInterfaces/StringFieldOnInterface.java | 21 |
4 files changed, 103 insertions, 0 deletions
diff --git a/tests/ajcTestsFailing.xml b/tests/ajcTestsFailing.xml index 27079b95d..33a3a5d14 100644 --- a/tests/ajcTestsFailing.xml +++ b/tests/ajcTestsFailing.xml @@ -139,4 +139,25 @@ <run class="main.Driver"/> </ajc-test> + <ajc-test dir="bugs/fieldsOnInterfaces" + pr="52107" + title="declare String field on interface"> + <compile files="StringFieldOnInterface.java"/> + <run class="StringFieldOnInterface"/> + </ajc-test> + + <ajc-test dir="bugs/fieldsOnInterfaces" + pr="52107" + title="declare int field on interface"> + <compile files="IntFieldOnInterface.java"/> + <run class="IntFieldOnInterface"/> + </ajc-test> + + <ajc-test dir="bugs/fieldsOnInterfaces" + pr="52107" + title="declare Object field on interface"> + <compile files="ObjectFieldOnInterface.java"/> + <run class="ObjectFieldOnInterface"/> + </ajc-test> + </suite> diff --git a/tests/bugs/fieldsOnInterfaces/IntFieldOnInterface.java b/tests/bugs/fieldsOnInterfaces/IntFieldOnInterface.java new file mode 100644 index 000000000..9d9f7e205 --- /dev/null +++ b/tests/bugs/fieldsOnInterfaces/IntFieldOnInterface.java @@ -0,0 +1,37 @@ +import org.aspectj.testing.Tester; + +/** @testcase PR#52107 declare int field on interface */ +public class IntFieldOnInterface implements Runnable { + public static final int caseid = 2; + public static void main(String[] args) { + Tester.expectEvent("A name=2"); + Tester.expectEvent("R name=2"); + IntFieldOnInterface test + = new IntFieldOnInterface(); + test.run(); + test.blah(); + Tester.checkAllEvents(); + } + public void run() { + switch (name) { + case (IntFieldOnInterface.caseid) : + Tester.event("R name=" + name); + break; + default : + throw new Error("bad switch"); + } + } +} + +aspect A { + public int Runnable.name = IntFieldOnInterface.caseid; + public void Runnable.blah() { + switch (name) { + case (IntFieldOnInterface.caseid) : + Tester.event("A name=" + name); + break; + default : + throw new Error("bad switch"); + } + } +}
\ No newline at end of file diff --git a/tests/bugs/fieldsOnInterfaces/ObjectFieldOnInterface.java b/tests/bugs/fieldsOnInterfaces/ObjectFieldOnInterface.java new file mode 100644 index 000000000..0bc84acf9 --- /dev/null +++ b/tests/bugs/fieldsOnInterfaces/ObjectFieldOnInterface.java @@ -0,0 +1,24 @@ + +import org.aspectj.testing.Tester; + +/** @testcase PR#52107 declare Object field on interface */ +public class ObjectFieldOnInterface implements Runnable { + public static void main(String[] args) { + Tester.expectEvent("class(A): java.lang.Object"); + Tester.expectEvent("class(R): java.lang.Object"); + ObjectFieldOnInterface test + = new ObjectFieldOnInterface(); + test.blah(); + Tester.event("class(R): " + test.object.getClass().getName()); + Tester.checkAllEvents(); + } + public void run() { + } +} + +aspect A { + public Object Runnable.object = new Object(); + public void Runnable.blah() { + Tester.event("class(A): " + object.getClass().getName()); + } +}
\ No newline at end of file diff --git a/tests/bugs/fieldsOnInterfaces/StringFieldOnInterface.java b/tests/bugs/fieldsOnInterfaces/StringFieldOnInterface.java new file mode 100644 index 000000000..5f4a3c528 --- /dev/null +++ b/tests/bugs/fieldsOnInterfaces/StringFieldOnInterface.java @@ -0,0 +1,21 @@ + +import org.aspectj.testing.Tester; + +/** @testcase PR#52107 declare String field on interface */ +public class StringFieldOnInterface implements Runnable { + public static void main(String[] args) { + Tester.expectEvent("length=1"); + new StringFieldOnInterface().blah(); + Tester.checkAllEvents(); + } + public void run() { + } +} + +aspect A { + public String Runnable.name = "a"; + public void Runnable.blah() { + int i = name.length(); + Tester.event("length="+i); + } +}
\ No newline at end of file |