diff options
| author | zhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925> | 2010-07-26 21:59:50 +0000 | 
|---|---|---|
| committer | zhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925> | 2010-07-26 21:59:50 +0000 | 
| commit | 7c598c4f1a44fdda5f97587484c85bef9e93fa98 (patch) | |
| tree | a393db9c0cebf32d9a62a2a95e8ade4f5750c62c | |
| parent | 598fe2288e8e102d6e6748d496a8dcd59fa5f8a8 (diff) | |
| download | googletest-7c598c4f1a44fdda5f97587484c85bef9e93fa98.tar.gz googletest-7c598c4f1a44fdda5f97587484c85bef9e93fa98.tar.bz2 googletest-7c598c4f1a44fdda5f97587484c85bef9e93fa98.zip | |
Adds ADD_FAILURE_AT (by Zhanyong Wan); disables -Wswitch-default (by Vlad Losev).
| -rw-r--r-- | cmake/internal_utils.cmake | 2 | ||||
| -rw-r--r-- | include/gtest/gtest.h | 6 | ||||
| -rw-r--r-- | include/gtest/internal/gtest-internal.h | 7 | ||||
| -rw-r--r-- | test/gtest_output_test_.cc | 4 | ||||
| -rw-r--r-- | test/gtest_output_test_golden_lin.txt | 15 | ||||
| -rw-r--r-- | test/gtest_output_test_golden_win.txt | 14 | ||||
| -rw-r--r-- | test/gtest_unittest.cc | 15 | 
7 files changed, 52 insertions, 11 deletions
| diff --git a/cmake/internal_utils.cmake b/cmake/internal_utils.cmake index 0954e2de..68b79780 100644 --- a/cmake/internal_utils.cmake +++ b/cmake/internal_utils.cmake @@ -54,7 +54,7 @@ elseif (CMAKE_COMPILER_IS_GNUCXX)    # whether RTTI is enabled.  Therefore we define GTEST_HAS_RTTI    # explicitly.    set(cxx_no_rtti_flags "-fno-rtti -DGTEST_HAS_RTTI=0") -  set(cxx_strict_flags "-Wextra -Wswitch-default") +  set(cxx_strict_flags "-Wextra")  elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")    set(cxx_exception_flags "-features=except")    # Sun Pro doesn't provide macros to indicate whether exceptions and diff --git a/include/gtest/gtest.h b/include/gtest/gtest.h index 90dde389..af9d9e7c 100644 --- a/include/gtest/gtest.h +++ b/include/gtest/gtest.h @@ -1627,6 +1627,12 @@ const T* TestWithParam<T>::parameter_ = NULL;  // Generates a nonfatal failure with a generic message.  #define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed") +// Generates a nonfatal failure at the given source file location with +// a generic message. +#define ADD_FAILURE_AT(file, line) \ +  GTEST_MESSAGE_AT_(file, line, "Failed", \ +                    ::testing::TestPartResult::kNonFatalFailure) +  // Generates a fatal failure with a generic message.  #define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed") diff --git a/include/gtest/internal/gtest-internal.h b/include/gtest/internal/gtest-internal.h index 4a20c53c..1e453df6 100644 --- a/include/gtest/internal/gtest-internal.h +++ b/include/gtest/internal/gtest-internal.h @@ -1064,10 +1064,13 @@ class NativeArray {  }  // namespace internal  }  // namespace testing -#define GTEST_MESSAGE_(message, result_type) \ -  ::testing::internal::AssertHelper(result_type, __FILE__, __LINE__, message) \ +#define GTEST_MESSAGE_AT_(file, line, message, result_type) \ +  ::testing::internal::AssertHelper(result_type, file, line, message) \      = ::testing::Message() +#define GTEST_MESSAGE_(message, result_type) \ +  GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type) +  #define GTEST_FATAL_FAILURE_(message) \    return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure) diff --git a/test/gtest_output_test_.cc b/test/gtest_output_test_.cc index 1ac439c6..454e1bad 100644 --- a/test/gtest_output_test_.cc +++ b/test/gtest_output_test_.cc @@ -441,6 +441,10 @@ TEST_F(FatalFailureInSetUpTest, FailureInSetUp) {           << "We should never get here, as SetUp() failed.";  } +TEST(AddFailureAtTest, MessageContainsSpecifiedFileAndLineNumber) { +  ADD_FAILURE_AT("foo.cc", 42) << "Expected failure in foo.cc"; +} +  #if GTEST_OS_WINDOWS  // This group of tests verifies that Google Test handles SEH and C++ diff --git a/test/gtest_output_test_golden_lin.txt b/test/gtest_output_test_golden_lin.txt index 9b30445e..0ba9968c 100644 --- a/test/gtest_output_test_golden_lin.txt +++ b/test/gtest_output_test_golden_lin.txt @@ -7,7 +7,7 @@ Expected: true  gtest_output_test_.cc:#: Failure  Value of: 3  Expected: 2 -[0;32m[==========] [mRunning 61 tests from 26 test cases. +[0;32m[==========] [mRunning 62 tests from 27 test cases.  [0;32m[----------] [mGlobal test environment set-up.  FooEnvironment::SetUp() called.  BarEnvironment::SetUp() called. @@ -235,6 +235,12 @@ gtest_output_test_.cc:#: Failure  Failed  Expected failure #3, in the test fixture d'tor.  [0;31m[  FAILED  ] [mFatalFailureInSetUpTest.FailureInSetUp +[0;32m[----------] [m1 test from AddFailureAtTest +[0;32m[ RUN      ] [mAddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber +foo.cc:42: Failure +Failed +Expected failure in foo.cc +[0;31m[  FAILED  ] [mAddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber  [0;32m[----------] [m4 tests from MixedUpTestCaseTest  [0;32m[ RUN      ] [mMixedUpTestCaseTest.FirstTestFromNamespaceFoo  [0;32m[       OK ] [mMixedUpTestCaseTest.FirstTestFromNamespaceFoo @@ -580,9 +586,9 @@ FooEnvironment::TearDown() called.  gtest_output_test_.cc:#: Failure  Failed  Expected fatal failure. -[0;32m[==========] [m61 tests from 26 test cases ran. +[0;32m[==========] [m62 tests from 27 test cases ran.  [0;32m[  PASSED  ] [m21 tests. -[0;31m[  FAILED  ] [m40 tests, listed below: +[0;31m[  FAILED  ] [m41 tests, listed below:  [0;31m[  FAILED  ] [mFatalFailureTest.FatalFailureInSubroutine  [0;31m[  FAILED  ] [mFatalFailureTest.FatalFailureInNestedSubroutine  [0;31m[  FAILED  ] [mFatalFailureTest.NonfatalFailureInSubroutine @@ -597,6 +603,7 @@ Expected fatal failure.  [0;31m[  FAILED  ] [mFatalFailureInFixtureConstructorTest.FailureInConstructor  [0;31m[  FAILED  ] [mNonFatalFailureInSetUpTest.FailureInSetUp  [0;31m[  FAILED  ] [mFatalFailureInSetUpTest.FailureInSetUp +[0;31m[  FAILED  ] [mAddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber  [0;31m[  FAILED  ] [mMixedUpTestCaseTest.ThisShouldFail  [0;31m[  FAILED  ] [mMixedUpTestCaseTest.ThisShouldFailToo  [0;31m[  FAILED  ] [mMixedUpTestCaseWithSameTestNameTest.TheSecondTestWithThisNameShouldFail @@ -624,7 +631,7 @@ Expected fatal failure.  [0;31m[  FAILED  ] [mScopedFakeTestPartResultReporterTest.InterceptOnlyCurrentThread  [0;31m[  FAILED  ] [mPrintingFailingParams/FailingParamTest.Fails/0, where GetParam() = 2 -40 FAILED TESTS +41 FAILED TESTS  [0;33m  YOU HAVE 1 DISABLED TEST  [mNote: Google Test filter = FatalFailureTest.*:LoggingTest.* diff --git a/test/gtest_output_test_golden_win.txt b/test/gtest_output_test_golden_win.txt index bf76b8cc..135f39e3 100644 --- a/test/gtest_output_test_golden_win.txt +++ b/test/gtest_output_test_golden_win.txt @@ -5,7 +5,7 @@ gtest_output_test_.cc:#: error: Value of: false  Expected: true  gtest_output_test_.cc:#: error: Value of: 3  Expected: 2 -[==========] Running 62 tests from 28 test cases. +[==========] Running 63 tests from 29 test cases.  [----------] Global test environment set-up.  FooEnvironment::SetUp() called.  BarEnvironment::SetUp() called. @@ -173,6 +173,11 @@ Expected failure #2, in TearDown().  gtest_output_test_.cc:#: error: Failed  Expected failure #3, in the test fixture d'tor.  [  FAILED  ] FatalFailureInSetUpTest.FailureInSetUp +[----------] 1 test from AddFailureAtTest +[ RUN      ] AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber +foo.cc(42): error: Failed +Expected failure in foo.cc +[  FAILED  ] AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber  [----------] 1 test from ExceptionInFixtureCtorTest  [ RUN      ] ExceptionInFixtureCtorTest.ExceptionInFixtureCtor  (expecting a failure on thrown exception in the test fixture's constructor) @@ -492,9 +497,9 @@ Expected non-fatal failure.  FooEnvironment::TearDown() called.  gtest_output_test_.cc:#: error: Failed  Expected fatal failure. -[==========] 62 tests from 28 test cases ran. +[==========] 63 tests from 29 test cases ran.  [  PASSED  ] 21 tests. -[  FAILED  ] 41 tests, listed below: +[  FAILED  ] 42 tests, listed below:  [  FAILED  ] FatalFailureTest.FatalFailureInSubroutine  [  FAILED  ] FatalFailureTest.FatalFailureInNestedSubroutine  [  FAILED  ] FatalFailureTest.NonfatalFailureInSubroutine @@ -508,6 +513,7 @@ Expected fatal failure.  [  FAILED  ] FatalFailureInFixtureConstructorTest.FailureInConstructor  [  FAILED  ] NonFatalFailureInSetUpTest.FailureInSetUp  [  FAILED  ] FatalFailureInSetUpTest.FailureInSetUp +[  FAILED  ] AddFailureAtTest.MessageContainsSpecifiedFileAndLineNumber  [  FAILED  ] ExceptionInFixtureCtorTest.ExceptionInFixtureCtor  [  FAILED  ] ExceptionInSetUpTest.ExceptionInSetUp  [  FAILED  ] ExceptionInTestFunctionTest.SEH @@ -537,7 +543,7 @@ Expected fatal failure.  [  FAILED  ] ExpectFailureTest.ExpectNonFatalFailureOnAllThreads  [  FAILED  ] PrintingFailingParams/FailingParamTest.Fails/0, where GetParam() = 2 -41 FAILED TESTS +42 FAILED TESTS    YOU HAVE 1 DISABLED TEST  Note: Google Test filter = FatalFailureTest.*:LoggingTest.* diff --git a/test/gtest_unittest.cc b/test/gtest_unittest.cc index e11b6a66..910d4e20 100644 --- a/test/gtest_unittest.cc +++ b/test/gtest_unittest.cc @@ -4393,6 +4393,21 @@ TEST(MacroTest, ADD_FAILURE) {    EXPECT_FALSE(aborted);  } +// Tests ADD_FAILURE_AT. +TEST(MacroTest, ADD_FAILURE_AT) { +  // Verifies that ADD_FAILURE_AT does generate a nonfatal failure and +  // the failure message contains the user-streamed part. +  EXPECT_NONFATAL_FAILURE(ADD_FAILURE_AT("foo.cc", 42) << "Wrong!", "Wrong!"); + +  // Verifies that the user-streamed part is optional. +  EXPECT_NONFATAL_FAILURE(ADD_FAILURE_AT("foo.cc", 42), "Failed"); + +  // Unfortunately, we cannot verify that the failure message contains +  // the right file path and line number the same way, as +  // EXPECT_NONFATAL_FAILURE() doesn't get to see the file path and +  // line number.  Instead, we do that in gtest_output_test_.cc. +} +  // Tests FAIL.  TEST(MacroTest, FAIL) {    EXPECT_FATAL_FAILURE(FAIL(), | 
