diff options
Diffstat (limited to 'tests/new/CflowInitInAspectVariantsAfter.java')
-rw-r--r-- | tests/new/CflowInitInAspectVariantsAfter.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/new/CflowInitInAspectVariantsAfter.java b/tests/new/CflowInitInAspectVariantsAfter.java new file mode 100644 index 000000000..51093d86c --- /dev/null +++ b/tests/new/CflowInitInAspectVariantsAfter.java @@ -0,0 +1,36 @@ +import org.aspectj.testing.Tester; + +public class CflowInitInAspectVariantsAfter { + public static void main(String[] args) { + new C().a(); + Tester.checkAllEventsIgnoreDups(); + } + static { + Tester.expectEvent("cflow after pc()"); + Tester.expectEvent("cflow after execution(void C.a())"); + Tester.expectEvent("cflowbelow after pc()"); + Tester.expectEvent("cflowbelow after execution(void C.a())"); + } +} +class C { + void a() {b();} + private void b() {int i = 1;} // avoid later optimizations +} + +aspect A { + + pointcut safety() : !within(A); + pointcut pc() : execution(void C.a()); + after() : safety() && cflow(pc()) { + Tester.event("cflow after pc()"); + } + after() : safety() && cflow(execution(void C.a())) { + Tester.event("cflow after execution(void C.a())"); + } + after() : safety() && cflowbelow(pc()) { + Tester.event("cflowbelow after pc()"); + } + after() : safety() && cflowbelow(execution(void C.a())) { + Tester.event("cflowbelow after execution(void C.a())"); + } +} |