diff options
author | Michaël Zasso <targos@protonmail.com> | 2018-03-07 08:54:53 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2018-03-07 16:48:52 +0100 |
commit | 88786fecff336342a56e6f2e7ff3b286be716e47 (patch) | |
tree | 92e6ba5b8ac8dae1a058988d20c9d27bfa654390 /deps/v8/tools/testrunner/outproc/message.py | |
parent | 4e86f9b5ab83cbabf43839385bf383e6a7ef7d19 (diff) | |
download | android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.gz android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.bz2 android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.zip |
deps: update V8 to 6.5.254.31
PR-URL: https://github.com/nodejs/node/pull/18453
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Yang Guo <yangguo@chromium.org>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Diffstat (limited to 'deps/v8/tools/testrunner/outproc/message.py')
-rw-r--r-- | deps/v8/tools/testrunner/outproc/message.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/deps/v8/tools/testrunner/outproc/message.py b/deps/v8/tools/testrunner/outproc/message.py new file mode 100644 index 0000000000..bbfc1cdf7e --- /dev/null +++ b/deps/v8/tools/testrunner/outproc/message.py @@ -0,0 +1,56 @@ +# Copyright 2018 the V8 project 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 itertools +import os +import re + +from . import base + + +class OutProc(base.OutProc): + def __init__(self, expected_outcomes, basepath, expected_fail): + super(OutProc, self).__init__(expected_outcomes) + self._basepath = basepath + self._expected_fail = expected_fail + + def _is_failure_output(self, output): + fail = output.exit_code != 0 + if fail != self._expected_fail: + return True + + expected_lines = [] + # Can't use utils.ReadLinesFrom() here because it strips whitespace. + with open(self._basepath + '.out') as f: + for line in f: + if line.startswith("#") or not line.strip(): + continue + expected_lines.append(line) + raw_lines = output.stdout.splitlines() + actual_lines = [ s for s in raw_lines if not self._ignore_line(s) ] + if len(expected_lines) != len(actual_lines): + return True + + env = { + 'basename': os.path.basename(self._basepath + '.js'), + } + for (expected, actual) in itertools.izip_longest( + expected_lines, actual_lines, fillvalue=''): + pattern = re.escape(expected.rstrip() % env) + pattern = pattern.replace('\\*', '.*') + pattern = pattern.replace('\\{NUMBER\\}', '\d+(?:\.\d*)?') + pattern = '^%s$' % pattern + if not re.match(pattern, actual): + return True + return False + + def _ignore_line(self, string): + """Ignore empty lines, valgrind output, Android output.""" + return ( + not string or + not string.strip() or + string.startswith("==") or + string.startswith("**") or + string.startswith("ANDROID") + ) |