aboutsummaryrefslogtreecommitdiff
path: root/src/com/google/android/droiddriver/runner/TestRunner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/google/android/droiddriver/runner/TestRunner.java')
-rw-r--r--src/com/google/android/droiddriver/runner/TestRunner.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/com/google/android/droiddriver/runner/TestRunner.java b/src/com/google/android/droiddriver/runner/TestRunner.java
index 5047e6f..8e86a20 100644
--- a/src/com/google/android/droiddriver/runner/TestRunner.java
+++ b/src/com/google/android/droiddriver/runner/TestRunner.java
@@ -71,15 +71,17 @@ public class TestRunner extends InstrumentationTestRunner {
public void endTest(Test test) {
// Try to finish activity on best-effort basis - TestListener should
// not throw.
+ final Activity[] activitiesCopy;
+ synchronized (activities) {
+ if (activities.isEmpty()) {
+ return;
+ }
+ activitiesCopy = activities.toArray(new Activity[activities.size()]);
+ }
+
runOnMainSyncWithTimeLimit(new Runnable() {
@Override
public void run() {
- Activity[] activitiesCopy;;
- synchronized (activities) {
- activitiesCopy = new Activity[activities.size()];
- activitiesCopy = activities.toArray(activitiesCopy);
- }
-
for (Activity activity : activitiesCopy) {
if (!activity.isFinishing()) {
try {
@@ -202,7 +204,7 @@ public class TestRunner extends InstrumentationTestRunner {
Logs.log(Log.WARN, e, String.format(
"Timed out after %d milliseconds waiting for Instrumentation.runOnMainSync",
timeoutMillis));
- futureTask.cancel(true);
+ futureTask.cancel(false);
return false;
}
}