1*635a8641SAndroid Build Coastguard Worker // Copyright 2013 The Chromium Authors. All rights reserved. 2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file. 4*635a8641SAndroid Build Coastguard Worker 5*635a8641SAndroid Build Coastguard Worker #include "base/test/launcher/test_result.h" 6*635a8641SAndroid Build Coastguard Worker 7*635a8641SAndroid Build Coastguard Worker #include <stddef.h> 8*635a8641SAndroid Build Coastguard Worker 9*635a8641SAndroid Build Coastguard Worker #include "base/logging.h" 10*635a8641SAndroid Build Coastguard Worker 11*635a8641SAndroid Build Coastguard Worker namespace base { 12*635a8641SAndroid Build Coastguard Worker 13*635a8641SAndroid Build Coastguard Worker TestResultPart::TestResultPart() = default; 14*635a8641SAndroid Build Coastguard Worker TestResultPart::~TestResultPart() = default; 15*635a8641SAndroid Build Coastguard Worker 16*635a8641SAndroid Build Coastguard Worker TestResultPart::TestResultPart(const TestResultPart& other) = default; 17*635a8641SAndroid Build Coastguard Worker TestResultPart::TestResultPart(TestResultPart&& other) = default; 18*635a8641SAndroid Build Coastguard Worker TestResultPart& TestResultPart::operator=(const TestResultPart& other) = 19*635a8641SAndroid Build Coastguard Worker default; 20*635a8641SAndroid Build Coastguard Worker TestResultPart& TestResultPart::operator=(TestResultPart&& other) = default; 21*635a8641SAndroid Build Coastguard Worker 22*635a8641SAndroid Build Coastguard Worker // static TypeFromString(const std::string & str,Type * type)23*635a8641SAndroid Build Coastguard Workerbool TestResultPart::TypeFromString(const std::string& str, Type* type) { 24*635a8641SAndroid Build Coastguard Worker if (str == "success") 25*635a8641SAndroid Build Coastguard Worker *type = kSuccess; 26*635a8641SAndroid Build Coastguard Worker else if (str == "failure") 27*635a8641SAndroid Build Coastguard Worker *type = kNonFatalFailure; 28*635a8641SAndroid Build Coastguard Worker else if (str == "fatal_failure") 29*635a8641SAndroid Build Coastguard Worker *type = kFatalFailure; 30*635a8641SAndroid Build Coastguard Worker else 31*635a8641SAndroid Build Coastguard Worker return false; 32*635a8641SAndroid Build Coastguard Worker return true; 33*635a8641SAndroid Build Coastguard Worker } 34*635a8641SAndroid Build Coastguard Worker TypeAsString() const35*635a8641SAndroid Build Coastguard Workerstd::string TestResultPart::TypeAsString() const { 36*635a8641SAndroid Build Coastguard Worker switch (type) { 37*635a8641SAndroid Build Coastguard Worker case kSuccess: 38*635a8641SAndroid Build Coastguard Worker return "success"; 39*635a8641SAndroid Build Coastguard Worker case kNonFatalFailure: 40*635a8641SAndroid Build Coastguard Worker return "failure"; 41*635a8641SAndroid Build Coastguard Worker case kFatalFailure: 42*635a8641SAndroid Build Coastguard Worker return "fatal_failure"; 43*635a8641SAndroid Build Coastguard Worker default: 44*635a8641SAndroid Build Coastguard Worker NOTREACHED(); 45*635a8641SAndroid Build Coastguard Worker } 46*635a8641SAndroid Build Coastguard Worker return "unknown"; 47*635a8641SAndroid Build Coastguard Worker } 48*635a8641SAndroid Build Coastguard Worker TestResult()49*635a8641SAndroid Build Coastguard WorkerTestResult::TestResult() : status(TEST_UNKNOWN) { 50*635a8641SAndroid Build Coastguard Worker } 51*635a8641SAndroid Build Coastguard Worker 52*635a8641SAndroid Build Coastguard Worker TestResult::~TestResult() = default; 53*635a8641SAndroid Build Coastguard Worker 54*635a8641SAndroid Build Coastguard Worker TestResult::TestResult(const TestResult& other) = default; 55*635a8641SAndroid Build Coastguard Worker TestResult::TestResult(TestResult&& other) = default; 56*635a8641SAndroid Build Coastguard Worker TestResult& TestResult::operator=(const TestResult& other) = default; 57*635a8641SAndroid Build Coastguard Worker TestResult& TestResult::operator=(TestResult&& other) = default; 58*635a8641SAndroid Build Coastguard Worker StatusAsString() const59*635a8641SAndroid Build Coastguard Workerstd::string TestResult::StatusAsString() const { 60*635a8641SAndroid Build Coastguard Worker switch (status) { 61*635a8641SAndroid Build Coastguard Worker case TEST_UNKNOWN: 62*635a8641SAndroid Build Coastguard Worker return "UNKNOWN"; 63*635a8641SAndroid Build Coastguard Worker case TEST_SUCCESS: 64*635a8641SAndroid Build Coastguard Worker return "SUCCESS"; 65*635a8641SAndroid Build Coastguard Worker case TEST_FAILURE: 66*635a8641SAndroid Build Coastguard Worker return "FAILURE"; 67*635a8641SAndroid Build Coastguard Worker case TEST_FAILURE_ON_EXIT: 68*635a8641SAndroid Build Coastguard Worker return "FAILURE_ON_EXIT"; 69*635a8641SAndroid Build Coastguard Worker case TEST_CRASH: 70*635a8641SAndroid Build Coastguard Worker return "CRASH"; 71*635a8641SAndroid Build Coastguard Worker case TEST_TIMEOUT: 72*635a8641SAndroid Build Coastguard Worker return "TIMEOUT"; 73*635a8641SAndroid Build Coastguard Worker case TEST_SKIPPED: 74*635a8641SAndroid Build Coastguard Worker return "SKIPPED"; 75*635a8641SAndroid Build Coastguard Worker case TEST_EXCESSIVE_OUTPUT: 76*635a8641SAndroid Build Coastguard Worker return "EXCESSIVE_OUTPUT"; 77*635a8641SAndroid Build Coastguard Worker // Rely on compiler warnings to ensure all possible values are handled. 78*635a8641SAndroid Build Coastguard Worker } 79*635a8641SAndroid Build Coastguard Worker 80*635a8641SAndroid Build Coastguard Worker NOTREACHED(); 81*635a8641SAndroid Build Coastguard Worker return std::string(); 82*635a8641SAndroid Build Coastguard Worker } 83*635a8641SAndroid Build Coastguard Worker GetTestName() const84*635a8641SAndroid Build Coastguard Workerstd::string TestResult::GetTestName() const { 85*635a8641SAndroid Build Coastguard Worker size_t dot_pos = full_name.find('.'); 86*635a8641SAndroid Build Coastguard Worker CHECK_NE(dot_pos, std::string::npos); 87*635a8641SAndroid Build Coastguard Worker return full_name.substr(dot_pos + 1); 88*635a8641SAndroid Build Coastguard Worker } 89*635a8641SAndroid Build Coastguard Worker GetTestCaseName() const90*635a8641SAndroid Build Coastguard Workerstd::string TestResult::GetTestCaseName() const { 91*635a8641SAndroid Build Coastguard Worker size_t dot_pos = full_name.find('.'); 92*635a8641SAndroid Build Coastguard Worker CHECK_NE(dot_pos, std::string::npos); 93*635a8641SAndroid Build Coastguard Worker return full_name.substr(0, dot_pos); 94*635a8641SAndroid Build Coastguard Worker } 95*635a8641SAndroid Build Coastguard Worker 96*635a8641SAndroid Build Coastguard Worker } // namespace base 97