diff options
author | wisberg <wisberg> | 2002-12-16 18:51:06 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2002-12-16 18:51:06 +0000 |
commit | 144143c2970a1e874d74cdbd0f8c622d4282a3c3 (patch) | |
tree | b12383d3d9e76c7e1f25f7fbec83051ef17f81fb /tests/pureJava/IntroducedAssertion.java | |
parent | fafae443719b26159ab2d7dac1c9b46b5e00b671 (diff) | |
download | aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip |
initial version
Diffstat (limited to 'tests/pureJava/IntroducedAssertion.java')
-rw-r--r-- | tests/pureJava/IntroducedAssertion.java | 68 |
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 ; + } + */ +} + |