Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yangql
googletest
Commits
dff32aff
Commit
dff32aff
authored
Apr 17, 2018
by
Gennadiy Civil
Browse files
http://cl/193060888
parent
3f88bb18
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
55 additions
and
5 deletions
+55
-5
googlemock/include/gmock/gmock-matchers.h
googlemock/include/gmock/gmock-matchers.h
+13
-5
googlemock/test/gmock-matchers_test.cc
googlemock/test/gmock-matchers_test.cc
+42
-0
No files found.
googlemock/include/gmock/gmock-matchers.h
View file @
dff32aff
...
...
@@ -5202,19 +5202,27 @@ std::string DescribeMatcher(const M& matcher, bool negation = false) {
// Define variadic matcher versions. They are overloaded in
// gmock-generated-matchers.h for the cases supported by pre C++11 compilers.
template
<
typename
...
Args
>
inline
internal
::
AllOfMatcher
<
Args
...
>
AllOf
(
const
Args
&
...
matchers
)
{
internal
::
AllOfMatcher
<
Args
...
>
AllOf
(
const
Args
&
...
matchers
)
{
return
internal
::
AllOfMatcher
<
Args
...
>
(
matchers
...);
}
template
<
typename
...
Args
>
inline
internal
::
AnyOfMatcher
<
Args
...
>
AnyOf
(
const
Args
&
...
matchers
)
{
internal
::
AnyOfMatcher
<
Args
...
>
AnyOf
(
const
Args
&
...
matchers
)
{
return
internal
::
AnyOfMatcher
<
Args
...
>
(
matchers
...);
}
template
<
typename
...
Args
>
inline
internal
::
UnorderedElementsAreMatcher
<
Args
...
>
UnorderedElementsAreMatcher
(
const
Args
&
...
matchers
)
{
return
internal
::
UnorderedElementsAreMatcher
<
Args
...
>
(
matchers
...);
internal
::
ElementsAreMatcher
<
tuple
<
typename
std
::
decay
<
Args
>::
type
...
>>
ElementsAre
(
const
Args
&
...
matchers
)
{
return
internal
::
ElementsAreMatcher
<
tuple
<
typename
std
::
decay
<
Args
>::
type
...
>>
(
make_tuple
(
matchers
...));
}
template
<
typename
...
Args
>
internal
::
UnorderedElementsAreMatcher
<
tuple
<
typename
std
::
decay
<
Args
>::
type
...
>>
UnorderedElementsAre
(
const
Args
&
...
matchers
)
{
return
internal
::
UnorderedElementsAreMatcher
<
tuple
<
typename
std
::
decay
<
Args
>::
type
...
>>
(
make_tuple
(
matchers
...));
}
#endif // GTEST_LANG_CXX11
...
...
googlemock/test/gmock-matchers_test.cc
View file @
dff32aff
...
...
@@ -2742,6 +2742,48 @@ TEST(AnyOfTest, VariadicMatchesWhenAnyMatches) {
41
,
42
,
43
,
44
,
45
,
46
,
47
,
48
,
49
,
50
));
}
// Tests the variadic version of the ElementsAreMatcher
TEST
(
ElementsAreTest
,
HugeMatcher
)
{
vector
<
int
>
test_vector
;
test_vector
.
push_back
(
1
);
test_vector
.
push_back
(
2
);
test_vector
.
push_back
(
3
);
test_vector
.
push_back
(
4
);
test_vector
.
push_back
(
5
);
test_vector
.
push_back
(
6
);
test_vector
.
push_back
(
7
);
test_vector
.
push_back
(
8
);
test_vector
.
push_back
(
9
);
test_vector
.
push_back
(
10
);
test_vector
.
push_back
(
11
);
test_vector
.
push_back
(
12
);
EXPECT_THAT
(
test_vector
,
ElementsAre
(
Eq
(
1
),
Eq
(
2
),
Lt
(
13
),
Eq
(
4
),
Eq
(
5
),
Eq
(
6
),
Eq
(
7
),
Eq
(
8
),
Eq
(
9
),
Eq
(
10
),
Gt
(
1
),
Eq
(
12
)
));
}
// Tests the variadic version of the UnorderedElementsAreMatcher
TEST
(
ElementsAreTest
,
HugeMatcherUnordered
)
{
vector
<
int
>
test_vector
;
test_vector
.
push_back
(
1
);
test_vector
.
push_back
(
2
);
test_vector
.
push_back
(
3
);
test_vector
.
push_back
(
4
);
test_vector
.
push_back
(
5
);
test_vector
.
push_back
(
6
);
test_vector
.
push_back
(
7
);
test_vector
.
push_back
(
8
);
test_vector
.
push_back
(
9
);
test_vector
.
push_back
(
10
);
test_vector
.
push_back
(
11
);
test_vector
.
push_back
(
12
);
EXPECT_THAT
(
test_vector
,
UnorderedElementsAre
(
Eq
(
1
),
Eq
(
2
),
Eq
(
3
),
Eq
(
4
),
Eq
(
5
),
Eq
(
6
),
Eq
(
7
),
Eq
(
8
),
Eq
(
9
),
Eq
(
10
),
Eq
(
11
),
Ne
(
122
)
));
}
#endif // GTEST_LANG_CXX11
// Tests that AnyOf(m1, ..., mn) describes itself properly.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment