51 #ifndef GTEST_INCLUDE_GTEST_GTEST_H_ 52 #define GTEST_INCLUDE_GTEST_GTEST_H_ 152 class DefaultGlobalTestPartResultReporter;
154 class NoExecDeathTest;
155 class FinalSuccessChecker;
156 class GTestFlagSaver;
157 class StreamingListenerTest;
158 class TestResultAccessor;
159 class TestEventListenersAccessor;
160 class TestEventRepeater;
161 class UnitTestRecordPropertyTestHelper;
162 class WindowsDeathTest;
271 template <
typename T>
277 : success_(success) {}
288 operator bool()
const {
return success_; }
298 return message_.get() != NULL ? message_->c_str() :
"";
306 AppendMessage(
Message() << value);
313 ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) {
314 AppendMessage(
Message() << basic_manipulator);
321 if (message_.get() == NULL)
323 message_->append(a_message.
GetString().c_str());
400 static bool HasFatalFailure();
403 static bool HasNonfatalFailure();
407 static bool HasFailure() {
return HasFatalFailure() || HasNonfatalFailure(); }
423 static void RecordProperty(
const std::string& key,
int value);
430 virtual void SetUp();
433 virtual void TearDown();
438 static bool HasSameFixtureClass();
446 virtual void TestBody() = 0;
493 key_(a_key), value_(a_value) {
503 return value_.c_str();
534 int total_part_count()
const;
537 int test_property_count()
const;
540 bool Passed()
const {
return !Failed(); }
546 bool HasFatalFailure()
const;
549 bool HasNonfatalFailure()
const;
569 friend class internal::ExecDeathTest;
572 friend class internal::WindowsDeathTest;
576 return test_part_results_;
581 return test_properties_;
593 void RecordProperty(
const std::string& xml_element,
599 static bool ValidateTestProperty(
const std::string& xml_element,
612 void ClearTestPartResults();
660 if (type_param_.get() != NULL)
661 return type_param_->c_str();
668 if (value_param_.get() != NULL)
669 return value_param_->c_str();
696 return matches_filter_;
703 #if GTEST_HAS_DEATH_TEST 704 friend class internal::DefaultDeathTestFactory;
705 #endif // GTEST_HAS_DEATH_TEST 709 friend class internal::StreamingListenerTest;
711 const char* test_case_name,
713 const char* type_param,
714 const char* value_param,
724 const char* a_type_param,
725 const char* a_value_param,
732 return result_.increment_death_test_count();
797 if (type_param_.get() != NULL)
798 return type_param_->c_str();
806 int successful_test_count()
const;
809 int failed_test_count()
const;
812 int reportable_disabled_test_count()
const;
815 int disabled_test_count()
const;
818 int reportable_test_count()
const;
821 int test_to_run_count()
const;
824 int total_test_count()
const;
827 bool Passed()
const {
return !Failed(); }
830 bool Failed()
const {
return failed_test_count() > 0; }
837 const TestInfo* GetTestInfo(
int i)
const;
852 return test_info_list_;
857 TestInfo* GetMutableTestInfo(
int i);
864 void AddTestInfo(
TestInfo * test_info);
920 void UnshuffleTests();
988 virtual void OnTestProgramStart(
const UnitTest& unit_test) = 0;
993 virtual void OnTestIterationStart(
const UnitTest& unit_test,
997 virtual void OnEnvironmentsSetUpStart(
const UnitTest& unit_test) = 0;
1000 virtual void OnEnvironmentsSetUpEnd(
const UnitTest& unit_test) = 0;
1003 virtual void OnTestCaseStart(
const TestCase& test_case) = 0;
1006 virtual void OnTestStart(
const TestInfo& test_info) = 0;
1009 virtual void OnTestPartResult(
const TestPartResult& test_part_result) = 0;
1012 virtual void OnTestEnd(
const TestInfo& test_info) = 0;
1015 virtual void OnTestCaseEnd(
const TestCase& test_case) = 0;
1018 virtual void OnEnvironmentsTearDownStart(
const UnitTest& unit_test) = 0;
1021 virtual void OnEnvironmentsTearDownEnd(
const UnitTest& unit_test) = 0;
1024 virtual void OnTestIterationEnd(
const UnitTest& unit_test,
1028 virtual void OnTestProgramEnd(
const UnitTest& unit_test) = 0;
1077 return default_result_printer_;
1088 return default_xml_generator_;
1095 friend class internal::NoExecDeathTest;
1119 bool EventForwardingEnabled()
const;
1120 void SuppressEventForwarding();
1160 const char* original_working_dir()
const;
1164 const TestCase* current_test_case()
const 1169 const TestInfo* current_test_info()
const 1173 int random_seed()
const;
1175 #if GTEST_HAS_PARAM_TEST 1180 internal::ParameterizedTestCaseRegistry& parameterized_test_registry()
1182 #endif // GTEST_HAS_PARAM_TEST 1185 int successful_test_case_count()
const;
1188 int failed_test_case_count()
const;
1191 int total_test_case_count()
const;
1195 int test_case_to_run_count()
const;
1198 int successful_test_count()
const;
1201 int failed_test_count()
const;
1204 int reportable_disabled_test_count()
const;
1207 int disabled_test_count()
const;
1210 int reportable_test_count()
const;
1213 int total_test_count()
const;
1216 int test_to_run_count()
const;
1220 TimeInMillis start_timestamp()
const;
1223 TimeInMillis elapsed_time()
const;
1226 bool Passed()
const;
1230 bool Failed()
const;
1234 const TestCase* GetTestCase(
int i)
const;
1238 const TestResult& ad_hoc_test_result()
const;
1261 const char* file_name,
1276 TestCase* GetMutableTestCase(
int i);
1287 friend class internal::StreamingListenerTest;
1307 void PopGTestTrace()
1308 GTEST_LOCK_EXCLUDED_(mutex_);
1312 mutable internal::Mutex mutex_;
1318 internal::UnitTestImpl* impl_;
1361 namespace internal {
1378 template <
typename ToPr
int,
typename OtherOperand>
1387 template <
typename ToPr
int,
size_t N,
typename OtherOperand>
1398 #define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType) \ 1399 template <typename OtherOperand> \ 1400 class FormatForComparison<CharType*, OtherOperand> { \ 1402 static ::std::string Format(CharType* value) { \ 1403 return ::testing::PrintToString(static_cast<const void*>(value)); \ 1412 #undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_ 1417 #define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \ 1419 class FormatForComparison<CharType*, OtherStringType> { \ 1421 static ::std::string Format(CharType* value) { \ 1422 return ::testing::PrintToString(value); \ 1429 #if GTEST_HAS_GLOBAL_STRING 1434 #if GTEST_HAS_GLOBAL_WSTRING 1439 #if GTEST_HAS_STD_WSTRING 1444 #undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_ 1454 template <
typename T1,
typename T2>
1456 const T1& value,
const T2& ) {
1463 template <
typename T1,
typename T2>
1465 const char* actual_expression,
1466 const T1& expected,
const T2& actual) {
1475 template <
typename T1,
typename T2>
1477 const char* actual_expression,
1481 if (expected == actual) {
1494 const char* actual_expression,
1502 template <
bool lhs_is_null_literal>
1506 template <
typename T1,
typename T2>
1508 const char* actual_expression,
1511 return CmpHelperEQ(expected_expression, actual_expression, expected,
1522 const char* actual_expression,
1525 return CmpHelperEQ(expected_expression, actual_expression, expected,
1539 template <
typename T1,
typename T2>
1541 const char* expected_expression,
1542 const char* actual_expression,
1551 return CmpHelperEQ(expected_expression, actual_expression, expected,
1557 template <
typename T>
1559 const char* expected_expression,
1560 const char* actual_expression,
1570 return CmpHelperEQ(expected_expression, actual_expression,
1571 static_cast<T*>(NULL), actual);
1578 template <
typename T1,
typename T2>
1580 const T1& val1,
const T2& val2,
1583 <<
"Expected: (" << expr1 <<
") " << op <<
" (" << expr2
1599 #define GTEST_IMPL_CMP_HELPER_(op_name, op)\ 1600 template <typename T1, typename T2>\ 1601 AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \ 1602 const T1& val1, const T2& val2) {\ 1603 if (val1 op val2) {\ 1604 return AssertionSuccess();\ 1606 return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);\ 1609 GTEST_API_ AssertionResult CmpHelper##op_name(\ 1610 const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2) 1625 #undef GTEST_IMPL_CMP_HELPER_ 1631 const char* actual_expression,
1632 const char* expected,
1633 const char* actual);
1639 const char* actual_expression,
1640 const char* expected,
1641 const char* actual);
1647 const char* s2_expression,
1655 const char* s2_expression,
1664 const char* actual_expression,
1665 const wchar_t* expected,
1666 const wchar_t* actual);
1672 const char* s2_expression,
1687 const char* needle_expr,
const char* haystack_expr,
1688 const char* needle,
const char* haystack);
1690 const char* needle_expr,
const char* haystack_expr,
1691 const wchar_t* needle,
const wchar_t* haystack);
1693 const char* needle_expr,
const char* haystack_expr,
1694 const char* needle,
const char* haystack);
1696 const char* needle_expr,
const char* haystack_expr,
1697 const wchar_t* needle,
const wchar_t* haystack);
1699 const char* needle_expr,
const char* haystack_expr,
1702 const char* needle_expr,
const char* haystack_expr,
1705 #if GTEST_HAS_STD_WSTRING 1707 const char* needle_expr,
const char* haystack_expr,
1710 const char* needle_expr,
const char* haystack_expr,
1712 #endif // GTEST_HAS_STD_WSTRING 1714 namespace internal {
1723 template <
typename RawType>
1725 const char* actual_expression,
1730 if (lhs.AlmostEquals(rhs)) {
1734 ::std::stringstream expected_ss;
1735 expected_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
1738 ::std::stringstream actual_ss;
1739 actual_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
1754 const char* abs_error_expr,
1767 const char* message);
1772 void operator=(
const Message& message)
const;
1781 const char* srcfile,
1784 : type(t), file(srcfile), line(line_num), message(msg) { }
1802 #if GTEST_HAS_PARAM_TEST 1837 template <
typename T>
1838 class WithParamInterface {
1840 typedef T ParamType;
1841 virtual ~WithParamInterface() {}
1848 const ParamType& GetParam()
const {
1850 <<
"GetParam() can only be called inside a value-parameterized test " 1851 <<
"-- did you intend to write TEST_P instead of TEST_F?";
1858 static void SetParam(
const ParamType* parameter) {
1859 parameter_ = parameter;
1863 static const ParamType* parameter_;
1866 template <
class TestClass>
friend class internal::ParameterizedTestFactory;
1869 template <
typename T>
1870 const T* WithParamInterface<T>::parameter_ = NULL;
1875 template <
typename T>
1876 class TestWithParam :
public Test,
public WithParamInterface<T> {
1879 #endif // GTEST_HAS_PARAM_TEST 1901 #define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed") 1905 #define ADD_FAILURE_AT(file, line) \ 1906 GTEST_MESSAGE_AT_(file, line, "Failed", \ 1907 ::testing::TestPartResult::kNonFatalFailure) 1910 #define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed") 1914 #if !GTEST_DONT_DEFINE_FAIL 1915 # define FAIL() GTEST_FAIL() 1919 #define GTEST_SUCCEED() GTEST_SUCCESS_("Succeeded") 1923 #if !GTEST_DONT_DEFINE_SUCCEED 1924 # define SUCCEED() GTEST_SUCCEED() 1936 #define EXPECT_THROW(statement, expected_exception) \ 1937 GTEST_TEST_THROW_(statement, expected_exception, GTEST_NONFATAL_FAILURE_) 1938 #define EXPECT_NO_THROW(statement) \ 1939 GTEST_TEST_NO_THROW_(statement, GTEST_NONFATAL_FAILURE_) 1940 #define EXPECT_ANY_THROW(statement) \ 1941 GTEST_TEST_ANY_THROW_(statement, GTEST_NONFATAL_FAILURE_) 1942 #define ASSERT_THROW(statement, expected_exception) \ 1943 GTEST_TEST_THROW_(statement, expected_exception, GTEST_FATAL_FAILURE_) 1944 #define ASSERT_NO_THROW(statement) \ 1945 GTEST_TEST_NO_THROW_(statement, GTEST_FATAL_FAILURE_) 1946 #define ASSERT_ANY_THROW(statement) \ 1947 GTEST_TEST_ANY_THROW_(statement, GTEST_FATAL_FAILURE_) 1952 #define EXPECT_TRUE(condition) \ 1953 GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ 1954 GTEST_NONFATAL_FAILURE_) 1955 #define EXPECT_FALSE(condition) \ 1956 GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ 1957 GTEST_NONFATAL_FAILURE_) 1958 #define ASSERT_TRUE(condition) \ 1959 GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ 1960 GTEST_FATAL_FAILURE_) 1961 #define ASSERT_FALSE(condition) \ 1962 GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ 1963 GTEST_FATAL_FAILURE_) 2015 #define EXPECT_EQ(expected, actual) \ 2016 EXPECT_PRED_FORMAT2(::testing::internal:: \ 2017 EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \ 2019 #define EXPECT_NE(expected, actual) \ 2020 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, expected, actual) 2021 #define EXPECT_LE(val1, val2) \ 2022 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) 2023 #define EXPECT_LT(val1, val2) \ 2024 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) 2025 #define EXPECT_GE(val1, val2) \ 2026 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) 2027 #define EXPECT_GT(val1, val2) \ 2028 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) 2030 #define GTEST_ASSERT_EQ(expected, actual) \ 2031 ASSERT_PRED_FORMAT2(::testing::internal:: \ 2032 EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \ 2034 #define GTEST_ASSERT_NE(val1, val2) \ 2035 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2) 2036 #define GTEST_ASSERT_LE(val1, val2) \ 2037 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) 2038 #define GTEST_ASSERT_LT(val1, val2) \ 2039 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) 2040 #define GTEST_ASSERT_GE(val1, val2) \ 2041 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) 2042 #define GTEST_ASSERT_GT(val1, val2) \ 2043 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) 2048 #if !GTEST_DONT_DEFINE_ASSERT_EQ 2049 # define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2) 2052 #if !GTEST_DONT_DEFINE_ASSERT_NE 2053 # define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2) 2056 #if !GTEST_DONT_DEFINE_ASSERT_LE 2057 # define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2) 2060 #if !GTEST_DONT_DEFINE_ASSERT_LT 2061 # define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2) 2064 #if !GTEST_DONT_DEFINE_ASSERT_GE 2065 # define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2) 2068 #if !GTEST_DONT_DEFINE_ASSERT_GT 2069 # define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2) 2088 #define EXPECT_STREQ(expected, actual) \ 2089 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual) 2090 #define EXPECT_STRNE(s1, s2) \ 2091 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) 2092 #define EXPECT_STRCASEEQ(expected, actual) \ 2093 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual) 2094 #define EXPECT_STRCASENE(s1, s2)\ 2095 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) 2097 #define ASSERT_STREQ(expected, actual) \ 2098 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, expected, actual) 2099 #define ASSERT_STRNE(s1, s2) \ 2100 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) 2101 #define ASSERT_STRCASEEQ(expected, actual) \ 2102 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, expected, actual) 2103 #define ASSERT_STRCASENE(s1, s2)\ 2104 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) 2120 #define EXPECT_FLOAT_EQ(expected, actual)\ 2121 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \ 2124 #define EXPECT_DOUBLE_EQ(expected, actual)\ 2125 EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \ 2128 #define ASSERT_FLOAT_EQ(expected, actual)\ 2129 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \ 2132 #define ASSERT_DOUBLE_EQ(expected, actual)\ 2133 ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \ 2136 #define EXPECT_NEAR(val1, val2, abs_error)\ 2137 EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ 2138 val1, val2, abs_error) 2140 #define ASSERT_NEAR(val1, val2, abs_error)\ 2141 ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ 2142 val1, val2, abs_error) 2152 float val1,
float val2);
2154 double val1,
double val2);
2157 #if GTEST_OS_WINDOWS 2168 # define EXPECT_HRESULT_SUCCEEDED(expr) \ 2169 EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) 2171 # define ASSERT_HRESULT_SUCCEEDED(expr) \ 2172 ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) 2174 # define EXPECT_HRESULT_FAILED(expr) \ 2175 EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) 2177 # define ASSERT_HRESULT_FAILED(expr) \ 2178 ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) 2180 #endif // GTEST_OS_WINDOWS 2192 #define ASSERT_NO_FATAL_FAILURE(statement) \ 2193 GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_) 2194 #define EXPECT_NO_FATAL_FAILURE(statement) \ 2195 GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_) 2208 #define SCOPED_TRACE(message) \ 2209 ::testing::internal::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\ 2210 __FILE__, __LINE__, ::testing::Message() << (message)) 2242 template <
typename T1,
typename T2>
2273 #define GTEST_TEST(test_case_name, test_name)\ 2274 GTEST_TEST_(test_case_name, test_name, \ 2275 ::testing::Test, ::testing::internal::GetTestTypeId()) 2279 #if !GTEST_DONT_DEFINE_TEST 2280 # define TEST(test_case_name, test_name) GTEST_TEST(test_case_name, test_name) 2309 #define TEST_F(test_fixture, test_name)\ 2310 GTEST_TEST_(test_fixture, test_name, test_fixture, \ 2311 ::testing::internal::GetTypeId<test_fixture>()) 2326 return ::testing::UnitTest::GetInstance()->Run();
2329 #endif // GTEST_INCLUDE_GTEST_GTEST_H_ const internal::GTestFlagSaver *const gtest_flag_saver_
class UnitTestImpl * GetUnitTestImpl()
internal::SetUpTestCaseFunc SetUpTestCaseFunc
const char * type_param() const
void ReportFailureInUnknownLocation(TestPartResult::Type result_type, const std::string &message)
Environment * AddGlobalTestEnvironment(Environment *env)
virtual void OnTestProgramStart(const UnitTest &)
virtual void OnEnvironmentsSetUpEnd(const UnitTest &)
int death_test_count() const
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, Secret *, T *actual)
std::vector< TestInfo * > test_info_list_
static void SetUpTestCase()
GTEST_API_ AssertionResult AssertionFailure()
const std::vector< TestProperty > & test_properties() const
GTEST_DECLARE_int32_(random_seed)
virtual ~TestEventListener()
#define GTEST_DISABLE_MSC_WARNINGS_POP_()
internal::TestEventRepeater * repeater_
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, BiggestInt expected, BiggestInt actual)
static bool TestFailed(const TestInfo *test_info)
::std::string PrintToString(const T &value)
AssertionResult CmpHelperFloatingPointEQ(const char *expected_expression, const char *actual_expression, RawType expected, RawType actual)
static bool TestReportableDisabled(const TestInfo *test_info)
const internal::UnitTestImpl * impl() const
static void ClearTestResult(TestInfo *test_info)
internal::Mutex test_properites_mutex_
virtual void OnTestCaseEnd(const TestCase &)
const std::vector< TestPartResult > & test_part_results() const
int increment_death_test_count()
GTEST_API_ AssertionResult CmpHelperSTRCASENE(const char *s1_expression, const char *s2_expression, const char *s1, const char *s2)
TimeInMillis elapsed_time_
TestPartResult::Type const type
GTEST_DECLARE_bool_(also_run_disabled_tests)
AssertionResult CmpHelperEQFailure(const char *expected_expression, const char *actual_expression, const T1 &expected, const T2 &actual)
void set_elapsed_time(TimeInMillis elapsed)
TestEventListener * default_xml_generator() const
GTEST_API_ AssertionResult DoubleNearPredFormat(const char *expr1, const char *expr2, const char *abs_error_expr, double val1, double val2, double abs_error)
virtual void OnTestPartResult(const TestPartResult &)
std::vector< TestInfo * > & test_info_list()
GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char,::std::string)
internal::TearDownTestCaseFunc TearDownTestCaseFunc
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, const T1 &expected, const T2 &actual, typename EnableIf<!is_pointer< T2 >::value >::type *=0)
GTEST_API_ TestInfo * MakeAndRegisterTestInfo(const char *test_case_name, const char *name, const char *type_param, const char *value_param, TypeId fixture_class_id, SetUpTestCaseFunc set_up_tc, TearDownTestCaseFunc tear_down_tc, TestFactoryBase *factory)
std::string FormatForComparisonFailureMessage(const T1 &value, const T2 &)
TypeWithSize< 8 >::Int TimeInMillis
#define GTEST_LOCK_EXCLUDED_(locks)
AssertHelperData *const data_
virtual void OnEnvironmentsTearDownEnd(const UnitTest &)
const char * failure_message() const
void AppendMessage(const Message &a_message)
void SetValue(const std::string &new_value)
internal::scoped_ptr< ::std::string > message_
int increment_death_test_count()
internal::TestFactoryBase *const factory_
const internal::TypeId fixture_class_id_
AssertionResult(const T &success, typename internal::EnableIf< !internal::ImplicitlyConvertible< T, AssertionResult >::value >::type *=NULL)
TestResult ad_hoc_test_result_
virtual Setup_should_be_spelled_SetUp * Setup()
const std::vector< TestInfo * > & test_info_list() const
GTEST_IMPL_CMP_HELPER_(NE,!=)
bool is_reportable() const
UNITTEST_START char * output
const char * name() const
const char * message() const
GTEST_API_ AssertionResult AssertionSuccess()
#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)
#define GTEST_CHECK_(condition)
std::string const message
AssertionResult & operator<<(const T &value)
const internal::scoped_ptr< const ::std::string > type_param_
const int kMaxStackTraceDepth
std::vector< TestPartResult > test_part_results_
std::vector< TestProperty > test_properties_
static bool TestPassed(const TestInfo *test_info)
GTEST_DECLARE_string_(death_test_style)
AssertionResult CmpHelperOpFailure(const char *expr1, const char *expr2, const T1 &val1, const T2 &val2, const char *op)
const internal::scoped_ptr< const ::std::string > type_param_
void(* SetUpTestCaseFunc)()
void(* TearDownTestCaseFunc)()
Test::SetUpTestCaseFunc set_up_tc_
virtual Setup_should_be_spelled_SetUp * Setup()
virtual void OnTestIterationStart(const UnitTest &, int)
const char * value_param() const
std::string GetString() const
GTEST_API_ AssertionResult IsSubstring(const char *needle_expr, const char *haystack_expr, const char *needle, const char *haystack)
GTEST_API_ AssertionResult CmpHelperSTRCASEEQ(const char *expected_expression, const char *actual_expression, const char *expected, const char *actual)
AssertHelperData(TestPartResult::Type t, const char *srcfile, int line_num, const char *msg)
const char * test_case_name() const
GTEST_API_ AssertionResult CmpHelperSTRNE(const char *s1_expression, const char *s2_expression, const char *s1, const char *s2)
const TestResult & ad_hoc_test_result() const
virtual void OnEnvironmentsTearDownStart(const UnitTest &)
Environment * AddEnvironment(Environment *env)
AssertionResult & operator<<(::std::ostream &(*basic_manipulator)(::std::ostream &stream))
Test::TearDownTestCaseFunc tear_down_tc_
internal::UnitTestImpl * impl()
virtual void OnTestCaseStart(const TestCase &)
virtual void OnTestProgramEnd(const UnitTest &)
static void ClearTestCaseResult(TestCase *test_case)
static bool TestDisabled(const TestInfo *test_info)
GTEST_API_ AssertionResult EqFailure(const char *expected_expression, const char *actual_expression, const std::string &expected_value, const std::string &actual_value, bool ignoring_case)
AssertionResult CmpHelperEQ(const char *expected_expression, const char *actual_expression, const T1 &expected, const T2 &actual)
TestProperty(const std::string &a_key, const std::string &a_value)
static bool TestReportable(const TestInfo *test_info)
TestEventListener * default_xml_generator_
virtual void OnTestIterationEnd(const UnitTest &, int)
void RunTearDownTestCase()
TimeInMillis elapsed_time_
TestEventListener * default_result_printer_
#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)
GTEST_API_ std::string StringStreamToString(::std::stringstream *stream)
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
bool StaticAssertTypeEq()
virtual void OnEnvironmentsSetUpStart(const UnitTest &)
GTEST_API_ AssertionResult DoubleLE(const char *expr1, const char *expr2, double val1, double val2)
void set_should_run(bool should)
UNITTEST_START int * value
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
const char * name() const
TimeInMillis elapsed_time() const
const TestResult * result() const
GTEST_API_ AssertionResult IsNotSubstring(const char *needle_expr, const char *haystack_expr, const char *needle, const char *haystack)
static UnitTest * GetInstance()
GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char)
TestEventListener * default_result_printer() const
GTEST_API_ AssertionResult CmpHelperSTREQ(const char *expected_expression, const char *actual_expression, const char *expected, const char *actual)
const char * type_param() const
virtual void OnTestStart(const TestInfo &)
const char * value() const
void swap(scoped_ptr< T > &, scoped_ptr< T > &)
const internal::scoped_ptr< const ::std::string > value_param_
IMETHOD void random(Vector &a)
static bool ShouldRunTest(const TestInfo *test_info)
static AssertionResult Compare(const char *expected_expression, const char *actual_expression, const T1 &expected, const T2 &actual)
virtual void OnTestEnd(const TestInfo &)
std::vector< int > test_indices_
static void TearDownTestCase()
#define GTEST_MUST_USE_RESULT_
GTEST_API_ AssertionResult FloatLE(const char *expr1, const char *expr2, float val1, float val2)
const std::string test_case_name_
TimeInMillis elapsed_time() const