| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "base/test/launcher/test_result.h" |
| |
| #include "base/logging.h" |
| #include "starboard/types.h" |
| |
| namespace base { |
| |
| TestResultPart::TestResultPart() = default; |
| TestResultPart::~TestResultPart() = default; |
| |
| TestResultPart::TestResultPart(const TestResultPart& other) = default; |
| TestResultPart::TestResultPart(TestResultPart&& other) = default; |
| TestResultPart& TestResultPart::operator=(const TestResultPart& other) = |
| default; |
| TestResultPart& TestResultPart::operator=(TestResultPart&& other) = default; |
| |
| // static |
| bool TestResultPart::TypeFromString(const std::string& str, Type* type) { |
| if (str == "success") |
| *type = kSuccess; |
| else if (str == "failure") |
| *type = kNonFatalFailure; |
| else if (str == "fatal_failure") |
| *type = kFatalFailure; |
| else |
| return false; |
| return true; |
| } |
| |
| std::string TestResultPart::TypeAsString() const { |
| switch (type) { |
| case kSuccess: |
| return "success"; |
| case kNonFatalFailure: |
| return "failure"; |
| case kFatalFailure: |
| return "fatal_failure"; |
| default: |
| NOTREACHED(); |
| } |
| return "unknown"; |
| } |
| |
| TestResult::TestResult() : status(TEST_UNKNOWN) { |
| } |
| |
| TestResult::~TestResult() = default; |
| |
| TestResult::TestResult(const TestResult& other) = default; |
| TestResult::TestResult(TestResult&& other) = default; |
| TestResult& TestResult::operator=(const TestResult& other) = default; |
| TestResult& TestResult::operator=(TestResult&& other) = default; |
| |
| std::string TestResult::StatusAsString() const { |
| switch (status) { |
| case TEST_UNKNOWN: |
| return "UNKNOWN"; |
| case TEST_SUCCESS: |
| return "SUCCESS"; |
| case TEST_FAILURE: |
| return "FAILURE"; |
| case TEST_FAILURE_ON_EXIT: |
| return "FAILURE_ON_EXIT"; |
| case TEST_CRASH: |
| return "CRASH"; |
| case TEST_TIMEOUT: |
| return "TIMEOUT"; |
| case TEST_SKIPPED: |
| return "SKIPPED"; |
| case TEST_EXCESSIVE_OUTPUT: |
| return "EXCESSIVE_OUTPUT"; |
| // Rely on compiler warnings to ensure all possible values are handled. |
| } |
| |
| NOTREACHED(); |
| return std::string(); |
| } |
| |
| std::string TestResult::GetTestName() const { |
| size_t dot_pos = full_name.find('.'); |
| CHECK_NE(dot_pos, std::string::npos); |
| return full_name.substr(dot_pos + 1); |
| } |
| |
| std::string TestResult::GetTestCaseName() const { |
| size_t dot_pos = full_name.find('.'); |
| CHECK_NE(dot_pos, std::string::npos); |
| return full_name.substr(0, dot_pos); |
| } |
| |
| } // namespace base |