1# vim:ft=automake
2#
3# included from Top Level Makefile.am
4# All paths should be given relative to the root
5#
6
7LIBTOOL_COMMAND= ${abs_top_builddir}/libtool --mode=execute
8VALGRIND_EXEC_COMMAND= $(LIBTOOL_COMMAND) valgrind --tool=memcheck --error-exitcode=1 --leak-check=yes --track-fds=yes --malloc-fill=A5 --free-fill=DE
9SGCHECK_EXEC_COMMAND= $(LIBTOOL_COMMAND) valgrind --tool=exp-sgcheck --error-exitcode=1
10VALGRIND_COMMAND= LOG_COMPILER="valgrind" $(VALGRIND_EXEC_COMMAND)
11HELGRIND_COMMAND= $(LIBTOOL_COMMAND) valgrind --tool=helgrind --read-var-info=yes --error-exitcode=1 --read-var-info=yes
12DRD_COMMAND= $(LIBTOOL_COMMAND) valgrind --tool=drd --free-is-write=yes --error-exitcode=1
13SGCHECK_COMMAND= $(LIBTOOL_COMMAND) valgrind --tool=exp-sgcheck --error-exitcode=1
14MASSIF_COMMAND= $(LIBTOOL_COMMAND) valgrind --tool=massif
15GDB_COMMAND= $(LIBTOOL_COMMAND) gdb -f -x libtest/run.gdb
16PTRCHECK_COMMAND= $(LIBTOOL_COMMAND) valgrind --tool=exp-ptrcheck --error-exitcode=1
17PAHOLE_COMMAND= $(LIBTOOL_COMMAND) --mode=execute pahole
18VALGRIND_SUPRESSION= $(LIBTOOL_COMMAND) valgrind --leak-check=full --show-reachable=yes --error-limit=no --gen-suppressions=all --log-file=minimalraw.log
19
20export LIBTOOL_COMMAND
21export VALGRIND_COMMAND
22export HELGRIND_COMMAND
23export DRD_COMMAND
24export SGCHECK_COMMAND
25export GDB_COMMAND
26
27valgrind:
28	@echo make check LOG_COMPILER="\"$(VALGRIND_EXEC_COMMAND)\""
29
30sgcheck:
31	@echo make check LOG_COMPILER="\"$(SGCHECK_EXEC_COMMAND)\""
32
33valgrind-supressions:
34	@echo make check LOG_COMPILER="\"$(VALGRIND_SUPRESSION)\""
35
36gdb:
37	@echo make check LOG_COMPILER="\"$(GDB_COMMAND)\""
38
39helgrind:
40	@echo make check LOG_COMPILER="\"$(HELGRIND_COMMAND)\""
41
42drd:
43	@echo make check LOG_COMPILER="\"$(DRD_COMMAND)\""
44
45EXTRA_DIST+= libtest/run.gdb
46EXTRA_DIST+= libtest/version.h
47
48BUILT_SOURCES+= libtest/version.h
49
50.PHONY: clean-libtest-check
51clean-libtest-check:
52	-rm -rf tmp_chroot
53
54noinst_HEADERS+= libtest/client.hpp
55noinst_HEADERS+= libtest/formatter.hpp
56noinst_HEADERS+= libtest/timer.hpp
57noinst_HEADERS+= libtest/alarm.h
58noinst_HEADERS+= libtest/binaries.h
59noinst_HEADERS+= libtest/cpu.hpp
60noinst_HEADERS+= libtest/blobslap_worker.h
61noinst_HEADERS+= libtest/callbacks.h
62noinst_HEADERS+= libtest/dns.hpp
63noinst_HEADERS+= libtest/cmdline.h
64noinst_HEADERS+= libtest/collection.h
65noinst_HEADERS+= libtest/common.h
66noinst_HEADERS+= libtest/comparison.hpp
67noinst_HEADERS+= libtest/core.h
68noinst_HEADERS+= libtest/dream.h
69noinst_HEADERS+= libtest/error.h
70noinst_HEADERS+= libtest/exception.hpp
71noinst_HEADERS+= libtest/exception/disconnected.hpp
72noinst_HEADERS+= libtest/exception/fatal.hpp
73noinst_HEADERS+= libtest/framework.h
74noinst_HEADERS+= libtest/gearmand.h
75noinst_HEADERS+= libtest/drizzled.h
76noinst_HEADERS+= libtest/get.h
77noinst_HEADERS+= libtest/has.hpp
78noinst_HEADERS+= libtest/http.hpp
79noinst_HEADERS+= libtest/is_pid.hpp
80noinst_HEADERS+= libtest/is_local.hpp
81noinst_HEADERS+= libtest/killpid.h
82noinst_HEADERS+= libtest/libtool.hpp
83noinst_HEADERS+= libtest/memcached.h
84noinst_HEADERS+= libtest/memcached.hpp
85noinst_HEADERS+= libtest/poll_error.hpp
86noinst_HEADERS+= libtest/port.h
87noinst_HEADERS+= libtest/result.hpp
88noinst_HEADERS+= libtest/result/base.hpp
89noinst_HEADERS+= libtest/result/fail.hpp
90noinst_HEADERS+= libtest/result/skip.hpp
91noinst_HEADERS+= libtest/result/success.hpp
92noinst_HEADERS+= libtest/runner.h
93noinst_HEADERS+= libtest/server.h
94noinst_HEADERS+= libtest/server_container.h
95noinst_HEADERS+= libtest/signal.h
96noinst_HEADERS+= libtest/socket.hpp
97noinst_HEADERS+= libtest/stream.h
98noinst_HEADERS+= libtest/strerror.h
99noinst_HEADERS+= libtest/string.hpp
100noinst_HEADERS+= libtest/test.h
101noinst_HEADERS+= libtest/test.hpp
102noinst_HEADERS+= libtest/thread.hpp
103noinst_HEADERS+= libtest/tmpfile.hpp
104noinst_HEADERS+= libtest/lite.h
105noinst_HEADERS+= libtest/valgrind.h
106noinst_HEADERS+= libtest/vchar.hpp
107noinst_HEADERS+= libtest/version.h
108noinst_HEADERS+= libtest/visibility.h
109noinst_HEADERS+= libtest/wait.h
110noinst_HEADERS+= libtest/yatl.h
111
112check_LTLIBRARIES+= libtest/libtest.la
113
114libtest_libtest_la_CXXFLAGS=
115EXTRA_libtest_libtest_la_DEPENDENCIES=
116libtest_libtest_la_LIBADD=
117libtest_libtest_la_SOURCES=
118
119libtest_libtest_la_SOURCES+= libtest/alarm.cc
120libtest_libtest_la_SOURCES+= libtest/binaries.cc
121libtest_libtest_la_SOURCES+= libtest/cmdline.cc
122libtest_libtest_la_SOURCES+= libtest/collection.cc
123libtest_libtest_la_SOURCES+= libtest/comparison.cc
124libtest_libtest_la_SOURCES+= libtest/core.cc
125libtest_libtest_la_SOURCES+= libtest/cpu.cc
126libtest_libtest_la_SOURCES+= libtest/dns.cc
127libtest_libtest_la_SOURCES+= libtest/dream.cc
128libtest_libtest_la_SOURCES+= libtest/drizzled.cc
129libtest_libtest_la_SOURCES+= libtest/exception.cc
130libtest_libtest_la_SOURCES+= libtest/exception/fatal.cc
131libtest_libtest_la_SOURCES+= libtest/formatter.cc
132libtest_libtest_la_SOURCES+= libtest/client.cc
133libtest_libtest_la_SOURCES+= libtest/framework.cc
134libtest_libtest_la_SOURCES+= libtest/has.cc
135libtest_libtest_la_SOURCES+= libtest/http.cc
136libtest_libtest_la_SOURCES+= libtest/is_local.cc
137libtest_libtest_la_SOURCES+= libtest/killpid.cc
138libtest_libtest_la_SOURCES+= libtest/libtool.cc
139libtest_libtest_la_SOURCES+= libtest/main.cc
140libtest_libtest_la_SOURCES+= libtest/port.cc
141libtest_libtest_la_SOURCES+= libtest/result.cc
142libtest_libtest_la_SOURCES+= libtest/runner.cc
143libtest_libtest_la_SOURCES+= libtest/server.cc
144libtest_libtest_la_SOURCES+= libtest/server_container.cc
145libtest_libtest_la_SOURCES+= libtest/signal.cc
146libtest_libtest_la_SOURCES+= libtest/socket.cc
147libtest_libtest_la_SOURCES+= libtest/strerror.cc
148libtest_libtest_la_SOURCES+= libtest/timer.cc
149libtest_libtest_la_SOURCES+= libtest/tmpfile.cc
150libtest_libtest_la_SOURCES+= libtest/vchar.cc
151
152libtest_libtest_la_CXXFLAGS+= -DBUILDING_LIBTEST
153libtest_libtest_la_CXXFLAGS+= @PTHREAD_CFLAGS@
154libtest_libtest_la_CXXFLAGS+= -DLIBTEST_TEMP="\"tmp_chroot\""
155libtest_libtest_la_CXXFLAGS+= $(CURL_CFLAGS)
156
157libtest_libtest_la_LIBADD+= @PTHREAD_LIBS@
158libtest_libtest_la_LIBADD+= $(CURL_LIBS)
159libtest_libtest_la_LIBADD+= @RT_LIB@
160
161EXTRA_libtest_libtest_la_DEPENDENCIES+= libtest_tmp_dir
162EXTRA_libtest_libtest_la_DEPENDENCIES+= libtest/abort
163EXTRA_libtest_libtest_la_DEPENDENCIES+= libtest/wait
164
165# Declare unittest so that we can append to it
166libtest_unittest_CXXFLAGS=
167libtest_unittest_LDADD=
168libtest_libtest_la_LDFLAGS=
169
170# We are either building in tree, or with
171libtest_libtest_la_SOURCES+= libtest/memcached.cc
172
173if HAVE_LIBDRIZZLE
174libtest_libtest_la_LDFLAGS+= @LIBDRIZZLE_LDFLAGS@
175libtest_libtest_la_LIBADD+= @LIBDRIZZLE_LIB@
176endif
177
178libtest_libtest_la_SOURCES+= libtest/gearmand.cc
179
180if BUILDING_GEARMAN
181libtest_libtest_la_SOURCES+= libtest/blobslap_worker.cc
182endif
183
184TMP_DIR := tmp_chroot/etc tmp_chroot/var/log tmp_chroot/var/tmp tmp_chroot/var/run tmp_chroot/var/drizzle
185
186.PHONY: libtest_tmp_dir
187libtest_tmp_dir: | $(TMP_DIR)
188
189$(TMP_DIR):
190	@$(mkdir_p) $(TMP_DIR)
191
192libtest_unittest_LDADD+= libtest/libtest.la
193libtest_unittest_SOURCES= libtest/unittest.cc
194check_PROGRAMS+= libtest/unittest
195noinst_PROGRAMS+= libtest/unittest
196test-unittest: libtest/unittest
197	@libtest/unittest
198
199valgrind-unittest: libtest/unittest
200	@$(VALGRIND_COMMAND) libtest/unittest
201
202gdb-unittest: libtest/unittest
203	@$(GDB_COMMAND) libtest/unittest
204
205helgrind-unittest: libtest/unittest
206	@$(HELGRIND_COMMAND) libtest/unittest
207
208drd-unittest: libtest/unittest
209	@$(DRD_COMMAND) libtest/unittest
210
211sgcheck-unittest: libtest/unittest
212	echo $(SGCHECK_COMMAND)
213	@$(SGCHECK_COMMAND) libtest/unittest
214
215libtest_skiptest_LDADD= libtest/libtest.la
216libtest_skiptest_SOURCES= libtest/skiptest.cc
217check_PROGRAMS+= libtest/skiptest
218noinst_PROGRAMS+= libtest/skiptest
219
220test-skiptest: libtest/skiptest
221	@libtest/skiptest
222
223valgrind-skiptest: libtest/skiptest
224	@$(VALGRIND_COMMAND) libtest/skiptest
225
226helgrind-skiptest: libtest/skiptest
227	@$(HELGRIND_COMMAND) libtest/skiptest
228
229drd-skiptest: libtest/skiptest
230	@$(DRD_COMMAND) libtest/skiptest
231
232libtest_wait_SOURCES=
233libtest_wait_SOURCES+= libtest/wait.cc
234libtest_wait_SOURCES+= libtest/dream.cc
235noinst_PROGRAMS+= libtest/wait
236
237libtest_core_count_SOURCES=
238libtest_core_count_SOURCES+= libtest/cpu.cc
239libtest_core_count_SOURCES+= libtest/core_count.cc
240noinst_PROGRAMS+= libtest/core-count
241
242libtest_abort_SOURCES= libtest/abort.cc
243noinst_PROGRAMS+= libtest/abort
244
245libtest_backtrace_SOURCES=
246libtest_backtrace_LDADD=
247libtest_backtrace_SOURCES+= libtest/backtrace_test.cc
248libtest_backtrace_SOURCES+= libmemcached/backtrace.cc
249libtest_backtrace_LDADD+= @lt_cv_dlopen_libs@
250noinst_PROGRAMS+= libtest/backtrace
251test-backtrace: libtest/backtrace
252	@libtest/backtrace
253
254gdb-backtrace: libtest/backtrace
255	@$(GDB_COMMAND) libtest/backtrace
256
257