Files
ftmemsim-valgrind/drd/tests/Makefile.am
Mark Wielaard 5f37e4dcde Workaround bar_bad testcase hanging with newer glibc in helgrind/drd tests.
This is a workaround for bug #358213 helgrind/drd pthread_barrier tests
hangs with new glibc pthread barrier implementation. This makes sure that
the tests don't hang anymore. It does this by creating new threads that
sleep and kill the other threads after some time. But this introduces
some non-determinism that might cause the tests to occassionally fail
(both against old and new glibc implementations).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15962
2016-09-19 14:16:35 +00:00

557 lines
20 KiB
Makefile

include $(top_srcdir)/Makefile.tool-tests.am
dist_noinst_SCRIPTS = \
compare_error_count_with \
filter_annotate_barrier_xml \
filter_error_count \
filter_error_summary \
filter_stderr \
filter_stderr_and_thread_no \
filter_stderr_and_thread_no_and_offset \
filter_stderr_solaris \
filter_thread_no \
filter_thread_name_xml \
filter_xml_and_thread_no \
run_openmp_test \
supported_libpthread \
supported_sem_init
noinst_HEADERS = \
tsan_thread_wrappers_pthread.h \
unified_annotations.h
EXTRA_DIST = \
annotate_barrier.stderr.exp \
annotate_barrier.vgtest \
annotate_barrier_xml.stderr.exp \
annotate_barrier_xml.vgtest \
annotate_hb_err.stderr.exp \
annotate_hb_err.vgtest \
annotate_hb_race.stderr.exp \
annotate_hb_race.vgtest \
annotate_hbefore.stderr.exp \
annotate_hbefore.vgtest \
annotate_order_1.stderr.exp \
annotate_order_1.vgtest \
annotate_order_2.stderr.exp \
annotate_order_2.vgtest \
annotate_order_3.stderr.exp \
annotate_order_3.vgtest \
annotate_publish_hg.stderr.exp \
annotate_publish_hg.vgtest \
annotate_sem.stderr.exp \
annotate_sem.vgtest \
annotate_smart_pointer.stderr.exp \
annotate_smart_pointer.vgtest \
annotate_smart_pointer2.stderr.exp \
annotate_smart_pointer2.stderr.exp-darwin \
annotate_smart_pointer2.vgtest \
annotate_spinlock.stderr.exp \
annotate_spinlock.vgtest \
annotate_rwlock.stderr.exp \
annotate_rwlock.vgtest \
annotate_rwlock_hg.stderr.exp \
annotate_rwlock_hg.vgtest \
annotate_ignore_read.stderr.exp \
annotate_ignore_read.vgtest \
annotate_ignore_rw.stderr.exp \
annotate_ignore_rw.vgtest \
annotate_ignore_rw2.stderr.exp \
annotate_ignore_rw2.stderr.exp-solaris \
annotate_ignore_rw2.vgtest \
annotate_ignore_write.stderr.exp \
annotate_ignore_write.stderr.exp-solaris \
annotate_ignore_write.vgtest \
annotate_ignore_write2.stderr.exp \
annotate_ignore_write2.stderr.exp-solaris \
annotate_ignore_write2.vgtest \
annotate_trace_memory.stderr.exp-32bit \
annotate_trace_memory.stderr.exp-64bit \
annotate_trace_memory.stderr.exp-mips32 \
annotate_trace_memory.vgtest \
annotate_trace_memory_xml.stderr.exp-32bit \
annotate_trace_memory_xml.stderr.exp-64bit \
annotate_trace_memory_xml.stderr.exp-mips32 \
annotate_trace_memory_xml.vgtest \
annotate_sem.stderr.exp \
annotate_sem.vgtest \
annotate_static.stderr.exp \
annotate_static.vgtest \
atomic_var.stderr.exp \
atomic_var.vgtest \
bar_bad.stderr.exp \
bar_bad.stderr.exp-nohang \
bar_bad.vgtest \
bar_bad_xml.stderr.exp \
bar_bad_xml.stderr.exp-nohang \
bar_bad_xml.vgtest \
bar_trivial.stderr.exp \
bar_trivial.stdout.exp \
bar_trivial.vgtest \
boost_thread.stderr.exp \
boost_thread.vgtest \
bug-235681.stderr.exp \
bug-235681.vgtest \
circular_buffer.stderr.exp \
circular_buffer.vgtest \
concurrent_close.stderr.exp \
concurrent_close.vgtest \
custom_alloc.stderr.exp \
custom_alloc.vgtest \
custom_alloc_fiw.stderr.exp \
custom_alloc_fiw.vgtest \
fp_race.stderr.exp \
fp_race.stderr.exp-mips32-be \
fp_race.stderr.exp-mips32-le \
fp_race.vgtest \
fp_race2.stderr.exp \
fp_race2.vgtest \
fp_race_xml.stderr.exp \
fp_race_xml.stderr.exp-mips32-be \
fp_race_xml.stderr.exp-mips32-le \
fp_race_xml.stderr.exp-solaris \
fp_race_xml.vgtest \
free_is_write.stderr.exp \
free_is_write.vgtest \
free_is_write2.stderr.exp \
free_is_write2.vgtest \
hg01_all_ok.stderr.exp \
hg01_all_ok.vgtest \
hg02_deadlock.stderr.exp \
hg02_deadlock.vgtest \
hg03_inherit.stderr.exp \
hg03_inherit.vgtest \
hg04_race.stderr.exp \
hg04_race.vgtest \
hg05_race2.stderr.exp \
hg05_race2.stderr.exp-powerpc \
hg05_race2.vgtest \
hg06_readshared.stderr.exp \
hg06_readshared.vgtest \
hold_lock_1.stderr.exp \
hold_lock_1.vgtest \
hold_lock_2.stderr.exp \
hold_lock_2.vgtest \
linuxthreads_det.stderr.exp \
linuxthreads_det.stderr.exp-linuxthreads \
linuxthreads_det.stdout.exp \
linuxthreads_det.stdout.exp-linuxthreads \
linuxthreads_det.vgtest \
local_static.stderr.exp \
local_static.vgtest \
matinv.stderr.exp \
matinv.stdout.exp \
matinv.vgtest \
memory_allocation.stderr.exp \
memory_allocation.vgtest \
monitor_example.stderr.exp \
monitor_example.vgtest \
new_delete.stderr.exp \
new_delete.vgtest \
omp_matinv.stderr.exp \
omp_matinv.stdout.exp \
omp_matinv.vgtest \
omp_matinv_racy.stderr.exp \
omp_matinv_racy.stdout.exp \
omp_matinv_racy.vgtest \
omp_prime_racy.stderr.exp \
omp_prime_racy.vgtest \
omp_printf.stderr.exp \
omp_printf.vgtest \
pth_barrier.stderr.exp \
pth_barrier.vgtest \
pth_barrier2.stderr.exp \
pth_barrier2.vgtest \
pth_barrier3.stderr.exp \
pth_barrier3.vgtest \
pth_barrier_race.stderr.exp \
pth_barrier_race.vgtest \
pth_barrier_reinit.stderr.exp \
pth_barrier_reinit.vgtest \
pth_barrier_thr_cr.stderr.exp \
pth_barrier_thr_cr.vgtest \
pth_barrier_thr_cr.supp \
pth_broadcast.stderr.exp \
pth_broadcast.vgtest \
pth_cancel_locked.stderr.exp \
pth_cancel_locked.stderr.exp-darwin \
pth_cancel_locked.vgtest \
pth_cleanup_handler.stderr.exp \
pth_cleanup_handler.vgtest \
pth_cond_destroy_busy.stderr.exp \
pth_cond_destroy_busy.stderr.exp-solaris \
pth_cond_destroy_busy.vgtest \
pth_cond_race.stderr.exp \
pth_cond_race.vgtest \
pth_cond_race2.stderr.exp \
pth_cond_race2.vgtest \
pth_cond_race3.stderr.exp \
pth_cond_race3.vgtest \
pth_create_chain.stderr.exp \
pth_create_chain.vgtest \
pth_create_glibc_2_0.stderr.exp \
pth_create_glibc_2_0.vgtest \
pth_detached.stderr.exp \
pth_detached.stdout.exp \
pth_detached.vgtest \
pth_detached2.stderr.exp \
pth_detached2.stdout.exp \
pth_detached2.vgtest \
pth_detached3.stderr.exp1 \
pth_detached3.stderr.exp2 \
pth_detached3.vgtest \
pth_detached_sem.stderr.exp \
pth_detached_sem.stdout.exp \
pth_detached_sem.vgtest \
pth_inconsistent_cond_wait.stderr.exp1 \
pth_inconsistent_cond_wait.stderr.exp2 \
pth_inconsistent_cond_wait.vgtest \
pth_mutex_reinit.stderr.exp \
pth_mutex_reinit.vgtest \
pth_once.stderr.exp \
pth_once.vgtest \
pth_process_shared_mutex.stderr.exp \
pth_process_shared_mutex.vgtest \
pth_spinlock.stderr.exp \
pth_spinlock.vgtest \
pth_uninitialized_cond.stderr.exp \
pth_uninitialized_cond.vgtest \
read_and_free_race.stderr.exp \
read_and_free_race.vgtest \
recursive_mutex.stderr.exp-linux \
recursive_mutex.stderr.exp-darwin \
recursive_mutex.stderr.exp-solaris \
recursive_mutex.vgtest \
rwlock_race.stderr.exp \
rwlock_race.stderr.exp2 \
rwlock_race.vgtest \
rwlock_test.stderr.exp \
rwlock_test.vgtest \
rwlock_type_checking.stderr.exp \
rwlock_type_checking.vgtest \
sem_as_mutex.stderr.exp \
sem_as_mutex.stderr.exp-mips32-be \
sem_as_mutex.stderr.exp-mips32-le \
sem_as_mutex.vgtest \
sem_as_mutex2.stderr.exp \
sem_as_mutex2.vgtest \
sem_as_mutex3.stderr.exp \
sem_as_mutex3.stderr.exp-mips32-be \
sem_as_mutex3.stderr.exp-mips32-le \
sem_as_mutex3.vgtest \
sem_open.stderr.exp \
sem_open.stderr.exp-mips32-be \
sem_open.stderr.exp-mips32-le \
sem_open.vgtest \
sem_open2.stderr.exp \
sem_open2.vgtest \
sem_open3.stderr.exp \
sem_open3.stderr.exp-mips32-be \
sem_open3.stderr.exp-mips32-le \
sem_open3.vgtest \
sem_open_traced.stderr.exp \
sem_open_traced.vgtest \
sem_wait.stderr.exp \
sem_wait.vgtest \
sigalrm.stderr.exp \
sigalrm.vgtest \
sigaltstack.stderr.exp \
sigaltstack.vgtest \
std_atomic.stderr.exp \
std_atomic.vgtest \
std_list.stderr.exp \
std_list.vgtest \
std_string.stderr.exp \
std_string.vgtest \
std_thread.stderr.exp \
std_thread.vgtest \
std_thread2.stderr.exp \
std_thread2.vgtest \
std_thread2.supp \
str_tester.stderr.exp \
str_tester.vgtest \
tc01_simple_race.stderr.exp \
tc01_simple_race.vgtest \
tc02_simple_tls.stderr.exp \
tc02_simple_tls.vgtest \
tc03_re_excl.stderr.exp \
tc03_re_excl.vgtest \
tc04_free_lock.stderr.exp-x86 \
tc04_free_lock.stderr.exp-ppc \
tc04_free_lock.stderr.exp-s390 \
tc04_free_lock.vgtest \
tc05_simple_race.stderr.exp \
tc05_simple_race.vgtest \
tc06_two_races.stderr.exp \
tc06_two_races.vgtest \
tc07_hbl1.stderr.exp \
tc07_hbl1.stdout.exp \
tc07_hbl1.vgtest \
tc08_hbl2.stderr.exp \
tc08_hbl2.stdout.exp \
tc08_hbl2.vgtest \
tc09_bad_unlock.stderr.exp-x86 \
tc09_bad_unlock.stderr.exp-ppc \
tc09_bad_unlock.stderr.exp-glibc2.8 \
tc09_bad_unlock.stderr.exp-s390 \
tc09_bad_unlock.stderr.exp-solaris \
tc09_bad_unlock.vgtest \
tc10_rec_lock.stderr.exp \
tc10_rec_lock.vgtest \
tc11_XCHG.stderr.exp tc11_XCHG.stdout.exp \
tc11_XCHG.vgtest \
tc12_rwl_trivial.stderr.exp \
tc12_rwl_trivial.vgtest \
tc13_laog1.stderr.exp \
tc13_laog1.vgtest \
tc15_laog_lockdel.stderr.exp \
tc15_laog_lockdel.vgtest \
tc16_byterace.stderr.exp \
tc16_byterace.vgtest \
tc17_sembar.stderr.exp \
tc17_sembar.vgtest \
tc18_semabuse.stderr.exp \
tc18_semabuse.stderr.exp-solaris \
tc18_semabuse.vgtest \
tc19_shadowmem.stderr.exp-32bit \
tc19_shadowmem.stderr.exp-64bit \
tc19_shadowmem.vgtest \
tc21_pthonce.stderr.exp \
tc21_pthonce.stdout.exp \
tc21_pthonce.vgtest \
tc22_exit_w_lock.stderr.exp-32bit \
tc22_exit_w_lock.stderr.exp-64bit \
tc22_exit_w_lock.vgtest \
tc23_bogus_condwait.stderr.exp-linux-x86 \
tc23_bogus_condwait.stderr.exp-linux-ppc \
tc23_bogus_condwait.stderr.exp-darwin-x86 \
tc23_bogus_condwait.stderr.exp-darwin-amd64 \
tc23_bogus_condwait.vgtest \
tc24_nonzero_sem.stderr.exp \
tc24_nonzero_sem.vgtest \
thread_name.stderr.exp \
thread_name.vgtest \
thread_name_xml.stderr.exp \
thread_name_xml.vgtest \
threaded-fork.stderr.exp \
threaded-fork.vgtest \
threaded-fork-vcs.stderr.exp \
threaded-fork-vcs.vgtest \
tls_threads.stderr.exp \
tls_threads.vgtest \
trylock.stderr.exp \
trylock.vgtest \
unit_bitmap.stderr.exp \
unit_bitmap.vgtest \
unit_vc.stderr.exp \
unit_vc.vgtest
check_PROGRAMS = \
annotate_hb_err \
annotate_hb_race \
annotate_ignore_rw \
annotate_ignore_write \
annotate_publish_hg \
annotate_static \
annotate_trace_memory \
bug-235681 \
custom_alloc \
concurrent_close \
fp_race \
free_is_write \
hold_lock \
linuxthreads_det \
local_static \
memory_allocation \
monitor_example \
new_delete \
pth_broadcast \
pth_cancel_locked \
pth_cleanup_handler \
pth_cond_destroy_busy \
pth_cond_race \
pth_create_chain \
pth_detached \
pth_detached_sem \
pth_detached3 \
pth_inconsistent_cond_wait \
pth_mutex_reinit \
pth_process_shared_mutex \
pth_uninitialized_cond \
recursive_mutex \
rwlock_race \
rwlock_test \
rwlock_type_checking \
sem_as_mutex \
sem_open \
sigalrm \
threaded-fork \
trylock \
unit_bitmap \
unit_vc
if HAVE_BOOST_1_35
check_PROGRAMS += boost_thread
endif
if HAVE_BUILTIN_ATOMIC
check_PROGRAMS += \
annotate_barrier \
annotate_rwlock \
annotate_sem \
atomic_var \
circular_buffer
endif
if HAVE_BUILTIN_ATOMIC_CXX
check_PROGRAMS += \
annotate_smart_pointer \
tsan_unittest
endif
# clang 3.3 will generate errors about libstdc++ headers from
# gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
if CXX_CAN_INCLUDE_THREAD_HEADER
if HAVE_SHARED_POINTER_ANNOTATION
check_PROGRAMS += \
std_atomic \
std_list \
std_string \
std_thread \
std_thread2
endif
endif
if HAVE_OPENMP
check_PROGRAMS += omp_matinv omp_prime omp_printf
endif
if HAVE_PTHREAD_BARRIER
check_PROGRAMS += matinv pth_barrier pth_barrier_race pth_barrier_reinit \
pth_barrier_thr_cr thread_name
endif
if HAVE_PTHREAD_CREATE_GLIBC_2_0
check_PROGRAMS += pth_create_glibc_2_0
endif
if HAVE_PTHREAD_SPINLOCK
check_PROGRAMS += pth_spinlock
endif
if !VGCONF_OS_IS_DARWIN
check_PROGRAMS += sem_wait
endif
AM_CFLAGS += $(AM_FLAG_M3264_PRI) @FLAG_W_EXTRA@ -Wno-inline -Wno-unused-parameter
AM_CXXFLAGS += $(AM_FLAG_M3264_PRI) @FLAG_W_EXTRA@ -Wno-inline -Wno-unused-parameter
LDADD = -lpthread
concurrent_close_SOURCES = concurrent_close.cpp
monitor_example_SOURCES = monitor_example.cpp
new_delete_SOURCES = new_delete.cpp
new_delete_CXXFLAGS = $(AM_CXXFLAGS) @FLAG_W_NO_MISMATCHED_NEW_DELETE@
free_is_write_CFLAGS = $(AM_CFLAGS)
pth_barrier_CFLAGS = $(AM_CFLAGS)
if VGCONF_OS_IS_SOLARIS
free_is_write_CFLAGS += -D__EXTENSIONS__
pth_barrier_CFLAGS += -D__EXTENSIONS__
endif
pth_create_chain_CFLAGS = $(AM_CFLAGS)
pth_detached_CFLAGS = $(AM_CFLAGS)
if VGCONF_OS_IS_SOLARIS
pth_create_chain_CFLAGS += -D__EXTENSIONS__
pth_detached_CFLAGS += -D__EXTENSIONS__
endif
tsan_unittest_SOURCES = tsan_unittest.cpp
tsan_unittest_CXXFLAGS = $(AM_CXXFLAGS) \
-DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"'
unit_bitmap_CFLAGS = $(AM_CFLAGS) -O2 \
-DENABLE_DRD_CONSISTENCY_CHECKS \
@FLAG_UNLIMITED_INLINE_UNIT_GROWTH@
unit_bitmap_LDADD = # nothing, i.e. not -lpthread
unit_vc_CFLAGS = $(AM_CFLAGS) -DENABLE_DRD_CONSISTENCY_CHECKS
unit_vc_LDADD = # nothing, i.e. not -lpthread
if HAVE_BOOST_1_35
boost_thread_SOURCES = boost_thread.cpp
boost_thread_CXXFLAGS = $(AM_CXXFLAGS) $(BOOST_CFLAGS)
boost_thread_LDADD = $(BOOST_LIBS)
endif
if HAVE_BUILTIN_ATOMIC
annotate_smart_pointer_SOURCES = annotate_smart_pointer.cpp
endif
annotate_static_SOURCES = annotate_static.cpp
annotate_static_CXXFLAGS = $(AM_CXXFLAGS) @FLAG_W_NO_UNUSED_FUNCTION@
local_static_SOURCES = local_static.cpp
if HAVE_OPENMP
omp_matinv_CFLAGS = $(AM_CFLAGS) -fopenmp
omp_matinv_LDFLAGS = -fopenmp
omp_matinv_LDADD = $(LDADD) -lm
if VGCONF_OS_IS_SOLARIS
omp_matinv_CFLAGS += -std=gnu99
endif
omp_prime_CFLAGS = $(AM_CFLAGS) -fopenmp
omp_prime_LDFLAGS = -fopenmp
omp_prime_LDADD = $(LDADD) -lm
omp_printf_CFLAGS = $(AM_CFLAGS) -fopenmp
omp_printf_LDFLAGS = -fopenmp
omp_printf_LDADD = $(LDADD) -lm
endif
matinv_CFLAGS = $(AM_CFLAGS)
if VGCONF_OS_IS_SOLARIS
matinv_CFLAGS += -std=gnu99 -D__EXTENSIONS__
endif
if HAVE_PTHREAD_BARRIER
matinv_LDADD = $(LDADD) -lm
endif
rwlock_test_CFLAGS = $(AM_CFLAGS)
if VGCONF_OS_IS_SOLARIS
rwlock_test_CFLAGS += -D__EXTENSIONS__
endif
std_atomic_SOURCES = std_atomic.cpp
std_atomic_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x -Wno-sign-compare
std_list_SOURCES = std_list.cpp
std_list_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x -Wno-sign-compare
std_string_SOURCES = std_string.cpp
std_string_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x -Wno-sign-compare
# Note: -Wl,--no-as-needed is a workaround for
# https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1228201
std_thread_SOURCES = std_thread.cpp
std_thread_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x
if !VGCONF_OS_IS_SOLARIS
std_thread_LDFLAGS = -Wl,--no-as-needed
endif
std_thread2_SOURCES = std_thread2.cpp
std_thread2_CXXFLAGS = $(AM_CXXFLAGS) -std=c++0x
if !VGCONF_OS_IS_SOLARIS
std_thread2_LDFLAGS = -Wl,--no-as-needed
endif
sem_wait_SOURCES = sem_wait.cpp