2 # included from Top Level Makefile.am
3 # All paths should be given relative to the root
5 TESTS_LDADDS = libmemcached/libmemcached.la
7 VALGRIND_COMMAND= $(LIBTOOL) --mode=execute valgrind --leak-check=yes --show-reachable=yes
9 DEBUG_COMMAND= $(LIBTOOL) --mode=execute gdb
11 if BUILD_LIBMEMCACHEDUTIL
12 TESTS_LDADDS+= libmemcached/libmemcachedutil.la
24 tests/t/memslap.test \
28 tests/hash_results.h \
29 tests/ketama_test_cases.h \
30 tests/ketama_test_cases_spy.h \
31 tests/libmemcached_world.h \
42 noinst_LTLIBRARIES+= tests/libserver.la
43 tests_libserver_la_SOURCES= tests/server.c
45 noinst_LTLIBRARIES+= tests/libtest.la
46 tests_libtest_la_SOURCES= tests/test.c
48 tests_testapp_CFLAGS= $(AM_CFLAGS) $(NO_CONVERSION) $(NO_STRICT_ALIASING)
49 tests_testapp_SOURCES= tests/mem_functions.c
50 tests_testapp_LDADD= \
51 clients/libgenexec.la \
54 libmemcached/libmemcachedinternal.la \
56 tests_testapp_DEPENDENCIES= $(tests_testapp_LDADD)
58 tests_testplus_SOURCES= tests/plus.cpp
59 tests_testplus_LDADD= tests/libtest.la tests/libserver.la $(TESTS_LDADDS)
60 tests_testplus_DEPENDENCIES= $(tests_testplus_LDADD)
62 tests_atomsmasher_SOURCES= tests/atomsmasher.c
63 tests_atomsmasher_LDADD= \
64 clients/libgenexec.la \
68 tests_atomsmasher_DEPENDENCIES= $(tests_atomsmasher_LDADD)
70 tests_startservers_SOURCES= tests/start.c
71 tests_startservers_LDADD= tests/libserver.la $(TESTS_LDADDS)
72 tests_startservers_DEPENDENCIES= $(tests_startservers_LDADD)
74 tests_testhashkit_SOURCES = tests/hashkit_functions.c
75 tests_testhashkit_LDADD = tests/libtest.la libhashkit/libhashkit.la
76 tests_testhashkit_DEPENDENCIES = $(tests_testhashkit_LDADD)
78 test: test-docs test-plus test-mem test-hash memcapable
79 echo "Tests completed"
81 test-x: test-docs test-plus test-mem test-hash memcapable test-memcat test-memcp test-memrm test-memerror test-memdump test-memflush test-memstat
82 echo "Tests completed"
84 memcapable: clients/memcapable
85 @@MEMC_BINARY@ -d -P `pwd`/tests/Xumemc.pid -p 12555
86 @clients/memcapable -p 12555 || echo "Your memcached server does not support all commands"
87 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
90 test-memcat: clients/memcat clients/memcp
91 @echo "Testing memcat"
92 @@MEMC_BINARY@ -d -P `pwd`/tests/Xumemc.pid -p 12555
93 @clients/memcp --servers="localhost:12555" clients/memcp
94 @clients/memcat --servers="localhost:12555" memcp > tests/scratch
95 # @diff clients/memcp tests/scratch
96 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
100 valgrind-memcat: clients/memcat clients/memcp
101 @echo "Testing memcat"
102 @@MEMC_BINARY@ -d -P `pwd`/tests/Xumemc.pid -p 12555
103 @clients/memcp --servers="localhost:12555" clients/memcp
104 @$(VALGRIND_COMMAND) clients/memcat --servers="localhost:12555" memcp > tests/scratch
105 # @diff clients/memcp tests/scratch
106 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
110 test-memcp: clients/memcp
111 @echo "Testing memcp"
112 @@MEMC_BINARY@ -d -P `pwd`/tests/Xumemc.pid -p 12555
113 @clients/memcp --servers="localhost:12555" clients/memcp clients/memcat clients/memstat
114 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
117 valgrind-memcp: clients/memcat clients/memcp
118 @echo "Testing memcp"
119 @@MEMC_BINARY@ -d -P `pwd`/tests/Xumemc.pid -p 12555
120 @$(VALGRIND_COMMAND) clients/memcp --servers="localhost:12555" clients/memcp clients/memcat clients/memstat
121 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
124 test-memrm: clients/memrm clients/memcp
125 @echo "Testing memrm"
126 @@MEMC_BINARY@ -d -P `pwd`/tests/Xumemc.pid -p 12555
127 @clients/memcp --servers="localhost:12555" clients/memcat
128 @clients/memrm --servers="localhost:12555" memcat
129 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
132 valgrind-memrm: clients/memcat clients/memcp
133 @echo "Testing memrm"
134 @@MEMC_BINARY@ -d -P `pwd`/tests/Xumemc.pid -p 12555
135 @clients/memcp --servers="localhost:12555" clients/memcat
136 @$(VALGRIND_COMMAND) clients/memrm --servers="localhost:12555" memcat
137 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
140 test-memflush: clients/memflush
141 @echo "Testing memflush"
142 @/usr/local/bin/memcached -d -P `pwd`/tests/Xumemc.pid -p 12555
143 @clients/memflush --servers="localhost:12555"
144 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
147 valgrind-memflush: clients/memflush
148 @echo "Testing memflush"
149 @/usr/local/bin/memcached -d -P `pwd`/tests/Xumemc.pid -p 12555
150 @$(VALGRIND_COMMAND) clients/memflush --servers="localhost:12555"
151 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
154 test-memdump: clients/memdump clients/memcp
155 @echo "Testing memdump"
156 @/usr/local/bin/memcached -d -P `pwd`/tests/Xumemc.pid -p 12555
157 @clients/memcp --servers="localhost:12555" clients/memcat
158 @clients/memdump --servers="localhost:12555" > /dev/null
159 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
162 valgrind-memdump: clients/memcat clients/memcp
163 @echo "Testing memdump"
164 @/usr/local/bin/memcached -d -P `pwd`/tests/Xumemc.pid -p 12555
165 @clients/memcp --servers="localhost:12555" clients/memcat
166 @$(VALGRIND_COMMAND) clients/memdump --servers="localhost:12555" > /dev/null
167 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
170 test-memstat: clients/memstat
171 @echo "Testing memstat"
172 @/usr/local/bin/memcached -d -P `pwd`/tests/Xumemc.pid -p 12555
173 @clients/memstat --servers="localhost:12555" > /dev/null
174 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
177 valgrind-memstat: clients/memstat
178 @echo "Testing memstat"
179 @/usr/local/bin/memcached -d -P `pwd`/tests/Xumemc.pid -p 12555
180 @$(VALGRIND_COMMAND) clients/memstat --servers="localhost:12555" > /dev/null
181 @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server"
184 test-memerror: clients/memerror
185 @echo "Testing memerror"
186 @clients/memerror 0 > /dev/null
188 valgrind-memerror: clients/memerror
189 @echo "Testing memerror"
190 @$(VALGRIND_COMMAND) clients/memerror 0 > /dev/null
196 MEMSLAP_COMMAND= clients/memslap $(COLLECTION) $(SUITE)
198 MEM_COMMAND= tests/testapp $(COLLECTION) $(SUITE)
200 PLUS_COMMAND= tests/testplus $(COLLECTION) $(SUITE)
202 ATOM_COMMAND= tests/atomsmasher $(COLLECTION) $(SUITE)
204 HASH_COMMAND= tests/testhashkit $(COLLECTION) $(SUITE)
206 test-mem: tests/testapp
209 test-atom: tests/atomsmasher
212 test-plus: tests/testplus
215 test-hash: tests/testhashkit
218 gdb-mem: tests/testapp
219 $(DEBUG_COMMAND) $(MEM_COMMAND)
221 gdb-atom: tests/atomsmasher
222 $(DEBUG_COMMAND) $(ATOM_COMMAND)
224 gdb-plus: tests/testplus
225 $(DEBUG_COMMAND) $(PLUS_COMMAND)
227 gdb-hash: tests/testhashkit
228 $(DEBUG_COMMAND) $(HASH_COMMAND)
230 gdb-memslap: clients/memslap
231 $(DEBUG_COMMAND) $(MEMSLAP_COMMAND)
233 valgrind-mem: tests/testapp
234 $(VALGRIND_COMMAND) $(MEM_COMMAND)
236 valgrind-atom: tests/atomsmasher
237 $(VALGRIND_COMMAND) $(ATOM_COMMAND)
239 valgrind-plus: tests/testplus
240 $(VALGRIND_COMMAND) $(PLUS_COMMAND)
242 valgrind-hash: tests/testhashkit
243 $(VALGRIND_COMMAND) $(HASH_COMMAND)
245 valgrind-memslap: clients/memslap
246 $(VALGRIND_COMMAND) $(MEMSLAP_COMMAND)
249 valgrind: tests/testapp tests/testhashkit valgrind-mem valgrind-hash valgrind-memcat valgrind-memcp valgrind-memrm valgrind-memerror valgrind-memdump valgrind-memflush valgrind-memstat
252 CLEANFILES += tests/cachegrind.out
254 rm -f tests/cachegrind.out.*
255 $(LIBTOOL) --mode=execute valgrind --tool=cachegrind --cachegrind-out-file=tests/cachegrind.out.%p --branch-sim=yes tests/testapp
256 cg_annotate tests/cachegrind.out.* --auto=yes > tests/cachegrind.out
259 CLEANFILES += tests/callgrind.out
261 rm -f tests/callgrind.out.*
262 $(LIBTOOL) --mode=execute valgrind --tool=callgrind --callgrind-out-file=tests/callgrind.out.%p tests/testapp
263 callgrind_annotate tests/callgrind.out.* --auto=yes > tests/callgrind.out
266 CLEANFILES+= helgrind.out.*
269 $(LIBTOOL) --mode=execute valgrind --tool=helgrind tests/testapp
271 PHONY += helgrind-slap
273 $(LIBTOOL) --mode=execute valgrind --tool=helgrind clients/memslap --server=localhost --concurrency=30
275 test-no-outputdiff: test
277 hudson-valgrind: tests/testapp
278 $(VALGRIND_COMMAND) --log-file=tests/valgrind.out $(MEM_COMMAND)