2018-01-04 10:42:49 +00:00
|
|
|
# Copyright 2017 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.
|
|
|
|
|
|
|
|
from ..local import statusfile
|
|
|
|
from ..outproc import base as outproc_base
|
2018-01-31 12:48:13 +00:00
|
|
|
from ..testproc import base as testproc_base
|
2018-01-15 08:03:48 +00:00
|
|
|
from ..testproc.result import Result
|
2018-01-04 10:42:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Only check the exit code of the predictable_wrapper in
|
|
|
|
# verify-predictable mode. Negative tests are not supported as they
|
|
|
|
# usually also don't print allocation hashes. There are two versions of
|
|
|
|
# negative tests: one specified by the test, the other specified through
|
|
|
|
# the status file (e.g. known bugs).
|
|
|
|
|
|
|
|
|
|
|
|
def get_outproc(test):
|
2018-01-31 12:48:13 +00:00
|
|
|
return OutProc(test.output_proc)
|
2018-01-04 10:42:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
class OutProc(outproc_base.BaseOutProc):
|
2018-01-04 15:34:37 +00:00
|
|
|
"""Output processor wrapper for predictable mode. It has custom process and
|
2018-01-04 10:42:49 +00:00
|
|
|
has_unexpected_output implementation, but for all other methods it simply
|
|
|
|
calls wrapped output processor.
|
|
|
|
"""
|
|
|
|
def __init__(self, _outproc):
|
|
|
|
super(OutProc, self).__init__()
|
|
|
|
self._outproc = _outproc
|
|
|
|
|
|
|
|
def has_unexpected_output(self, output):
|
|
|
|
return output.exit_code != 0
|
|
|
|
|
|
|
|
def get_outcome(self, output):
|
|
|
|
return self._outproc.get_outcome(output)
|
|
|
|
|
|
|
|
@property
|
|
|
|
def negative(self):
|
|
|
|
return self._outproc.negative
|
|
|
|
|
|
|
|
@property
|
|
|
|
def expected_outcomes(self):
|
|
|
|
return self._outproc.expected_outcomes
|
|
|
|
|
|
|
|
|
2018-01-31 12:48:13 +00:00
|
|
|
class PredictableFilterProc(testproc_base.TestProcFilter):
|
|
|
|
def _filter(self, test):
|
2018-09-06 13:10:50 +00:00
|
|
|
return test.skip_predictable()
|