Turns on exceptions when compiling gtest_output_test (by Vlad Losev); moves TestCase to gtest.h to prepare for the event listener API (by Vlad Losev).
This commit is contained in:
@@ -556,140 +556,6 @@ class TestInfoImpl {
|
||||
GTEST_DISALLOW_COPY_AND_ASSIGN_(TestInfoImpl);
|
||||
};
|
||||
|
||||
} // namespace internal
|
||||
|
||||
// A test case, which consists of a list of TestInfos.
|
||||
//
|
||||
// TestCase is not copyable.
|
||||
class TestCase {
|
||||
public:
|
||||
// Creates a TestCase with the given name.
|
||||
//
|
||||
// TestCase does NOT have a default constructor. Always use this
|
||||
// constructor to create a TestCase object.
|
||||
//
|
||||
// Arguments:
|
||||
//
|
||||
// name: name of the test case
|
||||
// set_up_tc: pointer to the function that sets up the test case
|
||||
// tear_down_tc: pointer to the function that tears down the test case
|
||||
TestCase(const char* name, const char* comment,
|
||||
Test::SetUpTestCaseFunc set_up_tc,
|
||||
Test::TearDownTestCaseFunc tear_down_tc);
|
||||
|
||||
// Destructor of TestCase.
|
||||
virtual ~TestCase();
|
||||
|
||||
// Gets the name of the TestCase.
|
||||
const char* name() const { return name_.c_str(); }
|
||||
|
||||
// Returns the test case comment.
|
||||
const char* comment() const { return comment_.c_str(); }
|
||||
|
||||
// Returns true if any test in this test case should run.
|
||||
bool should_run() const { return should_run_; }
|
||||
|
||||
// Sets the should_run member.
|
||||
void set_should_run(bool should) { should_run_ = should; }
|
||||
|
||||
// Gets the (mutable) list of TestInfos in this TestCase.
|
||||
internal::List<TestInfo*>& test_info_list() { return *test_info_list_; }
|
||||
|
||||
// Gets the (immutable) list of TestInfos in this TestCase.
|
||||
const internal::List<TestInfo *> & test_info_list() const {
|
||||
return *test_info_list_;
|
||||
}
|
||||
|
||||
// Gets the number of successful tests in this test case.
|
||||
int successful_test_count() const;
|
||||
|
||||
// Gets the number of failed tests in this test case.
|
||||
int failed_test_count() const;
|
||||
|
||||
// Gets the number of disabled tests in this test case.
|
||||
int disabled_test_count() const;
|
||||
|
||||
// Get the number of tests in this test case that should run.
|
||||
int test_to_run_count() const;
|
||||
|
||||
// Gets the number of all tests in this test case.
|
||||
int total_test_count() const;
|
||||
|
||||
// Returns true iff the test case passed.
|
||||
bool Passed() const { return !Failed(); }
|
||||
|
||||
// Returns true iff the test case failed.
|
||||
bool Failed() const { return failed_test_count() > 0; }
|
||||
|
||||
// Returns the elapsed time, in milliseconds.
|
||||
internal::TimeInMillis elapsed_time() const { return elapsed_time_; }
|
||||
|
||||
// Adds a TestInfo to this test case. Will delete the TestInfo upon
|
||||
// destruction of the TestCase object.
|
||||
void AddTestInfo(TestInfo * test_info);
|
||||
|
||||
// Finds and returns a TestInfo with the given name. If one doesn't
|
||||
// exist, returns NULL.
|
||||
TestInfo* GetTestInfo(const char* test_name);
|
||||
|
||||
// Clears the results of all tests in this test case.
|
||||
void ClearResult();
|
||||
|
||||
// Clears the results of all tests in the given test case.
|
||||
static void ClearTestCaseResult(TestCase* test_case) {
|
||||
test_case->ClearResult();
|
||||
}
|
||||
|
||||
// Runs every test in this TestCase.
|
||||
void Run();
|
||||
|
||||
// Runs every test in the given TestCase.
|
||||
static void RunTestCase(TestCase * test_case) { test_case->Run(); }
|
||||
|
||||
// Returns true iff test passed.
|
||||
static bool TestPassed(const TestInfo * test_info) {
|
||||
const internal::TestInfoImpl* const impl = test_info->impl();
|
||||
return impl->should_run() && impl->result()->Passed();
|
||||
}
|
||||
|
||||
// Returns true iff test failed.
|
||||
static bool TestFailed(const TestInfo * test_info) {
|
||||
const internal::TestInfoImpl* const impl = test_info->impl();
|
||||
return impl->should_run() && impl->result()->Failed();
|
||||
}
|
||||
|
||||
// Returns true iff test is disabled.
|
||||
static bool TestDisabled(const TestInfo * test_info) {
|
||||
return test_info->impl()->is_disabled();
|
||||
}
|
||||
|
||||
// Returns true if the given test should run.
|
||||
static bool ShouldRunTest(const TestInfo *test_info) {
|
||||
return test_info->impl()->should_run();
|
||||
}
|
||||
|
||||
private:
|
||||
// Name of the test case.
|
||||
internal::String name_;
|
||||
// Comment on the test case.
|
||||
internal::String comment_;
|
||||
// List of TestInfos.
|
||||
internal::List<TestInfo*>* test_info_list_;
|
||||
// Pointer to the function that sets up the test case.
|
||||
Test::SetUpTestCaseFunc set_up_tc_;
|
||||
// Pointer to the function that tears down the test case.
|
||||
Test::TearDownTestCaseFunc tear_down_tc_;
|
||||
// True iff any test in this test case should run.
|
||||
bool should_run_;
|
||||
// Elapsed time, in milliseconds.
|
||||
internal::TimeInMillis elapsed_time_;
|
||||
|
||||
// We disallow copying TestCases.
|
||||
GTEST_DISALLOW_COPY_AND_ASSIGN_(TestCase);
|
||||
};
|
||||
|
||||
namespace internal {
|
||||
|
||||
// Class UnitTestOptions.
|
||||
//
|
||||
// This class contains functions for processing options the user
|
||||
|
||||
27
src/gtest.cc
27
src/gtest.cc
@@ -129,6 +129,8 @@
|
||||
|
||||
namespace testing {
|
||||
|
||||
using internal::TestCase;
|
||||
|
||||
// Constants.
|
||||
|
||||
// A test whose test case name or test name matches this filter is
|
||||
@@ -2309,8 +2311,6 @@ void TestInfoImpl::Run() {
|
||||
impl->set_current_test_info(NULL);
|
||||
}
|
||||
|
||||
} // namespace internal
|
||||
|
||||
// class TestCase
|
||||
|
||||
// Gets the number of successful tests in this test case.
|
||||
@@ -2401,6 +2401,29 @@ void TestCase::ClearResult() {
|
||||
test_info_list_->ForEach(internal::TestInfoImpl::ClearTestResult);
|
||||
}
|
||||
|
||||
// Returns true iff test passed.
|
||||
bool TestCase::TestPassed(const TestInfo * test_info) {
|
||||
const internal::TestInfoImpl* const impl = test_info->impl();
|
||||
return impl->should_run() && impl->result()->Passed();
|
||||
}
|
||||
|
||||
// Returns true iff test failed.
|
||||
bool TestCase::TestFailed(const TestInfo * test_info) {
|
||||
const internal::TestInfoImpl* const impl = test_info->impl();
|
||||
return impl->should_run() && impl->result()->Failed();
|
||||
}
|
||||
|
||||
// Returns true iff test is disabled.
|
||||
bool TestCase::TestDisabled(const TestInfo * test_info) {
|
||||
return test_info->impl()->is_disabled();
|
||||
}
|
||||
|
||||
// Returns true if the given test should run.
|
||||
bool TestCase::ShouldRunTest(const TestInfo *test_info) {
|
||||
return test_info->impl()->should_run();
|
||||
}
|
||||
|
||||
} // namespace internal
|
||||
|
||||
// class UnitTestEventListenerInterface
|
||||
|
||||
|
||||
Reference in New Issue
Block a user