]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Patch 5 in a revised series of cleanup patches from Will Schmidt
authorCarl Love <cel@us.ibm.com>
Fri, 15 May 2015 20:09:05 +0000 (20:09 +0000)
committerCarl Love <cel@us.ibm.com>
Fri, 15 May 2015 20:09:05 +0000 (20:09 +0000)
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 <will_schmidt@vnet.ibm.com>
This patch fixes Vagrind bugzilla 347686

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15239

helgrind/tests/Makefile.am
helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64 [new file with mode: 0644]

index 7554185835f0e31279aeafc52390718d68c9fb28..0528fbccbc19cec95d01c862c0834f427786054e 100644 (file)
@@ -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 (file)
index 0000000..2da688e
--- /dev/null
@@ -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)