OpenJDK / portola / portola
changeset 27920:b34081fac06c
8066448: SmallCodeCacheStartup.java exits with exit code 1
Summary: Check for VirtualMachineError in case VM initialization fails.
Reviewed-by: kvn
author | thartmann |
---|---|
date | Thu, 04 Dec 2014 09:52:15 +0100 |
parents | f1c3cf5737dc |
children | 5462454ce541 |
files | hotspot/src/share/vm/oops/method.cpp hotspot/test/compiler/startup/SmallCodeCacheStartup.java |
diffstat | 2 files changed, 18 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/hotspot/src/share/vm/oops/method.cpp Tue Dec 02 12:24:31 2014 -0800 +++ b/hotspot/src/share/vm/oops/method.cpp Thu Dec 04 09:52:15 2014 +0100 @@ -936,7 +936,7 @@ // so making them eagerly shouldn't be too expensive. AdapterHandlerEntry* adapter = AdapterHandlerLibrary::get_adapter(mh); if (adapter == NULL ) { - THROW_MSG_NULL(vmSymbols::java_lang_VirtualMachineError(), "out of space in CodeCache for adapters"); + THROW_MSG_NULL(vmSymbols::java_lang_VirtualMachineError(), "Out of space in CodeCache for adapters"); } mh->set_adapter_entry(adapter);
--- a/hotspot/test/compiler/startup/SmallCodeCacheStartup.java Tue Dec 02 12:24:31 2014 -0800 +++ b/hotspot/test/compiler/startup/SmallCodeCacheStartup.java Thu Dec 04 09:52:15 2014 +0100 @@ -24,22 +24,29 @@ /* * @test * @bug 8023014 - * @summary Test ensures that there is no crash if there is not enough ReservedCodeacacheSize + * @summary Test ensures that there is no crash if there is not enough ReservedCodeCacheSize * to initialize all compiler threads. The option -Xcomp gives the VM more time to - * to trigger the old bug. + * trigger the old bug. * @library /testlibrary */ import com.oracle.java.testlibrary.*; +import static com.oracle.java.testlibrary.Asserts.assertTrue; public class SmallCodeCacheStartup { - public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=3m", - "-XX:CICompilerCount=64", - "-Xcomp", - "-version"); - OutputAnalyzer analyzer = new OutputAnalyzer(pb.start()); - analyzer.shouldHaveExitValue(0); + public static void main(String[] args) throws Exception { + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=3m", + "-XX:CICompilerCount=64", + "-Xcomp", + "-version"); + OutputAnalyzer analyzer = new OutputAnalyzer(pb.start()); + try { + analyzer.shouldHaveExitValue(0); + } catch (RuntimeException e) { + // Error occurred during initialization, did we run out of adapter space? + assertTrue(analyzer.getOutput().contains("VirtualMachineError: Out of space in CodeCache"), + "Expected VirtualMachineError"); + } - System.out.println("TEST PASSED"); + System.out.println("TEST PASSED"); } }