# vim:ft=automake # included from Top Level Makefile.am # All paths should be given relative to the root TESTS_LDADDS = libmemcached/libmemcached.la VALGRIND_COMMAND= $(LIBTOOL) --mode=execute valgrind --leak-check=yes --show-reachable=yes DEBUG_COMMAND= $(LIBTOOL) --mode=execute gdb if BUILD_LIBMEMCACHEDUTIL TESTS_LDADDS+= libmemcached/libmemcachedutil.la endif EXTRA_DIST+= \ tests/r/memcat.res \ tests/r/memcp.res \ tests/r/memrm.res \ tests/r/memslap.res \ tests/r/memstat.res \ tests/t/memcat.test \ tests/t/memcp.test \ tests/t/memrm.test \ tests/t/memslap.test \ tests/t/memstat.test noinst_HEADERS+= \ tests/hash_results.h \ tests/ketama_test_cases.h \ tests/ketama_test_cases_spy.h \ tests/libmemcached_world.h \ tests/server.h \ tests/test.h noinst_PROGRAMS+= \ tests/atomsmasher \ tests/startservers \ tests/testapp \ tests/testhashkit \ tests/testplus noinst_LTLIBRARIES+= tests/libserver.la tests_libserver_la_SOURCES= tests/server.c noinst_LTLIBRARIES+= tests/libtest.la tests_libtest_la_SOURCES= tests/test.c tests_testapp_CFLAGS= $(AM_CFLAGS) $(NO_CONVERSION) $(NO_STRICT_ALIASING) tests_testapp_SOURCES= tests/mem_functions.c tests_testapp_LDADD= \ clients/libgenexec.la \ tests/libserver.la \ tests/libtest.la \ libmemcached/libmemcachedinternal.la \ $(TESTS_LDADDS) tests_testapp_DEPENDENCIES= $(tests_testapp_LDADD) tests_testplus_SOURCES= tests/plus.cpp tests_testplus_LDADD= tests/libtest.la tests/libserver.la $(TESTS_LDADDS) tests_testplus_DEPENDENCIES= $(tests_testplus_LDADD) tests_atomsmasher_SOURCES= tests/atomsmasher.c tests_atomsmasher_LDADD= \ clients/libgenexec.la \ tests/libserver.la \ tests/libtest.la \ $(TESTS_LDADDS) tests_atomsmasher_DEPENDENCIES= $(tests_atomsmasher_LDADD) tests_startservers_SOURCES= tests/start.c tests_startservers_LDADD= tests/libserver.la $(TESTS_LDADDS) tests_startservers_DEPENDENCIES= $(tests_startservers_LDADD) tests_testhashkit_SOURCES = tests/hashkit_functions.c tests_testhashkit_LDADD = tests/libtest.la libhashkit/libhashkit.la tests_testhashkit_DEPENDENCIES = $(tests_testhashkit_LDADD) client-record: sh tests/t/memcat.test > tests/r/memcat.res sh tests/t/memcp.test > tests/r/memcp.res sh tests/t/memrm.test > tests/r/memrm.res sh tests/t/memslap.test > tests/r/memslap.res sh tests/t/memstat.test > tests/r/memstat.res test: test-docs tests/testplus library_test memcapable libmhashkit_test echo "Tests completed" library_test: tests/testapp tests/testapp libmhashkit_test: libhashkit tests/testhashkit memcapable: clients/memcapable @MEMC_BINARY@ -d -P `pwd`/tests/Xumemc.pid -p 12555 @clients/memcapable -p 12555 || echo "Your memcached server does not support all commands" @cat tests/Xumemc.pid | xargs kill || echo "Failed to kill memcached server" @rm tests/Xumemc.pid PHONY += clients clients: @MEMC_BINARY@ -d -P `pwd`/tests/Xumemc.pid -p 12555 export MEMCACHED_SERVERS="localhost:12555" sh tests/t/memcat.test > tests/r/memcat.cmp diff tests/r/memcat.res tests/r/memcat.cmp sh tests/t/memcp.test > tests/r/memcp.cmp diff tests/r/memcp.res tests/r/memcp.cmp sh tests/t/memrm.test > tests/r/memrm.cmp diff tests/r/memrm.res tests/r/memrm.cmp sh tests/t/memslap.test > tests/r/memslap.cmp diff tests/r/memslap.res tests/r/memslap.cmp sh tests/t/memstat.test > tests/r/memstat.cmp diff tests/r/memstat.res tests/r/memstat.cmp cat tests/Xumemc.pid | xargs kill rm tests/Xumemc.pid MEMSLAP_COMMAND= clients/memslap $(COLLECTION) $(SUITE) MEM_COMMAND= tests/testapp $(COLLECTION) $(SUITE) PLUS_COMMAND= tests/testplus $(COLLECTION) $(SUITE) ATOM_COMMAND= tests/atomsmasher $(COLLECTION) $(SUITE) HASH_COMMAND= tests/testhashkit $(COLLECTION) $(SUITE) test-mem: tests/testapp $(MEM_COMMAND) test-atom: tests/atomsmasher $(ATOM_COMMAND) test-plus: tests/testplus $(PLUS_COMMAND) test-hash: tests/testhashkit $(HASH_COMMAND) gdb-mem: tests/testapp $(DEBUG_COMMAND) $(MEM_COMMAND) gdb-atom: tests/atomsmasher $(DEBUG_COMMAND) $(ATOM_COMMAND) gdb-plus: tests/testplus $(DEBUG_COMMAND) $(PLUS_COMMAND) gdb-hash: tests/testhashkit $(DEBUG_COMMAND) $(HASH_COMMAND) gdb-memslap: clients/memslap $(DEBUG_COMMAND) $(MEMSLAP_COMMAND) valgrind-mem: tests/testapp $(VALGRIND_COMMAND) $(MEM_COMMAND) valgrind-atom: tests/atomsmasher $(VALGRIND_COMMAND) $(ATOM_COMMAND) valgrind-plus: tests/testplus $(VALGRIND_COMMAND) $(PLUS_COMMAND) valgrind-hash: tests/testhashkit $(VALGRIND_COMMAND) $(HASH_COMMAND) valgrind-memslap: clients/memslap $(VALGRIND_COMMAND) $(MEMSLAP_COMMAND) PHONY += valgrind valgrind: tests/testapp tests/testhashkit valgrind-mem valgrind-hash PHONY += cachegrind CLEANFILES += tests/cachegrind.out cachegrind: rm -f tests/cachegrind.out.* $(LIBTOOL) --mode=execute valgrind --tool=cachegrind --cachegrind-out-file=tests/cachegrind.out.%p --branch-sim=yes tests/testapp cg_annotate tests/cachegrind.out.* --auto=yes > tests/cachegrind.out PHONY += callgrind CLEANFILES += tests/callgrind.out callgrind: rm -f tests/callgrind.out.* $(LIBTOOL) --mode=execute valgrind --tool=callgrind --callgrind-out-file=tests/callgrind.out.%p tests/testapp callgrind_annotate tests/callgrind.out.* --auto=yes > tests/callgrind.out PHONY += helgrind CLEANFILES+= helgrind.out.* helgrind: rm -f helgrind.out.* $(LIBTOOL) --mode=execute valgrind --tool=helgrind tests/testapp PHONY += helgrind-slap helgrind-slap: $(LIBTOOL) --mode=execute valgrind --tool=helgrind clients/memslap --server=localhost --concurrency=30 test-no-outputdiff: test hudson-valgrind: tests/testapp $(VALGRIND_COMMAND) --log-file=tests/valgrind.out $(MEM_COMMAND)