-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade embedded version of gmock+gtest to 1.8.0 #494
Conversation
Looks like it fails on clang? Maybe worth splitting these up into to PRs so that they don't get squashed, in any case. |
Yes, I can split them apart (edit: done now). The clang error is because Travis is using clang 3.4 with the GCC 4.6 headers, and it's hitting some brokenness in those libstdc++ headers. These are not a particularly great combination, and I'm not sure how realistic this scenario is for real-world usage. I'm investigating if there's a way to work around this, but it may well be the case that the Travis test setup is broken for these type_trait templates. There's no bug in either the yaml-cpp or googletest code that I can see. Looking at the travis-ci issues, there's a litany of reports of the C++ compiler support being broken; our team switched away from travis to our own infrastructure because of this. Example: travis-ci/travis-ci#6300 |
As a data point, on FreeBSD 10.3 with clang++ 3.4.1 and libc++ this builds and tests perfectly. It's definitely the unholy combination of clang++ with libstdc++ that's at fault here. |
The last commit is a total cheat, which drops the linux/clang combination from the matrix. From what I can tell, and what's been reported, it's not a particularly viable setup. Looks like people who want to test this combination are configuring travis to use their own docker images which are set up with a working compiler and standard library combination (generally later versions are more compatible). At work, we use FreeBSD for this purpose (this PR works perfectly there), but the MacOS X axis of the matrix is already providing good clang++ coverage here. |
Also seems to resolve #478 |
For the clang with buggy libstdc++ issue, see also:
If you liked, I could look at using a more recent libstdc++ with travis? |
@jbeder Did you want any further changes making on this PR? NB. I've rebased it to fix a conflict in gmock which would prevent merging. |
Note that with the release of 1.8.0, googlemock and googletest are unified into a single release.
The combination of clang++ 3.4 with libstdc++ from GCC 4.6 doesn't work.
@rleigh-codelibre Sounds good. I'll merge this, but can you file an issue about that linux/clang issue, referencing this PR, and the links you've found? Not that we need to do any action on that right now, but just so we surface it. |
@jbeder Hope the above issue and cross-references are OK. |
See also: #493
This commit upgrades gmock and gtest to 1.8.0, fixing the segfault noted in the issue. It very much looks like gmock 1.7.0 is broken, and this defect is exposed when using reasonably contemporary compilers (both GCC and Clang). Not bleeding edge; just those used in the latest stable releases of FreeBSD and Ubuntu, and doubtless others as well.