URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [objc/] [execute/] [class-tests-1.h] - Rev 825
Go to most recent revision | Compare with Previous | Blame | View Log
/* Contributed by Nicola Pero on Tue Mar 6 23:05:53 CET 2001 */ #include <objc/objc.h> #include <objc/objc-api.h> #include <objc/Object.h> #include <stdlib.h> /* * Standard Tests For Classes and Objects - abort upon failing; return * normally if all is well. */ /* Test that `class' is a Class */ static void test_is_class (Class class) { if (object_is_class (class) == NO) { printf ("test_is_class failed\n"); abort (); } if (class_is_class (class) == NO) { printf ("test_is_class failed\n"); abort (); } } /* Test that the superclass of `class' is `superclass' */ static void test_superclass (Class class, Class superclass) { if (class_get_super_class (class) != superclass) { printf ("test_superclass failed\n"); abort (); } } /* Test that the classname of `class' is `classname' */ static void test_class_name (Class class, const char *classname) { if (strcmp (class_get_class_name (class), classname)) { printf ("test_class_name failed\n"); abort (); } } /* Test that we can allocate instances of `class' */ static void test_allocate (Class class) { /* The object we create is leaked but who cares, this is only a test */ id object = class_create_instance (class); if (object == nil) { printf ("test_allocate failed\n"); abort (); } } /* Test that instances of `class' are instances and not classes */ static void test_instances (Class class) { id object = class_create_instance (class); if (object_is_class (object) == YES) { printf ("test_instances failed\n"); abort (); } } /* Test that we can deallocate instances of `class' */ static void test_deallocate (Class class) { id object = class_create_instance (class); object_dispose (object); } /* Test that the object and the class agree on what the class is */ static void test_object_class (Class class) { id object = class_create_instance (class); if (object_get_class (object) != class) { printf ("test_object_class failed\n"); abort (); } } /* Test that the object and the class agree on what the superclass is */ static void test_object_super_class (Class class) { id object = class_create_instance (class); if (object_get_super_class (object) != class_get_super_class (class)) { printf ("test_object_super_class failed\n"); abort (); } } /* * Runs all the tests in this file for the specified class */ void test_class_with_superclass (const char *class_name, const char *superclass_name) { Class class; Class superclass; /* We need at least a method call before playing with the internals, so that the runtime will call __objc_resolve_class_links () */ [Object class]; /* class_name must be an existing class */ class = objc_lookup_class (class_name); test_is_class (class); /* But superclass_name can be "", which means `Nil' */ superclass = objc_lookup_class (superclass_name); if (superclass != Nil) { test_is_class (superclass); } /* Now the tests */ test_superclass (class, superclass); test_class_name (class, class_name); test_allocate (class); test_instances (class); test_deallocate (class); test_object_class (class); test_object_super_class (class); }
Go to most recent revision | Compare with Previous | Blame | View Log