mirror of
https://github.com/google/googletest.git
synced 2024-12-27 10:11:03 +08:00
Googletest export
Internal Change PiperOrigin-RevId: 260939845
This commit is contained in:
parent
9311242db4
commit
2221875d0b
@ -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?
|
||||
|
||||
|
@ -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_case_count(); ++i) {
|
||||
const TestCase& test_case = *unit_test.GetTestCase(i);
|
||||
for (int j = 0; j < test_case.total_test_count(); ++j) {
|
||||
const TestInfo& test_info = *test_case.GetTestInfo(j);
|
||||
for (int i = 0; i < unit_test.total_test_suite_count(); ++i) {
|
||||
const testing::TestSuite& test_suite = *unit_test.GetTestSuite(i);
|
||||
for (int j = 0; j < test_suite.total_test_count(); ++j) {
|
||||
const TestInfo& test_info = *test_suite.GetTestInfo(j);
|
||||
// Counts failed tests that were not meant to fail (those without
|
||||
// 'Fails' in the name).
|
||||
if (test_info.result()->Failed() &&
|
||||
|
@ -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 TestSuite& parameter) override;
|
||||
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI
|
||||
#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
|
||||
void OnTestCaseEnd(const TestCase& 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;
|
||||
|
@ -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,
|
||||
|
@ -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_case->ad_hoc_test_result(), key);
|
||||
test_suite->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());
|
||||
|
Loading…
x
Reference in New Issue
Block a user