libs-base/Tests/base/NSObject/test03.m
Richard Frith-MacDonald 8591ebc6e0 omit libobjc2 specific test where feature not available
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38550 72102866-910b-0410-8b05-ffd578937521
2015-05-26 10:05:51 +00:00

56 lines
1.2 KiB
Objective-C

#import "Testing.h"
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
/* Only do associated objects test if they are supported by the runtime.
*/
#if OBJC2RUNTIME && defined(OBJC_ASSOCIATION_RETAIN)
static BOOL AssociatedObjectDeallocCalled = NO;
static const char* objc_setAssociatedObjectKey = "objc_setAssociatedObjectKey";
@interface associatedObjectTestAssociatedObject : NSObject
@end
@implementation associatedObjectTestAssociatedObject
- (void) dealloc
{
AssociatedObjectDeallocCalled = YES;
[super dealloc];
}
@end
@interface associatedObjectTestAllocatedObject : NSObject
@end
@implementation associatedObjectTestAllocatedObject
@end
int main()
{
associatedObjectTestAllocatedObject* object =
[associatedObjectTestAllocatedObject new];
associatedObjectTestAssociatedObject *info =
[associatedObjectTestAssociatedObject new];
objc_setAssociatedObject(object, &objc_setAssociatedObjectKey, info,
OBJC_ASSOCIATION_RETAIN);
[info release];
[object release];
PASS(AssociatedObjectDeallocCalled == YES,
"'objc_setAssociatedObject' was released");
return 0;
}
#else
int main()
{
return 0; // Nothing to test
}
#endif