From d97d1f6cf345aba95b0cb3db234932d3e4fbdd13 Mon Sep 17 00:00:00 2001 From: Carl Love Date: Fri, 15 May 2015 20:09:05 +0000 Subject: [PATCH] Patch 5 in a revised series of cleanup patches from Will Schmidt Add a .exp for the pth_cond_destroy_busy for PPC64 big endian. This is specifically to cover the last line of output as seen on ppc64BE, which is "ERROR SUMMARY: X errors from 3 contexts", where X is 6, versus 3 as seen on other architectures. The additional errors show up on BE during the "Thread #1: pthread_cond _destroy: destruction of condition variable being waited upon." Signed-off-by: Will Schmidt This patch fixes Vagrind bugzilla 347686 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15239 --- helgrind/tests/Makefile.am | 1 + .../pth_cond_destroy_busy.stderr.exp-ppc64 | 50 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64 diff --git a/helgrind/tests/Makefile.am b/helgrind/tests/Makefile.am index 7554185835..0528fbccbc 100644 --- a/helgrind/tests/Makefile.am +++ b/helgrind/tests/Makefile.am @@ -46,6 +46,7 @@ EXTRA_DIST = \ pth_destroy_cond.vgtest \ pth_destroy_cond.stdout.exp pth_destroy_cond.stderr.exp \ pth_cond_destroy_busy.vgtest pth_cond_destroy_busy.stderr.exp \ + pth_cond_destroy_busy.stderr.exp-ppc64 \ pth_spinlock.vgtest pth_spinlock.stdout.exp pth_spinlock.stderr.exp \ rwlock_race.vgtest rwlock_race.stdout.exp rwlock_race.stderr.exp \ rwlock_test.vgtest rwlock_test.stdout.exp rwlock_test.stderr.exp \ diff --git a/helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64 b/helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64 new file mode 100644 index 0000000000..2da688ede7 --- /dev/null +++ b/helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64 @@ -0,0 +1,50 @@ + +---Thread-Announcement------------------------------------------ + +Thread #x is the program's root thread + +---Thread-Announcement------------------------------------------ + +Thread #x was created + ... + by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: main (pth_cond_destroy_busy.c:45) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + at 0x........: my_memcmp (hg_intercepts.c:...) + by 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...) + by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...) + by 0x........: main (pth_cond_destroy_busy.c:52) + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) + by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) + by 0x........: thread_func (pth_cond_destroy_busy.c:31) + by 0x........: mythread_wrapper (hg_intercepts.c:...) + ... + Address 0x........ is 4 bytes inside data symbol "s_cond" + +---------------------------------------------------------------- + +Thread #x: pthread_cond_destroy: destruction of condition variable being waited upon + at 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...) + by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...) + by 0x........: main (pth_cond_destroy_busy.c:52) + +---------------------------------------------------------------- + +Thread #x's call to pthread_cond_destroy failed + with error code 16 (EBUSY: Device or resource busy) + at 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...) + by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...) + by 0x........: main (pth_cond_destroy_busy.c:52) + +First pthread_cond_destroy() call returned EBUSY. +Second pthread_cond_destroy() call returned success. + +ERROR SUMMARY: 6 errors from 3 contexts (suppressed: 0 from 0) -- 2.47.3