Make tests 1995, 2001, & 2005 less likely to OOME.
In some situations when run on a severly overloaded machine tests
1995, 2001 and 2005 could fail due to OOMEs being thrown. Limit the
amount of memory the tests will use to prevent this from happening.
Test: ./test.py --host
Bug: 147190668
Change-Id: Ic5ea4405d6638c110456c3119b37c29d6f658bf7
diff --git a/test/1995-final-virtual-structural-multithread/src/art/Test1995.java b/test/1995-final-virtual-structural-multithread/src/art/Test1995.java
index 1ffee60..7073494 100644
--- a/test/1995-final-virtual-structural-multithread/src/art/Test1995.java
+++ b/test/1995-final-virtual-structural-multithread/src/art/Test1995.java
@@ -22,6 +22,8 @@
import java.util.concurrent.CountDownLatch;
public class Test1995 {
private static final int NUM_THREADS = 20;
+ // Don't perform more than this many repeats per thread to prevent OOMEs
+ private static final int TASK_COUNT_LIMIT = 1000;
public static final class Transform {
public String greetingEnglish;
@@ -107,14 +109,14 @@
public MyThread(CountDownLatch delay, int id) {
super("Thread: " + id);
this.thr_id = id;
- this.results = new ArrayList<>(1000);
+ this.results = new ArrayList<>(TASK_COUNT_LIMIT);
this.finish = false;
this.delay = delay;
}
public void run() {
delay.countDown();
- while (!finish) {
+ while (!finish && results.size() < TASK_COUNT_LIMIT) {
Transform t = new Transform();
results.add(t.sayHi());
}
diff --git a/test/2001-virtual-structural-multithread/src-art/art/Test2001.java b/test/2001-virtual-structural-multithread/src-art/art/Test2001.java
index e6ee0ce..40972db 100644
--- a/test/2001-virtual-structural-multithread/src-art/art/Test2001.java
+++ b/test/2001-virtual-structural-multithread/src-art/art/Test2001.java
@@ -25,6 +25,8 @@
public class Test2001 {
private static final int NUM_THREADS = 20;
+ // Don't perform more than this many repeats per thread to prevent OOMEs
+ private static final int TASK_COUNT_LIMIT = 1000;
public static class Transform {
public String greetingEnglish;
@@ -167,14 +169,14 @@
public MyThread(CountDownLatch delay, int id) {
super("Thread: " + id);
this.thr_id = id;
- this.results = new ArrayList<>(1000);
+ this.results = new ArrayList<>(TASK_COUNT_LIMIT);
this.finish = false;
this.delay = delay;
}
public void run() {
delay.countDown();
- while (!finish) {
+ while (!finish && results.size() < TASK_COUNT_LIMIT) {
Supplier<String> t = mkTransform();
results.add(t.get());
}
diff --git a/test/2005-pause-all-redefine-multithreaded/src/art/Test2005.java b/test/2005-pause-all-redefine-multithreaded/src/art/Test2005.java
index 6fdadb7..efae915 100644
--- a/test/2005-pause-all-redefine-multithreaded/src/art/Test2005.java
+++ b/test/2005-pause-all-redefine-multithreaded/src/art/Test2005.java
@@ -22,6 +22,8 @@
public class Test2005 {
private static final int NUM_THREADS = 20;
private static final String DEFAULT_VAL = "DEFAULT_VALUE";
+ // Don't perform more than this many repeats per thread to prevent OOMEs
+ private static final int TASK_COUNT_LIMIT = 1000;
public static final class Transform {
public String greetingEnglish;
@@ -108,14 +110,14 @@
public MyThread(CountDownLatch delay, int id) {
super("Thread: " + id);
this.thr_id = id;
- this.results = new ArrayList<>(1000);
+ this.results = new ArrayList<>(TASK_COUNT_LIMIT);
this.finish = false;
this.delay = delay;
}
public void run() {
delay.countDown();
- while (!finish) {
+ while (!finish && results.size() < TASK_COUNT_LIMIT) {
Transform t = new Transform();
results.add(t.sayHi());
}