test/compiler/startup/NumCompilerThreadsCheck.java

Fri, 02 May 2014 06:24:39 +0200

author
anoll
date
Fri, 02 May 2014 06:24:39 +0200
changeset 7310
4356234e712a
parent 7307
2eda90444a0d
permissions
-rw-r--r--

8041992: Fix of JDK-8034775 neglects to account for non-JIT VMs
Summary: Allow 0 compiler threads if no JIT is used.
Reviewed-by: kvn, dholmes
Contributed-by: Severin Gehwolf <sgehwolf@redhat.com>

anoll@7307 1 /*
anoll@7307 2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
anoll@7307 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
anoll@7307 4 *
anoll@7307 5 * This code is free software; you can redistribute it and/or modify it
anoll@7307 6 * under the terms of the GNU General Public License version 2 only, as
anoll@7307 7 * published by the Free Software Foundation.
anoll@7307 8 *
anoll@7307 9 * This code is distributed in the hope that it will be useful, but WITHOUT
anoll@7307 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
anoll@7307 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
anoll@7307 12 * version 2 for more details (a copy is included in the LICENSE file that
anoll@7307 13 * accompanied this code).
anoll@7307 14 *
anoll@7307 15 * You should have received a copy of the GNU General Public License version
anoll@7307 16 * 2 along with this work; if not, write to the Free Software Foundation,
anoll@7307 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
anoll@7307 18 *
anoll@7307 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
anoll@7307 20 * or visit www.oracle.com if you need additional information or have any
anoll@7307 21 * questions.
anoll@7307 22 */
anoll@7307 23
anoll@7307 24 /*
anoll@7307 25 * @test
anoll@7307 26 * @bug 8034775
anoll@7307 27 * @summary Ensures correct minimal number of compiler threads (provided by -XX:CICompilerCount=)
anoll@7307 28 * @library /testlibrary
anoll@7307 29 */
anoll@7307 30 import com.oracle.java.testlibrary.*;
anoll@7307 31
anoll@7307 32 public class NumCompilerThreadsCheck {
anoll@7310 33
anoll@7307 34 public static void main(String[] args) throws Exception {
anoll@7307 35 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:CICompilerCount=-1");
anoll@7307 36 OutputAnalyzer out = new OutputAnalyzer(pb.start());
anoll@7307 37
anoll@7307 38 String expectedOutput = "CICompilerCount of -1 is invalid";
anoll@7307 39 out.shouldContain(expectedOutput);
anoll@7310 40
anoll@7310 41 if (isZeroVm()) {
anoll@7310 42 String expectedLowWaterMarkText = "must be at least 0";
anoll@7310 43 out.shouldContain(expectedLowWaterMarkText);
anoll@7310 44 }
anoll@7310 45 }
anoll@7310 46
anoll@7310 47 private static boolean isZeroVm() {
anoll@7310 48 String vmName = System.getProperty("java.vm.name");
anoll@7310 49 if (vmName == null) {
anoll@7310 50 throw new RuntimeException("No VM name");
anoll@7310 51 }
anoll@7310 52 if (vmName.toLowerCase().contains("zero")) {
anoll@7310 53 return true;
anoll@7310 54 }
anoll@7310 55 return false;
anoll@7307 56 }
anoll@7307 57 }

mercurial