Commit Graph
288 Commits
Author SHA1 Message Date
Gennadiy Civil e77deb29a6 small cleanup 2018-04-12 09:12:02 -04:00
Victor Costan 1324e2d706 Remove multiple inheritance from "unintesting call" mock classes.
Internal CL 156157936, which was published in commit
fe402c2779, 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 373481c5a9 ...merging 2018-04-11 15:46:57 -04: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 6a7573a7de more 2018-04-11 09:55:36 -04:00
Gennadiy Civil 039d9b54c2 pizza work, cont 2018-04-11 09:47:38 -04:00
Gennadiy Civil f15fd9610b osx pizzas, cont 2018-04-11 09:33:51 -04:00
Gennadiy Civil b15be9a819 fixing osx pizza 2018-04-11 09:20:48 -04:00
Gennadiy Civil 9bc82ce725 merging 2018-04-10 16:22:50 -04:00
Gennadiy Civil 25d8176e4f merging 2018-04-10 16:18:23 -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 64d24b810f ... and this 2018-04-09 16:24:30 -04:00
Gennadiy Civil f5871009e6 yet more 2018-04-09 16:04:48 -04:00
Gennadiy Civil 05b5a53898 formatting 2018-04-09 15:50:19 -04:00
Gennadiy Civil 2de24fbf7a tuning 2018-04-09 15:39:12 -04:00
Gennadiy Civil 055f32199a tuning 2018-04-09 15:38:38 -04:00
Gennadiy Civil 44da2b9ac5 cont 2018-04-09 15:23:00 -04:00
Gennadiy Civil e93a0ece26 msvc 2018-04-09 13:51:01 -04:00
Gennadiy Civil c4684b49cf more msvc 2018-04-09 12:03:40 -04:00
Gennadiy Civil 431bfdcaf4 msvc 14 2018-04-09 11:48:02 -04:00
Gennadiy Civil 8bc7c631e8 testing msvc again 2018-04-09 11:35:01 -04:00
Gennadiy Civil c4e3d77ddc More msvc 14 2018-04-09 11:22:11 -04:00
Gennadiy Civil 6525044ce2 And also silence for MSVS14 2018-04-09 10:51:15 -04:00
Gennadiy Civil 35a709a701 preproc syntax ( I can never remember it) 2018-04-09 10:25:59 -04:00
Gennadiy Civil 61e8a0b10b syntax 2018-04-09 10:08:12 -04:00
Gennadiy Civil 03be5df17c cont. 2018-04-09 09:59:09 -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 fe402c2779 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 dbd206e3d9 more mcvs fixing 2018-04-06 16:55:46 -04: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 5fe8de5ded more warnings 2018-04-06 11:40:04 -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 7045138a0d Have to wait for this one 2018-04-05 11:59:59 -04:00