]> git.saurik.com Git - apple/objc4.git/blob - test/imageorder.m
objc4-756.2.tar.gz
[apple/objc4.git] / test / imageorder.m
1 /*
2 TEST_BUILD
3 $C{COMPILE} $DIR/imageorder1.m -o imageorder1.dylib -dynamiclib
4 $C{COMPILE} $DIR/imageorder2.m -x none imageorder1.dylib -o imageorder2.dylib -dynamiclib
5 $C{COMPILE} $DIR/imageorder3.m -x none imageorder2.dylib imageorder1.dylib -o imageorder3.dylib -dynamiclib
6 $C{COMPILE} $DIR/imageorder.m -x none imageorder3.dylib imageorder2.dylib imageorder1.dylib -o imageorder.exe
7 END
8 */
9
10 #include "test.h"
11 #include "imageorder.h"
12 #include <objc/runtime.h>
13 #include <dlfcn.h>
14
15 int main()
16 {
17 // +load methods and C static initializers
18 testassert(state == 3);
19 testassert(cstate == 3);
20
21 Class cls = objc_getClass("Super");
22 testassert(cls);
23
24 // make sure all categories arrived
25 state = -1;
26 [Super method0];
27 testassert(state == 0);
28 [Super method1];
29 testassert(state == 1);
30 [Super method2];
31 testassert(state == 2);
32 [Super method3];
33 testassert(state == 3);
34
35 // make sure imageorder3.dylib is the last category to attach
36 state = 0;
37 [Super method];
38 testassert(state == 3);
39
40 succeed(__FILE__);
41 }