Sacado Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Macros | Enumerations | Functions | Variables
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 <cstdint>
#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"
Include dependency graph for gtest.cc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  testing::internal::PrettyUnitTestResultPrinter
 
class  testing::internal::BriefUnitTestResultPrinter
 
class  testing::internal::TestEventRepeater
 
class  testing::internal::XmlUnitTestResultPrinter
 
class  testing::internal::JsonUnitTestResultPrinter
 
class  testing::internal::ScopedPrematureExitFile
 
class  testing::internal::TestSuiteNameIs
 

Namespaces

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

Macros

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

Enumerations

enum  GTestColor { testing::internal::@326::GTestColor::kDefault, testing::internal::@326::GTestColor::kRed, testing::internal::@326::GTestColor::kGreen, testing::internal::@326::GTestColor::kYellow }
 

Functions

static FILE * testing::internal::OpenFileForWriting (const std::string &output_file)
 
static const char * testing::GetDefaultFilter ()
 
static bool testing::GetDefaultFailFast ()
 
 testing::GTEST_DEFINE_bool_ (fail_fast, internal::BoolFromGTestEnv("fail_fast", GetDefaultFailFast()),"True if and only if a test failure should stop further test execution.")
 
 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 if and only if a failed assertion should be a debugger ""break-point.")
 
 testing::GTEST_DEFINE_bool_ (catch_exceptions, internal::BoolFromGTestEnv("catch_exceptions", true),"True if and only if "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_ (install_failure_signal_handler, internal::BoolFromGTestEnv("install_failure_signal_handler", false),"If true and supported on the current platform, "GTEST_NAME_" should ""install a signal handler that dumps debugging information when fatal ""signals are raised.")
 
 testing::GTEST_DEFINE_bool_ (list_tests, false,"List all tests without running them.")
 
 testing::GTEST_DEFINE_string_ (output, internal::StringFromGTestEnv("output", internal::OutputFlagAlsoCheckEnvVar().c_str()),"A format (defaults to \"xml\" but can be specified to be \"json\"), ""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_ (brief, internal::BoolFromGTestEnv("brief", false),"True if only test failures should be displayed in text output.")
 
 testing::GTEST_DEFINE_bool_ (print_time, internal::BoolFromGTestEnv("print_time", true),"True if and only if "GTEST_NAME_" should display elapsed time in text output.")
 
 testing::GTEST_DEFINE_bool_ (print_utf8, internal::BoolFromGTestEnv("print_utf8", true),"True if and only if "GTEST_NAME_" prints UTF8 characters as text.")
 
 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 if and only if "GTEST_NAME_" should include internal stack frames when ""printing test failure stack traces.")
 
 testing::GTEST_DEFINE_bool_ (shuffle, internal::BoolFromGTestEnv("shuffle", false),"True if and only if "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. For use with an external test framework.")
 
static bool testing::internal::GTestIsInitialized ()
 
static int testing::internal::SumOverTestSuiteList (const std::vector< TestSuite * > &case_list, int(TestSuite::*method)() const)
 
static bool testing::internal::TestSuitePassed (const TestSuite *test_suite)
 
static bool testing::internal::TestSuiteFailed (const TestSuite *test_suite)
 
static bool testing::internal::ShouldRunTestSuite (const TestSuite *test_suite)
 
std::set< std::string > * testing::internal::GetIgnoredParameterizedTestSuites ()
 
GTEST_API_ void testing::internal::InsertSyntheticTestCase (const std::string &name, CodeLocation location, bool has_test_p)
 
void testing::internal::RegisterTypeParameterizedTestSuite (const char *test_suite_name, CodeLocation code_location)
 
void testing::internal::RegisterTypeParameterizedTestSuiteInstantiation (const char *case_name)
 
GTEST_API_ std::vector
< std::string > 
testing::internal::GetArgvs ()
 
FilePath testing::internal::GetCurrentExecutableName ()
 
GTEST_API_ TypeId testing::internal::GetTestTypeId ()
 
static AssertionResult testing::internal::HasOneFailure (const char *, const char *, const char *, const TestPartResultArray &results, TestPartResult::Type type, const std::string &substr)
 
TimeInMillis testing::internal::GetTimeInMillis ()
 
void testing::internal::SplitString (const ::std::string &str, char delimiter,::std::vector< ::std::string > *dest)
 
AssertionResult testing::AssertionSuccess ()
 
AssertionResult testing::AssertionFailure ()
 
AssertionResult testing::AssertionFailure (const Message &message)
 
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::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_t testing::internal::ChopLowBits (uint32_t *bits, int n)
 
std::string testing::internal::CodePointToUtf8 (uint32_t code_point)
 
bool testing::internal::IsUtf16SurrogatePair (wchar_t first, wchar_t second)
 
uint32_t testing::internal::CreateCodePointFromUtf16SurrogatePair (wchar_t first, wchar_t second)
 
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<size_t kSize>
std::vector< std::string > testing::ArrayAsVector (const char *const (&array)[kSize])
 
static std::vector< std::string > testing::GetReservedAttributesForElement (const std::string &xml_element)
 
static std::vector< std::string > testing::GetReservedOutputAttributesForElement (const std::string &xml_element)
 
static std::string testing::FormatWordList (const std::vector< std::string > &words)
 
static bool testing::ValidateTestPropertyName (const std::string &property_name, const std::vector< std::string > &reserved_names)
 
static bool testing::TestPartSkipped (const TestPartResult &result)
 
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_suite_name, const char *name, const char *type_param, const char *value_param, CodeLocation code_location, TypeId fixture_class_id, SetUpTestSuiteFunc set_up_tc, TearDownTestSuiteFunc tear_down_tc, TestFactoryBase *factory)
 
GTEST_API_ void testing::internal::ReportInvalidTestSuiteType (const char *test_suite_name, CodeLocation code_location)
 
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::FormatTestSuiteCount (int test_suite_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)
 
static const char * testing::internal::GetAnsiColorCode (GTestColor color)
 
bool testing::internal::ShouldUseColor (bool stdout_is_tty)
 
void testing::internal::ColoredPrintf (GTestColor color, const char *fmt,...)
 
static void testing::internal::PrintFullTestCommentIfPresent (const TestInfo &test_info)
 
std::string testing::internal::FormatTimeInMillisAsSeconds (TimeInMillis ms)
 
static bool testing::internal::PortableLocaltime (time_t seconds, struct tm *out)
 
std::string testing::internal::FormatEpochTimeInMillisAsIso8601 (TimeInMillis ms)
 
static std::string testing::internal::FormatTimeInMillisAsDuration (TimeInMillis ms)
 
static std::string testing::internal::FormatEpochTimeInMillisAsRFC3339 (TimeInMillis ms)
 
static std::string testing::internal::Indent (size_t width)
 
static void testing::internal::SetUpEnvironment (Environment *env)
 
static void testing::internal::TearDownEnvironment (Environment *env)
 
void testing::internal::WriteToShardStatusFileIfNeeded ()
 
bool testing::internal::ShouldShard (const char *total_shards_env, const char *shard_index_env, bool in_subprocess_for_death_test)
 
int32_t testing::internal::Int32FromEnvOrDie (const char *var, int32_t default_val)
 
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)
 
GTEST_API_ bool testing::internal::IsTrue (bool condition)
 
GTEST_API_ bool testing::internal::AlwaysTrue ()
 
GTEST_API_ bool testing::internal::SkipPrefix (const char *prefix, const char **pstr)
 
static const char * testing::internal::ParseFlagValue (const char *str, const char *flag, bool def_optional)
 
static bool testing::internal::ParseBoolFlag (const char *str, const char *flag, bool *value)
 
bool testing::internal::ParseInt32Flag (const char *str, const char *flag, int32_t *value)
 
template<typename String >
static bool testing::internal::ParseStringFlag (const char *str, const char *flag, String *value)
 
static bool testing::internal::HasGoogleTestFlagPrefix (const char *str)
 
static void testing::internal::PrintColorEncoded (const char *str)
 
static bool testing::internal::ParseGoogleTestFlag (const char *const arg)
 
template<typename CharType >
void testing::internal::ParseGoogleTestFlagsOnlyImpl (int *argc, CharType **argv)
 
void testing::internal::ParseGoogleTestFlagsOnly (int *argc, char **argv)
 
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)
 
