proxygen
gtest.cc File Reference
#include "gtest/gtest.h"
#include "gtest/internal/custom/gtest.h"
#include "gtest/gtest-spi.h"
#include <ctype.h>
#include <math.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <wchar.h>
#include <wctype.h>
#include <algorithm>
#include <iomanip>
#include <limits>
#include <list>
#include <map>
#include <ostream>
#include <sstream>
#include <vector>
#include <sys/time.h>
#include <unistd.h>
#include "src/gtest-internal-inl.h"

Go to the source code of this file.

Classes

class  testing::internal::PrettyUnitTestResultPrinter
 
class  testing::internal::TestEventRepeater
 
class  testing::internal::XmlUnitTestResultPrinter
 
class  testing::internal::ScopedPrematureExitFile
 
class  testing::internal::TestCaseNameIs
 

Namespaces

 testing
 
 testing::internal
 
 testing::internal::edit_distance
 

Macros

#define GTEST_HAS_GETTIMEOFDAY_   1
 
#define GTEST_IMPLEMENTATION_   1
 
#define GTEST_IMPL_CMP_HELPER_(op_name, op)
 
#define GTEST_REPEATER_METHOD_(Name, Type)
 
#define GTEST_REVERSE_REPEATER_METHOD_(Name, Type)
 

Enumerations

enum  testing::internal::GTestColor {
  testing::internal::COLOR_DEFAULT, testing::internal::COLOR_RED, testing::internal::COLOR_GREEN, testing::internal::COLOR_YELLOW,
  testing::internal::COLOR_DEFAULT, testing::internal::COLOR_RED, testing::internal::COLOR_GREEN, testing::internal::COLOR_YELLOW,
  testing::internal::COLOR_DEFAULT, testing::internal::COLOR_RED, testing::internal::COLOR_GREEN, testing::internal::COLOR_YELLOW
}
 

Functions

static const char * testing::GetDefaultFilter ()
 
 testing::GTEST_DEFINE_bool_ (also_run_disabled_tests, internal::BoolFromGTestEnv("also_run_disabled_tests", false),"Run disabled tests too, in addition to the tests normally being run.")
 
 testing::GTEST_DEFINE_bool_ (break_on_failure, internal::BoolFromGTestEnv("break_on_failure", false),"True iff a failed assertion should be a debugger break-point.")
 
 testing::GTEST_DEFINE_bool_ (catch_exceptions, internal::BoolFromGTestEnv("catch_exceptions", true),"True iff "GTEST_NAME_" should catch exceptions and treat them as test failures.")
 
 testing::GTEST_DEFINE_string_ (color, internal::StringFromGTestEnv("color","auto"),"Whether to use colors in the output. Valid values: yes, no, ""and auto. 'auto' means to use colors if the output is ""being sent to a terminal and the TERM environment variable ""is set to a terminal type that supports colors.")
 
 testing::GTEST_DEFINE_string_ (filter, internal::StringFromGTestEnv("filter", GetDefaultFilter()),"A colon-separated list of glob (not regex) patterns ""for filtering the tests to run, optionally followed by a ""'-' and a : separated list of negative patterns (tests to ""exclude). A test is run if it matches one of the positive ""patterns and does not match any of the negative patterns.")
 
 testing::GTEST_DEFINE_bool_ (list_tests, false,"List all tests without running them.")
 
 testing::GTEST_DEFINE_string_ (output, internal::StringFromGTestEnv("output",""),"A format (currently must be \"xml\"), optionally followed ""by a colon and an output file name or directory. A directory ""is indicated by a trailing pathname separator. ""Examples: \"xml:filename.xml\", \"xml::directoryname/\". ""If a directory is specified, output files will be created ""within that directory, with file-names based on the test ""executable's name and, if necessary, made unique by adding ""digits.")
 
 testing::GTEST_DEFINE_bool_ (print_time, internal::BoolFromGTestEnv("print_time", true),"True iff "GTEST_NAME_" should display elapsed time in text output.")
 
 testing::GTEST_DEFINE_int32_ (random_seed, internal::Int32FromGTestEnv("random_seed", 0),"Random number seed to use when shuffling test orders. Must be in range ""[1, 99999], or 0 to use a seed based on the current time.")
 
 testing::GTEST_DEFINE_int32_ (repeat, internal::Int32FromGTestEnv("repeat", 1),"How many times to repeat each test. Specify a negative number ""for repeating forever. Useful for shaking out flaky tests.")
 
 testing::GTEST_DEFINE_bool_ (show_internal_stack_frames, false,"True iff "GTEST_NAME_" should include internal stack frames when ""printing test failure stack traces.")
 
 testing::GTEST_DEFINE_bool_ (shuffle, internal::BoolFromGTestEnv("shuffle", false),"True iff "GTEST_NAME_" should randomize tests' order on every run.")
 
 testing::GTEST_DEFINE_int32_ (stack_trace_depth, internal::Int32FromGTestEnv("stack_trace_depth", kMaxStackTraceDepth),"The maximum number of stack frames to print when an ""assertion fails. The valid range is 0 through 100, inclusive.")
 
 testing::GTEST_DEFINE_string_ (stream_result_to, internal::StringFromGTestEnv("stream_result_to",""),"This flag specifies the host name and the port number on which to stream ""test results. Example: \"localhost:555\". The flag is effective only on ""Linux.")
 
 testing::GTEST_DEFINE_bool_ (throw_on_failure, internal::BoolFromGTestEnv("throw_on_failure", false),"When this flag is specified, a failed assertion will throw an exception ""if exceptions are enabled or exit the program with a non-zero code ""otherwise.")
 
