summaryrefslogtreecommitdiff
path: root/testing/tools/run_javascript_tests.py
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2015-11-03 10:09:20 -0500
committerDan Sinclair <dsinclair@chromium.org>2015-11-03 10:09:20 -0500
commita1215ba51a235fb7abcb995f0e768ea0176d9275 (patch)
tree382d1c1aef9466655b108a77bda276c5b206a07d /testing/tools/run_javascript_tests.py
parent4c4dd28fb1d3ba27d29571297cdf523e2f8e724c (diff)
downloadpdfium-a1215ba51a235fb7abcb995f0e768ea0176d9275.tar.xz
One test runner to rule them all.
This CL takes the three test runners (corpus, javascript, pixel) and combines the code into a single test_runner file. Each of the individual runners still exists and calls the test runner with their data directory. With this change, the pixel and javascript test will now run in parallel if multiple processors are available. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1430623006 .
Diffstat (limited to 'testing/tools/run_javascript_tests.py')
-rwxr-xr-xtesting/tools/run_javascript_tests.py77
1 files changed, 3 insertions, 74 deletions
diff --git a/testing/tools/run_javascript_tests.py b/testing/tools/run_javascript_tests.py
index e2fdc66918..2f468820dc 100755
--- a/testing/tools/run_javascript_tests.py
+++ b/testing/tools/run_javascript_tests.py
@@ -3,84 +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
-
-# 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, text_diff_path):
- 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')
- txt_path = os.path.join(working_dir, input_root + '.txt')
- expected_path = os.path.join(source_dir, input_root + '_expected.txt')
- try:
- sys.stdout.flush()
- subprocess.check_call(
- [sys.executable, fixup_path, '--output-dir=' + working_dir, input_path])
- with open(txt_path, 'w') as outfile:
- subprocess.check_call([pdfium_test_path, pdf_path], stdout=outfile)
- subprocess.check_call(
- [sys.executable, text_diff_path, expected_path, txt_path])
- except subprocess.CalledProcessError as e:
- print "FAILURE: " + input_filename + "; " + str(e)
- 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')
- options, args = parser.parse_args()
-
- finder = common.DirectoryFinder(options.build_dir)
- fixup_path = finder.ScriptPath('fixup_pdf_template.py')
- text_diff_path = finder.ScriptPath('text_diff.py')
- source_dir = finder.TestingDir(os.path.join('resources', 'javascript'))
- 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', 'javascript'))
- if not os.path.exists(working_dir):
- os.makedirs(working_dir)
-
- 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 not generate_and_test(input_filename, source_dir, working_dir,
- fixup_path, pdfium_test_path, text_diff_path):
- 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('javascript')
+ runner.Run()
if __name__ == '__main__':
sys.exit(main())