[pypy-commit] pypy default: fix embedding tests on OS X (they might or might not work on linux, too lazy to check), sem_init is deprecated

fijal pypy.commits at gmail.com
Mon Feb 29 17:22:19 EST 2016


Author: fijal
Branch: 
Changeset: r82619:38deea741bed
Date: 2016-02-29 23:20 +0100
http://bitbucket.org/pypy/pypy/changeset/38deea741bed/

Log:	fix embedding tests on OS X (they might or might not work on linux,
	too lazy to check), sem_init is deprecated

diff --git a/pypy/module/test_lib_pypy/cffi_tests/embedding/perf-test.c b/pypy/module/test_lib_pypy/cffi_tests/embedding/perf-test.c
--- a/pypy/module/test_lib_pypy/cffi_tests/embedding/perf-test.c
+++ b/pypy/module/test_lib_pypy/cffi_tests/embedding/perf-test.c
@@ -1,10 +1,12 @@
 #include <stdio.h>
 #include <assert.h>
+#include <string.h>
 #include <sys/time.h>
+#include <errno.h>
 #ifdef PTEST_USE_THREAD
 # include <pthread.h>
 # include <semaphore.h>
-static sem_t done;
+sem_t *done;
 #endif
 
 
@@ -54,7 +56,7 @@
     printf("time per call: %.3g\n", t);
 
 #ifdef PTEST_USE_THREAD
-    int status = sem_post(&done);
+    int status = sem_post(done);
     assert(status == 0);
 #endif
 
@@ -68,8 +70,8 @@
     start_routine(0);
 #else
     pthread_t th;
-    int i, status = sem_init(&done, 0, 0);
-    assert(status == 0);
+    done = sem_open("perf-test", O_CREAT, 0777, 0);
+    int i, status;
 
     add1(0, 0);   /* this is the main thread */
 
@@ -78,7 +80,9 @@
         assert(status == 0);
     }
     for (i = 0; i < PTEST_USE_THREAD; i++) {
-        status = sem_wait(&done);
+        status = sem_wait(done);
+        if (status)
+            fprintf(stderr, "%s\n", strerror(errno));
         assert(status == 0);
     }
 #endif
diff --git a/pypy/module/test_lib_pypy/cffi_tests/embedding/thread1-test.c b/pypy/module/test_lib_pypy/cffi_tests/embedding/thread1-test.c
--- a/pypy/module/test_lib_pypy/cffi_tests/embedding/thread1-test.c
+++ b/pypy/module/test_lib_pypy/cffi_tests/embedding/thread1-test.c
@@ -7,7 +7,7 @@
 
 extern int add1(int, int);
 
-static sem_t done;
+static sem_t* done;
 
 
 static void *start_routine(void *arg)
@@ -16,7 +16,7 @@
     x = add1(40, 2);
     assert(x == 42);
 
-    status = sem_post(&done);
+    status = sem_post(done);
     assert(status == 0);
 
     return arg;
@@ -25,8 +25,8 @@
 int main(void)
 {
     pthread_t th;
-    int i, status = sem_init(&done, 0, 0);
-    assert(status == 0);
+    int i, status;
+    done = sem_open("thread1-test", O_CREAT, 0777, 0);
 
     printf("starting\n");
     fflush(stdout);
@@ -35,7 +35,7 @@
         assert(status == 0);
     }
     for (i = 0; i < NTHREADS; i++) {
-        status = sem_wait(&done);
+        status = sem_wait(done);
         assert(status == 0);
     }
     printf("done\n");
diff --git a/pypy/module/test_lib_pypy/cffi_tests/embedding/thread2-test.c b/pypy/module/test_lib_pypy/cffi_tests/embedding/thread2-test.c
--- a/pypy/module/test_lib_pypy/cffi_tests/embedding/thread2-test.c
+++ b/pypy/module/test_lib_pypy/cffi_tests/embedding/thread2-test.c
@@ -5,7 +5,7 @@
 extern int add1(int, int);
 extern int add2(int, int, int);
 
