Add exp file for tc20_verifywrap due to different errno values on MIPS.

Different error numbers on MIPS require us to add an extra exp file for this
test. EDEADLK is 45 on MIPS (and not 35), and EOPNOTSUPP is 122 (and not 95).
Furthermore, sem_post will pass due to different implementation on MIPS (in
comparison to x86_64), and thus one error less has to be reported in the log.

This fixes helgrind/tests/tc20_verifywrap.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12998
This commit is contained in:
Petar Jovanovic 2012-09-18 21:02:59 +00:00
parent b792917720
commit 1e2f0de91c
2 changed files with 231 additions and 1 deletions

View File

@ -84,7 +84,7 @@ EXTRA_DIST = \
tc19_shadowmem.vgtest tc19_shadowmem.stdout.exp \
tc19_shadowmem.stderr.exp \
tc20_verifywrap.vgtest tc20_verifywrap.stdout.exp \
tc20_verifywrap.stderr.exp \
tc20_verifywrap.stderr.exp tc20_verifywrap.stderr.exp-mips32 \
tc21_pthonce.vgtest tc21_pthonce.stdout.exp tc21_pthonce.stderr.exp \
tc22_exit_w_lock.vgtest tc22_exit_w_lock.stdout.exp \
tc22_exit_w_lock.stderr.exp \

View File

@ -0,0 +1,230 @@
------ This is output for >= glibc 2.4 ------
---------------- pthread_create/join ----------------
---Thread-Announcement------------------------------------------
Thread #x is the program's root thread
---Thread-Announcement------------------------------------------
Thread #x was created
...
by 0x........: pthread_create_WRK (hg_intercepts.c:...)
by 0x........: pthread_create@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:76)
----------------------------------------------------------------
Possible data race during write of size 2 at 0x........ by thread #x
Locks held: none
at 0x........: main (tc20_verifywrap.c:78)
This conflicts with a previous write of size 2 by thread #x
Locks held: none
at 0x........: racy_child (tc20_verifywrap.c:34)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
Location 0x........ is 0 bytes inside global var "unprotected"
declared at tc20_verifywrap.c:27
----------------------------------------------------------------
Thread #x's call to pthread_join failed
with error code 45 (EDEADLK: Resource deadlock would occur)
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
by 0x........: pthread_join (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:83)
---------------- pthread_mutex_lock et al ----------------
----------------------------------------------------------------
Thread #x's call to pthread_mutex_init failed
with error code 122 (EOPNOTSUPP: Operation not supported on transport endpoint)
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:92)
----------------------------------------------------------------
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
----------------------------------------------------------------
Thread #x's call to pthread_mutex_destroy failed
with error code 16 (EBUSY: Device or resource busy)
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
----------------------------------------------------------------
Thread #x's call to pthread_mutex_lock failed
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:108)
----------------------------------------------------------------
Thread #x's call to pthread_mutex_trylock failed
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:116)
----------------------------------------------------------------
Thread #x's call to pthread_mutex_timedlock failed
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:121)
----------------------------------------------------------------
Thread #x unlocked an invalid lock at 0x........
at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:125)
----------------------------------------------------------------
Thread #x's call to pthread_mutex_unlock failed
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:125)
---------------- pthread_cond_wait et al ----------------
----------------------------------------------------------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
----------------------------------------------------------------
Thread #x's call to pthread_cond_wait failed
with error code 1 (EPERM: Operation not permitted)
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
----------------------------------------------------------------
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:152)
FIXME: can't figure out how to verify wrap of pthread_cond_signal
----------------------------------------------------------------
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:158)
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
----------------------------------------------------------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
----------------------------------------------------------------
Thread #x's call to pthread_cond_timedwait failed
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
---------------- pthread_rwlock_* ----------------
----------------------------------------------------------------
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:179)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:178)
(1) no error on next line
(2) no error on next line
(3) ERROR on next line
----------------------------------------------------------------
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:196)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:186)
(4) no error on next line
(5) no error on next line
(6) no error on next line
(7) no error on next line
(8) ERROR on next line
----------------------------------------------------------------
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:212)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:186)
---------------- sem_* ----------------
----------------------------------------------------------------
Thread #x's call to sem_init failed
with error code 22 (EINVAL: Invalid argument)
at 0x........: sem_init_WRK (hg_intercepts.c:...)
by 0x........: sem_init@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:228)
FIXME: can't figure out how to verify wrap of sem_destroy
----------------------------------------------------------------
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:242)
FIXME: can't figure out how to verify wrap of sem_post
------------ dealloc of mem holding locks ------------
----------------------------------------------------------------
Thread #x: Exiting thread still holds 1 lock
...
ERROR SUMMARY: 22 errors from 22 contexts (suppressed: 0 from 0)