xref: /aosp_15_r20/external/libchrome/base/test/launcher/test_result.cc (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
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 Worker bool 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 Worker std::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 Worker TestResult::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 Worker std::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 Worker std::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 Worker std::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