Skip to content
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

Merged
merged 2 commits into from
Aug 25, 2017
Merged

Upgrade embedded version of gmock+gtest to 1.8.0 #494

merged 2 commits into from
Aug 25, 2017

Conversation

rleigh-codelibre
Copy link
Contributor

@rleigh-codelibre rleigh-codelibre commented May 10, 2017

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.

@jbeder
Copy link
Owner

jbeder commented May 10, 2017

Looks like it fails on clang? Maybe worth splitting these up into to PRs so that they don't get squashed, in any case.

@rleigh-codelibre
Copy link
Contributor Author

rleigh-codelibre commented May 10, 2017

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

@rleigh-codelibre
Copy link
Contributor Author

rleigh-codelibre commented May 10, 2017

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.

@rleigh-codelibre
Copy link
Contributor Author

rleigh-codelibre commented May 10, 2017

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.

@rleigh-codelibre rleigh-codelibre changed the title Upgrade and improve gmock/gtest integration Upgrade embedded version of gmock+gtest to 1.8.0 May 10, 2017
@keith-bennett-gbg
Copy link

Also seems to resolve #478

@rleigh-codelibre
Copy link
Contributor Author

For the clang with buggy libstdc++ issue, see also:

If you liked, I could look at using a more recent libstdc++ with travis?

@rleigh-codelibre
Copy link
Contributor Author

rleigh-codelibre commented Aug 24, 2017

@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.

Roger Leigh added 2 commits August 24, 2017 14:37
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.
@jbeder
Copy link
Owner

jbeder commented Aug 25, 2017

@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.

@rleigh-codelibre
Copy link
Contributor Author

@jbeder Hope the above issue and cross-references are OK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants