From: Bart Van Assche Date: Mon, 3 Mar 2008 17:40:31 +0000 (+0000) Subject: Added test for recursive writer locking. X-Git-Tag: svn/VALGRIND_3_4_0~971 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e7316e1c051a8568800d7f4ce4f940aae173e9de;p=thirdparty%2Fvalgrind.git Added test for recursive writer locking. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7548 --- diff --git a/exp-drd/tests/trylock.c b/exp-drd/tests/trylock.c index 8431c0c940..9c6dea2790 100644 --- a/exp-drd/tests/trylock.c +++ b/exp-drd/tests/trylock.c @@ -48,6 +48,10 @@ int main(int argc, char** argv) fprintf(stderr, "Locking rwlock via pthread_rwlock_timedrdlock().\n"); r = pthread_rwlock_timedrdlock(&rwlock, &abs_timeout); assert(r == 0); r = pthread_rwlock_unlock(&rwlock); assert(r == 0); + fprintf(stderr, "Attempt to lock for writing recursively (not allowed).\n"); + r = pthread_rwlock_wrlock(&rwlock); assert(r == 0); + r = pthread_rwlock_wrlock(&rwlock); assert(r != 0); + r = pthread_rwlock_unlock(&rwlock); assert(r == 0); r = pthread_rwlock_destroy(&rwlock); assert(r == 0); r = pthread_mutex_init(&mutex, NULL); assert(r == 0); diff --git a/exp-drd/tests/trylock.stderr.exp b/exp-drd/tests/trylock.stderr.exp index 777b17c154..e49782834b 100644 --- a/exp-drd/tests/trylock.stderr.exp +++ b/exp-drd/tests/trylock.stderr.exp @@ -5,8 +5,12 @@ Locking rwlock via pthread_rwlock_timedwrlock(). Locking rwlock via pthread_rwlock_rdlock(). Locking rwlock via pthread_rwlock_tryrdlock(). Locking rwlock via pthread_rwlock_timedrdlock(). +Attempt to lock for writing recursively (not allowed). +Recursive writer locking not allowed: rwlock 0x......... + at 0x........: pthread_rwlock_wrlock* (drd_intercepts.c:?) + by 0x........: main (trylock.c:?) Locking mutex via pthread_mutex_trylock(). Locking mutex via pthread_mutex_lock(). Locking mutex via pthread_mutex_timedlock(). -ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)