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.

GenericTest.java 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. import symbols.Helper;
  2. import org.aspectj.testing.Tester;
  3. import org.aspectj.tools.ide.SymbolManager;
  4. import org.aspectj.tools.ide.SourceLine;
  5. import org.aspectj.tools.ide.Declaration;
  6. import java.io.File;
  7. public class GenericTest {
  8. private static Helper h = new Helper();
  9. public static void main(String[] args) {
  10. Declaration classDec = h.getDecl("C.java", 3);
  11. Declaration aspectDec = h.getDecl("A.java", 3);
  12. Declaration fieldDecI = h.getDecl("C.java", 13);
  13. Declaration fieldDecF = h.getDecl("C.java", 14);
  14. //Declaration initDecS = h.getDecl("C.java", 22);
  15. //Declaration initDec = h.getDecl("C.java", 26);
  16. Declaration methodDecV = h.getDecl("C.java", 8);
  17. Declaration methodDecVI = h.getDecl("C.java", 9);
  18. Declaration methodDecVLF = h.getDecl("C.java",10);
  19. Declaration methodDecISO = h.getDecl("C.java",11);
  20. Declaration pointcutDecInstOf = h.getDecl("A.java", 6);
  21. Declaration pointcutDecHasAsp = h.getDecl("A.java", 7);
  22. Declaration pointcutDecWithin = h.getDecl("A.java", 10);
  23. Declaration pointcutDecWithinAll = h.getDecl("A.java", 11);
  24. Declaration pointcutDecWithinCode = h.getDecl("A.java", 12);
  25. Declaration pointcutDecCFlow = h.getDecl("A.java", 15);
  26. Declaration pointcutDecCFlowTop = h.getDecl("A.java", 16);
  27. Declaration pointcutDecCalls = h.getDecl("A.java", 19);
  28. Declaration pointcutDecRec = h.getDecl("A.java", 20);
  29. Declaration pointcutDecExec = h.getDecl("A.java", 21);
  30. Declaration pointcutDecCallsTo = h.getDecl("A.java", 22);
  31. Declaration pointcutDecHandThr = h.getDecl("A.java", 25);
  32. Declaration pointcutDecHandErr = h.getDecl("A.java", 26);
  33. Declaration pointcutDecHandExc = h.getDecl("A.java", 27);
  34. Declaration pointcutDecHandRt = h.getDecl("A.java", 28);
  35. Declaration pointcutDecGets = h.getDecl("A.java", 31);
  36. Declaration pointcutDecSets = h.getDecl("A.java", 32);
  37. Declaration adviceDecBefore = h.getDecl("A.java", 35);
  38. Declaration adviceDecAfter = h.getDecl("A.java", 36);
  39. Declaration adviceDecAfterRet = h.getDecl("A.java", 37);
  40. Declaration adviceDecAfterThr = h.getDecl("A.java", 38);
  41. Declaration adviceDecAround = h.getDecl("A.java", 41);
  42. Declaration adviceDecBeforeToString = h.getDecl("A.java", 47);
  43. Declaration adviceDecBeforeNew = h.getDecl("A.java", 48);
  44. Declaration fieldDecIntrD = h.getDecl("A.java", 44);
  45. Declaration methodDecIntrV = h.getDecl("A.java", 45);
  46. // check we've checking all decs in aspect A and class C
  47. h.checkAllDecsOf(classDec,new Declaration[]{
  48. fieldDecI,
  49. fieldDecF,
  50. //initDecS,
  51. //initDec,
  52. methodDecV,
  53. methodDecVI,
  54. methodDecVLF,
  55. methodDecISO
  56. });
  57. h.checkAllDecsOf(aspectDec,new Declaration[]{
  58. pointcutDecInstOf,
  59. pointcutDecHasAsp,
  60. pointcutDecWithin,
  61. pointcutDecWithinAll,
  62. pointcutDecWithinCode,
  63. pointcutDecCFlow,
  64. pointcutDecCFlowTop,
  65. pointcutDecCalls,
  66. pointcutDecRec,
  67. pointcutDecExec,
  68. pointcutDecCallsTo,
  69. pointcutDecHandThr,
  70. pointcutDecHandErr,
  71. pointcutDecHandExc,
  72. pointcutDecHandRt,
  73. pointcutDecGets,
  74. pointcutDecSets,
  75. adviceDecBefore,
  76. adviceDecAfter,
  77. adviceDecAfterRet,
  78. adviceDecAfterThr,
  79. adviceDecAround,
  80. adviceDecBeforeToString,
  81. adviceDecBeforeNew,
  82. fieldDecIntrD,
  83. methodDecIntrV
  84. });
  85. if (!h.allDecsFound) return;
  86. h.checkPos(classDec, 3, 1,24, 2, "C.java");
  87. h.checkPos(aspectDec, 3, 1,49, 2, "A.java");
  88. h.checkPos(fieldDecI, 13, 5,13,34, "C.java");
  89. h.checkPos(fieldDecF, 14, 5,14,20, "C.java");
  90. h.checkPos(methodDecV, 8, 5, 8, 21, "C.java");
  91. h.checkPos(methodDecVI, 9, 5, 9, 34, "C.java");
  92. h.checkPos(methodDecVLF,10, 5,10, 65, "C.java");
  93. h.checkPos(methodDecISO,11, 5,11, 74, "C.java");
  94. h.checkPos(pointcutDecInstOf, 6, 5, 6, 44, "A.java");
  95. h.checkPos(pointcutDecHasAsp, 7, 5, 7, 42, "A.java");
  96. h.checkPos(pointcutDecWithin, 10, 5, 10, 36, "A.java");
  97. h.checkPos(pointcutDecWithinAll, 11, 5, 11, 42, "A.java");
  98. h.checkPos(pointcutDecWithinCode,12, 5, 12, 55, "A.java");
  99. h.checkPos(pointcutDecCFlow, 15, 5, 15, 47, "A.java");
  100. h.checkPos(pointcutDecCFlowTop, 16, 5, 16, 53, "A.java");
  101. h.checkPos(pointcutDecCalls, 19, 5, 19, 44, "A.java");
  102. h.checkPos(pointcutDecRec, 20, 5, 20, 54, "A.java");
  103. h.checkPos(pointcutDecExec, 21, 5, 21, 61, "A.java");
  104. h.checkPos(pointcutDecCallsTo, 22, 5, 22, 59, "A.java");
  105. h.checkPos(pointcutDecHandThr, 25, 5, 25, 60, "A.java");
  106. h.checkPos(pointcutDecHandErr, 26, 5, 26, 56, "A.java");
  107. h.checkPos(pointcutDecHandExc, 27, 5, 27, 60, "A.java");
  108. h.checkPos(pointcutDecHandRt, 28, 5, 28, 66, "A.java");
  109. h.checkPos(pointcutDecGets, 31, 5, 31, 40, "A.java");
  110. h.checkPos(pointcutDecSets, 32, 5, 32, 40, "A.java");
  111. h.checkPos(adviceDecBefore, 35, 5, 35, 41, "A.java");
  112. h.checkPos(adviceDecAfter, 36, 5, 36, 40, "A.java");
  113. h.checkPos(adviceDecAfterRet, 37, 5, 37, 59, "A.java");
  114. h.checkPos(adviceDecAfterThr, 38, 5, 40, 6, "A.java");
  115. h.checkPos(adviceDecAround, 41, 5, 41, 69, "A.java");
  116. h.checkPos(fieldDecIntrD, 44, 5, 44, 35, "A.java");
  117. h.checkPos(methodDecIntrV, 45, 5, 45, 47, "A.java");
  118. h.checkKind(classDec, "class");
  119. h.checkKind(aspectDec, "class");
  120. h.checkKind(fieldDecI, "field");
  121. h.checkKind(fieldDecF, "field");
  122. h.checkKind(methodDecV, "method");
  123. h.checkKind(methodDecVI, "method");
  124. h.checkKind(methodDecVLF, "method");
  125. h.checkKind(methodDecISO, "method");
  126. h.checkKind(pointcutDecInstOf, "pointcut");
  127. h.checkKind(pointcutDecHasAsp, "pointcut");
  128. h.checkKind(pointcutDecWithin, "pointcut");
  129. h.checkKind(pointcutDecWithinAll, "pointcut");
  130. h.checkKind(pointcutDecWithinCode,"pointcut");
  131. h.checkKind(pointcutDecCFlow, "pointcut");
  132. h.checkKind(pointcutDecCFlowTop, "pointcut");
  133. h.checkKind(pointcutDecCalls, "pointcut");
  134. h.checkKind(pointcutDecRec, "pointcut");
  135. h.checkKind(pointcutDecExec, "pointcut");
  136. h.checkKind(pointcutDecCallsTo, "pointcut");
  137. h.checkKind(pointcutDecHandThr, "pointcut");
  138. h.checkKind(pointcutDecHandErr, "pointcut");
  139. h.checkKind(pointcutDecHandExc, "pointcut");
  140. h.checkKind(pointcutDecHandRt, "pointcut");
  141. h.checkKind(pointcutDecGets, "pointcut");
  142. h.checkKind(pointcutDecSets, "pointcut");
  143. h.checkKind(adviceDecBefore, "advice");
  144. h.checkKind(adviceDecAfter, "advice");
  145. h.checkKind(adviceDecAfterRet, "advice");
  146. h.checkKind(adviceDecAfterThr, "advice");
  147. h.checkKind(adviceDecAround, "advice");
  148. h.checkKind(fieldDecIntrD, "introduction");
  149. h.checkKind(methodDecIntrV, "introduction");
  150. h.checkFormalComment(classDec, "");
  151. h.checkFormalComment(aspectDec, "");
  152. h.checkFormalComment(fieldDecI, "");
  153. h.checkFormalComment(fieldDecF, "");
  154. h.checkFormalComment(methodDecV, "/**\n * multiline\n * comment\n */");
  155. h.checkFormalComment(methodDecVI, "");
  156. h.checkFormalComment(methodDecVLF, "");
  157. h.checkFormalComment(methodDecISO, "");
  158. h.checkFormalComment(pointcutDecInstOf, "/** objects */");
  159. h.checkFormalComment(pointcutDecHasAsp, "");
  160. h.checkFormalComment(pointcutDecWithin, "/** lexical extents */");
  161. h.checkFormalComment(pointcutDecWithinAll, "");
  162. h.checkFormalComment(pointcutDecWithinCode,"");
  163. h.checkFormalComment(pointcutDecCFlow, "/** control flow */");
  164. h.checkFormalComment(pointcutDecCFlowTop, "");
  165. h.checkFormalComment(pointcutDecCalls, "/** methods and constructors */");
  166. h.checkFormalComment(pointcutDecRec, "");
  167. h.checkFormalComment(pointcutDecExec, "");
  168. h.checkFormalComment(pointcutDecCallsTo, "");
  169. h.checkFormalComment(pointcutDecHandThr, "/** exception handlers */");
  170. h.checkFormalComment(pointcutDecHandErr, "");
  171. h.checkFormalComment(pointcutDecHandExc, "");
  172. h.checkFormalComment(pointcutDecHandRt, "");
  173. h.checkFormalComment(pointcutDecGets, "/** fields */");
  174. h.checkFormalComment(pointcutDecSets, "");
  175. h.checkFormalComment(adviceDecBefore, "/** Advices */");
  176. h.checkFormalComment(adviceDecAfter, "");
  177. h.checkFormalComment(adviceDecAfterRet, "");
  178. h.checkFormalComment(adviceDecAfterThr, "");
  179. h.checkFormalComment(adviceDecAround, "");
  180. h.checkFormalComment(fieldDecIntrD, "/** Introductions */");
  181. h.checkFormalComment(methodDecIntrV, "");
  182. h.checkModifiers(classDec, "public");
  183. h.checkModifiers(aspectDec, "public strictfp");
  184. h.checkModifiers(fieldDecI, "public static volatile");
  185. h.checkModifiers(fieldDecF, "public");
  186. h.checkModifiers(methodDecV, "");
  187. h.checkModifiers(methodDecVI, "public");
  188. h.checkModifiers(methodDecVLF, "synchronized public static");
  189. h.checkModifiers(methodDecISO, "");
  190. h.checkModifiers(pointcutDecInstOf, "");
  191. h.checkModifiers(pointcutDecHasAsp, "");
  192. h.checkModifiers(pointcutDecWithin, "");
  193. h.checkModifiers(pointcutDecWithinAll, "");
  194. h.checkModifiers(pointcutDecWithinCode,"");
  195. h.checkModifiers(pointcutDecCFlow, "");
  196. h.checkModifiers(pointcutDecCFlowTop, "");
  197. h.checkModifiers(pointcutDecCalls, "");
  198. h.checkModifiers(pointcutDecRec, "");
  199. h.checkModifiers(pointcutDecExec, "");
  200. h.checkModifiers(pointcutDecCallsTo, "");
  201. h.checkModifiers(pointcutDecHandThr, "");
  202. h.checkModifiers(pointcutDecHandErr, "");
  203. h.checkModifiers(pointcutDecHandExc, "");
  204. h.checkModifiers(pointcutDecHandRt, "");
  205. h.checkModifiers(pointcutDecGets, "");
  206. h.checkModifiers(pointcutDecSets, "");
  207. h.checkModifiers(adviceDecBefore, "");
  208. h.checkModifiers(adviceDecAfter, "");
  209. h.checkModifiers(adviceDecAfterRet, "");
  210. h.checkModifiers(adviceDecAfterThr, "");
  211. h.checkModifiers(adviceDecAround, "");
  212. h.checkModifiers(fieldDecIntrD, "public");
  213. h.checkModifiers(methodDecIntrV, "private");
  214. h.checkSignature(classDec, "C", "public class C");
  215. h.checkSignature(aspectDec, "A", "public strictfp class A");
  216. h.checkSignature(fieldDecI, "i", "public static volatile int i");
  217. h.checkSignature(fieldDecF, "f", "public float f");
  218. h.checkSignature(methodDecV, "MethV()", "void MethV()");
  219. h.checkSignature(methodDecVI, "MethVI(int)", "public void MethVI(int i)");
  220. h.checkSignature(methodDecVLF, "MethVLF(long, float)", "public static synchronized void MethVLF(long l, float f)");
  221. h.checkSignature(methodDecISO, "MethISO(String, Object)", "int MethISO(java.lang.String s, java.lang.Object o)");
  222. h.checkSignature(pointcutDecInstOf, "instanceof_C()", "");
  223. h.checkSignature(pointcutDecHasAsp, "hasaspect_A()", "");
  224. h.checkSignature(pointcutDecWithin, "within_C()", "");
  225. h.checkSignature(pointcutDecWithinAll, "withinall_C()", "");
  226. h.checkSignature(pointcutDecWithinCode,"withincode_C()", "");
  227. h.checkSignature(pointcutDecCFlow, "cflow_C()", "");
  228. h.checkSignature(pointcutDecCFlowTop, "cflowtop_C()", "");
  229. h.checkSignature(pointcutDecCalls, "calls_C()", "");
  230. h.checkSignature(pointcutDecRec, "receptions_C()", "");
  231. h.checkSignature(pointcutDecExec, "executions_C()", "");
  232. h.checkSignature(pointcutDecCallsTo, "callsto_C()", "");
  233. h.checkSignature(pointcutDecHandThr, "handlers_Thr()", "");
  234. h.checkSignature(pointcutDecHandErr, "handlers_Err()", "");
  235. h.checkSignature(pointcutDecHandExc, "handlers_Exc()", "");
  236. h.checkSignature(pointcutDecHandRt, "handlers_Rt()", "");
  237. h.checkSignature(pointcutDecGets, "gets_f()", "");
  238. h.checkSignature(pointcutDecSets, "sets_f()", "");
  239. h.checkSignature(adviceDecBefore, "before()", "");
  240. h.checkSignature(adviceDecAfter, "after()", "");
  241. h.checkSignature(adviceDecAfterRet, "afterReturning()", "");
  242. h.checkSignature(adviceDecAfterThr, "afterThrowing()", "");
  243. h.checkSignature(adviceDecAround, "around()", "");
  244. h.checkSignature(fieldDecIntrD, "C.intrD", "");
  245. h.checkSignature(methodDecIntrV, "C.intrMethV()", "");
  246. }
  247. }