summaryrefslogtreecommitdiffstats
path: root/tests/pureJava/IntroducedAssertion.java
diff options
context:
space:
mode:
authorwisberg <wisberg>2002-12-16 18:51:06 +0000
committerwisberg <wisberg>2002-12-16 18:51:06 +0000
commit144143c2970a1e874d74cdbd0f8c622d4282a3c3 (patch)
treeb12383d3d9e76c7e1f25f7fbec83051ef17f81fb /tests/pureJava/IntroducedAssertion.java
parentfafae443719b26159ab2d7dac1c9b46b5e00b671 (diff)
downloadaspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz
aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip
initial version
Diffstat (limited to 'tests/pureJava/IntroducedAssertion.java')
-rw-r--r--tests/pureJava/IntroducedAssertion.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/pureJava/IntroducedAssertion.java b/tests/pureJava/IntroducedAssertion.java
new file mode 100644
index 000000000..e325a6fb9
--- /dev/null
+++ b/tests/pureJava/IntroducedAssertion.java
@@ -0,0 +1,68 @@
+import org.aspectj.testing.Tester;
+
+/** @testcase PUREJAVA PR#725 asserts in aspect and declared methods */
+public class IntroducedAssertion {
+ public static void main (String[] args) {
+ IntroducedAssertion.class.getClassLoader().setClassAssertionStatus("A", true);
+ IntroducedAssertion.class.getClassLoader().setClassAssertionStatus("B", true);
+
+ boolean result = false;
+ try {
+ C.method(null);
+ } catch (AssertionError e) {
+ result = true;
+ }
+ Tester.check(result, "no assert: C.method(null)");
+
+ result = false;
+ try {
+ new C(); // field initializer
+ } catch (AssertionError e) {
+ result = true;
+ }
+ Tester.check(result, "no assert: new C()");
+
+ result = false;
+ try {
+ new D().method(null);
+ } catch (AssertionError e) {
+ result = true;
+ }
+ Tester.check(result, "no assert: new D().method(null)");
+ }
+}
+
+class C {}
+class D {}
+
+aspect B {
+ int C.i = method(null);
+
+ // assertion in any introduced code conflicts with any local
+ static int C.method( Object o) {
+ assert o != null ;
+ return 0;
+ }
+}
+aspect A {
+
+ void D.method( Object o) {
+ assert o != null ;
+ }
+
+ // assertion in any introduced method conflicts with any local
+ void method() {
+ assert null != System.getProperty("java.version");
+ }
+
+ // XXX build test cases for other local variants - these work
+ /*
+ static {
+ assert null != System.getProperty("java.version");
+ }
+ static void aStaticMethod( Object parameter ) {
+ assert parameter != null ;
+ }
+ */
+}
+