From 2a8a20cde4c8e2294f6868bb097fe450960a709f Mon Sep 17 00:00:00 2001 From: dsinclair Date: Mon, 25 Apr 2016 09:46:17 -0700 Subject: Combine the javascript and pixel test runners. These runners are very similar in their implementation. Combine them into a single test runner. Corpus will, hopefully, be combined into this test runner in the future. Review URL: https://codereview.chromium.org/1906803005 --- testing/tools/run_pixel_tests.py | 101 ++------------------------------------- 1 file changed, 3 insertions(+), 98 deletions(-) (limited to 'testing/tools/run_pixel_tests.py') diff --git a/testing/tools/run_pixel_tests.py b/testing/tools/run_pixel_tests.py index 1595ef7e45..aad39c5600 100755 --- a/testing/tools/run_pixel_tests.py +++ b/testing/tools/run_pixel_tests.py @@ -3,108 +3,13 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import optparse -import os -import re -import subprocess import sys -import common -import pngdiffer -import suppressor - -# Nomenclature: -# x_root - "x" -# x_filename - "x.ext" -# x_path - "path/to/a/b/c/x.ext" -# c_dir - "path/to/a/b/c" - -def generate_and_test(input_filename, source_dir, working_dir, - fixup_path, pdfium_test_path, image_differ, - drmem_wrapper): - input_root, _ = os.path.splitext(input_filename) - input_path = os.path.join(source_dir, input_root + '.in') - pdf_path = os.path.join(working_dir, input_root + '.pdf') - - # Remove any existing generated images from previous runs. - actual_images = image_differ.GetActualFiles( - input_filename, source_dir, working_dir) - for image in actual_images: - if os.path.exists(image): - os.remove(image) - - try: - sys.stdout.flush() - subprocess.check_call( - [sys.executable, fixup_path, '--output-dir=' + working_dir, input_path]) - # add Dr. Memory wrapper if exist - cmd_to_run = common.DrMemoryWrapper(drmem_wrapper, input_root) - cmd_to_run.extend([pdfium_test_path, '--png', pdf_path]) - # run test - subprocess.check_call(cmd_to_run) - except subprocess.CalledProcessError as e: - print "FAILURE: " + input_filename + "; " + str(e) - return False - if image_differ.HasDifferences(input_filename, source_dir, working_dir): - print "FAILURE: " + input_filename - return False - return True - +import test_runner def main(): - parser = optparse.OptionParser() - parser.add_option('--build-dir', default=os.path.join('out', 'Debug'), - help='relative path from the base source directory') - parser.add_option('-j', default=1, - dest='num_workers', type='int', - help='run NUM_WORKERS jobs in parallel (currently ignored)') - parser.add_option('--wrapper', default='', dest="wrapper", - help='Dr. Memory wrapper for running test under Dr. Memory') - options, args = parser.parse_args() - finder = common.DirectoryFinder(options.build_dir) - fixup_path = finder.ScriptPath('fixup_pdf_template.py') - source_dir = finder.TestingDir(os.path.join('resources', 'pixel')) - pdfium_test_path = finder.ExecutablePath('pdfium_test') - if not os.path.exists(pdfium_test_path): - print "FAILURE: Can't find test executable '%s'" % pdfium_test_path - print "Use --build-dir to specify its location." - return 1 - working_dir = finder.WorkingDir(os.path.join('testing', 'pixel')) - if not os.path.exists(working_dir): - os.makedirs(working_dir) - - feature_string = subprocess.check_output([pdfium_test_path, '--show-config']) - test_suppressor = suppressor.Suppressor(finder, feature_string) - image_differ = pngdiffer.PNGDiffer(finder) - - input_files = [] - if len(args): - for file_name in args: - input_files.append(file_name.replace(".pdf", ".in")) - else: - input_files = os.listdir(source_dir) - - failures = [] - input_file_re = re.compile('^[a-zA-Z0-9_.]+[.]in$') - for input_filename in input_files: - if input_file_re.match(input_filename): - input_path = os.path.join(source_dir, input_filename) - if os.path.isfile(input_path): - if test_suppressor.IsResultSuppressed(input_filename): - continue - if not generate_and_test(input_filename, source_dir, working_dir, - fixup_path, pdfium_test_path, image_differ, - options.wrapper): - failures.append(input_path) - - if failures: - failures.sort() - print '\n\nSummary of Failures:' - for failure in failures: - print failure - return 1 - return 0 - + runner = test_runner.TestRunner('pixel') + return runner.Run() if __name__ == '__main__': sys.exit(main()) -- cgit v1.2.3