summaryrefslogtreecommitdiff
path: root/Tools/Scripts/webkitpy/performance_tests/perftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Scripts/webkitpy/performance_tests/perftest.py')
-rw-r--r--Tools/Scripts/webkitpy/performance_tests/perftest.py42
1 files changed, 30 insertions, 12 deletions
diff --git a/Tools/Scripts/webkitpy/performance_tests/perftest.py b/Tools/Scripts/webkitpy/performance_tests/perftest.py
index 9e2f87d47..623aef341 100644
--- a/Tools/Scripts/webkitpy/performance_tests/perftest.py
+++ b/Tools/Scripts/webkitpy/performance_tests/perftest.py
@@ -70,6 +70,7 @@ class PerfTest(object):
def run(self, driver, time_out_ms):
output = self.run_single(driver, self.path_or_url(), time_out_ms)
+ self._filter_stderr(output)
if self.run_failed(output):
return None
return self.parse_output(output)
@@ -92,6 +93,27 @@ class PerfTest(object):
return True
+ def _should_ignore_line(self, regexps, line):
+ if not line:
+ return True
+ for regexp in regexps:
+ if regexp.search(line):
+ return True
+ return False
+
+ _lines_to_ignore_in_stderr = [
+ re.compile(r'^Unknown option:'),
+ re.compile(r'^\[WARNING:proxy_service.cc')]
+
+ def _should_ignore_line_in_stderr(self, line):
+ return self._should_ignore_line(self._lines_to_ignore_in_stderr, line)
+
+ def _filter_stderr(self, output):
+ if not output.error:
+ return
+ filtered_error = '\n'.join([line for line in re.split('\n', output.error) if not self._should_ignore_line_in_stderr(line)])
+ output.error = filtered_error if filtered_error else None
+
_lines_to_ignore_in_parser_result = [
re.compile(r'^Running \d+ times$'),
re.compile(r'^Ignoring warm-up '),
@@ -105,12 +127,7 @@ class PerfTest(object):
re.compile(re.escape("""Blocked access to external URL http://www.whatwg.org/specs/web-apps/current-work/"""))]
def _should_ignore_line_in_parser_test_result(self, line):
- if not line:
- return True
- for regex in self._lines_to_ignore_in_parser_result:
- if regex.search(line):
- return True
- return False
+ return self._should_ignore_line(self._lines_to_ignore_in_parser_result, line)
_description_regex = re.compile(r'^Description: (?P<description>.*)$', re.IGNORECASE)
_result_classes = ['Time', 'JS Heap', 'Malloc']
@@ -166,11 +183,12 @@ class PerfTest(object):
_log.error("The test didn't report all statistics.")
return None
- for result_name in ordered_results_keys:
- if result_name == test_name:
- self.output_statistics(result_name, results[result_name], description_string)
- else:
- self.output_statistics(result_name, results[result_name])
+ if not self._port.get_option('profile'):
+ for result_name in ordered_results_keys:
+ if result_name == test_name:
+ self.output_statistics(result_name, results[result_name], description_string)
+ else:
+ self.output_statistics(result_name, results[result_name])
return results
def output_statistics(self, test_name, results, description_string=None):
@@ -327,7 +345,7 @@ class ReplayPerfTest(PageLoadingPerfTest):
_log.info("Preparing replay for %s" % self.test_name())
- driver = self._port.create_driver(worker_number=1, no_timeout=True)
+ driver = self._port.create_driver(worker_number=0, no_timeout=True)
try:
output = self.run_single(driver, self._archive_path, time_out_ms, record=True)
finally: