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

gmock_matchers_test.cc doesn’t build with RTTI off #610

Closed
markmentovai opened this Issue Oct 12, 2015 · 2 comments

Comments

Projects
None yet
2 participants
@markmentovai
Copy link
Contributor

markmentovai commented Oct 12, 2015

When RTTI is disabled (-fno-rtti) gmock_matchers_test.cc fails to build, even though GTEST_HAS_RTTI is 0:

In file included from …/googlemock/test/gmock-matchers_test.cc:36:
…/googlemock/include/gmock/gmock-matchers.h:2153:13: error: cannot use dynamic_cast with -fno-rtti
To to = dynamic_cast(from);
^
[…long snip…]
…/googlemock/test/gmock-matchers_test.cc:3188:3: note: in instantiation of function template specialization 'testing::internal::PredicateFormatterFromMatcher<testing::PolymorphicMatcher<testing::internal::WhenDynamicCastToMatcher<testing::gmock_matchers_test::Derived *> > >::operator()<testing::gmock_matchers_test::Base >' requested here
EXPECT_THAT(as_base_ptr, WhenDynamicCastTo<Derived
>(Not(IsNull())));
^

This is repeated several more times for other uses of WhenDynamicCastTo<>.

I’m in favor of leaving WhenDynamicCastTo<> broken when RTTI is off, or disabling it entirely by wrapping it in #if GTEST_HAS_RTTI in gmock-matchers.h. In either case, all of the WhenDynamicCastToTest tests in gmock-matchers_test.cc should be disabled when GTEST_HAS_RTTI is 0.

Since WhenDynamicCastToTest.Describe already considers GTEST_HAS_RTTI, albeit in a way that can’t possibly work or pass, I’m not sure what was intended here.

@markmentovai

This comment has been minimized.

Copy link
Contributor

markmentovai commented Oct 12, 2015

If it’s desirable to disable the WhenDynamicCastToTest tests in gmock-matchers_test.cc, that can be achieved with #612.

@BillyDonahue

This comment has been minimized.

Copy link
Contributor

BillyDonahue commented Nov 10, 2015

done. thanks!

dneto0 added a commit to dneto0/SPIRV-Tools that referenced this issue Dec 1, 2015

Add -frtti for tests that use mocking
The tests now use mocked methods.  This requires runtime type
information for those test classes.
google/googletest#610

This has been fixed recently upstream in googletest.  Until we pick
up that fix, add -frtti for the the test executable only.

dneto0 added a commit to dneto0/shaderc that referenced this issue Dec 1, 2015

Use googletest master branch.
We recommend something newer than googletest 1.7.0 because
we want to pick up a fix for an RTTI issue related to mocking
google/googletest#610
That's fixed on the googletest master branch after 2015-11-10.

dneto0 added a commit to dneto0/shaderc that referenced this issue Dec 1, 2015

Use googletest master branch.
We recommend something newer than googletest 1.7.0 because
we want to pick up a fix for an RTTI issue related to mocking
google/googletest#610
That's fixed on the googletest master branch after 2015-11-10.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment