Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / base / test / launcher / test_result.h
blobb61cdd4b932ca42bfa35dbf539e21849eb54d118
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef BASE_TEST_LAUNCHER_TEST_RESULT_H_
6 #define BASE_TEST_LAUNCHER_TEST_RESULT_H_
8 #include <string>
10 #include "base/time/time.h"
12 namespace base {
14 // Structure containing result of a single test.
15 struct TestResult {
16 enum Status {
17 TEST_UNKNOWN, // Status not set.
18 TEST_SUCCESS, // Test passed.
19 TEST_FAILURE, // Assertion failure (think EXPECT_TRUE, not DCHECK).
20 TEST_FAILURE_ON_EXIT, // Test passed but executable exit code was non-zero.
21 TEST_TIMEOUT, // Test timed out and was killed.
22 TEST_CRASH, // Test crashed (includes CHECK/DCHECK failures).
23 TEST_SKIPPED, // Test skipped (not run at all).
26 TestResult();
27 ~TestResult();
29 // Returns the test status as string (e.g. for display).
30 std::string StatusAsString() const;
32 // Returns the test name (e.g. "B" for "A.B").
33 std::string GetTestName() const;
35 // Returns the test case name (e.g. "A" for "A.B").
36 std::string GetTestCaseName() const;
38 // Returns true if the test has completed (i.e. the test binary exited
39 // normally, possibly with an exit code indicating failure, but didn't crash
40 // or time out in the middle of the test).
41 bool completed() const {
42 return status == TEST_SUCCESS ||
43 status == TEST_FAILURE ||
44 status == TEST_FAILURE_ON_EXIT;
47 // Full name of the test (e.g. "A.B").
48 std::string full_name;
50 Status status;
52 // Time it took to run the test.
53 base::TimeDelta elapsed_time;
55 // Output of just this test (optional).
56 std::string output_snippet;
59 } // namespace base
61 #endif // BASE_TEST_LAUNCHER_TEST_RESULT_H_