diff options
Diffstat (limited to 'tests/new/AssignOps.java')
-rw-r--r-- | tests/new/AssignOps.java | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/tests/new/AssignOps.java b/tests/new/AssignOps.java new file mode 100644 index 000000000..f33d1dd05 --- /dev/null +++ b/tests/new/AssignOps.java @@ -0,0 +1,152 @@ +import org.aspectj.testing.Tester; +import org.aspectj.testing.Tester; + +aspect A { + static boolean start = false; + static int bset; + static int bget; + static int siset; + static int siget; + static int iset; + static int iget; + static void start() { + siset = siget = iset = iget = 0; + start = true; + } + static String p() { + return + " siset=" + siset + + " siget=" + siget + + " iset=" + iset + + " iget=" + iget ; + } + before() : get(int AssignOps.staticInt) { + signal(AssignOps.sigetStr+ siget++); + check(siget == (1+siset), "siget == (1+siset)" + p()); + } + before() : set(int AssignOps.staticInt) { + signal(AssignOps.sisetStr + siset++); + check(siget == siset, "siget == siset" + p()); + } + before() : get(int AssignOps.instanceInt) { + signal(AssignOps.igetStr + iget++); + check(iget == (1+iset), "iget == (1+iset)" + p()); + } + before() : set(int AssignOps.instanceInt) { + signal(AssignOps.isetStr + iset++); + check(iget == iset, "iget == iset" + p()); + } + before() : get(boolean AssignOps.bool) { + signal(AssignOps.bgetStr + bget++); + check(bget == (1+bset), "bget == (1+bset)" + p()); + } + before() : set(boolean AssignOps.bool) { + signal(AssignOps.bsetStr + bset++); + check(bget == bset, "bget == bset" + p()); + } + static void check(boolean b, String s) { + if (start) Tester.check(b, s); + } + static void signal(String s) { + if (start) Tester.event(s); + } +} + +/** @testcase operators ++ += etc. result in a get and set join point */ +public class AssignOps { + static int staticInt; + int instanceInt; + boolean bool; + static final String sisetStr = "before() : set(int AssignOps.staticInt)"; + static final String sigetStr = "before() : get(int AssignOps.staticInt)"; + static final String isetStr = "before() : set(int AssignOps.instanceInt)"; + static final String igetStr = "before() : get(int AssignOps.instanceInt)"; + static final String bsetStr = "before() : set(boolean AssignOps.bool)"; + static final String bgetStr = "before() : get(boolean AssignOps.bool)"; + public static void main(String[] args) { + new AssignOps(3).run(); + Tester.checkAllEvents(); + } + static void t(String s) { Tester.expectEvent(s); } + AssignOps(int i) { instanceInt = i; } + void run() { + A.start(); + t(igetStr + "0"); + t(isetStr + "0"); + instanceInt++; + t(sigetStr + "0"); + t(sisetStr + "0"); + staticInt++; + t(igetStr + "1"); + t(isetStr + "1"); + instanceInt += 2; + t(sigetStr + "1"); + t(sisetStr + "1"); + staticInt += 2; + + t(igetStr + "2"); + t(isetStr + "2"); + instanceInt--; + t(sigetStr + "2"); + t(sisetStr + "2"); + staticInt--; + t(igetStr + "3"); + t(isetStr + "3"); + instanceInt -= 2; + t(sigetStr + "3"); + t(sisetStr + "3"); + staticInt -= 2; + + t(igetStr + "4"); + t(isetStr + "4"); + instanceInt *= 2; + t(sigetStr + "4"); + t(sisetStr + "4"); + staticInt *= 2; + + t(igetStr + "5"); + t(isetStr + "5"); + instanceInt /= 2; + t(sigetStr + "5"); + t(sisetStr + "5"); + staticInt /= 2; + + t(igetStr + "6"); + t(isetStr + "6"); + instanceInt %= 2; + t(sigetStr + "6"); + t(sisetStr + "6"); + staticInt %= 2; + + t(igetStr + "7"); + t(isetStr + "7"); + instanceInt >>= 2; + t(sigetStr + "7"); + t(sisetStr + "7"); + staticInt >>= 2; + + t(igetStr + "8"); + t(isetStr + "8"); + instanceInt <<= 2; + t(sigetStr + "8"); + t(sisetStr + "8"); + staticInt <<= 2; + + t(igetStr + "9"); + t(isetStr + "9"); + instanceInt >>>= 2; + t(sigetStr + "9"); + t(sisetStr + "9"); + staticInt >>>= 2; + + t(bgetStr + "0"); + t(bsetStr + "0"); + bool &= true; + t(bgetStr + "1"); + t(bsetStr + "1"); + bool |= false; + t(bgetStr + "2"); + t(bsetStr + "2"); + bool ^= false; + } +} |