56 Commits

Author SHA1 Message Date
Victor Costan
1324e2d706 Remove multiple inheritance from "unintesting call" mock classes.
Internal CL 156157936, which was published in commit
fe402c27790ff1cc9a7e17c5d0aea4ebe7fd8a71, introduced undefined behavior
by casting a base class (internal::{Naggy,Nice,Strict}Base<MockClass>,
using the curiously recurring template pattern) pointer to a derived
class ({Naggy,Nice,Strict}Mock<MockClass>), in the base class'
constructor. At that point, the object isn't guaranteed to have taken on
the shape of the derived class, and casting is undefined behavior.

The undefined behavior was caught by Chrome's CFI build bot [1], and
prevents rolling googletest past that commit / CL.

This commit simplifies the {Naggy,Nice,Strict}Mock class hierarchy in
a way that removes the undefined behavior.

[1] https://www.chromium.org/developers/testing/control-flow-integrity
2018-04-12 00:48:30 -07:00
Gennadiy Civil
8654c1ca10 merging 2018-04-11 15:33:31 -04:00
Gennadiy Civil
ab84d14281 Upstream cl/192179348 2018-04-11 15:24:04 -04:00
Gennadiy Civil
5cd213ea5e ..and this should be it 2018-04-11 10:10:24 -04:00
Gennadiy Civil
39c58da187 merge 2018-04-10 16:10:34 -04:00
Gennadiy Civil
e1071eb949 RE-Doing the merge, this time with gcc on mac in the PR so I can catch errors before merging the PR 2018-04-10 15:57:16 -04:00
Gennadiy Civil
ca54b67303
Revert "gmock actions 2" 2018-04-09 22:10:12 -04:00
Gennadiy Civil
f5871009e6 yet more 2018-04-09 16:04:48 -04:00
Gennadiy Civil
e0b3c269c2 continued 2018-04-09 09:51:02 -04:00
Gennadiy Civil
d0de1180e4 Merge branch 'master' of github.com:google/googletest 2018-04-09 09:29:37 -04:00
Victor Costan
51f8ad47df Sync gmock-generated-nice-strict.h.pump with gmock-generated-nice-strict.h.
Commit fe402c27790ff1cc9a7e17c5d0aea4ebe7fd8a71 published the changes in
internal CL 156157936, but missed the diff in
gmock-generated-nice-strict.h.pump. This makes it difficult to reason
about the change, because the .pump file is more concise than the
generated file.

This PR was tested by re-generating the .h file using the command below
and checking the git diff.

./googletest/scripts/pump.py \
    googlemock/include/gmock/gmock-generated-nice-strict.h.pump
2018-04-06 17:21:05 -07:00
Gennadiy Civil
701e1e5dc1 linkage, fixing MSVC 2018-04-06 16:43:35 -04:00
Gennadiy Civil
2d4d4ef739 fixing MSVC 2018-04-06 16:31:11 -04:00
Gennadiy Civil
c75b76e20a warnings 2018-04-06 11:00:13 -04:00
Gennadiy Civil
04e31881fc cont - 2 2018-04-06 10:52:49 -04:00
Gennadiy Civil
32ac949254 cont 2018-04-06 10:43:11 -04:00
Gennadiy Civil
1831ac9361 more warnings 2018-04-06 10:35:09 -04:00
Gennadiy Civil
eb3e4aac2e deal with MSVC warn, cont 1 2018-04-06 10:24:49 -04:00
Gennadiy Civil
50c0bcd7e3 Cont. deal with MCVS warnings 2018-04-06 10:15:00 -04:00
Gennadiy Civil
b5c87fbcb6 Deal with MCVS warnings 2018-04-06 10:01:40 -04:00
Gennadiy Civil
88fc7d7552 merging gmock-actions 2 2018-04-06 09:50:01 -04:00
Gennadiy Civil
fe402c2779 Merging gMock, 2 2018-04-05 16:09:17 -04:00
Gennadiy Civil
7e5f90d378 formatting 2018-04-05 14:41:16 -04:00
Gennadiy Civil
928636135b And more MCVS warnings 2018-04-05 14:24:12 -04:00
Gennadiy Civil
e0f4cf0561 fixing MCVS warn 2018-04-05 14:00:14 -04:00
Gennadiy Civil
e55089ec11 merging gmock matchers 1 2018-04-04 14:05:00 -04:00
Gennadiy Civil
6aae206bc2 merging gmock-matchers.h 3 2018-03-26 10:36:26 -04:00
Gennadiy Civil
23187058e7 merging gmock-matchers.h 2 2018-03-26 10:16:59 -04:00
Gennadiy Civil
8ea10d3878 Upstreaming FloatingEq2Matcher, 2018-03-26 09:28:16 -04:00
Gennadiy Civil
b907c26740 Merging gmock-matchers.h -2 2018-03-23 11:42:41 -04:00
Gennadiy Civil
466a49ae30 gmock-matchers merging -2 2018-03-23 11:23:54 -04:00
Gennadiy Civil
b7c568326c merging, gmock -1 2018-03-22 15:35:37 -04:00
Gennadiy Civil
af463c43ac More merges, removing old dead code 2018-03-13 11:13:37 -04:00
Gennadiy Civil
a518bd5cf2 Merge branch 'master' of https://github.com/google/googletest 2018-03-05 12:26:24 -05:00
Gennadiy Civil
0d5e01ad7b Merges-1 2018-03-05 12:26:15 -05:00
Gennadiy Civil
f8fbe1c821
Merge branch 'master' into unsigned-wchar 2018-03-01 11:18:17 -05:00
Xiaoyi Zhang
576d689c19
Merge branch 'master' into variant_matcher 2018-02-27 16:03:36 -05:00
Gennadiy Civil
2bd1750ba7 gmock merging -2 2018-02-27 13:51:09 -05:00
Xiaoyi Zhang
190e2cdd0b Add matcher for std::variant. 2018-02-27 11:36:21 -05:00
Scott Graham
567b40eeb1 Try to handle unsigned wchar_t (arm) a bit better 2018-02-23 12:28:09 -08:00
Gennadiy Civil
225e6741ac moving JoinAsTuple to internal 2018-02-12 16:42:12 -05:00
Troy Holsapple
c8510504dd Fixed typos 2018-02-07 22:06:00 -08:00
Gennadiy Civil
fbb48a7708 Code merges 2018-01-26 11:57:58 -05:00
David Benjamin
b3d9be5c1d Pass the -Wmissing-declarations warning.
This makes it easier to use GTest in projects that build with the
-Wmissing-declarations warning. This fixes the warning in headers and
source files, though not GTest's own tests as it is rather noisy there.
2018-01-03 14:50:22 -05:00
Romain Geissler
20e2de7d8b Remove gcc 6 misleading indentations. 2017-10-25 17:53:01 +02:00
Jonathan Wakely
b70cf1a663 Use gender-neutral pronouns in comments and docs 2017-09-27 13:31:13 +01:00
Herbert Thielen
e033d8c73d change links from former code.google.com to current github repository 2017-08-31 18:12:17 +02:00
Alyssa Wilk
c00373320d Merge branch 'refs/heads/master' into flag-default 2017-08-28 16:10:12 -04:00
Roman Perepelitsa
966b549c88 Support ref-qualified member functions in Property(). 2017-08-22 16:06:26 +02:00
Alyssa Wilk
6e1970e237 Adding a flag option to change the default mock type 2017-08-10 09:41:09 -04:00