Commit 4f4654a0 authored by Michal Majewski's avatar Michal Majewski Committed by Commit Bot

[test] Deduplicate parsing source file flags.

Bug: v8:6917
Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
Change-Id: I12d62e28b8e22820d4358d0166fa5db5e09b8bc3
Reviewed-on: https://chromium-review.googlesource.com/819630
Commit-Queue: Michał Majewski <majeski@google.com>
Reviewed-by: 's avatarSergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50033}
parent 222076d9
...@@ -9,7 +9,6 @@ from testrunner.local import testsuite ...@@ -9,7 +9,6 @@ from testrunner.local import testsuite
from testrunner.objects import testcase from testrunner.objects import testcase
FILES_PATTERN = re.compile(r"//\s+Files:(.*)") FILES_PATTERN = re.compile(r"//\s+Files:(.*)")
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
MODULE_PATTERN = re.compile(r"^// MODULE$", flags=re.MULTILINE) MODULE_PATTERN = re.compile(r"^// MODULE$", flags=re.MULTILINE)
class DebuggerTestSuite(testsuite.TestSuite): class DebuggerTestSuite(testsuite.TestSuite):
...@@ -40,9 +39,7 @@ class DebuggerTestSuite(testsuite.TestSuite): ...@@ -40,9 +39,7 @@ class DebuggerTestSuite(testsuite.TestSuite):
context.mode_flags context.mode_flags
) )
source = self.GetSourceForTest(testcase) source = self.GetSourceForTest(testcase)
flags_match = re.findall(FLAGS_PATTERN, source) flags += self._parse_source_flags(testcase, source)
for match in flags_match:
flags += match.strip().split()
files_list = [] # List of file names to append to command arguments. files_list = [] # List of file names to append to command arguments.
files_match = FILES_PATTERN.search(source); files_match = FILES_PATTERN.search(source);
......
...@@ -4,14 +4,11 @@ ...@@ -4,14 +4,11 @@
import itertools import itertools
import os import os
import re
import shlex
from testrunner.local import testsuite from testrunner.local import testsuite
from testrunner.local import utils from testrunner.local import utils
from testrunner.objects import testcase from testrunner.objects import testcase
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
PROTOCOL_TEST_JS = "protocol-test.js" PROTOCOL_TEST_JS = "protocol-test.js"
EXPECTED_SUFFIX = "-expected.txt" EXPECTED_SUFFIX = "-expected.txt"
RESOURCES_FOLDER = "resources" RESOURCES_FOLDER = "resources"
...@@ -42,11 +39,8 @@ class InspectorProtocolTestSuite(testsuite.TestSuite): ...@@ -42,11 +39,8 @@ class InspectorProtocolTestSuite(testsuite.TestSuite):
return 'inspector-test' return 'inspector-test'
def GetParametersForTestCase(self, testcase, context): def GetParametersForTestCase(self, testcase, context):
source = self.GetSourceForTest(testcase)
flags = testcase.flags + context.mode_flags flags = testcase.flags + context.mode_flags
flags_match = re.findall(FLAGS_PATTERN, source) flags += self._parse_source_flags(testcase)
for match in flags_match:
flags += shlex.split(match.strip())
files = [ files = [
os.path.join(self.root, PROTOCOL_TEST_JS), os.path.join(self.root, PROTOCOL_TEST_JS),
os.path.join(self.root, testcase.path + self.suffix()), os.path.join(self.root, testcase.path + self.suffix()),
......
...@@ -26,13 +26,10 @@ ...@@ -26,13 +26,10 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os import os
import re
from testrunner.local import testsuite from testrunner.local import testsuite
from testrunner.objects import testcase from testrunner.objects import testcase
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
class IntlTestSuite(testsuite.TestSuite): class IntlTestSuite(testsuite.TestSuite):
def __init__(self, name, root): def __init__(self, name, root):
...@@ -57,11 +54,8 @@ class IntlTestSuite(testsuite.TestSuite): ...@@ -57,11 +54,8 @@ class IntlTestSuite(testsuite.TestSuite):
return tests return tests
def GetParametersForTestCase(self, testcase, context): def GetParametersForTestCase(self, testcase, context):
source = self.GetSourceForTest(testcase)
flags = testcase.flags + ["--allow-natives-syntax"] + context.mode_flags flags = testcase.flags + ["--allow-natives-syntax"] + context.mode_flags
flags_match = re.findall(FLAGS_PATTERN, source) flags += self._parse_source_flags(testcase)
for match in flags_match:
flags += match.strip().split()
files = [] files = []
files.append(os.path.join(self.root, "assert.js")) files.append(os.path.join(self.root, "assert.js"))
......
...@@ -34,7 +34,6 @@ from testrunner.local import utils ...@@ -34,7 +34,6 @@ from testrunner.local import utils
from testrunner.objects import testcase from testrunner.objects import testcase
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
INVALID_FLAGS = ["--enable-slow-asserts"] INVALID_FLAGS = ["--enable-slow-asserts"]
MODULE_PATTERN = re.compile(r"^// MODULE$", flags=re.MULTILINE) MODULE_PATTERN = re.compile(r"^// MODULE$", flags=re.MULTILINE)
...@@ -70,9 +69,7 @@ class MessageTestSuite(testsuite.TestSuite): ...@@ -70,9 +69,7 @@ class MessageTestSuite(testsuite.TestSuite):
files.append("--module") files.append("--module")
files.append(os.path.join(self.root, testcase.path + ".js")) files.append(os.path.join(self.root, testcase.path + ".js"))
flags = testcase.flags + context.mode_flags flags = testcase.flags + context.mode_flags
flags_match = re.findall(FLAGS_PATTERN, source) flags += self._parse_source_flags(testcase, source)
for match in flags_match:
flags += match.strip().split()
flags = [x for x in flags if x not in INVALID_FLAGS] flags = [x for x in flags if x not in INVALID_FLAGS]
return files, flags, {} return files, flags, {}
......
...@@ -31,7 +31,6 @@ import re ...@@ -31,7 +31,6 @@ import re
from testrunner.local import testsuite from testrunner.local import testsuite
from testrunner.objects import testcase from testrunner.objects import testcase
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
FILES_PATTERN = re.compile(r"//\s+Files:(.*)") FILES_PATTERN = re.compile(r"//\s+Files:(.*)")
ENV_PATTERN = re.compile(r"//\s+Environment Variables:(.*)") ENV_PATTERN = re.compile(r"//\s+Environment Variables:(.*)")
SELF_SCRIPT_PATTERN = re.compile(r"//\s+Env: TEST_FILE_NAME") SELF_SCRIPT_PATTERN = re.compile(r"//\s+Env: TEST_FILE_NAME")
...@@ -66,9 +65,7 @@ class MjsunitTestSuite(testsuite.TestSuite): ...@@ -66,9 +65,7 @@ class MjsunitTestSuite(testsuite.TestSuite):
flags = testcase.flags + context.mode_flags flags = testcase.flags + context.mode_flags
env = self._get_env(source) env = self._get_env(source)
flags_match = re.findall(FLAGS_PATTERN, source) flags += self._parse_source_flags(testcase, source)
for match in flags_match:
flags += match.strip().split()
files_list = [] # List of file names to append to command arguments. files_list = [] # List of file names to append to command arguments.
files_match = FILES_PATTERN.search(source); files_match = FILES_PATTERN.search(source);
......
...@@ -32,7 +32,6 @@ import re ...@@ -32,7 +32,6 @@ import re
from testrunner.local import testsuite from testrunner.local import testsuite
from testrunner.objects import testcase from testrunner.objects import testcase
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
FILES_PATTERN = re.compile(r"//\s+Files:(.*)") FILES_PATTERN = re.compile(r"//\s+Files:(.*)")
SELF_SCRIPT_PATTERN = re.compile(r"//\s+Env: TEST_FILE_NAME") SELF_SCRIPT_PATTERN = re.compile(r"//\s+Env: TEST_FILE_NAME")
...@@ -65,9 +64,7 @@ class WebkitTestSuite(testsuite.TestSuite): ...@@ -65,9 +64,7 @@ class WebkitTestSuite(testsuite.TestSuite):
def GetParametersForTestCase(self, testcase, context): def GetParametersForTestCase(self, testcase, context):
source = self.GetSourceForTest(testcase) source = self.GetSourceForTest(testcase)
flags = testcase.flags + context.mode_flags flags = testcase.flags + context.mode_flags
flags_match = re.findall(FLAGS_PATTERN, source) flags += self._parse_source_flags(testcase, source)
for match in flags_match:
flags += match.strip().split()
files_list = [] # List of file names to append to command arguments. files_list = [] # List of file names to append to command arguments.
files_match = FILES_PATTERN.search(source); files_match = FILES_PATTERN.search(source);
......
...@@ -29,17 +29,20 @@ ...@@ -29,17 +29,20 @@
import fnmatch import fnmatch
import imp import imp
import os import os
import re
import shlex
from . import command from . import command
from . import statusfile from . import statusfile
from . import utils from . import utils
from ..objects import testcase
from variants import ALL_VARIANTS, ALL_VARIANT_FLAGS, FAST_VARIANT_FLAGS from variants import ALL_VARIANTS, ALL_VARIANT_FLAGS, FAST_VARIANT_FLAGS
FAST_VARIANTS = set(["default", "turbofan"]) FAST_VARIANTS = set(["default", "turbofan"])
STANDARD_VARIANT = set(["default"]) STANDARD_VARIANT = set(["default"])
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
class VariantGenerator(object): class VariantGenerator(object):
def __init__(self, suite, variants): def __init__(self, suite, variants):
...@@ -69,7 +72,7 @@ class VariantGenerator(object): ...@@ -69,7 +72,7 @@ class VariantGenerator(object):
class TestSuite(object): class TestSuite(object):
@staticmethod @staticmethod
def LoadTestSuite(root): def LoadTestSuite(root, global_init=True):
name = root.split(os.path.sep)[-1] name = root.split(os.path.sep)[-1]
f = None f = None
try: try:
...@@ -345,6 +348,15 @@ class TestSuite(object): ...@@ -345,6 +348,15 @@ class TestSuite(object):
"""Returns a tuple of (files, flags, env) for this test case.""" """Returns a tuple of (files, flags, env) for this test case."""
raise NotImplementedError raise NotImplementedError
def _parse_source_flags(self, test, source=None):
if not source:
source = self.GetSourceForTest(test)
flags = []
for match in re.findall(FLAGS_PATTERN, source):
flags += shlex.split(match.strip())
return flags
def GetSourceForTest(self, testcase): def GetSourceForTest(self, testcase):
return "(no source available)" return "(no source available)"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment