LayoutTest platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html is a flaky...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Sep 2017 23:06:19 +0000 (23:06 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Sep 2017 23:06:19 +0000 (23:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=173741

Patch by Youenn Fablet <youenn@apple.com> on 2017-09-21
Reviewed by Alex Christensen.

Making the test more robust by getting the reference canvas to compare with each time a new comparison is done.
Previously, this was done at the start of the comparison.
Also increasing the threshold since we are going from 0 to 255 or vice-versa.

* platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222361 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html

index 11a8b39..2d48d91 100644 (file)
@@ -1,3 +1,16 @@
+2017-09-21  Youenn Fablet  <youenn@apple.com>
+
+        LayoutTest platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html is a flaky failure
+        https://bugs.webkit.org/show_bug.cgi?id=173741
+
+        Reviewed by Alex Christensen.
+
+        Making the test more robust by getting the reference canvas to compare with each time a new comparison is done.
+        Previously, this was done at the start of the comparison.
+        Also increasing the threshold since we are going from 0 to 255 or vice-versa.
+
+        * platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html:
+
 2017-09-21  Joseph Pecoraro  <pecoraro@apple.com>
 
         Web Inspector: Remove support for CSS Regions
index ab6534d..b3e81af 100644 (file)
@@ -21,8 +21,9 @@ function printRectangle(canvas)
 if (window.internals)
     internals.setH264HardwareEncoderAllowed(false);
 
-function testCanvas(testName, array1, isSame, count)
+function testCanvas(testName, canvas, isSame, count)
 {
+    var array1 = canvas.getContext("2d").getImageData(20, 20, 60, 60).data;
     if (count === undefined)
         count = 0;
     canvas2.getContext("2d").drawImage(video, 0 ,0);
@@ -31,7 +32,7 @@ function testCanvas(testName, array1, isSame, count)
     for (var index = 0; index < array1.length; ++index) {
         // Rough comparison since we are compressing data.
         // This test still catches errors since we are going from green to blue to red.
-        if (Math.abs(array1[index] - array2[index]) > 40) {
+        if (Math.abs(array1[index] - array2[index]) > 100) {
             isEqual = false;
             continue;
         }
@@ -43,7 +44,7 @@ function testCanvas(testName, array1, isSame, count)
         return Promise.reject(testName + " failed");
 
     return waitFor(100).then(() => {
-        return testCanvas(testName, array1, isSame, ++count);
+        return testCanvas(testName, canvas, isSame, ++count);
     });
 }
 
@@ -67,7 +68,7 @@ promise_test((test) => {
         video.srcObject = stream;
         return video.play();
     }).then(() => {
-        return testCanvas("test1", canvas0.getContext("2d").getImageData(20 ,20, 60, 60).data, true);
+        return testCanvas("test1", canvas0, true);
     }).then(() => {
         canvas1.color = "blue";
         printRectangle(canvas1);
@@ -76,9 +77,9 @@ promise_test((test) => {
     }).then(() => {
         return waitFor(200);
     }).then(() => {
-        return testCanvas("test2", canvas1.getContext("2d").getImageData(20 ,20, 60, 60).data, false);
+        return testCanvas("test2", canvas1, false);
     }).then(() => {
-        return testCanvas("test3", canvas0.getContext("2d").getImageData(20 ,20, 60, 60).data, true);
+        return testCanvas("test3", canvas0, true);
     }).then(() => {
         return sender.replaceTrack(canvas0Track);
     }).then(() => {
@@ -86,7 +87,7 @@ promise_test((test) => {
         // Let's wait for red color to be printed on canvas0
         return waitFor(200);
     }).then(() => {
-        return testCanvas("test4", canvas0.getContext("2d").getImageData(20 ,20, 60, 60).data, true);
+        return testCanvas("test4", canvas0, true);
     }).catch((error) => {
         if (window.internals)
             internals.setH264HardwareEncoderAllowed(true);