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