// 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 #include "base/logging.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