langtools/test/tools/javac/versions/check.sh
author jjg
Fri, 09 Apr 2010 15:39:39 -0700
changeset 5319 63dc7f367a37
parent 2983 1d164c36212a
child 5520 86e4b9a9da40
permissions -rw-r--r--
6942649: add hidden option to identify location and version of javac classes Reviewed-by: darcy
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
# @build CheckClassFileVersion
2983
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    28
# @run shell check.sh 
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    29
06bc494ca11e Initial load
duke
parents:
diff changeset
    30
TESTJAVA=${TESTJAVA:?}
06bc494ca11e Initial load
duke
parents:
diff changeset
    31
TC=${TESTCLASSES-.}
06bc494ca11e Initial load
duke
parents:
diff changeset
    32
06bc494ca11e Initial load
duke
parents:
diff changeset
    33
J="$TESTJAVA/bin/java" 
06bc494ca11e Initial load
duke
parents:
diff changeset
    34
JC="$TESTJAVA/bin/javac" 
06bc494ca11e Initial load
duke
parents:
diff changeset
    35
CFV="$J ${TESTVMOPTS} -cp $TC CheckClassFileVersion"
06bc494ca11e Initial load
duke
parents:
diff changeset
    36
06bc494ca11e Initial load
duke
parents:
diff changeset
    37
rm -f $TC/X.java $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
    38
echo 'public class X { }' > $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
    39
echo 'public enum Y { }' > $TC/Y.java
06bc494ca11e Initial load
duke
parents:
diff changeset
    40
06bc494ca11e Initial load
duke
parents:
diff changeset
    41
06bc494ca11e Initial load
duke
parents:
diff changeset
    42
# Check class-file versions
06bc494ca11e Initial load
duke
parents:
diff changeset
    43
06bc494ca11e Initial load
duke
parents:
diff changeset
    44
check() {
06bc494ca11e Initial load
duke
parents:
diff changeset
    45
  V=$1; shift
06bc494ca11e Initial load
duke
parents:
diff changeset
    46
  echo "+ javac $* [$V]"
06bc494ca11e Initial load
duke
parents:
diff changeset
    47
  $JC ${TESTTOOLVMOPTS} -d $TC $* $TC/X.java && $CFV $TC/X.class $V || exit 2
06bc494ca11e Initial load
duke
parents:
diff changeset
    48
}
06bc494ca11e Initial load
duke
parents:
diff changeset
    49
06bc494ca11e Initial load
duke
parents:
diff changeset
    50
check 48.0 -source 1.4
2983
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    51
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    52
check 49.0 -source 1.4 -target 1.5
2983
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    53
check 49.0 -source 1.5 -target 1.5
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    54
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    55
check 50.0 -source 1.4 -target 1.6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    56
check 50.0 -source 1.5 -target 1.6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    57
check 50.0 -source 1.6 -target 1.6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    58
check 50.0 -source 1.6 -target 6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    59
check 50.0 -source 6 -target 1.6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    60
check 50.0 -source 6 -target 6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    61
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    62
check 51.0
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    63
check 51.0 -source 1.5
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    64
check 51.0 -source 1.6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    65
check 51.0 -source 6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    66
check 51.0 -source 1.7
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    67
check 51.0 -source 7
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    68
check 51.0 -target 1.7
06bc494ca11e Initial load
duke
parents:
diff changeset
    69
check 51.0 -target 7
06bc494ca11e Initial load
duke
parents:
diff changeset
    70
06bc494ca11e Initial load
duke
parents:
diff changeset
    71
06bc494ca11e Initial load
duke
parents:
diff changeset
    72
# Check source versions
06bc494ca11e Initial load
duke
parents:
diff changeset
    73
06bc494ca11e Initial load
duke
parents:
diff changeset
    74
