]> git.cworth.org Git - apitrace/commitdiff
Don't show images where there is no difference.
authorCarl Worth <cworth@cworth.org>
Mon, 9 Apr 2012 18:24:52 +0000 (11:24 -0700)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Wed, 11 Apr 2012 14:16:46 +0000 (15:16 +0100)
This makes for a much more compact view for the common case where
image mismatches are rare, and makes the mismatches stand out more
making them easier to notice.

To avoid hiding information irretrievably, the filename is made into a
link to the image so that it can be easily seen if desired.

Signed-off-by: José Fonseca <jose.r.fonseca@gmail.com>
scripts/snapdiff.py

index 37fe8897ea6fdb917a55de49aa91d2e0b5564dc6..61814d83c3de8ae546f118f4c9de0fbd4a7a547f 100755 (executable)
@@ -170,6 +170,10 @@ def main():
         '--overwrite',
         action="store_true", dest="overwrite", default=False,
         help="overwrite images")
+    optparser.add_option(
+        '--show-all',
+        action="store_true", dest="show_all", default=False,
+        help="show all images, including similar ones")
 
     (options, args) = optparser.parse_args(sys.argv[1:])
 
@@ -200,22 +204,23 @@ def main():
         delta_image = "%s.diff.png" % (root, )
         if os.path.exists(ref_image) and os.path.exists(src_image):
             comparer = Comparer(ref_image, src_image, options.alpha)
-            if options.overwrite \
-               or not os.path.exists(delta_image) \
-               or (os.path.getmtime(delta_image) < os.path.getmtime(ref_image) \
-                   and os.path.getmtime(delta_image) < os.path.getmtime(src_image)):
-
-                comparer.write_diff(delta_image, fuzz=options.fuzz)
-            if comparer.ae(fuzz=options.fuzz) == 0:
+            match = comparer.ae(fuzz=options.fuzz) == 0
+            if match:
                 bgcolor = '#20ff20'
             else:
                 failures += 1
                 bgcolor = '#ff2020'
             html.write('      <tr>\n')
-            html.write('        <td bgcolor="%s">%s</td>\n' % (bgcolor, image))
-            surface(html, ref_image)
-            surface(html, src_image)
-            surface(html, delta_image)
+            html.write('        <td bgcolor="%s"><a href="%s">%s<a/></td>\n' % (bgcolor, ref_image, image))
+            if not match or options.show_all:
+                if options.overwrite \
+                   or not os.path.exists(delta_image) \
+                   or (os.path.getmtime(delta_image) < os.path.getmtime(ref_image) \
+                       and os.path.getmtime(delta_image) < os.path.getmtime(src_image)):
+                    comparer.write_diff(delta_image, fuzz=options.fuzz)
+                surface(html, ref_image)
+                surface(html, src_image)
+                surface(html, delta_image)
             html.write('      </tr>\n')
             html.flush()
     html.write('    </table>\n')