Bug 1342252 - Fix printing of reftest images for failed != tests. r?jgraham draft
authorL. David Baron <dbaron@dbaron.org>
Thu, 23 Feb 2017 14:34:27 -0800
changeset 488879 22f049ce6d6d4c6a50a88a4c2f899cd6bf964b1f
parent 487583 c7b015c488cfb2afbcff295a9639acd85df332f8
child 546860 3049470fb3a95f4b57507fe8f386d3d4b3db8291
push id46668
push userdbaron@mozilla.com
push dateThu, 23 Feb 2017 22:35:35 +0000
reviewersjgraham
bugs1342252
milestone54.0a1
Bug 1342252 - Fix printing of reftest images for failed != tests. r?jgraham This makes the code work the way it looks like it was intended to work based on what was already in output.py. MozReview-Commit-ID: 8LJHxlfiQQ8
layout/tools/reftest/output.py
layout/tools/reftest/reftest.jsm
--- a/layout/tools/reftest/output.py
+++ b/layout/tools/reftest/output.py
@@ -47,24 +47,24 @@ class ReftestFormatter(TbplFormatter):
             status_msg += status
             if extra.get('status_msg') == 'Random':
                 status_msg += "(EXPECTED RANDOM)"
 
         output_text = "%s | %s | %s" % (status_msg, test, data.get("message", ""))
         if "reftest_screenshots" in extra:
             screenshots = extra["reftest_screenshots"]
             image_1 = screenshots[0]["screenshot"]
-            image_2 = screenshots[2]["screenshot"]
 
             if len(screenshots) == 3:
+                image_2 = screenshots[2]["screenshot"]
                 output_text += ("\nREFTEST   IMAGE 1 (TEST): data:image/png;base64,%s\n"
                                 "REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,%s") % (
                                 image_1, image_2)
             elif len(screenshots) == 1:
-                output_text += "\nREFTEST   IMAGE: data:image/png;base64,%(image1)s" % image_1
+                output_text += "\nREFTEST   IMAGE: data:image/png;base64,%s" % image_1
 
         output_text += "\nREFTEST TEST-END | %s" % test
         return "%s\n" % output_text
 
     def process_output(self, data):
         return "%s\n" % data["data"]
 
     def suite_end(self, data):
--- a/layout/tools/reftest/reftest.jsm
+++ b/layout/tools/reftest/reftest.jsm
@@ -1751,17 +1751,22 @@ function RecordResult(testRunTime, error
                             {url:gURLs[0].identifier[2],
                              screenshot: image2.slice(image2.indexOf(",") + 1)}
                         ];
                         extra.image1 = image1;
                         extra.image2 = image2;
                         message += (", max difference: " + extra.max_difference +
                                     ", number of differing pixels: " + differences);
                     } else {
-                        extra.image1 = gCanvas1.toDataURL();
+                        var image1 = gCanvas1.toDataURL();
+                        extra.reftest_screenshots = [
+                            {url:gURLs[0].identifier[0],
+                             screenshot: image1.slice(image1.indexOf(",") + 1)}
+                        ];
+                        extra.image1 = image1;
                     }
                 }
                 logger.testEnd(gURLs[0].identifier, output.s[0], output.s[1], message, null, extra);
 
                 if (gURLs[0].prefSettings1.length == 0) {
                     UpdateCanvasCache(gURLs[0].url1, gCanvas1);
                 }
                 if (gURLs[0].prefSettings2.length == 0) {