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.

ajdocTests.sh 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. #!/bin/sh
  2. # info: test ajc command line
  3. # syntax: $0 (define JDKDIR and AJ_BASE)
  4. # @testcase PR#655 ajc errors when output dir is bad
  5. # @process-test ajdoc ajdocTests.sh # tests for PR628, PR688, PR711
  6. [ -n "$DEBUG" ] && set -vx
  7. errMssg() {
  8. [ -n "$1" ] && echo "## $0 $1"
  9. [ -n "$2" ] && exit "$2"
  10. }
  11. runAjdoc() {
  12. ccdir="${globalClasses:-classes}"
  13. [ -d "$ccdir" ] || mkdir "$ccdir"
  14. rm -rf "$ccdir"/*
  15. #export CLASSPATH="$jdktoolsjar"
  16. #$JDKDIR/bin/java -jar c:/home/wes/aj/aj-build-modules/jars/ajdoc.jar \
  17. # -d "$ccdir" -classpath "$rtjar" "${@}"
  18. $JDKDIR/bin/java -classpath "$jdktoolsjar${PS}$toolsjar" org.aspectj.tools.ajdoc.Main \
  19. -d "$ccdir" -classpath "$rtjar" "${@}"
  20. }
  21. declareWarningDoc() {
  22. ## test of declare warnings - which are not documented but should be?
  23. echo "## warning - simple declare warning currently causes compiler failure"
  24. cat>DeclareWarningDoc.java<<EOF
  25. import java.io.PrintStream;
  26. /** class javadoc */
  27. public class DeclareWarningDoc {
  28. /** method javadoc */
  29. public static void main (String[] args) {
  30. System.out.println("here");
  31. }
  32. }
  33. /** javadoc for aspect */
  34. aspect Warnings {
  35. /** javadoc for declared warning - call inside method*/
  36. declare warning :
  37. call(void PrintStream.println(String))
  38. : "use logger";
  39. /** javadoc for declared warning - method execution */
  40. declare warning :
  41. execution(static void main(String[]))
  42. : "using main";
  43. }
  44. EOF
  45. runAjdoc -private DeclareWarningDoc.java
  46. }
  47. pr688() {
  48. ## todo test cases for
  49. # PR#628 - docs for method declared on target
  50. # PR#682 - fix ant should fail on compiler error (verified by inspection)
  51. cat>AjdocTest.java<<EOF
  52. /**
  53. * @testcase PR#688 bad links cause ajdoc exceptions
  54. * <ul>
  55. * <li>link: {@link Aspect#ok()}</li>
  56. * <li>link: {@link C#ok()}</li>
  57. * <li>link: {@link C#bad}</li>
  58. * <li>link: {@link Aspect#bad()} // fails iff ()</li>
  59. * <li>link: {@link Aspect#bad}</li>
  60. * </ul>
  61. * @see Aspect#bad
  62. * @see C#bad
  63. * @see Aspect#ok()
  64. * @see C#ok()
  65. */
  66. public interface AjdocTest { }
  67. aspect Aspect { void ok() {} }
  68. class C { void ok() {} }
  69. EOF
  70. runAjdoc -private AjdocTest.java
  71. }
  72. pr628() { ## PR#628 - also test case for PR#710, PR#711, PR#712
  73. cat>AjdocTest.java<<EOF
  74. /** Test class comment */
  75. class Test { /* int i comment */ int i;}
  76. /** aspectj AjdocTest comment */
  77. public aspect AjdocTest { /** AjdocTest.ok() comment */ void Test.ok() {} }
  78. /** aspectj AnotherAspect comment */
  79. aspect AnotherAspect { /** ok() comment */ void ok() {} }
  80. /** class AnotherClass comment */
  81. class AnotherClass { /** aok() comment */ void aok() {} }
  82. EOF
  83. runAjdoc -private AjdocTest.java
  84. }
  85. ## todo test cases for
  86. # PR#682 - fix ant should fail on compiler error (verified by inspection)
  87. ############################################################## execution
  88. JDKDIR="${JDKDIR:-c:/home/apps/jdk13}"
  89. AJ_BASE="${AJ_BASE:-c:/home/wes/aj/aj-dist/tools}"
  90. [ -d "$JDKDIR" ] || errMssg "require JDKDIR=$JDKDIR" 3
  91. [ -d "$AJ_BASE" ] || errMssg "require AJ_BASE=$AJ_BASE" 3
  92. toolsjar="$AJ_BASE/lib/aspectjtools.jar"
  93. jdktoolsjar="$JDKDIR/lib/tools.jar"
  94. rtjar="$AJ_BASE/lib/aspectjrt.jar"
  95. [ -f "$toolsjar" ] || errMssg "require toolsjar=$toolsjar" 3
  96. [ -f "$rtjar" ] || errMssg "require rtjar=$rtjar" 3
  97. curdir=`pwd`
  98. d=temp`basename "$0" .sh`688
  99. [ -d $d ] && rm -rf $d
  100. mkdir $d && cd $d
  101. pr688
  102. cd "$curdir"
  103. d=temp`basename "$0" .sh`628
  104. [ -d $d ] && rm -rf $d
  105. mkdir $d && cd $d
  106. pr628
  107. cd "$curdir"
  108. echo "####### Warnings not documented - RFE"
  109. d=temp`basename "$0" .sh`declareWarningDoc
  110. [ -d $d ] && rm -rf $d
  111. mkdir $d && cd $d
  112. declareWarningDoc
  113. cd "$curdir"
  114. echo "####### PR#711 Expecting error message, not exception"
  115. runAjdoc -d missingDir -private AjdocTest.java
  116. # todo: clean up/evaluate