diff options
author | Gennadiy Rozental <rogeeff@google.com> | 2020-05-01 21:12:01 (GMT) |
---|---|---|
committer | Gennadiy Rozental <rogeeff@google.com> | 2020-05-01 21:12:01 (GMT) |
commit | b99b421d8d68f471122eba6e733e5970e5c538ad (patch) | |
tree | 5035a111147b5cf271b78a3bc6fa5f1574cab1b4 /googletest | |
parent | 1293297874290e1d7cfd73279d4a6d49617ca400 (diff) | |
parent | 9d580ea80592189e6d44fa35bcf9cdea8bf620d6 (diff) | |
download | googletest-b99b421d8d68f471122eba6e733e5970e5c538ad.zip googletest-b99b421d8d68f471122eba6e733e5970e5c538ad.tar.gz googletest-b99b421d8d68f471122eba6e733e5970e5c538ad.tar.bz2 |
Merge pull request #2818 from inazarenko:master
PiperOrigin-RevId: 308650221
Diffstat (limited to 'googletest')
-rw-r--r-- | googletest/include/gtest/internal/gtest-internal.h | 15 | ||||
-rw-r--r-- | googletest/test/gtest_unittest.cc | 4 |
2 files changed, 17 insertions, 2 deletions
diff --git a/googletest/include/gtest/internal/gtest-internal.h b/googletest/include/gtest/internal/gtest-internal.h index fabc804..c62183a 100644 --- a/googletest/include/gtest/internal/gtest-internal.h +++ b/googletest/include/gtest/internal/gtest-internal.h @@ -94,6 +94,12 @@ namespace proto2 { class MessageLite; } +namespace google { +namespace protobuf { +class MessageLite; +} +} + namespace testing { // Forward declarations. @@ -881,10 +887,15 @@ class GTEST_API_ Random { typename std::remove_const<typename std::remove_reference<T>::type>::type // IsAProtocolMessage<T>::value is a compile-time bool constant that's -// true if and only if T is type proto2::MessageLite or a subclass of it. +// true if and only if T is type proto2::MessageLite or +// google::protobuf::MessageLite or a subclass of one of them. template <typename T> struct IsAProtocolMessage - : public std::is_convertible<const T*, const ::proto2::MessageLite*> {}; + : public std::integral_constant< + bool, + std::is_convertible<const T*, const ::proto2::MessageLite*>::value || + std::is_convertible< + const T*, const ::google::protobuf::MessageLite*>::value> {}; // When the compiler sees expression IsContainerTest<C>(0), if C is an // STL-style container class, the first overload of IsContainerTest diff --git a/googletest/test/gtest_unittest.cc b/googletest/test/gtest_unittest.cc index 005a2d4..631180e 100644 --- a/googletest/test/gtest_unittest.cc +++ b/googletest/test/gtest_unittest.cc @@ -7115,6 +7115,10 @@ TEST(IsAProtocolMessageTest, ValueIsTrueWhenTypeIsAProtocolMessage) { EXPECT_TRUE(IsAProtocolMessage<::proto2::MessageLite>::value); } +TEST(IsAProtocolMessageTest, ValueIsTrueWhenTypeIsAnOpenSourceProtocolMessage) { + EXPECT_TRUE(IsAProtocolMessage<::google::protobuf::MessageLite>::value); +} + // Tests that IsAProtocolMessage<T>::value is false when T is neither // ::proto2::Message nor a sub-class of it. TEST(IsAProtocolMessageTest, ValueIsFalseWhenTypeIsNotAProtocolMessage) { |