static bool testing::internal::GTestIsInitialized ()
 
static int testing::internal::SumOverTestCaseList (const std::vector< TestCase * > &case_list, int(TestCase::*method)() const)
 
static bool testing::internal::TestCasePassed (const TestCase *test_case)
 
static bool testing::internal::TestCaseFailed (const TestCase *test_case)
 
static bool testing::internal::ShouldRunTestCase (const TestCase *test_case)
 
GTEST_API_ testing::internal::GTEST_DEFINE_STATIC_MUTEX_ (g_linked_ptr_mutex)
 
const ::std::vector< testing::internal::string > & testing::internal::GetArgvs ()
 
GTEST_API_ FilePath testing::internal::GetCurrentExecutableName ()
 
GTEST_API_ TypeId testing::internal::GetTestTypeId ()
 
AssertionResult testing::internal::HasOneFailure (const char *, const char *, const char *, const TestPartResultArray &results, TestPartResult::Type type, const string &substr)
 
GTEST_API_ TimeInMillis testing::internal::GetTimeInMillis ()
 
void testing::internal::SplitString (const ::std::string &str, char delimiter,::std::vector< ::std::string > *dest)
 
GTEST_API_ AssertionResult testing::AssertionSuccess ()
 
GTEST_API_ AssertionResult testing::AssertionFailure ()
 
GTEST_API_ AssertionResult testing::AssertionFailure (const Message &msg)
 
GTEST_API_ std::vector< EditType > testing::internal::edit_distance::CalculateOptimalEdits (const std::vector< size_t > &left, const std::vector< size_t > &right)
 
GTEST_API_ std::vector< EditType > testing::internal::edit_distance::CalculateOptimalEdits (const std::vector< std::string > &left, const std::vector< std::string > &right)
 
GTEST_API_ std::string testing::internal::edit_distance::CreateUnifiedDiff (const std::vector< std::string > &left, const std::vector< std::string > &right, size_t context=2)
 
GTEST_API_ AssertionResult testing::internal::EqFailure (const char *expected_expression, const char *actual_expression, const std::string &expected_value, const std::string &actual_value, bool ignoring_case)
 
GTEST_API_ std::string testing::internal::GetBoolAssertionFailureMessage (const AssertionResult &assertion_result, const char *expression_text, const char *actual_predicate_value, const char *expected_predicate_value)
 
GTEST_API_ AssertionResult testing::internal::DoubleNearPredFormat (const char *expr1, const char *expr2, const char *abs_error_expr, double val1, double val2, double abs_error)
 
template<typename RawType >
AssertionResult testing::internal::FloatingPointLE (const char *expr1, const char *expr2, RawType val1, RawType val2)
 
GTEST_API_ AssertionResult testing::FloatLE (const char *expr1, const char *expr2, float val1, float val2)
 
