mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 15:26:11 +01:00
Fixed toString for NSString* in Xcode 4.4
This commit is contained in:
parent
61756974d0
commit
0dc9e43c02
@ -8,7 +8,8 @@
|
|||||||
#ifndef TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
|
#ifndef TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
|
||||||
#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
|
#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
#include "catch_objc_arc.hpp"
|
||||||
|
|
||||||
#import <objc/runtime.h>
|
#import <objc/runtime.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -18,38 +19,6 @@
|
|||||||
// header for non obj-usage
|
// header for non obj-usage
|
||||||
#include "internal/catch_test_case_info.hpp"
|
#include "internal/catch_test_case_info.hpp"
|
||||||
|
|
||||||
#ifdef __has_feature
|
|
||||||
#define CATCH_ARC_ENABLED __has_feature(objc_arc)
|
|
||||||
#else
|
|
||||||
#define CATCH_ARC_ENABLED 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void arcSafeRelease( NSObject* obj );
|
|
||||||
id performOptionalSelector( id obj, SEL sel );
|
|
||||||
|
|
||||||
#if !CATCH_ARC_ENABLED
|
|
||||||
inline void arcSafeRelease( NSObject* obj ) {
|
|
||||||
[obj release];
|
|
||||||
}
|
|
||||||
inline id performOptionalSelector( id obj, SEL sel ) {
|
|
||||||
if( [obj respondsToSelector: sel] )
|
|
||||||
return [obj performSelector: sel];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
#define CATCH_UNSAFE_UNRETAINED
|
|
||||||
#else
|
|
||||||
inline void arcSafeRelease( NSObject* ){}
|
|
||||||
inline id performOptionalSelector( id obj, SEL sel ) {
|
|
||||||
#pragma clang diagnostic push
|
|
||||||
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
|
|
||||||
if( [obj respondsToSelector: sel] )
|
|
||||||
return [obj performSelector: sel];
|
|
||||||
#pragma clang diagnostic pop
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
|
|
||||||
#endif
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// This protocol is really only here for (self) documenting purposes, since
|
// This protocol is really only here for (self) documenting purposes, since
|
||||||
// all its methods are optional.
|
// all its methods are optional.
|
||||||
@ -147,10 +116,6 @@ namespace Catch {
|
|||||||
return noTestMethods;
|
return noTestMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline std::string toString( NSString* const& nsstring ) {
|
|
||||||
return std::string( "@\"" ) + [nsstring UTF8String] + "\"";
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace Matchers {
|
namespace Matchers {
|
||||||
namespace Impl {
|
namespace Impl {
|
||||||
namespace NSStringMatchers {
|
namespace NSStringMatchers {
|
||||||
|
47
include/internal/catch_objc_arc.hpp
Normal file
47
include/internal/catch_objc_arc.hpp
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Created by Phil on 1/08/2012.
|
||||||
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
|
*
|
||||||
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#ifdef __has_feature
|
||||||
|
#define CATCH_ARC_ENABLED __has_feature(objc_arc)
|
||||||
|
#else
|
||||||
|
#define CATCH_ARC_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void arcSafeRelease( NSObject* obj );
|
||||||
|
id performOptionalSelector( id obj, SEL sel );
|
||||||
|
|
||||||
|
#if !CATCH_ARC_ENABLED
|
||||||
|
inline void arcSafeRelease( NSObject* obj ) {
|
||||||
|
[obj release];
|
||||||
|
}
|
||||||
|
inline id performOptionalSelector( id obj, SEL sel ) {
|
||||||
|
if( [obj respondsToSelector: sel] )
|
||||||
|
return [obj performSelector: sel];
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
#define CATCH_UNSAFE_UNRETAINED
|
||||||
|
#define CATCH_ARC_STRONG
|
||||||
|
#else
|
||||||
|
inline void arcSafeRelease( NSObject* ){}
|
||||||
|
inline id performOptionalSelector( id obj, SEL sel ) {
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
|
||||||
|
if( [obj respondsToSelector: sel] )
|
||||||
|
return [obj performSelector: sel];
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
|
||||||
|
#define CATCH_ARC_STRONG __strong
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
|
@ -11,6 +11,10 @@
|
|||||||
#include "catch_common.h"
|
#include "catch_common.h"
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#include "catch_objc_arc.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
namespace Detail {
|
namespace Detail {
|
||||||
|
|
||||||
@ -131,6 +135,21 @@ inline std::string toString( std::nullptr_t ) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
// inline std::string toString( NSString* const& nsstring ) {
|
||||||
|
// return std::string( "@\"" ) + [nsstring UTF8String] + "\"";
|
||||||
|
// }
|
||||||
|
inline std::string toString( NSString const * const& nsstring ) {
|
||||||
|
return std::string( "@\"" ) + [nsstring UTF8String] + "\"";
|
||||||
|
}
|
||||||
|
inline std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) {
|
||||||
|
return std::string( "@\"" ) + [nsstring UTF8String] + "\"";
|
||||||
|
}
|
||||||
|
inline std::string toString( NSObject* const& nsObject ) {
|
||||||
|
return toString( [nsObject description] );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
|
#endif // TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
|
||||||
|
@ -92,6 +92,7 @@
|
|||||||
4AB77CB51551AEA200857BF0 /* catch_ptr.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_ptr.hpp; sourceTree = "<group>"; };
|
4AB77CB51551AEA200857BF0 /* catch_ptr.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_ptr.hpp; sourceTree = "<group>"; };
|
||||||
4AB77CB71553B72B00857BF0 /* catch_section_info.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_section_info.hpp; sourceTree = "<group>"; };
|
4AB77CB71553B72B00857BF0 /* catch_section_info.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_section_info.hpp; sourceTree = "<group>"; };
|
||||||
4AB77CB81553BB3800857BF0 /* catch_running_test.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_running_test.hpp; sourceTree = "<group>"; };
|
4AB77CB81553BB3800857BF0 /* catch_running_test.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_running_test.hpp; sourceTree = "<group>"; };
|
||||||
|
4ABEA80415C90D2B009F0424 /* catch_objc_arc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_objc_arc.hpp; sourceTree = "<group>"; };
|
||||||
4AC91CCE155CF02800DC5117 /* catch_expression.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_expression.hpp; sourceTree = "<group>"; };
|
4AC91CCE155CF02800DC5117 /* catch_expression.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_expression.hpp; sourceTree = "<group>"; };
|
||||||
4AC91CD0155D8DA600DC5117 /* catch_expression_builder.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_expression_builder.hpp; sourceTree = "<group>"; };
|
4AC91CD0155D8DA600DC5117 /* catch_expression_builder.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_expression_builder.hpp; sourceTree = "<group>"; };
|
||||||
4AE1840A14EE4F230066340D /* catch_self_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_self_test.cpp; path = ../../../SelfTest/catch_self_test.cpp; sourceTree = "<group>"; };
|
4AE1840A14EE4F230066340D /* catch_self_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_self_test.cpp; path = ../../../SelfTest/catch_self_test.cpp; sourceTree = "<group>"; };
|
||||||
@ -287,6 +288,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
4A6D0C59149B3E3D00DB3EAA /* catch_objc.hpp */,
|
4A6D0C59149B3E3D00DB3EAA /* catch_objc.hpp */,
|
||||||
|
4ABEA80415C90D2B009F0424 /* catch_objc_arc.hpp */,
|
||||||
);
|
);
|
||||||
name = "Objective-C";
|
name = "Objective-C";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
4A63D2C414E454CC00F615CB /* TestObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestObj.h; sourceTree = "<group>"; };
|
4A63D2C414E454CC00F615CB /* TestObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestObj.h; sourceTree = "<group>"; };
|
||||||
4A63D2C514E454CC00F615CB /* TestObj.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestObj.m; sourceTree = "<group>"; };
|
4A63D2C514E454CC00F615CB /* TestObj.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestObj.m; sourceTree = "<group>"; };
|
||||||
4AA0D951154C0A7A004B4193 /* catch_objc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_objc.hpp; path = ../../../include/internal/catch_objc.hpp; sourceTree = "<group>"; };
|
4AA0D951154C0A7A004B4193 /* catch_objc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_objc.hpp; path = ../../../include/internal/catch_objc.hpp; sourceTree = "<group>"; };
|
||||||
|
4ABEA80615C90E10009F0424 /* catch_objc_arc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_objc_arc.hpp; path = ../../../include/internal/catch_objc_arc.hpp; sourceTree = "<group>"; };
|
||||||
|
4ABEA80815C90E38009F0424 /* catch_tostring.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = catch_tostring.hpp; path = ../../../include/internal/catch_tostring.hpp; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@ -88,6 +90,8 @@
|
|||||||
4AA0D94F154C0A63004B4193 /* Catch */ = {
|
4AA0D94F154C0A63004B4193 /* Catch */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
4ABEA80815C90E38009F0424 /* catch_tostring.hpp */,
|
||||||
|
4ABEA80615C90E10009F0424 /* catch_objc_arc.hpp */,
|
||||||
4AA0D951154C0A7A004B4193 /* catch_objc.hpp */,
|
4AA0D951154C0A7A004B4193 /* catch_objc.hpp */,
|
||||||
);
|
);
|
||||||
name = Catch;
|
name = Catch;
|
||||||
@ -204,6 +208,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
HEADER_SEARCH_PATHS = ../../../single_include;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@ -212,6 +217,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
HEADER_SEARCH_PATHS = ../../../single_include;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
@ -68,7 +68,7 @@ void useObject( const T* object ){}
|
|||||||
|
|
||||||
OC_TEST_CASE( "OCTest/matchers", "Matches work with OC types (NSString so far)" )
|
OC_TEST_CASE( "OCTest/matchers", "Matches work with OC types (NSString so far)" )
|
||||||
{
|
{
|
||||||
REQUIRE_THAT( @"This is a string", Equals( @"This is a string" ) );
|
REQUIRE_THAT( @"This is a string", Equals( @"This isnt a string" ) );
|
||||||
REQUIRE_THAT( @"This is a string", Contains( @"is a" ) );
|
REQUIRE_THAT( @"This is a string", Contains( @"is a" ) );
|
||||||
REQUIRE_THAT( @"This is a string", StartsWith( @"This" ) );
|
REQUIRE_THAT( @"This is a string", StartsWith( @"This" ) );
|
||||||
REQUIRE_THAT( @"This is a string", EndsWith( @"string" ) );
|
REQUIRE_THAT( @"This is a string", EndsWith( @"string" ) );
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Generated: 2012-07-28 20:36:23.213113
|
* Generated: 2012-08-01 08:15:06.796335
|
||||||
* ----------------------------------------------------------
|
* ----------------------------------------------------------
|
||||||
* This file has been merged from multiple headers. Please don't edit it directly
|
* This file has been merged from multiple headers. Please don't edit it directly
|
||||||
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
@ -553,6 +553,47 @@ private:
|
|||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
// #included from: catch_objc_arc.hpp
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#ifdef __has_feature
|
||||||
|
#define CATCH_ARC_ENABLED __has_feature(objc_arc)
|
||||||
|
#else
|
||||||
|
#define CATCH_ARC_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void arcSafeRelease( NSObject* obj );
|
||||||
|
id performOptionalSelector( id obj, SEL sel );
|
||||||
|
|
||||||
|
#if !CATCH_ARC_ENABLED
|
||||||
|
inline void arcSafeRelease( NSObject* obj ) {
|
||||||
|
[obj release];
|
||||||
|
}
|
||||||
|
inline id performOptionalSelector( id obj, SEL sel ) {
|
||||||
|
if( [obj respondsToSelector: sel] )
|
||||||
|
return [obj performSelector: sel];
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
#define CATCH_UNSAFE_UNRETAINED
|
||||||
|
#define CATCH_ARC_STRONG
|
||||||
|
#else
|
||||||
|
inline void arcSafeRelease( NSObject* ){}
|
||||||
|
inline id performOptionalSelector( id obj, SEL sel ) {
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
|
||||||
|
if( [obj respondsToSelector: sel] )
|
||||||
|
return [obj performSelector: sel];
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
|
||||||
|
#define CATCH_ARC_STRONG __strong
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
namespace Detail {
|
namespace Detail {
|
||||||
|
|
||||||
@ -673,6 +714,21 @@ inline std::string toString( std::nullptr_t ) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
// inline std::string toString( NSString* const& nsstring ) {
|
||||||
|
// return std::string( "@\"" ) + [nsstring UTF8String] + "\"";
|
||||||
|
// }
|
||||||
|
inline std::string toString( NSString const * const& nsstring ) {
|
||||||
|
return std::string( "@\"" ) + [nsstring UTF8String] + "\"";
|
||||||
|
}
|
||||||
|
inline std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) {
|
||||||
|
return std::string( "@\"" ) + [nsstring UTF8String] + "\"";
|
||||||
|
}
|
||||||
|
inline std::string toString( NSObject* const& nsObject ) {
|
||||||
|
return toString( [nsObject description] );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
|
||||||
// #included from: catch_resultinfo.hpp
|
// #included from: catch_resultinfo.hpp
|
||||||
@ -2084,7 +2140,6 @@ namespace Catch {
|
|||||||
#ifdef __OBJC__
|
#ifdef __OBJC__
|
||||||
// #included from: internal/catch_objc.hpp
|
// #included from: internal/catch_objc.hpp
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <objc/runtime.h>
|
#import <objc/runtime.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -2093,38 +2148,6 @@ namespace Catch {
|
|||||||
// in catch.hpp first to make sure they are included by the single
|
// in catch.hpp first to make sure they are included by the single
|
||||||
// header for non obj-usage
|
// header for non obj-usage
|
||||||
|
|
||||||
#ifdef __has_feature
|
|
||||||
#define CATCH_ARC_ENABLED __has_feature(objc_arc)
|
|
||||||
#else
|
|
||||||
#define CATCH_ARC_ENABLED 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void arcSafeRelease( NSObject* obj );
|
|
||||||
id performOptionalSelector( id obj, SEL sel );
|
|
||||||
|
|
||||||
#if !CATCH_ARC_ENABLED
|
|
||||||
inline void arcSafeRelease( NSObject* obj ) {
|
|
||||||
[obj release];
|
|
||||||
}
|
|
||||||
inline id performOptionalSelector( id obj, SEL sel ) {
|
|
||||||
if( [obj respondsToSelector: sel] )
|
|
||||||
return [obj performSelector: sel];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
#define CATCH_UNSAFE_UNRETAINED
|
|
||||||
#else
|
|
||||||
inline void arcSafeRelease( NSObject* ){}
|
|
||||||
inline id performOptionalSelector( id obj, SEL sel ) {
|
|
||||||
#pragma clang diagnostic push
|
|
||||||
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
|
|
||||||
if( [obj respondsToSelector: sel] )
|
|
||||||
return [obj performSelector: sel];
|
|
||||||
#pragma clang diagnostic pop
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
|
|
||||||
#endif
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// This protocol is really only here for (self) documenting purposes, since
|
// This protocol is really only here for (self) documenting purposes, since
|
||||||
// all its methods are optional.
|
// all its methods are optional.
|
||||||
@ -2222,13 +2245,6 @@ namespace Catch {
|
|||||||
return noTestMethods;
|
return noTestMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline std::string toString( NSString* const& nsstring ) {
|
|
||||||
return std::string( "@\"" ) + [nsstring UTF8String] + "\"";
|
|
||||||
}
|
|
||||||
inline std::string toString( NSObject* const& nsObject ) {
|
|
||||||
return toString( [nsObject description] );
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace Matchers {
|
namespace Matchers {
|
||||||
namespace Impl {
|
namespace Impl {
|
||||||
namespace NSStringMatchers {
|
namespace NSStringMatchers {
|
||||||
|
Loading…
Reference in New Issue
Block a user