langtools/test/tools/javac/versions/check.sh
author duke
Sat, 01 Dec 2007 00:00:00 +0000
changeset 10 06bc494ca11e
child 2983 1d164c36212a
permissions -rw-r--r--
Initial load
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     1
#
06bc494ca11e Initial load
duke
parents:
diff changeset
     2
# Copyright 2004-2006 Sun Microsystems, Inc.  All Rights Reserved.
06bc494ca11e Initial load
duke
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
06bc494ca11e Initial load
duke
parents:
diff changeset
     4
#
06bc494ca11e Initial load
duke
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
06bc494ca11e Initial load
duke
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
06bc494ca11e Initial load
duke
parents:
diff changeset
     7
# published by the Free Software Foundation.
06bc494ca11e Initial load
duke
parents:
diff changeset
     8
#
06bc494ca11e Initial load
duke
parents:
diff changeset
     9
# This code is distributed in the hope that it will be useful, but WITHOUT
06bc494ca11e Initial load
duke
parents:
diff changeset
    10
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
06bc494ca11e Initial load
duke
parents:
diff changeset
    11
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
06bc494ca11e Initial load
duke
parents:
diff changeset
    12
# version 2 for more details (a copy is included in the LICENSE file that
06bc494ca11e Initial load
duke
parents:
diff changeset
    13
# accompanied this code).
06bc494ca11e Initial load
duke
parents:
diff changeset
    14
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    15
# You should have received a copy of the GNU General Public License version
06bc494ca11e Initial load
duke
parents:
diff changeset
    16
# 2 along with this work; if not, write to the Free Software Foundation,
06bc494ca11e Initial load
duke
parents:
diff changeset
    17
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
06bc494ca11e Initial load
duke
parents:
diff changeset
    18
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    19
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
06bc494ca11e Initial load
duke
parents:
diff changeset
    20
# CA 95054 USA or visit www.sun.com if you need additional information or
06bc494ca11e Initial load
duke
parents:
diff changeset
    21
# have any questions.
06bc494ca11e Initial load
duke
parents:
diff changeset
    22
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    23
06bc494ca11e Initial load
duke
parents:
diff changeset
    24
# @test
06bc494ca11e Initial load
duke
parents:
diff changeset
    25
# @bug 4981566 5028634 5094412 6304984
06bc494ca11e Initial load
duke
parents:
diff changeset
    26
# @summary Check interpretation of -target and -source options
06bc494ca11e Initial load
duke
parents:
diff changeset
    27
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    28
# @build CheckClassFileVersion
06bc494ca11e Initial load
duke
parents:
diff changeset
    29
# @run shell check.sh
06bc494ca11e Initial load
duke
parents:
diff changeset
    30
06bc494ca11e Initial load
duke
parents:
diff changeset
    31
TESTJAVA=${TESTJAVA:?}
06bc494ca11e Initial load
duke
parents:
diff changeset
    32
TC=${TESTCLASSES-.}
06bc494ca11e Initial load
duke
parents:
diff changeset
    33
06bc494ca11e Initial load
duke
parents:
diff changeset
    34
J="$TESTJAVA/bin/java" 
06bc494ca11e Initial load
duke
parents:
diff changeset
    35
JC="$TESTJAVA/bin/javac" 
06bc494ca11e Initial load
duke
parents:
diff changeset
    36
CFV="$J ${TESTVMOPTS} -cp $TC CheckClassFileVersion"
06bc494ca11e Initial load
duke
parents:
diff changeset
    37
06bc494ca11e Initial load
duke
parents:
diff changeset
    38
rm -f $TC/X.java $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
    39
echo 'public class X { }' > $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
    40
echo 'public enum Y { }' > $TC/Y.java
06bc494ca11e Initial load
duke
parents:
diff changeset
    41
06bc494ca11e Initial load
duke
parents:
diff changeset
    42
06bc494ca11e Initial load
duke
parents:
diff changeset
    43
# Check class-file versions
06bc494ca11e Initial load
duke
parents:
diff changeset
    44
06bc494ca11e Initial load
duke
parents:
diff changeset
    45
check() {
06bc494ca11e Initial load
duke
parents:
diff changeset
    46
  V=$1; shift
06bc494ca11e Initial load
duke
parents:
diff changeset
    47
  echo "+ javac $* [$V]"
06bc494ca11e Initial load
duke
parents:
diff changeset
    48
  $JC ${TESTTOOLVMOPTS} -d $TC $* $TC/X.java && $CFV $TC/X.class $V || exit 2
06bc494ca11e Initial load
duke
parents:
diff changeset
    49
}
06bc494ca11e Initial load
duke
parents:
diff changeset
    50
06bc494ca11e Initial load
duke
parents:
diff changeset
    51
check 50.0
06bc494ca11e Initial load
duke
parents:
diff changeset
    52
check 48.0 -source 1.4
06bc494ca11e Initial load
duke
parents:
diff changeset
    53
check 49.0 -source 1.4 -target 1.5
06bc494ca11e Initial load
duke
parents:
diff changeset
    54
check 49.0 -target 1.5
06bc494ca11e Initial load
duke
parents:
diff changeset
    55
