From: Bart Van Assche Date: Wed, 22 Jul 2009 18:02:03 +0000 (+0000) Subject: Made these tests run successfully on Darwin. X-Git-Tag: svn/VALGRIND_3_5_0~325 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=66a7def2f746312130378b1acb18e0f420c311b6;p=thirdparty%2Fvalgrind.git Made these tests run successfully on Darwin. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10523 --- diff --git a/helgrind/tests/tc12_rwl_trivial.c b/helgrind/tests/tc12_rwl_trivial.c index 9dc8e84294..7cc4c163ae 100644 --- a/helgrind/tests/tc12_rwl_trivial.c +++ b/helgrind/tests/tc12_rwl_trivial.c @@ -8,6 +8,12 @@ #include #include +#ifdef __APPLE__ +#define OS_IS_DARWIN 1 +#else +#define OS_IS_DARWIN 0 +#endif + /* Do trivial stuff with a reader-writer lock. */ int main ( void ) @@ -26,7 +32,7 @@ int main ( void ) r = pthread_rwlock_unlock( &rwl ); assert(r == 0); /* this should fail - lock is unowned now */ - r = pthread_rwlock_unlock( &rwl ); assert(r == 0); + r = pthread_rwlock_unlock( &rwl ); assert(OS_IS_DARWIN || r == 0); r = pthread_rwlock_destroy( &rwl ); assert(r == 0); diff --git a/helgrind/tests/tc23_bogus_condwait.c b/helgrind/tests/tc23_bogus_condwait.c index a0fad5d5d7..b45ff0ad4d 100644 --- a/helgrind/tests/tc23_bogus_condwait.c +++ b/helgrind/tests/tc23_bogus_condwait.c @@ -7,6 +7,12 @@ #include #include +#ifdef __APPLE__ +#define OS_IS_DARWIN 1 +#else +#define OS_IS_DARWIN 0 +#endif + pthread_mutex_t mx[4]; pthread_cond_t cv; pthread_rwlock_t rwl; @@ -56,7 +62,7 @@ int main ( void ) r= pthread_cond_init(&cv, NULL); assert(!r); r= pthread_rwlock_init(&rwl, NULL); assert(!r); - r= sem_init( &quit_now, 0,0 ); assert(!r); + r= sem_init( &quit_now, 0,0 ); assert(OS_IS_DARWIN || !r); r= pthread_create( &grabber, NULL, grab_the_lock, NULL ); assert(!r); sleep(1); /* let the grabber get there first */ @@ -77,8 +83,8 @@ int main ( void ) /* mx is held by someone else. */ r= pthread_cond_wait(&cv, &mx[2] ); - r= sem_post( &quit_now ); assert(!r); - r= sem_post( &quit_now ); assert(!r); + r= sem_post( &quit_now ); assert(OS_IS_DARWIN || !r); + r= sem_post( &quit_now ); assert(OS_IS_DARWIN || !r); r= pthread_join( my_rescuer, NULL ); assert(!r); r= pthread_join( grabber, NULL ); assert(!r); diff --git a/helgrind/tests/tc24_nonzero_sem.c b/helgrind/tests/tc24_nonzero_sem.c index 01c23e811a..c6176a3a79 100644 --- a/helgrind/tests/tc24_nonzero_sem.c +++ b/helgrind/tests/tc24_nonzero_sem.c @@ -8,13 +8,19 @@ #include #include +#ifdef __APPLE__ +#define OS_IS_DARWIN 1 +#else +#define OS_IS_DARWIN 0 +#endif + #define N_THREADS 3 void* child_fn ( void* semV ) { int r; sem_t* sem = (sem_t*)semV; - r= sem_wait(sem); assert(!r); + r= sem_wait(sem); assert(OS_IS_DARWIN || !r); return NULL; } @@ -24,7 +30,7 @@ int main ( void ) sem_t sem; pthread_t child[N_THREADS]; - r= sem_init(&sem, 0, N_THREADS); assert(!r); + r= sem_init(&sem, 0, N_THREADS); assert(OS_IS_DARWIN || !r); for (i = 0; i < N_THREADS; i++) { r= pthread_create( &child[i], NULL, child_fn, (void*)&sem );