Add --reverse-byte-order flag to test_runner.py.

So test_runner.py can pass --reverse-byte-order to pdfium_test and
pdfium_diff for image-based tests.

Bug: pdfium:994
Change-Id: I07f69c6daacbf1d568ca9803e39506885a8247df
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/62592
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/testing/tools/pngdiffer.py b/testing/tools/pngdiffer.py
index f5b762c..3febf70 100755
--- a/testing/tools/pngdiffer.py
+++ b/testing/tools/pngdiffer.py
@@ -14,9 +14,10 @@
 
 class PNGDiffer():
 
-  def __init__(self, finder):
+  def __init__(self, finder, reverse_byte_order):
     self.pdfium_diff_path = finder.ExecutablePath('pdfium_diff')
     self.os_name = finder.os_name
+    self.reverse_byte_order = reverse_byte_order
 
   def CheckMissingTools(self, regenerate_expected):
     if (regenerate_expected and self.os_name == 'linux' and
@@ -63,15 +64,21 @@
       print "Checking " + actual_path
       sys.stdout.flush()
       if os.path.exists(expected_path):
-        error = common.RunCommand(
-            [self.pdfium_diff_path, expected_path, actual_path])
+        cmd = [self.pdfium_diff_path]
+        if self.reverse_byte_order:
+          cmd.append('--reverse-byte-order')
+        cmd.extend([expected_path, actual_path])
+        error = common.RunCommand(cmd)
       else:
         error = 1
       if error:
         # When failed, we check against platform based results.
         if os.path.exists(platform_expected_path):
-          error = common.RunCommand(
-              [self.pdfium_diff_path, platform_expected_path, actual_path])
+          cmd = [self.pdfium_diff_path]
+          if self.reverse_byte_order:
+            cmd.append('--reverse-byte-order')
+          cmd.extend([platform_expected_path, actual_path])
+          error = common.RunCommand(cmd)
         if error:
           print "FAILURE: " + input_filename + "; " + str(error)
           return True
diff --git a/testing/tools/test_runner.py b/testing/tools/test_runner.py
index 9c61080..69938c9 100644
--- a/testing/tools/test_runner.py
+++ b/testing/tools/test_runner.py
@@ -189,6 +189,9 @@
     if use_ahem:
       cmd_to_run.append('--font-dir=%s' % self.font_dir)
 
+    if self.options.reverse_byte_order:
+      cmd_to_run.append('--reverse-byte-order')
+
     cmd_to_run.append(pdf_path)
     return common.RunCommandExtractHashedFiles(cmd_to_run)
 
@@ -274,6 +277,12 @@
         'expected pngs.')
 
     parser.add_option(
+        '--reverse-byte-order',
+        action='store_true',
+        dest="reverse_byte_order",
+        help='Run image-based tests using --reverse-byte-order.')
+
+    parser.add_option(
         '--ignore_errors',
         action="store_true",
         dest="ignore_errors",
@@ -311,7 +320,8 @@
     self.feature_string = subprocess.check_output(
         [self.pdfium_test_path, '--show-config'])
     self.test_suppressor = suppressor.Suppressor(finder, self.feature_string)
-    self.image_differ = pngdiffer.PNGDiffer(finder)
+    self.image_differ = pngdiffer.PNGDiffer(finder,
+                                            self.options.reverse_byte_order)
     error_message = self.image_differ.CheckMissingTools(
         self.options.regenerate_expected)
     if error_message: