Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
googletest
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
googletest
Commits
2221875d
Commit
2221875d
authored
Jul 31, 2019
by
misterg
Committed by
Gennadiy Civil
Aug 01, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Googletest export
Internal Change PiperOrigin-RevId: 260939845
parent
9311242d
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
173 additions
and
19 deletions
+173
-19
gmock_faq.md
googlemock/docs/gmock_faq.md
+1
-1
sample9_unittest.cc
googletest/samples/sample9_unittest.cc
+4
-4
gtest.cc
googletest/src/gtest.cc
+49
-9
googletest-listener-test.cc
googletest/test/googletest-listener-test.cc
+112
-1
gtest_unittest.cc
googletest/test/gtest_unittest.cc
+7
-4
No files found.
googlemock/docs/gmock_faq.md
View file @
2221875d
...
...
@@ -81,7 +81,7 @@ void Bar(int* p); // Neither p nor *p is const.
void
Bar
(
const
int
*
p
);
// p is not const, but *p is.
```
<
<
!
--
GOOGLETEST_CM0030
DO
NOT
DELETE
--
>
<!-- GOOGLETEST_CM0030 DO NOT DELETE -->
### I can't figure out why gMock thinks my expectations are not satisfied. What should I do?
...
...
googletest/samples/sample9_unittest.cc
View file @
2221875d
...
...
@@ -135,10 +135,10 @@ int main(int argc, char **argv) {
// This is an example of using the UnitTest reflection API to inspect test
// results. Here we discount failures from the tests we expected to fail.
int
unexpectedly_failed_tests
=
0
;
for
(
int
i
=
0
;
i
<
unit_test
.
total_test_
cas
e_count
();
++
i
)
{
const
TestCase
&
test_case
=
*
unit_test
.
GetTestCas
e
(
i
);
for
(
int
j
=
0
;
j
<
test_
cas
e
.
total_test_count
();
++
j
)
{
const
TestInfo
&
test_info
=
*
test_
cas
e
.
GetTestInfo
(
j
);
for
(
int
i
=
0
;
i
<
unit_test
.
total_test_
suit
e_count
();
++
i
)
{
const
testing
::
TestSuite
&
test_suite
=
*
unit_test
.
GetTestSuit
e
(
i
);
for
(
int
j
=
0
;
j
<
test_
suit
e
.
total_test_count
();
++
j
)
{
const
TestInfo
&
test_info
=
*
test_
suit
e
.
GetTestInfo
(
j
);
// Counts failed tests that were not meant to fail (those without
// 'Fails' in the name).
if
(
test_info
.
result
()
->
Failed
()
&&
...
...
googletest/src/gtest.cc
View file @
2221875d
...
...
@@ -3117,11 +3117,22 @@ class PrettyUnitTestResultPrinter : public TestEventListener {
void
OnTestIterationStart
(
const
UnitTest
&
unit_test
,
int
iteration
)
override
;
void
OnEnvironmentsSetUpStart
(
const
UnitTest
&
unit_test
)
override
;
void
OnEnvironmentsSetUpEnd
(
const
UnitTest
&
/*unit_test*/
)
override
{}
void
OnTestCaseStart
(
const
TestSuite
&
test_suite
)
override
;
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
OnTestCaseStart
(
const
TestCase
&
test_case
)
override
;
#else
void
OnTestSuiteStart
(
const
TestSuite
&
test_suite
)
override
;
#endif // OnTestCaseStart
void
OnTestStart
(
const
TestInfo
&
test_info
)
override
;
void
OnTestPartResult
(
const
TestPartResult
&
result
)
override
;
void
OnTestEnd
(
const
TestInfo
&
test_info
)
override
;
void
OnTestCaseEnd
(
const
TestSuite
&
test_suite
)
override
;
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
OnTestCaseEnd
(
const
TestCase
&
test_case
)
override
;
#else
void
OnTestSuiteEnd
(
const
TestSuite
&
test_suite
)
override
;
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
OnEnvironmentsTearDownStart
(
const
UnitTest
&
unit_test
)
override
;
void
OnEnvironmentsTearDownEnd
(
const
UnitTest
&
/*unit_test*/
)
override
{}
void
OnTestIterationEnd
(
const
UnitTest
&
unit_test
,
int
iteration
)
override
;
...
...
@@ -3175,7 +3186,22 @@ void PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart(
fflush
(
stdout
);
}
void
PrettyUnitTestResultPrinter
::
OnTestCaseStart
(
const
TestSuite
&
test_suite
)
{
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
PrettyUnitTestResultPrinter
::
OnTestCaseStart
(
const
TestCase
&
test_case
)
{
const
std
::
string
counts
=
FormatCountableNoun
(
test_case
.
test_to_run_count
(),
"test"
,
"tests"
);
ColoredPrintf
(
COLOR_GREEN
,
"[----------] "
);
printf
(
"%s from %s"
,
counts
.
c_str
(),
test_case
.
name
());
if
(
test_case
.
type_param
()
==
nullptr
)
{
printf
(
"
\n
"
);
}
else
{
printf
(
", where %s = %s
\n
"
,
kTypeParamLabel
,
test_case
.
type_param
());
}
fflush
(
stdout
);
}
#else
void
PrettyUnitTestResultPrinter
::
OnTestSuiteStart
(
const
TestSuite
&
test_suite
)
{
const
std
::
string
counts
=
FormatCountableNoun
(
test_suite
.
test_to_run_count
(),
"test"
,
"tests"
);
ColoredPrintf
(
COLOR_GREEN
,
"[----------] "
);
...
...
@@ -3187,6 +3213,7 @@ void PrettyUnitTestResultPrinter::OnTestCaseStart(const TestSuite& test_suite) {
}
fflush
(
stdout
);
}
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
PrettyUnitTestResultPrinter
::
OnTestStart
(
const
TestInfo
&
test_info
)
{
ColoredPrintf
(
COLOR_GREEN
,
"[ RUN ] "
);
...
...
@@ -3233,7 +3260,19 @@ void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) {
fflush
(
stdout
);
}
void
PrettyUnitTestResultPrinter
::
OnTestCaseEnd
(
const
TestSuite
&
test_suite
)
{
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
PrettyUnitTestResultPrinter
::
OnTestCaseEnd
(
const
TestCase
&
test_case
)
{
if
(
!
GTEST_FLAG
(
print_time
))
return
;
const
std
::
string
counts
=
FormatCountableNoun
(
test_case
.
test_to_run_count
(),
"test"
,
"tests"
);
ColoredPrintf
(
COLOR_GREEN
,
"[----------] "
);
printf
(
"%s from %s (%s ms total)
\n\n
"
,
counts
.
c_str
(),
test_case
.
name
(),
internal
::
StreamableToString
(
test_case
.
elapsed_time
()).
c_str
());
fflush
(
stdout
);
}
#else
void
PrettyUnitTestResultPrinter
::
OnTestSuiteEnd
(
const
TestSuite
&
test_suite
)
{
if
(
!
GTEST_FLAG
(
print_time
))
return
;
const
std
::
string
counts
=
...
...
@@ -3243,6 +3282,7 @@ void PrettyUnitTestResultPrinter::OnTestCaseEnd(const TestSuite& test_suite) {
internal
::
StreamableToString
(
test_suite
.
elapsed_time
()).
c_str
());
fflush
(
stdout
);
}
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
PrettyUnitTestResultPrinter
::
OnEnvironmentsTearDownStart
(
const
UnitTest
&
/*unit_test*/
)
{
...
...
@@ -3367,17 +3407,17 @@ class TestEventRepeater : public TestEventListener {
void
OnEnvironmentsSetUpStart
(
const
UnitTest
&
unit_test
)
override
;
void
OnEnvironmentsSetUpEnd
(
const
UnitTest
&
unit_test
)
override
;
// Legacy API is deprecated but still available
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI
_
void
OnTestCaseStart
(
const
TestSuite
&
parameter
)
override
;
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI
_
void
OnTestSuiteStart
(
const
TestSuite
&
parameter
)
override
;
void
OnTestStart
(
const
TestInfo
&
test_info
)
override
;
void
OnTestPartResult
(
const
TestPartResult
&
result
)
override
;
void
OnTestEnd
(
const
TestInfo
&
test_info
)
override
;
// Legacy API is deprecated but still available
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI
void
OnTestCaseEnd
(
const
Test
Suit
e
&
parameter
)
override
;
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI
_
void
OnTestCaseEnd
(
const
Test
Cas
e
&
parameter
)
override
;
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI
_
void
OnTestSuiteEnd
(
const
TestSuite
&
parameter
)
override
;
void
OnEnvironmentsTearDownStart
(
const
UnitTest
&
unit_test
)
override
;
void
OnEnvironmentsTearDownEnd
(
const
UnitTest
&
unit_test
)
override
;
...
...
googletest/test/googletest-listener-test.cc
View file @
2221875d
...
...
@@ -35,6 +35,7 @@
#include <vector>
#include "gtest/gtest.h"
#include "gtest/internal/custom/gtest.h"
using
::
testing
::
AddGlobalTestEnvironment
;
using
::
testing
::
Environment
;
...
...
@@ -76,10 +77,11 @@ class EventRecordingListener : public TestEventListener {
void
OnEnvironmentsSetUpEnd
(
const
UnitTest
&
/*unit_test*/
)
override
{
g_events
->
push_back
(
GetFullMethodName
(
"OnEnvironmentsSetUpEnd"
));
}
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
OnTestCaseStart
(
const
TestCase
&
/*test_case*/
)
override
{
g_events
->
push_back
(
GetFullMethodName
(
"OnTestCaseStart"
));
}
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
OnTestStart
(
const
TestInfo
&
/*test_info*/
)
override
{
g_events
->
push_back
(
GetFullMethodName
(
"OnTestStart"
));
...
...
@@ -93,9 +95,11 @@ class EventRecordingListener : public TestEventListener {
g_events
->
push_back
(
GetFullMethodName
(
"OnTestEnd"
));
}
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
OnTestCaseEnd
(
const
TestCase
&
/*test_case*/
)
override
{
g_events
->
push_back
(
GetFullMethodName
(
"OnTestCaseEnd"
));
}
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
OnEnvironmentsTearDownStart
(
const
UnitTest
&
/*unit_test*/
)
override
{
g_events
->
push_back
(
GetFullMethodName
(
"OnEnvironmentsTearDownStart"
));
...
...
@@ -283,6 +287,9 @@ int main(int argc, char **argv) {
::
testing
::
GTEST_FLAG
(
repeat
)
=
2
;
int
ret_val
=
RUN_ALL_TESTS
();
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
// The deprecated OnTestSuiteStart/OnTestCaseStart events are included
const
char
*
const
expected_events
[]
=
{
"1st.OnTestProgramStart"
,
"2nd.OnTestProgramStart"
,
"3rd.OnTestProgramStart"
,
...
...
@@ -393,6 +400,110 @@ int main(int argc, char **argv) {
"3rd.OnTestProgramEnd"
,
"2nd.OnTestProgramEnd"
,
"1st.OnTestProgramEnd"
};
#else
const
char
*
const
expected_events
[]
=
{
"1st.OnTestProgramStart"
,
"2nd.OnTestProgramStart"
,
"3rd.OnTestProgramStart"
,
"1st.OnTestIterationStart(0)"
,
"2nd.OnTestIterationStart(0)"
,
"3rd.OnTestIterationStart(0)"
,
"1st.OnEnvironmentsSetUpStart"
,
"2nd.OnEnvironmentsSetUpStart"
,
"3rd.OnEnvironmentsSetUpStart"
,
"Environment::SetUp"
,
"3rd.OnEnvironmentsSetUpEnd"
,
"2nd.OnEnvironmentsSetUpEnd"
,
"1st.OnEnvironmentsSetUpEnd"
,
"3rd.OnTestSuiteStart"
,
"ListenerTest::SetUpTestSuite"
,
"1st.OnTestStart"
,
"2nd.OnTestStart"
,
"3rd.OnTestStart"
,
"ListenerTest::SetUp"
,
"ListenerTest::* Test Body"
,
"1st.OnTestPartResult"
,
"2nd.OnTestPartResult"
,
"3rd.OnTestPartResult"
,
"ListenerTest::TearDown"
,
"3rd.OnTestEnd"
,
"2nd.OnTestEnd"
,
"1st.OnTestEnd"
,
"1st.OnTestStart"
,
"2nd.OnTestStart"
,
"3rd.OnTestStart"
,
"ListenerTest::SetUp"
,
"ListenerTest::* Test Body"
,
"1st.OnTestPartResult"
,
"2nd.OnTestPartResult"
,
"3rd.OnTestPartResult"
,
"ListenerTest::TearDown"
,
"3rd.OnTestEnd"
,
"2nd.OnTestEnd"
,
"1st.OnTestEnd"
,
"ListenerTest::TearDownTestSuite"
,
"3rd.OnTestSuiteEnd"
,
"1st.OnEnvironmentsTearDownStart"
,
"2nd.OnEnvironmentsTearDownStart"
,
"3rd.OnEnvironmentsTearDownStart"
,
"Environment::TearDown"
,
"3rd.OnEnvironmentsTearDownEnd"
,
"2nd.OnEnvironmentsTearDownEnd"
,
"1st.OnEnvironmentsTearDownEnd"
,
"3rd.OnTestIterationEnd(0)"
,
"2nd.OnTestIterationEnd(0)"
,
"1st.OnTestIterationEnd(0)"
,
"1st.OnTestIterationStart(1)"
,
"2nd.OnTestIterationStart(1)"
,
"3rd.OnTestIterationStart(1)"
,
"1st.OnEnvironmentsSetUpStart"
,
"2nd.OnEnvironmentsSetUpStart"
,
"3rd.OnEnvironmentsSetUpStart"
,
"Environment::SetUp"
,
"3rd.OnEnvironmentsSetUpEnd"
,
"2nd.OnEnvironmentsSetUpEnd"
,
"1st.OnEnvironmentsSetUpEnd"
,
"3rd.OnTestSuiteStart"
,
"ListenerTest::SetUpTestSuite"
,
"1st.OnTestStart"
,
"2nd.OnTestStart"
,
"3rd.OnTestStart"
,
"ListenerTest::SetUp"
,
"ListenerTest::* Test Body"
,
"1st.OnTestPartResult"
,
"2nd.OnTestPartResult"
,
"3rd.OnTestPartResult"
,
"ListenerTest::TearDown"
,
"3rd.OnTestEnd"
,
"2nd.OnTestEnd"
,
"1st.OnTestEnd"
,
"1st.OnTestStart"
,
"2nd.OnTestStart"
,
"3rd.OnTestStart"
,
"ListenerTest::SetUp"
,
"ListenerTest::* Test Body"
,
"1st.OnTestPartResult"
,
"2nd.OnTestPartResult"
,
"3rd.OnTestPartResult"
,
"ListenerTest::TearDown"
,
"3rd.OnTestEnd"
,
"2nd.OnTestEnd"
,
"1st.OnTestEnd"
,
"ListenerTest::TearDownTestSuite"
,
"3rd.OnTestSuiteEnd"
,
"1st.OnEnvironmentsTearDownStart"
,
"2nd.OnEnvironmentsTearDownStart"
,
"3rd.OnEnvironmentsTearDownStart"
,
"Environment::TearDown"
,
"3rd.OnEnvironmentsTearDownEnd"
,
"2nd.OnEnvironmentsTearDownEnd"
,
"1st.OnEnvironmentsTearDownEnd"
,
"3rd.OnTestIterationEnd(1)"
,
"2nd.OnTestIterationEnd(1)"
,
"1st.OnTestIterationEnd(1)"
,
"3rd.OnTestProgramEnd"
,
"2nd.OnTestProgramEnd"
,
"1st.OnTestProgramEnd"
};
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
VerifyResults
(
events
,
expected_events
,
...
...
googletest/test/gtest_unittest.cc
View file @
2221875d
...
...
@@ -2016,10 +2016,11 @@ void ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest(
void
ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestSuite
(
const
char
*
key
)
{
const
TestCase
*
test_case
=
UnitTest
::
GetInstance
()
->
current_test_case
();
ASSERT_TRUE
(
test_case
!=
nullptr
);
const
testing
::
TestSuite
*
test_suite
=
UnitTest
::
GetInstance
()
->
current_test_suite
();
ASSERT_TRUE
(
test_suite
!=
nullptr
);
ExpectNonFatalFailureRecordingPropertyWithReservedKey
(
test_
cas
e
->
ad_hoc_test_result
(),
key
);
test_
suit
e
->
ad_hoc_test_result
(),
key
);
}
void
ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestSuite
(
...
...
@@ -2049,8 +2050,10 @@ class UnitTestRecordPropertyTest :
"time"
);
Test
::
RecordProperty
(
"test_case_key_1"
,
"1"
);
const
testing
::
TestSuite
*
test_suite
=
UnitTest
::
GetInstance
()
->
current_test_case
();
UnitTest
::
GetInstance
()
->
current_test_suite
();
ASSERT_TRUE
(
test_suite
!=
nullptr
);
ASSERT_EQ
(
1
,
test_suite
->
ad_hoc_test_result
().
test_property_count
());
...
...
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