]> git.cworth.org Git - apitrace/commitdiff
snapdiff: Provide indication whether images match or not
authorCarl Worth <cworth@cworth.org>
Tue, 3 Apr 2012 23:02:25 +0000 (16:02 -0700)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Wed, 11 Apr 2012 14:09:01 +0000 (15:09 +0100)
This indication is provided in two ways:

1. The exit value of the script will be 1 if there are any image
   differences, (0 for no image differences).

2. The filename cell in the resulting HTML table will be colored red
   if there are image differences (and green for no image
   differences).

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

index 291b2da9425d71e4e075bec9d66fb049fd018daa..37fe8897ea6fdb917a55de49aa91d2e0b5564dc6 100755 (executable)
@@ -192,22 +192,27 @@ def main():
     html.write('  <body>\n')
     html.write('    <table border="1">\n')
     html.write('      <tr><th>File</th><th>%s</th><th>%s</th><th>&Delta;</th></tr>\n' % (ref_prefix, src_prefix))
+    failures = 0
     for image in images:
         ref_image = ref_prefix + image
         src_image = src_prefix + image
         root, ext = os.path.splitext(src_image)
         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 = Comparer(ref_image, src_image, options.alpha)
                 comparer.write_diff(delta_image, fuzz=options.fuzz)
-
+            if comparer.ae(fuzz=options.fuzz) == 0:
+                bgcolor = '#20ff20'
+            else:
+                failures += 1
+                bgcolor = '#ff2020'
             html.write('      <tr>\n')
-            html.write('        <td>%s</td>\n' % (image,))
+            html.write('        <td bgcolor="%s">%s</td>\n' % (bgcolor, image))
             surface(html, ref_image)
             surface(html, src_image)
             surface(html, delta_image)
@@ -217,6 +222,8 @@ def main():
     html.write('  </body>\n')
     html.write('</html>\n')
 
+    if failures:
+        sys.exit(1)
 
 if __name__ == '__main__':
     main()