1 # |
1 # |
2 # Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. |
2 # Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. |
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 # |
4 # |
5 # This code is free software; you can redistribute it and/or modify it |
5 # This code is free software; you can redistribute it and/or modify it |
6 # under the terms of the GNU General Public License version 2 only, as |
6 # under the terms of the GNU General Public License version 2 only, as |
7 # published by the Free Software Foundation. |
7 # published by the Free Software Foundation. |
20 # or visit www.oracle.com if you need additional information or have any |
20 # or visit www.oracle.com if you need additional information or have any |
21 # questions. |
21 # questions. |
22 # |
22 # |
23 |
23 |
24 # @test |
24 # @test |
25 # @bug 4981566 5028634 5094412 6304984 7025786 7025789 8001112 |
25 # @bug 4981566 5028634 5094412 6304984 7025786 7025789 8001112 8028545 8000961 |
26 # @summary Check interpretation of -target and -source options |
26 # @summary Check interpretation of -target and -source options |
27 # @build CheckClassFileVersion |
27 # @build CheckClassFileVersion |
28 # @run shell check.sh |
28 # @run shell check.sh |
29 |
29 |
30 TESTJAVA=${TESTJAVA:?} |
30 TESTJAVA=${TESTJAVA:?} |
42 # Check class-file versions |
42 # Check class-file versions |
43 |
43 |
44 check() { |
44 check() { |
45 V=$1; shift |
45 V=$1; shift |
46 echo "+ javac $* [$V]" |
46 echo "+ javac $* [$V]" |
47 "$JC" ${TESTTOOLVMOPTS} -d $TC $* $TC/X.java && "$J" $CFV $TC/X.class $V || exit 2 |
47 "$JC" ${TESTTOOLVMOPTS} -Xlint:-options -d $TC $* $TC/X.java && "$J" $CFV $TC/X.class $V || exit 2 |
48 } |
48 } |
49 |
49 |
50 # check for all combinations of target values |
50 # check for all combinations of target values |
51 check_target() { |
51 check_target() { |
52 check $1 -source $2 -target $3 |
52 check $1 -source $2 -target $3 |
76 check_target 52.0 1.5 8 |
76 check_target 52.0 1.5 8 |
77 check_source_target 52.0 6 8 |
77 check_source_target 52.0 6 8 |
78 check_source_target 52.0 7 8 |
78 check_source_target 52.0 7 8 |
79 check_source_target 52.0 8 8 |
79 check_source_target 52.0 8 8 |
80 |
80 |
|
81 check_target 52.0 1.5 9 |
|
82 check_source_target 52.0 8 9 |
|
83 check_source_target 52.0 9 9 |
|
84 |
81 # and finally the default with no options |
85 # and finally the default with no options |
82 check 52.0 |
86 check 52.0 |
83 |
87 |
84 # Check source versions |
88 # Check source versions |
85 |
89 |
86 fail() { |
90 fail() { |
87 echo "+ javac $*" |
91 echo "+ javac $*" |
88 if "$JC" ${TESTTOOLVMOPTS} -d $TC $*; then |
92 if "$JC" ${TESTTOOLVMOPTS} -Xlint:-options -d $TC $*; then |
89 echo "-- did not fail as expected" |
93 echo "-- did not fail as expected" |
90 exit 3 |
94 exit 3 |
91 else |
95 else |
92 echo "-- failed as expected" |
96 echo "-- failed as expected" |
93 fi |
97 fi |
94 } |
98 } |
95 |
99 |
96 pass() { |
100 pass() { |
97 echo "+ javac $*" |
101 echo "+ javac $*" |
98 if "$JC" ${TESTTOOLVMOPTS} -d $TC $*; then |
102 if "$JC" ${TESTTOOLVMOPTS} -Xlint:options -d $TC $*; then |
99 echo "-- passed" |
103 echo "-- passed" |
100 else |
104 else |
101 echo "-- failed" |
105 echo "-- failed" |
102 exit 4 |
106 exit 4 |
103 fi |
107 fi |
107 checksrc14() { pass $* $TC/X.java; fail $* $TC/Y.java; } |
111 checksrc14() { pass $* $TC/X.java; fail $* $TC/Y.java; } |
108 checksrc15() { pass $* $TC/X.java; pass $* $TC/Y.java; } |
112 checksrc15() { pass $* $TC/X.java; pass $* $TC/Y.java; } |
109 checksrc16() { checksrc15 $* ; } |
113 checksrc16() { checksrc15 $* ; } |
110 checksrc17() { checksrc15 $* ; } |
114 checksrc17() { checksrc15 $* ; } |
111 checksrc18() { checksrc15 $* ; } |
115 checksrc18() { checksrc15 $* ; } |
|
116 checksrc19() { checksrc15 $* ; } |
112 |
117 |
113 checksrc14 -source 1.4 |
118 checksrc14 -source 1.4 |
114 checksrc14 -source 1.4 -target 1.5 |
119 checksrc14 -source 1.4 -target 1.5 |
115 |
120 |
116 checksrc15 -source 1.5 |
121 checksrc15 -source 1.5 |
124 checksrc17 -source 1.7 |
129 checksrc17 -source 1.7 |
125 checksrc17 -source 7 |
130 checksrc17 -source 7 |
126 checksrc17 -source 1.7 -target 1.7 |
131 checksrc17 -source 1.7 -target 1.7 |
127 checksrc17 -source 7 -target 7 |
132 checksrc17 -source 7 -target 7 |
128 |
133 |
129 checksrc18 |
|
130 checksrc18 -target 1.8 |
|
131 checksrc18 -target 8 |
|
132 checksrc18 -source 1.8 |
134 checksrc18 -source 1.8 |
133 checksrc18 -source 8 |
135 checksrc18 -source 8 |
134 checksrc18 -source 1.8 -target 1.8 |
136 checksrc18 -source 1.8 -target 1.8 |
135 checksrc18 -source 8 -target 8 |
137 checksrc18 -source 8 -target 8 |
|
138 |
|
139 checksrc19 |
|
140 checksrc19 -source 1.9 |
|
141 checksrc19 -source 9 |
|
142 checksrc19 -source 1.9 -target 1.9 |
|
143 checksrc19 -source 9 -target 9 |
|
144 checksrc19 -target 1.9 |
|
145 checksrc19 -target 9 |
136 |
146 |
137 fail -source 1.5 -target 1.4 $TC/X.java |
147 fail -source 1.5 -target 1.4 $TC/X.java |
138 fail -source 1.6 -target 1.4 $TC/X.java |
148 fail -source 1.6 -target 1.4 $TC/X.java |
139 fail -source 6 -target 1.4 $TC/X.java |
149 fail -source 6 -target 1.4 $TC/X.java |
140 fail -source 1.6 -target 1.5 $TC/X.java |
150 fail -source 1.6 -target 1.5 $TC/X.java |
141 fail -source 6 -target 1.5 $TC/X.java |
151 fail -source 6 -target 1.5 $TC/X.java |
142 fail -source 7 -target 1.6 $TC/X.java |
152 fail -source 7 -target 1.6 $TC/X.java |
143 fail -source 8 -target 1.6 $TC/X.java |
153 fail -source 8 -target 1.6 $TC/X.java |
144 fail -source 8 -target 1.7 $TC/X.java |
154 fail -source 8 -target 1.7 $TC/X.java |
|
155 fail -source 9 -target 1.7 $TC/X.java |
|
156 fail -source 9 -target 1.8 $TC/X.java |