diff options
Diffstat (limited to 'tests/new/cflowAdviceNoSource/Driver.java')
-rw-r--r-- | tests/new/cflowAdviceNoSource/Driver.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/new/cflowAdviceNoSource/Driver.java b/tests/new/cflowAdviceNoSource/Driver.java new file mode 100644 index 000000000..1fd246dd3 --- /dev/null +++ b/tests/new/cflowAdviceNoSource/Driver.java @@ -0,0 +1,29 @@ + +import org.aspectj.testing.Tester; + +// PR#285 cflow advice with no source + +public class Driver { + + public static String s = ""; + + public static void main(String[] args){ test(); } + + public static void test() { + new Driver().go(); + Tester.checkEqual(s, "-go-advised", "advice runs"); + } + + int go(){ + s += "-go"; + return Math.max(1, 3); + } +} + +aspect A of eachcflow(instanceof(Driver) && executions(* go(..))) { + + before (): calls(* Math.*(..)) && ! calls(* Driver.go()) && ! calls(* Driver.test()) { + Driver.s += "-advised"; + } +} + |