am 242a8803: am 08d7ee6e: am 770128da: am cee91a3b: am 3468f856: Merge "Fix for TextureViewTest" into jb-dev

* commit '242a880349e6ef74719a19e3310d5c5343acfef5':
  Fix for TextureViewTest
diff --git a/tests/tests/textureview/src/android/textureview/cts/TextureViewTestActivity.java b/tests/tests/textureview/src/android/textureview/cts/TextureViewTestActivity.java
index 92d9f89..6567387 100644
--- a/tests/tests/textureview/src/android/textureview/cts/TextureViewTestActivity.java
+++ b/tests/tests/textureview/src/android/textureview/cts/TextureViewTestActivity.java
@@ -20,7 +20,9 @@
 import android.app.Activity;
 import android.graphics.SurfaceTexture;
 import android.os.Bundle;
+import android.view.Display;
 import android.view.TextureView;
+import android.view.WindowManager;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 import junit.framework.Assert;
@@ -52,11 +54,32 @@
         animSet.start();
     }
 
+    private static int addMargin(int a) {
+         /* Worst case is 2 * actual refresh rate, in case when the delay pushes the frame off
+          * VSYNC every frame.
+          */
+         return 2 * a;
+    }
+
+    private static int roundUpFrame(int a, int b) {
+         /* Need to give time based on (frame duration limited by refresh rate + delay given
+          * from the test)
+          */
+         return (a + b + 1);
+    }
+
+
     public Boolean waitForCompletion() {
         Boolean success = false;
-        int timeout = mFrames * mDelayMs * 4;
+        int oneframeMs;
+
+        WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
+        Display display = wm.getDefaultDisplay();
+        float rate = display.getRefreshRate();
+        oneframeMs = roundUpFrame(mDelayMs, (int)(1000.0f / rate));
         try {
-            success = mSemaphore.tryAcquire(timeout, TimeUnit.MILLISECONDS);
+            success = mSemaphore.tryAcquire(addMargin(oneframeMs * mFrames),
+                    TimeUnit.MILLISECONDS);
         } catch (InterruptedException e) {
             Assert.fail();
         }