Increase 053-wait delay tolerance

Allow longer unexpected delays. Add a limit on the total unrequested
delay over all different wait times.

Test: art/test/run-test --host 053-wait-some
Bug: 175435088
Change-Id: I7e751b676aab65b6944436a46e93c9d205ed6548
diff --git a/test/053-wait-some/src/Main.java b/test/053-wait-some/src/Main.java
index 3fcaa82..0fd9e8d 100644
--- a/test/053-wait-some/src/Main.java
+++ b/test/053-wait-some/src/Main.java
@@ -42,6 +42,7 @@
                 ie.printStackTrace(System.out);
             }
 
+            long total_extra_delay = 0;
             for (long delay : DELAYS) {
                 System.out.println("Waiting for " + delay + "ms...");
 
@@ -57,10 +58,14 @@
                 boolean showTime = timing;
 
                 if (! timing) {
-                    // Allow a random scheduling delay of at least 100 msecs.
-                    final long epsilon = Math.max(delay / 20, 100);
+                    // Allow a random scheduling delay of up to 600 msecs.
+                    // That value is empirically determined from failure logs.
+                    // We seem to get very occasional very long delays on host, perhaps due
+                    // to getting paged out.
+                    final long epsilon = 600;
                     long min = delay - 1;
                     long max = delay + epsilon;
+                    total_extra_delay += elapsed - delay;
 
                     if (elapsed < min) {
                         // This can legitimately happen due to premature wake-ups.
@@ -80,6 +85,10 @@
                             + elapsed + "ms");
                 }
             }
+            if (total_extra_delay > 1000) {
+                System.out.println("  Total unrequested delay of " + total_extra_delay
+                    + "msecs was too long");
+            }
         }
     }
 }