1
2include $(top_srcdir)/Makefile.tool-tests.am
3
4dist_noinst_SCRIPTS =		    \
5	compare_error_count_with    \
6	filter_annotate_barrier_xml \
7	filter_error_count	    \
8	filter_error_summary	    \
9	filter_stderr               \
10	filter_stderr_and_thread_no \
11	filter_stderr_and_thread_no_and_offset \
12	filter_thread_no	    \
13	filter_xml_and_thread_no    \
14	run_openmp_test             \
15	supported_libpthread	    \
16	supported_sem_init
17
18noinst_HEADERS =                                    \
19	tsan_thread_wrappers_pthread.h		    \
20	unified_annotations.h
21
22EXTRA_DIST =                                        \
23	annotate_barrier.stderr.exp		    \
24	annotate_barrier.vgtest			    \
25	annotate_barrier_xml.stderr.exp		    \
26	annotate_barrier_xml.vgtest		    \
27	annotate_hb_err.stderr.exp		    \
28	annotate_hb_err.vgtest			    \
29	annotate_hb_race.stderr.exp		    \
30	annotate_hb_race.vgtest			    \
31	annotate_hbefore.stderr.exp		    \
32	annotate_hbefore.vgtest			    \
33	annotate_order_1.stderr.exp		    \
34	annotate_order_1.vgtest			    \
35	annotate_order_2.stderr.exp		    \
36	annotate_order_2.vgtest			    \
37	annotate_order_3.stderr.exp		    \
38	annotate_order_3.vgtest			    \
39	annotate_publish_hg.stderr.exp		    \
40	annotate_publish_hg.vgtest		    \
41	annotate_smart_pointer.stderr.exp	    \
42	annotate_smart_pointer.vgtest		    \
43	annotate_smart_pointer2.stderr.exp	    \
44	annotate_smart_pointer2.stderr.exp-darwin   \
45	annotate_smart_pointer2.vgtest		    \
46	annotate_spinlock.stderr.exp		    \
47	annotate_spinlock.vgtest		    \
48	annotate_rwlock.stderr.exp		    \
49	annotate_rwlock.vgtest			    \
50	annotate_rwlock_hg.stderr.exp		    \
51	annotate_rwlock_hg.vgtest		    \
52	annotate_ignore_read.stderr.exp		    \
53	annotate_ignore_read.vgtest		    \
54	annotate_ignore_rw.stderr.exp		    \
55	annotate_ignore_rw.vgtest		    \
56	annotate_ignore_rw2.stderr.exp		    \
57	annotate_ignore_rw2.vgtest		    \
58	annotate_ignore_write.stderr.exp	    \
59	annotate_ignore_write.vgtest		    \
60	annotate_ignore_write2.stderr.exp	    \
61	annotate_ignore_write2.vgtest		    \
62	annotate_trace_memory.stderr.exp-32bit	    \
63	annotate_trace_memory.stderr.exp-64bit	    \
64	annotate_trace_memory.stderr.exp-mips32	   \
65	annotate_trace_memory.vgtest		    \
66	annotate_trace_memory_xml.stderr.exp-32bit  \
67	annotate_trace_memory_xml.stderr.exp-64bit  \
68	annotate_trace_memory_xml.stderr.exp-mips32 \
69	annotate_trace_memory_xml.vgtest	    \
70	annotate_sem.stderr.exp                     \
71	annotate_sem.vgtest                         \
72	annotate_static.stderr.exp	            \
73	annotate_static.vgtest		            \
74	atomic_var.stderr.exp			    \
75	atomic_var.vgtest			    \
76	bar_bad.stderr.exp			    \
77	bar_bad.vgtest				    \
78	bar_bad_xml.stderr.exp			    \
79	bar_bad_xml.vgtest			    \
80	bar_trivial.stderr.exp			    \
81	bar_trivial.stdout.exp			    \
82	bar_trivial.vgtest			    \
83	boost_thread.stderr.exp			    \
84	boost_thread.vgtest			    \
85	bug-235681.stderr.exp			    \
86	bug-235681.vgtest			    \
87	circular_buffer.stderr.exp		    \
88	circular_buffer.vgtest			    \
89	concurrent_close.stderr.exp		    \
90	concurrent_close.vgtest			    \
91	custom_alloc.stderr.exp			    \
92	custom_alloc.vgtest			    \
93	custom_alloc_fiw.stderr.exp		    \
94	custom_alloc_fiw.vgtest			    \
95	fp_race.stderr.exp                          \
96	fp_race.stderr.exp-mips32-be                \
97	fp_race.stderr.exp-mips32-le                \
98	fp_race.vgtest                              \
99	fp_race2.stderr.exp                         \
100	fp_race2.vgtest                             \
101	fp_race_xml.stderr.exp                      \
102	fp_race_xml.stderr.exp-mips32-be            \
103	fp_race_xml.stderr.exp-mips32-le            \
104	fp_race_xml.vgtest                          \
105	free_is_write.stderr.exp		    \
106	free_is_write.vgtest			    \
107	free_is_write2.stderr.exp		    \
108	free_is_write2.vgtest			    \
109	hg01_all_ok.stderr.exp                      \
110	hg01_all_ok.vgtest                          \
111	hg02_deadlock.stderr.exp                    \
112	hg02_deadlock.vgtest                        \
113	hg03_inherit.stderr.exp                     \
114	hg03_inherit.vgtest                         \
115	hg04_race.stderr.exp                        \
116	hg04_race.vgtest                            \
117	hg05_race2.stderr.exp                       \
118	hg05_race2.stderr.exp-powerpc               \
119	hg05_race2.vgtest                           \
120	hg06_readshared.stderr.exp                  \
121	hg06_readshared.vgtest                      \
122	hold_lock_1.stderr.exp                      \
123	hold_lock_1.vgtest                          \
124	hold_lock_2.stderr.exp                      \
125	hold_lock_2.vgtest                          \
126	linuxthreads_det.stderr.exp                 \
127	linuxthreads_det.stderr.exp-linuxthreads    \
128	linuxthreads_det.stdout.exp                 \
129	linuxthreads_det.stdout.exp-linuxthreads    \
130	linuxthreads_det.vgtest                     \
131	matinv.stderr.exp                           \
132	matinv.stdout.exp                           \
133	matinv.vgtest                               \
134	memory_allocation.stderr.exp		    \
135	memory_allocation.vgtest		    \
136	monitor_example.stderr.exp		    \
137	monitor_example.vgtest			    \
138	new_delete.stderr.exp                       \
139	new_delete.vgtest                           \
140	omp_matinv.stderr.exp                       \
141	omp_matinv.stdout.exp                       \
142	omp_matinv.vgtest                           \
143	omp_matinv_racy.stderr.exp                  \
144	omp_matinv_racy.stdout.exp                  \
145	omp_matinv_racy.vgtest                      \
146	omp_prime_racy.stderr.exp                   \
147	omp_prime_racy.vgtest                       \
148	omp_printf.stderr.exp                       \
149	omp_printf.vgtest                           \
150	pth_barrier.stderr.exp                      \
151	pth_barrier.vgtest                          \
152	pth_barrier2.stderr.exp                     \
153	pth_barrier2.vgtest                         \
154	pth_barrier3.stderr.exp                     \
155	pth_barrier3.vgtest                         \
156	pth_barrier_race.stderr.exp                 \
157	pth_barrier_race.vgtest                     \
158	pth_barrier_reinit.stderr.exp               \
159	pth_barrier_reinit.vgtest                   \
160	pth_barrier_thr_cr.stderr.exp               \
161	pth_barrier_thr_cr.vgtest                   \
162	pth_barrier_thr_cr.supp                     \
163	pth_broadcast.stderr.exp                    \
164	pth_broadcast.vgtest                        \
165	pth_cancel_locked.stderr.exp		    \
166	pth_cancel_locked.stderr.exp-darwin	    \
167	pth_cancel_locked.vgtest		    \
168	pth_cleanup_handler.stderr.exp		    \
169	pth_cleanup_handler.vgtest		    \
170	pth_cond_destroy_busy.stderr.exp            \
171	pth_cond_destroy_busy.vgtest                \
172	pth_cond_race.stderr.exp                    \
173	pth_cond_race.vgtest                        \
174	pth_cond_race2.stderr.exp                   \
175	pth_cond_race2.vgtest                       \
176	pth_cond_race3.stderr.exp                   \
177	pth_cond_race3.vgtest                       \
178	pth_create_chain.stderr.exp                 \
179	pth_create_chain.vgtest                     \
180	pth_create_glibc_2_0.stderr.exp             \
181	pth_create_glibc_2_0.vgtest                 \
182	pth_detached.stderr.exp                     \
183	pth_detached.stdout.exp                     \
184	pth_detached.vgtest                         \
185	pth_detached2.stderr.exp                    \
186	pth_detached2.stdout.exp                    \
187	pth_detached2.vgtest                        \
188	pth_detached3.stderr.exp1                   \
189	pth_detached3.stderr.exp2                   \
190	pth_detached3.vgtest                        \
191	pth_detached_sem.stderr.exp                 \
192	pth_detached_sem.stdout.exp                 \
193	pth_detached_sem.vgtest                     \
194	pth_inconsistent_cond_wait.stderr.exp1      \
195	pth_inconsistent_cond_wait.stderr.exp2      \
196	pth_inconsistent_cond_wait.vgtest           \
197	pth_mutex_reinit.stderr.exp		    \
198	pth_mutex_reinit.vgtest			    \
199	pth_once.stderr.exp			    \
200	pth_once.vgtest				    \
201	pth_process_shared_mutex.stderr.exp         \
202	pth_process_shared_mutex.vgtest             \
203	pth_spinlock.stderr.exp                     \
204	pth_spinlock.vgtest                         \
205	pth_uninitialized_cond.stderr.exp           \
206	pth_uninitialized_cond.vgtest               \
207	read_and_free_race.stderr.exp		    \
208	read_and_free_race.vgtest		    \
209	recursive_mutex.stderr.exp-linux            \
210	recursive_mutex.stderr.exp-darwin           \
211	recursive_mutex.vgtest                      \
212	rwlock_race.stderr.exp	                    \
213	rwlock_race.stderr.exp2	                    \
214	rwlock_race.vgtest                          \
215	rwlock_test.stderr.exp	                    \
216	rwlock_test.vgtest                          \
217	rwlock_type_checking.stderr.exp	            \
218	rwlock_type_checking.vgtest                 \
219	sem_as_mutex.stderr.exp                     \
220	sem_as_mutex.stderr.exp-mips32-be           \
221	sem_as_mutex.stderr.exp-mips32-le           \
222	sem_as_mutex.vgtest                         \
223	sem_as_mutex2.stderr.exp                    \
224	sem_as_mutex2.vgtest                        \
225	sem_as_mutex3.stderr.exp                    \
226	sem_as_mutex3.stderr.exp-mips32-be          \
227	sem_as_mutex3.stderr.exp-mips32-le          \
228	sem_as_mutex3.vgtest                        \
229	sem_open.stderr.exp                         \
230	sem_open.stderr.exp-mips32-be               \
231	sem_open.stderr.exp-mips32-le               \
232	sem_open.vgtest                             \
233	sem_open2.stderr.exp                        \
234	sem_open2.vgtest                            \
235	sem_open3.stderr.exp                        \
236	sem_open3.stderr.exp-mips32-be              \
237	sem_open3.stderr.exp-mips32-le              \
238	sem_open3.vgtest                            \
239	sem_open_traced.stderr.exp                  \
240	sem_open_traced.vgtest                      \
241	sem_wait.stderr.exp                         \
242	sem_wait.vgtest                             \
243	sigalrm.stderr.exp                          \
244	sigalrm.vgtest                              \
245	sigaltstack.stderr.exp                      \
246	sigaltstack.vgtest                          \
247	std_atomic.stderr.exp		  	    \
248	std_atomic.vgtest			            \
249	std_list.stderr.exp		  	    \
250	std_list.vgtest			            \
251	std_string.stderr.exp		  	    \
252	std_string.vgtest			    \
253	std_thread.stderr.exp		  	    \
254	std_thread.vgtest			    \
255	str_tester.stderr.exp		  	    \
256	str_tester.vgtest			    \
257	tc01_simple_race.stderr.exp                 \
258	tc01_simple_race.vgtest                     \
259	tc02_simple_tls.stderr.exp                  \
260	tc02_simple_tls.vgtest                      \
261	tc03_re_excl.stderr.exp                     \
262	tc03_re_excl.vgtest                         \
263	tc04_free_lock.stderr.exp-x86               \
264	tc04_free_lock.stderr.exp-ppc               \
265	tc04_free_lock.stderr.exp-s390              \
266	tc04_free_lock.vgtest                       \
267	tc05_simple_race.stderr.exp                 \
268	tc05_simple_race.vgtest                     \
269	tc06_two_races.stderr.exp                   \
270	tc06_two_races.vgtest                       \
271	tc07_hbl1.stderr.exp                        \
272	tc07_hbl1.stdout.exp                        \
273	tc07_hbl1.vgtest                            \
274	tc08_hbl2.stderr.exp                        \
275	tc08_hbl2.stdout.exp                        \
276	tc08_hbl2.vgtest                            \
277	tc09_bad_unlock.stderr.exp-x86              \
278	tc09_bad_unlock.stderr.exp-ppc              \
279	tc09_bad_unlock.stderr.exp-glibc2.8         \
280	tc09_bad_unlock.stderr.exp-s390             \
281	tc09_bad_unlock.vgtest                      \
282	tc10_rec_lock.stderr.exp                    \
283	tc10_rec_lock.vgtest                        \
284	tc11_XCHG.stderr.exp tc11_XCHG.stdout.exp   \
285	tc11_XCHG.vgtest                            \
286	tc12_rwl_trivial.stderr.exp                 \
287	tc12_rwl_trivial.vgtest                     \
288	tc13_laog1.stderr.exp                       \
289	tc13_laog1.vgtest                           \
290	tc15_laog_lockdel.stderr.exp                \
291	tc15_laog_lockdel.vgtest                    \
292	tc16_byterace.stderr.exp                    \
293	tc16_byterace.vgtest                        \
294	tc17_sembar.stderr.exp                      \
295	tc17_sembar.vgtest                          \
296	tc18_semabuse.stderr.exp                    \
297	tc18_semabuse.vgtest                        \
298	tc19_shadowmem.stderr.exp-32bit             \
299	tc19_shadowmem.stderr.exp-64bit             \
300	tc19_shadowmem.vgtest                       \
301	tc21_pthonce.stderr.exp                     \
302	tc21_pthonce.stdout.exp                     \
303	tc21_pthonce.vgtest                         \
304	tc22_exit_w_lock.stderr.exp-32bit	    \
305	tc22_exit_w_lock.stderr.exp-64bit           \
306	tc22_exit_w_lock.vgtest                     \
307	tc23_bogus_condwait.stderr.exp-linux-x86    \
308	tc23_bogus_condwait.stderr.exp-linux-ppc    \
309	tc23_bogus_condwait.stderr.exp-darwin-x86   \
310	tc23_bogus_condwait.stderr.exp-darwin-amd64 \
311	tc23_bogus_condwait.vgtest                  \
312	tc24_nonzero_sem.stderr.exp                 \
313	tc24_nonzero_sem.vgtest                     \
314	thread_name.stderr.exp			    \
315	thread_name.vgtest			    \
316	thread_name_xml.stderr.exp		    \
317	thread_name_xml.vgtest			    \
318	threaded-fork.stderr.exp		    \
319	threaded-fork.vgtest			    \
320	trylock.stderr.exp                          \
321	trylock.vgtest				    \
322	unit_bitmap.stderr.exp                      \
323	unit_bitmap.vgtest                          \
324	unit_vc.stderr.exp                          \
325	unit_vc.vgtest
326
327
328check_PROGRAMS =      \
329  annotate_hb_err     \
330  annotate_hb_race    \
331  annotate_ignore_rw  \
332  annotate_ignore_write \
333  annotate_publish_hg \
334  annotate_static     \
335  annotate_trace_memory \
336  bug-235681          \
337  custom_alloc        \
338  concurrent_close    \
339  fp_race             \
340  free_is_write	      \
341  hold_lock           \
342  linuxthreads_det    \
343  memory_allocation   \
344  monitor_example     \
345  new_delete          \
346  pth_broadcast       \
347  pth_cancel_locked   \
348  pth_cleanup_handler \
349  pth_cond_destroy_busy \
350  pth_cond_race       \
351  pth_create_chain    \
352  pth_detached        \
353  pth_detached_sem    \
354  pth_detached3       \
355  pth_inconsistent_cond_wait \
356  pth_mutex_reinit    \
357  pth_process_shared_mutex   \
358  pth_uninitialized_cond \
359  recursive_mutex     \
360  rwlock_race         \
361  rwlock_test         \
362  rwlock_type_checking \
363  sem_as_mutex        \
364  sem_open            \
365  sigalrm             \
366  thread_name         \
367  threaded-fork       \
368  trylock             \
369  unit_bitmap         \
370  unit_vc
371
372if HAVE_BOOST_1_35
373check_PROGRAMS += boost_thread
374endif
375
376if HAVE_BUILTIN_ATOMIC
377check_PROGRAMS +=        \
378  annotate_barrier       \
379  annotate_rwlock        \
380  annotate_sem           \
381  atomic_var             \
382  circular_buffer
383endif
384
385if HAVE_BUILTIN_ATOMIC_CXX
386check_PROGRAMS +=        \
387  annotate_smart_pointer \
388  tsan_unittest
389endif
390
391# clang 3.3 will generate errors about libstdc++ headers from 
392# gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
393if CXX_CAN_INCLUDE_THREAD_HEADER
394if HAVE_SHARED_POINTER_ANNOTATION
395check_PROGRAMS += \
396  std_atomic      \
397  std_list        \
398  std_string      \
399  std_thread
400endif
401endif
402
403if HAVE_OPENMP
404check_PROGRAMS += omp_matinv omp_prime omp_printf
405endif
406
407if HAVE_PTHREAD_BARRIER
408check_PROGRAMS += matinv pth_barrier pth_barrier_race pth_barrier_reinit \
409	pth_barrier_thr_cr
410endif
411
412if HAVE_PTHREAD_CREATE_GLIBC_2_0
413check_PROGRAMS += pth_create_glibc_2_0
414endif
415
416if HAVE_PTHREAD_SPINLOCK
417check_PROGRAMS += pth_spinlock
418endif
419
420if !VGCONF_OS_IS_DARWIN
421check_PROGRAMS += sem_wait
422endif
423
424
425AM_CFLAGS   += $(AM_FLAG_M3264_PRI) @FLAG_W_EXTRA@ -Wno-inline -Wno-unused-parameter
426AM_CXXFLAGS += $(AM_FLAG_M3264_PRI) @FLAG_W_EXTRA@ -Wno-inline -Wno-unused-parameter
427
428LDADD = -lpthread
429
430
431concurrent_close_SOURCES    = concurrent_close.cpp
432monitor_example_SOURCES     = monitor_example.cpp
433new_delete_SOURCES          = new_delete.cpp
434
435pth_cleanup_handler_CFLAGS  = $(AM_CFLAGS) @FLAG_W_NO_EMPTY_BODY@
436
437tsan_unittest_SOURCES       = tsan_unittest.cpp
438tsan_unittest_CXXFLAGS      = $(AM_CXXFLAGS) \
439			-DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"'
440
441unit_bitmap_CFLAGS          = $(AM_CFLAGS) -O2 \
442                              -DENABLE_DRD_CONSISTENCY_CHECKS \
443                              @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@
444unit_bitmap_LDADD           = # nothing, i.e. not -lpthread
445
446unit_vc_CFLAGS              = $(AM_CFLAGS) -DENABLE_DRD_CONSISTENCY_CHECKS
447unit_vc_LDADD               = # nothing, i.e. not -lpthread
448
449if HAVE_BOOST_1_35
450boost_thread_SOURCES        = boost_thread.cpp
451boost_thread_CXXFLAGS       = $(AM_CXXFLAGS) $(BOOST_CFLAGS)
452boost_thread_LDADD          = $(BOOST_LIBS)
453endif
454
455if HAVE_BUILTIN_ATOMIC
456annotate_smart_pointer_SOURCES = annotate_smart_pointer.cpp
457endif
458
459annotate_static_SOURCES     = annotate_static.cpp
460
461if HAVE_OPENMP
462omp_matinv_CFLAGS           = $(AM_CFLAGS) -fopenmp
463omp_matinv_LDFLAGS          = -fopenmp
464omp_matinv_LDADD            = $(LDADD) -lm
465
466omp_prime_CFLAGS            = $(AM_CFLAGS) -fopenmp
467omp_prime_LDFLAGS           = -fopenmp
468omp_prime_LDADD             = $(LDADD) -lm
469
470omp_printf_CFLAGS           = $(AM_CFLAGS) -fopenmp
471omp_printf_LDFLAGS          = -fopenmp
472omp_printf_LDADD            = $(LDADD) -lm
473endif
474
475if HAVE_PTHREAD_BARRIER
476matinv_LDADD                = $(LDADD) -lm
477endif
478
479std_atomic_SOURCES          = std_atomic.cpp
480std_atomic_CXXFLAGS         = $(AM_CXXFLAGS) -std=c++0x -Wno-sign-compare
481
482std_list_SOURCES            = std_list.cpp
483std_list_CXXFLAGS           = $(AM_CXXFLAGS) -std=c++0x -Wno-sign-compare
484
485std_string_SOURCES          = std_string.cpp
486std_string_CXXFLAGS         = $(AM_CXXFLAGS) -std=c++0x -Wno-sign-compare
487
488std_thread_SOURCES          = std_thread.cpp
489std_thread_CXXFLAGS         = $(AM_CXXFLAGS) -std=c++0x
490
491sem_wait_SOURCES            = sem_wait.cpp
492