GTEST_API_ AssertionResult testing::DoubleLE (const char *expr1, const char *expr2, double val1, double val2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperEQ (const char *lhs_expression, const char *rhs_expression, BiggestInt lhs, BiggestInt rhs)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperNE (const char *expr1, const char *expr2, BiggestInt val1, BiggestInt val2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperLE (const char *expr1, const char *expr2, BiggestInt val1, BiggestInt val2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperLT (const char *expr1, const char *expr2, BiggestInt val1, BiggestInt val2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperGE (const char *expr1, const char *expr2, BiggestInt val1, BiggestInt val2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperGT (const char *expr1, const char *expr2, BiggestInt val1, BiggestInt val2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperSTREQ (const char *s1_expression, const char *s2_expression, const char *s1, const char *s2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperSTRCASEEQ (const char *s1_expression, const char *s2_expression, const char *s1, const char *s2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperSTRNE (const char *s1_expression, const char *s2_expression, const char *s1, const char *s2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperSTRCASENE (const char *s1_expression, const char *s2_expression, const char *s1, const char *s2)
 
GTEST_API_ AssertionResult testing::IsSubstring (const char *needle_expr, const char *haystack_expr, const char *needle, const char *haystack)
 
GTEST_API_ AssertionResult testing::IsSubstring (const char *needle_expr, const char *haystack_expr, const wchar_t *needle, const wchar_t *haystack)
 
GTEST_API_ AssertionResult testing::IsNotSubstring (const char *needle_expr, const char *haystack_expr, const char *needle, const char *haystack)
 
GTEST_API_ AssertionResult testing::IsNotSubstring (const char *needle_expr, const char *haystack_expr, const wchar_t *needle, const wchar_t *haystack)
 
GTEST_API_ AssertionResult testing::IsSubstring (const char *needle_expr, const char *haystack_expr, const ::std::string &needle, const ::std::string &haystack)
 
GTEST_API_ AssertionResult testing::IsNotSubstring (const char *needle_expr, const char *haystack_expr, const ::std::string &needle, const ::std::string &haystack)
 
UInt32 testing::internal::ChopLowBits (UInt32 *bits, int n)
 
GTEST_API_ std::string testing::internal::CodePointToUtf8 (UInt32 code_point)
 
bool testing::internal::IsUtf16SurrogatePair (wchar_t first, wchar_t second)
 
UInt32 testing::internal::CreateCodePointFromUtf16SurrogatePair (wchar_t first, wchar_t second)
 
GTEST_API_ std::string testing::internal::WideStringToUtf8 (const wchar_t *str, int num_chars)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperSTREQ (const char *s1_expression, const char *s2_expression, const wchar_t *s1, const wchar_t *s2)
 
GTEST_API_ AssertionResult testing::internal::CmpHelperSTRNE (const char *s1_expression, const char *s2_expression, const wchar_t *s1, const wchar_t *s2)
 
GTEST_API_ std::string testing::internal::StringStreamToString (::std::stringstream *stream)
 
GTEST_API_ std::string testing::internal::AppendUserMessage (const std::string &gtest_msg, const Message &user_msg)
 
template<int kSize>
std::vector< std::stringtesting::ArrayAsVector (const char *const (&array)[kSize])
 
static std::vector< std::stringtesting::GetReservedAttributesForElement (const std::string &xml_element)
 
static std::string testing::FormatWordList (const std::vector< std::string > &words)
 
bool testing::ValidateTestPropertyName (const std::string &property_name, const std::vector< std::string > &reserved_names)
 
static bool testing::TestPartFatallyFailed (const TestPartResult &result)
 
static bool testing::TestPartNonfatallyFailed (const TestPartResult &result)
 
void testing::internal::ReportFailureInUnknownLocation (TestPartResult::Type result_type, const std::string &message)
 
template<class T , typename Result >
Result testing::internal::HandleSehExceptionsInMethodIfSupported (T *object, Result(T::*method)(), const char *location)
 
template<class T , typename Result >
Result testing::internal::HandleExceptionsInMethodIfSupported (T *object, Result(T::*method)(), const char *location)
 
GTEST_API_ TestInfo * testing::internal::MakeAndRegisterTestInfo (const char *test_case_name, const char *name, const char *type_param, const char *value_param, CodeLocation code_location, TypeId fixture_class_id, SetUpTestCaseFunc set_up_tc, TearDownTestCaseFunc tear_down_tc, TestFactoryBase *factory)
 
static std::string testing::FormatCountableNoun (int count, const char *singular_form, const char *plural_form)
 
static std::string testing::FormatTestCount (int test_count)
 
static std::string testing::FormatTestCaseCount (int test_case_count)
 
static const char * testing::TestPartResultTypeToString (TestPartResult::Type type)
 
static std::string testing::internal::PrintTestPartResultToString (const TestPartResult &test_part_result)
 
static void testing::internal::PrintTestPartResult (const TestPartResult &test_part_result)
 
const char * testing::internal::GetAnsiColorCode (GTestColor color)
 
GTEST_API_ bool testing::internal::ShouldUseColor (bool stdout_is_tty)
 
void testing::internal::ColoredPrintf (GTestColor color, const char *fmt,...)
 
void testing::internal::PrintFullTestCommentIfPresent (const TestInfo &test_info)
 
GTEST_API_ std::string testing::internal::FormatTimeInMillisAsSeconds (TimeInMillis ms)
 
static bool testing::internal::PortableLocaltime (time_t seconds, struct tm *out)
 
GTEST_API_ std::string testing::internal::FormatEpochTimeInMillisAsIso8601 (TimeInMillis ms)
 
static void testing::internal::SetUpEnvironment (Environment *env)
 
static void testing::internal::TearDownEnvironment (Environment *env)
 
void testing::internal::WriteToShardStatusFileIfNeeded ()
 
GTEST_API_ bool testing::internal::ShouldShard (const char *total_shards_str, const char *shard_index_str, bool in_subprocess_for_death_test)
 
GTEST_API_ Int32 testing::internal::Int32FromEnvOrDie (const char *env_var, Int32 default_val)
 
GTEST_API_ bool testing::internal::ShouldRunTestOnShard (int total_shards, int shard_index, int test_id)
 
static void testing::internal::PrintOnOneLine (const char *str, int max_length)
 
GTEST_API_ std::string testing::internal::GetCurrentOsStackTraceExceptTop (UnitTest *unit_test, int skip_count)
 
bool testing::internal::IsTrue (bool condition)
 
GTEST_API_ bool testing::internal::AlwaysTrue ()
 
GTEST_API_ bool testing::internal::SkipPrefix (const char *prefix, const char **pstr)
 
const char * testing::internal::ParseFlagValue (const char *str, const char *flag, bool def_optional)
 
bool testing::internal::ParseBoolFlag (const char *str, const char *flag, bool *value)
 
GTEST_API_ bool testing::internal::ParseInt32Flag (const char *str, const char *flag, Int32 *value)
 
bool testing::internal::ParseStringFlag (const char *str, const char *flag, std::string *value)
 
static bool testing::internal::HasGoogleTestFlagPrefix (const char *str)
 
static void testing::internal::PrintColorEncoded (const char *str)
 
bool testing::internal::ParseGoogleTestFlag (const char *const arg)
 
template<typename CharType >
void testing::internal::ParseGoogleTestFlagsOnlyImpl (int *argc, CharType **argv)
 
GTEST_API_ void testing::internal::ParseGoogleTestFlagsOnly (int *argc, char **argv)
 
GTEST_API_ void testing::internal::ParseGoogleTestFlagsOnly (int *argc, wchar_t **argv)
 
template<typename CharType >
void testing::internal::InitGoogleTestImpl (int *argc, CharType **argv)
 
GTEST_API_ void testing::InitGoogleTest (int *argc, char **argv)
 
GTEST_API_ void testing::InitGoogleTest (int *argc, wchar_t **argv)
 

Variables

static const char testing::kDisableTestFilter [] = "DISABLED_*:*/DISABLED_*"
 
static const char testing::kDeathTestCaseFilter [] = "*DeathTest:*DeathTest/*"
 
static const char testing::kUniversalFilter [] = "*"
 
static const char testing::kDefaultOutputFile [] = "test_detail.xml"
 
static const char testing::kTestShardIndex [] = "GTEST_SHARD_INDEX"
 
static const char testing::kTestTotalShards [] = "GTEST_TOTAL_SHARDS"
 
static const char testing::kTestShardStatusFile [] = "GTEST_SHARD_STATUS_FILE"
 
static const char *const testing::kReservedTestSuitesAttributes []
 
static const char *const testing::kReservedTestSuiteAttributes []
 
static const char *const testing::kReservedTestCaseAttributes []
 
static const char testing::internal::kTypeParamLabel [] = "TypeParam"
 
static const char testing::internal::kValueParamLabel [] = "GetParam()"
 
static const char testing::internal::kColorEncodedHelpMessage []
 

Macro Definition Documentation

#define GTEST_HAS_GETTIMEOFDAY_   1

Definition at line 116 of file gtest.cc.

Referenced by testing::internal::ShouldRunTestCase().

#define GTEST_IMPL_CMP_HELPER_ (   op_name,
  op 
)
Value:
AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
BiggestInt val1, BiggestInt val2) {\
if (val1 op val2) {\
} else {\
<< "Expected: (" << expr1 << ") " #op " (" << expr2\
<< "), actual: " << FormatForComparisonFailureMessage(val1, val2)\
<< " vs " << FormatForComparisonFailureMessage(val2, val1);\
}\
}
GTEST_API_ AssertionResult AssertionFailure()
Definition: gtest.cc:1015
std::string FormatForComparisonFailureMessage(const T1 &value, const T2 &)
GTEST_API_ AssertionResult AssertionSuccess()
Definition: gtest.cc:1010
long long BiggestInt
Definition: gtest-port.h:2241
if(FOLLY_USE_SYMBOLIZER) add_library(folly_exception_tracer_base ExceptionTracer.cpp StackTrace.cpp) apply_folly_compile_options_to_target(folly_exception_tracer_base) target_link_libraries(folly_exception_tracer_base PUBLIC folly) add_library(folly_exception_tracer ExceptionStackTraceLib.cpp ExceptionTracerLib.cpp) apply_folly_compile_options_to_target(folly_exception_tracer) target_link_libraries(folly_exception_tracer PUBLIC folly_exception_tracer_base) add_library(folly_exception_counter ExceptionCounterLib.cpp) apply_folly_compile_options_to_target(folly_exception_counter) target_link_libraries(folly_exception_counter PUBLIC folly_exception_tracer) install(FILES ExceptionAbi.h ExceptionCounterLib.h ExceptionTracer.h ExceptionTracerLib.h StackTrace.h DESTINATION $
Definition: CMakeLists.txt:1

Definition at line 1455 of file gtest.cc.

#define GTEST_IMPLEMENTATION_   1

Definition at line 141 of file gtest.cc.

#define GTEST_REPEATER_METHOD_ (   Name,
  Type 
)
Value:
void TestEventRepeater::Name(const Type& parameter) { \
if (forwarding_enabled_) { \
for (size_t i = 0; i < listeners_.size(); i++) { \
listeners_[i]->Name(parameter); \
} \
} \
}
if(FOLLY_USE_SYMBOLIZER) add_library(folly_exception_tracer_base ExceptionTracer.cpp StackTrace.cpp) apply_folly_compile_options_to_target(folly_exception_tracer_base) target_link_libraries(folly_exception_tracer_base PUBLIC folly) add_library(folly_exception_tracer ExceptionStackTraceLib.cpp ExceptionTracerLib.cpp) apply_folly_compile_options_to_target(folly_exception_tracer) target_link_libraries(folly_exception_tracer PUBLIC folly_exception_tracer_base) add_library(folly_exception_counter ExceptionCounterLib.cpp) apply_folly_compile_options_to_target(folly_exception_counter) target_link_libraries(folly_exception_counter PUBLIC folly_exception_tracer) install(FILES ExceptionAbi.h ExceptionCounterLib.h ExceptionTracer.h ExceptionTracerLib.h StackTrace.h DESTINATION $
Definition: CMakeLists.txt:1

Definition at line 3294 of file gtest.cc.

#define GTEST_REVERSE_REPEATER_METHOD_ (   Name,
  Type 
)
Value:
void TestEventRepeater::Name(const Type& parameter) { \
if (forwarding_enabled_) { \
for (int i = static_cast<int>(listeners_.size()) - 1; i >= 0; i--) { \
listeners_[i]->Name(parameter); \
} \
} \
}
if(FOLLY_USE_SYMBOLIZER) add_library(folly_exception_tracer_base ExceptionTracer.cpp StackTrace.cpp) apply_folly_compile_options_to_target(folly_exception_tracer_base) target_link_libraries(folly_exception_tracer_base PUBLIC folly) add_library(folly_exception_tracer ExceptionStackTraceLib.cpp ExceptionTracerLib.cpp) apply_folly_compile_options_to_target(folly_exception_tracer) target_link_libraries(folly_exception_tracer PUBLIC folly_exception_tracer_base) add_library(folly_exception_counter ExceptionCounterLib.cpp) apply_folly_compile_options_to_target(folly_exception_counter) target_link_libraries(folly_exception_counter PUBLIC folly_exception_tracer) install(FILES ExceptionAbi.h ExceptionCounterLib.h ExceptionTracer.h ExceptionTracerLib.h StackTrace.h DESTINATION $
Definition: CMakeLists.txt:1

Definition at line 3304 of file gtest.cc.

Variable Documentation

size_t adds_
private

Definition at line 1190 of file gtest.cc.

size_t common_
private

Definition at line 1190 of file gtest.cc.

std::list<std::pair<char, const char*> > hunk_
private

Definition at line 1191 of file gtest.cc.

std::list<std::pair<char, const char*> > hunk_adds_
private

Definition at line 1191 of file gtest.cc.

std::list<std::pair<char, const char*> > hunk_removes_
private

Definition at line 1191 of file gtest.cc.

IdMap ids_
private

Definition at line 1099 of file gtest.cc.

size_t left_start_
private

Definition at line 1189 of file gtest.cc.

std::string name_
private

Definition at line 2607 of file gtest.cc.

size_t removes_
private

Definition at line 1190 of file gtest.cc.

size_t right_start_
private

Definition at line 1189 of file gtest.cc.