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
ec49fbca
Commit
ec49fbca
authored
Aug 13, 2019
by
Krystian Kuzniarek
Browse files
remove custom implementations of std::is_same
parent
90a443f9
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
33 additions
and
56 deletions
+33
-56
googlemock/include/gmock/gmock-spec-builders.h
googlemock/include/gmock/gmock-spec-builders.h
+3
-3
googlemock/include/gmock/internal/gmock-internal-utils.h
googlemock/include/gmock/internal/gmock-internal-utils.h
+0
-4
googlemock/test/gmock-internal-utils_test.cc
googlemock/test/gmock-internal-utils_test.cc
+6
-12
googlemock/test/gmock-matchers_test.cc
googlemock/test/gmock-matchers_test.cc
+1
-1
googletest/include/gtest/gtest-matchers.h
googletest/include/gtest/gtest-matchers.h
+7
-5
googletest/include/gtest/internal/gtest-internal.h
googletest/include/gtest/internal/gtest-internal.h
+3
-3
googletest/include/gtest/internal/gtest-port.h
googletest/include/gtest/internal/gtest-port.h
+0
-16
googletest/test/googletest-output-test_.cc
googletest/test/googletest-output-test_.cc
+4
-4
googletest/test/gtest-typed-test_test.cc
googletest/test/gtest-typed-test_test.cc
+9
-8
No files found.
googlemock/include/gmock/gmock-spec-builders.h
View file @
ec49fbca
...
@@ -67,6 +67,7 @@
...
@@ -67,6 +67,7 @@
#include <set>
#include <set>
#include <sstream>
#include <sstream>
#include <string>
#include <string>
#include <type_traits>
#include <utility>
#include <utility>
#include <vector>
#include <vector>
#include "gmock/gmock-actions.h"
#include "gmock/gmock-actions.h"
...
@@ -1653,9 +1654,8 @@ class FunctionMocker<R(Args...)> final : public UntypedFunctionMockerBase {
...
@@ -1653,9 +1654,8 @@ class FunctionMocker<R(Args...)> final : public UntypedFunctionMockerBase {
const
OnCallSpec
<
F
>*
const
spec
=
FindOnCallSpec
(
args
);
const
OnCallSpec
<
F
>*
const
spec
=
FindOnCallSpec
(
args
);
if
(
spec
==
nullptr
)
{
if
(
spec
==
nullptr
)
{
*
os
<<
(
internal
::
type_equals
<
Result
,
void
>::
value
?
*
os
<<
(
std
::
is_void
<
Result
>::
value
?
"returning directly.
\n
"
"returning directly.
\n
"
:
:
"returning default value.
\n
"
);
"returning default value.
\n
"
);
}
else
{
}
else
{
*
os
<<
"taking default action specified at:
\n
"
*
os
<<
"taking default action specified at:
\n
"
<<
FormatFileLocation
(
spec
->
file
(),
spec
->
line
())
<<
"
\n
"
;
<<
FormatFileLocation
(
spec
->
file
(),
spec
->
line
())
<<
"
\n
"
;
...
...
googlemock/include/gmock/internal/gmock-internal-utils.h
View file @
ec49fbca
...
@@ -359,10 +359,6 @@ GTEST_API_ WithoutMatchers GetWithoutMatchers();
...
@@ -359,10 +359,6 @@ GTEST_API_ WithoutMatchers GetWithoutMatchers();
template
<
typename
T
>
struct
is_reference
:
public
false_type
{};
template
<
typename
T
>
struct
is_reference
:
public
false_type
{};
template
<
typename
T
>
struct
is_reference
<
T
&>
:
public
true_type
{};
template
<
typename
T
>
struct
is_reference
<
T
&>
:
public
true_type
{};
// type_equals<T1, T2>::value is non-zero if T1 and T2 are the same type.
template
<
typename
T1
,
typename
T2
>
struct
type_equals
:
public
false_type
{};
template
<
typename
T
>
struct
type_equals
<
T
,
T
>
:
public
true_type
{};
// remove_reference<T>::type removes the reference from type T, if any.
// remove_reference<T>::type removes the reference from type T, if any.
template
<
typename
T
>
struct
remove_reference
{
typedef
T
type
;
};
// NOLINT
template
<
typename
T
>
struct
remove_reference
{
typedef
T
type
;
};
// NOLINT
template
<
typename
T
>
struct
remove_reference
<
T
&>
{
typedef
T
type
;
};
// NOLINT
template
<
typename
T
>
struct
remove_reference
<
T
&>
{
typedef
T
type
;
};
// NOLINT
...
...
googlemock/test/gmock-internal-utils_test.cc
View file @
ec49fbca
...
@@ -38,6 +38,7 @@
...
@@ -38,6 +38,7 @@
#include <memory>
#include <memory>
#include <string>
#include <string>
#include <sstream>
#include <sstream>
#include <type_traits>
#include <vector>
#include <vector>
#include "gmock/gmock.h"
#include "gmock/gmock.h"
#include "gmock/internal/gmock-port.h"
#include "gmock/internal/gmock-port.h"
...
@@ -518,19 +519,12 @@ TEST(TypeTraitsTest, is_reference) {
...
@@ -518,19 +519,12 @@ TEST(TypeTraitsTest, is_reference) {
EXPECT_TRUE
(
is_reference
<
const
int
&>::
value
);
EXPECT_TRUE
(
is_reference
<
const
int
&>::
value
);
}
}
TEST
(
TypeTraitsTest
,
type_equals
)
{
EXPECT_FALSE
((
type_equals
<
int
,
const
int
>::
value
));
EXPECT_FALSE
((
type_equals
<
int
,
int
&>::
value
));
EXPECT_FALSE
((
type_equals
<
int
,
double
>::
value
));
EXPECT_TRUE
((
type_equals
<
char
,
char
>::
value
));
}
TEST
(
TypeTraitsTest
,
remove_reference
)
{
TEST
(
TypeTraitsTest
,
remove_reference
)
{
EXPECT_TRUE
((
type_equals
<
char
,
remove_reference
<
char
&>::
type
>::
value
));
EXPECT_TRUE
((
std
::
is_same
<
char
,
remove_reference
<
char
&>::
type
>::
value
));
EXPECT_TRUE
(
(
type_equals
<
const
int
,
EXPECT_TRUE
(
remove_reference
<
const
int
&>::
type
>::
value
));
(
std
::
is_same
<
const
int
,
remove_reference
<
const
int
&>::
type
>::
value
));
EXPECT_TRUE
((
type_equals
<
int
,
remove_reference
<
int
>::
type
>::
value
));
EXPECT_TRUE
((
std
::
is_same
<
int
,
remove_reference
<
int
>::
type
>::
value
));
EXPECT_TRUE
((
type_equals
<
double
*
,
remove_reference
<
double
*>::
type
>::
value
));
EXPECT_TRUE
((
std
::
is_same
<
double
*
,
remove_reference
<
double
*>::
type
>::
value
));
}
}
#if GTEST_HAS_STREAM_REDIRECTION
#if GTEST_HAS_STREAM_REDIRECTION
...
...
googlemock/test/gmock-matchers_test.cc
View file @
ec49fbca
...
@@ -6434,7 +6434,7 @@ class SampleVariantIntString {
...
@@ -6434,7 +6434,7 @@ class SampleVariantIntString {
template
<
typename
T
>
template
<
typename
T
>
friend
bool
holds_alternative
(
const
SampleVariantIntString
&
value
)
{
friend
bool
holds_alternative
(
const
SampleVariantIntString
&
value
)
{
return
value
.
has_int_
==
internal
::
IsS
ame
<
T
,
int
>::
value
;
return
value
.
has_int_
==
std
::
is_s
ame
<
T
,
int
>::
value
;
}
}
template
<
typename
T
>
template
<
typename
T
>
...
...
googletest/include/gtest/gtest-matchers.h
View file @
ec49fbca
...
@@ -42,6 +42,7 @@
...
@@ -42,6 +42,7 @@
#include <memory>
#include <memory>
#include <ostream>
#include <ostream>
#include <string>
#include <string>
#include <type_traits>
#include "gtest/gtest-printers.h"
#include "gtest/gtest-printers.h"
#include "gtest/internal/gtest-internal.h"
#include "gtest/internal/gtest-internal.h"
...
@@ -299,8 +300,8 @@ class MatcherBase {
...
@@ -299,8 +300,8 @@ class MatcherBase {
template
<
typename
U
>
template
<
typename
U
>
explicit
MatcherBase
(
explicit
MatcherBase
(
const
MatcherInterface
<
U
>*
impl
,
const
MatcherInterface
<
U
>*
impl
,
typename
internal
::
EnableIf
<
typename
internal
::
EnableIf
<
!
std
::
is_same
<
U
,
const
U
&>::
value
>::
type
*
=
!
internal
::
IsSame
<
U
,
const
U
&>::
value
>::
type
*
=
nullptr
)
nullptr
)
:
impl_
(
new
internal
::
MatcherInterfaceAdapter
<
U
>
(
impl
))
{}
:
impl_
(
new
internal
::
MatcherInterfaceAdapter
<
U
>
(
impl
))
{}
MatcherBase
(
const
MatcherBase
&
)
=
default
;
MatcherBase
(
const
MatcherBase
&
)
=
default
;
...
@@ -333,9 +334,10 @@ class Matcher : public internal::MatcherBase<T> {
...
@@ -333,9 +334,10 @@ class Matcher : public internal::MatcherBase<T> {
:
internal
::
MatcherBase
<
T
>
(
impl
)
{}
:
internal
::
MatcherBase
<
T
>
(
impl
)
{}
template
<
typename
U
>
template
<
typename
U
>
explicit
Matcher
(
const
MatcherInterface
<
U
>*
impl
,
explicit
Matcher
(
typename
internal
::
EnableIf
<
const
MatcherInterface
<
U
>*
impl
,
!
internal
::
IsSame
<
U
,
const
U
&>::
value
>::
type
*
=
nullptr
)
typename
internal
::
EnableIf
<!
std
::
is_same
<
U
,
const
U
&>::
value
>::
type
*
=
nullptr
)
:
internal
::
MatcherBase
<
T
>
(
impl
)
{}
:
internal
::
MatcherBase
<
T
>
(
impl
)
{}
// Implicit constructor here allows people to write
// Implicit constructor here allows people to write
...
...
googletest/include/gtest/internal/gtest-internal.h
View file @
ec49fbca
...
@@ -977,9 +977,9 @@ template <typename C>
...
@@ -977,9 +977,9 @@ template <typename C>
struct
IsRecursiveContainerImpl
<
C
,
true
>
{
struct
IsRecursiveContainerImpl
<
C
,
true
>
{
using
value_type
=
decltype
(
*
std
::
declval
<
typename
C
::
const_iterator
>
());
using
value_type
=
decltype
(
*
std
::
declval
<
typename
C
::
const_iterator
>
());
using
type
=
using
type
=
is_same
<
typename
std
::
remove_const
<
std
::
is_same
<
typename
std
::
remove_const
<
typename
std
::
remove_reference
<
value_type
>::
type
>::
type
,
typename
std
::
remove_reference
<
value_type
>::
type
>::
type
,
C
>
;
C
>
;
};
};
// IsRecursiveContainer<Type> is a unary compile-time predicate that
// IsRecursiveContainer<Type> is a unary compile-time predicate that
...
...
googletest/include/gtest/internal/gtest-port.h
View file @
ec49fbca
...
@@ -869,16 +869,6 @@ struct StaticAssertTypeEqHelper<T, T> {
...
@@ -869,16 +869,6 @@ struct StaticAssertTypeEqHelper<T, T> {
enum
{
value
=
true
};
enum
{
value
=
true
};
};
};
// Same as std::is_same<>.
template
<
typename
T
,
typename
U
>
struct
IsSame
{
enum
{
value
=
false
};
};
template
<
typename
T
>
struct
IsSame
<
T
,
T
>
{
enum
{
value
=
true
};
};
// Evaluates to the number of elements in 'array'.
// Evaluates to the number of elements in 'array'.
#define GTEST_ARRAY_SIZE_(array) (sizeof(array) / sizeof(array[0]))
#define GTEST_ARRAY_SIZE_(array) (sizeof(array) / sizeof(array[0]))
...
@@ -1931,12 +1921,6 @@ template <bool bool_value> const bool bool_constant<bool_value>::value;
...
@@ -1931,12 +1921,6 @@ template <bool bool_value> const bool bool_constant<bool_value>::value;
typedef
bool_constant
<
false
>
false_type
;
typedef
bool_constant
<
false
>
false_type
;
typedef
bool_constant
<
true
>
true_type
;
typedef
bool_constant
<
true
>
true_type
;
template
<
typename
T
,
typename
U
>
struct
is_same
:
public
false_type
{};
template
<
typename
T
>
struct
is_same
<
T
,
T
>
:
public
true_type
{};
template
<
typename
Iterator
>
template
<
typename
Iterator
>
struct
IteratorTraits
{
struct
IteratorTraits
{
typedef
typename
Iterator
::
value_type
value_type
;
typedef
typename
Iterator
::
value_type
value_type
;
...
...
googletest/test/googletest-output-test_.cc
View file @
ec49fbca
...
@@ -816,9 +816,9 @@ class TypedTestNames {
...
@@ -816,9 +816,9 @@ class TypedTestNames {
public:
public:
template
<
typename
T
>
template
<
typename
T
>
static
std
::
string
GetName
(
int
i
)
{
static
std
::
string
GetName
(
int
i
)
{
if
(
testing
::
internal
::
IsS
ame
<
T
,
char
>::
value
)
if
(
std
::
is_s
ame
<
T
,
char
>::
value
)
return
std
::
string
(
"char"
)
+
::
testing
::
PrintToString
(
i
);
return
std
::
string
(
"char"
)
+
::
testing
::
PrintToString
(
i
);
if
(
testing
::
internal
::
IsS
ame
<
T
,
int
>::
value
)
if
(
std
::
is_s
ame
<
T
,
int
>::
value
)
return
std
::
string
(
"int"
)
+
::
testing
::
PrintToString
(
i
);
return
std
::
string
(
"int"
)
+
::
testing
::
PrintToString
(
i
);
}
}
};
};
...
@@ -857,10 +857,10 @@ class TypedTestPNames {
...
@@ -857,10 +857,10 @@ class TypedTestPNames {
public:
public:
template
<
typename
T
>
template
<
typename
T
>
static
std
::
string
GetName
(
int
i
)
{
static
std
::
string
GetName
(
int
i
)
{
if
(
testing
::
internal
::
IsS
ame
<
T
,
unsigned
char
>::
value
)
{
if
(
std
::
is_s
ame
<
T
,
unsigned
char
>::
value
)
{
return
std
::
string
(
"unsignedChar"
)
+
::
testing
::
PrintToString
(
i
);
return
std
::
string
(
"unsignedChar"
)
+
::
testing
::
PrintToString
(
i
);
}
}
if
(
testing
::
internal
::
IsS
ame
<
T
,
unsigned
int
>::
value
)
{
if
(
std
::
is_s
ame
<
T
,
unsigned
int
>::
value
)
{
return
std
::
string
(
"unsignedInt"
)
+
::
testing
::
PrintToString
(
i
);
return
std
::
string
(
"unsignedInt"
)
+
::
testing
::
PrintToString
(
i
);
}
}
}
}
...
...
googletest/test/gtest-typed-test_test.cc
View file @
ec49fbca
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
#include "test/gtest-typed-test_test.h"
#include "test/gtest-typed-test_test.h"
#include <set>
#include <set>
#include <type_traits>
#include <vector>
#include <vector>
#include "gtest/gtest.h"
#include "gtest/gtest.h"
...
@@ -177,10 +178,10 @@ class TypedTestNames {
...
@@ -177,10 +178,10 @@ class TypedTestNames {
public:
public:
template
<
typename
T
>
template
<
typename
T
>
static
std
::
string
GetName
(
int
i
)
{
static
std
::
string
GetName
(
int
i
)
{
if
(
testing
::
internal
::
IsS
ame
<
T
,
char
>::
value
)
{
if
(
std
::
is_s
ame
<
T
,
char
>::
value
)
{
return
std
::
string
(
"char"
)
+
::
testing
::
PrintToString
(
i
);
return
std
::
string
(
"char"
)
+
::
testing
::
PrintToString
(
i
);
}
}
if
(
testing
::
internal
::
IsS
ame
<
T
,
int
>::
value
)
{
if
(
std
::
is_s
ame
<
T
,
int
>::
value
)
{
return
std
::
string
(
"int"
)
+
::
testing
::
PrintToString
(
i
);
return
std
::
string
(
"int"
)
+
::
testing
::
PrintToString
(
i
);
}
}
}
}
...
@@ -189,13 +190,13 @@ class TypedTestNames {
...
@@ -189,13 +190,13 @@ class TypedTestNames {
TYPED_TEST_SUITE
(
TypedTestWithNames
,
TwoTypes
,
TypedTestNames
);
TYPED_TEST_SUITE
(
TypedTestWithNames
,
TwoTypes
,
TypedTestNames
);
TYPED_TEST
(
TypedTestWithNames
,
TestSuiteName
)
{
TYPED_TEST
(
TypedTestWithNames
,
TestSuiteName
)
{
if
(
testing
::
internal
::
IsS
ame
<
TypeParam
,
char
>::
value
)
{
if
(
std
::
is_s
ame
<
TypeParam
,
char
>::
value
)
{
EXPECT_STREQ
(
::
testing
::
UnitTest
::
GetInstance
()
EXPECT_STREQ
(
::
testing
::
UnitTest
::
GetInstance
()
->
current_test_info
()
->
current_test_info
()
->
test_case_name
(),
->
test_case_name
(),
"TypedTestWithNames/char0"
);
"TypedTestWithNames/char0"
);
}
}
if
(
testing
::
internal
::
IsS
ame
<
TypeParam
,
int
>::
value
)
{
if
(
std
::
is_s
ame
<
TypeParam
,
int
>::
value
)
{
EXPECT_STREQ
(
::
testing
::
UnitTest
::
GetInstance
()
EXPECT_STREQ
(
::
testing
::
UnitTest
::
GetInstance
()
->
current_test_info
()
->
current_test_info
()
->
test_case_name
(),
->
test_case_name
(),
...
@@ -311,13 +312,13 @@ class TypeParametrizedTestWithNames : public Test {};
...
@@ -311,13 +312,13 @@ class TypeParametrizedTestWithNames : public Test {};
TYPED_TEST_SUITE_P
(
TypeParametrizedTestWithNames
);
TYPED_TEST_SUITE_P
(
TypeParametrizedTestWithNames
);
TYPED_TEST_P
(
TypeParametrizedTestWithNames
,
TestSuiteName
)
{
TYPED_TEST_P
(
TypeParametrizedTestWithNames
,
TestSuiteName
)
{
if
(
testing
::
internal
::
IsS
ame
<
TypeParam
,
char
>::
value
)
{
if
(
std
::
is_s
ame
<
TypeParam
,
char
>::
value
)
{
EXPECT_STREQ
(
::
testing
::
UnitTest
::
GetInstance
()
EXPECT_STREQ
(
::
testing
::
UnitTest
::
GetInstance
()
->
current_test_info
()
->
current_test_info
()
->
test_case_name
(),
->
test_case_name
(),
"CustomName/TypeParametrizedTestWithNames/parChar0"
);
"CustomName/TypeParametrizedTestWithNames/parChar0"
);
}
}
if
(
testing
::
internal
::
IsS
ame
<
TypeParam
,
int
>::
value
)
{
if
(
std
::
is_s
ame
<
TypeParam
,
int
>::
value
)
{
EXPECT_STREQ
(
::
testing
::
UnitTest
::
GetInstance
()
EXPECT_STREQ
(
::
testing
::
UnitTest
::
GetInstance
()
->
current_test_info
()
->
current_test_info
()
->
test_case_name
(),
->
test_case_name
(),
...
@@ -331,10 +332,10 @@ class TypeParametrizedTestNames {
...
@@ -331,10 +332,10 @@ class TypeParametrizedTestNames {
public:
public:
template
<
typename
T
>
template
<
typename
T
>
static
std
::
string
GetName
(
int
i
)
{
static
std
::
string
GetName
(
int
i
)
{
if
(
testing
::
internal
::
IsS
ame
<
T
,
char
>::
value
)
{
if
(
std
::
is_s
ame
<
T
,
char
>::
value
)
{
return
std
::
string
(
"parChar"
)
+
::
testing
::
PrintToString
(
i
);
return
std
::
string
(
"parChar"
)
+
::
testing
::
PrintToString
(
i
);
}
}
if
(
testing
::
internal
::
IsS
ame
<
T
,
int
>::
value
)
{
if
(
std
::
is_s
ame
<
T
,
int
>::
value
)
{
return
std
::
string
(
"parInt"
)
+
::
testing
::
PrintToString
(
i
);
return
std
::
string
(
"parInt"
)
+
::
testing
::
PrintToString
(
i
);
}
}
}
}
...
...
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