// 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. #ifndef BASE_TEST_LAUNCHER_TEST_RESULT_H_ #define BASE_TEST_LAUNCHER_TEST_RESULT_H_ #include <string> #include "base/time/time.h" namespace base { // Structure containing result of a single test. struct TestResult { enum Status { TEST_UNKNOWN, // Status not set. TEST_SUCCESS, // Test passed. TEST_FAILURE, // Assertion failure (think EXPECT_TRUE, not DCHECK). TEST_FAILURE_ON_EXIT, // Test passed but executable exit code was non-zero. TEST_TIMEOUT, // Test timed out and was killed. TEST_CRASH, // Test crashed (includes CHECK/DCHECK failures). TEST_SKIPPED, // Test skipped (not run at all). }; TestResult(); ~TestResult(); // Returns the test status as string (e.g. for display). std::string StatusAsString() const; // Returns the test name (e.g. "B" for "A.B"). std::string GetTestName() const; // Returns the test case name (e.g. "A" for "A.B"). std::string GetTestCaseName() const; // Returns true if the test has completed (i.e. the test binary exited // normally, possibly with an exit code indicating failure, but didn't crash // or time out in the middle of the test). bool completed() const { return status == TEST_SUCCESS || status == TEST_FAILURE || status == TEST_FAILURE_ON_EXIT; } // Full name of the test (e.g. "A.B"). std::string full_name; Status status; // Time it took to run the test. base::TimeDelta elapsed_time; // Output of just this test (optional). std::string output_snippet; }; } // namespace base #endif // BASE_TEST_LAUNCHER_TEST_RESULT_H_