• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2include $(top_srcdir)/Makefile.tool-tests.am
3
4dist_noinst_SCRIPTS = filter_stderr   \
5		      filter_stderr_solaris \
6		      filter_helgrind \
7		      filter_xml
8
9EXTRA_DIST = \
10	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 \
14	annotate_smart_pointer.vgtest annotate_smart_pointer.stdout.exp \
15		annotate_smart_pointer.stderr.exp \
16	cond_init_destroy.vgtest cond_init_destroy.stderr.exp \
17	cond_timedwait_invalid.vgtest cond_timedwait_invalid.stdout.exp \
18		cond_timedwait_invalid.stderr.exp \
19	cond_timedwait_test.vgtest cond_timedwait_test.stdout.exp \
20		cond_timedwait_test.stderr.exp \
21	bar_bad.vgtest bar_bad.stdout.exp bar_bad.stderr.exp \
22	bar_trivial.vgtest bar_trivial.stdout.exp bar_trivial.stderr.exp \
23	free_is_write.vgtest free_is_write.stdout.exp \
24		free_is_write.stderr.exp \
25	hg01_all_ok.vgtest hg01_all_ok.stdout.exp hg01_all_ok.stderr.exp \
26	hg02_deadlock.vgtest hg02_deadlock.stdout.exp hg02_deadlock.stderr.exp \
27	hg03_inherit.vgtest hg03_inherit.stdout.exp hg03_inherit.stderr.exp \
28	hg04_race.vgtest hg04_race.stdout.exp hg04_race.stderr.exp \
29	hg05_race2.vgtest hg05_race2.stdout.exp hg05_race2.stderr.exp \
30	hg06_readshared.vgtest hg06_readshared.stdout.exp \
31		hg06_readshared.stderr.exp \
32	locked_vs_unlocked1_fwd.vgtest \
33		locked_vs_unlocked1_fwd.stderr.exp \
34		locked_vs_unlocked1_fwd.stdout.exp \
35	locked_vs_unlocked1_rev.vgtest \
36		locked_vs_unlocked1_rev.stderr.exp \
37		locked_vs_unlocked1_rev.stdout.exp \
38	locked_vs_unlocked2.vgtest \
39		locked_vs_unlocked2.stderr.exp \
40		locked_vs_unlocked2.stdout.exp \
41	locked_vs_unlocked3.vgtest \
42		locked_vs_unlocked3.stderr.exp \
43		locked_vs_unlocked3.stdout.exp \
44	pth_barrier1.vgtest pth_barrier1.stdout.exp pth_barrier1.stderr.exp \
45	pth_barrier2.vgtest pth_barrier2.stdout.exp pth_barrier2.stderr.exp \
46	pth_barrier3.vgtest pth_barrier3.stdout.exp pth_barrier3.stderr.exp \
47	pth_destroy_cond.vgtest \
48		pth_destroy_cond.stdout.exp pth_destroy_cond.stderr.exp \
49	pth_cond_destroy_busy.vgtest pth_cond_destroy_busy.stderr.exp \
50		pth_cond_destroy_busy.stderr.exp-ppc64 \
51		pth_cond_destroy_busy.stderr.exp-solaris \
52	pth_spinlock.vgtest pth_spinlock.stdout.exp pth_spinlock.stderr.exp \
53	rwlock_race.vgtest rwlock_race.stdout.exp rwlock_race.stderr.exp \
54	rwlock_test.vgtest rwlock_test.stdout.exp rwlock_test.stderr.exp \
55	shmem_abits.vgtest shmem_abits.stdout.exp shmem_abits.stderr.exp \
56	stackteardown.vgtest stackteardown.stdout.exp stackteardown.stderr.exp \
57	t2t_laog.vgtest t2t_laog.stdout.exp t2t_laog.stderr.exp \
58	tc01_simple_race.vgtest tc01_simple_race.stdout.exp \
59		tc01_simple_race.stderr.exp \
60	tc02_simple_tls.vgtest tc02_simple_tls.stdout.exp \
61		tc02_simple_tls.stderr.exp \
62	tc03_re_excl.vgtest tc03_re_excl.stdout.exp \
63		tc03_re_excl.stderr.exp \
64	tc04_free_lock.vgtest tc04_free_lock.stdout.exp \
65		tc04_free_lock.stderr.exp \
66	tc05_simple_race.vgtest tc05_simple_race.stdout.exp \
67		tc05_simple_race.stderr.exp \
68	tc06_two_races.vgtest tc06_two_races.stdout.exp \
69		tc06_two_races.stderr.exp \
70	tc06_two_races_xml.vgtest tc06_two_races_xml.stdout.exp \
71		tc06_two_races_xml.stderr.exp \
72	tc07_hbl1.vgtest tc07_hbl1.stdout.exp tc07_hbl1.stderr.exp \
73	tc08_hbl2.vgtest tc08_hbl2.stdout.exp tc08_hbl2.stderr.exp \
74	tc09_bad_unlock.vgtest tc09_bad_unlock.stdout.exp \
75		tc09_bad_unlock.stderr.exp tc09_bad_unlock.stderr.exp-solaris \
76	tc10_rec_lock.vgtest tc10_rec_lock.stdout.exp tc10_rec_lock.stderr.exp \
77	tc11_XCHG.vgtest tc11_XCHG.stdout.exp tc11_XCHG.stderr.exp \
78	tc12_rwl_trivial.vgtest tc12_rwl_trivial.stdout.exp \
79		tc12_rwl_trivial.stderr.exp \
80		tc12_rwl_trivial.stderr.exp-darwin970 \
81		tc12_rwl_trivial.stderr.exp-solaris \
82	tc13_laog1.vgtest tc13_laog1.stdout.exp tc13_laog1.stderr.exp \
83	tc14_laog_dinphils.vgtest tc14_laog_dinphils.stdout.exp \
84		tc14_laog_dinphils.stderr.exp \
85	tc15_laog_lockdel.vgtest tc15_laog_lockdel.stdout.exp \
86		tc15_laog_lockdel.stderr.exp \
87	tc16_byterace.vgtest tc16_byterace.stdout.exp \
88		tc16_byterace.stderr.exp \
89	tc17_sembar.vgtest tc17_sembar.stdout.exp \
90		tc17_sembar.stderr.exp \
91	tc18_semabuse.vgtest tc18_semabuse.stdout.exp \
92		tc18_semabuse.stderr.exp \
93		tc18_semabuse.stderr.exp-linux-mips32 \
94		tc18_semabuse.stderr.exp-linux-mips32-b \
95		tc18_semabuse.stderr.exp-solaris \
96	tc19_shadowmem.vgtest tc19_shadowmem.stdout.exp \
97		tc19_shadowmem.stderr.exp tc19_shadowmem.stderr.exp-mips32 \
98	tc20_verifywrap.vgtest tc20_verifywrap.stdout.exp \
99		tc20_verifywrap.stderr.exp \
100		tc20_verifywrap.stderr.exp-glibc-2.18 \
101		tc20_verifywrap.stderr.exp-glibc-2.21 \
102		tc20_verifywrap.stderr.exp-mips32 \
103		tc20_verifywrap.stderr.exp-mips32-b \
104		tc20_verifywrap.stderr.exp-s390x \
105		tc20_verifywrap.stderr.exp-solaris \
106	tc21_pthonce.vgtest tc21_pthonce.stdout.exp tc21_pthonce.stderr.exp \
107	tc22_exit_w_lock.vgtest tc22_exit_w_lock.stdout.exp \
108		tc22_exit_w_lock.stderr.exp \
109		tc22_exit_w_lock.stderr.exp-kfail-x86 \
110		tc22_exit_w_lock.stderr.exp-solaris \
111	tc23_bogus_condwait.vgtest tc23_bogus_condwait.stdout.exp \
112		tc23_bogus_condwait.stderr.exp \
113		tc23_bogus_condwait.stderr.exp-mips32 \
114	tc24_nonzero_sem.vgtest tc24_nonzero_sem.stdout.exp \
115		tc24_nonzero_sem.stderr.exp \
116	tls_threads.vgtest tls_threads.stdout.exp \
117		tls_threads.stderr.exp
118
119# Wrapper headers used by some check programs.
120noinst_HEADERS = safe-pthread.h safe-semaphore.h
121
122# XXX: tc18_semabuse uses operations that are unsupported on Darwin.  It
123# should be conditionally compiled like tc20_verifywrap is.
124check_PROGRAMS = \
125	annotate_hbefore \
126	cond_init_destroy \
127	cond_timedwait_invalid \
128	cond_timedwait_test \
129	free_is_write \
130	hg01_all_ok \
131	hg02_deadlock \
132	hg03_inherit \
133	hg04_race \
134	hg05_race2 \
135	hg06_readshared \
136	locked_vs_unlocked1 \
137	locked_vs_unlocked2 \
138	locked_vs_unlocked3 \
139	pth_destroy_cond \
140	shmem_abits \
141	stackteardown \
142	t2t \
143	tc01_simple_race \
144	tc02_simple_tls \
145	tc03_re_excl \
146	tc04_free_lock \
147	tc05_simple_race \
148	tc06_two_races \
149	tc07_hbl1 \
150	tc08_hbl2 \
151	tc09_bad_unlock \
152	tc10_rec_lock \
153	tc11_XCHG \
154	tc12_rwl_trivial \
155	tc13_laog1 \
156	tc14_laog_dinphils \
157	tc15_laog_lockdel \
158	tc16_byterace \
159	tc17_sembar \
160	tc18_semabuse \
161	tc19_shadowmem \
162	tc21_pthonce \
163	tc23_bogus_condwait \
164	tc24_nonzero_sem \
165	tls_threads
166
167# DDD: it seg faults, and then the Valgrind exit path hangs
168# JRS 29 July 09: it craps out in the stack unwinder, in
169#==13480==    at 0xF00B81FF: ??? f00b8180 VG_(get_StackTrace_wrk)
170#==13480==    by 0xF00B83F8: ??? f00b8340 VG_(get_StackTrace)
171#==13480==    by 0xF009FE19: ??? f009fd70 record_ExeContext_wrk
172#==13480==    by 0xF009D92E: ??? f009d8c0 construct_error
173#==13480==    by 0xF009F001: ??? f009eef0 VG_(maybe_record_error)
174#==13480==    by 0xF0081F80: ??? f0081f00 HG_(record_error_misc)
175#==13480==    by 0xF0089C00: ??? f0089b80 evh__pre_thread_ll_exit
176#==13480==    by 0xF01111D1: ??? f0111070 run_a_thread_NORETURN
177#==13480==    by 0xF0111512: ??? f0111500 start_thread_NORETURN
178# when the thread being unwound is at __bsdthread_terminate+0
179#
180# Like Tom says, the stack unwinder protection is bollocks.
181# We should junk all previous schemes and simply get the
182# stack unwinder to consult aspacem at each frame (cache-accelerated,
183# of course) to check each page it visits is accessible.
184#
185if ! VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
186   check_PROGRAMS += \
187	tc22_exit_w_lock
188endif
189
190if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX
191annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
192tc07_hbl1_CFLAGS        = $(AM_CFLAGS) -mcpu=cortex-a8
193tc08_hbl2_CFLAGS        = $(AM_CFLAGS) -mcpu=cortex-a8
194else
195annotate_hbefore_CFLAGS = $(AM_CFLAGS)
196tc07_hbl1_CFLAGS        = $(AM_CFLAGS)
197tc08_hbl2_CFLAGS        = $(AM_CFLAGS)
198endif
199
200if HAVE_PTHREAD_BARRIER
201check_PROGRAMS += bar_bad bar_trivial
202endif
203
204if HAVE_PTHREAD_MUTEX_TIMEDLOCK
205check_PROGRAMS += tc20_verifywrap
206endif
207
208if HAVE_BUILTIN_ATOMIC
209check_PROGRAMS += annotate_rwlock
210endif
211
212AM_CFLAGS   += $(AM_FLAG_M3264_PRI)
213AM_CXXFLAGS += $(AM_FLAG_M3264_PRI)
214
215LDADD = -lpthread
216
217if VGCONF_OS_IS_DARWIN
218annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mdynamic-no-pic
219else
220annotate_hbefore_CFLAGS = $(AM_CFLAGS)
221endif
222