Chromium Code Reviews| 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); |
| } |