check 50.0 -source 1.5
06bc494ca11e Initial load
duke
parents:
diff changeset
    56
check 50.0 -target 1.6
06bc494ca11e Initial load
duke
parents:
diff changeset
    57
check 50.0 -target 6
06bc494ca11e Initial load
duke
parents:
diff changeset
    58
check 50.0 -source 1.6
06bc494ca11e Initial load
duke
parents:
diff changeset
    59
check 50.0 -source 6
06bc494ca11e Initial load
duke
parents:
diff changeset
    60
check 51.0 -target 1.7
06bc494ca11e Initial load
duke
parents:
diff changeset
    61
check 51.0 -target 7
06bc494ca11e Initial load
duke
parents:
diff changeset
    62
check 51.0 -source 1.7
06bc494ca11e Initial load
duke
parents:
diff changeset
    63
check 51.0 -source 7
06bc494ca11e Initial load
duke
parents:
diff changeset
    64
06bc494ca11e Initial load
duke
parents:
diff changeset
    65
06bc494ca11e Initial load
duke
parents:
diff changeset
    66
# Check source versions
06bc494ca11e Initial load
duke
parents:
diff changeset
    67
06bc494ca11e Initial load
duke
parents:
diff changeset
    68
fail() {
06bc494ca11e Initial load
duke
parents:
diff changeset
    69
  echo "+ javac $*"
06bc494ca11e Initial load
duke
parents:
diff changeset
    70
  if $JC ${TESTTOOLVMOPTS} -d $TC $*; then
06bc494ca11e Initial load
duke
parents:
diff changeset
    71
    echo "-- did not fail as expected"
06bc494ca11e Initial load
duke
parents:
diff changeset
    72
    exit 3
06bc494ca11e Initial load
duke
parents:
diff changeset
    73
  else
06bc494ca11e Initial load
duke
parents:
diff changeset
    74
    echo "-- failed as expected"
06bc494ca11e Initial load
duke
parents:
diff changeset
    75
  fi
06bc494ca11e Initial load
duke
parents:
diff changeset
    76
}
06bc494ca11e Initial load
duke
parents:
diff changeset
    77
06bc494ca11e Initial load
duke
parents:
diff changeset
    78
pass() {
06bc494ca11e Initial load
duke
parents:
diff changeset
    79
  echo "+ javac $*"
06bc494ca11e Initial load
duke
parents:
diff changeset
    80
  if $JC ${TESTTOOLVMOPTS} -d $TC $*; then
06bc494ca11e Initial load
duke
parents:
diff changeset
    81
    echo "-- passed"
06bc494ca11e Initial load
duke
parents:
diff changeset
    82
  else
06bc494ca11e Initial load
duke
parents:
diff changeset
    83
    echo "-- failed"
06bc494ca11e Initial load
duke
parents:
diff changeset
    84
    exit 4
06bc494ca11e Initial load
duke
parents:
diff changeset
    85
  fi
06bc494ca11e Initial load
duke
parents:
diff changeset
    86
}
06bc494ca11e Initial load
duke
parents:
diff changeset
    87
06bc494ca11e Initial load
duke
parents:
diff changeset
    88
checksrc14() { pass $* $TC/X.java; fail $* $TC/Y.java; }
06bc494ca11e Initial load
duke
parents:
diff changeset
    89
checksrc15() { pass $* $TC/X.java; pass $* $TC/Y.java; }
06bc494ca11e Initial load
duke
parents:
diff changeset
    90
checksrc16() { checksrc15 $* ; }
06bc494ca11e Initial load
duke
parents:
diff changeset
    91
06bc494ca11e Initial load
duke
parents:
diff changeset
    92
checksrc14 -source 1.4
06bc494ca11e Initial load
duke
parents:
diff changeset
    93
checksrc14 -source 1.4 -target 1.5
06bc494ca11e Initial load
duke
parents:
diff changeset
    94
06bc494ca11e Initial load
duke
parents:
diff changeset
    95
checksrc15
06bc494ca11e Initial load
duke
parents:
diff changeset
    96
checksrc15 -target 1.5
06bc494ca11e Initial load
duke
parents:
diff changeset
    97
checksrc15 -source 1.5
06bc494ca11e Initial load
duke
parents:
diff changeset
    98
06bc494ca11e Initial load
duke
parents:
diff changeset
    99
checksrc16 -target 1.6
06bc494ca11e Initial load
duke
parents:
diff changeset
   100
checksrc16 -target 6
06bc494ca11e Initial load
duke
parents:
diff changeset
   101
checksrc16 -source 1.6
06bc494ca11e Initial load
duke
parents:
diff changeset
   102
checksrc16 -source 6
06bc494ca11e Initial load
duke
parents:
diff changeset
   103
06bc494ca11e Initial load
duke
parents:
diff changeset
   104
fail -source 1.5 -target 1.4 $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
   105
fail -source 1.6 -target 1.4 $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
   106
fail -source 6   -target 1.4 $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
   107
fail -source 1.6 -target 1.5 $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
   108
fail -source 6   -target 1.5 $TC/X.java