1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/test/tools/javac/versions/check.sh Sat Dec 01 00:00:00 2007 +0000 1.3 @@ -0,0 +1,108 @@ 1.4 +# 1.5 +# Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved. 1.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.7 +# 1.8 +# This code is free software; you can redistribute it and/or modify it 1.9 +# under the terms of the GNU General Public License version 2 only, as 1.10 +# published by the Free Software Foundation. 1.11 +# 1.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 1.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1.15 +# version 2 for more details (a copy is included in the LICENSE file that 1.16 +# accompanied this code). 1.17 +# 1.18 +# You should have received a copy of the GNU General Public License version 1.19 +# 2 along with this work; if not, write to the Free Software Foundation, 1.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 1.21 +# 1.22 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 1.23 +# CA 95054 USA or visit www.sun.com if you need additional information or 1.24 +# have any questions. 1.25 +# 1.26 + 1.27 +# @test 1.28 +# @bug 4981566 5028634 5094412 6304984 1.29 +# @summary Check interpretation of -target and -source options 1.30 +# 1.31 +# @build CheckClassFileVersion 1.32 +# @run shell check.sh 1.33 + 1.34 +TESTJAVA=${TESTJAVA:?} 1.35 +TC=${TESTCLASSES-.} 1.36 + 1.37 +J="$TESTJAVA/bin/java" 1.38 +JC="$TESTJAVA/bin/javac" 1.39 +CFV="$J ${TESTVMOPTS} -cp $TC CheckClassFileVersion" 1.40 + 1.41 +rm -f $TC/X.java $TC/X.java 1.42 +echo 'public class X { }' > $TC/X.java 1.43 +echo 'public enum Y { }' > $TC/Y.java 1.44 + 1.45 + 1.46 +# Check class-file versions 1.47 + 1.48 +check() { 1.49 + V=$1; shift 1.50 + echo "+ javac $* [$V]" 1.51 + $JC ${TESTTOOLVMOPTS} -d $TC $* $TC/X.java && $CFV $TC/X.class $V || exit 2 1.52 +} 1.53 + 1.54 +check 50.0 1.55 +check 48.0 -source 1.4 1.56 +check 49.0 -source 1.4 -target 1.5 1.57 +check 49.0 -target 1.5 1.58 +check 50.0 -source 1.5 1.59 +check 50.0 -target 1.6 1.60 +check 50.0 -target 6 1.61 +check 50.0 -source 1.6 1.62 +check 50.0 -source 6 1.63 +check 51.0 -target 1.7 1.64 +check 51.0 -target 7 1.65 +check 51.0 -source 1.7 1.66 +check 51.0 -source 7 1.67 + 1.68 + 1.69 +# Check source versions 1.70 + 1.71 +fail() { 1.72 + echo "+ javac $*" 1.73 + if $JC ${TESTTOOLVMOPTS} -d $TC $*; then 1.74 + echo "-- did not fail as expected" 1.75 + exit 3 1.76 + else 1.77 + echo "-- failed as expected" 1.78 + fi 1.79 +} 1.80 + 1.81 +pass() { 1.82 + echo "+ javac $*" 1.83 + if $JC ${TESTTOOLVMOPTS} -d $TC $*; then 1.84 + echo "-- passed" 1.85 + else 1.86 + echo "-- failed" 1.87 + exit 4 1.88 + fi 1.89 +} 1.90 + 1.91 +checksrc14() { pass $* $TC/X.java; fail $* $TC/Y.java; } 1.92 +checksrc15() { pass $* $TC/X.java; pass $* $TC/Y.java; } 1.93 +checksrc16() { checksrc15 $* ; } 1.94 + 1.95 +checksrc14 -source 1.4 1.96 +checksrc14 -source 1.4 -target 1.5 1.97 + 1.98 +checksrc15 1.99 +checksrc15 -target 1.5 1.100 +checksrc15 -source 1.5 1.101 + 1.102 +checksrc16 -target 1.6 1.103 +checksrc16 -target 6 1.104 +checksrc16 -source 1.6 1.105 +checksrc16 -source 6 1.106 + 1.107 +fail -source 1.5 -target 1.4 $TC/X.java 1.108 +fail -source 1.6 -target 1.4 $TC/X.java 1.109 +fail -source 6 -target 1.4 $TC/X.java 1.110 +fail -source 1.6 -target 1.5 $TC/X.java 1.111 +fail -source 6 -target 1.5 $TC/X.java