aboutsummaryrefslogtreecommitdiffstats
path: root/googlemock/test
diff options
context:
space:
mode:
Diffstat (limited to 'googlemock/test')
-rw-r--r--googlemock/test/gmock-cardinalities_test.cc6
-rw-r--r--googlemock/test/gmock-internal-utils_test.cc114
-rw-r--r--googlemock/test/gmock-matchers_test.cc23
-rw-r--r--googlemock/test/gmock-more-actions_test.cc1
-rw-r--r--googlemock/test/gmock-spec-builders_test.cc6
5 files changed, 77 insertions, 73 deletions
diff --git a/googlemock/test/gmock-cardinalities_test.cc b/googlemock/test/gmock-cardinalities_test.cc
index 66042d40..ca97cae2 100644
--- a/googlemock/test/gmock-cardinalities_test.cc
+++ b/googlemock/test/gmock-cardinalities_test.cc
@@ -395,12 +395,14 @@ TEST(ExactlyTest, HasCorrectBounds) {
class EvenCardinality : public CardinalityInterface {
public:
- // Returns true if call_count calls will satisfy this cardinality.
+ // Returns true if and only if call_count calls will satisfy this
+ // cardinality.
bool IsSatisfiedByCallCount(int call_count) const override {
return (call_count % 2 == 0);
}
- // Returns true if call_count calls will saturate this cardinality.
+ // Returns true if and only if call_count calls will saturate this
+ // cardinality.
bool IsSaturatedByCallCount(int /* call_count */) const override {
return false;
}
diff --git a/googlemock/test/gmock-internal-utils_test.cc b/googlemock/test/gmock-internal-utils_test.cc
index 67b7077f..19ba6fe5 100644
--- a/googlemock/test/gmock-internal-utils_test.cc
+++ b/googlemock/test/gmock-internal-utils_test.cc
@@ -40,7 +40,6 @@
#include <memory>
#include <sstream>
#include <string>
-#include <type_traits>
#include <vector>
#include "gmock/gmock.h"
@@ -125,15 +124,17 @@ TEST(ConvertIdentifierNameToWordsTest, WorksWhenNameIsMixture) {
}
TEST(PointeeOfTest, WorksForSmartPointers) {
- CompileAssertTypesEqual<int, PointeeOf<std::unique_ptr<int> >::type>();
- CompileAssertTypesEqual<std::string,
- PointeeOf<std::shared_ptr<std::string> >::type>();
+ EXPECT_TRUE(
+ (std::is_same<int, PointeeOf<std::unique_ptr<int>>::type>::value));
+ EXPECT_TRUE(
+ (std::is_same<std::string,
+ PointeeOf<std::shared_ptr<std::string>>::type>::value));
}
TEST(PointeeOfTest, WorksForRawPointers) {
- CompileAssertTypesEqual<int, PointeeOf<int*>::type>();
- CompileAssertTypesEqual<const char, PointeeOf<const char*>::type>();
- CompileAssertTypesEqual<void, PointeeOf<void*>::type>();
+ EXPECT_TRUE((std::is_same<int, PointeeOf<int*>::type>::value));
+ EXPECT_TRUE((std::is_same<const char, PointeeOf<const char*>::type>::value));
+ EXPECT_TRUE((std::is_void<PointeeOf<void*>::type>::value));
}
TEST(GetRawPointerTest, WorksForSmartPointers) {
@@ -506,18 +507,6 @@ TEST(LogTest, OnlyWarningsArePrintedWhenVerbosityIsInvalid) {
TestLogWithSeverity("invalid", kWarning, true);
}
-#endif // GTEST_HAS_STREAM_REDIRECTION
-
-TEST(TypeTraitsTest, remove_reference) {
- EXPECT_TRUE((std::is_same<char, remove_reference<char&>::type>::value));
- EXPECT_TRUE(
- (std::is_same<const int, remove_reference<const int&>::type>::value));
- EXPECT_TRUE((std::is_same<int, remove_reference<int>::type>::value));
- EXPECT_TRUE((std::is_same<double*, remove_reference<double*>::type>::value));
-}
-
-#if GTEST_HAS_STREAM_REDIRECTION
-
// Verifies that Log() behaves correctly for the given verbosity level
// and log severity.
std::string GrabOutput(void(*logger)(), const char* verbosity) {
@@ -676,63 +665,66 @@ TEST(StlContainerViewTest, WorksForDynamicNativeArray) {
TEST(FunctionTest, Nullary) {
typedef Function<int()> F; // NOLINT
EXPECT_EQ(0u, F::ArgumentCount);
- CompileAssertTypesEqual<int, F::Result>();
- CompileAssertTypesEqual<std::tuple<>, F::ArgumentTuple>();
- CompileAssertTypesEqual<std::tuple<>, F::ArgumentMatcherTuple>();
- CompileAssertTypesEqual<void(), F::MakeResultVoid>();
- CompileAssertTypesEqual<IgnoredValue(), F::MakeResultIgnoredValue>();
+ EXPECT_TRUE((std::is_same<int, F::Result>::value));
+ EXPECT_TRUE((std::is_same<std::tuple<>, F::ArgumentTuple>::value));
+ EXPECT_TRUE((std::is_same<std::tuple<>, F::ArgumentMatcherTuple>::value));
+ EXPECT_TRUE((std::is_same<void(), F::MakeResultVoid>::value));
+ EXPECT_TRUE((std::is_same<IgnoredValue(), F::MakeResultIgnoredValue>::value));
}
TEST(FunctionTest, Unary) {
typedef Function<int(bool)> F; // NOLINT
EXPECT_EQ(1u, F::ArgumentCount);
- CompileAssertTypesEqual<int, F::Result>();
- CompileAssertTypesEqual<bool, F::Arg<0>::type>();
- CompileAssertTypesEqual<std::tuple<bool>, F::ArgumentTuple>();
- CompileAssertTypesEqual<std::tuple<Matcher<bool> >,
- F::ArgumentMatcherTuple>();
- CompileAssertTypesEqual<void(bool), F::MakeResultVoid>(); // NOLINT
- CompileAssertTypesEqual<IgnoredValue(bool), // NOLINT
- F::MakeResultIgnoredValue>();
+ EXPECT_TRUE((std::is_same<int, F::Result>::value));
+ EXPECT_TRUE((std::is_same<bool, F::Arg<0>::type>::value));
+ EXPECT_TRUE((std::is_same<std::tuple<bool>, F::ArgumentTuple>::value));
+ EXPECT_TRUE((
+ std::is_same<std::tuple<Matcher<bool>>, F::ArgumentMatcherTuple>::value));
+ EXPECT_TRUE((std::is_same<void(bool), F::MakeResultVoid>::value)); // NOLINT
+ EXPECT_TRUE((std::is_same<IgnoredValue(bool), // NOLINT
+ F::MakeResultIgnoredValue>::value));
}
TEST(FunctionTest, Binary) {
typedef Function<int(bool, const long&)> F; // NOLINT
EXPECT_EQ(2u, F::ArgumentCount);
- CompileAssertTypesEqual<int, F::Result>();
- CompileAssertTypesEqual<bool, F::Arg<0>::type>();
- CompileAssertTypesEqual<const long&, F::Arg<1>::type>(); // NOLINT
- CompileAssertTypesEqual<std::tuple<bool, const long&>, // NOLINT
- F::ArgumentTuple>();
- CompileAssertTypesEqual<
- std::tuple<Matcher<bool>, Matcher<const long&> >, // NOLINT
- F::ArgumentMatcherTuple>();
- CompileAssertTypesEqual<void(bool, const long&), F::MakeResultVoid>(); // NOLINT
- CompileAssertTypesEqual<IgnoredValue(bool, const long&), // NOLINT
- F::MakeResultIgnoredValue>();
+ EXPECT_TRUE((std::is_same<int, F::Result>::value));
+ EXPECT_TRUE((std::is_same<bool, F::Arg<0>::type>::value));
+ EXPECT_TRUE((std::is_same<const long&, F::Arg<1>::type>::value)); // NOLINT
+ EXPECT_TRUE((std::is_same<std::tuple<bool, const long&>, // NOLINT
+ F::ArgumentTuple>::value));
+ EXPECT_TRUE(
+ (std::is_same<std::tuple<Matcher<bool>, Matcher<const long&>>, // NOLINT
+ F::ArgumentMatcherTuple>::value));
+ EXPECT_TRUE((std::is_same<void(bool, const long&), // NOLINT
+ F::MakeResultVoid>::value));
+ EXPECT_TRUE((std::is_same<IgnoredValue(bool, const long&), // NOLINT
+ F::MakeResultIgnoredValue>::value));
}
TEST(FunctionTest, LongArgumentList) {
typedef Function<char(bool, int, char*, int&, const long&)> F; // NOLINT
EXPECT_EQ(5u, F::ArgumentCount);
- CompileAssertTypesEqual<char, F::Result>();
- CompileAssertTypesEqual<bool, F::Arg<0>::type>();
- CompileAssertTypesEqual<int, F::Arg<1>::type>();
- CompileAssertTypesEqual<char*, F::Arg<2>::type>();
- CompileAssertTypesEqual<int&, F::Arg<3>::type>();
- CompileAssertTypesEqual<const long&, F::Arg<4>::type>(); // NOLINT
- CompileAssertTypesEqual<
- std::tuple<bool, int, char*, int&, const long&>, // NOLINT
- F::ArgumentTuple>();
- CompileAssertTypesEqual<
- std::tuple<Matcher<bool>, Matcher<int>, Matcher<char*>, Matcher<int&>,
- Matcher<const long&> >, // NOLINT
- F::ArgumentMatcherTuple>();
- CompileAssertTypesEqual<void(bool, int, char*, int&, const long&), // NOLINT
- F::MakeResultVoid>();
- CompileAssertTypesEqual<
- IgnoredValue(bool, int, char*, int&, const long&), // NOLINT
- F::MakeResultIgnoredValue>();
+ EXPECT_TRUE((std::is_same<char, F::Result>::value));
+ EXPECT_TRUE((std::is_same<bool, F::Arg<0>::type>::value));
+ EXPECT_TRUE((std::is_same<int, F::Arg<1>::type>::value));
+ EXPECT_TRUE((std::is_same<char*, F::Arg<2>::type>::value));
+ EXPECT_TRUE((std::is_same<int&, F::Arg<3>::type>::value));
+ EXPECT_TRUE((std::is_same<const long&, F::Arg<4>::type>::value)); // NOLINT
+ EXPECT_TRUE(
+ (std::is_same<std::tuple<bool, int, char*, int&, const long&>, // NOLINT
+ F::ArgumentTuple>::value));
+ EXPECT_TRUE(
+ (std::is_same<
+ std::tuple<Matcher<bool>, Matcher<int>, Matcher<char*>, Matcher<int&>,
+ Matcher<const long&>>, // NOLINT
+ F::ArgumentMatcherTuple>::value));
+ EXPECT_TRUE(
+ (std::is_same<void(bool, int, char*, int&, const long&), // NOLINT
+ F::MakeResultVoid>::value));
+ EXPECT_TRUE((
+ std::is_same<IgnoredValue(bool, int, char*, int&, const long&), // NOLINT
+ F::MakeResultIgnoredValue>::value));
}
} // namespace
diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc
index a61d040b..03735267 100644
--- a/googlemock/test/gmock-matchers_test.cc
+++ b/googlemock/test/gmock-matchers_test.cc
@@ -956,10 +956,9 @@ TEST(TypedEqTest, CanDescribeSelf) {
// Tests that TypedEq<T>(v) has type Matcher<T>.
-// Type<T>::IsTypeOf(v) compiles if the type of value v is T, where T
-// is a "bare" type (i.e. not in the form of const U or U&). If v's
-// type is not T, the compiler will generate a message about
-// "undefined reference".
+// Type<T>::IsTypeOf(v) compiles if and only if the type of value v is T, where
+// T is a "bare" type (i.e. not in the form of const U or U&). If v's type is
+// not T, the compiler will generate a message about "undefined reference".
template <typename T>
struct Type {
static bool IsTypeOf(const T& /* v */) { return true; }
@@ -2640,8 +2639,8 @@ class IsGreaterThan {
// For testing Truly().
const int foo = 0;
-// This predicate returns true if the argument references foo and has
-// a zero value.
+// This predicate returns true if and only if the argument references foo and
+// has a zero value.
bool ReferencesFooAndIsZero(const int& n) {
return (&n == &foo) && (n == 0);
}
@@ -3594,7 +3593,7 @@ class Uncopyable {
GTEST_DISALLOW_COPY_AND_ASSIGN_(Uncopyable);
};
-// Returns true if x.value() is positive.
+// Returns true if and only if x.value() is positive.
bool ValueIsPositive(const Uncopyable& x) { return x.value() > 0; }
MATCHER_P(UncopyableIs, inner_matcher, "") {
@@ -4319,6 +4318,16 @@ TEST(ResultOfTest, WorksForLambdas) {
EXPECT_FALSE(matcher.Matches(1));
}
+TEST(ResultOfTest, WorksForNonCopyableArguments) {
+ Matcher<std::unique_ptr<int>> matcher = ResultOf(
+ [](const std::unique_ptr<int>& str_len) {
+ return std::string(static_cast<size_t>(*str_len), 'x');
+ },
+ "xxx");
+ EXPECT_TRUE(matcher.Matches(std::unique_ptr<int>(new int(3))));
+ EXPECT_FALSE(matcher.Matches(std::unique_ptr<int>(new int(1))));
+}
+
const int* ReferencingFunction(const int& n) { return &n; }
struct ReferencingFunctor {
diff --git a/googlemock/test/gmock-more-actions_test.cc b/googlemock/test/gmock-more-actions_test.cc
index b4e0fc30..97ec5cf0 100644
--- a/googlemock/test/gmock-more-actions_test.cc
+++ b/googlemock/test/gmock-more-actions_test.cc
@@ -57,7 +57,6 @@ using testing::ReturnPointee;
using testing::SaveArg;
using testing::SaveArgPointee;
using testing::SetArgReferee;
-using testing::StaticAssertTypeEq;
using testing::Unused;
using testing::WithArg;
using testing::WithoutArgs;
diff --git a/googlemock/test/gmock-spec-builders_test.cc b/googlemock/test/gmock-spec-builders_test.cc
index 95b4b8b7..7bf5a8ad 100644
--- a/googlemock/test/gmock-spec-builders_test.cc
+++ b/googlemock/test/gmock-spec-builders_test.cc
@@ -1952,12 +1952,14 @@ TEST(DeletingMockEarlyTest, Failure2) {
class EvenNumberCardinality : public CardinalityInterface {
public:
- // Returns true if call_count calls will satisfy this cardinality.
+ // Returns true if and only if call_count calls will satisfy this
+ // cardinality.
bool IsSatisfiedByCallCount(int call_count) const override {
return call_count % 2 == 0;
}
- // Returns true if call_count calls will saturate this cardinality.
+ // Returns true if and only if call_count calls will saturate this
+ // cardinality.
bool IsSaturatedByCallCount(int /* call_count */) const override {
return false;
}