quakeforge/tools/qfcc/test/ifsuper.r

57 lines
849 B
R
Raw Normal View History

#pragma advanced
#include "test-harness.h"
int obj_increment_retaincount (id object) = #0;
int obj_get_retaincount (id object) = #0;
id (Class class) class_create_instance = #0;
id obj_msgSend_super (Super *class, SEL op, ...) = #0;
@interface Object
{
Class isa;
}
+(id) alloc;
-(id) init;
@end
@interface Foo : Object
-(id) init;
@end
@implementation Object
+(id) alloc
{
return class_create_instance (self);
}
-(id) init
{
obj_increment_retaincount (self);
return self;
}
@end
@implementation Foo
-(id) init
{
if (!(self = [super init])) {
return nil;
}
return self;
}
@end
int main ()
{
Foo *foo = [[Foo alloc] init];
if (!foo) {
printf ("foo is nil\n");
return 1;
}
int retain = obj_get_retaincount (foo);
if (retain != 1) {
printf ("retain count != 1: %d\n", retain);
return 1;
}
return 0;
}