9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /**
25 * @test
26 * @bug 8074551
27 * @modules java.base/jdk.internal.misc
28 * @library /testlibrary
29 * @run main PollutedTrapCounts
30 */
31 import java.lang.invoke.*;
32 import jdk.test.lib.*;
33
34 public class PollutedTrapCounts {
35 public static void main(String[] args) throws Exception {
36 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
37 "-XX:+IgnoreUnrecognizedVMOptions",
38 "-XX:-TieredCompilation", "-Xbatch",
39 "-XX:PerBytecodeRecompilationCutoff=10", "-XX:PerMethodRecompilationCutoff=10",
40 "-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintInlining",
41 "PollutedTrapCounts$Test");
42
43 OutputAnalyzer analyzer = new OutputAnalyzer(pb.start());
44
45 analyzer.shouldHaveExitValue(0);
46
47 analyzer.shouldNotContain("not compilable (disabled)");
48 }
49
50 static class Test {
51 public static final MethodHandle test1;
52 public static final MethodHandle test2;
53 public static final MethodHandle empty;
54
55 static {
56 try {
57 Class<?> THIS_CLASS = Test.class;
58 MethodHandles.Lookup LOOKUP = MethodHandles.lookup();
59 test1 = LOOKUP.findStatic(THIS_CLASS, "test1", MethodType.methodType(boolean.class, boolean.class));
60 test2 = LOOKUP.findStatic(THIS_CLASS, "test2", MethodType.methodType(boolean.class, boolean.class));
61 empty = LOOKUP.findStatic(THIS_CLASS, "empty", MethodType.methodType(void.class, boolean.class));
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /**
25 * @test
26 * @bug 8074551
27 * @modules java.base/jdk.internal.misc
28 * @library /testlibrary
29 *
30 * @run driver compiler.jsr292.PollutedTrapCounts
31 */
32
33 package compiler.jsr292;
34
35 import jdk.test.lib.OutputAnalyzer;
36 import jdk.test.lib.ProcessTools;
37
38 import java.lang.invoke.MethodHandle;
39 import java.lang.invoke.MethodHandles;
40 import java.lang.invoke.MethodType;
41
42 public class PollutedTrapCounts {
43 public static void main(String[] args) throws Exception {
44 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
45 "-XX:+IgnoreUnrecognizedVMOptions",
46 "-XX:-TieredCompilation", "-Xbatch",
47 "-XX:PerBytecodeRecompilationCutoff=10", "-XX:PerMethodRecompilationCutoff=10",
48 "-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintInlining",
49 Test.class.getName());
50
51 OutputAnalyzer analyzer = new OutputAnalyzer(pb.start());
52
53 analyzer.shouldHaveExitValue(0);
54
55 analyzer.shouldNotContain("not compilable (disabled)");
56 }
57
58 static class Test {
59 public static final MethodHandle test1;
60 public static final MethodHandle test2;
61 public static final MethodHandle empty;
62
63 static {
64 try {
65 Class<?> THIS_CLASS = Test.class;
66 MethodHandles.Lookup LOOKUP = MethodHandles.lookup();
67 test1 = LOOKUP.findStatic(THIS_CLASS, "test1", MethodType.methodType(boolean.class, boolean.class));
68 test2 = LOOKUP.findStatic(THIS_CLASS, "test2", MethodType.methodType(boolean.class, boolean.class));
69 empty = LOOKUP.findStatic(THIS_CLASS, "empty", MethodType.methodType(void.class, boolean.class));
|