Commit Graph

1812 Commits

Author SHA1 Message Date
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
fdb57f8571
Merge pull request #1561 from gennadiycivil/master
Merging gmock-actions
2018-04-11 16:06:23 -04:00
Gennadiy Civil
373481c5a9 ...merging 2018-04-11 15:46:57 -04:00
Gennadiy Civil
ef17a9f98a Merge branch 'master' of https://github.com/google/googletest 2018-04-11 15:38:25 -04:00
Gennadiy Civil
6273647250
Merge pull request #1560 from gennadiycivil/master
Upstream cl/192179348
2018-04-11 15:38:15 -04:00
Gennadiy Civil
8654c1ca10 merging 2018-04-11 15:33:31 -04:00
Gennadiy Civil
af4cfd5088 Merge branch 'master' of https://github.com/google/googletest 2018-04-11 15:24:25 -04:00
Gennadiy Civil
ab84d14281 Upstream cl/192179348 2018-04-11 15:24:04 -04:00
Gennadiy Civil
b4429c9219
Merge pull request #1559 from gennadiycivil/master
Upstream cl 191754725
2018-04-11 13:57:33 -04:00
Gennadiy Civil
106e731e68 Merge branch 'master' of https://github.com/google/googletest 2018-04-11 13:20:55 -04:00
Gennadiy Civil
c13ab6003b merging 2018-04-11 13:20:36 -04:00
Gennadiy Civil
d5988e7dd0
Merge pull request #1558 from gennadiycivil/master
RE-Doing the merge, this time with gcc on mac in the PR
2018-04-11 10:22:10 -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
6f9db26159 merging 2018-04-10 16:34:21 -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
8fbb419470
Include gcc on mac into PR matrix
There was an error that slipped through and only showed up on PR merge (https://travis-ci.org/google/googletest/jobs/364304396/config ) , we dont want that again
2018-04-10 11:28:16 -04:00
Gennadiy Civil
a072611118
Merge pull request #1556 from google/revert-1551-master
Revert "gmock actions 2"
2018-04-09 22:37:50 -04:00
Gennadiy Civil
ca54b67303
Revert "gmock actions 2" 2018-04-09 22:10:12 -04:00
Gennadiy Civil
7f03f7ceae
Merge pull request #1551 from gennadiycivil/master
gmock actions 2
2018-04-09 16:34:54 -04:00
Gennadiy Civil
64d24b810f ... and this 2018-04-09 16:24:30 -04:00
Gennadiy Civil
c1d4c34233 this should be it 2018-04-09 16:13:45 -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
57d6e824b4 more 2018-04-09 15:33:56 -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
Gennadiy Civil
7529698fa3
Merge pull request #1552 from pwnall/mock-pump
Sync gmock-generated-nice-strict.h.pump with gmock-generated-nice-strict.h
2018-04-09 09:28:35 -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