test/tools/apt/Basics/apt.sh
Print this page
*** 1,9 ****
#!/bin/sh
#
! # Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
--- 1,9 ----
#!/bin/sh
#
! # Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
*** 22,36 ****
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# @test
! # @bug 4908512 5024825 4957203 4993280 4996963 6174696 6177059
# @run shell ../verifyVariables.sh
- # @build Milk MethodAnnotations NestedClassAnnotations StaticFieldAnnotations StaticMethodAnnotations ParameterAnnotations
# @run shell apt.sh
! # @summary test consistency of annotation discovery
# @author Joseph D. Darcy
OS=`uname -s`;
case "${OS}" in
CYGWIN* )
--- 22,35 ----
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# @test
! # @bug 4908512 5024825 4957203 4993280 4996963 6174696 6177059 7041249
# @run shell ../verifyVariables.sh
# @run shell apt.sh
! # @summary Make sure apt is removed and doesn't come back
# @author Joseph D. Darcy
OS=`uname -s`;
case "${OS}" in
CYGWIN* )
*** 39,176 ****
* )
;;
esac
! # Construct path to apt executable
! APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} -XDsuppress-tool-api-removal-message "
- printf "%s\n" "-classpath ${TESTCLASSES}" > options
- printf "%s\n" "-factorypath ./nullap.jar" >> options
- printf "%s\n" "-sourcepath ${TESTSRC} " >> options
- printf "%s\n" "-nocompile" >> options
- printf "%s\n" "-XListAnnotationTypes" >> options
-
- printf "%s\n" "-classpath ${TESTCLASSES}" > options1
- printf "%s\n" "-factorypath ./nullap.jar" >> options1
- printf "%s\n" "-sourcepath ${TESTSRC} " >> options1
- printf "%s\n" "-nocompile" >> options1
- printf "%s\n" "-XListAnnotationTypes" >> options1
- printf "%s\n" "-XclassesAsDecls" >> options1
-
-
- # Construct path to javac executable
- JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
- JAR="${TESTJAVA}/bin/jar "
-
- $JAVAC ${TESTSRC}/NullAPF.java \
- ${TESTSRC}/FreshnessApf.java \
- ${TESTSRC}/TestGetTypeDeclarationApf.java \
- ${TESTSRC}/TestGetPackageApf.java
RESULT=$?
case "${RESULT}" in
0 )
! ;;
!
! * )
! echo "Compilation failed."
exit 1
- esac
-
- echo "Making services directory and copying services information."
- mkdir -p META-INF/services
- cp ${TESTSRC}/com.sun.mirror.apt.AnnotationProcessorFactory ./META-INF/services
- $JAR cvf0 nullap.jar NullAPF*.class META-INF
-
- ANNOTATION_FILES="${TESTSRC}/ClassAnnotations.java \
- ${TESTSRC}/MethodAnnotations.java \
- ${TESTSRC}/NestedClassAnnotations.java \
- ${TESTSRC}/StaticFieldAnnotations.java \
- ${TESTSRC}/StaticMethodAnnotations.java \
- ${TESTSRC}/ParameterAnnotations.java"
-
- for i in ${ANNOTATION_FILES}
- do
- printf "%s\n" "Testing annotations on source file ${i}"
- ${APT} @options ${i} 2> result.txt
- diff ${DIFFOPTS} ${TESTSRC}/golden.txt result.txt
-
- RESULT=$?
- case "$RESULT" in
- 0 )
;;
* )
- echo "Unexpected set of annotations on source files found."
- exit 1
- esac
-
- CLASS=`basename ${i} .java`
- printf "%s\n" "Testing annotations on class file ${CLASS}"
- ${APT} @options1 ${CLASS} 2> result2.txt
- diff ${DIFFOPTS} ${TESTSRC}/golden.txt result2.txt
-
- RESULT=$?
- case "$RESULT" in
- 0 )
- ;;
-
- * )
- echo "Unexpected set of annotations on class files found."
- exit 1
- esac
- done
-
- # Verify source files are favored over class files
-
- printf "%s\n" "-factorypath ." > options2
- printf "%s\n" "-factory FreshnessApf" >> options2
- printf "%s\n" "-sourcepath ${TESTSRC}" >> options2
- printf "%s\n" "-classpath ${TESTCLASSES}" >> options2
- printf "%s\n" "-nocompile" >> options2
-
- ${APT} @options2 ${TESTSRC}/Indirect.java
-
- RESULT=$?
- case "$RESULT" in
- 0 )
;;
-
- * )
- exit 1
esac
- # Verify new classes can be loaded by getTypeDeclaration
! printf "%s\n" "-factorypath ." > options3
! printf "%s\n" "-factory TestGetTypeDeclarationApf" >> options3
! printf "%s\n" "-sourcepath ${TESTSRC}" >> options3
!
! # ${APT} @options3
RESULT=$?
- case "$RESULT" in
- 0 )
- ;;
! * )
! exit 1
! esac
!
! # Verify packages can be loaded by getPackage
!
! printf "%s\n" "-factorypath ." > options4
! printf "%s\n" "-factory TestGetPackageApf" >> options4
! printf "%s\n" "-sourcepath ${TESTSRC}" >> options4
!
! ${APT} @options4
!
! RESULT=$?
! case "$RESULT" in
0 )
;;
* )
! exit 1
esac
- exit 0
--- 38,73 ----
* )
;;
esac
! # Verify apt executable does not exist
! test -e "${TESTJAVA}/bin/apt"
RESULT=$?
case "${RESULT}" in
0 )
! echo "apt executable should not exist."
exit 1
;;
* )
;;
esac
! # Construct path to javac executable
! JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
+ $JAVAC ${TESTSRC}/NullAPF.java
RESULT=$?
! case "${RESULT}" in
0 )
+ echo "Compilation of apt-using source passed improperly."
+ exit 1
;;
* )
! ;;
esac