Fix expected error output of drd/tests/bar_bad* on Solaris.

On Solaris, we still do get error reports about destroying
a barrier which was never initialized even after SVN r15962.
We also get an error report about destroying barrier bar3
which is still waited upon by a thread.
n-i-bz


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15979
This commit is contained in:
Ivo Raisr 2016-09-23 17:23:47 +00:00
parent b21c19ffb3
commit 4e6b94f570
3 changed files with 366 additions and 0 deletions

View File

@ -82,9 +82,11 @@ EXTRA_DIST = \
atomic_var.vgtest \
bar_bad.stderr.exp \
bar_bad.stderr.exp-nohang \
bar_bad.stderr.exp-solaris \
bar_bad.vgtest \
bar_bad_xml.stderr.exp \
bar_bad_xml.stderr.exp-nohang \
bar_bad_xml.stderr.exp-solaris \
bar_bad_xml.vgtest \
bar_trivial.stderr.exp \
bar_trivial.stdout.exp \

View File

@ -0,0 +1,49 @@
initialise a barrier with zero count
pthread_barrier_init: 'count' argument is zero: barrier 0x........
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
initialise a barrier twice
Barrier reinitialization: barrier 0x........
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
barrier 0x........ was first observed at:
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
initialise a barrier which has threads waiting on it
Barrier reinitialization: barrier 0x........
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
barrier 0x........ was first observed at:
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
destroy a barrier that has waiting threads
Destruction of a barrier with active waiters: barrier 0x........
at 0x........: pthread_barrier_destroy (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
barrier 0x........ was first observed at:
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
destroy a barrier that was never initialised
Not a barrier
at 0x........: pthread_barrier_destroy (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
Destruction of barrier that is being waited upon: barrier 0x........
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (bar_bad.c:?)
barrier 0x........ was first observed at:
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
ERROR SUMMARY: 7 errors from 6 contexts (suppressed: 0 from 0)

View File

@ -0,0 +1,315 @@
<?xml version="1.0"?>
<valgrindoutput>
<protocolversion>4</protocolversion>
<protocoltool>drd</protocoltool>
<preamble>
<line>...</line>
<line>...</line>
<line>...</line>
<line>...</line>
</preamble>
<pid>...</pid>
<ppid>...</ppid>
<tool>drd</tool>
<args>
<vargv>...</vargv>
<argv>
<exe>./../../helgrind/tests/bar_bad</exe>
</argv>
</args>
<status>
<state>RUNNING</state>
<time>...</time>
</status>
initialise a barrier with zero count
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>BarrierErr</kind>
<what>pthread_barrier_init: 'count' argument is zero: barrier 0x........</what>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_barrier_init</fn>
<dir>...</dir>
<file>drd_pthread_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
</error>
initialise a barrier twice
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>BarrierErr</kind>
<what>Barrier reinitialization: barrier 0x........</what>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_barrier_init</fn>
<dir>...</dir>
<file>drd_pthread_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
<first_observed_at>
<what>barrier</what>
<address>0x........</address>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_barrier_init</fn>
<dir>...</dir>
<file>drd_pthread_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
</first_observed_at>
</error>
initialise a barrier which has threads waiting on it
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>BarrierErr</kind>
<what>Barrier reinitialization: barrier 0x........</what>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_barrier_init</fn>
<dir>...</dir>
<file>drd_pthread_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
<first_observed_at>
<what>barrier</what>
<address>0x........</address>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_barrier_init</fn>
<dir>...</dir>
<file>drd_pthread_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
</first_observed_at>
</error>
destroy a barrier that has waiting threads
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>BarrierErr</kind>
<what>Destruction of a barrier with active waiters: barrier 0x........</what>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_barrier_destroy</fn>
<dir>...</dir>
<file>drd_pthread_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
<first_observed_at>
<what>barrier</what>
<address>0x........</address>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_barrier_init</fn>
<dir>...</dir>
<file>drd_pthread_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
</first_observed_at>
</error>
destroy a barrier that was never initialised
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>GenericErr</kind>
<what>Not a barrier</what>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_barrier_destroy</fn>
<dir>...</dir>
<file>drd_pthread_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
</error>
<error>
<unique>0x........</unique>
<tid>...</tid>
<kind>BarrierErr</kind>
<what>Destruction of barrier that is being waited upon: barrier 0x........</what>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>free</fn>
<dir>...</dir>
<file>vg_replace_malloc.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
<first_observed_at>
<what>barrier</what>
<address>0x........</address>
<stack>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_barrier_init</fn>
<dir>...</dir>
<file>drd_pthread_intercepts.c</file>
<line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>main</fn>
<dir>...</dir>
<file>bar_bad.c</file>
<line>...</line>
</frame>
</stack>
</first_observed_at>
</error>
<status>
<state>FINISHED</state>
<time>...</time>
</status>
<errorcounts>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
<pair>
<count>...</count>
<unique>0x........</unique>
</pair>
</errorcounts>
<suppcounts>...</suppcounts>
</valgrindoutput>