GTEST_API_ void testing::InitGoogleTest ()
 
GTEST_API_ std::string testing::TempDir ()
 

Variables

static const char testing::kDisableTestFilter [] = "DISABLED_*:*/DISABLED_*"
 
static const char testing::kDeathTestSuiteFilter [] = "*DeathTest:*DeathTest/*"
 
static const char testing::kUniversalFilter [] = "*"
 
static const char testing::kDefaultOutputFormat [] = "xml"
 
static const char testing::kDefaultOutputFile [] = "test_detail"
 
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"
 
bool testing::internal::g_help_flag = false
 
static::std::vector< std::string > testing::internal::g_argvs
 
const TypeId testing::internal::kTestTypeIdInGoogleTest = GetTestTypeId()
 
constexpr uint32_t testing::internal::kMaxCodePoint1 = (static_cast<uint32_t>(1) << 7) - 1
 
constexpr uint32_t testing::internal::kMaxCodePoint2 = (static_cast<uint32_t>(1) << (5 + 6)) - 1
 
constexpr uint32_t testing::internal::kMaxCodePoint3 = (static_cast<uint32_t>(1) << (4 + 2*6)) - 1
 
constexpr uint32_t testing::internal::kMaxCodePoint4 = (static_cast<uint32_t>(1) << (3 + 3*6)) - 1
 
