From cb775240056309c20aac308be5ab2abd9696be84 Mon Sep 17 00:00:00 2001 From: jhugunin Date: Wed, 5 Mar 2003 21:46:49 +0000 Subject: [PATCH] Bugzilla Bug 33635 Negation of if pointcut does not work --- tests/bugs/NotIf.java | 49 +++++++++++++++++++ tests/jimTests.xml | 7 +++ .../aspectj/weaver/patterns/IfPointcut.java | 24 ++++++--- 3 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 tests/bugs/NotIf.java diff --git a/tests/bugs/NotIf.java b/tests/bugs/NotIf.java new file mode 100644 index 000000000..3220104c7 --- /dev/null +++ b/tests/bugs/NotIf.java @@ -0,0 +1,49 @@ +// for Bug#: 33635 +import org.aspectj.testing.Tester; + + +public class NotIf { + public static void main(String[] args) { + Tester.checkEqual(Aspect1.ranNone, 0, "shouldn't run"); + Tester.checkEqual(Aspect1.ranTwo, 2, "should run"); + Tester.checkEqual(Aspect2.ran, 1, "should run with values"); + } +} + +aspect Aspect1 { + static int ranNone = 0; + static int ranTwo = 0; + + static boolean testTrue() { return true; } + + static boolean testFalse() { return false; } + + before(): execution(void main(..)) && !if(testTrue()) { + ranNone += 1; + } + + before(): execution(void main(..)) && if(!testTrue()) { + ranNone += 1; + } + before(): execution(void main(..)) && !if(testFalse()) { + ranTwo += 1; + } + + before(): execution(void main(..)) && if(!testFalse()) { + ranTwo += 1; + } +} + +aspect Aspect2 { + static int ran = 0; + + static boolean testValues(int i, String s, Object o) { + return false; + } + + before(String[] a): execution(void main(String[])) && + !if(testValues(a.length, a.toString(), a)) && args(a) + { + ran += 1; + } +} diff --git a/tests/jimTests.xml b/tests/jimTests.xml index e7e9b8b97..6306ec843 100644 --- a/tests/jimTests.xml +++ b/tests/jimTests.xml @@ -1,6 +1,13 @@ + + + + + +