Makes EXPECT_THAT typesafe; updates CHANGES for 1.7.0; pulls in gtest r653
This commit is contained in:
parent
061f1d4d16
commit
f4274520da
22
CHANGES
22
CHANGES
@ -1,6 +1,26 @@
|
||||
Changes for 1.7.0:
|
||||
|
||||
TO BE WRITTEN.
|
||||
* All new improvements in Google Test 1.7.0.
|
||||
* New feature: matchers WhenSorted(), WhenSortedBy(), IsEmpty(), and
|
||||
SizeIs().
|
||||
* Improvement: Google Mock can now be built as a DLL.
|
||||
* Improvement: when exceptions are enabled, a mock method with no
|
||||
default action now throws instead crashing the test.
|
||||
* Improvement: function return types used in MOCK_METHOD*() macros can
|
||||
now contain unprotected commas.
|
||||
* Improvement (potentially breaking): EXPECT_THAT() and ASSERT_THAT()
|
||||
are now more strict in ensuring that the value type and the matcher
|
||||
type are compatible, catching potential bugs in tests.
|
||||
* Improvement: Pointee() now works on an optional<T>.
|
||||
* Improvement: the ElementsAreArray() matcher can now take a vector or
|
||||
iterator range as input, and makes a copy of its input elements
|
||||
before the conversion to a Matcher.
|
||||
* Bug fix: mock object destruction triggerred by another mock object's
|
||||
destruction no longer hangs.
|
||||
* Improvement: Google Mock Doctor works better with newer Clang and
|
||||
GCC now.
|
||||
* Compatibility fixes.
|
||||
* Bug/warning fixes.
|
||||
|
||||
Changes for 1.6.0:
|
||||
|
||||
|
@ -1613,10 +1613,12 @@ class PredicateFormatterFromMatcher {
|
||||
// know which type to instantiate it to until we actually see the
|
||||
// type of x here.
|
||||
//
|
||||
// We write MatcherCast<const T&>(matcher_) instead of
|
||||
// We write SafeMatcherCast<const T&>(matcher_) instead of
|
||||
// Matcher<const T&>(matcher_), as the latter won't compile when
|
||||
// matcher_ has type Matcher<T> (e.g. An<int>()).
|
||||
const Matcher<const T&> matcher = MatcherCast<const T&>(matcher_);
|
||||
// We don't write MatcherCast<const T&> either, as that allows
|
||||
// potentially unsafe downcasting of the matcher argument.
|
||||
const Matcher<const T&> matcher = SafeMatcherCast<const T&>(matcher_);
|
||||
StringMatchResultListener listener;
|
||||
if (MatchPrintAndExplain(x, matcher, &listener))
|
||||
return AssertionSuccess();
|
||||
|
@ -721,6 +721,15 @@ TEST(ATest, MatchesAnyValue) {
|
||||
EXPECT_TRUE(m2.Matches(b));
|
||||
}
|
||||
|
||||
TEST(ATest, WorksForDerivedClass) {
|
||||
Base base;
|
||||
Derived derived;
|
||||
EXPECT_THAT(&base, A<Base*>());
|
||||
// This shouldn't compile: EXPECT_THAT(&base, A<Derived*>());
|
||||
EXPECT_THAT(&derived, A<Base*>());
|
||||
EXPECT_THAT(&derived, A<Derived*>());
|
||||
}
|
||||
|
||||
// Tests that A<T>() describes itself properly.
|
||||
TEST(ATest, CanDescribeSelf) {
|
||||
EXPECT_EQ("is anything", Describe(A<bool>()));
|
||||
|
Loading…
Reference in New Issue
Block a user