From 8087f5738cd4021ed4bf3f33f923a9c7402a5d51 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Wed, 23 Feb 2011 20:02:18 +0000 Subject: [PATCH] Fixed null string reporting issue --- Test/MiscTests.cpp | 11 +++++++++++ internal/catch_capture.hpp | 14 +++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Test/MiscTests.cpp b/Test/MiscTests.cpp index 52d00141..afe42baf 100644 --- a/Test/MiscTests.cpp +++ b/Test/MiscTests.cpp @@ -105,3 +105,14 @@ TEST_CASE( "./succeeding/Misc/stdout,stderr", "Sends stuff to stdout and stderr" std::cerr << "An error"; } + +const char* makeString( bool makeNull ) +{ + return makeNull ? NULL : "valid string"; +} + +TEST_CASE( "./succeeding/Misc/null strings", "" ) +{ + REQUIRE( makeString( false ) != static_cast(NULL)); + REQUIRE( makeString( true ) == static_cast(NULL)); +} diff --git a/internal/catch_capture.hpp b/internal/catch_capture.hpp index 047a1ac8..213c609f 100644 --- a/internal/catch_capture.hpp +++ b/internal/catch_capture.hpp @@ -105,15 +105,23 @@ inline std::string toString { return value; } +/////////////////////////////////////////////////////////////////////////////// +inline std::string toString +( + const char* const value +) +{ + return value ? "'" + std::string( value ) + "'" : std::string( "{null string}" ); +} /////////////////////////////////////////////////////////////////////////////// inline std::string toString ( - const char* value + char* const value ) { - return value; -} + return toString( static_cast( value ) ); +} /////////////////////////////////////////////////////////////////////////////// inline std::string toString