Index: testing/tools/pngdiffer.py |
diff --git a/testing/tools/pngdiffer.py b/testing/tools/pngdiffer.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..dc65b4717f428a12f204d69afb3dd98cd3b1f915 |
--- /dev/null |
+++ b/testing/tools/pngdiffer.py |
@@ -0,0 +1,40 @@ |
+#!/usr/bin/env python |
+# Copyright 2015 The PDFium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import os |
+import subprocess |
+import sys |
+ |
+class PNGDiffer(): |
+ ACTUAL_TEMPLATE = '.pdf.%d.png' |
+ EXPECTED_TEMPLATE = '_expected' + ACTUAL_TEMPLATE |
+ |
+ def __init__(self, finder): |
+ self.pdfium_diff_path = finder.ExecutablePath('pdfium_diff') |
+ |
+ def HasDifferences(self, input_filename, source_dir, working_dir): |
+ input_root, _ = os.path.splitext(input_filename) |
+ actual_path_template = os.path.join( |
+ working_dir, input_root + self.ACTUAL_TEMPLATE) |
+ expected_path_template = os.path.join( |
+ source_dir, input_root + self.EXPECTED_TEMPLATE) |
+ i = 0 |
+ try: |
+ while True: |
+ actual_path = actual_path_template % i; |
+ expected_path = expected_path_template % i; |
+ if not os.path.exists(expected_path): |
+ if i == 0: |
+ print "WARNING: no expected results files for " + input_filename |
+ break |
+ print "Checking " + actual_path |
+ sys.stdout.flush() |
+ subprocess.check_call( |
+ [self.pdfium_diff_path, expected_path, actual_path]) |
+ i += 1 |
+ except subprocess.CalledProcessError as e: |
+ print "FAILURE: " + input_filename + "; " + str(e) |
+ return True |
+ return False |