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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. This document describes the set of tests we need to build to have complete coverage
  2. of incremental compilation for AspectJ.
  3. Please add additional test descriptions if you uncover basic scenarios that are missing.
  4. -- work-in-progress...
  5. -- Adrian Colyer, 12-05-2006
  6. Types referred to in test specifications:
  7. ==========================================
  8. For the test descriptions that follow I assume a set of types with the following
  9. relationships:
  10. "Aspect" is an aspect
  11. "AbstractAspect" is the parent of "ConcreteAspect"
  12. "AspectDelegate" is a type called from within the body of the aspect
  13. "Class" is any class
  14. "SuperClass" is the parent of ....
  15. "SubClass"
  16. "ClassDelegate" is a type called from within Class, SuperClass, SubClass
  17. Simple Changes to Class
  18. =======================
  19. Class is advised by Aspect (both advice + ITD member(s)).
  20. INC-01 Change method signature in Class so that method that was previously unadvised now is. Structure model should
  21. update *all* markers for the Class with the new line numbers, and add new marker (both advised and advised-by)
  22. Expect 1xcompile, 1xincremental weave
  23. INC-02 As above, but change signature so that previously advised member is no longer advised.
  24. INC-03 Change a method that was advised, and remains advised after change - check line no's updated for relationships
  25. INC-04 Implement an additional interface in the Class, so that advice now matches
  26. INC-05 Add interface to Class, causing declare parents to match where it did not previously
  27. INC-06 As above but remove interface
  28. INC-07 Whitespace change in class with declare warning markers
  29. INC-08 Add interface X to Class, so that a declare parents now matches, adding additional interface Y.
  30. Another aspect in the system advises all calls to "foo" on instances of Y. Class has a foo method -
  31. all types that call Class.foo should be rewoven.
  32. Simple Changes to Aspect
  33. ========================
  34. Class is advised by Aspect.
  35. INC-11 Whitespace change in an aspect
  36. INC-12 Add method to an aspect
  37. INC-13 Change body of before advice
  38. INC-14 Change pointcut expression
  39. INC-15 Change body of around advice
  40. INC-16 Add new advice to aspect
  41. INC-17 Add new declare parents statement to aspect
  42. INC-18 Change declare parents statement
  43. Hierarchical Class Changes
  44. ==========================
  45. INC-20 Add interface to SuperClass such that operations in SubClass now become eligible for advising
  46. INC-21 Add method to SuperClass such that (now overridding) method in SubClass becomes eligible for advising
  47. INC-22 Add method to SuperClass with same signature as one ITD'd on an interface implemented by SubClass
  48. Hierarchical Aspect Changes
  49. ===========================
  50. INC-30 Change advice body in abstract aspect
  51. INC-31 Change comment in abstract aspect
  52. Delegate tests
  53. ===============
  54. INC-40 Change signature of operation in ClassDelegate, Class should be recompiled and re-woven
  55. INC-41 Change signature of operation in AspectDelegate, aspect should be recompiled and world re-woven
  56. Cflow tests
  57. ============
  58. INC-50 A simple cflow is started by a join point in class Start and used in join point matching in Class.
  59. Compile Class, Start, and Aspect. Change Start to remove the join point that starts the cflow.
  60. INC-51 As above, but make a white-space change in Aspect
  61. INC-52 As INC-50, but change Class
  62. INC-53 As 50, but cflow binds a context variable
  63. INC-54 As above, but make a white-space change in Aspect
  64. INC-55 As INC-53, but change Class