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
27bb844e
Unverified
Commit
27bb844e
authored
Jan 12, 2018
by
Conor Burgess
Committed by
GitHub
Jan 12, 2018
Browse files
Merge branch 'master' into fix-argc
parents
8f90d46c
ed8d02cf
Changes
84
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
116 additions
and
203 deletions
+116
-203
googletest/include/gtest/gtest.h
googletest/include/gtest/gtest.h
+10
-7
googletest/include/gtest/internal/custom/gtest-port.h
googletest/include/gtest/internal/custom/gtest-port.h
+3
-0
googletest/include/gtest/internal/custom/gtest.h
googletest/include/gtest/internal/custom/gtest.h
+1
-1
googletest/include/gtest/internal/gtest-death-test-internal.h
...letest/include/gtest/internal/gtest-death-test-internal.h
+0
-48
googletest/include/gtest/internal/gtest-filepath.h
googletest/include/gtest/internal/gtest-filepath.h
+1
-2
googletest/include/gtest/internal/gtest-internal.h
googletest/include/gtest/internal/gtest-internal.h
+25
-3
googletest/include/gtest/internal/gtest-param-util-generated.h
...etest/include/gtest/internal/gtest-param-util-generated.h
+34
-41
googletest/include/gtest/internal/gtest-param-util-generated.h.pump
.../include/gtest/internal/gtest-param-util-generated.h.pump
+3
-10
googletest/include/gtest/internal/gtest-param-util.h
googletest/include/gtest/internal/gtest-param-util.h
+0
-7
googletest/include/gtest/internal/gtest-port.h
googletest/include/gtest/internal/gtest-port.h
+5
-12
googletest/include/gtest/internal/gtest-string.h
googletest/include/gtest/internal/gtest-string.h
+2
-2
googletest/samples/prime_tables.h
googletest/samples/prime_tables.h
+6
-2
googletest/samples/sample4_unittest.cc
googletest/samples/sample4_unittest.cc
+4
-1
googletest/samples/sample5_unittest.cc
googletest/samples/sample5_unittest.cc
+1
-1
googletest/samples/sample7_unittest.cc
googletest/samples/sample7_unittest.cc
+0
-12
googletest/src/gtest-death-test.cc
googletest/src/gtest-death-test.cc
+12
-17
googletest/src/gtest-filepath.cc
googletest/src/gtest-filepath.cc
+4
-6
googletest/src/gtest-internal-inl.h
googletest/src/gtest-internal-inl.h
+0
-12
googletest/src/gtest-port.cc
googletest/src/gtest-port.cc
+5
-11
googletest/src/gtest-test-part.cc
googletest/src/gtest-test-part.cc
+0
-8
No files found.
googletest/include/gtest/gtest.h
View file @
27bb844e
...
@@ -259,7 +259,9 @@ class GTEST_API_ AssertionResult {
...
@@ -259,7 +259,9 @@ class GTEST_API_ AssertionResult {
// Used in EXPECT_TRUE/FALSE(assertion_result).
// Used in EXPECT_TRUE/FALSE(assertion_result).
AssertionResult
(
const
AssertionResult
&
other
);
AssertionResult
(
const
AssertionResult
&
other
);
#if defined(_MSC_VER) && _MSC_VER < 1910
GTEST_DISABLE_MSC_WARNINGS_PUSH_
(
4800
/* forcing value to bool */
)
GTEST_DISABLE_MSC_WARNINGS_PUSH_
(
4800
/* forcing value to bool */
)
#endif
// Used in the EXPECT_TRUE/FALSE(bool_expression).
// Used in the EXPECT_TRUE/FALSE(bool_expression).
//
//
...
@@ -276,7 +278,9 @@ class GTEST_API_ AssertionResult {
...
@@ -276,7 +278,9 @@ class GTEST_API_ AssertionResult {
/*enabler*/
=
NULL
)
/*enabler*/
=
NULL
)
:
success_
(
success
)
{}
:
success_
(
success
)
{}
#if defined(_MSC_VER) && _MSC_VER < 1910
GTEST_DISABLE_MSC_WARNINGS_POP_
()
GTEST_DISABLE_MSC_WARNINGS_POP_
()
#endif
// Assignment operator.
// Assignment operator.
AssertionResult
&
operator
=
(
AssertionResult
other
)
{
AssertionResult
&
operator
=
(
AssertionResult
other
)
{
...
@@ -1180,14 +1184,12 @@ class GTEST_API_ UnitTest {
...
@@ -1180,14 +1184,12 @@ class GTEST_API_ UnitTest {
// 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
;
#if GTEST_HAS_PARAM_TEST
// Returns the ParameterizedTestCaseRegistry object used to keep track of
// Returns the ParameterizedTestCaseRegistry object used to keep track of
// value-parameterized tests and instantiate and register them.
// value-parameterized tests and instantiate and register them.
//
//
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
internal
::
ParameterizedTestCaseRegistry
&
parameterized_test_registry
()
internal
::
ParameterizedTestCaseRegistry
&
parameterized_test_registry
()
GTEST_LOCK_EXCLUDED_
(
mutex_
);
GTEST_LOCK_EXCLUDED_
(
mutex_
);
#endif // GTEST_HAS_PARAM_TEST
// Gets the number of successful test cases.
// Gets the number of successful test cases.
int
successful_test_case_count
()
const
;
int
successful_test_case_count
()
const
;
...
@@ -1388,11 +1390,9 @@ AssertionResult CmpHelperEQ(const char* lhs_expression,
...
@@ -1388,11 +1390,9 @@ AssertionResult CmpHelperEQ(const char* lhs_expression,
const
char
*
rhs_expression
,
const
char
*
rhs_expression
,
const
T1
&
lhs
,
const
T1
&
lhs
,
const
T2
&
rhs
)
{
const
T2
&
rhs
)
{
GTEST_DISABLE_MSC_WARNINGS_PUSH_
(
4389
/* signed/unsigned mismatch */
)
if
(
lhs
==
rhs
)
{
if
(
lhs
==
rhs
)
{
return
AssertionSuccess
();
return
AssertionSuccess
();
}
}
GTEST_DISABLE_MSC_WARNINGS_POP_
()
return
CmpHelperEQFailure
(
lhs_expression
,
rhs_expression
,
lhs
,
rhs
);
return
CmpHelperEQFailure
(
lhs_expression
,
rhs_expression
,
lhs
,
rhs
);
}
}
...
@@ -1706,7 +1706,6 @@ class GTEST_API_ AssertHelper {
...
@@ -1706,7 +1706,6 @@ class GTEST_API_ AssertHelper {
}
// namespace internal
}
// namespace internal
#if GTEST_HAS_PARAM_TEST
// The pure interface class that all value-parameterized tests inherit from.
// The pure interface class that all value-parameterized tests inherit from.
// A value-parameterized class must inherit from both ::testing::Test and
// A value-parameterized class must inherit from both ::testing::Test and
// ::testing::WithParamInterface. In most cases that just means inheriting
// ::testing::WithParamInterface. In most cases that just means inheriting
...
@@ -1783,7 +1782,6 @@ template <typename T>
...
@@ -1783,7 +1782,6 @@ template <typename T>
class
TestWithParam
:
public
Test
,
public
WithParamInterface
<
T
>
{
class
TestWithParam
:
public
Test
,
public
WithParamInterface
<
T
>
{
};
};
#endif // GTEST_HAS_PARAM_TEST
// Macros for indicating success/failure in test code.
// Macros for indicating success/failure in test code.
...
@@ -2112,9 +2110,14 @@ GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
...
@@ -2112,9 +2110,14 @@ GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
// of the dummy variable name, thus allowing multiple SCOPED_TRACE()s
// of the dummy variable name, thus allowing multiple SCOPED_TRACE()s
// to appear in the same block - as long as they are on different
// to appear in the same block - as long as they are on different
// lines.
// lines.
//
// Assuming that each thread maintains its own stack of traces.
// Therefore, a SCOPED_TRACE() would (correctly) only affect the
// assertions in its own thread.
#define SCOPED_TRACE(message) \
#define SCOPED_TRACE(message) \
::testing::internal::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
::testing::internal::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
__FILE__, __LINE__, ::testing::Message() << (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
...
...
googletest/include/gtest/internal/custom/gtest-port.h
View file @
27bb844e
...
@@ -61,6 +61,9 @@
...
@@ -61,6 +61,9 @@
// GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
// GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
// GTEST_LOCK_EXCLUDED_(locks)
// GTEST_LOCK_EXCLUDED_(locks)
//
//
// Underlying library support features:
// GTEST_HAS_CXXABI_H_
//
// Exporting API symbols:
// Exporting API symbols:
// GTEST_API_ - Specifier for exported symbols.
// GTEST_API_ - Specifier for exported symbols.
//
//
...
...
googletest/include/gtest/internal/custom/gtest.h
View file @
27bb844e
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
// GTEST_CUSTOM_TEMPDIR_FUNCTION_ - An override for testing::TempDir().
// GTEST_CUSTOM_TEMPDIR_FUNCTION_ - An override for testing::TempDir().
// See testing::TempDir for semantics and
// See testing::TempDir for semantics and
// signature.
// signature.
//
//
// ** Custom implementation starts here **
// ** Custom implementation starts here **
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_
...
...
googletest/include/gtest/internal/gtest-death-test-internal.h
View file @
27bb844e
...
@@ -27,7 +27,6 @@
...
@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//
// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
//
//
// The Google C++ Testing Framework (Google Test)
// The Google C++ Testing Framework (Google Test)
//
//
...
@@ -264,53 +263,6 @@ class InternalRunDeathTestFlag {
...
@@ -264,53 +263,6 @@ class InternalRunDeathTestFlag {
// the flag is specified; otherwise returns NULL.
// the flag is specified; otherwise returns NULL.
InternalRunDeathTestFlag
*
ParseInternalRunDeathTestFlag
();
InternalRunDeathTestFlag
*
ParseInternalRunDeathTestFlag
();
#else // GTEST_HAS_DEATH_TEST
// This macro is used for implementing macros such as
// EXPECT_DEATH_IF_SUPPORTED and ASSERT_DEATH_IF_SUPPORTED on systems where
// death tests are not supported. Those macros must compile on such systems
// iff EXPECT_DEATH and ASSERT_DEATH compile with the same parameters on
// systems that support death tests. This allows one to write such a macro
// on a system that does not support death tests and be sure that it will
// compile on a death-test supporting system.
//
// Parameters:
// statement - A statement that a macro such as EXPECT_DEATH would test
// for program termination. This macro has to make sure this
// statement is compiled but not executed, to ensure that
// EXPECT_DEATH_IF_SUPPORTED compiles with a certain
// parameter iff EXPECT_DEATH compiles with it.
// regex - A regex that a macro such as EXPECT_DEATH would use to test
// the output of statement. This parameter has to be
// compiled but not evaluated by this macro, to ensure that
// this macro only accepts expressions that a macro such as
// EXPECT_DEATH would accept.
// terminator - Must be an empty statement for EXPECT_DEATH_IF_SUPPORTED
// and a return statement for ASSERT_DEATH_IF_SUPPORTED.
// This ensures that ASSERT_DEATH_IF_SUPPORTED will not
// compile inside functions where ASSERT_DEATH doesn't
// compile.
//
// The branch that has an always false condition is used to ensure that
// statement and regex are compiled (and thus syntactically correct) but
// never executed. The unreachable code macro protects the terminator
// statement from generating an 'unreachable code' warning in case
// statement unconditionally returns or throws. The Message constructor at
// the end allows the syntax of streaming additional messages into the
// macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH.
# define GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, terminator) \
GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
if (::testing::internal::AlwaysTrue()) { \
GTEST_LOG_(WARNING) \
<< "Death tests are not supported on this platform.\n" \
<< "Statement '" #statement "' cannot be verified."; \
} else if (::testing::internal::AlwaysFalse()) { \
::testing::internal::RE::PartialMatch(".*", (regex)); \
GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
terminator; \
} else \
::testing::Message()
#endif // GTEST_HAS_DEATH_TEST
#endif // GTEST_HAS_DEATH_TEST
}
// namespace internal
}
// namespace internal
...
...
googletest/include/gtest/internal/gtest-filepath.h
View file @
27bb844e
...
@@ -27,14 +27,13 @@
...
@@ -27,14 +27,13 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//
// Author: keith.ray@gmail.com (Keith Ray)
//
//
// Google Test filepath utilities
// Google Test filepath utilities
//
//
// This header file declares classes and functions used internally by
// This header file declares classes and functions used internally by
// Google Test. They are subject to change without notice.
// Google Test. They are subject to change without notice.
//
//
// This file is #included in
<
gtest/internal/gtest-internal.h
>
.
// This file is #included in gtest/internal/gtest-internal.h.
// Do not include this header file separately!
// Do not include this header file separately!
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
...
...
googletest/include/gtest/internal/gtest-internal.h
View file @
27bb844e
...
@@ -27,7 +27,6 @@
...
@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//
// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
//
//
// The Google C++ Testing Framework (Google Test)
// The Google C++ Testing Framework (Google Test)
//
//
...
@@ -61,8 +60,8 @@
...
@@ -61,8 +60,8 @@
#include <vector>
#include <vector>
#include "gtest/gtest-message.h"
#include "gtest/gtest-message.h"
#include "gtest/internal/gtest-string.h"
#include "gtest/internal/gtest-filepath.h"
#include "gtest/internal/gtest-filepath.h"
#include "gtest/internal/gtest-string.h"
#include "gtest/internal/gtest-type-util.h"
#include "gtest/internal/gtest-type-util.h"
// Due to C++ preprocessor weirdness, we need double indirection to
// Due to C++ preprocessor weirdness, we need double indirection to
...
@@ -157,7 +156,28 @@ class GTEST_API_ ScopedTrace {
...
@@ -157,7 +156,28 @@ class GTEST_API_ ScopedTrace {
public:
public:
// The c'tor pushes the given source file location and message onto
// The c'tor pushes the given source file location and message onto
// a trace stack maintained by Google Test.
// a trace stack maintained by Google Test.
ScopedTrace
(
const
char
*
file
,
int
line
,
const
Message
&
message
);
// Template version. Uses Message() to convert the values into strings.
// Slow, but flexible.
template
<
typename
T
>
ScopedTrace
(
const
char
*
file
,
int
line
,
const
T
&
message
)
{
PushTrace
(
file
,
line
,
(
Message
()
<<
message
).
GetString
());
}
// Optimize for some known types.
ScopedTrace
(
const
char
*
file
,
int
line
,
const
char
*
message
)
{
PushTrace
(
file
,
line
,
message
?
message
:
"(null)"
);
}
#if GTEST_HAS_GLOBAL_STRING
ScopedTrace
(
const
char
*
file
,
int
line
,
const
::
string
&
message
)
{
PushTrace
(
file
,
line
,
message
);
}
#endif
ScopedTrace
(
const
char
*
file
,
int
line
,
const
std
::
string
&
message
)
{
PushTrace
(
file
,
line
,
message
);
}
// The d'tor pops the info pushed by the c'tor.
// The d'tor pops the info pushed by the c'tor.
//
//
...
@@ -166,6 +186,8 @@ class GTEST_API_ ScopedTrace {
...
@@ -166,6 +186,8 @@ class GTEST_API_ ScopedTrace {
~
ScopedTrace
();
~
ScopedTrace
();
private:
private:
void
PushTrace
(
const
char
*
file
,
int
line
,
std
::
string
message
);
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
ScopedTrace
);
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
ScopedTrace
);
}
GTEST_ATTRIBUTE_UNUSED_
;
// A ScopedTrace object does its job in its
}
GTEST_ATTRIBUTE_UNUSED_
;
// A ScopedTrace object does its job in its
// c'tor and d'tor. Therefore it doesn't
// c'tor and d'tor. Therefore it doesn't
...
...
googletest/include/gtest/internal/gtest-param-util-generated.h
View file @
27bb844e
...
@@ -46,14 +46,9 @@
...
@@ -46,14 +46,9 @@
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
// scripts/fuse_gtest.py depends on gtest's own header being #included
// *unconditionally*. Therefore these #includes cannot be moved
// inside #if GTEST_HAS_PARAM_TEST.
#include "gtest/internal/gtest-param-util.h"
#include "gtest/internal/gtest-param-util.h"
#include "gtest/internal/gtest-port.h"
#include "gtest/internal/gtest-port.h"
#if GTEST_HAS_PARAM_TEST
namespace
testing
{
namespace
testing
{
// Forward declarations of ValuesIn(), which is implemented in
// Forward declarations of ValuesIn(), which is implemented in
...
@@ -3208,7 +3203,7 @@ class CartesianProductGenerator2
...
@@ -3208,7 +3203,7 @@ class CartesianProductGenerator2
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -3240,7 +3235,7 @@ class CartesianProductGenerator2
...
@@ -3240,7 +3235,7 @@ class CartesianProductGenerator2
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
*
current1_
,
*
current2_
);
current_value_
.
reset
(
new
ParamType
(
*
current1_
,
*
current2_
)
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -3262,7 +3257,7 @@ class CartesianProductGenerator2
...
@@ -3262,7 +3257,7 @@ class CartesianProductGenerator2
const
typename
ParamGenerator
<
T2
>::
iterator
begin2_
;
const
typename
ParamGenerator
<
T2
>::
iterator
begin2_
;
const
typename
ParamGenerator
<
T2
>::
iterator
end2_
;
const
typename
ParamGenerator
<
T2
>::
iterator
end2_
;
typename
ParamGenerator
<
T2
>::
iterator
current2_
;
typename
ParamGenerator
<
T2
>::
iterator
current2_
;
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator2::Iterator
};
// class CartesianProductGenerator2::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -3331,7 +3326,7 @@ class CartesianProductGenerator3
...
@@ -3331,7 +3326,7 @@ class CartesianProductGenerator3
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -3367,7 +3362,7 @@ class CartesianProductGenerator3
...
@@ -3367,7 +3362,7 @@ class CartesianProductGenerator3
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
);
current_value_
.
reset
(
new
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
)
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -3393,7 +3388,7 @@ class CartesianProductGenerator3
...
@@ -3393,7 +3388,7 @@ class CartesianProductGenerator3
const
typename
ParamGenerator
<
T3
>::
iterator
begin3_
;
const
typename
ParamGenerator
<
T3
>::
iterator
begin3_
;
const
typename
ParamGenerator
<
T3
>::
iterator
end3_
;
const
typename
ParamGenerator
<
T3
>::
iterator
end3_
;
typename
ParamGenerator
<
T3
>::
iterator
current3_
;
typename
ParamGenerator
<
T3
>::
iterator
current3_
;
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator3::Iterator
};
// class CartesianProductGenerator3::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -3472,7 +3467,7 @@ class CartesianProductGenerator4
...
@@ -3472,7 +3467,7 @@ class CartesianProductGenerator4
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -3512,8 +3507,8 @@ class CartesianProductGenerator4
...
@@ -3512,8 +3507,8 @@ class CartesianProductGenerator4
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
current_value_
.
reset
(
new
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
*
current4_
);
*
current4_
)
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -3543,7 +3538,7 @@ class CartesianProductGenerator4
...
@@ -3543,7 +3538,7 @@ class CartesianProductGenerator4
const
typename
ParamGenerator
<
T4
>::
iterator
begin4_
;
const
typename
ParamGenerator
<
T4
>::
iterator
begin4_
;
const
typename
ParamGenerator
<
T4
>::
iterator
end4_
;
const
typename
ParamGenerator
<
T4
>::
iterator
end4_
;
typename
ParamGenerator
<
T4
>::
iterator
current4_
;
typename
ParamGenerator
<
T4
>::
iterator
current4_
;
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator4::Iterator
};
// class CartesianProductGenerator4::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -3630,7 +3625,7 @@ class CartesianProductGenerator5
...
@@ -3630,7 +3625,7 @@ class CartesianProductGenerator5
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -3674,8 +3669,8 @@ class CartesianProductGenerator5
...
@@ -3674,8 +3669,8 @@ class CartesianProductGenerator5
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
current_value_
.
reset
(
new
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
*
current4_
,
*
current5_
);
*
current4_
,
*
current5_
)
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -3709,7 +3704,7 @@ class CartesianProductGenerator5
...
@@ -3709,7 +3704,7 @@ class CartesianProductGenerator5
const
typename
ParamGenerator
<
T5
>::
iterator
begin5_
;
const
typename
ParamGenerator
<
T5
>::
iterator
begin5_
;
const
typename
ParamGenerator
<
T5
>::
iterator
end5_
;
const
typename
ParamGenerator
<
T5
>::
iterator
end5_
;
typename
ParamGenerator
<
T5
>::
iterator
current5_
;
typename
ParamGenerator
<
T5
>::
iterator
current5_
;
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator5::Iterator
};
// class CartesianProductGenerator5::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -3807,7 +3802,7 @@ class CartesianProductGenerator6
...
@@ -3807,7 +3802,7 @@ class CartesianProductGenerator6
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -3855,8 +3850,8 @@ class CartesianProductGenerator6
...
@@ -3855,8 +3850,8 @@ class CartesianProductGenerator6
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
current_value_
.
reset
(
new
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
*
current4_
,
*
current5_
,
*
current6_
);
*
current4_
,
*
current5_
,
*
current6_
)
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -3894,7 +3889,7 @@ class CartesianProductGenerator6
...
@@ -3894,7 +3889,7 @@ class CartesianProductGenerator6
const
typename
ParamGenerator
<
T6
>::
iterator
begin6_
;
const
typename
ParamGenerator
<
T6
>::
iterator
begin6_
;
const
typename
ParamGenerator
<
T6
>::
iterator
end6_
;
const
typename
ParamGenerator
<
T6
>::
iterator
end6_
;
typename
ParamGenerator
<
T6
>::
iterator
current6_
;
typename
ParamGenerator
<
T6
>::
iterator
current6_
;
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator6::Iterator
};
// class CartesianProductGenerator6::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -4001,7 +3996,7 @@ class CartesianProductGenerator7
...
@@ -4001,7 +3996,7 @@ class CartesianProductGenerator7
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -4053,8 +4048,8 @@ class CartesianProductGenerator7
...
@@ -4053,8 +4048,8 @@ class CartesianProductGenerator7
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
current_value_
.
reset
(
new
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
*
current4_
,
*
current5_
,
*
current6_
,
*
current7_
);
*
current4_
,
*
current5_
,
*
current6_
,
*
current7_
)
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -4096,7 +4091,7 @@ class CartesianProductGenerator7
...
@@ -4096,7 +4091,7 @@ class CartesianProductGenerator7
const
typename
ParamGenerator
<
T7
>::
iterator
begin7_
;
const
typename
ParamGenerator
<
T7
>::
iterator
begin7_
;
const
typename
ParamGenerator
<
T7
>::
iterator
end7_
;
const
typename
ParamGenerator
<
T7
>::
iterator
end7_
;
typename
ParamGenerator
<
T7
>::
iterator
current7_
;
typename
ParamGenerator
<
T7
>::
iterator
current7_
;
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator7::Iterator
};
// class CartesianProductGenerator7::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -4214,7 +4209,7 @@ class CartesianProductGenerator8
...
@@ -4214,7 +4209,7 @@ class CartesianProductGenerator8
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -4270,8 +4265,8 @@ class CartesianProductGenerator8
...
@@ -4270,8 +4265,8 @@ class CartesianProductGenerator8
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
current_value_
.
reset
(
new
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
*
current4_
,
*
current5_
,
*
current6_
,
*
current7_
,
*
current8_
);
*
current4_
,
*
current5_
,
*
current6_
,
*
current7_
,
*
current8_
)
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -4317,7 +4312,7 @@ class CartesianProductGenerator8
...
@@ -4317,7 +4312,7 @@ class CartesianProductGenerator8
const
typename
ParamGenerator
<
T8
>::
iterator
begin8_
;
const
typename
ParamGenerator
<
T8
>::
iterator
begin8_
;
const
typename
ParamGenerator
<
T8
>::
iterator
end8_
;
const
typename
ParamGenerator
<
T8
>::
iterator
end8_
;
typename
ParamGenerator
<
T8
>::
iterator
current8_
;
typename
ParamGenerator
<
T8
>::
iterator
current8_
;
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator8::Iterator
};
// class CartesianProductGenerator8::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -4443,7 +4438,7 @@ class CartesianProductGenerator9
...
@@ -4443,7 +4438,7 @@ class CartesianProductGenerator9
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -4503,9 +4498,9 @@ class CartesianProductGenerator9
...
@@ -4503,9 +4498,9 @@ class CartesianProductGenerator9
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
current_value_
.
reset
(
new
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
*
current4_
,
*
current5_
,
*
current6_
,
*
current7_
,
*
current8_
,
*
current4_
,
*
current5_
,
*
current6_
,
*
current7_
,
*
current8_
,
*
current9_
);
*
current9_
)
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -4555,7 +4550,7 @@ class CartesianProductGenerator9
...
@@ -4555,7 +4550,7 @@ class CartesianProductGenerator9
const
typename
ParamGenerator
<
T9
>::
iterator
begin9_
;
const
typename
ParamGenerator
<
T9
>::
iterator
begin9_
;
const
typename
ParamGenerator
<
T9
>::
iterator
end9_
;
const
typename
ParamGenerator
<
T9
>::
iterator
end9_
;
typename
ParamGenerator
<
T9
>::
iterator
current9_
;
typename
ParamGenerator
<
T9
>::
iterator
current9_
;
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator9::Iterator
};
// class CartesianProductGenerator9::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -4690,7 +4685,7 @@ class CartesianProductGenerator10
...
@@ -4690,7 +4685,7 @@ class CartesianProductGenerator10
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -4754,9 +4749,9 @@ class CartesianProductGenerator10
...
@@ -4754,9 +4749,9 @@ class CartesianProductGenerator10
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
current_value_
.
reset
(
new
ParamType
(
*
current1_
,
*
current2_
,
*
current3_
,
*
current4_
,
*
current5_
,
*
current6_
,
*
current7_
,
*
current8_
,
*
current4_
,
*
current5_
,
*
current6_
,
*
current7_
,
*
current8_
,
*
current9_
,
*
current10_
);
*
current9_
,
*
current10_
)
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -4810,7 +4805,7 @@ class CartesianProductGenerator10
...
@@ -4810,7 +4805,7 @@ class CartesianProductGenerator10
const
typename
ParamGenerator
<
T10
>::
iterator
begin10_
;
const
typename
ParamGenerator
<
T10
>::
iterator
begin10_
;
const
typename
ParamGenerator
<
T10
>::
iterator
end10_
;
const
typename
ParamGenerator
<
T10
>::
iterator
end10_
;
typename
ParamGenerator
<
T10
>::
iterator
current10_
;
typename
ParamGenerator
<
T10
>::
iterator
current10_
;
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator10::Iterator
};
// class CartesianProductGenerator10::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -5141,6 +5136,4 @@ CartesianProductHolder10(const Generator1& g1, const Generator2& g2,
...
@@ -5141,6 +5136,4 @@ CartesianProductHolder10(const Generator1& g1, const Generator2& g2,
}
// namespace internal
}
// namespace internal
}
// namespace testing
}
// namespace testing
#endif // GTEST_HAS_PARAM_TEST
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
googletest/include/gtest/internal/gtest-param-util-generated.h.pump
View file @
27bb844e
...
@@ -45,14 +45,9 @@ $var maxtuple = 10 $$ Maximum number of Combine arguments we want to support.
...
@@ -45,14 +45,9 @@ $var maxtuple = 10 $$ Maximum number of Combine arguments we want to support.
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
// scripts/fuse_gtest.py depends on gtest's own header being #included
// *unconditionally*. Therefore these #includes cannot be moved
// inside #if GTEST_HAS_PARAM_TEST.
#include "gtest/internal/gtest-param-util.h"
#include "gtest/internal/gtest-param-util.h"
#include "gtest/internal/gtest-port.h"
#include "gtest/internal/gtest-port.h"
#if GTEST_HAS_PARAM_TEST
namespace
testing
{
namespace
testing
{
// Forward declarations of ValuesIn(), which is implemented in
// Forward declarations of ValuesIn(), which is implemented in
...
@@ -165,7 +160,7 @@ $for k [[
...
@@ -165,7 +160,7 @@ $for k [[
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
virtual
ParamIteratorInterface
<
ParamType
>*
Clone
()
const
{
return
new
Iterator
(
*
this
);
return
new
Iterator
(
*
this
);
}
}
virtual
const
ParamType
*
Current
()
const
{
return
&
current_value_
;
}
virtual
const
ParamType
*
Current
()
const
{
return
current_value_
.
get
()
;
}
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
virtual
bool
Equals
(
const
ParamIteratorInterface
<
ParamType
>&
other
)
const
{
// Having the same base generator guarantees that the other
// Having the same base generator guarantees that the other
// iterator is of the same type and we can downcast.
// iterator is of the same type and we can downcast.
...
@@ -197,7 +192,7 @@ $for k [[
...
@@ -197,7 +192,7 @@ $for k [[
void
ComputeCurrentValue
()
{
void
ComputeCurrentValue
()
{
if
(
!
AtEnd
())
if
(
!
AtEnd
())
current_value_
=
ParamType
(
$
for
j
,
[[
*
current
$
(
j
)
_
]]);
current_value_
.
reset
(
new
ParamType
(
$
for
j
,
[[
*
current
$
(
j
)
_
]])
)
;
}
}
bool
AtEnd
()
const
{
bool
AtEnd
()
const
{
// We must report iterator past the end of the range when either of the
// We must report iterator past the end of the range when either of the
...
@@ -222,7 +217,7 @@ $for j [[
...
@@ -222,7 +217,7 @@ $for j [[
typename
ParamGenerator
<
T
$
j
>::
iterator
current
$
(
j
)
_
;
typename
ParamGenerator
<
T
$
j
>::
iterator
current
$
(
j
)
_
;
]]
]]
ParamType
current_value_
;
linked_ptr
<
ParamType
>
current_value_
;
};
// class CartesianProductGenerator$i::Iterator
};
// class CartesianProductGenerator$i::Iterator
// No implementation - assignment is unsupported.
// No implementation - assignment is unsupported.
...
@@ -281,6 +276,4 @@ $for j [[
...
@@ -281,6 +276,4 @@ $for j [[
}
// namespace internal
}
// namespace internal
}
// namespace testing
}
// namespace testing
#endif // GTEST_HAS_PARAM_TEST
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
googletest/include/gtest/internal/gtest-param-util.h
View file @
27bb844e
...
@@ -41,16 +41,11 @@
...
@@ -41,16 +41,11 @@
#include <utility>
#include <utility>
#include <vector>
#include <vector>
// scripts/fuse_gtest.py depends on gtest's own header being #included
// *unconditionally*. Therefore these #includes cannot be moved
// inside #if GTEST_HAS_PARAM_TEST.
#include "gtest/internal/gtest-internal.h"
#include "gtest/internal/gtest-internal.h"
#include "gtest/internal/gtest-linked_ptr.h"
#include "gtest/internal/gtest-linked_ptr.h"
#include "gtest/internal/gtest-port.h"
#include "gtest/internal/gtest-port.h"
#include "gtest/gtest-printers.h"
#include "gtest/gtest-printers.h"
#if GTEST_HAS_PARAM_TEST
namespace
testing
{
namespace
testing
{
// Input to a parameterized test name generator, describing a test parameter.
// Input to a parameterized test name generator, describing a test parameter.
...
@@ -725,6 +720,4 @@ class ParameterizedTestCaseRegistry {
...
@@ -725,6 +720,4 @@ class ParameterizedTestCaseRegistry {
}
// namespace internal
}
// namespace internal
}
// namespace testing
}
// namespace testing
#endif // GTEST_HAS_PARAM_TEST
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
googletest/include/gtest/internal/gtest-port.h
View file @
27bb844e
...
@@ -171,7 +171,6 @@
...
@@ -171,7 +171,6 @@
// GTEST_HAS_COMBINE - the Combine() function (for value-parameterized
// GTEST_HAS_COMBINE - the Combine() function (for value-parameterized
// tests)
// tests)
// GTEST_HAS_DEATH_TEST - death tests
// GTEST_HAS_DEATH_TEST - death tests
// GTEST_HAS_PARAM_TEST - value-parameterized tests
// GTEST_HAS_TYPED_TEST - typed tests
// GTEST_HAS_TYPED_TEST - typed tests
// GTEST_HAS_TYPED_TEST_P - type-parameterized tests
// GTEST_HAS_TYPED_TEST_P - type-parameterized tests
// GTEST_IS_THREADSAFE - Google Test is thread-safe.
// GTEST_IS_THREADSAFE - Google Test is thread-safe.
...
@@ -815,11 +814,6 @@ using ::std::tuple_size;
...
@@ -815,11 +814,6 @@ using ::std::tuple_size;
# define GTEST_HAS_DEATH_TEST 1
# define GTEST_HAS_DEATH_TEST 1
#endif
#endif
// We don't support MSVC 7.1 with exceptions disabled now. Therefore
// all the compilers we care about are adequate for supporting
// value-parameterized tests.
#define GTEST_HAS_PARAM_TEST 1
// Determines whether to support type-driven tests.
// Determines whether to support type-driven tests.
// Typed tests need <typeinfo> and variadic macros, which GCC, VC++ 8.0,
// Typed tests need <typeinfo> and variadic macros, which GCC, VC++ 8.0,
...
@@ -830,11 +824,10 @@ using ::std::tuple_size;
...
@@ -830,11 +824,10 @@ using ::std::tuple_size;
# define GTEST_HAS_TYPED_TEST_P 1
# define GTEST_HAS_TYPED_TEST_P 1
#endif
#endif
// Determines whether to support Combine(). This only makes sense when
// Determines whether to support Combine().
// value-parameterized tests are enabled. The implementation doesn't
// The implementation doesn't work on Sun Studio since it doesn't
// work on Sun Studio since it doesn't understand templated conversion
// understand templated conversion operators.
// operators.
#if (GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_) && !defined(__SUNPRO_CC)
#if GTEST_HAS_PARAM_TEST && GTEST_HAS_TR1_TUPLE && !defined(__SUNPRO_CC)
# define GTEST_HAS_COMBINE 1
# define GTEST_HAS_COMBINE 1
#endif
#endif
...
@@ -886,7 +879,7 @@ using ::std::tuple_size;
...
@@ -886,7 +879,7 @@ using ::std::tuple_size;
#endif
#endif
// Use this annotation before a function that takes a printf format string.
// Use this annotation before a function that takes a printf format string.
#if defined(__GNUC__) && !defined(COMPILER_ICC)
#if
(
defined(__GNUC__)
|| defined(__clang__))
&& !defined(COMPILER_ICC)
# if defined(__MINGW_PRINTF_FORMAT)
# if defined(__MINGW_PRINTF_FORMAT)
// MinGW has two different printf implementations. Ensure the format macro
// MinGW has two different printf implementations. Ensure the format macro
// matches the selected implementation. See
// matches the selected implementation. See
...
...
googletest/include/gtest/internal/gtest-string.h
View file @
27bb844e
...
@@ -27,7 +27,6 @@
...
@@ -27,7 +27,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//
// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee)
//
//
// The Google C++ Testing Framework (Google Test)
// The Google C++ Testing Framework (Google Test)
//
//
...
@@ -35,7 +34,8 @@
...
@@ -35,7 +34,8 @@
// Google Test. They are subject to change without notice. They should not used
// Google Test. They are subject to change without notice. They should not used
// by code external to Google Test.
// by code external to Google Test.
//
//
// This header file is #included by <gtest/internal/gtest-internal.h>.
// This header file is #included by
// gtest/internal/gtest-internal.h.
// It should not be #included by other files.
// It should not be #included by other files.
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
...
...
googletest/samples/prime_tables.h
View file @
27bb844e
...
@@ -103,11 +103,15 @@ class PreCalculatedPrimeTable : public PrimeTable {
...
@@ -103,11 +103,15 @@ class PreCalculatedPrimeTable : public PrimeTable {
::
std
::
fill
(
is_prime_
,
is_prime_
+
is_prime_size_
,
true
);
::
std
::
fill
(
is_prime_
,
is_prime_
+
is_prime_size_
,
true
);
is_prime_
[
0
]
=
is_prime_
[
1
]
=
false
;
is_prime_
[
0
]
=
is_prime_
[
1
]
=
false
;
for
(
int
i
=
2
;
i
<=
max
;
i
++
)
{
// Checks every candidate for prime number (we know that 2 is the only even
// prime).
for
(
int
i
=
2
;
i
*
i
<=
max
;
i
+=
i
%
2
+
1
)
{
if
(
!
is_prime_
[
i
])
continue
;
if
(
!
is_prime_
[
i
])
continue
;
// Marks all multiples of i (except i itself) as non-prime.
// Marks all multiples of i (except i itself) as non-prime.
for
(
int
j
=
2
*
i
;
j
<=
max
;
j
+=
i
)
{
// We are starting here from i-th multiplier, because all smaller
// complex numbers were already marked.
for
(
int
j
=
i
*
i
;
j
<=
max
;
j
+=
i
)
{
is_prime_
[
j
]
=
false
;
is_prime_
[
j
]
=
false
;
}
}
}
}
...
...
googletest/samples/sample4_unittest.cc
View file @
27bb844e
...
@@ -29,10 +29,12 @@
...
@@ -29,10 +29,12 @@
//
//
// Author: wan@google.com (Zhanyong Wan)
// Author: wan@google.com (Zhanyong Wan)
#include "gtest/gtest.h"
#include "sample4.h"
#include "sample4.h"
#include "gtest/gtest.h"
namespace
{
namespace
{
// Tests the Increment() method.
// Tests the Increment() method.
TEST
(
Counter
,
Increment
)
{
TEST
(
Counter
,
Increment
)
{
Counter
c
;
Counter
c
;
...
@@ -43,4 +45,5 @@ TEST(Counter, Increment) {
...
@@ -43,4 +45,5 @@ TEST(Counter, Increment) {
EXPECT_EQ
(
1
,
c
.
Increment
());
EXPECT_EQ
(
1
,
c
.
Increment
());
EXPECT_EQ
(
2
,
c
.
Increment
());
EXPECT_EQ
(
2
,
c
.
Increment
());
}
}
}
// namespace
}
// namespace
googletest/samples/sample5_unittest.cc
View file @
27bb844e
...
@@ -46,9 +46,9 @@
...
@@ -46,9 +46,9 @@
#include <limits.h>
#include <limits.h>
#include <time.h>
#include <time.h>
#include "sample3-inl.h"
#include "gtest/gtest.h"
#include "gtest/gtest.h"
#include "sample1.h"
#include "sample1.h"
#include "sample3-inl.h"
namespace
{
namespace
{
// In this sample, we want to ensure that every test finishes within
// In this sample, we want to ensure that every test finishes within
// ~5 seconds. If a test takes longer to run, we consider it a
// ~5 seconds. If a test takes longer to run, we consider it a
...
...
googletest/samples/sample7_unittest.cc
View file @
27bb844e
...
@@ -40,7 +40,6 @@
...
@@ -40,7 +40,6 @@
#include "gtest/gtest.h"
#include "gtest/gtest.h"
namespace
{
namespace
{
#if GTEST_HAS_PARAM_TEST
using
::
testing
::
TestWithParam
;
using
::
testing
::
TestWithParam
;
using
::
testing
::
Values
;
using
::
testing
::
Values
;
...
@@ -116,15 +115,4 @@ INSTANTIATE_TEST_CASE_P(OnTheFlyAndPreCalculated, PrimeTableTestSmpl7,
...
@@ -116,15 +115,4 @@ INSTANTIATE_TEST_CASE_P(OnTheFlyAndPreCalculated, PrimeTableTestSmpl7,
Values
(
&
CreateOnTheFlyPrimeTable
,
Values
(
&
CreateOnTheFlyPrimeTable
,
&
CreatePreCalculatedPrimeTable
<
1000
>
));
&
CreatePreCalculatedPrimeTable
<
1000
>
));
#else
// Google Test may not support value-parameterized tests with some
// compilers. If we use conditional compilation to compile out all
// code referring to the gtest_main library, MSVC linker will not link
// that library at all and consequently complain about missing entry
// point defined in that library (fatal error LNK1561: entry point
// must be defined). This dummy test keeps gtest_main linked in.
TEST
(
DummyTest
,
ValueParameterizedTestsAreNotSupportedOnThisPlatform
)
{}
#endif // GTEST_HAS_PARAM_TEST
}
// namespace
}
// namespace
googletest/src/gtest-death-test.cc
View file @
27bb844e
...
@@ -66,15 +66,7 @@
...
@@ -66,15 +66,7 @@
#include "gtest/gtest-message.h"
#include "gtest/gtest-message.h"
#include "gtest/internal/gtest-string.h"
#include "gtest/internal/gtest-string.h"
// Indicates that this translation unit is part of Google Test's
// implementation. It must come before gtest-internal-inl.h is
// included, or there will be a compiler error. This trick exists to
// prevent the accidental inclusion of gtest-internal-inl.h in the
// user's code.
#define GTEST_IMPLEMENTATION_ 1
#include "src/gtest-internal-inl.h"
#include "src/gtest-internal-inl.h"
#undef GTEST_IMPLEMENTATION_
namespace
testing
{
namespace
testing
{
...
@@ -259,7 +251,7 @@ enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW };
...
@@ -259,7 +251,7 @@ enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW };
// message is propagated back to the parent process. Otherwise, the
// message is propagated back to the parent process. Otherwise, the
// message is simply printed to stderr. In either case, the program
// message is simply printed to stderr. In either case, the program
// then exits with status 1.
// then exits with status 1.
void
DeathTestAbort
(
const
std
::
string
&
message
)
{
static
void
DeathTestAbort
(
const
std
::
string
&
message
)
{
// On a POSIX system, this function may be called from a threadsafe-style
// On a POSIX system, this function may be called from a threadsafe-style
// death test child process, which operates on a very small stack. Use
// death test child process, which operates on a very small stack. Use
// the heap for any additional non-minuscule memory requirements.
// the heap for any additional non-minuscule memory requirements.
...
@@ -985,6 +977,7 @@ static int ExecDeathTestChildMain(void* child_arg) {
...
@@ -985,6 +977,7 @@ static int ExecDeathTestChildMain(void* child_arg) {
}
}
# endif // !GTEST_OS_QNX
# endif // !GTEST_OS_QNX
# if GTEST_HAS_CLONE
// Two utility routines that together determine the direction the stack
// Two utility routines that together determine the direction the stack
// grows.
// grows.
// This could be accomplished more elegantly by a single recursive
// This could be accomplished more elegantly by a single recursive
...
@@ -994,20 +987,22 @@ static int ExecDeathTestChildMain(void* child_arg) {
...
@@ -994,20 +987,22 @@ static int ExecDeathTestChildMain(void* child_arg) {
// GTEST_NO_INLINE_ is required to prevent GCC 4.6 from inlining
// GTEST_NO_INLINE_ is required to prevent GCC 4.6 from inlining
// StackLowerThanAddress into StackGrowsDown, which then doesn't give
// StackLowerThanAddress into StackGrowsDown, which then doesn't give
// correct answer.
// correct answer.
void
StackLowerThanAddress
(
const
void
*
ptr
,
bool
*
result
)
GTEST_NO_INLINE_
;
static
void
StackLowerThanAddress
(
const
void
*
ptr
,
void
StackLowerThanAddress
(
const
void
*
ptr
,
bool
*
result
)
{
bool
*
result
)
GTEST_NO_INLINE_
;
static
void
StackLowerThanAddress
(
const
void
*
ptr
,
bool
*
result
)
{
int
dummy
;
int
dummy
;
*
result
=
(
&
dummy
<
ptr
);
*
result
=
(
&
dummy
<
ptr
);
}
}
// Make sure AddressSanitizer does not tamper with the stack here.
// Make sure AddressSanitizer does not tamper with the stack here.
GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
bool
StackGrowsDown
()
{
static
bool
StackGrowsDown
()
{
int
dummy
;
int
dummy
;
bool
result
;
bool
result
;
StackLowerThanAddress
(
&
dummy
,
&
result
);
StackLowerThanAddress
(
&
dummy
,
&
result
);
return
result
;
return
result
;
}
}
# endif // GTEST_HAS_CLONE
// Spawns a child process with the same executable as the current process in
// Spawns a child process with the same executable as the current process in
// a thread-safe manner and instructs it to run the death test. The
// a thread-safe manner and instructs it to run the death test. The
...
@@ -1223,12 +1218,12 @@ bool DefaultDeathTestFactory::Create(const char* statement, const RE* regex,
...
@@ -1223,12 +1218,12 @@ bool DefaultDeathTestFactory::Create(const char* statement, const RE* regex,
// Recreates the pipe and event handles from the provided parameters,
// Recreates the pipe and event handles from the provided parameters,
// signals the event, and returns a file descriptor wrapped around the pipe
// signals the event, and returns a file descriptor wrapped around the pipe
// handle. This function is called in the child process only.
// handle. This function is called in the child process only.
int
GetStatusFileDescriptor
(
unsigned
int
parent_process_id
,
static
int
GetStatusFileDescriptor
(
unsigned
int
parent_process_id
,
size_t
write_handle_as_size_t
,
size_t
write_handle_as_size_t
,
size_t
event_handle_as_size_t
)
{
size_t
event_handle_as_size_t
)
{
AutoHandle
parent_process_handle
(
::
OpenProcess
(
PROCESS_DUP_HANDLE
,
AutoHandle
parent_process_handle
(
::
OpenProcess
(
PROCESS_DUP_HANDLE
,
FALSE
,
// Non-inheritable.
FALSE
,
// Non-inheritable.
parent_process_id
));
parent_process_id
));
if
(
parent_process_handle
.
Get
()
==
INVALID_HANDLE_VALUE
)
{
if
(
parent_process_handle
.
Get
()
==
INVALID_HANDLE_VALUE
)
{
DeathTestAbort
(
"Unable to open parent process "
+
DeathTestAbort
(
"Unable to open parent process "
+
StreamableToString
(
parent_process_id
));
StreamableToString
(
parent_process_id
));
...
...
googletest/src/gtest-filepath.cc
View file @
27bb844e
...
@@ -26,14 +26,12 @@
...
@@ -26,14 +26,12 @@
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// Authors: keith.ray@gmail.com (Keith Ray)
#include "gtest/gtest-message.h"
#include "gtest/internal/gtest-filepath.h"
#include "gtest/internal/gtest-filepath.h"
#include "gtest/internal/gtest-port.h"
#include <stdlib.h>
#include <stdlib.h>
#include "gtest/internal/gtest-port.h"
#include "gtest/gtest-message.h"
#if GTEST_OS_WINDOWS_MOBILE
#if GTEST_OS_WINDOWS_MOBILE
# include <windows.h>
# include <windows.h>
...
@@ -48,6 +46,8 @@
...
@@ -48,6 +46,8 @@
# include <climits> // Some Linux distributions define PATH_MAX here.
# include <climits> // Some Linux distributions define PATH_MAX here.
#endif // GTEST_OS_WINDOWS_MOBILE
#endif // GTEST_OS_WINDOWS_MOBILE
#include "gtest/internal/gtest-string.h"
#if GTEST_OS_WINDOWS
#if GTEST_OS_WINDOWS
# define GTEST_PATH_MAX_ _MAX_PATH
# define GTEST_PATH_MAX_ _MAX_PATH
#elif defined(PATH_MAX)
#elif defined(PATH_MAX)
...
@@ -58,8 +58,6 @@
...
@@ -58,8 +58,6 @@
# define GTEST_PATH_MAX_ _POSIX_PATH_MAX
# define GTEST_PATH_MAX_ _POSIX_PATH_MAX
#endif // GTEST_OS_WINDOWS
#endif // GTEST_OS_WINDOWS
#include "gtest/internal/gtest-string.h"
namespace
testing
{
namespace
testing
{
namespace
internal
{
namespace
internal
{
...
...
googletest/src/gtest-internal-inl.h
View file @
27bb844e
...
@@ -37,14 +37,6 @@
...
@@ -37,14 +37,6 @@
#ifndef GTEST_SRC_GTEST_INTERNAL_INL_H_
#ifndef GTEST_SRC_GTEST_INTERNAL_INL_H_
#define GTEST_SRC_GTEST_INTERNAL_INL_H_
#define GTEST_SRC_GTEST_INTERNAL_INL_H_
// GTEST_IMPLEMENTATION_ is defined to 1 iff the current translation unit is
// part of Google Test's implementation; otherwise it's undefined.
#if !GTEST_IMPLEMENTATION_
// If this file is included from the user's code, just say no.
# error "gtest-internal-inl.h is part of Google Test's internal implementation."
# error "It must not be included except by Google Test itself."
#endif // GTEST_IMPLEMENTATION_
#ifndef _WIN32_WCE
#ifndef _WIN32_WCE
# include <errno.h>
# include <errno.h>
#endif // !_WIN32_WCE
#endif // !_WIN32_WCE
...
@@ -664,13 +656,11 @@ class GTEST_API_ UnitTestImpl {
...
@@ -664,13 +656,11 @@ class GTEST_API_ UnitTestImpl {
tear_down_tc
)
->
AddTestInfo
(
test_info
);
tear_down_tc
)
->
AddTestInfo
(
test_info
);
}
}
#if GTEST_HAS_PARAM_TEST
// Returns ParameterizedTestCaseRegistry object used to keep track of
// Returns ParameterizedTestCaseRegistry object used to keep track of
// value-parameterized tests and instantiate and register them.
// value-parameterized tests and instantiate and register them.
internal
::
ParameterizedTestCaseRegistry
&
parameterized_test_registry
()
{
internal
::
ParameterizedTestCaseRegistry
&
parameterized_test_registry
()
{
return
parameterized_test_registry_
;
return
parameterized_test_registry_
;
}
}
#endif // GTEST_HAS_PARAM_TEST
// Sets the TestCase object for the test that's currently running.
// Sets the TestCase object for the test that's currently running.
void
set_current_test_case
(
TestCase
*
a_current_test_case
)
{
void
set_current_test_case
(
TestCase
*
a_current_test_case
)
{
...
@@ -845,14 +835,12 @@ class GTEST_API_ UnitTestImpl {
...
@@ -845,14 +835,12 @@ class GTEST_API_ UnitTestImpl {
// shuffled order.
// shuffled order.
std
::
vector
<
int
>
test_case_indices_
;
std
::
vector
<
int
>
test_case_indices_
;
#if GTEST_HAS_PARAM_TEST
// ParameterizedTestRegistry object used to register value-parameterized
// ParameterizedTestRegistry object used to register value-parameterized
// tests.
// tests.
internal
::
ParameterizedTestCaseRegistry
parameterized_test_registry_
;
internal
::
ParameterizedTestCaseRegistry
parameterized_test_registry_
;
// Indicates whether RegisterParameterizedTests() has been called already.
// Indicates whether RegisterParameterizedTests() has been called already.
bool
parameterized_tests_registered_
;
bool
parameterized_tests_registered_
;
#endif // GTEST_HAS_PARAM_TEST
// Index of the last death test case registered. Initially -1.
// Index of the last death test case registered. Initially -1.
int
last_death_test_case_
;
int
last_death_test_case_
;
...
...
googletest/src/gtest-port.cc
View file @
27bb844e
...
@@ -67,15 +67,7 @@
...
@@ -67,15 +67,7 @@
#include "gtest/gtest-message.h"
#include "gtest/gtest-message.h"
#include "gtest/internal/gtest-internal.h"
#include "gtest/internal/gtest-internal.h"
#include "gtest/internal/gtest-string.h"
#include "gtest/internal/gtest-string.h"
// Indicates that this translation unit is part of Google Test's
// implementation. It must come before gtest-internal-inl.h is
// included, or there will be a compiler error. This trick exists to
// prevent the accidental inclusion of gtest-internal-inl.h in the
// user's code.
#define GTEST_IMPLEMENTATION_ 1
#include "src/gtest-internal-inl.h"
#include "src/gtest-internal-inl.h"
#undef GTEST_IMPLEMENTATION_
namespace
testing
{
namespace
testing
{
namespace
internal
{
namespace
internal
{
...
@@ -671,7 +663,7 @@ bool AtomMatchesChar(bool escaped, char pattern_char, char ch) {
...
@@ -671,7 +663,7 @@ bool AtomMatchesChar(bool escaped, char pattern_char, char ch) {
}
}
// Helper function used by ValidateRegex() to format error messages.
// Helper function used by ValidateRegex() to format error messages.
std
::
string
FormatRegexSyntaxError
(
const
char
*
regex
,
int
index
)
{
static
std
::
string
FormatRegexSyntaxError
(
const
char
*
regex
,
int
index
)
{
return
(
Message
()
<<
"Syntax error at index "
<<
index
return
(
Message
()
<<
"Syntax error at index "
<<
index
<<
" in simple regular expression
\"
"
<<
regex
<<
"
\"
: "
).
GetString
();
<<
" in simple regular expression
\"
"
<<
regex
<<
"
\"
: "
).
GetString
();
}
}
...
@@ -1015,7 +1007,9 @@ static CapturedStream* g_captured_stderr = NULL;
...
@@ -1015,7 +1007,9 @@ static CapturedStream* g_captured_stderr = NULL;
static
CapturedStream
*
g_captured_stdout
=
NULL
;
static
CapturedStream
*
g_captured_stdout
=
NULL
;
// Starts capturing an output stream (stdout/stderr).
// Starts capturing an output stream (stdout/stderr).
void
CaptureStream
(
int
fd
,
const
char
*
stream_name
,
CapturedStream
**
stream
)
{
static
void
CaptureStream
(
int
fd
,
const
char
*
stream_name
,
CapturedStream
**
stream
)
{
if
(
*
stream
!=
NULL
)
{
if
(
*
stream
!=
NULL
)
{
GTEST_LOG_
(
FATAL
)
<<
"Only one "
<<
stream_name
GTEST_LOG_
(
FATAL
)
<<
"Only one "
<<
stream_name
<<
" capturer can exist at a time."
;
<<
" capturer can exist at a time."
;
...
@@ -1024,7 +1018,7 @@ void CaptureStream(int fd, const char* stream_name, CapturedStream** stream) {
...
@@ -1024,7 +1018,7 @@ void CaptureStream(int fd, const char* stream_name, CapturedStream** stream) {
}
}
// Stops capturing the output stream and returns the captured string.
// Stops capturing the output stream and returns the captured string.
std
::
string
GetCapturedStream
(
CapturedStream
**
captured_stream
)
{
static
std
::
string
GetCapturedStream
(
CapturedStream
**
captured_stream
)
{
const
std
::
string
content
=
(
*
captured_stream
)
->
GetCapturedString
();
const
std
::
string
content
=
(
*
captured_stream
)
->
GetCapturedString
();
delete
*
captured_stream
;
delete
*
captured_stream
;
...
...
googletest/src/gtest-test-part.cc
View file @
27bb844e
...
@@ -32,15 +32,7 @@
...
@@ -32,15 +32,7 @@
// The Google C++ Testing Framework (Google Test)
// The Google C++ Testing Framework (Google Test)
#include "gtest/gtest-test-part.h"
#include "gtest/gtest-test-part.h"
// Indicates that this translation unit is part of Google Test's
// implementation. It must come before gtest-internal-inl.h is
// included, or there will be a compiler error. This trick exists to
// prevent the accidental inclusion of gtest-internal-inl.h in the
// user's code.
#define GTEST_IMPLEMENTATION_ 1
#include "src/gtest-internal-inl.h"
#include "src/gtest-internal-inl.h"
#undef GTEST_IMPLEMENTATION_
namespace
testing
{
namespace
testing
{
...
...
Prev
1
2
3
4
5
Next
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