summaryrefslogtreecommitdiff
path: root/deps/v8/test/inspector/testcfg.py
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/inspector/testcfg.py')
-rw-r--r--deps/v8/test/inspector/testcfg.py102
1 files changed, 29 insertions, 73 deletions
diff --git a/deps/v8/test/inspector/testcfg.py b/deps/v8/test/inspector/testcfg.py
index f33384e1cf..64fa163a5e 100644
--- a/deps/v8/test/inspector/testcfg.py
+++ b/deps/v8/test/inspector/testcfg.py
@@ -2,27 +2,22 @@
# 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
-import shlex
from testrunner.local import testsuite
from testrunner.local import utils
from testrunner.objects import testcase
+from testrunner.outproc import base as outproc
-FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
PROTOCOL_TEST_JS = "protocol-test.js"
EXPECTED_SUFFIX = "-expected.txt"
RESOURCES_FOLDER = "resources"
-class InspectorProtocolTestSuite(testsuite.TestSuite):
- def __init__(self, name, root):
- super(InspectorProtocolTestSuite, self).__init__(name, root)
-
+class TestSuite(testsuite.TestSuite):
def ListTests(self, context):
tests = []
- for dirname, dirs, files in os.walk(os.path.join(self.root), followlinks=True):
+ for dirname, dirs, files in os.walk(
+ os.path.join(self.root), followlinks=True):
for dotted in [x for x in dirs if x.startswith('.')]:
dirs.remove(dotted)
if dirname.endswith(os.path.sep + RESOURCES_FOLDER):
@@ -34,80 +29,41 @@ class InspectorProtocolTestSuite(testsuite.TestSuite):
fullpath = os.path.join(dirname, filename)
relpath = fullpath[len(self.root) + 1 : -3]
testname = relpath.replace(os.path.sep, "/")
- test = testcase.TestCase(self, testname)
+ test = self._create_test(testname)
tests.append(test)
return tests
- def GetShellForTestCase(self, testcase):
- return 'inspector-test'
+ def _test_class(self):
+ return TestCase
- def GetParametersForTestCase(self, testcase, context):
- source = self.GetSourceForTest(testcase)
- flags = testcase.flags + context.mode_flags
- flags_match = re.findall(FLAGS_PATTERN, source)
- for match in flags_match:
- flags += shlex.split(match.strip())
- files = [
- os.path.join(self.root, PROTOCOL_TEST_JS),
- os.path.join(self.root, testcase.path + self.suffix()),
- ]
- return files, flags, {}
- def GetSourceForTest(self, testcase):
- filename = os.path.join(self.root, testcase.path + self.suffix())
- with open(filename) as f:
- return f.read()
+class TestCase(testcase.TestCase):
+ def __init__(self, *args, **kwargs):
+ super(TestCase, self).__init__(*args, **kwargs)
- def _IgnoreLine(self, string):
- """Ignore empty lines, valgrind output and Android output."""
- if not string: return True
- return (string.startswith("==") or string.startswith("**") or
- string.startswith("ANDROID") or
- # FIXME(machenbach): The test driver shouldn't try to use slow
- # asserts if they weren't compiled. This fails in optdebug=2.
- string == "Warning: unknown flag --enable-slow-asserts." or
- string == "Try --help for options")
+ self._source_flags = self._parse_source_flags()
- def IsFailureOutput(self, testcase):
- file_name = os.path.join(self.root, testcase.path) + EXPECTED_SUFFIX
- with file(file_name, "r") as expected:
- expected_lines = expected.readlines()
+ def _get_files_params(self, ctx):
+ return [
+ os.path.join(self.suite.root, PROTOCOL_TEST_JS),
+ os.path.join(self.suite.root, self.path + self._get_suffix()),
+ ]
+
+ def _get_source_flags(self):
+ return self._source_flags
- def ExpIterator():
- for line in expected_lines:
- if not line.strip(): continue
- yield line.strip()
+ def _get_source_path(self):
+ return os.path.join(self.suite.root, self.path + self._get_suffix())
- def ActIterator(lines):
- for line in lines:
- if self._IgnoreLine(line.strip()): continue
- yield line.strip()
+ def get_shell(self):
+ return 'inspector-test'
- def ActBlockIterator():
- """Iterates over blocks of actual output lines."""
- lines = testcase.output.stdout.splitlines()
- start_index = 0
- found_eqeq = False
- for index, line in enumerate(lines):
- # If a stress test separator is found:
- if line.startswith("=="):
- # Iterate over all lines before a separator except the first.
- if not found_eqeq:
- found_eqeq = True
- else:
- yield ActIterator(lines[start_index:index])
- # The next block of output lines starts after the separator.
- start_index = index + 1
- # Iterate over complete output if no separator was found.
- if not found_eqeq:
- yield ActIterator(lines)
+ @property
+ def output_proc(self):
+ return outproc.ExpectedOutProc(
+ self.expected_outcomes,
+ os.path.join(self.suite.root, self.path) + EXPECTED_SUFFIX)
- for act_iterator in ActBlockIterator():
- for (expected, actual) in itertools.izip_longest(
- ExpIterator(), act_iterator, fillvalue=''):
- if expected != actual:
- return True
- return False
def GetSuite(name, root):
- return InspectorProtocolTestSuite(name, root)
+ return TestSuite(name, root)