Chromium Code Reviews| Index: tools/drmemory/scripts/pdfium_tests.py |
| diff --git a/tools/drmemory/scripts/pdfium_tests.py b/tools/drmemory/scripts/pdfium_tests.py |
| index 5486b16046e0ef6e65cf0806f41e817cde6f7f3d..39fa7b10bec302e0153f9f6365668cd1d556bcc7 100644 |
| --- a/tools/drmemory/scripts/pdfium_tests.py |
| +++ b/tools/drmemory/scripts/pdfium_tests.py |
| @@ -50,10 +50,10 @@ class ChromeTests: |
| self._options = options |
| self._args = args |
| - script_dir = path_utils.ScriptDir() |
| - # Compute the top of the tree (the "source dir") from the script dir (where |
| - # this script lives). We assume that the script dir is in tools/valgrind/ |
| - # relative to the top of the tree. |
| + # Compute the top of the tree (the "source dir") from the script dir |
| + # (where this script lives). We assume that the script dir is in |
| + # tools/drmemory/scripts relative to the top of the tree. |
| + script_dir = os.path.dirname(path_utils.ScriptDir()) |
| self._source_dir = os.path.dirname(os.path.dirname(script_dir)) |
| # since this path is used for string matching, make sure it's always |
| # an absolute Unix-style path |
| @@ -269,12 +269,54 @@ class ChromeTests: |
| def TestPDFiumEmbedderTests(self): |
| return self.SimpleTest("pdfium_embeddertests", "pdfium_embeddertests") |
| + def TestPDFiumTest(self, script_name): |
| + # Build the command line in 'cmd'. |
| + # It's going to be roughly |
| + # python valgrind_test.py ... |
| + # but we'll use the --indirect_pdfium_test flag to valgrind_test.py |
| + # to avoid valgrinding python. |
| + |
| + # Start by building the valgrind_test.py commandline. |
| + tool = valgrind_test.CreateTool(self._options.valgrind_tool) |
| + cmd = self._DefaultCommand(tool) |
| + cmd.append("--trace_children") |
| + cmd.append("--indirect_pdfium_test") |
| + cmd.append("--ignore_exit_code") |
| + # Now build script_cmd, the run_corpus_tests commandline. |
| + script = os.path.join(self._source_dir, "testing", "tools", script_name) |
| + script_cmd = ["python", script] |
| + if self._options.build_dir: |
| + script_cmd.extend(["--build-dir", self._options.build_dir]) |
| + # TODO(zhaoqin): it only runs in single process mode now, |
| + # need figure out why it does not work with test_one_file_parallel |
| + # in run_corpus_tests.py. |
| + if script_name == "run_corpus_tests.py": |
| + script_cmd.extend(["-j", "1"]) |
| + # Now run script_cmd with the wrapper in cmd |
| + cmd.append("--") |
| + cmd.extend(script_cmd) |
| + |
| + ret = tool.Run(cmd, "layout", min_runtime_in_seconds=0) |
| + return ret |
| + |
| + def TestPDFiumJavascript(self): |
| + return self.TestPDFiumTest("run_javascript_tests.py") |
| + |
| + def TestPDFiumPixel(self): |
| + return self.TestPDFiumTest("run_pixel_tests.py") |
| + |
| + def TestPDFiumCorpus(self): |
| + return self.TestPDFiumTest("run_corpus_tests.py") |
| + |
| # The known list of tests. |
| _test_list = { |
| - "cmdline" : RunCmdLine, |
| - "pdfium_unittests": TestPDFiumUnitTests, |
| + "cmdline" : RunCmdLine, |
| + "pdfium_corpus": TestPDFiumCorpus, |
| "pdfium_embeddertests": TestPDFiumEmbedderTests, |
| - } |
| + "pdfium_javascript": TestPDFiumJavascript, |
| + "pdfium_pixel": TestPDFiumPixel, |
| + "pdfium_unittests": TestPDFiumUnitTests, |
| + } |
|
Lei Zhang
2015/11/21 20:21:59
2 spaces too many indentation
zhaoqin
2015/11/23 21:47:19
Done.
|
| def _main(): |