Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(387)

Side by Side Diff: testing/gmock/test/gmock-internal-utils_test.cc

Issue 1151006: Update to current gtest/gmock. (Closed)
Patch Set: rebase Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2007, Google Inc. 1 // Copyright 2007, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 EXPECT_FALSE(LogIsVisible(INFO)); 531 EXPECT_FALSE(LogIsVisible(INFO));
532 EXPECT_FALSE(LogIsVisible(WARNING)); 532 EXPECT_FALSE(LogIsVisible(WARNING));
533 } 533 }
534 534
535 TEST_F(LogIsVisibleTest, WorksWhenVerbosityIsWarning) { 535 TEST_F(LogIsVisibleTest, WorksWhenVerbosityIsWarning) {
536 GMOCK_FLAG(verbose) = kWarningVerbosity; 536 GMOCK_FLAG(verbose) = kWarningVerbosity;
537 EXPECT_FALSE(LogIsVisible(INFO)); 537 EXPECT_FALSE(LogIsVisible(INFO));
538 EXPECT_TRUE(LogIsVisible(WARNING)); 538 EXPECT_TRUE(LogIsVisible(WARNING));
539 } 539 }
540 540
541 // TODO(wan@google.com): find a way to re-enable these tests. 541 #if GTEST_HAS_STREAM_REDIRECTION_
542 #if 0
543 542
544 // Tests the Log() function. 543 // Tests the Log() function.
545 544
546 // Verifies that Log() behaves correctly for the given verbosity level 545 // Verifies that Log() behaves correctly for the given verbosity level
547 // and log severity. 546 // and log severity.
548 void TestLogWithSeverity(const string& verbosity, LogSeverity severity, 547 void TestLogWithSeverity(const string& verbosity, LogSeverity severity,
549 bool should_print) { 548 bool should_print) {
550 const string old_flag = GMOCK_FLAG(verbose); 549 const string old_flag = GMOCK_FLAG(verbose);
551 GMOCK_FLAG(verbose) = verbosity; 550 GMOCK_FLAG(verbose) = verbosity;
552 CaptureTestStdout(); 551 CaptureStdout();
553 Log(severity, "Test log.\n", 0); 552 Log(severity, "Test log.\n", 0);
554 if (should_print) { 553 if (should_print) {
555 EXPECT_PRED2(RE::FullMatch, 554 EXPECT_THAT(GetCapturedStdout().c_str(),
556 GetCapturedTestStdout(), 555 ContainsRegex(
557 severity == WARNING ? 556 severity == WARNING ?
558 "\nGMOCK WARNING:\nTest log\\.\nStack trace:\n[\\s\\S]*" : 557 "^\nGMOCK WARNING:\nTest log\\.\nStack trace:\n" :
559 "\nTest log\\.\nStack trace:\n[\\s\\S]*"); 558 "^\nTest log\\.\nStack trace:\n"));
560 } else { 559 } else {
561 EXPECT_EQ("", GetCapturedTestStdout()); 560 EXPECT_STREQ("", GetCapturedStdout().c_str());
562 } 561 }
563 GMOCK_FLAG(verbose) = old_flag; 562 GMOCK_FLAG(verbose) = old_flag;
564 } 563 }
565 564
566 // Tests that when the stack_frames_to_skip parameter is negative, 565 // Tests that when the stack_frames_to_skip parameter is negative,
567 // Log() doesn't include the stack trace in the output. 566 // Log() doesn't include the stack trace in the output.
568 TEST(LogTest, NoStackTraceWhenStackFramesToSkipIsNegative) { 567 TEST(LogTest, NoStackTraceWhenStackFramesToSkipIsNegative) {
569 GMOCK_FLAG(verbose) = kInfoVerbosity; 568 GMOCK_FLAG(verbose) = kInfoVerbosity;
570 CaptureTestStdout(); 569 CaptureStdout();
571 Log(INFO, "Test log.\n", -1); 570 Log(INFO, "Test log.\n", -1);
572 EXPECT_EQ("\nTest log.\n", GetCapturedTestStdout()); 571 EXPECT_STREQ("\nTest log.\n", GetCapturedStdout().c_str());
573 } 572 }
574 573
575 // Tests that in opt mode, a positive stack_frames_to_skip argument is 574 // Tests that in opt mode, a positive stack_frames_to_skip argument is
576 // treated as 0. 575 // treated as 0.
577 TEST(LogTest, NoSkippingStackFrameInOptMode) { 576 TEST(LogTest, NoSkippingStackFrameInOptMode) {
578 CaptureTestStdout(); 577 CaptureStdout();
579 Log(WARNING, "Test log.\n", 100); 578 Log(WARNING, "Test log.\n", 100);
580 const string log = GetCapturedTestStdout(); 579 const String log = GetCapturedStdout();
581 #ifdef NDEBUG 580 #if defined(NDEBUG) && GTEST_GOOGLE3_MODE_
582 // In opt mode, no stack frame should be skipped. 581 // In opt mode, no stack frame should be skipped.
583 EXPECT_THAT(log, ContainsRegex("\nGMOCK WARNING:\n" 582 EXPECT_THAT(log, ContainsRegex("\nGMOCK WARNING:\n"
584 "Test log\\.\n" 583 "Test log\\.\n"
585 "Stack trace:\n" 584 "Stack trace:\n"
586 ".+")); 585 ".+"));
587 #else 586 #else
588 // In dbg mode, the stack frames should be skipped. 587 // In dbg mode, the stack frames should be skipped.
589 EXPECT_EQ("\nGMOCK WARNING:\n" 588 EXPECT_STREQ("\nGMOCK WARNING:\n"
590 "Test log.\n" 589 "Test log.\n"
591 "Stack trace:\n", log); 590 "Stack trace:\n", log.c_str());
592 #endif // NDEBUG 591 #endif
593 } 592 }
594 593
595 // Tests that all logs are printed when the value of the 594 // Tests that all logs are printed when the value of the
596 // --gmock_verbose flag is "info". 595 // --gmock_verbose flag is "info".
597 TEST(LogTest, AllLogsArePrintedWhenVerbosityIsInfo) { 596 TEST(LogTest, AllLogsArePrintedWhenVerbosityIsInfo) {
598 TestLogWithSeverity(kInfoVerbosity, INFO, true); 597 TestLogWithSeverity(kInfoVerbosity, INFO, true);
599 TestLogWithSeverity(kInfoVerbosity, WARNING, true); 598 TestLogWithSeverity(kInfoVerbosity, WARNING, true);
600 } 599 }
601 600
602 // Tests that only warnings are printed when the value of the 601 // Tests that only warnings are printed when the value of the
(...skipping 10 matching lines...) Expand all
613 TestLogWithSeverity(kErrorVerbosity, WARNING, false); 612 TestLogWithSeverity(kErrorVerbosity, WARNING, false);
614 } 613 }
615 614
616 // Tests that only warnings are printed when the value of the 615 // Tests that only warnings are printed when the value of the
617 // --gmock_verbose flag is invalid. 616 // --gmock_verbose flag is invalid.
618 TEST(LogTest, OnlyWarningsArePrintedWhenVerbosityIsInvalid) { 617 TEST(LogTest, OnlyWarningsArePrintedWhenVerbosityIsInvalid) {
619 TestLogWithSeverity("invalid", INFO, false); 618 TestLogWithSeverity("invalid", INFO, false);
620 TestLogWithSeverity("invalid", WARNING, true); 619 TestLogWithSeverity("invalid", WARNING, true);
621 } 620 }
622 621
623 #endif // 0 622 #endif // GTEST_HAS_STREAM_REDIRECTION_
624 623
625 TEST(TypeTraitsTest, true_type) { 624 TEST(TypeTraitsTest, true_type) {
626 EXPECT_TRUE(true_type::value); 625 EXPECT_TRUE(true_type::value);
627 } 626 }
628 627
629 TEST(TypeTraitsTest, false_type) { 628 TEST(TypeTraitsTest, false_type) {
630 EXPECT_FALSE(false_type::value); 629 EXPECT_FALSE(false_type::value);
631 } 630 }
632 631
633 TEST(TypeTraitsTest, is_reference) { 632 TEST(TypeTraitsTest, is_reference) {
(...skipping 16 matching lines...) Expand all
650 } 649 }
651 650
652 TEST(TypeTraitsTest, remove_reference) { 651 TEST(TypeTraitsTest, remove_reference) {
653 EXPECT_TRUE((type_equals<char, remove_reference<char&>::type>::value)); 652 EXPECT_TRUE((type_equals<char, remove_reference<char&>::type>::value));
654 EXPECT_TRUE((type_equals<const int, 653 EXPECT_TRUE((type_equals<const int,
655 remove_reference<const int&>::type>::value)); 654 remove_reference<const int&>::type>::value));
656 EXPECT_TRUE((type_equals<int, remove_reference<int>::type>::value)); 655 EXPECT_TRUE((type_equals<int, remove_reference<int>::type>::value));
657 EXPECT_TRUE((type_equals<double*, remove_reference<double*>::type>::value)); 656 EXPECT_TRUE((type_equals<double*, remove_reference<double*>::type>::value));
658 } 657 }
659 658
660 // TODO(wan@google.com): find a way to re-enable these tests. 659 #if GTEST_HAS_STREAM_REDIRECTION_
661 #if 0
662 660
663 // Verifies that Log() behaves correctly for the given verbosity level 661 // Verifies that Log() behaves correctly for the given verbosity level
664 // and log severity. 662 // and log severity.
665 string GrabOutput(void(*logger)(), const char* verbosity) { 663 String GrabOutput(void(*logger)(), const char* verbosity) {
666 const string saved_flag = GMOCK_FLAG(verbose); 664 const string saved_flag = GMOCK_FLAG(verbose);
667 GMOCK_FLAG(verbose) = verbosity; 665 GMOCK_FLAG(verbose) = verbosity;
668 CaptureTestStdout(); 666 CaptureStdout();
669 logger(); 667 logger();
670 GMOCK_FLAG(verbose) = saved_flag; 668 GMOCK_FLAG(verbose) = saved_flag;
671 return GetCapturedTestStdout(); 669 return GetCapturedStdout();
672 } 670 }
673 671
674 class DummyMock { 672 class DummyMock {
675 public: 673 public:
676 MOCK_METHOD0(TestMethod, void()); 674 MOCK_METHOD0(TestMethod, void());
677 MOCK_METHOD1(TestMethodArg, void(int dummy)); 675 MOCK_METHOD1(TestMethodArg, void(int dummy));
678 }; 676 };
679 677
680 void ExpectCallLogger() { 678 void ExpectCallLogger() {
681 DummyMock mock; 679 DummyMock mock;
682 EXPECT_CALL(mock, TestMethod()); 680 EXPECT_CALL(mock, TestMethod());
683 mock.TestMethod(); 681 mock.TestMethod();
684 }; 682 };
685 683
686 // Verifies that EXPECT_CALL logs if the --gmock_verbose flag is set to "info". 684 // Verifies that EXPECT_CALL logs if the --gmock_verbose flag is set to "info".
687 TEST(ExpectCallTest, LogsWhenVerbosityIsInfo) { 685 TEST(ExpectCallTest, LogsWhenVerbosityIsInfo) {
688 EXPECT_THAT(GrabOutput(ExpectCallLogger, kInfoVerbosity), 686 EXPECT_THAT(GrabOutput(ExpectCallLogger, kInfoVerbosity),
689 HasSubstr("EXPECT_CALL(mock, TestMethod())")); 687 HasSubstr("EXPECT_CALL(mock, TestMethod())"));
690 } 688 }
691 689
692 // Verifies that EXPECT_CALL doesn't log 690 // Verifies that EXPECT_CALL doesn't log
693 // if the --gmock_verbose flag is set to "warning". 691 // if the --gmock_verbose flag is set to "warning".
694 TEST(ExpectCallTest, DoesNotLogWhenVerbosityIsWarning) { 692 TEST(ExpectCallTest, DoesNotLogWhenVerbosityIsWarning) {
695 EXPECT_EQ("", GrabOutput(ExpectCallLogger, kWarningVerbosity)); 693 EXPECT_STREQ("", GrabOutput(ExpectCallLogger, kWarningVerbosity).c_str());
696 } 694 }
697 695
698 // Verifies that EXPECT_CALL doesn't log 696 // Verifies that EXPECT_CALL doesn't log
699 // if the --gmock_verbose flag is set to "error". 697 // if the --gmock_verbose flag is set to "error".
700 TEST(ExpectCallTest, DoesNotLogWhenVerbosityIsError) { 698 TEST(ExpectCallTest, DoesNotLogWhenVerbosityIsError) {
701 EXPECT_EQ("", GrabOutput(ExpectCallLogger, kErrorVerbosity)); 699 EXPECT_STREQ("", GrabOutput(ExpectCallLogger, kErrorVerbosity).c_str());
702 } 700 }
703 701
704 void OnCallLogger() { 702 void OnCallLogger() {
705 DummyMock mock; 703 DummyMock mock;
706 ON_CALL(mock, TestMethod()); 704 ON_CALL(mock, TestMethod());
707 }; 705 };
708 706
709 // Verifies that ON_CALL logs if the --gmock_verbose flag is set to "info". 707 // Verifies that ON_CALL logs if the --gmock_verbose flag is set to "info".
710 TEST(OnCallTest, LogsWhenVerbosityIsInfo) { 708 TEST(OnCallTest, LogsWhenVerbosityIsInfo) {
711 EXPECT_THAT(GrabOutput(OnCallLogger, kInfoVerbosity), 709 EXPECT_THAT(GrabOutput(OnCallLogger, kInfoVerbosity),
712 HasSubstr("ON_CALL(mock, TestMethod())")); 710 HasSubstr("ON_CALL(mock, TestMethod())"));
713 } 711 }
714 712
715 // Verifies that ON_CALL doesn't log 713 // Verifies that ON_CALL doesn't log
716 // if the --gmock_verbose flag is set to "warning". 714 // if the --gmock_verbose flag is set to "warning".
717 TEST(OnCallTest, DoesNotLogWhenVerbosityIsWarning) { 715 TEST(OnCallTest, DoesNotLogWhenVerbosityIsWarning) {
718 EXPECT_EQ("", GrabOutput(OnCallLogger, kWarningVerbosity)); 716 EXPECT_STREQ("", GrabOutput(OnCallLogger, kWarningVerbosity).c_str());
719 } 717 }
720 718
721 // Verifies that ON_CALL doesn't log if 719 // Verifies that ON_CALL doesn't log if
722 // the --gmock_verbose flag is set to "error". 720 // the --gmock_verbose flag is set to "error".
723 TEST(OnCallTest, DoesNotLogWhenVerbosityIsError) { 721 TEST(OnCallTest, DoesNotLogWhenVerbosityIsError) {
724 EXPECT_EQ("", GrabOutput(OnCallLogger, kErrorVerbosity)); 722 EXPECT_STREQ("", GrabOutput(OnCallLogger, kErrorVerbosity).c_str());
725 } 723 }
726 724
727 void OnCallAnyArgumentLogger() { 725 void OnCallAnyArgumentLogger() {
728 DummyMock mock; 726 DummyMock mock;
729 ON_CALL(mock, TestMethodArg(_)); 727 ON_CALL(mock, TestMethodArg(_));
730 } 728 }
731 729
732 // Verifies that ON_CALL prints provided _ argument. 730 // Verifies that ON_CALL prints provided _ argument.
733 TEST(OnCallTest, LogsAnythingArgument) { 731 TEST(OnCallTest, LogsAnythingArgument) {
734 EXPECT_THAT(GrabOutput(OnCallAnyArgumentLogger, kInfoVerbosity), 732 EXPECT_THAT(GrabOutput(OnCallAnyArgumentLogger, kInfoVerbosity),
735 HasSubstr("ON_CALL(mock, TestMethodArg(_)")); 733 HasSubstr("ON_CALL(mock, TestMethodArg(_)"));
736 } 734 }
737 735
738 #endif // 0 736 #endif // GTEST_HAS_STREAM_REDIRECTION_
739 737
740 // Tests ArrayEq(). 738 // Tests ArrayEq().
741 739
742 TEST(ArrayEqTest, WorksForDegeneratedArrays) { 740 TEST(ArrayEqTest, WorksForDegeneratedArrays) {
743 EXPECT_TRUE(ArrayEq(5, 5L)); 741 EXPECT_TRUE(ArrayEq(5, 5L));
744 EXPECT_FALSE(ArrayEq('a', 0)); 742 EXPECT_FALSE(ArrayEq('a', 0));
745 } 743 }
746 744
747 TEST(ArrayEqTest, WorksForOneDimensionalArrays) { 745 TEST(ArrayEqTest, WorksForOneDimensionalArrays) {
748 const int a[] = { 0, 1 }; 746 const int a[] = { 0, 1 };
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
948 EXPECT_EQ(2, a3.begin()[2]); 946 EXPECT_EQ(2, a3.begin()[2]);
949 947
950 // Makes sure a1 and a3 aren't aliases. 948 // Makes sure a1 and a3 aren't aliases.
951 a1[0] = 3; 949 a1[0] = 3;
952 EXPECT_EQ(0, a3.begin()[0]); 950 EXPECT_EQ(0, a3.begin()[0]);
953 } 951 }
954 952
955 } // namespace 953 } // namespace
956 } // namespace internal 954 } // namespace internal
957 } // namespace testing 955 } // namespace testing
OLDNEW
« no previous file with comments | « testing/gmock/test/gmock-generated-matchers_test.cc ('k') | testing/gmock/test/gmock-matchers_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698