ART: Fix GetAllStackTraces
Correctly select threads, skip starting threads. Amend test.
Bug: 31684812
Test: m ART_TEST_JIT=true test-art-host-run-test-911-get-stack-trace
Change-Id: Ieae6ba135ec7ec677615064ca020e10e14ec2cfe
diff --git a/test/911-get-stack-trace/src/Main.java b/test/911-get-stack-trace/src/Main.java
index 500e945..3479abb 100644
--- a/test/911-get-stack-trace/src/Main.java
+++ b/test/911-get-stack-trace/src/Main.java
@@ -116,12 +116,21 @@
t.join();
}
+ private final static List<Object> RETAIN = new ArrayList<Object>();
+
public static void doTestAllStackTraces() throws Exception {
System.out.println();
System.out.println("################################");
System.out.println("### Other threads (suspended) ###");
System.out.println("################################");
+ // Also create an unstarted and a dead thread.
+ RETAIN.add(new Thread());
+ Thread deadThread = new Thread();
+ RETAIN.add(deadThread);
+ deadThread.start();
+ deadThread.join();
+
final int N = 10;
final ControlData data = new ControlData(N);
@@ -155,6 +164,8 @@
for (int i = 0; i < N; i++) {
threads[i].join();
}
+
+ RETAIN.clear();
}
public static void print(String[][] stack) {