-static sem_t done;
+static sem_t* done;
 
 
 static void *start_routine_1(void *arg)
@@ -14,7 +14,7 @@
     x = add1(40, 2);
     assert(x == 42);
 
-    status = sem_post(&done);
+    status = sem_post(done);
     assert(status == 0);
 
     return arg;
@@ -29,7 +29,7 @@
     x = add2(1000, 200, 30);
     assert(x == 1230);
 
-    status = sem_post(&done);
+    status = sem_post(done);
     assert(status == 0);
 
     return arg;
@@ -38,8 +38,8 @@
 int main(void)
 {
     pthread_t th;
-    int i, status = sem_init(&done, 0, 0);
-    assert(status == 0);
+    int i, status;
+    done = sem_open("thread2-test", O_CREAT, 0777, 0);
 
     printf("starting\n");
     fflush(stdout);
@@ -49,7 +49,7 @@
     assert(status == 0);
 
     for (i = 0; i < 2; i++) {
-        status = sem_wait(&done);
+        status = sem_wait(done);
         assert(status == 0);
     }
     printf("done\n");
diff --git a/pypy/module/test_lib_pypy/cffi_tests/embedding/thread3-test.c b/pypy/module/test_lib_pypy/cffi_tests/embedding/thread3-test.c
--- a/pypy/module/test_lib_pypy/cffi_tests/embedding/thread3-test.c
+++ b/pypy/module/test_lib_pypy/cffi_tests/embedding/thread3-test.c
@@ -5,7 +5,7 @@
 extern int add2(int, int, int);
 extern int add3(int, int, int, int);
 
-static sem_t done;
+static sem_t* done;
 
 
 static void *start_routine_2(void *arg)
@@ -14,7 +14,7 @@
     x = add2(40, 2, 100);
     assert(x == 142);
 
-    status = sem_post(&done);
+    status = sem_post(done);
     assert(status == 0);
 
     return arg;
@@ -26,7 +26,7 @@
     x = add3(1000, 200, 30, 4);
     assert(x == 1234);
 
-    status = sem_post(&done);
+    status = sem_post(done);
     assert(status == 0);
 
     return arg;
@@ -35,8 +35,8 @@
 int main(void)
 {
     pthread_t th;
-    int i, status = sem_init(&done, 0, 0);
-    assert(status == 0);
+    int i, status;
+    done = sem_open("thread-test3", O_CREAT, 0777, 0);
 
     printf("starting\n");
     fflush(stdout);
@@ -47,7 +47,7 @@
         assert(status == 0);
     }
     for (i = 0; i < 20; i++) {
-        status = sem_wait(&done);
+        status = sem_wait(done);
         assert(status == 0);
     }
     printf("done\n");
diff --git a/pypy/module/test_lib_pypy/cffi_tests/embedding/tlocal-test.c b/pypy/module/test_lib_pypy/cffi_tests/embedding/tlocal-test.c
--- a/pypy/module/test_lib_pypy/cffi_tests/embedding/tlocal-test.c
+++ b/pypy/module/test_lib_pypy/cffi_tests/embedding/tlocal-test.c
@@ -7,7 +7,7 @@
 
 extern int add1(int, int);
 
-static sem_t done;
+static sem_t *done;
 
 
 static void *start_routine(void *arg)
@@ -22,7 +22,7 @@
         assert(x == expected + 8 + i);
     }
 
-    status = sem_post(&done);
+    status = sem_post(done);
     assert(status == 0);
 
     return arg;
@@ -31,7 +31,8 @@
 int main(void)
 {
     pthread_t th;
-    int i, status = sem_init(&done, 0, 0);
+    int i, status;
+    done = sem_open("tlocal-test", O_CREAT, 0777, 0);
     assert(status == 0);
 
     for (i = 0; i < NTHREADS; i++) {
@@ -39,7 +40,7 @@
         assert(status == 0);
     }
     for (i = 0; i < NTHREADS; i++) {
-        status = sem_wait(&done);
+        status = sem_wait(done);
         assert(status == 0);
     }
     printf("done\n");


More information about the pypy-commit mailing list