]> git.saurik.com Git - apple/objc4.git/blobdiff - test/super.m
objc4-437.tar.gz
[apple/objc4.git] / test / super.m
diff --git a/test/super.m b/test/super.m
new file mode 100644 (file)
index 0000000..24c1c62
--- /dev/null
@@ -0,0 +1,27 @@
+#include "test.h"
+#include <objc/objc-runtime.h>
+
+@interface Super { id isa; } @end
+@implementation Super 
++class { return self; } 
++(void)initialize { } 
+@end
+
+@interface Sub : Super @end
+@implementation Sub @end
+
+int main()
+{
+    id buf[10];
+    buf[0] = [Sub class];
+
+    // [super ...] messages are tested in msgSend.m
+
+    testassert(class_getSuperclass([Sub class]) == [Super class]);
+    testassert(class_getSuperclass([Sub class]->isa) == [Super class]->isa);
+    testassert(class_getSuperclass([Super class]) == Nil);
+    testassert(class_getSuperclass([Super class]->isa) == [Super class]);
+    testassert(class_getSuperclass(Nil) == Nil);
+
+    succeed(__FILE__);
+}