41using ::testing::Environment;
44using ::testing::TestSuite;
45using ::testing::TestEventListener;
46using ::testing::TestInfo;
47using ::testing::TestPartResult;
48using ::testing::UnitTest;
62 g_events->push_back(GetFullMethodName(
"OnTestProgramStart"));
66 int iteration)
override {
68 message << GetFullMethodName(
"OnTestIterationStart")
69 <<
"(" << iteration <<
")";
74 g_events->push_back(GetFullMethodName(
"OnEnvironmentsSetUpStart"));
78 g_events->push_back(GetFullMethodName(
"OnEnvironmentsSetUpEnd"));
80#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
82 g_events->push_back(GetFullMethodName(
"OnTestCaseStart"));
87 g_events->push_back(GetFullMethodName(
"OnTestStart"));
91 g_events->push_back(GetFullMethodName(
"OnTestPartResult"));
95 g_events->push_back(GetFullMethodName(
"OnTestEnd"));
98#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
100 g_events->push_back(GetFullMethodName(
"OnTestCaseEnd"));
105 g_events->push_back(GetFullMethodName(
"OnEnvironmentsTearDownStart"));
109 g_events->push_back(GetFullMethodName(
"OnEnvironmentsTearDownEnd"));
113 int iteration)
override {
115 message << GetFullMethodName(
"OnTestIterationEnd")
116 <<
"(" << iteration <<
")";
121 g_events->push_back(GetFullMethodName(
"OnTestProgramEnd"));
125 std::string GetFullMethodName(
const char* name) {
126 return name_ +
"." + name;
139 g_events->push_back(GetFullMethodName(
"OnTestProgramStart"));
143 int iteration)
override {
145 message << GetFullMethodName(
"OnTestIterationStart") <<
"(" << iteration
151 g_events->push_back(GetFullMethodName(
"OnEnvironmentsSetUpStart"));
155 g_events->push_back(GetFullMethodName(
"OnEnvironmentsSetUpEnd"));
159 g_events->push_back(GetFullMethodName(
"OnTestSuiteStart"));
163 g_events->push_back(GetFullMethodName(
"OnTestStart"));
167 g_events->push_back(GetFullMethodName(
"OnTestPartResult"));
171 g_events->push_back(GetFullMethodName(
"OnTestEnd"));
175 g_events->push_back(GetFullMethodName(
"OnTestSuiteEnd"));
179 g_events->push_back(GetFullMethodName(
"OnEnvironmentsTearDownStart"));
183 g_events->push_back(GetFullMethodName(
"OnEnvironmentsTearDownEnd"));
187 int iteration)
override {
189 message << GetFullMethodName(
"OnTestIterationEnd") <<
"(" << iteration
195 g_events->push_back(GetFullMethodName(
"OnTestProgramEnd"));
199 std::string GetFullMethodName(
const char* name) {
return name_ +
"." + name; }
214 g_events->push_back(
"ListenerTest::SetUpTestSuite");
218 g_events->push_back(
"ListenerTest::TearDownTestSuite");
229 g_events->push_back(
"ListenerTest::* Test Body");
234 g_events->push_back(
"ListenerTest::* Test Body");
242using ::testing::internal::EnvironmentInvocationCatcher;
243using ::testing::internal::EventRecordingListener;
244using ::testing::internal::EventRecordingListener2;
247 const char*
const* expected_data,
248 size_t expected_data_size) {
249 const size_t actual_size = data.size();
252 EXPECT_EQ(expected_data_size, actual_size);
255 const size_t shorter_size = expected_data_size <= actual_size ?
256 expected_data_size : actual_size;
258 for (;
i < shorter_size; ++
i) {
260 <<
"at position " <<
i;
264 for (;
i < actual_size; ++
i) {
265 printf(
" Actual event #%lu: %s\n",
266 static_cast<unsigned long>(
i), data[
i].c_str());
270int main(
int argc,
char **argv) {
271 std::vector<std::string> events;
275 UnitTest::GetInstance()->listeners().Append(
276 new EventRecordingListener(
"1st"));
277 UnitTest::GetInstance()->listeners().Append(
278 new EventRecordingListener(
"2nd"));
279 UnitTest::GetInstance()->listeners().Append(
280 new EventRecordingListener2(
"3rd"));
285 <<
"AddGlobalTestEnvironment should not generate any events itself.";
290#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
293 const char*
const expected_events[] = {
"1st.OnTestProgramStart",
294 "2nd.OnTestProgramStart",
295 "3rd.OnTestProgramStart",
296 "1st.OnTestIterationStart(0)",
297 "2nd.OnTestIterationStart(0)",
298 "3rd.OnTestIterationStart(0)",
299 "1st.OnEnvironmentsSetUpStart",
300 "2nd.OnEnvironmentsSetUpStart",
301 "3rd.OnEnvironmentsSetUpStart",
302 "Environment::SetUp",
303 "3rd.OnEnvironmentsSetUpEnd",
304 "2nd.OnEnvironmentsSetUpEnd",
305 "1st.OnEnvironmentsSetUpEnd",
306 "3rd.OnTestSuiteStart",
307 "1st.OnTestCaseStart",
308 "2nd.OnTestCaseStart",
309 "ListenerTest::SetUpTestSuite",
313 "ListenerTest::SetUp",
314 "ListenerTest::* Test Body",
315 "1st.OnTestPartResult",
316 "2nd.OnTestPartResult",
317 "3rd.OnTestPartResult",
318 "ListenerTest::TearDown",
325 "ListenerTest::SetUp",
326 "ListenerTest::* Test Body",
327 "1st.OnTestPartResult",
328 "2nd.OnTestPartResult",
329 "3rd.OnTestPartResult",
330 "ListenerTest::TearDown",
334 "ListenerTest::TearDownTestSuite",
335 "3rd.OnTestSuiteEnd",
338 "1st.OnEnvironmentsTearDownStart",
339 "2nd.OnEnvironmentsTearDownStart",
340 "3rd.OnEnvironmentsTearDownStart",
341 "Environment::TearDown",
342 "3rd.OnEnvironmentsTearDownEnd",
343 "2nd.OnEnvironmentsTearDownEnd",
344 "1st.OnEnvironmentsTearDownEnd",
345 "3rd.OnTestIterationEnd(0)",
346 "2nd.OnTestIterationEnd(0)",
347 "1st.OnTestIterationEnd(0)",
348 "1st.OnTestIterationStart(1)",
349 "2nd.OnTestIterationStart(1)",
350 "3rd.OnTestIterationStart(1)",
351 "1st.OnEnvironmentsSetUpStart",
352 "2nd.OnEnvironmentsSetUpStart",
353 "3rd.OnEnvironmentsSetUpStart",
354 "Environment::SetUp",
355 "3rd.OnEnvironmentsSetUpEnd",
356 "2nd.OnEnvironmentsSetUpEnd",
357 "1st.OnEnvironmentsSetUpEnd",
358 "3rd.OnTestSuiteStart",
359 "1st.OnTestCaseStart",
360 "2nd.OnTestCaseStart",
361 "ListenerTest::SetUpTestSuite",
365 "ListenerTest::SetUp",
366 "ListenerTest::* Test Body",
367 "1st.OnTestPartResult",
368 "2nd.OnTestPartResult",
369 "3rd.OnTestPartResult",
370 "ListenerTest::TearDown",
377 "ListenerTest::SetUp",
378 "ListenerTest::* Test Body",
379 "1st.OnTestPartResult",
380 "2nd.OnTestPartResult",
381 "3rd.OnTestPartResult",
382 "ListenerTest::TearDown",
386 "ListenerTest::TearDownTestSuite",
387 "3rd.OnTestSuiteEnd",
390 "1st.OnEnvironmentsTearDownStart",
391 "2nd.OnEnvironmentsTearDownStart",
392 "3rd.OnEnvironmentsTearDownStart",
393 "Environment::TearDown",
394 "3rd.OnEnvironmentsTearDownEnd",
395 "2nd.OnEnvironmentsTearDownEnd",
396 "1st.OnEnvironmentsTearDownEnd",
397 "3rd.OnTestIterationEnd(1)",
398 "2nd.OnTestIterationEnd(1)",
399 "1st.OnTestIterationEnd(1)",
400 "3rd.OnTestProgramEnd",
401 "2nd.OnTestProgramEnd",
402 "1st.OnTestProgramEnd"};
404 const char*
const expected_events[] = {
"1st.OnTestProgramStart",
405 "2nd.OnTestProgramStart",
406 "3rd.OnTestProgramStart",
407 "1st.OnTestIterationStart(0)",
408 "2nd.OnTestIterationStart(0)",
409 "3rd.OnTestIterationStart(0)",
410 "1st.OnEnvironmentsSetUpStart",
411 "2nd.OnEnvironmentsSetUpStart",
412 "3rd.OnEnvironmentsSetUpStart",
413 "Environment::SetUp",
414 "3rd.OnEnvironmentsSetUpEnd",
415 "2nd.OnEnvironmentsSetUpEnd",
416 "1st.OnEnvironmentsSetUpEnd",
417 "3rd.OnTestSuiteStart",
418 "ListenerTest::SetUpTestSuite",
422 "ListenerTest::SetUp",
423 "ListenerTest::* Test Body",
424 "1st.OnTestPartResult",
425 "2nd.OnTestPartResult",
426 "3rd.OnTestPartResult",
427 "ListenerTest::TearDown",
434 "ListenerTest::SetUp",
435 "ListenerTest::* Test Body",
436 "1st.OnTestPartResult",
437 "2nd.OnTestPartResult",
438 "3rd.OnTestPartResult",
439 "ListenerTest::TearDown",
443 "ListenerTest::TearDownTestSuite",
444 "3rd.OnTestSuiteEnd",
445 "1st.OnEnvironmentsTearDownStart",
446 "2nd.OnEnvironmentsTearDownStart",
447 "3rd.OnEnvironmentsTearDownStart",
448 "Environment::TearDown",
449 "3rd.OnEnvironmentsTearDownEnd",
450 "2nd.OnEnvironmentsTearDownEnd",
451 "1st.OnEnvironmentsTearDownEnd",
452 "3rd.OnTestIterationEnd(0)",
453 "2nd.OnTestIterationEnd(0)",
454 "1st.OnTestIterationEnd(0)",
455 "1st.OnTestIterationStart(1)",
456 "2nd.OnTestIterationStart(1)",
457 "3rd.OnTestIterationStart(1)",
458 "1st.OnEnvironmentsSetUpStart",
459 "2nd.OnEnvironmentsSetUpStart",
460 "3rd.OnEnvironmentsSetUpStart",
461 "Environment::SetUp",
462 "3rd.OnEnvironmentsSetUpEnd",
463 "2nd.OnEnvironmentsSetUpEnd",
464 "1st.OnEnvironmentsSetUpEnd",
465 "3rd.OnTestSuiteStart",
466 "ListenerTest::SetUpTestSuite",
470 "ListenerTest::SetUp",
471 "ListenerTest::* Test Body",
472 "1st.OnTestPartResult",
473 "2nd.OnTestPartResult",
474 "3rd.OnTestPartResult",
475 "ListenerTest::TearDown",
482 "ListenerTest::SetUp",
483 "ListenerTest::* Test Body",
484 "1st.OnTestPartResult",
485 "2nd.OnTestPartResult",
486 "3rd.OnTestPartResult",
487 "ListenerTest::TearDown",
491 "ListenerTest::TearDownTestSuite",
492 "3rd.OnTestSuiteEnd",
493 "1st.OnEnvironmentsTearDownStart",
494 "2nd.OnEnvironmentsTearDownStart",
495 "3rd.OnEnvironmentsTearDownStart",
496 "Environment::TearDown",
497 "3rd.OnEnvironmentsTearDownEnd",
498 "2nd.OnEnvironmentsTearDownEnd",
499 "1st.OnEnvironmentsTearDownEnd",
500 "3rd.OnTestIterationEnd(1)",
501 "2nd.OnTestIterationEnd(1)",
502 "1st.OnTestIterationEnd(1)",
503 "3rd.OnTestProgramEnd",
504 "2nd.OnTestProgramEnd",
505 "1st.OnTestProgramEnd"};
510 sizeof(expected_events)/
sizeof(expected_events[0]));
514 if (UnitTest::GetInstance()->Failed())
#define EXPECT_EQ(val1, val2)
#define ASSERT_STREQ(s1, s2)
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
#define GTEST_CHECK_(condition)
std::vector< std::string > * g_events
int main(int argc, char **argv)
void VerifyResults(const std::vector< std::string > &data, const char *const *expected_data, size_t expected_data_size)
Environment * AddGlobalTestEnvironment(Environment *env)
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
TEST_F(ListenerTest, DoesFoo)
void OnTestProgramEnd(const UnitTest &) override
void OnTestCaseStart(const TestCase &) override
void OnTestIterationEnd(const UnitTest &, int iteration) override
void OnTestCaseEnd(const TestCase &) override
EventRecordingListener(const char *name)
void OnTestPartResult(const TestPartResult &) override
void OnTestProgramStart(const UnitTest &) override
void OnEnvironmentsTearDownStart(const UnitTest &) override
void OnTestEnd(const TestInfo &) override
void OnEnvironmentsTearDownEnd(const UnitTest &) override
void OnTestStart(const TestInfo &) override
void OnEnvironmentsSetUpEnd(const UnitTest &) override
void OnEnvironmentsSetUpStart(const UnitTest &) override
void OnTestIterationStart(const UnitTest &, int iteration) override
void OnTestPartResult(const TestPartResult &) override
void OnTestProgramStart(const UnitTest &) override
void OnEnvironmentsSetUpStart(const UnitTest &) override
EventRecordingListener2(const char *name)
void OnTestSuiteStart(const TestSuite &) override
void OnTestEnd(const TestInfo &) override
void OnTestProgramEnd(const UnitTest &) override
void OnEnvironmentsTearDownStart(const UnitTest &) override
void OnTestIterationStart(const UnitTest &, int iteration) override
void OnEnvironmentsTearDownEnd(const UnitTest &) override
void OnTestStart(const TestInfo &) override
void OnEnvironmentsSetUpEnd(const UnitTest &) override
void OnTestIterationEnd(const UnitTest &, int iteration) override
void OnTestSuiteEnd(const TestSuite &) override
static void SetUpTestSuite()
static void TearDownTestSuite()