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
1489dc8d
Unverified
Commit
1489dc8d
authored
Jan 18, 2018
by
Gennadiy Civil
Committed by
GitHub
Jan 18, 2018
Browse files
Merge branch 'master' into support_xboxone
parents
ea8f6f0e
05105305
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
415 additions
and
128 deletions
+415
-128
googlemock/CMakeLists.txt
googlemock/CMakeLists.txt
+40
-23
googletest/docs/AdvancedGuide.md
googletest/docs/AdvancedGuide.md
+9
-7
googletest/include/gtest/gtest.h
googletest/include/gtest/gtest.h
+72
-18
googletest/include/gtest/gtest_pred_impl.h
googletest/include/gtest/gtest_pred_impl.h
+6
-7
googletest/include/gtest/internal/gtest-internal.h
googletest/include/gtest/internal/gtest-internal.h
+4
-47
googletest/src/gtest.cc
googletest/src/gtest.cc
+19
-20
googletest/test/BUILD.bazel
googletest/test/BUILD.bazel
+243
-1
googletest/test/gtest_output_test.py
googletest/test/gtest_output_test.py
+2
-1
googletest/test/gtest_output_test_.cc
googletest/test/gtest_output_test_.cc
+7
-0
googletest/test/gtest_output_test_golden_lin.txt
googletest/test/gtest_output_test_golden_lin.txt
+13
-4
No files found.
googlemock/CMakeLists.txt
View file @
1489dc8d
...
...
@@ -88,16 +88,23 @@ endif()
# Google Mock libraries. We build them using more strict warnings than what
# are used for other targets, to ensure that Google Mock can be compiled by
# a user aggressive about warnings.
cxx_library
(
gmock
if
(
MSVC
)
cxx_library
(
gmock
"
${
cxx_strict
}
"
"
${
gtest_dir
}
/src/gtest-all.cc"
src/gmock-all.cc
)
cxx_library
(
gmock_main
cxx_library
(
gmock_main
"
${
cxx_strict
}
"
"
${
gtest_dir
}
/src/gtest-all.cc"
src/gmock-all.cc
src/gmock_main.cc
)
else
()
cxx_library
(
gmock
"
${
cxx_strict
}
"
src/gmock-all.cc
)
target_link_libraries
(
gmock gtest
)
cxx_library
(
gmock_main
"
${
cxx_strict
}
"
src/gmock_main.cc
)
target_link_libraries
(
gmock_main gmock
)
endif
()
# If the CMake version supports it, attach header directory information
# to the targets for when we are part of a parent build (ie being pulled
...
...
@@ -177,13 +184,14 @@ if (gmock_build_tests)
############################################################
# C++ tests built with non-standard compiler flags.
if
(
MSVC
)
cxx_library
(
gmock_main_no_exception
"
${
cxx_no_exception
}
"
"
${
gtest_dir
}
/src/gtest-all.cc"
src/gmock-all.cc src/gmock_main.cc
)
cxx_library
(
gmock_main_no_rtti
"
${
cxx_no_rtti
}
"
"
${
gtest_dir
}
/src/gtest-all.cc"
src/gmock-all.cc src/gmock_main.cc
)
if
(
NOT MSVC OR
MSVC_VERSION LESS 1600
)
# 1600 is Visual Studio 2010.
if
(
MSVC_VERSION LESS 1600
)
# 1600 is Visual Studio 2010.
# Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that
# conflict with our own definitions. Therefore using our own tuple does not
# work on those compilers.
...
...
@@ -193,7 +201,16 @@ if (gmock_build_tests)
cxx_test_with_flags
(
gmock_use_own_tuple_test
"
${
cxx_use_own_tuple
}
"
gmock_main_use_own_tuple test/gmock-spec-builders_test.cc
)
endif
()
else
()
cxx_library
(
gmock_main_no_exception
"
${
cxx_no_exception
}
"
src/gmock_main.cc
)
target_link_libraries
(
gmock_main_no_exception gmock
)
cxx_library
(
gmock_main_no_rtti
"
${
cxx_no_rtti
}
"
src/gmock_main.cc
)
target_link_libraries
(
gmock_main_no_rtti gmock
)
cxx_library
(
gmock_main_use_own_tuple
"
${
cxx_use_own_tuple
}
"
src/gmock_main.cc
)
target_link_libraries
(
gmock_main_use_own_tuple gmock
)
endif
()
cxx_test_with_flags
(
gmock-more-actions_no_exception_test
"
${
cxx_no_exception
}
"
gmock_main_no_exception test/gmock-more-actions_test.cc
)
...
...
googletest/docs/AdvancedGuide.md
View file @
1489dc8d
...
...
@@ -787,15 +787,17 @@ If a test sub-routine is called from several places, when an assertion
inside it fails, it can be hard to tell which invocation of the
sub-routine the failure is from. You can alleviate this problem using
extra logging or custom failure messages, but that usually clutters up
your tests. A better solution is to use the
`SCOPED_TRACE`
macro:
your tests. A better solution is to use the
`SCOPED_TRACE`
macro or
the
`ScopedTrace`
utility:
|
`SCOPED_TRACE(`
_message_
`);`
|
|:-----------------------------|
|
`SCOPED_TRACE(`
_message_
`);`
|
`::testing::ScopedTrace trace(`
_"file\_path"_
`, `
_line\_number_
`, `
_message_
`);`
|
|:-----------------------------|
:---------------------------------------------------------------------------------|
where _message_ can be anything streamable to
`std::ostream`
. This
macro will cause the current file name, line number, and the given
message to be added in every failure message. The effect will be
undone when the control leaves the current lexical scope.
where
`message`
can be anything streamable to
`std::ostream`
.
`SCOPED_TRACE`
macro will cause the current file name, line number, and the given message to be
added in every failure message.
`ScopedTrace`
accepts explicit file name and
line number in arguments, which is useful for writing test helpers. The effect
will be undone when the control leaves the current lexical scope.
For example,
...
...
googletest/include/gtest/gtest.h
View file @
1489dc8d
...
...
@@ -349,6 +349,15 @@ GTEST_API_ AssertionResult AssertionFailure();
// Deprecated; use AssertionFailure() << msg.
GTEST_API_
AssertionResult
AssertionFailure
(
const
Message
&
msg
);
}
// namespace testing
// Includes the auto-generated header that implements a family of generic
// predicate assertion macros. This include comes late because it relies on
// APIs declared above.
#include "gtest/gtest_pred_impl.h"
namespace
testing
{
// The abstract class that all tests inherit from.
//
// In Google Test, a unit test program contains one or many TestCases, and
...
...
@@ -359,7 +368,7 @@ GTEST_API_ AssertionResult AssertionFailure(const Message& msg);
// this for you.
//
// The only time you derive from Test is when defining a test fixture
// to be used a TEST_F. For example:
// to be used
in
a TEST_F. For example:
//
// class FooTest : public testing::Test {
// protected:
...
...
@@ -554,9 +563,8 @@ class GTEST_API_ TestResult {
// Returns the elapsed time, in milliseconds.
TimeInMillis
elapsed_time
()
const
{
return
elapsed_time_
;
}
// Returns the i-th test part result among all the results. i can range
// from 0 to test_property_count() - 1. If i is not in that range, aborts
// the program.
// Returns the i-th test part result among all the results. i can range from 0
// to total_part_count() - 1. If i is not in that range, aborts the program.
const
TestPartResult
&
GetTestPartResult
(
int
i
)
const
;
// Returns the i-th test property. i can range from 0 to
...
...
@@ -699,7 +707,7 @@ class GTEST_API_ TestInfo {
// Returns true iff this test will appear in the XML report.
bool
is_reportable
()
const
{
//
For now, t
he XML report includes
all
tests matching the filter.
//
T
he XML report includes tests matching the filter.
// In the future, we may trim tests that are excluded because of
// sharding.
return
matches_filter_
;
...
...
@@ -1291,9 +1299,9 @@ class GTEST_API_ UnitTest {
// These classes and functions are friends as they need to access private
// members of UnitTest.
friend
class
ScopedTrace
;
friend
class
Test
;
friend
class
internal
::
AssertHelper
;
friend
class
internal
::
ScopedTrace
;
friend
class
internal
::
StreamingListenerTest
;
friend
class
internal
::
UnitTestRecordPropertyTestHelper
;
friend
Environment
*
AddGlobalTestEnvironment
(
Environment
*
env
);
...
...
@@ -1782,7 +1790,6 @@ template <typename T>
class
TestWithParam
:
public
Test
,
public
WithParamInterface
<
T
>
{
};
// Macros for indicating success/failure in test code.
// ADD_FAILURE unconditionally adds a failure to the current test.
...
...
@@ -1855,22 +1862,18 @@ class TestWithParam : public Test, public WithParamInterface<T> {
// AssertionResult. For more information on how to use AssertionResult with
// these macros see comments on that class.
#define EXPECT_TRUE(condition) \
GTEST_TEST_BOOLEAN_(
(
condition
)
, #condition, false, true, \
GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
GTEST_NONFATAL_FAILURE_)
#define EXPECT_FALSE(condition) \
GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
GTEST_NONFATAL_FAILURE_)
#define ASSERT_TRUE(condition) \
GTEST_TEST_BOOLEAN_(
(
condition
)
, #condition, false, true, \
GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
GTEST_FATAL_FAILURE_)
#define ASSERT_FALSE(condition) \
GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
GTEST_FATAL_FAILURE_)
// Includes the auto-generated header that implements a family of
// generic predicate assertion macros.
#include "gtest/gtest_pred_impl.h"
// Macros for testing equalities and inequalities.
//
// * {ASSERT|EXPECT}_EQ(v1, v2): Tests that v1 == v2
...
...
@@ -1912,8 +1915,8 @@ class TestWithParam : public Test, public WithParamInterface<T> {
//
// Examples:
//
// EXPECT_NE(
5,
Foo());
// EXPECT_EQ(
NULL,
a_pointer);
// EXPECT_NE(Foo()
, 5
);
// EXPECT_EQ(a_pointer
, NULL
);
// ASSERT_LT(i, array_size);
// ASSERT_GT(records.size(), 0) << "There is no record left.";
...
...
@@ -2099,6 +2102,57 @@ GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
#define EXPECT_NO_FATAL_FAILURE(statement) \
GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_)
// 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
// by code in the scope of the lifetime of an instance of this class. The effect
// is undone with the destruction of the instance.
//
// The message argument can be anything streamable to std::ostream.
//
// Example:
// testing::ScopedTrace trace("file.cc", 123, "message");
//
class
GTEST_API_
ScopedTrace
{
public:
// The c'tor pushes the given source file location and message onto
// a trace stack maintained by Google Test.
// 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.
//
// Note that the d'tor is not virtual in order to be efficient.
// Don't inherit from ScopedTrace!
~
ScopedTrace
();
private:
void
PushTrace
(
const
char
*
file
,
int
line
,
std
::
string
message
);
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
ScopedTrace
);
}
GTEST_ATTRIBUTE_UNUSED_
;
// A ScopedTrace object does its job in its
// c'tor and d'tor. Therefore it doesn't
// need to be used otherwise.
// Causes a trace (including the source file path, the current line
// number, and the given message) to be included in every test failure
// message generated by code in the current scope. The effect is
...
...
@@ -2115,7 +2169,7 @@ GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
// Therefore, a SCOPED_TRACE() would (correctly) only affect the
// assertions in its own thread.
#define SCOPED_TRACE(message) \
::testing::
internal::
ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
__FILE__, __LINE__, (message))
...
...
@@ -2212,8 +2266,8 @@ bool StaticAssertTypeEq() {
// }
//
// TEST_F(FooTest, ReturnsElementCountCorrectly) {
// EXPECT_EQ(
0,
a_.size());
// EXPECT_EQ(
1,
b_.size());
// EXPECT_EQ(a_.size()
, 0
);
// EXPECT_EQ(b_.size()
, 1
);
// }
#define TEST_F(test_fixture, test_name)\
...
...
googletest/include/gtest/gtest_pred_impl.h
View file @
1489dc8d
...
...
@@ -27,7 +27,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// This file is AUTOMATICALLY GENERATED on
10/31
/201
1
by command
// This file is AUTOMATICALLY GENERATED on
01/02
/201
8
by command
// 'gen_gtest_pred_impl.py 5'. DO NOT EDIT BY HAND!
//
// Implements a family of generic predicate assertion macros.
...
...
@@ -35,10 +35,9 @@
#ifndef GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
#define GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
// Makes sure this header is not included before gtest.h.
#ifndef GTEST_INCLUDE_GTEST_GTEST_H_
# error Do not include gtest_pred_impl.h directly. Include gtest.h instead.
#endif // GTEST_INCLUDE_GTEST_GTEST_H_
#include "gtest/gtest.h"
namespace
testing
{
// This header implements a family of generic predicate assertion
// macros:
...
...
@@ -66,8 +65,6 @@
// We also define the EXPECT_* variations.
//
// For now we only support predicates whose arity is at most 5.
// Please email googletestframework@googlegroups.com if you need
// support for higher arities.
// GTEST_ASSERT_ is the basic statement to which all of the assertions
// in this file reduce. Don't use this in your code.
...
...
@@ -355,4 +352,6 @@ AssertionResult AssertPred5Helper(const char* pred_text,
}
// namespace testing
#endif // GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
googletest/include/gtest/internal/gtest-internal.h
View file @
1489dc8d
...
...
@@ -95,7 +95,6 @@ template <typename T>
namespace
internal
{
struct
TraceInfo
;
// Information about a trace point.
class
ScopedTrace
;
// Implements scoped trace.
class
TestInfoImpl
;
// Opaque implementation of TestInfo
class
UnitTestImpl
;
// Opaque implementation of UnitTest
...
...
@@ -151,53 +150,11 @@ class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error {
#endif // GTEST_HAS_EXCEPTIONS
// A helper class for creating scoped traces in user programs.
class
GTEST_API_
ScopedTrace
{
public:
// The c'tor pushes the given source file location and message onto
// a trace stack maintained by Google Test.
// 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.
//
// Note that the d'tor is not virtual in order to be efficient.
// Don't inherit from ScopedTrace!
~
ScopedTrace
();
private:
void
PushTrace
(
const
char
*
file
,
int
line
,
std
::
string
message
);
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
ScopedTrace
);
}
GTEST_ATTRIBUTE_UNUSED_
;
// A ScopedTrace object does its job in its
// c'tor and d'tor. Therefore it doesn't
// need to be used otherwise.
namespace
edit_distance
{
// Returns the optimal edits to go from 'left' to 'right'.
// All edits cost the same, with replace having lower priority than
// add/remove.
// Simple implementation of the Wagner
-
Fischer algorithm.
// Simple implementation of the Wagner
–
Fischer algorithm.
// See http://en.wikipedia.org/wiki/Wagner-Fischer_algorithm
enum
EditType
{
kMatch
,
kAdd
,
kRemove
,
kReplace
};
GTEST_API_
std
::
vector
<
EditType
>
CalculateOptimalEdits
(
...
...
@@ -650,7 +607,7 @@ class TypeParameterizedTest {
// Types). Valid values for 'index' are [0, N - 1] where N is the
// length of Types.
static
bool
Register
(
const
char
*
prefix
,
CodeLocation
code_location
,
const
CodeLocation
&
code_location
,
const
char
*
case_name
,
const
char
*
test_names
,
int
index
)
{
typedef
typename
Types
::
Head
Type
;
...
...
@@ -681,7 +638,7 @@ class TypeParameterizedTest {
template
<
GTEST_TEMPLATE_
Fixture
,
class
TestSel
>
class
TypeParameterizedTest
<
Fixture
,
TestSel
,
Types0
>
{
public:
static
bool
Register
(
const
char
*
/*prefix*/
,
CodeLocation
,
static
bool
Register
(
const
char
*
/*prefix*/
,
const
CodeLocation
&
,
const
char
*
/*case_name*/
,
const
char
*
/*test_names*/
,
int
/*index*/
)
{
return
true
;
...
...
@@ -727,7 +684,7 @@ class TypeParameterizedTestCase {
template
<
GTEST_TEMPLATE_
Fixture
,
typename
Types
>
class
TypeParameterizedTestCase
<
Fixture
,
Templates0
,
Types
>
{
public:
static
bool
Register
(
const
char
*
/*prefix*/
,
CodeLocation
,
static
bool
Register
(
const
char
*
/*prefix*/
,
const
CodeLocation
&
,
const
TypedTestCasePState
*
/*state*/
,
const
char
*
/*case_name*/
,
const
char
*
/*test_names*/
)
{
return
true
;
...
...
googletest/src/gtest.cc
View file @
1489dc8d
...
...
@@ -3835,26 +3835,6 @@ void StreamingListener::SocketWriter::MakeConnection() {
// End of class Streaming Listener
#endif // GTEST_CAN_STREAM_RESULTS__
// Class ScopedTrace
// Pushes the given source file location and message onto a per-thread
// trace stack maintained by Google Test.
void
ScopedTrace
::
PushTrace
(
const
char
*
file
,
int
line
,
std
::
string
message
)
{
TraceInfo
trace
;
trace
.
file
=
file
;
trace
.
line
=
line
;
trace
.
message
.
swap
(
message
);
UnitTest
::
GetInstance
()
->
PushGTestTrace
(
trace
);
}
// Pops the info pushed by the c'tor.
ScopedTrace
::~
ScopedTrace
()
GTEST_LOCK_EXCLUDED_
(
&
UnitTest
::
mutex_
)
{
UnitTest
::
GetInstance
()
->
PopGTestTrace
();
}
// class OsStackTraceGetter
const
char
*
const
OsStackTraceGetterInterface
::
kElidedFramesMarker
=
...
...
@@ -5415,4 +5395,23 @@ std::string TempDir() {
#endif // GTEST_OS_WINDOWS_MOBILE
}
// Class ScopedTrace
// Pushes the given source file location and message onto a per-thread
// trace stack maintained by Google Test.
void
ScopedTrace
::
PushTrace
(
const
char
*
file
,
int
line
,
std
::
string
message
)
{
internal
::
TraceInfo
trace
;
trace
.
file
=
file
;
trace
.
line
=
line
;
trace
.
message
.
swap
(
message
);
UnitTest
::
GetInstance
()
->
PushGTestTrace
(
trace
);
}
// Pops the info pushed by the c'tor.
ScopedTrace
::~
ScopedTrace
()
GTEST_LOCK_EXCLUDED_
(
&
UnitTest
::
mutex_
)
{
UnitTest
::
GetInstance
()
->
PopGTestTrace
();
}
}
// namespace testing
googletest/test/BUILD.bazel
View file @
1489dc8d
...
...
@@ -119,3 +119,245 @@ cc_test(
"//:gtest"
,
],
)
# Py tests
py_library
(
name
=
"gtest_test_utils"
,
testonly
=
1
,
srcs
=
[
"gtest_test_utils.py"
],
)
cc_binary
(
name
=
"gtest_help_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_help_test_.cc"
],
deps
=
[
"//:gtest_main"
],
)
py_test
(
name
=
"gtest_help_test"
,
size
=
"small"
,
srcs
=
[
"gtest_help_test.py"
],
data
=
[
":gtest_help_test_"
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_output_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_output_test_.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_output_test"
,
size
=
"small"
,
srcs
=
[
"gtest_output_test.py"
],
data
=
[
"gtest_output_test_golden_lin.txt"
,
":gtest_output_test_"
,
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_color_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_color_test_.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_color_test"
,
size
=
"small"
,
srcs
=
[
"gtest_color_test.py"
],
data
=
[
":gtest_color_test_"
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_env_var_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_env_var_test_.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_env_var_test"
,
size
=
"small"
,
srcs
=
[
"gtest_env_var_test.py"
],
data
=
[
":gtest_env_var_test_"
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_filter_unittest_"
,
testonly
=
1
,
srcs
=
[
"gtest_filter_unittest_.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_filter_unittest"
,
size
=
"small"
,
srcs
=
[
"gtest_filter_unittest.py"
],
data
=
[
":gtest_filter_unittest_"
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_break_on_failure_unittest_"
,
testonly
=
1
,
srcs
=
[
"gtest_break_on_failure_unittest_.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_break_on_failure_unittest"
,
size
=
"small"
,
srcs
=
[
"gtest_break_on_failure_unittest.py"
],
data
=
[
":gtest_break_on_failure_unittest_"
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_throw_on_failure_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_throw_on_failure_test_.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_throw_on_failure_test"
,
size
=
"small"
,
srcs
=
[
"gtest_throw_on_failure_test.py"
],
data
=
[
":gtest_throw_on_failure_test_"
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_list_tests_unittest_"
,
testonly
=
1
,
srcs
=
[
"gtest_list_tests_unittest_.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_list_tests_unittest"
,
size
=
"small"
,
srcs
=
[
"gtest_list_tests_unittest.py"
],
data
=
[
":gtest_list_tests_unittest_"
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_shuffle_test_"
,
srcs
=
[
"gtest_shuffle_test_.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_shuffle_test"
,
size
=
"small"
,
srcs
=
[
"gtest_shuffle_test.py"
],
data
=
[
":gtest_shuffle_test_"
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_catch_exceptions_no_ex_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_catch_exceptions_test_.cc"
],
deps
=
[
"//:gtest_main"
],
)
cc_binary
(
name
=
"gtest_catch_exceptions_ex_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_catch_exceptions_test_.cc"
],
copts
=
[
"-fexceptions"
],
deps
=
[
"//:gtest_main"
],
)
py_test
(
name
=
"gtest_catch_exceptions_test"
,
size
=
"small"
,
srcs
=
[
"gtest_catch_exceptions_test.py"
],
data
=
[
":gtest_catch_exceptions_ex_test_"
,
":gtest_catch_exceptions_no_ex_test_"
,
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_xml_output_unittest_"
,
testonly
=
1
,
srcs
=
[
"gtest_xml_output_unittest_.cc"
],
deps
=
[
"//:gtest"
],
)
cc_test
(
name
=
"gtest_no_test_unittest"
,
size
=
"small"
,
srcs
=
[
"gtest_no_test_unittest.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_xml_output_unittest"
,
size
=
"small"
,
srcs
=
[
"gtest_xml_output_unittest.py"
,
"gtest_xml_test_utils.py"
,
],
data
=
[
# We invoke gtest_no_test_unittest to verify the XML output
# when the test program contains no test definition.
":gtest_no_test_unittest"
,
":gtest_xml_output_unittest_"
,
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_xml_outfile1_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_xml_outfile1_test_.cc"
],
deps
=
[
"//:gtest_main"
],
)
cc_binary
(
name
=
"gtest_xml_outfile2_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_xml_outfile2_test_.cc"
],
deps
=
[
"//:gtest_main"
],
)
py_test
(
name
=
"gtest_xml_outfiles_test"
,
size
=
"small"
,
srcs
=
[
"gtest_xml_outfiles_test.py"
,
"gtest_xml_test_utils.py"
,
],
data
=
[
":gtest_xml_outfile1_test_"
,
":gtest_xml_outfile2_test_"
,
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_uninitialized_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_uninitialized_test_.cc"
],
deps
=
[
"//:gtest"
],
)
py_test
(
name
=
"gtest_uninitialized_test"
,
size
=
"medium"
,
srcs
=
[
"gtest_uninitialized_test.py"
],
data
=
[
":gtest_uninitialized_test_"
],
deps
=
[
":gtest_test_utils"
],
)
googletest/test/gtest_output_test.py
View file @
1489dc8d
...
...
@@ -99,7 +99,8 @@ def RemoveLocations(test_output):
'FILE_NAME:#: '.
"""
return
re
.
sub
(
r
'.*[/\\](.+)(\:\d+|\(\d+\))\: '
,
r
'\1:#: '
,
test_output
)
return
re
.
sub
(
r
'.*[/\\]((gtest_output_test_|gtest).cc)(\:\d+|\(\d+\))\: '
,
r
'\1:#: '
,
test_output
)
def
RemoveStackTraceDetails
(
output
):
...
...
googletest/test/gtest_output_test_.cc
View file @
1489dc8d
...
...
@@ -315,6 +315,13 @@ TEST(SCOPED_TRACETest, WorksConcurrently) {
}
#endif // GTEST_IS_THREADSAFE
// Tests basic functionality of the ScopedTrace utility (most of its features
// are already tested in SCOPED_TRACETest).
TEST
(
ScopedTraceTest
,
WithExplicitFileAndLine
)
{
testing
::
ScopedTrace
trace
(
"explicit_file.cc"
,
123
,
"expected trace message"
);
ADD_FAILURE
()
<<
"Check that the trace is attached to a particular location."
;
}
TEST
(
DisabledTestsWarningTest
,
DISABLED_AlsoRunDisabledTestsFlagSuppressesWarning
)
{
// This test body is intentionally empty. Its sole purpose is for
...
...
googletest/test/gtest_output_test_golden_lin.txt
View file @
1489dc8d
...
...
@@ -8,7 +8,7 @@ gtest_output_test_.cc:#: Failure
Expected equality of these values:
2
3
[0;32m[==========] [mRunning 6
6
tests from
29
test cases.
[0;32m[==========] [mRunning 6
7
tests from
30
test cases.
[0;32m[----------] [mGlobal test environment set-up.
FooEnvironment::SetUp() called.
BarEnvironment::SetUp() called.
...
...
@@ -212,6 +212,14 @@ gtest_output_test_.cc:#: Failure
Failed
Expected failure #6 (in thread A, no trace alive).
[0;31m[ FAILED ] [mSCOPED_TRACETest.WorksConcurrently
[0;32m[----------] [m1 test from ScopedTraceTest
[0;32m[ RUN ] [mScopedTraceTest.WithExplicitFileAndLine
gtest_output_test_.cc:#: Failure
Failed
Check that the trace is attached to a particular location.
Google Test trace:
explicit_file.cc:123: expected trace message
[0;31m[ FAILED ] [mScopedTraceTest.WithExplicitFileAndLine
[0;32m[----------] [m1 test from NonFatalFailureInFixtureConstructorTest
[0;32m[ RUN ] [mNonFatalFailureInFixtureConstructorTest.FailureInConstructor
(expecting 5 failures)
...
...
@@ -636,9 +644,9 @@ FooEnvironment::TearDown() called.
gtest_output_test_.cc:#: Failure
Failed
Expected fatal failure.
[0;32m[==========] [m6
6
tests from
29
test cases ran.
[0;32m[==========] [m6
7
tests from
30
test cases ran.
[0;32m[ PASSED ] [m22 tests.
[0;31m[ FAILED ] [m4
4
tests, listed below:
[0;31m[ FAILED ] [m4
5
tests, listed below:
[0;31m[ FAILED ] [mNonfatalFailureTest.EscapesStringOperands
[0;31m[ FAILED ] [mNonfatalFailureTest.DiffForLongStrings
[0;31m[ FAILED ] [mFatalFailureTest.FatalFailureInSubroutine
...
...
@@ -651,6 +659,7 @@ Expected fatal failure.
[0;31m[ FAILED ] [mSCOPED_TRACETest.CanBeNested
[0;31m[ FAILED ] [mSCOPED_TRACETest.CanBeRepeated
[0;31m[ FAILED ] [mSCOPED_TRACETest.WorksConcurrently
[0;31m[ FAILED ] [mScopedTraceTest.WithExplicitFileAndLine
[0;31m[ FAILED ] [mNonFatalFailureInFixtureConstructorTest.FailureInConstructor
[0;31m[ FAILED ] [mFatalFailureInFixtureConstructorTest.FailureInConstructor
[0;31m[ FAILED ] [mNonFatalFailureInSetUpTest.FailureInSetUp
...
...
@@ -684,7 +693,7 @@ Expected fatal failure.
[0;31m[ FAILED ] [mPrintingFailingParams/FailingParamTest.Fails/0, where GetParam() = 2
[0;31m[ FAILED ] [mPrintingStrings/ParamTest.Failure/a, where GetParam() = "a"
4
4
FAILED TESTS
4
5
FAILED TESTS
[0;33m YOU HAVE 1 DISABLED TEST
[mNote: Google Test filter = FatalFailureTest.*:LoggingTest.*
...
...
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