diff options
author | jhugunin <jhugunin> | 2003-03-05 21:46:49 +0000 |
---|---|---|
committer | jhugunin <jhugunin> | 2003-03-05 21:46:49 +0000 |
commit | cb775240056309c20aac308be5ab2abd9696be84 (patch) | |
tree | 8fd9d7849d91e868d52048f1cb862d57ba8f5e20 /tests/bugs/NotIf.java | |
parent | 769afc68966b6ea101dfebca14c6d67bd426bfa0 (diff) | |
download | aspectj-cb775240056309c20aac308be5ab2abd9696be84.tar.gz aspectj-cb775240056309c20aac308be5ab2abd9696be84.zip |
Bugzilla Bug 33635
Negation of if pointcut does not work
Diffstat (limited to 'tests/bugs/NotIf.java')
-rw-r--r-- | tests/bugs/NotIf.java | 49 |
1 files changed, 49 insertions, 0 deletions
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; + } +} |