⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class-tests-1.h

📁 this is a gcc file, you can download it and learn its usetility, for further detail please look at t
💻 H
字号:
/* 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);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -