author | jlahoda |
Tue, 12 Nov 2019 06:32:13 +0000 | |
changeset 59021 | cfc7bb9a5a92 |
parent 53878 | 4584d0331318 |
permissions | -rw-r--r-- |
52794
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
1 |
/* |
53878
4584d0331318
8219254: Update explicit uses of latest source/target in langtools tests to a property
darcy
parents:
53023
diff
changeset
|
2 |
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. |
52794
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
4 |
* |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
5 |
* This code is free software; you can redistribute it and/or modify it |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation. |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
8 |
* |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
9 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
10 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
11 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
12 |
* version 2 for more details (a copy is included in the LICENSE file that |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
13 |
* accompanied this code). |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
14 |
* |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License version |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
16 |
* 2 along with this work; if not, write to the Free Software Foundation, |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
17 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
18 |
* |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
19 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
20 |
* or visit www.oracle.com if you need additional information or have any |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
21 |
* questions. |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
22 |
*/ |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
23 |
|
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
24 |
/* |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
25 |
* @test |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
26 |
* @bug 8214031 |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
27 |
* @summary Test the CharacterRangeTable generated for switch expressions |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
28 |
* @library /tools/lib |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
29 |
* @modules jdk.compiler/com.sun.tools.javac.api |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
30 |
* jdk.compiler/com.sun.tools.javac.main |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
31 |
* jdk.jdeps/com.sun.tools.javap |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
32 |
* @build toolbox.Assert toolbox.ToolBox toolbox.JavacTask |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
33 |
* @run main CRT |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
34 |
*/ |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
35 |
|
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
36 |
|
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
37 |
import java.nio.file.Path; |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
38 |
import java.nio.file.Paths; |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
39 |
import java.util.stream.Collectors; |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
40 |
|
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
41 |
import toolbox.JavacTask; |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
42 |
import toolbox.JavapTask; |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
43 |
import toolbox.Task.OutputKind; |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
44 |
import toolbox.ToolBox; |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
45 |
|
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
46 |
public class CRT { |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
47 |
public static void main(String... args) throws Exception { |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
48 |
new CRT().run(); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
49 |
} |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
50 |
|
53878
4584d0331318
8219254: Update explicit uses of latest source/target in langtools tests to a property
darcy
parents:
53023
diff
changeset
|
51 |
private static final String SOURCE_VERSION = Integer.toString(Runtime.version().feature()); |
4584d0331318
8219254: Update explicit uses of latest source/target in langtools tests to a property
darcy
parents:
53023
diff
changeset
|
52 |
|
52794
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
53 |
private ToolBox tb = new ToolBox(); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
54 |
|
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
55 |
private void run() throws Exception { |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
56 |
doTest(" private String convert(int i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
57 |
" String res;" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
58 |
" switch (i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
59 |
" case 0: res = \"a\"; break;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
60 |
" default: res = \"\"; break;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
61 |
" };\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
62 |
" return res;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
63 |
" }\n", |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
64 |
"CharacterRangeTable:\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
65 |
" 0, 0, c24, c25, 8 // 0, 0, 3:36, 3:37, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
66 |
" 20, 22, 1015, 101f, 1 // 20, 22, 4:21, 4:31, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
67 |
" 23, 25, 1020, 1026, 1 // 23, 25, 4:32, 4:38, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
68 |
" 20, 25, 1015, 1026, 10 // 20, 25, 4:21, 4:38, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
69 |
" 26, 28, 1416, 141f, 1 // 26, 28, 5:22, 5:31, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
70 |
" 29, 31, 1420, 1426, 1 // 29, 31, 5:32, 5:38, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
71 |
" 26, 31, 1416, 1426, 10 // 26, 31, 5:22, 5:38, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
72 |
" 0, 31, c1c, 180a, 1 // 0, 31, 3:28, 6:10, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
73 |
" 32, 33, 1c09, 1c14, 1 // 32, 33, 7:09, 7:20, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
74 |
" 0, 33, 823, 2006, 2 // 0, 33, 2:35, 8:06, block\n"); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
75 |
doTest(" private String convert(int i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
76 |
" return switch (i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
77 |
" case 0 -> \"a\";\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
78 |
" default -> \"\";\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
79 |
" };\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
80 |
" }\n", |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
81 |
"CharacterRangeTable:\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
82 |
" 0, 0, c18, c19, 8 // 0, 0, 3:24, 3:25, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
83 |
" 20, 24, 1017, 101b, 11 // 20, 24, 4:23, 4:27, statement, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
84 |
" 25, 29, 1418, 141b, 11 // 25, 29, 5:24, 5:27, statement, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
85 |
" 0, 30, c09, 180b, 1 // 0, 30, 3:09, 6:11, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
86 |
" 0, 30, 823, 1c06, 2 // 0, 30, 2:35, 7:06, block"); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
87 |
doTest(" private boolean convert(int i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
88 |
" return switch (i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
89 |
" case 0 -> true;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
90 |
" default -> false;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
91 |
" } && i == 0;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
92 |
" }\n", |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
93 |
"CharacterRangeTable:\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
94 |
" 0, 0, c18, c19, 8 // 0, 0, 3:24, 3:25, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
95 |
" 20, 22, 1017, 101c, 11 // 20, 22, 4:23, 4:28, statement, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
96 |
" 23, 25, 1418, 141e, 11 // 23, 25, 5:24, 5:30, statement, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
97 |
" 0, 25, c10, 180a, 8 // 0, 25, 3:16, 6:10, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
98 |
" 26, 26, 180e, 1814, 10 // 26, 26, 6:14, 6:20, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
99 |
" 0, 35, c09, 1815, 1 // 0, 35, 3:09, 6:21, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
100 |
" 0, 35, 824, 1c06, 2 // 0, 35, 2:36, 7:06, block\n"); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
101 |
doTest(" private boolean convert(int i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
102 |
" return i >= 0 ? i == 0\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
103 |
" ? true\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
104 |
" : false\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
105 |
" : i == -1\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
106 |
" ? false\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
107 |
" : true;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
108 |
" }\n", |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
109 |
"CharacterRangeTable:\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
110 |
" 0, 0, c10, c16, 8 // 0, 0, 3:16, 3:22, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
111 |
" 1, 3, c10, c16, 100 // 1, 3, 3:16, 3:22, branch-false\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
112 |
" 4, 4, c19, c1f, 8 // 4, 4, 3:25, 3:31, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
113 |
" 5, 7, c19, c1f, 100 // 5, 7, 3:25, 3:31, branch-false\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
114 |
" 8, 8, 101b, 101f, 10 // 8, 8, 4:27, 4:31, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
115 |
" 12, 12, 141b, 1420, 10 // 12, 12, 5:27, 5:32, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
116 |
" 4, 12, c19, 1420, 10 // 4, 12, 3:25, 5:32, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
117 |
" 16, 17, 1819, 1820, 8 // 16, 17, 6:25, 6:32, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
118 |
" 18, 20, 1819, 1820, 100 // 18, 20, 6:25, 6:32, branch-false\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
119 |
" 21, 21, 1c1b, 1c20, 10 // 21, 21, 7:27, 7:32, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
120 |
" 25, 25, 201b, 201f, 10 // 25, 25, 8:27, 8:31, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
121 |
" 16, 25, 1819, 201f, 10 // 16, 25, 6:25, 8:31, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
122 |
" 0, 26, c09, 2020, 1 // 0, 26, 3:09, 8:32, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
123 |
" 0, 26, 824, 2406, 2 // 0, 26, 2:36, 9:06, block\n"); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
124 |
doTest(" private boolean convert(int i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
125 |
" return i >= 0 ? switch (i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
126 |
" case 0 -> true;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
127 |
" default -> false;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
128 |
" } : switch (i) {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
129 |
" case -1 -> false;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
130 |
" default -> true;\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
131 |
" };\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
132 |
" }\n", |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
133 |
"CharacterRangeTable:\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
134 |
" 0, 0, c10, c16, 8 // 0, 0, 3:16, 3:22, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
135 |
" 1, 3, c10, c16, 100 // 1, 3, 3:16, 3:22, branch-false\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
136 |
" 4, 4, c21, c22, 8 // 4, 4, 3:33, 3:34, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
137 |
" 24, 27, 1017, 101c, 11 // 24, 27, 4:23, 4:28, statement, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
138 |
" 28, 31, 1418, 141e, 11 // 28, 31, 5:24, 5:30, statement, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
139 |
" 4, 31, c19, 180a, 10 // 4, 31, 3:25, 6:10, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
140 |
" 35, 35, 1815, 1816, 8 // 35, 35, 6:21, 6:22, flow-controller\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
141 |
" 56, 59, 1c18, 1c1e, 11 // 56, 59, 7:24, 7:30, statement, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
142 |
" 60, 63, 2018, 201d, 11 // 60, 63, 8:24, 8:29, statement, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
143 |
" 35, 63, 180d, 240a, 10 // 35, 63, 6:13, 9:10, flow-target\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
144 |
" 0, 64, c09, 240b, 1 // 0, 64, 3:09, 9:11, statement\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
145 |
" 0, 64, 824, 2806, 2 // 0, 64, 2:36, 10:06, block\n"); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
146 |
} |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
147 |
|
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
148 |
private void doTest(String code, String expected) throws Exception { |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
149 |
Path base = Paths.get("."); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
150 |
Path classes = base.resolve("classes"); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
151 |
tb.createDirectories(classes); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
152 |
tb.cleanDirectory(classes); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
153 |
new JavacTask(tb) |
59021 | 154 |
.options("-Xjcov") |
52794
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
155 |
.outdir(classes) |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
156 |
.sources("public class Test {\n" + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
157 |
code + |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
158 |
"}\n") |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
159 |
.run() |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
160 |
.writeAll(); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
161 |
String out = new JavapTask(tb) |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
162 |
.options("-private", |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
163 |
"-verbose", |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
164 |
"-s") |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
165 |
.classpath(classes.toString()) |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
166 |
.classes("Test") |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
167 |
.run() |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
168 |
.writeAll() |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
169 |
.getOutputLines(OutputKind.DIRECT) |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
170 |
.stream() |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
171 |
.collect(Collectors.joining("\n")); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
172 |
String crt = cutCRT(out); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
173 |
if (!expected.trim().equals(crt.trim())) { |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
174 |
throw new AssertionError("Expected CharacterRangeTable not found, found: " + crt); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
175 |
} |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
176 |
} |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
177 |
|
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
178 |
private static String cutCRT(String from) { |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
179 |
int start = from.indexOf("CharacterRangeTable:", from.indexOf("convert(int);")); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
180 |
int end = from.indexOf("StackMapTable:"); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
181 |
return from.substring(start, end); |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
182 |
} |
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
183 |
|
e4ba5414c8b4
8214031: Assertion error in value break statement with conditional operator in switch expression
jlahoda
parents:
diff
changeset
|
184 |
} |