Index: testing/gtest_mac.mm |
diff --git a/testing/gtest_mac.mm b/testing/gtest_mac.mm |
index c36b18bb554c57efd085db984b2d585b0a5e276b..b8b361432acc06bd7c3558ac024c05d7566165a2 100644 |
--- a/testing/gtest_mac.mm |
+++ b/testing/gtest_mac.mm |
@@ -17,6 +17,12 @@ |
namespace testing { |
namespace internal { |
+// Handles nil values for |obj| properly by using safe printing of %@ in |
+// -stringWithFormat:. |
+static inline const char* StringDescription(id<NSObject> obj) { |
+ return [[NSString stringWithFormat:@"%@", [obj description]] UTF8String]; |
Robert Sesek
2013/03/29 16:33:59
Just pass |obj| as the format argument, which will
pkl (ping after 24h if needed)
2013/03/29 16:38:45
Done.
|
+} |
+ |
// This overloaded version allows comparison between ObjC objects that conform |
// to the NSObject protocol. Used to implement {ASSERT|EXPECT}_EQ(). |
GTEST_API_ AssertionResult CmpHelperNSEQ(const char* expected_expression, |
@@ -28,8 +34,8 @@ GTEST_API_ AssertionResult CmpHelperNSEQ(const char* expected_expression, |
} |
return EqFailure(expected_expression, |
actual_expression, |
- std::string([[expected description] UTF8String]), |
- std::string([[actual description] UTF8String]), |
+ std::string(StringDescription(expected)), |
+ std::string(StringDescription(actual)), |
false); |
} |
@@ -44,8 +50,8 @@ GTEST_API_ AssertionResult CmpHelperNSNE(const char* expected_expression, |
} |
Message msg; |
msg << "Expected: (" << expected_expression << ") != (" << actual_expression |
- << "), actual: " << std::string([[expected description] UTF8String]) |
- << " vs " << std::string([[actual description] UTF8String]); |
+ << "), actual: " << StringDescription(expected) |
+ << " vs " << StringDescription(actual); |
return AssertionFailure(msg); |
} |