diff options
author | Abseil Team <absl-team@google.com> | 2019-01-04 13:48:01 -0500 |
---|---|---|
committer | gennadiycivil <misterg@google.com> | 2019-01-07 12:09:25 -0500 |
commit | b6cd405286ed8635ece71c72f118e659f4ade3fb (patch) | |
tree | 5d41d64cb3519951e91a7cedd75328f9e9ffad18 /googletest/test | |
parent | 3880b13e4c0b04ca88f69b9c93da6058bd836c34 (diff) | |
download | googletest-b6cd405286ed8635ece71c72f118e659f4ade3fb.tar.gz googletest-b6cd405286ed8635ece71c72f118e659f4ade3fb.zip |
Googletest export
Fix GTEST_IS_NULL_LITERAL_ for types that have magic implicit conversions.
PiperOrigin-RevId: 227879345
Diffstat (limited to 'googletest/test')
-rw-r--r-- | googletest/test/gtest_unittest.cc | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/googletest/test/gtest_unittest.cc b/googletest/test/gtest_unittest.cc index 5e0e43a4..147f0f5c 100644 --- a/googletest/test/gtest_unittest.cc +++ b/googletest/test/gtest_unittest.cc @@ -519,9 +519,9 @@ TEST_F(FormatEpochTimeInMillisAsIso8601Test, PrintsEpochStart) { // Tests that GTEST_IS_NULL_LITERAL_(x) is true when x is a null // pointer literal. TEST(NullLiteralTest, IsTrueForNullLiterals) { - EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(nullptr)); - EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(nullptr)); - EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(nullptr)); + EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(NULL)); // NOLINT + EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(0)); // NOLINT + EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(0u)); // NOLINT EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(nullptr)); } @@ -534,6 +534,26 @@ TEST(NullLiteralTest, IsFalseForNonNullLiterals) { EXPECT_FALSE(GTEST_IS_NULL_LITERAL_(static_cast<void*>(nullptr))); } +struct ConvertToAll { + template <typename T> + operator T() const { // NOLINT + return T(); + } +}; + +struct ConvertToAllButNoPointers { + template <typename T, + typename std::enable_if<!std::is_pointer<T>::value, int>::type = 0> + operator T() const { // NOLINT + return T(); + } +}; + +TEST(NullLiteralTest, ImplicitConversion) { + EXPECT_FALSE(GTEST_IS_NULL_LITERAL_(ConvertToAll{})); + EXPECT_FALSE(GTEST_IS_NULL_LITERAL_(ConvertToAllButNoPointers{})); +} + # ifdef __BORLANDC__ // Restores warnings after previous "#pragma option push" suppressed them. # pragma option pop |