You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AssignOps.java 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. import org.aspectj.testing.Tester;
  2. import org.aspectj.testing.Tester;
  3. aspect A {
  4. static boolean start = false;
  5. static int bset;
  6. static int bget;
  7. static int siset;
  8. static int siget;
  9. static int iset;
  10. static int iget;
  11. static void start() {
  12. siset = siget = iset = iget = 0;
  13. start = true;
  14. }
  15. static String p() {
  16. return
  17. " siset=" + siset
  18. + " siget=" + siget
  19. + " iset=" + iset
  20. + " iget=" + iget ;
  21. }
  22. before() : get(int AssignOps.staticInt) {
  23. signal(AssignOps.sigetStr+ siget++);
  24. check(siget == (1+siset), "siget == (1+siset)" + p());
  25. }
  26. before() : set(int AssignOps.staticInt) {
  27. signal(AssignOps.sisetStr + siset++);
  28. check(siget == siset, "siget == siset" + p());
  29. }
  30. before() : get(int AssignOps.instanceInt) {
  31. signal(AssignOps.igetStr + iget++);
  32. check(iget == (1+iset), "iget == (1+iset)" + p());
  33. }
  34. before() : set(int AssignOps.instanceInt) {
  35. signal(AssignOps.isetStr + iset++);
  36. check(iget == iset, "iget == iset" + p());
  37. }
  38. before() : get(boolean AssignOps.bool) {
  39. signal(AssignOps.bgetStr + bget++);
  40. check(bget == (1+bset), "bget == (1+bset)" + p());
  41. }
  42. before() : set(boolean AssignOps.bool) {
  43. signal(AssignOps.bsetStr + bset++);
  44. check(bget == bset, "bget == bset" + p());
  45. }
  46. static void check(boolean b, String s) {
  47. if (start) Tester.check(b, s);
  48. }
  49. static void signal(String s) {
  50. if (start) Tester.event(s);
  51. }
  52. }
  53. /** @testcase operators ++ += etc. result in a get and set join point */
  54. public class AssignOps {
  55. static int staticInt;
  56. int instanceInt;
  57. boolean bool;
  58. static final String sisetStr = "before() : set(int AssignOps.staticInt)";
  59. static final String sigetStr = "before() : get(int AssignOps.staticInt)";
  60. static final String isetStr = "before() : set(int AssignOps.instanceInt)";
  61. static final String igetStr = "before() : get(int AssignOps.instanceInt)";
  62. static final String bsetStr = "before() : set(boolean AssignOps.bool)";
  63. static final String bgetStr = "before() : get(boolean AssignOps.bool)";
  64. public static void main(String[] args) {
  65. new AssignOps(3).run();
  66. Tester.checkAllEvents();
  67. }
  68. static void t(String s) { Tester.expectEvent(s); }
  69. AssignOps(int i) { instanceInt = i; }
  70. void run() {
  71. A.start();
  72. t(igetStr + "0");
  73. t(isetStr + "0");
  74. instanceInt++;
  75. t(sigetStr + "0");
  76. t(sisetStr + "0");
  77. staticInt++;
  78. t(igetStr + "1");
  79. t(isetStr + "1");
  80. instanceInt += 2;
  81. t(sigetStr + "1");
  82. t(sisetStr + "1");
  83. staticInt += 2;
  84. t(igetStr + "2");
  85. t(isetStr + "2");
  86. instanceInt--;
  87. t(sigetStr + "2");
  88. t(sisetStr + "2");
  89. staticInt--;
  90. t(igetStr + "3");
  91. t(isetStr + "3");
  92. instanceInt -= 2;
  93. t(sigetStr + "3");
  94. t(sisetStr + "3");
  95. staticInt -= 2;
  96. t(igetStr + "4");
  97. t(isetStr + "4");
  98. instanceInt *= 2;
  99. t(sigetStr + "4");
  100. t(sisetStr + "4");
  101. staticInt *= 2;
  102. t(igetStr + "5");
  103. t(isetStr + "5");
  104. instanceInt /= 2;
  105. t(sigetStr + "5");
  106. t(sisetStr + "5");
  107. staticInt /= 2;
  108. t(igetStr + "6");
  109. t(isetStr + "6");
  110. instanceInt %= 2;
  111. t(sigetStr + "6");
  112. t(sisetStr + "6");
  113. staticInt %= 2;
  114. t(igetStr + "7");
  115. t(isetStr + "7");
  116. instanceInt >>= 2;
  117. t(sigetStr + "7");
  118. t(sisetStr + "7");
  119. staticInt >>= 2;
  120. t(igetStr + "8");
  121. t(isetStr + "8");
  122. instanceInt <<= 2;
  123. t(sigetStr + "8");
  124. t(sisetStr + "8");
  125. staticInt <<= 2;
  126. t(igetStr + "9");
  127. t(isetStr + "9");
  128. instanceInt >>>= 2;
  129. t(sigetStr + "9");
  130. t(sisetStr + "9");
  131. staticInt >>>= 2;
  132. t(bgetStr + "0");
  133. t(bsetStr + "0");
  134. bool &= true;
  135. t(bgetStr + "1");
  136. t(bsetStr + "1");
  137. bool |= false;
  138. t(bgetStr + "2");
  139. t(bsetStr + "2");
  140. bool ^= false;
  141. }
  142. }