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
202dcabf
Commit
202dcabf
authored
Jan 03, 2019
by
Chris
Browse files
misc: Revert formatting changes.
parent
fd1c7976
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
176 additions
and
157 deletions
+176
-157
googletest/include/gtest/gtest.h
googletest/include/gtest/gtest.h
+176
-157
No files found.
googletest/include/gtest/gtest.h
View file @
202dcabf
...
@@ -57,16 +57,16 @@
...
@@ -57,16 +57,16 @@
#include <ostream>
#include <ostream>
#include <vector>
#include <vector>
#include "gtest/internal/gtest-internal.h"
#include "gtest/internal/gtest-string.h"
#include "gtest/gtest-death-test.h"
#include "gtest/gtest-death-test.h"
#include "gtest/gtest-matchers.h"
#include "gtest/gtest-matchers.h"
#include "gtest/gtest-message.h"
#include "gtest/gtest-message.h"
#include "gtest/gtest-param-test.h"
#include "gtest/gtest-param-test.h"
#include "gtest/gtest-printers.h"
#include "gtest/gtest-printers.h"
#include "gtest/gtest_prod.h"
#include "gtest/gtest-test-part.h"
#include "gtest/gtest-test-part.h"
#include "gtest/gtest-typed-test.h"
#include "gtest/gtest-typed-test.h"
#include "gtest/gtest_prod.h"
#include "gtest/internal/gtest-internal.h"
#include "gtest/internal/gtest-string.h"
GTEST_DISABLE_MSC_WARNINGS_PUSH_
(
4251
\
GTEST_DISABLE_MSC_WARNINGS_PUSH_
(
4251
\
/* class A needs to have dll-interface to be used by clients of class B */
)
/* class A needs to have dll-interface to be used by clients of class B */
)
...
@@ -91,11 +91,12 @@ namespace testing {
...
@@ -91,11 +91,12 @@ namespace testing {
// Silence C4100 (unreferenced formal parameter) and 4805
// Silence C4100 (unreferenced formal parameter) and 4805
// unsafe mix of type 'const int' and type 'const bool'
// unsafe mix of type 'const int' and type 'const bool'
#ifdef _MSC_VER
#ifdef _MSC_VER
#pragma warning(push)
#
pragma warning(push)
#pragma warning(disable
:
4805)
#
pragma warning(disable
:
4805)
#pragma warning(disable
:
4100)
#
pragma warning(disable
:
4100)
#endif
#endif
// Declares the flags.
// Declares the flags.
// This flag temporary enables the disabled tests.
// This flag temporary enables the disabled tests.
...
@@ -337,8 +338,7 @@ class GTEST_API_ AssertionResult {
...
@@ -337,8 +338,7 @@ class GTEST_API_ AssertionResult {
const
char
*
failure_message
()
const
{
return
message
();
}
const
char
*
failure_message
()
const
{
return
message
();
}
// Streams a custom failure message into this object.
// Streams a custom failure message into this object.
template
<
typename
T
>
template
<
typename
T
>
AssertionResult
&
operator
<<
(
const
T
&
value
)
{
AssertionResult
&
operator
<<
(
const
T
&
value
)
{
AppendMessage
(
Message
()
<<
value
);
AppendMessage
(
Message
()
<<
value
);
return
*
this
;
return
*
this
;
}
}
...
@@ -536,17 +536,24 @@ class TestProperty {
...
@@ -536,17 +536,24 @@ class TestProperty {
// C'tor. TestProperty does NOT have a default constructor.
// C'tor. TestProperty does NOT have a default constructor.
// Always use this constructor (with parameters) to create a
// Always use this constructor (with parameters) to create a
// TestProperty object.
// TestProperty object.
TestProperty
(
const
std
::
string
&
a_key
,
const
std
::
string
&
a_value
)
TestProperty
(
const
std
::
string
&
a_key
,
const
std
::
string
&
a_value
)
:
:
key_
(
a_key
),
value_
(
a_value
)
{}
key_
(
a_key
),
value_
(
a_value
)
{
}
// Gets the user supplied key.
// Gets the user supplied key.
const
char
*
key
()
const
{
return
key_
.
c_str
();
}
const
char
*
key
()
const
{
return
key_
.
c_str
();
}
// Gets the user supplied value.
// Gets the user supplied value.
const
char
*
value
()
const
{
return
value_
.
c_str
();
}
const
char
*
value
()
const
{
return
value_
.
c_str
();
}
// Sets a new value, overriding the one supplied in the constructor.
// Sets a new value, overriding the one supplied in the constructor.
void
SetValue
(
const
std
::
string
&
new_value
)
{
value_
=
new_value
;
}
void
SetValue
(
const
std
::
string
&
new_value
)
{
value_
=
new_value
;
}
private:
private:
// The key supplied by the user.
// The key supplied by the user.
...
@@ -802,11 +809,11 @@ class GTEST_API_ TestInfo {
...
@@ -802,11 +809,11 @@ class GTEST_API_ TestInfo {
const
std
::
unique_ptr
<
const
::
std
::
string
>
value_param_
;
const
std
::
unique_ptr
<
const
::
std
::
string
>
value_param_
;
internal
::
CodeLocation
location_
;
internal
::
CodeLocation
location_
;
const
internal
::
TypeId
fixture_class_id_
;
// ID of the test fixture class
const
internal
::
TypeId
fixture_class_id_
;
// ID of the test fixture class
bool
should_run_
;
// True iff this test should run
bool
should_run_
;
// True iff this test should run
bool
is_disabled_
;
// True iff this test is disabled
bool
is_disabled_
;
// True iff this test is disabled
bool
matches_filter_
;
// True if this test matches the
bool
matches_filter_
;
// True if this test matches the
// user-specified filter.
// user-specified filter.
bool
is_in_another_shard_
;
// Will be run in another shard.
bool
is_in_another_shard_
;
// Will be run in another shard.
internal
::
TestFactoryBase
*
const
factory_
;
// The factory that creates
internal
::
TestFactoryBase
*
const
factory_
;
// The factory that creates
// the test object
// the test object
...
@@ -1039,7 +1046,6 @@ class Environment {
...
@@ -1039,7 +1046,6 @@ class Environment {
// Override this to define how to tear down the environment.
// Override this to define how to tear down the environment.
virtual
void
TearDown
()
{}
virtual
void
TearDown
()
{}
private:
private:
// If you see an error about overriding the following function or
// If you see an error about overriding the following function or
// about it being private, you have mis-spelled SetUp() as Setup().
// about it being private, you have mis-spelled SetUp() as Setup().
...
@@ -1114,7 +1120,8 @@ class TestEventListener {
...
@@ -1114,7 +1120,8 @@ class TestEventListener {
virtual
void
OnEnvironmentsTearDownEnd
(
const
UnitTest
&
unit_test
)
=
0
;
virtual
void
OnEnvironmentsTearDownEnd
(
const
UnitTest
&
unit_test
)
=
0
;
// Fired after each iteration of tests finishes.
// Fired after each iteration of tests finishes.
virtual
void
OnTestIterationEnd
(
const
UnitTest
&
unit_test
,
int
iteration
)
=
0
;
virtual
void
OnTestIterationEnd
(
const
UnitTest
&
unit_test
,
int
iteration
)
=
0
;
// Fired after all test activities have ended.
// Fired after all test activities have ended.
virtual
void
OnTestProgramEnd
(
const
UnitTest
&
unit_test
)
=
0
;
virtual
void
OnTestProgramEnd
(
const
UnitTest
&
unit_test
)
=
0
;
...
@@ -1271,7 +1278,8 @@ class GTEST_API_ UnitTest {
...
@@ -1271,7 +1278,8 @@ class GTEST_API_ UnitTest {
// Returns the TestInfo object for the test that's currently running,
// Returns the TestInfo object for the test that's currently running,
// or NULL if no test is running.
// or NULL if no test is running.
const
TestInfo
*
current_test_info
()
const
GTEST_LOCK_EXCLUDED_
(
mutex_
);
const
TestInfo
*
current_test_info
()
const
GTEST_LOCK_EXCLUDED_
(
mutex_
);
// Returns the random seed used at the start of the current test run.
// Returns the random seed used at the start of the current test run.
int
random_seed
()
const
;
int
random_seed
()
const
;
...
@@ -1376,7 +1384,8 @@ class GTEST_API_ UnitTest {
...
@@ -1376,7 +1384,8 @@ class GTEST_API_ UnitTest {
// eventually call this to report their results. The user code
// eventually call this to report their results. The user code
// should use the assertion macros instead of calling this directly.
// should use the assertion macros instead of calling this directly.
void
AddTestPartResult
(
TestPartResult
::
Type
result_type
,
void
AddTestPartResult
(
TestPartResult
::
Type
result_type
,
const
char
*
file_name
,
int
line_number
,
const
char
*
file_name
,
int
line_number
,
const
std
::
string
&
message
,
const
std
::
string
&
message
,
const
std
::
string
&
os_stack_trace
)
const
std
::
string
&
os_stack_trace
)
GTEST_LOCK_EXCLUDED_
(
mutex_
);
GTEST_LOCK_EXCLUDED_
(
mutex_
);
...
@@ -1406,7 +1415,8 @@ class GTEST_API_ UnitTest {
...
@@ -1406,7 +1415,8 @@ class GTEST_API_ UnitTest {
friend
Environment
*
AddGlobalTestEnvironment
(
Environment
*
env
);
friend
Environment
*
AddGlobalTestEnvironment
(
Environment
*
env
);
friend
internal
::
UnitTestImpl
*
internal
::
GetUnitTestImpl
();
friend
internal
::
UnitTestImpl
*
internal
::
GetUnitTestImpl
();
friend
void
internal
::
ReportFailureInUnknownLocation
(
friend
void
internal
::
ReportFailureInUnknownLocation
(
TestPartResult
::
Type
result_type
,
const
std
::
string
&
message
);
TestPartResult
::
Type
result_type
,
const
std
::
string
&
message
);
// Creates an empty UnitTest.
// Creates an empty UnitTest.
UnitTest
();
UnitTest
();
...
@@ -1420,7 +1430,8 @@ class GTEST_API_ UnitTest {
...
@@ -1420,7 +1430,8 @@ class GTEST_API_ UnitTest {
GTEST_LOCK_EXCLUDED_
(
mutex_
);
GTEST_LOCK_EXCLUDED_
(
mutex_
);
// Pops a trace from the per-thread Google Test trace stack.
// Pops a trace from the per-thread Google Test trace stack.
void
PopGTestTrace
()
GTEST_LOCK_EXCLUDED_
(
mutex_
);
void
PopGTestTrace
()
GTEST_LOCK_EXCLUDED_
(
mutex_
);
// Protects mutable state in *impl_. This is mutable as some const
// Protects mutable state in *impl_. This is mutable as some const
// methods need to lock it too.
// methods need to lock it too.
...
@@ -1480,11 +1491,13 @@ namespace internal {
...
@@ -1480,11 +1491,13 @@ namespace internal {
// when calling EXPECT_* in a tight loop.
// when calling EXPECT_* in a tight loop.
template
<
typename
T1
,
typename
T2
>
template
<
typename
T1
,
typename
T2
>
AssertionResult
CmpHelperEQFailure
(
const
char
*
lhs_expression
,
AssertionResult
CmpHelperEQFailure
(
const
char
*
lhs_expression
,
const
char
*
rhs_expression
,
const
T1
&
lhs
,
const
char
*
rhs_expression
,
const
T2
&
rhs
)
{
const
T1
&
lhs
,
const
T2
&
rhs
)
{
return
EqFailure
(
lhs_expression
,
rhs_expression
,
return
EqFailure
(
lhs_expression
,
rhs_expression
,
FormatForComparisonFailureMessage
(
lhs
,
rhs
),
FormatForComparisonFailureMessage
(
lhs
,
rhs
),
FormatForComparisonFailureMessage
(
rhs
,
lhs
),
false
);
FormatForComparisonFailureMessage
(
rhs
,
lhs
),
false
);
}
}
// This block of code defines operator==/!=
// This block of code defines operator==/!=
...
@@ -1497,7 +1510,8 @@ inline bool operator!=(faketype, faketype) { return false; }
...
@@ -1497,7 +1510,8 @@ inline bool operator!=(faketype, faketype) { return false; }
// The helper function for {ASSERT|EXPECT}_EQ.
// The helper function for {ASSERT|EXPECT}_EQ.
template
<
typename
T1
,
typename
T2
>
template
<
typename
T1
,
typename
T2
>
AssertionResult
CmpHelperEQ
(
const
char
*
lhs_expression
,
AssertionResult
CmpHelperEQ
(
const
char
*
lhs_expression
,
const
char
*
rhs_expression
,
const
T1
&
lhs
,
const
char
*
rhs_expression
,
const
T1
&
lhs
,
const
T2
&
rhs
)
{
const
T2
&
rhs
)
{
if
(
lhs
==
rhs
)
{
if
(
lhs
==
rhs
)
{
return
AssertionSuccess
();
return
AssertionSuccess
();
...
@@ -1511,7 +1525,8 @@ AssertionResult CmpHelperEQ(const char* lhs_expression,
...
@@ -1511,7 +1525,8 @@ AssertionResult CmpHelperEQ(const char* lhs_expression,
// can be implicitly cast to BiggestInt.
// can be implicitly cast to BiggestInt.
GTEST_API_
AssertionResult
CmpHelperEQ
(
const
char
*
lhs_expression
,
GTEST_API_
AssertionResult
CmpHelperEQ
(
const
char
*
lhs_expression
,
const
char
*
rhs_expression
,
const
char
*
rhs_expression
,
BiggestInt
lhs
,
BiggestInt
rhs
);
BiggestInt
lhs
,
BiggestInt
rhs
);
// The helper class for {ASSERT|EXPECT}_EQ. The template argument
// The helper class for {ASSERT|EXPECT}_EQ. The template argument
// lhs_is_null_literal is true iff the first argument to ASSERT_EQ()
// lhs_is_null_literal is true iff the first argument to ASSERT_EQ()
...
@@ -1523,7 +1538,8 @@ class EqHelper {
...
@@ -1523,7 +1538,8 @@ class EqHelper {
// This templatized version is for the general case.
// This templatized version is for the general case.
template
<
typename
T1
,
typename
T2
>
template
<
typename
T1
,
typename
T2
>
static
AssertionResult
Compare
(
const
char
*
lhs_expression
,
static
AssertionResult
Compare
(
const
char
*
lhs_expression
,
const
char
*
rhs_expression
,
const
T1
&
lhs
,
const
char
*
rhs_expression
,
const
T1
&
lhs
,
const
T2
&
rhs
)
{
const
T2
&
rhs
)
{
return
CmpHelperEQ
(
lhs_expression
,
rhs_expression
,
lhs
,
rhs
);
return
CmpHelperEQ
(
lhs_expression
,
rhs_expression
,
lhs
,
rhs
);
}
}
...
@@ -1535,7 +1551,8 @@ class EqHelper {
...
@@ -1535,7 +1551,8 @@ class EqHelper {
// Even though its body looks the same as the above version, we
// Even though its body looks the same as the above version, we
// cannot merge the two, as it will make anonymous enums unhappy.
// cannot merge the two, as it will make anonymous enums unhappy.
static
AssertionResult
Compare
(
const
char
*
lhs_expression
,
static
AssertionResult
Compare
(
const
char
*
lhs_expression
,
const
char
*
rhs_expression
,
BiggestInt
lhs
,
const
char
*
rhs_expression
,
BiggestInt
lhs
,
BiggestInt
rhs
)
{
BiggestInt
rhs
)
{
return
CmpHelperEQ
(
lhs_expression
,
rhs_expression
,
lhs
,
rhs
);
return
CmpHelperEQ
(
lhs_expression
,
rhs_expression
,
lhs
,
rhs
);
}
}
...
@@ -1567,14 +1584,16 @@ class EqHelper<true> {
...
@@ -1567,14 +1584,16 @@ class EqHelper<true> {
// pointer, e.g. ASSERT_EQ(NULL, a_pointer).
// pointer, e.g. ASSERT_EQ(NULL, a_pointer).
template
<
typename
T
>
template
<
typename
T
>
static
AssertionResult
Compare
(
static
AssertionResult
Compare
(
const
char
*
lhs_expression
,
const
char
*
rhs_expression
,
const
char
*
lhs_expression
,
const
char
*
rhs_expression
,
// We used to have a second template parameter instead of Secret*. That
// We used to have a second template parameter instead of Secret*. That
// template parameter would deduce to 'long', making this a better match
// template parameter would deduce to 'long', making this a better match
// than the first overload even without the first overload's EnableIf.
// than the first overload even without the first overload's EnableIf.
// Unfortunately, gcc with -Wconversion-null warns when "passing NULL to
// Unfortunately, gcc with -Wconversion-null warns when "passing NULL to
// non-pointer argument" (even a deduced integral argument), so the old
// non-pointer argument" (even a deduced integral argument), so the old
// implementation caused warnings in user code.
// implementation caused warnings in user code.
Secret
*
/* lhs (NULL) */
,
T
*
rhs
)
{
Secret
*
/* lhs (NULL) */
,
T
*
rhs
)
{
// We already know that 'lhs' is a null pointer.
// We already know that 'lhs' is a null pointer.
return
CmpHelperEQ
(
lhs_expression
,
rhs_expression
,
static_cast
<
T
*>
(
nullptr
),
return
CmpHelperEQ
(
lhs_expression
,
rhs_expression
,
static_cast
<
T
*>
(
nullptr
),
rhs
);
rhs
);
...
@@ -1605,18 +1624,18 @@ AssertionResult CmpHelperOpFailure(const char* expr1, const char* expr2,
...
@@ -1605,18 +1624,18 @@ AssertionResult CmpHelperOpFailure(const char* expr1, const char* expr2,
//
//
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
#define GTEST_IMPL_CMP_HELPER_(op_name, op)
\
#define GTEST_IMPL_CMP_HELPER_(op_name, op)\
template <typename T1, typename T2>
\
template <typename T1, typename T2>\
AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
const T1& val1, const T2& val2) {
\
const T1& val1, const T2& val2) {\
if (val1 op val2) {
\
if (val1 op val2) {\
return AssertionSuccess();
\
return AssertionSuccess();\
} else {
\
} else {\
return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);
\
return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);\
}
\
}\
}
\
}
\
GTEST_API_ AssertionResult CmpHelper##op_name(
\
GTEST_API_ AssertionResult CmpHelper##op_name(\
const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2)
const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2)
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
...
@@ -1638,42 +1657,49 @@ GTEST_IMPL_CMP_HELPER_(GT, >);
...
@@ -1638,42 +1657,49 @@ GTEST_IMPL_CMP_HELPER_(GT, >);
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
GTEST_API_
AssertionResult
CmpHelperSTREQ
(
const
char
*
s1_expression
,
GTEST_API_
AssertionResult
CmpHelperSTREQ
(
const
char
*
s1_expression
,
const
char
*
s2_expression
,
const
char
*
s2_expression
,
const
char
*
s1
,
const
char
*
s2
);
const
char
*
s1
,
const
char
*
s2
);
// The helper function for {ASSERT|EXPECT}_STRCASEEQ.
// The helper function for {ASSERT|EXPECT}_STRCASEEQ.
//
//
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
GTEST_API_
AssertionResult
CmpHelperSTRCASEEQ
(
const
char
*
s1_expression
,
GTEST_API_
AssertionResult
CmpHelperSTRCASEEQ
(
const
char
*
s1_expression
,
const
char
*
s2_expression
,
const
char
*
s2_expression
,
const
char
*
s1
,
const
char
*
s2
);
const
char
*
s1
,
const
char
*
s2
);
// The helper function for {ASSERT|EXPECT}_STRNE.
// The helper function for {ASSERT|EXPECT}_STRNE.
//
//
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
GTEST_API_
AssertionResult
CmpHelperSTRNE
(
const
char
*
s1_expression
,
GTEST_API_
AssertionResult
CmpHelperSTRNE
(
const
char
*
s1_expression
,
const
char
*
s2_expression
,
const
char
*
s2_expression
,
const
char
*
s1
,
const
char
*
s2
);
const
char
*
s1
,
const
char
*
s2
);
// The helper function for {ASSERT|EXPECT}_STRCASENE.
// The helper function for {ASSERT|EXPECT}_STRCASENE.
//
//
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
GTEST_API_
AssertionResult
CmpHelperSTRCASENE
(
const
char
*
s1_expression
,
GTEST_API_
AssertionResult
CmpHelperSTRCASENE
(
const
char
*
s1_expression
,
const
char
*
s2_expression
,
const
char
*
s2_expression
,
const
char
*
s1
,
const
char
*
s2
);
const
char
*
s1
,
const
char
*
s2
);
// Helper function for *_STREQ on wide strings.
// Helper function for *_STREQ on wide strings.
//
//
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
GTEST_API_
AssertionResult
CmpHelperSTREQ
(
const
char
*
s1_expression
,
GTEST_API_
AssertionResult
CmpHelperSTREQ
(
const
char
*
s1_expression
,
const
char
*
s2_expression
,
const
char
*
s2_expression
,
const
wchar_t
*
s1
,
const
wchar_t
*
s2
);
const
wchar_t
*
s1
,
const
wchar_t
*
s2
);
// Helper function for *_STRNE on wide strings.
// Helper function for *_STRNE on wide strings.
//
//
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
GTEST_API_
AssertionResult
CmpHelperSTRNE
(
const
char
*
s1_expression
,
GTEST_API_
AssertionResult
CmpHelperSTRNE
(
const
char
*
s1_expression
,
const
char
*
s2_expression
,
const
char
*
s2_expression
,
const
wchar_t
*
s1
,
const
wchar_t
*
s2
);
const
wchar_t
*
s1
,
const
wchar_t
*
s2
);
}
// namespace internal
}
// namespace internal
...
@@ -1685,40 +1711,32 @@ GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression,
...
@@ -1685,40 +1711,32 @@ GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression,
//
//
// The {needle,haystack}_expr arguments are the stringified
// The {needle,haystack}_expr arguments are the stringified
// expressions that generated the two real arguments.
// expressions that generated the two real arguments.
GTEST_API_
AssertionResult
IsSubstring
(
const
char
*
needle_expr
,
GTEST_API_
AssertionResult
IsSubstring
(
const
char
*
haystack_expr
,
const
char
*
needle_expr
,
const
char
*
haystack_expr
,
const
char
*
needle
,
const
char
*
needle
,
const
char
*
haystack
);
const
char
*
haystack
);
GTEST_API_
AssertionResult
IsSubstring
(
GTEST_API_
AssertionResult
IsSubstring
(
const
char
*
needle_expr
,
const
char
*
needle_expr
,
const
char
*
haystack_expr
,
const
char
*
haystack_expr
,
const
wchar_t
*
needle
,
const
wchar_t
*
haystack
);
const
wchar_t
*
needle
,
GTEST_API_
AssertionResult
IsNotSubstring
(
const
wchar_t
*
haystack
);
const
char
*
needle_expr
,
const
char
*
haystack_expr
,
GTEST_API_
AssertionResult
IsNotSubstring
(
const
char
*
needle_expr
,
const
char
*
needle
,
const
char
*
haystack
);
const
char
*
haystack_expr
,
GTEST_API_
AssertionResult
IsNotSubstring
(
const
char
*
needle
,
const
char
*
needle_expr
,
const
char
*
haystack_expr
,
const
char
*
haystack
);
const
wchar_t
*
needle
,
const
wchar_t
*
haystack
);
GTEST_API_
AssertionResult
IsNotSubstring
(
const
char
*
needle_expr
,
GTEST_API_
AssertionResult
IsSubstring
(
const
char
*
haystack_expr
,
const
char
*
needle_expr
,
const
char
*
haystack_expr
,
const
wchar_t
*
needle
,
const
::
std
::
string
&
needle
,
const
::
std
::
string
&
haystack
);
const
wchar_t
*
haystack
);
GTEST_API_
AssertionResult
IsNotSubstring
(
GTEST_API_
AssertionResult
IsSubstring
(
const
char
*
needle_expr
,
const
char
*
needle_expr
,
const
char
*
haystack_expr
,
const
char
*
haystack_expr
,
const
::
std
::
string
&
needle
,
const
::
std
::
string
&
haystack
);
const
::
std
::
string
&
needle
,
const
::
std
::
string
&
haystack
);
GTEST_API_
AssertionResult
IsNotSubstring
(
const
char
*
needle_expr
,
const
char
*
haystack_expr
,
const
::
std
::
string
&
needle
,
const
::
std
::
string
&
haystack
);
#if GTEST_HAS_STD_WSTRING
#if GTEST_HAS_STD_WSTRING
GTEST_API_
AssertionResult
IsSubstring
(
const
char
*
needle_expr
,
GTEST_API_
AssertionResult
IsSubstring
(
const
char
*
haystack_expr
,
const
char
*
needle_expr
,
const
char
*
haystack_expr
,
const
::
std
::
wstring
&
needle
,
const
::
std
::
wstring
&
needle
,
const
::
std
::
wstring
&
haystack
);
const
::
std
::
wstring
&
haystack
);
GTEST_API_
AssertionResult
IsNotSubstring
(
GTEST_API_
AssertionResult
IsNotSubstring
(
const
char
*
needle_expr
,
const
char
*
needle_expr
,
const
char
*
haystack_expr
,
const
char
*
haystack_expr
,
const
::
std
::
wstring
&
needle
,
const
::
std
::
wstring
&
haystack
);
const
::
std
::
wstring
&
needle
,
const
::
std
::
wstring
&
haystack
);
#endif // GTEST_HAS_STD_WSTRING
#endif // GTEST_HAS_STD_WSTRING
namespace
internal
{
namespace
internal
{
...
@@ -1733,7 +1751,8 @@ namespace internal {
...
@@ -1733,7 +1751,8 @@ namespace internal {
template
<
typename
RawType
>
template
<
typename
RawType
>
AssertionResult
CmpHelperFloatingPointEQ
(
const
char
*
lhs_expression
,
AssertionResult
CmpHelperFloatingPointEQ
(
const
char
*
lhs_expression
,
const
char
*
rhs_expression
,
const
char
*
rhs_expression
,
RawType
lhs_value
,
RawType
rhs_value
)
{
RawType
lhs_value
,
RawType
rhs_value
)
{
const
FloatingPoint
<
RawType
>
lhs
(
lhs_value
),
rhs
(
rhs_value
);
const
FloatingPoint
<
RawType
>
lhs
(
lhs_value
),
rhs
(
rhs_value
);
if
(
lhs
.
AlmostEquals
(
rhs
))
{
if
(
lhs
.
AlmostEquals
(
rhs
))
{
...
@@ -1748,8 +1767,10 @@ AssertionResult CmpHelperFloatingPointEQ(const char* lhs_expression,
...
@@ -1748,8 +1767,10 @@ AssertionResult CmpHelperFloatingPointEQ(const char* lhs_expression,
rhs_ss
<<
std
::
setprecision
(
std
::
numeric_limits
<
RawType
>::
digits10
+
2
)
rhs_ss
<<
std
::
setprecision
(
std
::
numeric_limits
<
RawType
>::
digits10
+
2
)
<<
rhs_value
;
<<
rhs_value
;
return
EqFailure
(
lhs_expression
,
rhs_expression
,
return
EqFailure
(
lhs_expression
,
StringStreamToString
(
&
lhs_ss
),
StringStreamToString
(
&
rhs_ss
),
rhs_expression
,
StringStreamToString
(
&
lhs_ss
),
StringStreamToString
(
&
rhs_ss
),
false
);
false
);
}
}
...
@@ -1759,7 +1780,8 @@ AssertionResult CmpHelperFloatingPointEQ(const char* lhs_expression,
...
@@ -1759,7 +1780,8 @@ AssertionResult CmpHelperFloatingPointEQ(const char* lhs_expression,
GTEST_API_
AssertionResult
DoubleNearPredFormat
(
const
char
*
expr1
,
GTEST_API_
AssertionResult
DoubleNearPredFormat
(
const
char
*
expr1
,
const
char
*
expr2
,
const
char
*
expr2
,
const
char
*
abs_error_expr
,
const
char
*
abs_error_expr
,
double
val1
,
double
val2
,
double
val1
,
double
val2
,
double
abs_error
);
double
abs_error
);
// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
...
@@ -1767,7 +1789,9 @@ GTEST_API_ AssertionResult DoubleNearPredFormat(const char* expr1,
...
@@ -1767,7 +1789,9 @@ GTEST_API_ AssertionResult DoubleNearPredFormat(const char* expr1,
class
GTEST_API_
AssertHelper
{
class
GTEST_API_
AssertHelper
{
public:
public:
// Constructor.
// Constructor.
AssertHelper
(
TestPartResult
::
Type
type
,
const
char
*
file
,
int
line
,
AssertHelper
(
TestPartResult
::
Type
type
,
const
char
*
file
,
int
line
,
const
char
*
message
);
const
char
*
message
);
~
AssertHelper
();
~
AssertHelper
();
...
@@ -1781,9 +1805,11 @@ class GTEST_API_ AssertHelper {
...
@@ -1781,9 +1805,11 @@ class GTEST_API_ AssertHelper {
// re-using stack space even for temporary variables, so every EXPECT_EQ
// re-using stack space even for temporary variables, so every EXPECT_EQ
// reserves stack space for another AssertHelper.
// reserves stack space for another AssertHelper.
struct
AssertHelperData
{
struct
AssertHelperData
{
AssertHelperData
(
TestPartResult
::
Type
t
,
const
char
*
srcfile
,
int
line_num
,
AssertHelperData
(
TestPartResult
::
Type
t
,
const
char
*
srcfile
,
int
line_num
,
const
char
*
msg
)
const
char
*
msg
)
:
type
(
t
),
file
(
srcfile
),
line
(
line_num
),
message
(
msg
)
{}
:
type
(
t
),
file
(
srcfile
),
line
(
line_num
),
message
(
msg
)
{
}
TestPartResult
::
Type
const
type
;
TestPartResult
::
Type
const
type
;
const
char
*
const
file
;
const
char
*
const
file
;
...
@@ -1859,14 +1885,15 @@ class WithParamInterface {
...
@@ -1859,14 +1885,15 @@ class WithParamInterface {
private:
private:
// Sets parameter value. The caller is responsible for making sure the value
// Sets parameter value. The caller is responsible for making sure the value
// remains alive and unchanged throughout the current test.
// remains alive and unchanged throughout the current test.
static
void
SetParam
(
const
ParamType
*
parameter
)
{
parameter_
=
parameter
;
}
static
void
SetParam
(
const
ParamType
*
parameter
)
{
parameter_
=
parameter
;
}
// Static value used for accessing parameter during a test lifetime.
// Static value used for accessing parameter during a test lifetime.
static
const
ParamType
*
parameter_
;
static
const
ParamType
*
parameter_
;
// TestClass must be a subclass of WithParamInterface<T> and Test.
// TestClass must be a subclass of WithParamInterface<T> and Test.
template
<
class
TestClass
>
template
<
class
TestClass
>
friend
class
internal
::
ParameterizedTestFactory
;
friend
class
internal
::
ParameterizedTestFactory
;
};
};
template
<
typename
T
>
template
<
typename
T
>
...
@@ -1876,7 +1903,8 @@ const T* WithParamInterface<T>::parameter_ = nullptr;
...
@@ -1876,7 +1903,8 @@ const T* WithParamInterface<T>::parameter_ = nullptr;
// WithParamInterface, and can just inherit from ::testing::TestWithParam.
// WithParamInterface, and can just inherit from ::testing::TestWithParam.
template
<
typename
T
>
template
<
typename
T
>
class
TestWithParam
:
public
Test
,
public
WithParamInterface
<
T
>
{};
class
TestWithParam
:
public
Test
,
public
WithParamInterface
<
T
>
{
};
// Macros for indicating success/failure in test code.
// Macros for indicating success/failure in test code.
...
@@ -1907,7 +1935,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -1907,7 +1935,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
// Generates a nonfatal failure at the given source file location with
// Generates a nonfatal failure at the given source file location with
// a generic message.
// a generic message.
#define ADD_FAILURE_AT(file, line)
\
#define ADD_FAILURE_AT(file, line) \
GTEST_MESSAGE_AT_(file, line, "Failed", \
GTEST_MESSAGE_AT_(file, line, "Failed", \
::testing::TestPartResult::kNonFatalFailure)
::testing::TestPartResult::kNonFatalFailure)
...
@@ -1917,7 +1945,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -1917,7 +1945,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
// Define this macro to 1 to omit the definition of FAIL(), which is a
// Define this macro to 1 to omit the definition of FAIL(), which is a
// generic name and clashes with some other libraries.
// generic name and clashes with some other libraries.
#if !GTEST_DONT_DEFINE_FAIL
#if !GTEST_DONT_DEFINE_FAIL
#define FAIL() GTEST_FAIL()
#
define FAIL() GTEST_FAIL()
#endif
#endif
// Generates a success with a generic message.
// Generates a success with a generic message.
...
@@ -1926,7 +1954,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -1926,7 +1954,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
// Define this macro to 1 to omit the definition of SUCCEED(), which
// Define this macro to 1 to omit the definition of SUCCEED(), which
// is a generic name and clashes with some other libraries.
// is a generic name and clashes with some other libraries.
#if !GTEST_DONT_DEFINE_SUCCEED
#if !GTEST_DONT_DEFINE_SUCCEED
#define SUCCEED() GTEST_SUCCEED()
#
define SUCCEED() GTEST_SUCCEED()
#endif
#endif
// Macros for testing exceptions.
// Macros for testing exceptions.
...
@@ -1954,15 +1982,16 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -1954,15 +1982,16 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
// Boolean assertions. Condition can be either a Boolean expression or an
// Boolean assertions. Condition can be either a Boolean expression or an
// AssertionResult. For more information on how to use AssertionResult with
// AssertionResult. For more information on how to use AssertionResult with
// these macros see comments on that class.
// these macros see comments on that class.
#define EXPECT_TRUE(condition)
\
#define EXPECT_TRUE(condition) \
GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
GTEST_NONFATAL_FAILURE_)
GTEST_NONFATAL_FAILURE_)
#define EXPECT_FALSE(condition)
\
#define EXPECT_FALSE(condition) \
GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
GTEST_NONFATAL_FAILURE_)
GTEST_NONFATAL_FAILURE_)
#define ASSERT_TRUE(condition) \
#define ASSERT_TRUE(condition) \
GTEST_TEST_BOOLEAN_(condition, #condition, false, true, GTEST_FATAL_FAILURE_)
GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
#define ASSERT_FALSE(condition) \
GTEST_FATAL_FAILURE_)
#define ASSERT_FALSE(condition) \
GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
GTEST_FATAL_FAILURE_)
GTEST_FATAL_FAILURE_)
...
@@ -2012,10 +2041,10 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -2012,10 +2041,10 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
// ASSERT_LT(i, array_size);
// ASSERT_LT(i, array_size);
// ASSERT_GT(records.size(), 0) << "There is no record left.";
// ASSERT_GT(records.size(), 0) << "There is no record left.";
#define EXPECT_EQ(val1, val2)
\
#define EXPECT_EQ(val1, val2) \
EXPECT_PRED_FORMAT2(
\
EXPECT_PRED_FORMAT2(
::testing::internal::
\
::testing::internal::
EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
val1, val2)
val1, val2)
#define EXPECT_NE(val1, val2) \
#define EXPECT_NE(val1, val2) \
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2)
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2)
#define EXPECT_LE(val1, val2) \
#define EXPECT_LE(val1, val2) \
...
@@ -2027,10 +2056,10 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -2027,10 +2056,10 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
#define EXPECT_GT(val1, val2) \
#define EXPECT_GT(val1, val2) \
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2)
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2)
#define GTEST_ASSERT_EQ(val1, val2)
\
#define GTEST_ASSERT_EQ(val1, val2) \
ASSERT_PRED_FORMAT2(
\
ASSERT_PRED_FORMAT2(
::testing::internal::
\
::testing::internal::
EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
val1, val2)
val1, val2)
#define GTEST_ASSERT_NE(val1, val2) \
#define GTEST_ASSERT_NE(val1, val2) \
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2)
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2)
#define GTEST_ASSERT_LE(val1, val2) \
#define GTEST_ASSERT_LE(val1, val2) \
...
@@ -2046,27 +2075,27 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -2046,27 +2075,27 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
// ASSERT_XY(), which clashes with some users' own code.
// ASSERT_XY(), which clashes with some users' own code.
#if !GTEST_DONT_DEFINE_ASSERT_EQ
#if !GTEST_DONT_DEFINE_ASSERT_EQ
#define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
#
define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
#endif
#endif
#if !GTEST_DONT_DEFINE_ASSERT_NE
#if !GTEST_DONT_DEFINE_ASSERT_NE
#define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2)
#
define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2)
#endif
#endif
#if !GTEST_DONT_DEFINE_ASSERT_LE
#if !GTEST_DONT_DEFINE_ASSERT_LE
#define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2)
#
define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2)
#endif
#endif
#if !GTEST_DONT_DEFINE_ASSERT_LT
#if !GTEST_DONT_DEFINE_ASSERT_LT
#define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2)
#
define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2)
#endif
#endif
#if !GTEST_DONT_DEFINE_ASSERT_GE
#if !GTEST_DONT_DEFINE_ASSERT_GE
#define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2)
#
define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2)
#endif
#endif
#if !GTEST_DONT_DEFINE_ASSERT_GT
#if !GTEST_DONT_DEFINE_ASSERT_GT
#define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2)
#
define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2)
#endif
#endif
// C-string Comparisons. All tests treat NULL and any non-NULL string
// C-string Comparisons. All tests treat NULL and any non-NULL string
...
@@ -2091,7 +2120,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -2091,7 +2120,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
#define EXPECT_STRCASEEQ(s1, s2) \
#define EXPECT_STRCASEEQ(s1, s2) \
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2)
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2)
#define EXPECT_STRCASENE(s1, s2)
\
#define EXPECT_STRCASENE(s1, s2)\
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
#define ASSERT_STREQ(s1, s2) \
#define ASSERT_STREQ(s1, s2) \
...
@@ -2100,7 +2129,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -2100,7 +2129,7 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
#define ASSERT_STRCASEEQ(s1, s2) \
#define ASSERT_STRCASEEQ(s1, s2) \
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2)
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2)
#define ASSERT_STRCASENE(s1, s2)
\
#define ASSERT_STRCASENE(s1, s2)\
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
// Macros for comparing floating-point numbers.
// Macros for comparing floating-point numbers.
...
@@ -2117,29 +2146,29 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
...
@@ -2117,29 +2146,29 @@ class TestWithParam : public Test, public WithParamInterface<T> {};
// FloatingPoint template class in gtest-internal.h if you are
// FloatingPoint template class in gtest-internal.h if you are
// interested in the implementation details.
// interested in the implementation details.
#define EXPECT_FLOAT_EQ(val1, val2)
\
#define EXPECT_FLOAT_EQ(val1, val2)\
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
val1, val2)
val1, val2)
#define EXPECT_DOUBLE_EQ(val1, val2)
\
#define EXPECT_DOUBLE_EQ(val1, val2)\
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
val1, val2)
val1, val2)
#define ASSERT_FLOAT_EQ(val1, val2)
\
#define ASSERT_FLOAT_EQ(val1, val2)\
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
val1, val2)
val1, val2)
#define ASSERT_DOUBLE_EQ(val1, val2)
\
#define ASSERT_DOUBLE_EQ(val1, val2)\
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
val1, val2)
val1, val2)
#define EXPECT_NEAR(val1, val2, abs_error)
\
#define EXPECT_NEAR(val1, val2, abs_error)\
EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat,
val1, val2,
\
EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
abs_error)
val1, val2,
abs_error)
#define ASSERT_NEAR(val1, val2, abs_error)
\
#define ASSERT_NEAR(val1, val2, abs_error)\
ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat,
val1, val2,
\
ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
abs_error)
val1, val2,
abs_error)
// These predicate format functions work on floating-point values, and
// These predicate format functions work on floating-point values, and
// can be used in {ASSERT|EXPECT}_PRED_FORMAT2*(), e.g.
// can be used in {ASSERT|EXPECT}_PRED_FORMAT2*(), e.g.
...
@@ -2153,6 +2182,7 @@ GTEST_API_ AssertionResult FloatLE(const char* expr1, const char* expr2,
...
@@ -2153,6 +2182,7 @@ GTEST_API_ AssertionResult FloatLE(const char* expr1, const char* expr2,
GTEST_API_
AssertionResult
DoubleLE
(
const
char
*
expr1
,
const
char
*
expr2
,
GTEST_API_
AssertionResult
DoubleLE
(
const
char
*
expr1
,
const
char
*
expr2
,
double
val1
,
double
val2
);
double
val1
,
double
val2
);
#if GTEST_OS_WINDOWS
#if GTEST_OS_WINDOWS
// Macros that test for HRESULT failure and success, these are only useful
// Macros that test for HRESULT failure and success, these are only useful
...
@@ -2164,17 +2194,17 @@ GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
...
@@ -2164,17 +2194,17 @@ GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
// expected result and the actual result with both a human-readable
// expected result and the actual result with both a human-readable
// string representation of the error, if available, as well as the
// string representation of the error, if available, as well as the
// hex result code.
// hex result code.
#define EXPECT_HRESULT_SUCCEEDED(expr) \
#
define EXPECT_HRESULT_SUCCEEDED(expr) \
EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
#define ASSERT_HRESULT_SUCCEEDED(expr) \
#
define ASSERT_HRESULT_SUCCEEDED(expr) \
ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
#define EXPECT_HRESULT_FAILED(expr) \
#
define EXPECT_HRESULT_FAILED(expr) \
EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
#define ASSERT_HRESULT_FAILED(expr) \
#
define ASSERT_HRESULT_FAILED(expr) \
ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
#endif // GTEST_OS_WINDOWS
#endif // GTEST_OS_WINDOWS
...
@@ -2189,9 +2219,9 @@ GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
...
@@ -2189,9 +2219,9 @@ GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
// ASSERT_NO_FATAL_FAILURE(Process()) << "Process() failed";
// ASSERT_NO_FATAL_FAILURE(Process()) << "Process() failed";
//
//
#define ASSERT_NO_FATAL_FAILURE(statement) \
#define ASSERT_NO_FATAL_FAILURE(statement) \
GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_)
GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_)
#define EXPECT_NO_FATAL_FAILURE(statement) \
#define EXPECT_NO_FATAL_FAILURE(statement) \
GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_)
GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_)
// Causes a trace (including the given source file path and line number,
// Causes a trace (including the given source file path and line number,
// and the given message) to be included in every test failure message generated
// and the given message) to be included in every test failure message generated
...
@@ -2259,9 +2289,10 @@ class GTEST_API_ ScopedTrace {
...
@@ -2259,9 +2289,10 @@ class GTEST_API_ ScopedTrace {
// Assuming that each thread maintains its own stack of traces.
// Assuming that each thread maintains its own stack of traces.
// Therefore, a SCOPED_TRACE() would (correctly) only affect the
// Therefore, a SCOPED_TRACE() would (correctly) only affect the
// assertions in its own thread.
// assertions in its own thread.
#define SCOPED_TRACE(message) \
#define SCOPED_TRACE(message) \
::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)( \
::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
__FILE__, __LINE__, (message))
__FILE__, __LINE__, (message))
// Compile-time assertion for type equality.
// Compile-time assertion for type equality.
// StaticAssertTypeEq<type1, type2>() compiles iff type1 and type2 are
// StaticAssertTypeEq<type1, type2>() compiles iff type1 and type2 are
...
@@ -2360,7 +2391,7 @@ bool StaticAssertTypeEq() {
...
@@ -2360,7 +2391,7 @@ bool StaticAssertTypeEq() {
// EXPECT_EQ(b_.size(), 1);
// EXPECT_EQ(b_.size(), 1);
// }
// }
#define TEST_F(test_fixture, test_name)
\
#define TEST_F(test_fixture, test_name)\
GTEST_TEST_(test_fixture, test_name, test_fixture, \
GTEST_TEST_(test_fixture, test_name, test_fixture, \
::testing::internal::GetTypeId<test_fixture>())
::testing::internal::GetTypeId<test_fixture>())
...
@@ -2369,7 +2400,7 @@ bool StaticAssertTypeEq() {
...
@@ -2369,7 +2400,7 @@ bool StaticAssertTypeEq() {
GTEST_API_
std
::
string
TempDir
();
GTEST_API_
std
::
string
TempDir
();
#ifdef _MSC_VER
#ifdef _MSC_VER
#pragma warning(pop)
#
pragma warning(pop)
#endif
#endif
// Dynamically registers a test with the framework.
// Dynamically registers a test with the framework.
...
@@ -2464,22 +2495,10 @@ TestInfo* RegisterTest(const char* test_suite_name, const char* test_name,
...
@@ -2464,22 +2495,10 @@ TestInfo* RegisterTest(const char* test_suite_name, const char* test_name,
// namespace and has an all-caps name.
// namespace and has an all-caps name.
int
RUN_ALL_TESTS
()
GTEST_MUST_USE_RESULT_
;
int
RUN_ALL_TESTS
()
GTEST_MUST_USE_RESULT_
;
inline
int
RUN_ALL_TESTS
()
{
return
::
testing
::
UnitTest
::
GetInstance
()
->
Run
();
}
inline
int
RUN_ALL_TESTS
()
{
return
::
testing
::
UnitTest
::
GetInstance
()
->
Run
();
#ifdef ARDUINO
inline
void
gtest_setup
()
{
// Since Arduino doesn't have a command line, fake out the argc/argv arguments
int
argc
=
1
;
const
auto
arg0
=
"PlatformIO"
;
char
*
argv0
=
const_cast
<
char
*>
(
arg0
);
char
**
argv
=
&
argv0
;
testing
::
InitGoogleTest
(
&
argc
,
argv
);
}
}
inline
void
gtest_loop
()
{
RUN_ALL_TESTS
();
}
#endif
GTEST_DISABLE_MSC_WARNINGS_POP_
()
// 4251
GTEST_DISABLE_MSC_WARNINGS_POP_
()
// 4251
#endif // GTEST_INCLUDE_GTEST_GTEST_H_
#endif // GTEST_INCLUDE_GTEST_GTEST_H_
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