Merge branch 'master' into feature/fix-build-error-vs2017-win10-jp
This commit is contained in:
		
						commit
						40cd5d1170
					
				
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -38,3 +38,6 @@ googletest/m4/lt~obsolete.m4
 | 
			
		||||
# Ignore generated directories.
 | 
			
		||||
googlemock/fused-src/
 | 
			
		||||
googletest/fused-src/
 | 
			
		||||
 | 
			
		||||
# macOS files
 | 
			
		||||
.DS_Store
 | 
			
		||||
 | 
			
		||||
@ -32,7 +32,7 @@
 | 
			
		||||
// ============================================================
 | 
			
		||||
//
 | 
			
		||||
// Adds google3 callback support to CallableTraits.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef GMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_MATCHERS_H_
 | 
			
		||||
#define GMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_MATCHERS_H_
 | 
			
		||||
#endif  // GMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_MATCHERS_H_
 | 
			
		||||
 | 
			
		||||
@ -88,10 +88,6 @@ using testing::tuple_element;
 | 
			
		||||
using testing::SetErrnoAndReturn;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if GTEST_HAS_PROTOBUF_
 | 
			
		||||
using testing::internal::TestMessage;
 | 
			
		||||
#endif  // GTEST_HAS_PROTOBUF_
 | 
			
		||||
 | 
			
		||||
// Tests that BuiltInDefaultValue<T*>::Get() returns NULL.
 | 
			
		||||
