37 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
38 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
40 #include "gtest/internal/gtest-port.h"
44 # include <sys/types.h>
45 # include <sys/wait.h>
49 #if GTEST_HAS_EXCEPTIONS
62 #include <type_traits>
65 #include "gtest/gtest-message.h"
66 #include "gtest/internal/gtest-filepath.h"
67 #include "gtest/internal/gtest-string.h"
68 #include "gtest/internal/gtest-type-util.h"
78 #define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)
79 #define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar
90 #define GTEST_STRINGIFY_HELPER_(name, ...) #name
91 #define GTEST_STRINGIFY_(...) GTEST_STRINGIFY_HELPER_(__VA_ARGS__, )
101 class AssertionResult;
105 class TestPartResult;
108 template <
typename T>
132 template <
typename T,
133 typename std::enable_if<!std::is_convertible<T, Sink>::value,
140 const std::string& gtest_msg,
const Message& user_msg);
142 #if GTEST_HAS_EXCEPTIONS
153 class
GTEST_API_ GoogleTestFailureException : public ::std::runtime_error {
155 explicit GoogleTestFailureException(
const TestPartResult& failure);
162 namespace edit_distance {
170 const std::vector<size_t>& left,
const std::vector<size_t>& right);
174 const std::vector<std::string>& left,
175 const std::vector<std::string>& right);
179 const std::vector<std::string>& right,
189 const std::string& right,
190 size_t* total_line_count);
208 const char* actual_expression,
209 const std::string& expected_value,
210 const std::string& actual_value,
215 const AssertionResult& assertion_result,
216 const char* expression_text,
217 const char* actual_predicate_value,
218 const char* expected_predicate_value);
249 template <
typename RawType>
263 std::numeric_limits<RawType>::digits - 1;
351 return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_)
357 union FloatingPointUnion {
377 static Bits SignAndMagnitudeToBiased(
const Bits &sam) {
389 static Bits DistanceBetweenSignAndMagnitudeNumbers(
const Bits &sam1,
391 const Bits biased1 = SignAndMagnitudeToBiased(sam1);
392 const Bits biased2 = SignAndMagnitudeToBiased(sam2);
393 return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1);
396 FloatingPointUnion u_;
419 template <
typename T>
428 template <
typename T>
434 template <
typename T>
469 template <
class TestClass>
481 GTEST_API_ AssertionResult IsHRESULTSuccess(
const char* expr,
483 GTEST_API_ AssertionResult IsHRESULTFailure(
const char* expr,
508 return a == def ? nullptr : a;
511 template <
typename T>
519 typename std::conditional<
sizeof(T) != 0, ::
testing::Test,
void>::type;
523 #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
530 <<
"Test can not provide both SetUpTestSuite and SetUpTestCase, please "
531 "make sure there is only one present at "
532 << filename <<
":" << line_num;
534 return test_case_fp !=
nullptr ? test_case_fp : test_suite_fp;
538 return &T::SetUpTestSuite;
544 #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
551 <<
"Test can not provide both TearDownTestSuite and TearDownTestCase,"
552 " please make sure there is only one present at"
553 << filename <<
":" << line_num;
555 return test_case_fp !=
nullptr ? test_case_fp : test_suite_fp;
559 return &T::TearDownTestSuite;
583 const char* test_suite_name,
const char* name,
const char* type_param,
599 TypedTestSuitePState() : registered_(
false) {}
604 bool AddTestName(
const char* file,
int line,
const char* case_name,
605 const char* test_name) {
608 "%s Test %s must be defined before "
609 "REGISTER_TYPED_TEST_SUITE_P(%s, ...).\n",
614 registered_tests_.insert(
619 bool TestExists(
const std::string& test_name)
const {
620 return registered_tests_.count(test_name) > 0;
623 const CodeLocation& GetCodeLocation(
const std::string& test_name)
const {
624 RegisteredTestsMap::const_iterator it = registered_tests_.find(test_name);
632 const char* VerifyRegisteredTestNames(
const char* test_suite_name,
633 const char* file,
int line,
634 const char* registered_tests);
637 typedef ::std::map<std::string, CodeLocation> RegisteredTestsMap;
640 RegisteredTestsMap registered_tests_;
644 #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
652 inline const
char* SkipComma(const
char* str) {
653 const char* comma = strchr(str,
',');
654 if (comma ==
nullptr) {
664 const char* comma = strchr(str,
',');
665 return comma ==
nullptr ? str : std::string(str, comma);
671 ::std::vector< ::std::string>* dest);
676 template <
typename T>
682 template <
typename Prov
ided = DefaultNameGenerator>
687 template <
typename NameGenerator>
690 template <
typename NameGenerator,
typename Types>
692 result->push_back(NameGenerator::template GetName<typename Types::Head>(i));
693 GenerateNamesRecursively<NameGenerator>(
typename Types::Tail(), result,
697 template <
typename NameGenerator,
typename Types>
699 std::vector<std::string> result;
700 GenerateNamesRecursively<NameGenerator>(
Types(), &result, 0);
711 template <GTEST_TEMPLATE_ Fixture,
class TestSel,
typename Types>
719 const char* case_name,
const char* test_names,
int index,
720 const std::vector<std::string>& type_names =
721 GenerateNames<DefaultNameGenerator, Types>()) {
723 typedef Fixture<Type> FixtureClass;
724 typedef typename GTEST_BIND_(TestSel, Type) TestClass;
729 (std::string(prefix) + (prefix[0] ==
'\0' ?
"" :
"/") + case_name +
730 "/" + type_names[
static_cast<size_t>(index)])
733 GetTypeName<Type>().c_str(),
735 code_location, GetTypeId<FixtureClass>(),
737 code_location.
file.c_str(), code_location.
line),
739 code_location.
file.c_str(), code_location.
line),
754 template <GTEST_TEMPLATE_ Fixture,
class TestSel>
758 const char* ,
const char* ,
760 const std::vector<std::string>& =
761 std::vector<std::string>() ) {
769 const char* case_name);
775 template <GTEST_TEMPLATE_ Fixture,
typename Tests,
typename Types>
779 const TypedTestSuitePState* state,
const char* case_name,
780 const char* test_names,
781 const std::vector<std::string>& type_names =
782 GenerateNames<DefaultNameGenerator, Types>()) {
786 if (!state->TestExists(test_name)) {
787 fprintf(stderr,
"Failed to get code location for test %s.%s at %s.",
788 case_name, test_name.c_str(),
790 code_location.
line).c_str());
794 const CodeLocation& test_location = state->GetCodeLocation(test_name);
796 typedef typename Tests::Head Head;
800 prefix, test_location, case_name, test_names, 0, type_names);
806 SkipComma(test_names),
812 template <GTEST_TEMPLATE_ Fixture,
typename Types>
816 const TypedTestSuitePState* ,
817 const char* ,
const char* ,
818 const std::vector<std::string>& =
819 std::vector<std::string>() ) {
835 UnitTest* unit_test,
int skip_count);
851 operator bool()
const {
return true; }
861 explicit operator bool()
const {
return true; }
872 static const uint32_t kMaxRange = 1u << 31;
874 explicit Random(uint32_t seed) : state_(seed) {}
876 void Reseed(uint32_t seed) { state_ = seed; }
888 #define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \
889 typename std::remove_const<typename std::remove_reference<T>::type>::type
894 template <
typename T>
897 template <
typename C>
898 static constexpr
auto CheckDebugString(C*) ->
typename std::is_same<
899 std::string, decltype(std::declval<const C>().DebugString())>::type;
901 static constexpr std::false_type CheckDebugString(...);
903 template <
typename C>
904 static constexpr
auto CheckShortDebugString(C*) ->
typename std::is_same<
905 std::string, decltype(std::declval<const C>().ShortDebugString())>::type;
907 static constexpr std::false_type CheckShortDebugString(...);
909 using HasDebugStringType = decltype(CheckDebugString<T>(
nullptr));
910 using HasShortDebugStringType = decltype(CheckShortDebugString<T>(
nullptr));
914 HasDebugStringType::value && HasShortDebugStringType::value;
917 template <
typename T>
946 class Iterator = decltype(::std::declval<const C&>().begin()),
947 class = decltype(::std::declval<const C&>().end()),
948 class = decltype(++::std::declval<Iterator&>()),
949 class = decltype(*::std::declval<Iterator>()),
950 class =
typename C::const_iterator>
963 template <
typename T>
966 template <
typename U>
967 static char test(
typename U::hasher*,
typename U::reverse_iterator*);
968 template <
typename U>
969 static int test(
typename U::hasher*, ...);
970 template <
typename U>
971 static char test(...);
974 static const bool value =
sizeof(test<T>(
nullptr,
nullptr)) ==
sizeof(
int);
977 template <
typename T>
980 template <
typename C,
981 bool =
sizeof(IsContainerTest<C>(0)) ==
sizeof(
IsContainer)>
984 template <
typename C>
991 template <
typename C>
993 using value_type = decltype(*std::declval<typename C::const_iterator>());
995 std::is_same<
typename std::remove_const<
996 typename std::remove_reference<value_type>::type>
::type,
1006 template <
typename C>
1015 template <
typename T,
typename U>
1016 bool ArrayEq(
const T* lhs,
size_t size,
const U* rhs);
1019 template <
typename T,
typename U>
1020 inline bool ArrayEq(
const T& lhs,
const U& rhs) {
return lhs == rhs; }
1023 template <
typename T,
typename U,
size_t N>
1024 inline bool ArrayEq(
const T(&lhs)[N],
const U(&rhs)[N]) {
1031 template <
typename T,
typename U>
1032 bool ArrayEq(
const T* lhs,
size_t size,
const U* rhs) {
1033 for (
size_t i = 0; i != size; i++) {
1042 template <
typename Iter,
typename Element>
1044 for (Iter it = begin; it != end; ++it) {
1055 template <
typename T,
typename U>
1056 void CopyArray(
const T* from,
size_t size, U* to);
1059 template <
typename T,
typename U>
1063 template <
typename T,
typename U,
size_t N>
1071 template <
typename T,
typename U>
1073 for (
size_t i = 0; i != size; i++) {
1093 template <
typename Element>
1103 InitRef(array, count);
1108 InitCopy(array, count);
1113 (this->*rhs.clone_)(rhs.array_, rhs.size_);
1117 if (clone_ != &NativeArray::InitRef)
1122 size_t size()
const {
return size_; }
1131 static_assert(!std::is_const<Element>::value,
"Type must not be const");
1132 static_assert(!std::is_reference<Element>::value,
1133 "Type must not be a reference");
1136 void InitCopy(
const Element* array,
size_t a_size) {
1137 Element*
const copy =
new Element[a_size];
1141 clone_ = &NativeArray::InitCopy;
1145 void InitRef(
const Element* array,
size_t a_size) {
1148 clone_ = &NativeArray::InitRef;
1151 const Element* array_;
1153 void (
NativeArray::*clone_)(
const Element*, size_t);
1157 template <
size_t... Is>
1163 template <
bool plus_one,
typename T,
size_t sizeofT>
1165 template <
size_t... I,
size_t sizeofT>
1169 template <
size_t... I,
size_t sizeofT>
1178 :
DoubleSequence<N % 2 == 1, typename MakeIndexSequenceImpl<N / 2>::type,
1187 template <
typename... T>
1197 template <
size_t... I>
1203 template <
typename R>
1207 template <
size_t N,
typename... T>
1211 static_cast<T (*)()
>(
nullptr)...));
1216 template <
typename... T>
1219 template <
typename Derived,
size_t I>
1222 template <
typename... T,
size_t I>
1226 template <
typename Arg>
1228 : value(std::forward<Arg>(t)) {}
1232 template <
typename Derived,
typename Idx>
1235 template <
size_t... Idx,
typename... T>
1240 template <
typename... Args>
1243 std::forward<Args>(args))... {}
1255 template <
typename F>
1256 auto Apply(F&& f) -> decltype(std::forward<F>(f)(this->Get<Idx>()...)) {
1257 return std::forward<F>(f)(Get<Idx>()...);
1260 template <
typename F>
1261 auto Apply(F&& f)
const -> decltype(std::forward<F>(f)(this->Get<Idx>()...)) {
1262 return std::forward<F>(f)(Get<Idx>()...);
1275 template <
typename... T>
1277 :
private FlatTupleBase<FlatTuple<T...>,
1278 typename MakeIndexSequence<sizeof...(T)>::type> {
1279 using Indices =
typename FlatTupleBase<
1284 template <
typename... Args>
1289 using FlatTuple::FlatTupleBase::Get;
1295 "INSTANTIATE_TEST_CASE_P is deprecated, please use "
1296 "INSTANTIATE_TEST_SUITE_P")
1297 constexpr
bool InstantiateTestCase_P_IsDeprecated() {
return true; }
1300 "TYPED_TEST_CASE_P is deprecated, please use "
1301 "TYPED_TEST_SUITE_P")
1302 constexpr
bool TypedTestCase_P_IsDeprecated() {
return true; }
1305 "TYPED_TEST_CASE is deprecated, please use "
1307 constexpr
bool TypedTestCaseIsDeprecated() {
return true; }
1310 "REGISTER_TYPED_TEST_CASE_P is deprecated, please use "
1311 "REGISTER_TYPED_TEST_SUITE_P")
1312 constexpr
bool RegisterTypedTestCase_P_IsDeprecated() {
return true; }
1315 "INSTANTIATE_TYPED_TEST_CASE_P is deprecated, please use "
1316 "INSTANTIATE_TYPED_TEST_SUITE_P")
1317 constexpr
bool InstantiateTypedTestCase_P_IsDeprecated() {
return true; }
1327 #pragma clang diagnostic push
1328 #pragma clang diagnostic ignored "-Wmismatched-tags"
1330 template <
typename... Ts>
1331 struct tuple_size<
testing::internal::FlatTuple<Ts...>>
1332 : std::integral_constant<size_t, sizeof...(Ts)> {};
1334 #pragma clang diagnostic pop
1338 #define GTEST_MESSAGE_AT_(file, line, message, result_type) \
1339 ::testing::internal::AssertHelper(result_type, file, line, message) \
1340 = ::testing::Message()
1342 #define GTEST_MESSAGE_(message, result_type) \
1343 GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type)
1345 #define GTEST_FATAL_FAILURE_(message) \
1346 return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure)
1348 #define GTEST_NONFATAL_FAILURE_(message) \
1349 GTEST_MESSAGE_(message, ::testing::TestPartResult::kNonFatalFailure)
1351 #define GTEST_SUCCESS_(message) \
1352 GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess)
1354 #define GTEST_SKIP_(message) \
1355 return GTEST_MESSAGE_(message, ::testing::TestPartResult::kSkip)
1362 #define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \
1363 if (::testing::internal::AlwaysTrue()) { \
1366 static_assert(true, "")
1368 #if GTEST_HAS_EXCEPTIONS
1371 namespace internal {
1375 const char* what()
const noexcept {
1376 return "this exception should never be thrown";
1385 #define GTEST_EXCEPTION_TYPE_(e) ::testing::internal::GetTypeName(typeid(e))
1389 #define GTEST_EXCEPTION_TYPE_(e) \
1390 std::string { "an std::exception-derived error" }
1394 #define GTEST_TEST_THROW_CATCH_STD_EXCEPTION_(statement, expected_exception) \
1395 catch (typename std::conditional< \
1396 std::is_same<typename std::remove_cv<typename std::remove_reference< \
1397 expected_exception>::type>::type, \
1398 std::exception>::value, \
1399 const ::testing::internal::NeverThrown&, const std::exception&>::type \
1401 gtest_msg.value = "Expected: " #statement \
1402 " throws an exception of type " #expected_exception \
1403 ".\n Actual: it throws "; \
1404 gtest_msg.value += GTEST_EXCEPTION_TYPE_(e); \
1405 gtest_msg.value += " with description \""; \
1406 gtest_msg.value += e.what(); \
1407 gtest_msg.value += "\"."; \
1408 goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \
1413 #define GTEST_TEST_THROW_CATCH_STD_EXCEPTION_(statement, expected_exception)
1417 #define GTEST_TEST_THROW_(statement, expected_exception, fail) \
1418 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
1419 if (::testing::internal::TrueWithString gtest_msg{}) { \
1420 bool gtest_caught_expected = false; \
1422 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
1423 } catch (expected_exception const&) { \
1424 gtest_caught_expected = true; \
1426 GTEST_TEST_THROW_CATCH_STD_EXCEPTION_(statement, expected_exception) \
1428 gtest_msg.value = "Expected: " #statement \
1429 " throws an exception of type " #expected_exception \
1430 ".\n Actual: it throws a different type."; \
1431 goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \
1433 if (!gtest_caught_expected) { \
1434 gtest_msg.value = "Expected: " #statement \
1435 " throws an exception of type " #expected_exception \
1436 ".\n Actual: it throws nothing."; \
1437 goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \
1440 GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__) \
1441 : fail(gtest_msg.value.c_str())
1443 #if GTEST_HAS_EXCEPTIONS
1445 #define GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_() \
1446 catch (std::exception const& e) { \
1447 gtest_msg.value = "it throws "; \
1448 gtest_msg.value += GTEST_EXCEPTION_TYPE_(e); \
1449 gtest_msg.value += " with description \""; \
1450 gtest_msg.value += e.what(); \
1451 gtest_msg.value += "\"."; \
1452 goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \
1457 #define GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_()
1461 #define GTEST_TEST_NO_THROW_(statement, fail) \
1462 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
1463 if (::testing::internal::TrueWithString gtest_msg{}) { \
1465 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
1467 GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_() \
1469 gtest_msg.value = "it throws."; \
1470 goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \
1473 GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__): \
1474 fail(("Expected: " #statement " doesn't throw an exception.\n" \
1475 " Actual: " + gtest_msg.value).c_str())
1477 #define GTEST_TEST_ANY_THROW_(statement, fail) \
1478 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
1479 if (::testing::internal::AlwaysTrue()) { \
1480 bool gtest_caught_any = false; \
1482 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
1485 gtest_caught_any = true; \
1487 if (!gtest_caught_any) { \
1488 goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \
1491 GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__): \
1492 fail("Expected: " #statement " throws an exception.\n" \
1493 " Actual: it doesn't.")
1499 #define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \
1500 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
1501 if (const ::testing::AssertionResult gtest_ar_ = \
1502 ::testing::AssertionResult(expression)) \
1505 fail(::testing::internal::GetBoolAssertionFailureMessage(\
1506 gtest_ar_, text, #actual, #expected).c_str())
1508 #define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \
1509 GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
1510 if (::testing::internal::AlwaysTrue()) { \
1511 ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \
1512 GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
1513 if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \
1514 goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \
1517 GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__): \
1518 fail("Expected: " #statement " doesn't generate new fatal " \
1519 "failures in the current thread.\n" \
1520 " Actual: it does.")
1523 #define GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \
1524 test_suite_name##_##test_name##_Test
1527 #define GTEST_TEST_(test_suite_name, test_name, parent_class, parent_id) \
1528 static_assert(sizeof(GTEST_STRINGIFY_(test_suite_name)) > 1, \
1529 "test_suite_name must not be empty"); \
1530 static_assert(sizeof(GTEST_STRINGIFY_(test_name)) > 1, \
1531 "test_name must not be empty"); \
1532 class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \
1533 : public parent_class { \
1535 GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() = default; \
1536 ~GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() override = default; \
1537 GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \
1539 GTEST_DISALLOW_MOVE_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \
1543 void TestBody() override; \
1544 static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_; \
1547 ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_suite_name, \
1548 test_name)::test_info_ = \
1549 ::testing::internal::MakeAndRegisterTestInfo( \
1550 #test_suite_name, #test_name, nullptr, nullptr, \
1551 ::testing::internal::CodeLocation(__FILE__, __LINE__), (parent_id), \
1552 ::testing::internal::SuiteApiResolver< \
1553 parent_class>::GetSetUpCaseOrSuite(__FILE__, __LINE__), \
1554 ::testing::internal::SuiteApiResolver< \
1555 parent_class>::GetTearDownCaseOrSuite(__FILE__, __LINE__), \
1556 new ::testing::internal::TestFactoryImpl<GTEST_TEST_CLASS_NAME_( \
1557 test_suite_name, test_name)>); \
1558 void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest-message.h:91
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest.h:414
static void SetUpTestCase()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest.h:441
static void TearDownTestSuite()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest.h:435
static void SetUpTestSuite()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest.h:427
static void TearDownTestCase()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest.h:440
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest.h:704
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest.h:1274
Definition: cmake-build-release/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1278
FlatTuple(FlatTupleConstructTag tag, Args &&... args)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1285
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:250
FloatingPoint(const RawType &x)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:298
bool is_nan() const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:334
static const size_t kFractionBitCount
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:262
static const Bits kFractionBitMask
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:272
static const uint32_t kMaxUlps
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:290
static RawType Infinity()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:312
static const Bits kExponentBitMask
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:276
static const size_t kExponentBitCount
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:266
bool AlmostEquals(const FloatingPoint &rhs) const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:346
Bits fraction_bits() const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:328
const Bits & bits() const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:322
TypeWithSize< sizeof(RawType)>::UInt Bits
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:254
static const Bits kSignBitMask
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:269
static RawType ReinterpretBits(const Bits bits)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:305
static const size_t kBitCount
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:259
Bits exponent_bits() const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:325
Bits sign_bit() const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:331
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:895
static constexpr bool value
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:913
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:122
IgnoredValue(const T &)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:135
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1094
Element value_type
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1097
const_iterator begin() const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1123
NativeArray(const Element *array, size_t count, RelationToSourceReference)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1102
~NativeArray()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1116
bool operator==(const NativeArray &rhs) const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1125
const Element * const_iterator
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1099
NativeArray(const NativeArray &rhs)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1112
Element * iterator
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1098
NativeArray(const Element *array, size_t count, RelationToSourceCopy)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1107
const_iterator end() const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1124
size_t size() const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1122
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:870
uint32_t Generate(uint32_t range)
Random(uint32_t seed)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:874
void Reseed(uint32_t seed)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:876
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:452
virtual Test * CreateTest()=0
virtual ~TestFactoryBase()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:454
TestFactoryBase()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:461
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:470
Test * CreateTest() override
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:472
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:420
static bool dummy_
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:425
static bool Register(const char *, const CodeLocation &, const char *, const char *, int, const std::vector< std::string > &=std::vector< std::string >())
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:757
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:712
static bool Register(const char *prefix, const CodeLocation &code_location, const char *case_name, const char *test_names, int index, const std::vector< std::string > &type_names=GenerateNames< DefaultNameGenerator, Types >())
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:718
static bool Register(const char *, const CodeLocation &, const TypedTestSuitePState *, const char *, const char *, const std::vector< std::string > &=std::vector< std::string >())
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:815
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:776
static bool Register(const char *prefix, CodeLocation code_location, const TypedTestSuitePState *state, const char *case_name, const char *test_names, const std::vector< std::string > &type_names=GenerateNames< DefaultNameGenerator, Types >())
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:778
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-port.h:2157
#define GTEST_API_
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-port.h:775
#define GTEST_CHECK_(condition)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-port.h:1004
#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-port.h:693
#define GTEST_BIND_(TmplSel, T)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-type-util.h:122
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:93
GTEST_API_ std::vector< EditType > CalculateOptimalEdits(const std::vector< size_t > &left, const std::vector< size_t > &right)
GTEST_API_ std::string CreateUnifiedDiff(const std::vector< std::string > &left, const std::vector< std::string > &right, size_t context=2)
EditType
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:168
@ kReplace
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:168
@ kAdd
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:168
@ kMatch
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:168
@ kRemove
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:168
void Abort()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-port.h:2109
void(*)() SetUpTestSuiteFunc
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:489
GTEST_API_ const char kStackTraceMarker[]
Definition: cmake-build-release/googletest-src/googletest/include/gtest/internal/gtest-internal.h:115
GTEST_API_ TypeId GetTestTypeId()
void GenerateNamesRecursively(internal::None, std::vector< std::string > *, int)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:688
GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251) class GTEST_API_ TypedTestSuitePState
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:593
GTEST_API_ ::std::string FormatFileLocation(const char *file, int line)
const void * TypeId
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:417
std::string GetPrefixUntilComma(const char *str)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:663
auto Apply(F &&f, Tuple &&args) -> decltype(ApplyImpl(std::forward< F >(f), std::forward< Tuple >(args), MakeIndexSequence< std::tuple_size< typename std::remove_reference< Tuple >::type >::value >()))
Definition: cmake-build-debug/googletest-src/googlemock/include/gmock/internal/gmock-internal-utils.h:412
bool AlwaysFalse()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:844
GTEST_API_ bool AlwaysTrue()
GTEST_API_ std::string DiffStrings(const std::string &left, const std::string &right, size_t *total_line_count)
TypeId GetTypeId()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:435
std::vector< std::string > GenerateNames()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:698
void(*)() SetUpTearDownSuiteFuncType
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:504
IsContainer IsContainerTest(int)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:951
GTEST_API_ void RegisterTypeParameterizedTestSuiteInstantiation(const char *case_name)
TypedTestSuitePState TypedTestCasePState
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:645
void SplitString(const ::std::string &str, char delimiter, ::std::vector< ::std::string > *dest)
GTEST_API_ TestInfo * 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)
FloatingPoint< double > Double
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:409
Iter ArrayAwareFind(Iter begin, Iter end, const Element &elem)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1043
SetUpTearDownSuiteFuncType GetNotDefaultOrNull(SetUpTearDownSuiteFuncType a, SetUpTearDownSuiteFuncType def)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:506
FloatingPoint< float > Float
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:408
std::string StripTrailingSpaces(std::string str)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-port.h:1951
GTEST_API_ void RegisterTypeParameterizedTestSuite(const char *test_suite_name, CodeLocation code_location)
GTEST_API_ bool SkipPrefix(const char *prefix, const char **pstr)
std::string StreamableToString(const T &streamable)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest-message.h:210
void(*)() TearDownTestSuiteFunc
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:490
char IsNotContainer
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:955
typename MakeIndexSequenceImpl< N >::type MakeIndexSequence
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1185
GTEST_INTERNAL_DEPRECATED("INSTANTIATE_TEST_CASE_P is deprecated, please use " "INSTANTIATE_TEST_SUITE_P") const expr bool InstantiateTestCase_P_IsDeprecated()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1294
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)
GTEST_DISABLE_MSC_WARNINGS_POP_() inline const char *SkipComma(const char *str)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:648
typename MakeIndexSequence< sizeof...(T)>::type IndexSequenceFor
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1188
int IsContainer
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:944
GTEST_API_ std::string GetCurrentOsStackTraceExceptTop(UnitTest *unit_test, int skip_count)
GTEST_API_ std::string GetBoolAssertionFailureMessage(const AssertionResult &assertion_result, const char *expression_text, const char *actual_predicate_value, const char *expected_predicate_value)
bool IsSpace(char ch)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-port.h:1930
bool ArrayEq(const T *lhs, size_t size, const U *rhs)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1032
GTEST_API_ std::string AppendUserMessage(const std::string >est_msg, const Message &user_msg)
void CopyArray(const T *from, size_t size, U *to)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1072
Definition: cmake-build-debug/googletest-src/googlemock/include/gmock/gmock-actions.h:154
internal::ProxyTypeList< Ts... > Types
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-type-util.h:179
::std::string PrintToString(const T &value)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/gtest-printers.h:942
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:492
int line
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:497
CodeLocation(const std::string &a_file, int a_line)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:493
std::string file
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:496
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:849
const char * value
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:852
ConstCharPtr(const char *str)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:850
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:675
static std::string GetName(int i)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:677
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1164
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1208
decltype(ElemFromListImpl< typename MakeIndexSequence< N >::type >::Apply(static_cast< T(*)()>(nullptr)...)) type
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1211
static R Apply(Ignore< 0 *I >..., R(*)(),...)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1196
const ElemFromList< I, T... >::type & Get() const
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1246
auto Apply(F &&f) const -> decltype(std::forward< F >(f)(this->Get< Idx >()...))
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1261
auto Apply(F &&f) -> decltype(std::forward< F >(f)(this->Get< Idx >()...))
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1256
ElemFromList< I, T... >::type & Get()
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1251
FlatTupleBase(FlatTupleConstructTag, Args &&... args)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1241
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1233
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1214
FlatTupleElemBase()=default
FlatTupleElemBase(FlatTupleConstructTag, Arg &&t)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1227
typename ElemFromList< I, T... >::type value_type
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1224
value_type value
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1229
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1220
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1191
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1158
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:964
static const bool value
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:974
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1007
decltype(*std::declval< typename C::const_iterator >()) value_type
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:993
std::is_same< typename std::remove_const< typename std::remove_reference< value_type >::type >::type, C > type
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:997
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:982
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1179
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:683
Provided type
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:684
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-type-util.h:102
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1083
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:1082
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:515
typename std::conditional< sizeof(T) !=0, ::testing::Test, void >::type Test
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:519
static SetUpTearDownSuiteFuncType GetTearDownCaseOrSuite(const char *filename, int line_num)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:542
static SetUpTearDownSuiteFuncType GetSetUpCaseOrSuite(const char *filename, int line_num)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:521
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:857
TrueWithString(const std::string &str)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:860
std::string value
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:862
TrueWithString(const char *str)
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-internal.h:859
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-type-util.h:139
Types< Tail_... > Tail
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-type-util.h:141
Head_ Head
Definition: cmake-build-debug/googletest-src/googletest/include/gtest/internal/gtest-type-util.h:140