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:
|
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:
|
Changes for 1.6.0:
|
||||||
|
|
||||||
|
@ -1613,10 +1613,12 @@ class PredicateFormatterFromMatcher {
|
|||||||
// know which type to instantiate it to until we actually see the
|
// know which type to instantiate it to until we actually see the
|
||||||
// type of x here.
|
// 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<const T&>(matcher_), as the latter won't compile when
|
||||||
// matcher_ has type Matcher<T> (e.g. An<int>()).
|
// 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;
|
StringMatchResultListener listener;
|
||||||
if (MatchPrintAndExplain(x, matcher, &listener))
|
if (MatchPrintAndExplain(x, matcher, &listener))
|
||||||
return AssertionSuccess();
|
return AssertionSuccess();
|
||||||
|
@ -721,6 +721,15 @@ TEST(ATest, MatchesAnyValue) {
|
|||||||
EXPECT_TRUE(m2.Matches(b));
|
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.
|
// Tests that A<T>() describes itself properly.
|
||||||
TEST(ATest, CanDescribeSelf) {
|
TEST(ATest, CanDescribeSelf) {
|
||||||
EXPECT_EQ("is anything", Describe(A<bool>()));
|
EXPECT_EQ("is anything", Describe(A<bool>()));
|
||||||
|
Loading…
Reference in New Issue
Block a user