def get_result(test_name, result_type=test_expectations.PASS, run_time=0):
    failures = []
    if result_type == test_expectations.TIMEOUT:
        failures = [test_failures.FailureTimeout()]
    elif result_type == test_expectations.AUDIO:
        failures = [test_failures.FailureAudioMismatch()]
    elif result_type == test_expectations.CRASH:
        failures = [test_failures.FailureCrash()]
    elif result_type == test_expectations.LEAK:
        failures = [test_failures.FailureLeak()]
    return test_results.TestResult(test_name,
                                   failures=failures,
                                   test_run_time=run_time)
Exemple #2
0
    def _handle_error(self, driver_output, reference_filename=None):
        """Returns test failures if some unusual errors happen in driver's run.

        Args:
          driver_output: The output from the driver.
          reference_filename: The full path to the reference file which produced the driver_output.
              This arg is optional and should be used only in reftests until we have a better way to know
              which html file is used for producing the driver_output.
        """
        failures = []
        fs = self._filesystem
        if driver_output.timeout:
            failures.append(
                test_failures.FailureTimeout(bool(reference_filename)))

        if reference_filename:
            testname = self._port.relative_test_filename(reference_filename)
        else:
            testname = self._test_name

        if driver_output.crash:
            failures.append(
                test_failures.FailureCrash(
                    bool(reference_filename),
                    driver_output.crashed_process_name,
                    driver_output.crashed_pid,
                    self._port.output_contains_sanitizer_messages(
                        driver_output.crash_log)))
            if driver_output.error:
                _log.debug("%s %s crashed, (stderr lines):" %
                           (self._worker_name, testname))
            else:
                _log.debug("%s %s crashed, (no stderr)" %
                           (self._worker_name, testname))
        elif driver_output.leak:
            failures.append(
                test_failures.FailureLeak(bool(reference_filename),
                                          driver_output.leak_log))
            _log.debug("%s %s leaked" % (self._worker_name, testname))
        elif driver_output.error:
            _log.debug("%s %s output stderr lines:" %
                       (self._worker_name, testname))
        for line in driver_output.error.splitlines():
            _log.debug("  %s" % line)
        return failures