static const char *const testing::kReservedTestSuitesAttributes []
 
static const char *const testing::kReservedTestSuiteAttributes []
 
static const char *const testing::kReservedTestCaseAttributes []
 
static const char *const testing::kReservedOutputTestCaseAttributes []
 
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 105 of file gtest.cc.

#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) {\
return AssertionSuccess();\
} else {\
return AssertionFailure() \
<< "Expected: (" << expr1 << ") " #op " (" << expr2\
<< "), actual: " << FormatForComparisonFailureMessage(val1, val2)\
<< " vs " << FormatForComparisonFailureMessage(val2, val1);\
}\
}
AssertionResult AssertionFailure()
Definition: gtest.cc:1200
std::string FormatForComparisonFailureMessage(const T1 &value, const T2 &)
AssertionResult AssertionSuccess()
Definition: gtest.cc:1195
long long BiggestInt
Definition: gtest-port.h:2133
if(first)
Definition: uninit.c:101

Definition at line 1640 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(first)
Definition: uninit.c:101

Definition at line 3820 of file gtest.cc.

#define GTEST_REVERSE_REPEATER_METHOD_ (   Name,
  Type 
)
Value:
void TestEventRepeater::Name(const Type& parameter) { \
if (forwarding_enabled_) { \
for (size_t i = listeners_.size(); i != 0; i--) { \
listeners_[i - 1]->Name(parameter); \
} \
} \
}
if(first)
Definition: uninit.c:101

Definition at line 3830 of file gtest.cc.

Variable Documentation

const CodeLocation loc_

Definition at line 457 of file gtest.cc.

const std::string error_message_

Definition at line 458 of file gtest.cc.

const bool as_error_

Definition at line 459 of file gtest.cc.

IdMap ids_

Definition at line 1284 of file gtest.cc.

size_t left_start_

Definition at line 1374 of file gtest.cc.

size_t right_start_

Definition at line 1374 of file gtest.cc.

size_t adds_

Definition at line 1375 of file gtest.cc.

size_t removes_

Definition at line 1375 of file gtest.cc.

size_t common_

Definition at line 1375 of file gtest.cc.

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

Definition at line 1376 of file gtest.cc.

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

Definition at line 1376 of file gtest.cc.

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

Definition at line 1376 of file gtest.cc.

std::string name_

Definition at line 2817 of file gtest.cc.