< prev index next >
test/hotspot/jtreg/containers/docker/TestMemoryAwareness.java
Print this page
rev 55912 : 8229182: runtime/containers/docker/TestMemoryAwareness.java test fails on SLES12
*** 1,7 ****
/*
! * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 35,45 ****
* @run driver TestMemoryAwareness
*/
import jdk.test.lib.containers.docker.Common;
import jdk.test.lib.containers.docker.DockerRunOptions;
import jdk.test.lib.containers.docker.DockerTestUtils;
!
public class TestMemoryAwareness {
private static final String imageName = Common.imageName("memory");
public static void main(String[] args) throws Exception {
--- 35,45 ----
* @run driver TestMemoryAwareness
*/
import jdk.test.lib.containers.docker.Common;
import jdk.test.lib.containers.docker.DockerRunOptions;
import jdk.test.lib.containers.docker.DockerTestUtils;
! import jdk.test.lib.process.OutputAnalyzer;
public class TestMemoryAwareness {
private static final String imageName = Common.imageName("memory");
public static void main(String[] args) throws Exception {
*** 96,112 ****
// provoke OOM inside the container, see how VM reacts
private static void testOOM(String dockerMemLimit, int sizeToAllocInMb) throws Exception {
Common.logNewTestCase("OOM");
DockerRunOptions opts = Common.newOpts(imageName, "AttemptOOM")
! .addDockerOpts("--memory", dockerMemLimit, "--memory-swap", dockerMemLimit);
opts.classParams.add("" + sizeToAllocInMb);
! DockerTestUtils.dockerRunJava(opts)
! .shouldHaveExitValue(1)
! .shouldContain("Entering AttemptOOM main")
.shouldNotContain("AttemptOOM allocation successful")
.shouldContain("java.lang.OutOfMemoryError");
}
}
--- 96,123 ----
// provoke OOM inside the container, see how VM reacts
private static void testOOM(String dockerMemLimit, int sizeToAllocInMb) throws Exception {
Common.logNewTestCase("OOM");
+ // add "--memory-swappiness 0" so as to disable anonymous page swapping.
DockerRunOptions opts = Common.newOpts(imageName, "AttemptOOM")
! .addDockerOpts("--memory", dockerMemLimit, "--memory-swappiness", "0", "--memory-swap", dockerMemLimit);
opts.classParams.add("" + sizeToAllocInMb);
! // make sure we avoid inherited Xmx settings from the jtreg vmoptions
! // set Xmx ourselves instead
! System.out.println("sizeToAllocInMb is:" + sizeToAllocInMb + " sizeToAllocInMb/2 is:" + sizeToAllocInMb/2);
! String javaHeapSize = sizeToAllocInMb/2 + "m";
! opts.addJavaOptsAppended("-Xmx" + javaHeapSize);
!
! OutputAnalyzer out = DockerTestUtils.dockerRunJava(opts);
!
! if (out.getExitValue() == 0) {
! throw new RuntimeException("We exited successfully, but we wanted to provoke an OOM inside the container");
! }
!
! out.shouldContain("Entering AttemptOOM main")
.shouldNotContain("AttemptOOM allocation successful")
.shouldContain("java.lang.OutOfMemoryError");
}
}
< prev index next >