fail() {
06bc494ca11e Initial load
duke
parents:
diff changeset
    75
  echo "+ javac $*"
06bc494ca11e Initial load
duke
parents:
diff changeset
    76
  if $JC ${TESTTOOLVMOPTS} -d $TC $*; then
06bc494ca11e Initial load
duke
parents:
diff changeset
    77
    echo "-- did not fail as expected"
06bc494ca11e Initial load
duke
parents:
diff changeset
    78
    exit 3
06bc494ca11e Initial load
duke
parents:
diff changeset
    79
  else
06bc494ca11e Initial load
duke
parents:
diff changeset
    80
    echo "-- failed as expected"
06bc494ca11e Initial load
duke
parents:
diff changeset
    81
  fi
06bc494ca11e Initial load
duke
parents:
diff changeset
    82
}
06bc494ca11e Initial load
duke
parents:
diff changeset
    83
06bc494ca11e Initial load
duke
parents:
diff changeset
    84
pass() {
06bc494ca11e Initial load
duke
parents:
diff changeset
    85
  echo "+ javac $*"
06bc494ca11e Initial load
duke
parents:
diff changeset
    86
  if $JC ${TESTTOOLVMOPTS} -d $TC $*; then
06bc494ca11e Initial load
duke
parents:
diff changeset
    87
    echo "-- passed"
06bc494ca11e Initial load
duke
parents:
diff changeset
    88
  else
06bc494ca11e Initial load
duke
parents:
diff changeset
    89
    echo "-- failed"
06bc494ca11e Initial load
duke
parents:
diff changeset
    90
    exit 4
06bc494ca11e Initial load
duke
parents:
diff changeset
    91
  fi
06bc494ca11e Initial load
duke
parents:
diff changeset
    92
}
06bc494ca11e Initial load
duke
parents:
diff changeset
    93
2983
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    94
# the following need to be updated when -source 7 features are available
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    95
checksrc14() { pass $* $TC/X.java; fail $* $TC/Y.java; }
06bc494ca11e Initial load
duke
parents:
diff changeset
    96
checksrc15() { pass $* $TC/X.java; pass $* $TC/Y.java; }
06bc494ca11e Initial load
duke
parents:
diff changeset
    97
checksrc16() { checksrc15 $* ; }
2983
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
    98
checksrc17() { checksrc15 $* ; }
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    99
06bc494ca11e Initial load
duke
parents:
diff changeset
   100
checksrc14 -source 1.4
06bc494ca11e Initial load
duke
parents:
diff changeset
   101
checksrc14 -source 1.4 -target 1.5
06bc494ca11e Initial load
duke
parents:
diff changeset
   102
06bc494ca11e Initial load
duke
parents:
diff changeset
   103
checksrc15 -source 1.5
2983
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   104
checksrc15 -source 1.5 -target 1.5
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   105
06bc494ca11e Initial load
duke
parents:
diff changeset
   106
checksrc16 -source 1.6
06bc494ca11e Initial load
duke
parents:
diff changeset
   107
checksrc16 -source 6
2983
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   108
checksrc16 -source 1.6 -target 1.6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   109
checksrc16 -source 6 -target 6
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   110
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   111
checksrc17
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   112
checksrc17 -target 1.7
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   113
checksrc17 -target 7
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   114
checksrc17 -source 1.7
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   115
checksrc17 -source 7
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   116
checksrc17 -source 1.7 -target 1.7
1d164c36212a 6843648: tools/javac/versions/check.sh is broken
jjg
parents: 10
diff changeset
   117
checksrc17 -source 7 -target 7
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   118
06bc494ca11e Initial load
duke
parents:
diff changeset
   119
fail -source 1.5 -target 1.4 $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
   120
fail -source 1.6 -target 1.4 $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
   121
fail -source 6   -target 1.4 $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
   122
fail -source 1.6 -target 1.5 $TC/X.java
06bc494ca11e Initial load
duke
parents:
diff changeset
   123
fail -source 6   -target 1.5 $TC/X.java