TEST(BuiltInDefaultValueTest, IsNullForPointerTypes) {
 | 
			
		||||
  EXPECT_TRUE(BuiltInDefaultValue<int*>::Get() == NULL);
 | 
			
		||||
@ -895,105 +891,6 @@ TEST(SetArgPointeeTest, AcceptsWideCharPointer) {
 | 
			
		||||
# endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if GTEST_HAS_PROTOBUF_
 | 
			
		||||
 | 
			
		||||
// Tests that SetArgPointee<N>(proto_buffer) sets the v1 protobuf
 | 
			
		||||
// variable pointed to by the N-th (0-based) argument to proto_buffer.
 | 
			
		||||
TEST(SetArgPointeeTest, SetsTheNthPointeeOfProtoBufferType) {
 | 
			
		||||
  TestMessage* const msg = new TestMessage;
 | 
			
		||||
  msg->set_member("yes");
 | 
			
		||||
  TestMessage orig_msg;
 | 
			
		||||
  orig_msg.CopyFrom(*msg);
 | 
			
		||||
 | 
			
		||||
  Action<void(bool, TestMessage*)> a = SetArgPointee<1>(*msg);
 | 
			
		||||
  // SetArgPointee<N>(proto_buffer) makes a copy of proto_buffer
 | 
			
		||||
  // s.t. the action works even when the original proto_buffer has
 | 
			
		||||
  // died.  We ensure this behavior by deleting msg before using the
 | 
			
		||||
  // action.
 | 
			
		||||
  delete msg;
 | 
			
		||||
 | 
			
		||||
  TestMessage dest;
 | 
			
		||||
  EXPECT_FALSE(orig_msg.Equals(dest));
 | 
			
		||||
  a.Perform(make_tuple(true, &dest));
 | 
			
		||||
  EXPECT_TRUE(orig_msg.Equals(dest));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that SetArgPointee<N>(proto_buffer) sets the
 | 
			
		||||
// ::ProtocolMessage variable pointed to by the N-th (0-based)
 | 
			
		||||
// argument to proto_buffer.
 | 
			
		||||
TEST(SetArgPointeeTest, SetsTheNthPointeeOfProtoBufferBaseType) {
 | 
			
		||||
  TestMessage* const msg = new TestMessage;
 | 
			
		||||
  msg->set_member("yes");
 | 
			
		||||
  TestMessage orig_msg;
 | 
			
		||||
  orig_msg.CopyFrom(*msg);
 | 
			
		||||
 | 
			
		||||
  Action<void(bool, ::ProtocolMessage*)> a = SetArgPointee<1>(*msg);
 | 
			
		||||
  // SetArgPointee<N>(proto_buffer) makes a copy of proto_buffer
 | 
			
		||||
  // s.t. the action works even when the original proto_buffer has
 | 
			
		||||
  // died.  We ensure this behavior by deleting msg before using the
 | 
			
		||||
  // action.
 | 
			
		||||
  delete msg;
 | 
			
		||||
 | 
			
		||||
  TestMessage dest;
 | 
			
		||||
  ::ProtocolMessage* const dest_base = &dest;
 | 
			
		||||
  EXPECT_FALSE(orig_msg.Equals(dest));
 | 
			
		||||
  a.Perform(make_tuple(true, dest_base));
 | 
			
		||||
  EXPECT_TRUE(orig_msg.Equals(dest));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that SetArgPointee<N>(proto2_buffer) sets the v2
 | 
			
		||||
// protobuf variable pointed to by the N-th (0-based) argument to
 | 
			
		||||
// proto2_buffer.
 | 
			
		||||
TEST(SetArgPointeeTest, SetsTheNthPointeeOfProto2BufferType) {
 | 
			
		||||
  using testing::internal::FooMessage;
 | 
			
		||||
  FooMessage* const msg = new FooMessage;
 | 
			
		||||
  msg->set_int_field(2);
 | 
			
		||||
  msg->set_string_field("hi");
 | 
			
		||||
  FooMessage orig_msg;
 | 
			
		||||
  orig_msg.CopyFrom(*msg);
 | 
			
		||||
 | 
			
		||||
  Action<void(bool, FooMessage*)> a = SetArgPointee<1>(*msg);
 | 
			
		||||
  // SetArgPointee<N>(proto2_buffer) makes a copy of
 | 
			
		||||
  // proto2_buffer s.t. the action works even when the original
 | 
			
		||||
  // proto2_buffer has died.  We ensure this behavior by deleting msg
 | 
			
		||||
  // before using the action.
 | 
			
		||||
  delete msg;
 | 
			
		||||
 | 
			
		||||
  FooMessage dest;
 | 
			
		||||
  dest.set_int_field(0);
 | 
			
		||||
  a.Perform(make_tuple(true, &dest));
 | 
			
		||||
  EXPECT_EQ(2, dest.int_field());
 | 
			
		||||
  EXPECT_EQ("hi", dest.string_field());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that SetArgPointee<N>(proto2_buffer) sets the
 | 
			
		||||
// proto2::Message variable pointed to by the N-th (0-based) argument
 | 
			
		||||
// to proto2_buffer.
 | 
			
		||||
TEST(SetArgPointeeTest, SetsTheNthPointeeOfProto2BufferBaseType) {
 | 
			
		||||
  using testing::internal::FooMessage;
 | 
			
		||||
  FooMessage* const msg = new FooMessage;
 | 
			
		||||
  msg->set_int_field(2);
 | 
			
		||||
  msg->set_string_field("hi");
 | 
			
		||||
  FooMessage orig_msg;
 | 
			
		||||
  orig_msg.CopyFrom(*msg);
 | 
			
		||||
 | 
			
		||||
  Action<void(bool, ::proto2::Message*)> a = SetArgPointee<1>(*msg);
 | 
			
		||||
  // SetArgPointee<N>(proto2_buffer) makes a copy of
 | 
			
		||||
  // proto2_buffer s.t. the action works even when the original
 | 
			
		||||
  // proto2_buffer has died.  We ensure this behavior by deleting msg
 | 
			
		||||
  // before using the action.
 | 
			
		||||
  delete msg;
 | 
			
		||||
 | 
			
		||||
  FooMessage dest;
 | 
			
		||||
  dest.set_int_field(0);
 | 
			
		||||
  ::proto2::Message* const dest_base = &dest;
 | 
			
		||||
  a.Perform(make_tuple(true, dest_base));
 | 
			
		||||
  EXPECT_EQ(2, dest.int_field());
 | 
			
		||||
  EXPECT_EQ("hi", dest.string_field());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif  // GTEST_HAS_PROTOBUF_
 | 
			
		||||
 | 
			
		||||
// Tests that SetArgumentPointee<N>(v) sets the variable pointed to by
 | 
			
		||||
// the N-th (0-based) argument to v.
 | 
			
		||||
TEST(SetArgumentPointeeTest, SetsTheNthPointee) {
 | 
			
		||||
@ -1014,105 +911,6 @@ TEST(SetArgumentPointeeTest, SetsTheNthPointee) {
 | 
			
		||||
  EXPECT_EQ('a', ch);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if GTEST_HAS_PROTOBUF_
 | 
			
		||||
 | 
			
		||||
// Tests that SetArgumentPointee<N>(proto_buffer) sets the v1 protobuf
 | 
			
		||||
// variable pointed to by the N-th (0-based) argument to proto_buffer.
 | 
			
		||||
TEST(SetArgumentPointeeTest, SetsTheNthPointeeOfProtoBufferType) {
 | 
			
		||||
  TestMessage* const msg = new TestMessage;
 | 
			
		||||
  msg->set_member("yes");
 | 
			
		||||
  TestMessage orig_msg;
 | 
			
		||||
  orig_msg.CopyFrom(*msg);
 | 
			
		||||
 | 
			
		||||
  Action<void(bool, TestMessage*)> a = SetArgumentPointee<1>(*msg);
 | 
			
		||||
  // SetArgumentPointee<N>(proto_buffer) makes a copy of proto_buffer
 | 
			
		||||
  // s.t. the action works even when the original proto_buffer has
 | 
			
		||||
  // died.  We ensure this behavior by deleting msg before using the
 | 
			
		||||
  // action.
 | 
			
		||||
  delete msg;
 | 
			
		||||
 | 
			
		||||
  TestMessage dest;
 | 
			
		||||
  EXPECT_FALSE(orig_msg.Equals(dest));
 | 
			
		||||
  a.Perform(make_tuple(true, &dest));
 | 
			
		||||
  EXPECT_TRUE(orig_msg.Equals(dest));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that SetArgumentPointee<N>(proto_buffer) sets the
 | 
			
		||||
// ::ProtocolMessage variable pointed to by the N-th (0-based)
 | 
			
		||||
// argument to proto_buffer.
 | 
			
		||||
TEST(SetArgumentPointeeTest, SetsTheNthPointeeOfProtoBufferBaseType) {
 | 
			
		||||
  TestMessage* const msg = new TestMessage;
 | 
			
		||||
  msg->set_member("yes");
 | 
			
		||||
  TestMessage orig_msg;
 | 
			
		||||
  orig_msg.CopyFrom(*msg);
 | 
			
		||||
 | 
			
		||||
  Action<void(bool, ::ProtocolMessage*)> a = SetArgumentPointee<1>(*msg);
 | 
			
		||||
  // SetArgumentPointee<N>(proto_buffer) makes a copy of proto_buffer
 | 
			
		||||
  // s.t. the action works even when the original proto_buffer has
 | 
			
		||||
  // died.  We ensure this behavior by deleting msg before using the
 | 
			
		||||
  // action.
 | 
			
		||||
  delete msg;
 | 
			
		||||
 | 
			
		||||
  TestMessage dest;
 | 
			
		||||
  ::ProtocolMessage* const dest_base = &dest;
 | 
			
		||||
  EXPECT_FALSE(orig_msg.Equals(dest));
 | 
			
		||||
  a.Perform(make_tuple(true, dest_base));
 | 
			
		||||
  EXPECT_TRUE(orig_msg.Equals(dest));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that SetArgumentPointee<N>(proto2_buffer) sets the v2
 | 
			
		||||
// protobuf variable pointed to by the N-th (0-based) argument to
 | 
			
		||||
// proto2_buffer.
 | 
			
		||||
TEST(SetArgumentPointeeTest, SetsTheNthPointeeOfProto2BufferType) {
 | 
			
		||||
  using testing::internal::FooMessage;
 | 
			
		||||
  FooMessage* const msg = new FooMessage;
 | 
			
		||||
  msg->set_int_field(2);
 | 
			
		||||
  msg->set_string_field("hi");
 | 
			
		||||
  FooMessage orig_msg;
 | 
			
		||||
  orig_msg.CopyFrom(*msg);
 | 
			
		||||
 | 
			
		||||
  Action<void(bool, FooMessage*)> a = SetArgumentPointee<1>(*msg);
 | 
			
		||||
  // SetArgumentPointee<N>(proto2_buffer) makes a copy of
 | 
			
		||||
  // proto2_buffer s.t. the action works even when the original
 | 
			
		||||
  // proto2_buffer has died.  We ensure this behavior by deleting msg
 | 
			
		||||
  // before using the action.
 | 
			
		||||
  delete msg;
 | 
			
		||||
 | 
			
		||||
  FooMessage dest;
 | 
			
		||||
  dest.set_int_field(0);
 | 
			
		||||
  a.Perform(make_tuple(true, &dest));
 | 
			
		||||
  EXPECT_EQ(2, dest.int_field());
 | 
			
		||||
  EXPECT_EQ("hi", dest.string_field());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that SetArgumentPointee<N>(proto2_buffer) sets the
 | 
			
		||||
// proto2::Message variable pointed to by the N-th (0-based) argument
 | 
			
		||||
// to proto2_buffer.
 | 
			
		||||
TEST(SetArgumentPointeeTest, SetsTheNthPointeeOfProto2BufferBaseType) {
 | 
			
		||||
  using testing::internal::FooMessage;
 | 
			
		||||
  FooMessage* const msg = new FooMessage;
 | 
			
		||||
  msg->set_int_field(2);
 | 
			
		||||
  msg->set_string_field("hi");
 | 
			
		||||
  FooMessage orig_msg;
 | 
			
		||||
  orig_msg.CopyFrom(*msg);
 | 
			
		||||
 | 
			
		||||
  Action<void(bool, ::proto2::Message*)> a = SetArgumentPointee<1>(*msg);
 | 
			
		||||
  // SetArgumentPointee<N>(proto2_buffer) makes a copy of
 | 
			
		||||
  // proto2_buffer s.t. the action works even when the original
 | 
			
		||||
  // proto2_buffer has died.  We ensure this behavior by deleting msg
 | 
			
		||||
  // before using the action.
 | 
			
		||||
  delete msg;
 | 
			
		||||
 | 
			
		||||
  FooMessage dest;
 | 
			
		||||
  dest.set_int_field(0);
 | 
			
		||||
  ::proto2::Message* const dest_base = &dest;
 | 
			
		||||
  a.Perform(make_tuple(true, dest_base));
 | 
			
		||||
  EXPECT_EQ(2, dest.int_field());
 | 
			
		||||
  EXPECT_EQ("hi", dest.string_field());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif  // GTEST_HAS_PROTOBUF_
 | 
			
		||||
 | 
			
		||||
// Sample functions and functors for testing Invoke() and etc.
 | 
			
		||||
int Nullary() { return 1; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -38,6 +38,7 @@
 | 
			
		||||
namespace {
 | 
			
		||||
 | 
			
		||||
using testing::HasSubstr;
 | 
			
		||||
 | 
			
		||||
using testing::internal::GoogleTestFailureException;
 | 
			
		||||
 | 
			
		||||
// A type that cannot be default constructed.
 | 
			
		||||
@ -53,7 +54,6 @@ class MockFoo {
 | 
			
		||||
  MOCK_METHOD0(GetNonDefaultConstructible, NonDefaultConstructible());
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TEST(DefaultValueTest, ThrowsRuntimeErrorWhenNoDefaultValue) {
 | 
			
		||||
  MockFoo mock;
 | 
			
		||||
  try {
 | 
			
		||||
@ -76,5 +76,6 @@ TEST(DefaultValueTest, ThrowsRuntimeErrorWhenNoDefaultValue) {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}  // unnamed namespace
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,5 +1,6 @@
 | 
			
		||||
# Googletest Primer
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Introduction: Why googletest?
 | 
			
		||||
 | 
			
		||||
*googletest* helps you write better C++ tests.
 | 
			
		||||
@ -197,7 +198,7 @@ objects, you should use `ASSERT_EQ`.
 | 
			
		||||
 | 
			
		||||
When doing pointer comparisons use `*_EQ(ptr, nullptr)` and `*_NE(ptr, nullptr)`
 | 
			
		||||
instead of `*_EQ(ptr, NULL)` and `*_NE(ptr, NULL)`. This is because `nullptr` is
 | 
			
		||||
typed while `NULL` is not. See [FAQ](faq#Why_does_googletest_support_EXPECT_EQ)
 | 
			
		||||
typed while `NULL` is not. See [FAQ](faq.md#why-does-google-test-support-expect_eqnull-ptr-and-assert_eqnull-ptr-but-not-expect_nenull-ptr-and-assert_nenull-ptr)
 | 
			
		||||
for more details.
 | 
			
		||||
 | 
			
		||||
If you're working with floating point numbers, you may want to use the floating
 | 
			
		||||
@ -322,7 +323,7 @@ To create a fixture:
 | 
			
		||||
1.  If necessary, write a destructor or `TearDown()` function to release any
 | 
			
		||||
    resources you allocated in `SetUp()` . To learn when you should use the
 | 
			
		||||
    constructor/destructor and when you should use `SetUp()/TearDown()`, read
 | 
			
		||||
    this [FAQ](faq#CtorVsSetUp) entry.
 | 
			
		||||
    this [FAQ](faq.md#should-i-use-the-constructordestructor-of-the-test-fixture-or-the-set-uptear-down-function) entry.
 | 
			
		||||
1.  If needed, define subroutines for your tests to share.
 | 
			
		||||
 | 
			
		||||
When using a fixture, use `TEST_F()` instead of `TEST()` as it allows you to
 | 
			
		||||
@ -436,6 +437,7 @@ When these tests run, the following happens:
 | 
			
		||||
 | 
			
		||||
**Availability**: Linux, Windows, Mac.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Invoking the Tests
 | 
			
		||||
 | 
			
		||||
`TEST()` and `TEST_F()` implicitly register their tests with googletest. So,
 | 
			
		||||
@ -544,6 +546,7 @@ int main(int argc, char **argv) {
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
The `::testing::InitGoogleTest()` function parses the command line for
 | 
			
		||||
googletest flags, and removes all recognized flags. This allows the user to
 | 
			
		||||
control a test program's behavior via various flags, which we'll cover in
 | 
			
		||||
@ -560,6 +563,7 @@ gtest\_main library and you are good to go.
 | 
			
		||||
 | 
			
		||||
NOTE: `ParseGUnitFlags()` is deprecated in favor of `InitGoogleTest()`.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Known Limitations
 | 
			
		||||
 | 
			
		||||
*   Google Test is designed to be thread-safe. The implementation is thread-safe
 | 
			
		||||
 | 
			
		||||
@ -1218,7 +1218,7 @@ class scoped_ptr {
 | 
			
		||||
// Defines RE.
 | 
			
		||||
 | 
			
		||||
#if GTEST_USES_PCRE
 | 
			
		||||
using ::RE;
 | 
			
		||||
// if used, PCRE is injected by custom/gtest-port.h
 | 
			
		||||
#elif GTEST_USES_POSIX_RE || GTEST_USES_SIMPLE_RE
 | 
			
		||||
 | 
			
		||||
// A simple C++ wrapper for <regex.h>.  It uses the POSIX Extended
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user