]> git.saurik.com Git - apple/objc4.git/blobdiff - test/load-parallel.m
objc4-493.9.tar.gz
[apple/objc4.git] / test / load-parallel.m
index db31191ed419d86d93d9f086381a77cb4ba62af8..54b0f6b4f50906e76e7a0cba245a327b24942de6 100644 (file)
@@ -1,3 +1,21 @@
+/*
+TEST_BUILD
+    $C{COMPILE} $DIR/load-parallel00.m -o load-parallel00.dylib -dynamiclib
+    $C{COMPILE} $DIR/load-parallel.m -x none load-parallel00.dylib -o load-parallel.out -DCOUNT=10
+
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel0.dylib -dynamiclib -DN=0
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel1.dylib -dynamiclib -DN=1
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel2.dylib -dynamiclib -DN=2
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel3.dylib -dynamiclib -DN=3
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel4.dylib -dynamiclib -DN=4
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel5.dylib -dynamiclib -DN=5
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel6.dylib -dynamiclib -DN=6
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel7.dylib -dynamiclib -DN=7
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel8.dylib -dynamiclib -DN=8
+    $C{COMPILE} $DIR/load-parallel0.m -x none load-parallel00.dylib -o load-parallel9.dylib -dynamiclib -DN=9
+END
+*/
+
 #include "test.h"
 
 #include <dlfcn.h>
@@ -16,18 +34,23 @@ void *thread(void *arg)
 
     objc_registerThreadWithCollector();
 
-    asprintf(&buf, "load-parallel%lu.out", (unsigned long)num);
+    asprintf(&buf, "load-parallel%lu.dylib", (unsigned long)num);
     testprintf("%s\n", buf);
     void *dlh = dlopen(buf, RTLD_LAZY);
     if (!dlh) {
         fail("dlopen failed: %s", dlerror());
     }
+    free(buf);
 
     return NULL;
 }
 
 int main()
 {
+#if TARGET_IPHONE_SIMULATOR
+    testwarn("simulator hangs calling dlopen() from +load");
+    succeed(__FILE__);
+#else
     pthread_t t[COUNT];
     uintptr_t i;
 
@@ -43,4 +66,5 @@ int main()
     testassert(state == COUNT*26);
 
     succeed(__FILE__);
+#endif
 }