From: Petar Jovanovic Date: Wed, 23 Nov 2016 17:38:29 +0000 (+0000) Subject: make bar_bad tests more deterministic X-Git-Tag: svn/VALGRIND_3_13_0~267 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b49c4ee66ea6efc0a9950fff99476c658971fe7;p=thirdparty%2Fvalgrind.git make bar_bad tests more deterministic Canceling the thread slp2 before the case 5 makes behaviour of this test more deterministic. Also, as Philippe W. pointed out, adding --fair-sched=try seems to avoid variable and sometimes very long run time for these tests. Related BZ #358213 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16154 --- diff --git a/drd/tests/bar_bad.vgtest b/drd/tests/bar_bad.vgtest index 14cdf190a0..08be062209 100644 --- a/drd/tests/bar_bad.vgtest +++ b/drd/tests/bar_bad.vgtest @@ -1,2 +1,3 @@ prereq: test -e ../../helgrind/tests/bar_bad && ./supported_libpthread prog: ../../helgrind/tests/bar_bad +vgopts: --fair-sched=try diff --git a/drd/tests/bar_bad_xml.vgtest b/drd/tests/bar_bad_xml.vgtest index d626dc34b4..65e5c2d580 100644 --- a/drd/tests/bar_bad_xml.vgtest +++ b/drd/tests/bar_bad_xml.vgtest @@ -1,4 +1,4 @@ prereq: test -e ../../helgrind/tests/bar_bad && ./supported_libpthread -vgopts: --xml=yes --xml-fd=2 +vgopts: --xml=yes --xml-fd=2 --fair-sched=try prog: ../../helgrind/tests/bar_bad stderr_filter: ../../memcheck/tests/filter_xml diff --git a/helgrind/tests/bar_bad.c b/helgrind/tests/bar_bad.c index 19cf81c1da..0882b03a16 100644 --- a/helgrind/tests/bar_bad.c +++ b/helgrind/tests/bar_bad.c @@ -81,6 +81,8 @@ int main ( void ) /* and now destroy */ pthread_barrier_destroy(bar4); + pthread_cancel(slp2); + /* destroy a barrier that was never initialised. This is a bit tricky, in that we have to fill the barrier with bytes which ensure that the pthread_barrier_destroy call doesn't crash for diff --git a/helgrind/tests/bar_bad.stderr.exp b/helgrind/tests/bar_bad.stderr.exp index d0901b2331..a675a18df0 100644 --- a/helgrind/tests/bar_bad.stderr.exp +++ b/helgrind/tests/bar_bad.stderr.exp @@ -60,5 +60,5 @@ destroy a barrier that was never initialised Thread #x: pthread_barrier_destroy: barrier was never initialised at 0x........: pthread_barrier_destroy (hg_intercepts.c:...) - by 0x........: main (bar_bad.c:96) + by 0x........: main (bar_bad.c:98) diff --git a/helgrind/tests/bar_bad.stderr.exp-destroy-hang b/helgrind/tests/bar_bad.stderr.exp-destroy-hang index ddf5624265..f76663fbae 100644 --- a/helgrind/tests/bar_bad.stderr.exp-destroy-hang +++ b/helgrind/tests/bar_bad.stderr.exp-destroy-hang @@ -68,5 +68,5 @@ destroy a barrier that was never initialised Thread #x: pthread_barrier_destroy: barrier was never initialised at 0x........: pthread_barrier_destroy (hg_intercepts.c:...) - by 0x........: main (bar_bad.c:96) + by 0x........: main (bar_bad.c:98) diff --git a/helgrind/tests/bar_bad.vgtest b/helgrind/tests/bar_bad.vgtest index fe946f55b9..cb3a1ca453 100644 --- a/helgrind/tests/bar_bad.vgtest +++ b/helgrind/tests/bar_bad.vgtest @@ -1,3 +1,3 @@ prereq: test -e bar_bad prog: bar_bad -vgopts: -q +vgopts: -q --fair-sched=try