summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/083-jit-regressions/expected.txt4
-rw-r--r--tests/083-jit-regressions/src/Main.java45
2 files changed, 46 insertions, 3 deletions
diff --git a/tests/083-jit-regressions/expected.txt b/tests/083-jit-regressions/expected.txt
index 780f71b15..e1db13413 100644
--- a/tests/083-jit-regressions/expected.txt
+++ b/tests/083-jit-regressions/expected.txt
@@ -1 +1,5 @@
b2296099 Passes
+Spinning away at priority 10
+Spinning away at priority 5
+Spinning away at priority 1
+done
diff --git a/tests/083-jit-regressions/src/Main.java b/tests/083-jit-regressions/src/Main.java
index e6a18ba8f..24f073e81 100644
--- a/tests/083-jit-regressions/src/Main.java
+++ b/tests/083-jit-regressions/src/Main.java
@@ -20,6 +20,7 @@
public class Main {
public static void main(String args[]) throws Exception {
b2296099Test();
+ b2302318Test();
}
static void b2296099Test() throws Exception {
@@ -43,7 +44,45 @@ public class Main {
System.out.println("b2296099 Passes");
}
- static int rotateLeft(int i, int distance) {
- return ((i << distance) | (i >>> (-distance)));
- }
+ static int rotateLeft(int i, int distance) {
+ return ((i << distance) | (i >>> (-distance)));
+ }
+
+ static void b2302318Test() {
+ System.gc();
+
+ SpinThread slow = new SpinThread(Thread.MIN_PRIORITY);
+ SpinThread fast1 = new SpinThread(Thread.NORM_PRIORITY);
+ SpinThread fast2 = new SpinThread(Thread.MAX_PRIORITY);
+
+ slow.setDaemon(true);
+ fast1.setDaemon(true);
+ fast2.setDaemon(true);
+
+ fast2.start();
+ slow.start();
+ fast1.start();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException ie) {/*ignore */}
+ System.gc();
+
+ System.out.println("done");
+ }
+}
+
+class SpinThread extends Thread {
+ int mPriority;
+
+ SpinThread(int prio) {
+ super("Spin prio=" + prio);
+ mPriority = prio;
+ }
+
+ public void run() {
+ setPriority(mPriority);
+ System.out.println("Spinning away at priority " + mPriority);
+
+ while (true) {}
+ }
}