summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925>2010-09-27 17:42:52 +0000
committerzhanyong.wan <zhanyong.wan@861a406c-534a-0410-8894-cb66d6ee9925>2010-09-27 17:42:52 +0000
commit375ce98f43aebcc1bd702cf9fcb860788e5cb820 (patch)
tree267c18d6dd6ee179748ea46e790f3c32c42a100e
parent0bfb56317785c7960bedee9fda0bb879347e2121 (diff)
downloadgoogletest-375ce98f43aebcc1bd702cf9fcb860788e5cb820.tar.gz
Allows EXPECT_FATAL_FAILURE() and friends to accept a string object as the second argument.
git-svn-id: http://googletest.googlecode.com/svn/trunk@485 861a406c-534a-0410-8894-cb66d6ee9925
-rw-r--r--include/gtest/gtest-spi.h4
-rw-r--r--src/gtest.cc8
-rw-r--r--test/gtest_unittest.cc23
3 files changed, 29 insertions, 6 deletions
diff --git a/include/gtest/gtest-spi.h b/include/gtest/gtest-spi.h
index e338e36..b226e55 100644
--- a/include/gtest/gtest-spi.h
+++ b/include/gtest/gtest-spi.h
@@ -98,12 +98,12 @@ class GTEST_API_ SingleFailureChecker {
// The constructor remembers the arguments.
SingleFailureChecker(const TestPartResultArray* results,
TestPartResult::Type type,
- const char* substr);
+ const string& substr);
~SingleFailureChecker();
private:
const TestPartResultArray* const results_;
const TestPartResult::Type type_;
- const String substr_;
+ const string substr_;
GTEST_DISALLOW_COPY_AND_ASSIGN_(SingleFailureChecker);
};
diff --git a/src/gtest.cc b/src/gtest.cc
index 34e56d7..3b2238f 100644
--- a/src/gtest.cc
+++ b/src/gtest.cc
@@ -607,7 +607,7 @@ AssertionResult HasOneFailure(const char* /* results_expr */,
const char* /* substr_expr */,
const TestPartResultArray& results,
TestPartResult::Type type,
- const char* substr) {
+ const string& substr) {
const String expected(type == TestPartResult::kFatalFailure ?
"1 fatal failure" :
"1 non-fatal failure");
@@ -629,7 +629,7 @@ AssertionResult HasOneFailure(const char* /* results_expr */,
return AssertionFailure(msg);
}
- if (strstr(r.message(), substr) == NULL) {
+ if (strstr(r.message(), substr.c_str()) == NULL) {
msg << "Expected: " << expected << " containing \""
<< substr << "\"\n"
<< " Actual:\n"
@@ -646,7 +646,7 @@ AssertionResult HasOneFailure(const char* /* results_expr */,
SingleFailureChecker:: SingleFailureChecker(
const TestPartResultArray* results,
TestPartResult::Type type,
- const char* substr)
+ const string& substr)
: results_(results),
type_(type),
substr_(substr) {}
@@ -656,7 +656,7 @@ SingleFailureChecker:: SingleFailureChecker(
// type and contains the given substring. If that's not the case, a
// non-fatal failure will be generated.
SingleFailureChecker::~SingleFailureChecker() {
- EXPECT_PRED_FORMAT3(HasOneFailure, *results_, type_, substr_.c_str());
+ EXPECT_PRED_FORMAT3(HasOneFailure, *results_, type_, substr_);
}
DefaultGlobalTestPartResultReporter::DefaultGlobalTestPartResultReporter(
diff --git a/test/gtest_unittest.cc b/test/gtest_unittest.cc
index 8e3e7e6..056064f 100644
--- a/test/gtest_unittest.cc
+++ b/test/gtest_unittest.cc
@@ -1335,6 +1335,17 @@ TEST_F(ExpectFatalFailureTest, CatchesFatalFaliure) {
EXPECT_FATAL_FAILURE(AddFatalFailure(), "Expected fatal failure.");
}
+#if GTEST_HAS_GLOBAL_STRING
+TEST_F(ExpectFatalFailureTest, AcceptsStringObject) {
+ EXPECT_FATAL_FAILURE(AddFatalFailure(), ::string("Expected fatal failure."));
+}
+#endif
+
+TEST_F(ExpectFatalFailureTest, AcceptsStdStringObject) {
+ EXPECT_FATAL_FAILURE(AddFatalFailure(),
+ ::std::string("Expected fatal failure."));
+}
+
TEST_F(ExpectFatalFailureTest, CatchesFatalFailureOnAllThreads) {
// We have another test below to verify that the macro catches fatal
// failures generated on another thread.
@@ -1412,6 +1423,18 @@ TEST_F(ExpectNonfatalFailureTest, CatchesNonfatalFailure) {
"Expected non-fatal failure.");
}
+#if GTEST_HAS_GLOBAL_STRING
+TEST_F(ExpectNonfatalFailureTest, AcceptsStringObject) {
+ EXPECT_NONFATAL_FAILURE(AddNonfatalFailure(),
+ ::string("Expected non-fatal failure."));
+}
+#endif
+
+TEST_F(ExpectNonfatalFailureTest, AcceptsStdStringObject) {
+ EXPECT_NONFATAL_FAILURE(AddNonfatalFailure(),
+ ::std::string("Expected non-fatal failure."));
+}
+
TEST_F(ExpectNonfatalFailureTest, CatchesNonfatalFailureOnAllThreads) {
// We have another test below to verify that the macro catches
// non-fatal failures generated on another thread.