blob: df82169fb37994b5f7307514c091e928fb3adb3e [file] [log] [blame]
sewardjb4112022007-11-09 22:49:28 +00001
njn53044572009-02-19 09:52:05 +00002include $(top_srcdir)/Makefile.tool-tests.am
sewardjb4112022007-11-09 22:49:28 +00003
florian4fb597b2011-10-20 01:17:12 +00004dist_noinst_SCRIPTS = filter_stderr \
sewardj8eb8bab2015-07-21 14:44:28 +00005 filter_stderr_solaris \
florian4fb597b2011-10-20 01:17:12 +00006 filter_helgrind \
7 filter_xml
sewardjb4112022007-11-09 22:49:28 +00008
njn8b68b642009-06-24 00:37:09 +00009EXTRA_DIST = \
sewardj6b45cf22009-08-14 11:11:12 +000010 annotate_hbefore.vgtest annotate_hbefore.stdout.exp \
11 annotate_hbefore.stderr.exp \
12 annotate_rwlock.vgtest annotate_rwlock.stdout.exp \
13 annotate_rwlock.stderr.exp \
sewardj4a12aad2011-03-11 20:02:47 +000014 annotate_smart_pointer.vgtest annotate_smart_pointer.stdout.exp \
15 annotate_smart_pointer.stderr.exp \
philippe19dfe032013-03-24 20:10:23 +000016 cond_init_destroy.vgtest cond_init_destroy.stderr.exp \
sewardj6aeadaa2011-10-19 05:41:34 +000017 cond_timedwait_invalid.vgtest cond_timedwait_invalid.stdout.exp \
bartc0ad0e12011-10-19 16:22:50 +000018 cond_timedwait_invalid.stderr.exp \
florian7f8abc42014-07-16 08:18:17 +000019 cond_timedwait_test.vgtest cond_timedwait_test.stdout.exp \
20 cond_timedwait_test.stderr.exp \
njn553c42f2009-03-13 01:41:03 +000021 bar_bad.vgtest bar_bad.stdout.exp bar_bad.stderr.exp \
Elliott Hughesa0664b92017-04-18 17:46:52 -070022 bar_bad.stderr.exp-destroy-hang \
njn553c42f2009-03-13 01:41:03 +000023 bar_trivial.vgtest bar_trivial.stdout.exp bar_trivial.stderr.exp \
sewardj622fe492011-03-11 21:06:59 +000024 free_is_write.vgtest free_is_write.stdout.exp \
25 free_is_write.stderr.exp \
njn553c42f2009-03-13 01:41:03 +000026 hg01_all_ok.vgtest hg01_all_ok.stdout.exp hg01_all_ok.stderr.exp \
27 hg02_deadlock.vgtest hg02_deadlock.stdout.exp hg02_deadlock.stderr.exp \
28 hg03_inherit.vgtest hg03_inherit.stdout.exp hg03_inherit.stderr.exp \
29 hg04_race.vgtest hg04_race.stdout.exp hg04_race.stderr.exp \
30 hg05_race2.vgtest hg05_race2.stdout.exp hg05_race2.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000031 hg06_readshared.vgtest hg06_readshared.stdout.exp \
sewardj6b45cf22009-08-14 11:11:12 +000032 hg06_readshared.stderr.exp \
sewardj73135242011-06-24 16:03:32 +000033 locked_vs_unlocked1_fwd.vgtest \
34 locked_vs_unlocked1_fwd.stderr.exp \
35 locked_vs_unlocked1_fwd.stdout.exp \
36 locked_vs_unlocked1_rev.vgtest \
37 locked_vs_unlocked1_rev.stderr.exp \
38 locked_vs_unlocked1_rev.stdout.exp \
39 locked_vs_unlocked2.vgtest \
40 locked_vs_unlocked2.stderr.exp \
41 locked_vs_unlocked2.stdout.exp \
42 locked_vs_unlocked3.vgtest \
43 locked_vs_unlocked3.stderr.exp \
44 locked_vs_unlocked3.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000045 pth_barrier1.vgtest pth_barrier1.stdout.exp pth_barrier1.stderr.exp \
46 pth_barrier2.vgtest pth_barrier2.stdout.exp pth_barrier2.stderr.exp \
47 pth_barrier3.vgtest pth_barrier3.stdout.exp pth_barrier3.stderr.exp \
philippe8bfc2152012-07-06 23:38:24 +000048 pth_destroy_cond.vgtest \
49 pth_destroy_cond.stdout.exp pth_destroy_cond.stderr.exp \
philippe24111972013-03-18 22:48:22 +000050 pth_cond_destroy_busy.vgtest pth_cond_destroy_busy.stderr.exp \
sewardj8eb8bab2015-07-21 14:44:28 +000051 pth_cond_destroy_busy.stderr.exp-ppc64 \
52 pth_cond_destroy_busy.stderr.exp-solaris \
sewardj5a644da2009-08-11 10:35:58 +000053 pth_spinlock.vgtest pth_spinlock.stdout.exp pth_spinlock.stderr.exp \
njn553c42f2009-03-13 01:41:03 +000054 rwlock_race.vgtest rwlock_race.stdout.exp rwlock_race.stderr.exp \
55 rwlock_test.vgtest rwlock_test.stdout.exp rwlock_test.stderr.exp \
philippef54cb662015-05-10 22:19:31 +000056 shmem_abits.vgtest shmem_abits.stdout.exp shmem_abits.stderr.exp \
philippe3a75d2e2015-03-03 22:00:06 +000057 stackteardown.vgtest stackteardown.stdout.exp stackteardown.stderr.exp \
sewardj866c80c2011-10-22 19:29:51 +000058 t2t_laog.vgtest t2t_laog.stdout.exp t2t_laog.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000059 tc01_simple_race.vgtest tc01_simple_race.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000060 tc01_simple_race.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000061 tc02_simple_tls.vgtest tc02_simple_tls.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000062 tc02_simple_tls.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000063 tc03_re_excl.vgtest tc03_re_excl.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000064 tc03_re_excl.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000065 tc04_free_lock.vgtest tc04_free_lock.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000066 tc04_free_lock.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000067 tc05_simple_race.vgtest tc05_simple_race.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000068 tc05_simple_race.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000069 tc06_two_races.vgtest tc06_two_races.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000070 tc06_two_races.stderr.exp \
sewardj24118492009-07-15 14:50:02 +000071 tc06_two_races_xml.vgtest tc06_two_races_xml.stdout.exp \
72 tc06_two_races_xml.stderr.exp \
njn553c42f2009-03-13 01:41:03 +000073 tc07_hbl1.vgtest tc07_hbl1.stdout.exp tc07_hbl1.stderr.exp \
74 tc08_hbl2.vgtest tc08_hbl2.stdout.exp tc08_hbl2.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000075 tc09_bad_unlock.vgtest tc09_bad_unlock.stdout.exp \
sewardj8eb8bab2015-07-21 14:44:28 +000076 tc09_bad_unlock.stderr.exp tc09_bad_unlock.stderr.exp-solaris \
njn553c42f2009-03-13 01:41:03 +000077 tc10_rec_lock.vgtest tc10_rec_lock.stdout.exp tc10_rec_lock.stderr.exp \
78 tc11_XCHG.vgtest tc11_XCHG.stdout.exp tc11_XCHG.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000079 tc12_rwl_trivial.vgtest tc12_rwl_trivial.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000080 tc12_rwl_trivial.stderr.exp \
sewardjf35450e2009-07-26 21:36:24 +000081 tc12_rwl_trivial.stderr.exp-darwin970 \
sewardj8eb8bab2015-07-21 14:44:28 +000082 tc12_rwl_trivial.stderr.exp-solaris \
njn553c42f2009-03-13 01:41:03 +000083 tc13_laog1.vgtest tc13_laog1.stdout.exp tc13_laog1.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000084 tc14_laog_dinphils.vgtest tc14_laog_dinphils.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000085 tc14_laog_dinphils.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000086 tc15_laog_lockdel.vgtest tc15_laog_lockdel.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000087 tc15_laog_lockdel.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000088 tc16_byterace.vgtest tc16_byterace.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000089 tc16_byterace.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000090 tc17_sembar.vgtest tc17_sembar.stdout.exp \
njn553c42f2009-03-13 01:41:03 +000091 tc17_sembar.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +000092 tc18_semabuse.vgtest tc18_semabuse.stdout.exp \
florian5430ede2011-10-09 23:28:47 +000093 tc18_semabuse.stderr.exp \
petarjcaa9c5e2012-09-15 02:36:21 +000094 tc18_semabuse.stderr.exp-linux-mips32 \
dejanjfc6bbd32014-03-27 13:35:56 +000095 tc18_semabuse.stderr.exp-linux-mips32-b \
sewardj8eb8bab2015-07-21 14:44:28 +000096 tc18_semabuse.stderr.exp-solaris \
sewardjb4112022007-11-09 22:49:28 +000097 tc19_shadowmem.vgtest tc19_shadowmem.stdout.exp \
petarj17353032012-09-19 11:51:31 +000098 tc19_shadowmem.stderr.exp tc19_shadowmem.stderr.exp-mips32 \
sewardjb4112022007-11-09 22:49:28 +000099 tc20_verifywrap.vgtest tc20_verifywrap.stdout.exp \
philippe3b487622014-06-24 21:08:44 +0000100 tc20_verifywrap.stderr.exp \
101 tc20_verifywrap.stderr.exp-glibc-2.18 \
mjw0c66d2e2015-09-04 09:41:42 +0000102 tc20_verifywrap.stderr.exp-glibc-2.21 \
philippe3b487622014-06-24 21:08:44 +0000103 tc20_verifywrap.stderr.exp-mips32 \
dejanjfc6bbd32014-03-27 13:35:56 +0000104 tc20_verifywrap.stderr.exp-mips32-b \
cborntraa2391392012-11-09 08:35:50 +0000105 tc20_verifywrap.stderr.exp-s390x \
sewardj8eb8bab2015-07-21 14:44:28 +0000106 tc20_verifywrap.stderr.exp-solaris \
njn553c42f2009-03-13 01:41:03 +0000107 tc21_pthonce.vgtest tc21_pthonce.stdout.exp tc21_pthonce.stderr.exp \
sewardjb4112022007-11-09 22:49:28 +0000108 tc22_exit_w_lock.vgtest tc22_exit_w_lock.stdout.exp \
njn553c42f2009-03-13 01:41:03 +0000109 tc22_exit_w_lock.stderr.exp \
bart09af2db2011-10-14 09:28:41 +0000110 tc22_exit_w_lock.stderr.exp-kfail-x86 \
sewardj8eb8bab2015-07-21 14:44:28 +0000111 tc22_exit_w_lock.stderr.exp-solaris \
sewardjb4112022007-11-09 22:49:28 +0000112 tc23_bogus_condwait.vgtest tc23_bogus_condwait.stdout.exp \
njn553c42f2009-03-13 01:41:03 +0000113 tc23_bogus_condwait.stderr.exp \
petarj6b85d9b2012-09-19 12:48:09 +0000114 tc23_bogus_condwait.stderr.exp-mips32 \
sewardj006f29f2007-11-30 11:22:35 +0000115 tc24_nonzero_sem.vgtest tc24_nonzero_sem.stdout.exp \
philippe98486902014-08-19 22:46:44 +0000116 tc24_nonzero_sem.stderr.exp \
117 tls_threads.vgtest tls_threads.stdout.exp \
118 tls_threads.stderr.exp
sewardjb4112022007-11-09 22:49:28 +0000119
mjw0c66d2e2015-09-04 09:41:42 +0000120# Wrapper headers used by some check programs.
121noinst_HEADERS = safe-pthread.h safe-semaphore.h
mjwa49fd542015-08-25 13:07:42 +0000122
njn1205e022009-08-14 02:12:54 +0000123# XXX: tc18_semabuse uses operations that are unsupported on Darwin. It
124# should be conditionally compiled like tc20_verifywrap is.
sewardjb4112022007-11-09 22:49:28 +0000125check_PROGRAMS = \
sewardj6b45cf22009-08-14 11:11:12 +0000126 annotate_hbefore \
philippe19dfe032013-03-24 20:10:23 +0000127 cond_init_destroy \
sewardj6aeadaa2011-10-19 05:41:34 +0000128 cond_timedwait_invalid \
florian7f8abc42014-07-16 08:18:17 +0000129 cond_timedwait_test \
sewardj622fe492011-03-11 21:06:59 +0000130 free_is_write \
sewardjb4112022007-11-09 22:49:28 +0000131 hg01_all_ok \
132 hg02_deadlock \
133 hg03_inherit \
134 hg04_race \
135 hg05_race2 \
136 hg06_readshared \
sewardj73135242011-06-24 16:03:32 +0000137 locked_vs_unlocked1 \
138 locked_vs_unlocked2 \
139 locked_vs_unlocked3 \
philippe8bfc2152012-07-06 23:38:24 +0000140 pth_destroy_cond \
philippef54cb662015-05-10 22:19:31 +0000141 shmem_abits \
philippe3a75d2e2015-03-03 22:00:06 +0000142 stackteardown \
sewardj866c80c2011-10-22 19:29:51 +0000143 t2t \
sewardjb4112022007-11-09 22:49:28 +0000144 tc01_simple_race \
145 tc02_simple_tls \
146 tc03_re_excl \
147 tc04_free_lock \
148 tc05_simple_race \
149 tc06_two_races \
150 tc07_hbl1 \
151 tc08_hbl2 \
152 tc09_bad_unlock \
153 tc10_rec_lock \
154 tc11_XCHG \
155 tc12_rwl_trivial \
156 tc13_laog1 \
157 tc14_laog_dinphils \
158 tc15_laog_lockdel \
159 tc16_byterace \
160 tc17_sembar \
161 tc18_semabuse \
162 tc19_shadowmem \
sewardjb4112022007-11-09 22:49:28 +0000163 tc21_pthonce \
sewardj006f29f2007-11-30 11:22:35 +0000164 tc23_bogus_condwait \
philippe98486902014-08-19 22:46:44 +0000165 tc24_nonzero_sem \
166 tls_threads
sewardjb4112022007-11-09 22:49:28 +0000167
njnf76d27a2009-05-28 01:53:07 +0000168# DDD: it seg faults, and then the Valgrind exit path hangs
sewardjb6158bc2009-07-29 10:57:09 +0000169# JRS 29 July 09: it craps out in the stack unwinder, in
170#==13480== at 0xF00B81FF: ??? f00b8180 VG_(get_StackTrace_wrk)
171#==13480== by 0xF00B83F8: ??? f00b8340 VG_(get_StackTrace)
172#==13480== by 0xF009FE19: ??? f009fd70 record_ExeContext_wrk
173#==13480== by 0xF009D92E: ??? f009d8c0 construct_error
174#==13480== by 0xF009F001: ??? f009eef0 VG_(maybe_record_error)
175#==13480== by 0xF0081F80: ??? f0081f00 HG_(record_error_misc)
176#==13480== by 0xF0089C00: ??? f0089b80 evh__pre_thread_ll_exit
177#==13480== by 0xF01111D1: ??? f0111070 run_a_thread_NORETURN
178#==13480== by 0xF0111512: ??? f0111500 start_thread_NORETURN
179# when the thread being unwound is at __bsdthread_terminate+0
180#
181# Like Tom says, the stack unwinder protection is bollocks.
182# We should junk all previous schemes and simply get the
183# stack unwinder to consult aspacem at each frame (cache-accelerated,
184# of course) to check each page it visits is accessible.
185#
njnf76d27a2009-05-28 01:53:07 +0000186if ! VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
187 check_PROGRAMS += \
188 tc22_exit_w_lock
189endif
190
sewardj8777f732010-01-02 10:43:23 +0000191if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX
192annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
193tc07_hbl1_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
194tc08_hbl2_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
195else
196annotate_hbefore_CFLAGS = $(AM_CFLAGS)
197tc07_hbl1_CFLAGS = $(AM_CFLAGS)
198tc08_hbl2_CFLAGS = $(AM_CFLAGS)
199endif
200
njn49db39e2009-01-23 03:40:09 +0000201if HAVE_PTHREAD_BARRIER
bartb5d3abd2009-02-20 19:00:18 +0000202check_PROGRAMS += bar_bad bar_trivial
njn49db39e2009-01-23 03:40:09 +0000203endif
204
njn8c6d8542009-05-18 04:49:20 +0000205if HAVE_PTHREAD_MUTEX_TIMEDLOCK
206check_PROGRAMS += tc20_verifywrap
207endif
208
sewardj6b45cf22009-08-14 11:11:12 +0000209if HAVE_BUILTIN_ATOMIC
210check_PROGRAMS += annotate_rwlock
211endif
212
njn07891f92009-02-22 23:38:10 +0000213AM_CFLAGS += $(AM_FLAG_M3264_PRI)
214AM_CXXFLAGS += $(AM_FLAG_M3264_PRI)
njn49db39e2009-01-23 03:40:09 +0000215
njn53044572009-02-19 09:52:05 +0000216LDADD = -lpthread
sewardjb4112022007-11-09 22:49:28 +0000217
njnc25bcb42009-08-15 23:26:12 +0000218if VGCONF_OS_IS_DARWIN
219annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mdynamic-no-pic
220else
221annotate_hbefore_CFLAGS = $(AM_CFLAGS)
222endif