From: Bart Van Assche Date: Sat, 29 May 2010 18:42:14 +0000 (+0000) Subject: Added a regression test. X-Git-Tag: svn/VALGRIND_3_6_0~286 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=66daf93864e1c2fbd47fb7ec5e7c37f0b327b4b6;p=thirdparty%2Fvalgrind.git Added a regression test. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11138 --- diff --git a/drd/tests/Makefile.am b/drd/tests/Makefile.am index 08d24aa7fe..1daacbbb96 100644 --- a/drd/tests/Makefile.am +++ b/drd/tests/Makefile.am @@ -159,6 +159,8 @@ EXTRA_DIST = \ pth_process_shared_mutex.vgtest \ pth_spinlock.stderr.exp \ pth_spinlock.vgtest \ + pth_uninitialized_cond.stderr.exp \ + pth_uninitialized_cond.vgtest \ qt4_atomic.stderr.exp \ qt4_atomic.vgtest \ qt4_mutex.stderr.exp \ @@ -280,6 +282,7 @@ check_PROGRAMS = \ pth_inconsistent_cond_wait \ pth_mutex_reinit \ pth_process_shared_mutex \ + pth_uninitialized_cond \ recursive_mutex \ rwlock_race \ rwlock_test \ diff --git a/drd/tests/pth_uninitialized_cond.c b/drd/tests/pth_uninitialized_cond.c new file mode 100644 index 0000000000..6acfbc7adb --- /dev/null +++ b/drd/tests/pth_uninitialized_cond.c @@ -0,0 +1,28 @@ +/* Test program to verify whether DRD only complains about uninitialized + * condition variables for dynamically allocated memory. + */ + + +#include +#include + + +static pthread_cond_t s_cond1 = PTHREAD_COND_INITIALIZER; +static pthread_cond_t s_cond2 = PTHREAD_COND_INITIALIZER; + + +int main(int argc, char** argv) +{ + fprintf(stderr, "Statically initialized condition variable.\n"); + + pthread_cond_signal(&s_cond1); + + fprintf(stderr, "Uninitialized condition variable.\n"); + + *((char*)&s_cond2 + sizeof(s_cond2) - 1) ^= 1; + pthread_cond_signal(&s_cond2); + + fprintf(stderr, "Done.\n"); + + return 0; +} diff --git a/drd/tests/pth_uninitialized_cond.stderr.exp b/drd/tests/pth_uninitialized_cond.stderr.exp new file mode 100644 index 0000000000..a693944794 --- /dev/null +++ b/drd/tests/pth_uninitialized_cond.stderr.exp @@ -0,0 +1,10 @@ + +Statically initialized condition variable. +Uninitialized condition variable. +condition variable has not been initialized: cond 0x........ + at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?) + by 0x........: main (pth_uninitialized_cond.c:?) + +Done. + +ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) diff --git a/drd/tests/pth_uninitialized_cond.vgtest b/drd/tests/pth_uninitialized_cond.vgtest new file mode 100644 index 0000000000..fe031397df --- /dev/null +++ b/drd/tests/pth_uninitialized_cond.vgtest @@ -0,0 +1,3 @@ +prereq: test -e pth_uninitialized_cond && ./supported_libpthread +vgopts: --read-var-info=yes --check-stack-var=yes +prog: pth_uninitialized_cond