Merge pull request #301 from bena/master

toString handles wchar_t raw strings
This commit is contained in:
Phil Nash 2014-08-15 08:14:08 +01:00
commit ee83a6f006
3 changed files with 36 additions and 0 deletions

View File

@ -154,6 +154,8 @@ std::string toString( std::string const& value );
std::string toString( std::wstring const& value ); std::string toString( std::wstring const& value );
std::string toString( const char* const value ); std::string toString( const char* const value );
std::string toString( char* const value ); std::string toString( char* const value );
std::string toString( const wchar_t* const value );
std::string toString( wchar_t* const value );
std::string toString( int value ); std::string toString( int value );
std::string toString( unsigned long value ); std::string toString( unsigned long value );
std::string toString( unsigned int value ); std::string toString( unsigned int value );

View File

@ -84,6 +84,16 @@ std::string toString( char* const value ) {
return Catch::toString( static_cast<const char*>( value ) ); return Catch::toString( static_cast<const char*>( value ) );
} }
std::string toString( const wchar_t* const value )
{
return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" );
}
std::string toString( wchar_t* const value )
{
return Catch::toString( static_cast<const wchar_t*>( value ) );
}
std::string toString( int value ) { std::string toString( int value ) {
std::ostringstream oss; std::ostringstream oss;
oss << value; oss << value;

View File

@ -356,3 +356,27 @@ TEST_CASE( "Tabs and newlines show in output", "[.][whitespace][failing]" ) {
CHECK( s1 == s2 ); CHECK( s1 == s2 );
} }
TEST_CASE( "toString on const wchar_t const pointer returns the string contents", "[toString]" ) {
const wchar_t * const s = L"wide load";
std::string result = Catch::toString( s );
CHECK( result == "\"wide load\"" );
}
TEST_CASE( "toString on const wchar_t pointer returns the string contents", "[toString]" ) {
const wchar_t * s = L"wide load";
std::string result = Catch::toString( s );
CHECK( result == "\"wide load\"" );
}
TEST_CASE( "toString on wchar_t const pointer returns the string contents", "[toString]" ) {
wchar_t * const s = L"wide load";
std::string result = Catch::toString( s );
CHECK( result == "\"wide load\"" );
}
TEST_CASE( "toString on wchar_t returns the string contents", "[toString]" ) {
wchar_t * s = L"wide load";
std::string result = Catch::toString( s );
CHECK( result == "\"wide load\"" );
}