2 include $(top_srcdir)/Makefile.tool-tests.am
4 dist_noinst_SCRIPTS = \
5 filter_stderr_solaris \
9 filter_stderr_freebsd \
16 annotate_hbefore.vgtest annotate_hbefore.stdout.exp \
17 annotate_hbefore.stderr.exp \
18 annotate_rwlock.vgtest annotate_rwlock.stdout.exp \
19 annotate_rwlock.stderr.exp \
20 annotate_smart_pointer.vgtest annotate_smart_pointer.stdout.exp \
21 annotate_smart_pointer.stderr.exp \
22 bug322621.vgtest bug322621.stderr.exp \
23 bug327548.vgtest bug327548.stderr.exp \
24 bug392331.vgtest bug392331.stdout.exp bug392331.stderr.exp \
25 bug392331_supp.vgtest bug392331_supp.stdout.exp bug392331_supp.stderr.exp \
27 bug484480.vgtest bug484480.stderr.exp bug484480.stdout.exp \
28 cond_init_destroy.vgtest cond_init_destroy.stderr.exp \
29 cond_timedwait_invalid.vgtest cond_timedwait_invalid.stdout.exp \
30 cond_timedwait_invalid.stderr.exp \
31 cond_timedwait_test.vgtest cond_timedwait_test.stdout.exp \
32 cond_timedwait_test.stderr.exp \
33 bar_bad.vgtest bar_bad.stdout.exp bar_bad.stderr.exp \
34 bar_bad.stderr.exp-destroy-hang \
35 bar_bad.stderr.exp-freebsd \
36 bar_trivial.vgtest bar_trivial.stdout.exp bar_trivial.stderr.exp \
37 free_is_write.vgtest free_is_write.stdout.exp \
38 free_is_write.stderr.exp \
39 getaddrinfo.vgtest getaddrinfo.stderr.exp \
40 hg01_all_ok.vgtest hg01_all_ok.stdout.exp hg01_all_ok.stderr.exp \
41 hg02_deadlock.vgtest hg02_deadlock.stdout.exp hg02_deadlock.stderr.exp \
42 hg03_inherit.vgtest hg03_inherit.stdout.exp hg03_inherit.stderr.exp \
43 hg04_race.vgtest hg04_race.stdout.exp hg04_race.stderr.exp \
44 hg04_race_h9.vgtest hg04_race_h9.stdout.exp hg04_race_h9.stderr.exp \
45 hg05_race2.vgtest hg05_race2.stdout.exp hg05_race2.stderr.exp \
46 hg06_readshared.vgtest hg06_readshared.stdout.exp \
47 hg06_readshared.stderr.exp \
48 locked_vs_unlocked1_fwd.vgtest \
49 locked_vs_unlocked1_fwd.stderr.exp \
50 locked_vs_unlocked1_fwd.stdout.exp \
51 locked_vs_unlocked1_rev.vgtest \
52 locked_vs_unlocked1_rev.stderr.exp \
53 locked_vs_unlocked1_rev.stdout.exp \
54 locked_vs_unlocked2.vgtest \
55 locked_vs_unlocked2.stderr.exp \
56 locked_vs_unlocked2.stdout.exp \
57 locked_vs_unlocked2.stderr.exp-freebsd \
58 locked_vs_unlocked3.vgtest \
59 locked_vs_unlocked3.stderr.exp \
60 locked_vs_unlocked3.stdout.exp \
61 locked_vs_unlocked3.stderr.exp-freebsd \
62 pth_barrier1.vgtest pth_barrier1.stdout.exp pth_barrier1.stderr.exp \
63 pth_barrier2.vgtest pth_barrier2.stdout.exp pth_barrier2.stderr.exp \
64 pth_barrier3.vgtest pth_barrier3.stdout.exp pth_barrier3.stderr.exp \
65 pth_destroy_cond.vgtest \
66 pth_destroy_cond.stdout.exp pth_destroy_cond.stderr.exp \
67 pth_cond_destroy_busy.vgtest pth_cond_destroy_busy.stderr.exp \
68 pth_cond_destroy_busy.stderr.exp-ppc64 \
69 pth_cond_destroy_busy.stderr.exp-solaris \
70 pth_cond_destroy_busy.stderr.exp-freebsd \
71 pth_mempcpy_false_races.vgtest pth_mempcpy_false_races.stderr.exp \
72 pth_spinlock.vgtest pth_spinlock.stdout.exp pth_spinlock.stderr.exp \
73 rwlock_race.vgtest rwlock_race.stdout.exp rwlock_race.stderr.exp \
74 rwlock_test.vgtest rwlock_test.stdout.exp rwlock_test.stderr.exp \
75 sem_clockwait_np.vgtest sem_clockwait_np.stdout.exp \
76 sem_clockwait_np.stderr.exp \
77 sem_timedwait.vgtest sem_timedwait.stdout.exp sem_timedwait.stderr.exp \
78 shared_timed_mutex.vgtest shared_timed_mutex.stderr.exp \
79 shmem_abits.vgtest shmem_abits.stdout.exp shmem_abits.stderr.exp \
80 stackteardown.vgtest stackteardown.stdout.exp stackteardown.stderr.exp \
81 t2t_laog.vgtest t2t_laog.stdout.exp t2t_laog.stderr.exp \
82 tc01_simple_race.vgtest tc01_simple_race.stdout.exp \
83 tc01_simple_race.stderr.exp \
84 tc02_simple_tls.vgtest tc02_simple_tls.stdout.exp \
85 tc02_simple_tls.stderr.exp \
86 tc03_re_excl.vgtest tc03_re_excl.stdout.exp \
87 tc03_re_excl.stderr.exp \
88 tc04_free_lock.vgtest tc04_free_lock.stdout.exp \
89 tc04_free_lock.stderr.exp \
90 tc04_free_lock.stderr.exp-freebsd15 \
91 tc05_simple_race.vgtest tc05_simple_race.stdout.exp \
92 tc05_simple_race.stderr.exp \
93 tc06_two_races.vgtest tc06_two_races.stdout.exp \
94 tc06_two_races.stderr.exp \
95 tc06_two_races_xml.vgtest tc06_two_races_xml.stdout.exp \
96 tc06_two_races_xml.stderr.exp \
97 tc06_two_races_xml.stderr.exp-freebsd \
98 tc07_hbl1.vgtest tc07_hbl1.stdout.exp tc07_hbl1.stderr.exp \
99 tc08_hbl2.vgtest tc08_hbl2.stdout.exp tc08_hbl2.stderr.exp \
100 tc09_bad_unlock.vgtest tc09_bad_unlock.stdout.exp \
101 tc09_bad_unlock.stderr.exp tc09_bad_unlock.stderr.exp-solaris \
102 tc09_bad_unlock.stderr.exp-freebsd \
103 tc09_bad_unlock.stderr.exp-freebsd15 \
104 tc10_rec_lock.vgtest tc10_rec_lock.stdout.exp tc10_rec_lock.stderr.exp \
105 tc11_XCHG.vgtest tc11_XCHG.stdout.exp tc11_XCHG.stderr.exp \
106 tc12_rwl_trivial.vgtest tc12_rwl_trivial.stdout.exp \
107 tc12_rwl_trivial.stderr.exp \
108 tc12_rwl_trivial.stderr.exp-darwin970 \
109 tc12_rwl_trivial.stderr.exp-solaris \
110 tc12_rwl_trivial.stderr.exp-freebsd \
111 tc13_laog1.vgtest tc13_laog1.stdout.exp tc13_laog1.stderr.exp \
112 tc14_laog_dinphils.vgtest tc14_laog_dinphils.stdout.exp \
113 tc14_laog_dinphils.stderr.exp \
114 tc15_laog_lockdel.vgtest tc15_laog_lockdel.stdout.exp \
115 tc15_laog_lockdel.stderr.exp \
116 tc16_byterace.vgtest tc16_byterace.stdout.exp \
117 tc16_byterace.stderr.exp \
118 tc17_sembar.vgtest tc17_sembar.stdout.exp \
119 tc17_sembar.stderr.exp \
120 tc18_semabuse.vgtest tc18_semabuse.stdout.exp \
121 tc18_semabuse.stderr.exp \
122 tc18_semabuse.stderr.exp-linux-mips32 \
123 tc18_semabuse.stderr.exp-linux-mips32-b \
124 tc18_semabuse.stderr.exp-solaris \
125 tc18_semabuse.stderr.exp-freebsd \
126 tc19_shadowmem.vgtest tc19_shadowmem.stdout.exp \
127 tc19_shadowmem.stderr.exp tc19_shadowmem.stderr.exp-mips32 \
128 tc19_shadowmem.stderr.exp-mips32-BE \
129 tc20_verifywrap.vgtest tc20_verifywrap.stdout.exp \
130 tc20_verifywrap.stderr.exp \
131 tc20_verifywrap.stderr.exp-glibc-2.18 \
132 tc20_verifywrap.stderr.exp-glibc-2.21 \
133 tc20_verifywrap.stderr.exp-mips32 \
134 tc20_verifywrap.stderr.exp-mips32-b \
135 tc20_verifywrap.stderr.exp-s390x \
136 tc20_verifywrap.stderr.exp-solaris \
137 tc21_pthonce.vgtest tc21_pthonce.stdout.exp tc21_pthonce.stderr.exp \
138 tc22_exit_w_lock.vgtest tc22_exit_w_lock.stdout.exp \
139 tc22_exit_w_lock.stderr.exp \
140 tc22_exit_w_lock.stderr.exp-kfail-x86 \
141 tc22_exit_w_lock.stderr.exp-solaris \
142 tc22_exit_w_lock.stderr.exp-freebsd15 \
143 tc23_bogus_condwait.vgtest tc23_bogus_condwait.stdout.exp \
144 tc23_bogus_condwait.stderr.exp \
145 tc23_bogus_condwait.stderr.exp-mips32 \
146 tc23_bogus_condwait.stderr.exp-freebsd \
147 tc24_nonzero_sem.vgtest tc24_nonzero_sem.stdout.exp \
148 tc24_nonzero_sem.stderr.exp \
149 tls_threads.vgtest tls_threads.stdout.exp \
150 tls_threads.stderr.exp \
151 tls_threads2.vgtest tls_threads2.stderr.exp \
152 trylock.vgtest trylock.stderr.exp
154 # Wrapper headers used by some check programs.
155 noinst_HEADERS = safe-pthread.h safe-semaphore.h
157 # XXX: tc18_semabuse uses operations that are unsupported on Darwin. It
158 # should be conditionally compiled like tc20_verifywrap is.
164 cond_timedwait_invalid \
165 cond_timedwait_test \
173 locked_vs_unlocked1 \
174 locked_vs_unlocked2 \
175 locked_vs_unlocked3 \
177 pth_mempcpy_false_races \
201 tc23_bogus_condwait \
205 # DDD: it seg faults, and then the Valgrind exit path hangs
206 # JRS 29 July 09: it craps out in the stack unwinder, in
207 #==13480== at 0xF00B81FF: ??? f00b8180 VG_(get_StackTrace_wrk)
208 #==13480== by 0xF00B83F8: ??? f00b8340 VG_(get_StackTrace)
209 #==13480== by 0xF009FE19: ??? f009fd70 record_ExeContext_wrk
210 #==13480== by 0xF009D92E: ??? f009d8c0 construct_error
211 #==13480== by 0xF009F001: ??? f009eef0 VG_(maybe_record_error)
212 #==13480== by 0xF0081F80: ??? f0081f00 HG_(record_error_misc)
213 #==13480== by 0xF0089C00: ??? f0089b80 evh__pre_thread_ll_exit
214 #==13480== by 0xF01111D1: ??? f0111070 run_a_thread_NORETURN
215 #==13480== by 0xF0111512: ??? f0111500 start_thread_NORETURN
216 # when the thread being unwound is at __bsdthread_terminate+0
218 # Like Tom says, the stack unwinder protection is bollocks.
219 # We should junk all previous schemes and simply get the
220 # stack unwinder to consult aspacem at each frame (cache-accelerated,
221 # of course) to check each page it visits is accessible.
223 if ! VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
228 if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX
229 annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
230 tc07_hbl1_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
231 tc08_hbl2_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
233 annotate_hbefore_CFLAGS = $(AM_CFLAGS)
234 tc07_hbl1_CFLAGS = $(AM_CFLAGS)
235 tc08_hbl2_CFLAGS = $(AM_CFLAGS)
238 if HAVE_PTHREAD_BARRIER
239 check_PROGRAMS += bar_bad bar_trivial bug322621
242 if HAVE_PTHREAD_MUTEX_TIMEDLOCK
243 check_PROGRAMS += tc20_verifywrap
246 if HAVE_BUILTIN_ATOMIC
247 check_PROGRAMS += annotate_rwlock
248 annotate_rwlock_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNUSED_BUT_SET_VARIABLE@
252 check_PROGRAMS += getaddrinfo
255 if HAVE_SEM_CLOCKWAIT_NP
256 check_PROGRAMS += sem_clockwait_np
259 if HAVE_SEM_TIMEDWAIT
260 check_PROGRAMS += sem_timedwait
263 AM_CFLAGS += $(AM_FLAG_M3264_PRI)
264 AM_CXXFLAGS += $(AM_FLAG_M3264_PRI)
268 if VGCONF_OS_IS_DARWIN
269 annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mdynamic-no-pic
271 annotate_hbefore_CFLAGS = $(AM_CFLAGS)
274 bug322621_SOURCES = bug322621.cpp
276 check_PROGRAMS += bug392331
277 bug392331_SOURCES = bug392331.cpp
278 bug392331_CXXFLAGS = $(AM_CXXFLAGS) -std=c++17