1
0
Fork 0
arangodb/Makefile.unittests

269 lines
9.4 KiB
Makefile

# -*- mode: Makefile; -*-
FORCE = 0
VALGRIND =
################################################################################
## unittests target
################################################################################
.PHONY: unittests unittests-brief unittests-verbose
unittests: unittests-verbose unittests-brief
unittests-brief: \
unittests-boost \
unittests-shell-server-ahuacatl \
unittests-shell-server \
unittests-http-server \
unittests-shell-client \
unittests-http-server \
unittests-shell-server-index
unittests-verbose:
@echo "################################################################################"
@echo "## ##"
@echo "## AvocadoDB Unit-Tests ##"
@echo "## ##"
@echo "## > make unittests ##"
@echo "## > make unittests FORCE=1 ##"
@echo "## > make unittests VALGRIND=valgrind ##"
@echo "## ##"
@echo "################################################################################"
@echo
@sleep 1
################################################################################
## start the avocado server
################################################################################
PID := $(shell echo $$PPID)
PIDFILE := /tmp/avocado.$(PID).pid
VOCDIR := /tmp/vocdir.$(PID)
VOCPORT := $(shell printf "3%04d" `expr $(PID) % 10000`)
VOCHOST := 127.0.0.1
SERVER_OPT := --startup.directory ./js --startup.modules-path ./js/server/modules:./js/common/modules --action.system-directory ./js/actions/system
CLIENT_OPT := --startup.directory ./js --startup.modules-path ./js/client/modules:./js/common/modules --no-colors
.PHONY: start-server
start-server:
@echo
@echo "================================================================================"
@echo "|| STARTING SERVER ||"
@echo "================================================================================"
@echo
@rm -f "$(PIDFILE)"
@rm -rf "$(VOCDIR)"
@mkdir "$(VOCDIR)"
($(VALGRIND) @builddir@/avocado "$(VOCDIR)" $(SERVER_OPT) --pid-file $(PIDFILE) --watch-process $(PID) --server.http-port $(VOCHOST):$(VOCPORT) && rm -rf "$(VOCDIR)") &
@curl -s http://$(VOCHOST):$(VOCPORT)/version > /dev/null || sleep 2
@curl -s http://$(VOCHOST):$(VOCPORT)/version > /dev/null || sleep 2
@curl -s http://$(VOCHOST):$(VOCPORT)/version > /dev/null || sleep 2
@curl -s http://$(VOCHOST):$(VOCPORT)/version > /dev/null || sleep 2
curl http://$(VOCHOST):$(VOCPORT)/version
@echo
################################################################################
## BOOST TESTS
################################################################################
.PHONY: unittests-boost
if ENABLE_BOOST_TEST
unittests-boost:
@echo
@echo "================================================================================"
@echo "|| BOOST TESTS ||"
@echo "================================================================================"
@echo
$(VALGRIND) @builddir@/UnitTests/test_suite --show_progress || test "$(FORCE)" == "1"
@echo
unittests-boost: UnitTests/test_suite
noinst_PROGRAMS = UnitTests/test_suite
UnitTests_test_suite_LDADD = -L@top_builddir@ -lavocado -lboost_unit_test_framework
UnitTests_test_suite_DEPENDENCIES = @top_builddir@/libavocado.a
UnitTests_test_suite_SOURCES = \
UnitTests/Runner.cpp \
UnitTests/Philadelphia/associative-pointer-test.cpp \
UnitTests/Philadelphia/string-buffer-test.cpp \
UnitTests/Philadelphia/string-utf8-test.cpp \
UnitTests/Philadelphia/vector-pointer-test.cpp \
UnitTests/Philadelphia/vector-test.cpp \
UnitTests/Jutland/StringBufferTest.cpp \
UnitTests/Jutland/StringUtilsTest.cpp
else
unittests-boost:
@echo
@echo "================================================================================"
@echo "|| BOOST TESTS ||"
@echo "================================================================================"
@echo
@echo "enable unit-testing with 'configure --with-boost-test'"
@echo
endif
################################################################################
## SHELL SERVER TESTS (BASICS)
################################################################################
SHELL_SERVER = @srcdir@/js/common/tests/shell-document.js \
@srcdir@/js/common/tests/shell-edge.js \
@srcdir@/js/common/tests/shell-collection.js
.PHONY: unittests-shell-server
UNITTESTS_SERVER = $(addprefix --unit-tests ,$(SHELL_SERVER))
unittests-shell-server:
@echo
@echo "================================================================================"
@echo "|| SHELL SERVER TESTS (BASICS) ||"
@echo "================================================================================"
@echo
@rm -rf "$(VOCDIR)"
@mkdir "$(VOCDIR)"
$(VALGRIND) @builddir@/avocado "$(VOCDIR)" $(SERVER_OPT) $(UNITTESTS_SERVER) || test "$(FORCE)" == "1"
@rm -rf "$(VOCDIR)"
@echo
################################################################################
## SHELL SERVER TESTS (AHUACATL)
################################################################################
SHELL_SERVER_AHUACATL = @srcdir@/js/server/tests/ahuacatl-operators.js \
@srcdir@/js/server/tests/ahuacatl-escaping.js \
@srcdir@/js/server/tests/ahuacatl-functions.js \
@srcdir@/js/server/tests/ahuacatl-queries-collection.js \
@srcdir@/js/server/tests/ahuacatl-queries-noncollection.js
.PHONY: unittests-shell-server-ahuacatl
UNITTESTS_SERVER_AHUACATL = $(addprefix --unit-tests ,$(SHELL_SERVER_AHUACATL))
unittests-shell-server-ahuacatl:
@echo
@echo "================================================================================"
@echo "|| SHELL SERVER TESTS (AHUACATL) ||"
@echo "================================================================================"
@echo
@rm -rf "$(VOCDIR)"
@mkdir "$(VOCDIR)"
$(VALGRIND) @builddir@/avocado "$(VOCDIR)" $(SERVER_OPT) $(UNITTESTS_SERVER_AHUACATL) || test "$(FORCE)" == "1"
@rm -rf "$(VOCDIR)"
@echo
################################################################################
## SHELL SERVER TESTS (INDEX)
################################################################################
SHELL_SERVER_INDEX = @srcdir@/js/server/tests/aql-index-primary.js \
@srcdir@/js/server/tests/aql-index-hash.js \
@srcdir@/js/server/tests/aql-index-skiplist.js \
@srcdir@/js/server/tests/aql-simple.js \
@srcdir@/js/server/tests/aql-keywords.js \
@srcdir@/js/server/tests/aql-bind.js \
@srcdir@/js/server/tests/aql-joins.js \
@srcdir@/js/server/tests/aql-operators.js
.PHONY: unittests-shell-server-index
UNITTESTS_SERVER_INDEX = $(addprefix --unit-tests ,$(SHELL_SERVER_INDEX))
unittests-shell-server-index:
@echo
@echo "================================================================================"
@echo "|| SHELL SERVER TESTS (INDEX & QUERY) ||"
@echo "================================================================================"
@echo
@rm -rf "$(VOCDIR)"
@mkdir "$(VOCDIR)"
$(VALGRIND) @builddir@/avocado "$(VOCDIR)" $(SERVER_OPT) $(UNITTESTS_SERVER_INDEX) || test "$(FORCE)" == "1"
@rm -rf "$(VOCDIR)"
@echo
################################################################################
## SHELL CLIENT TESTS
################################################################################
SHELL_CLIENT = @srcdir@/js/common/tests/shell-document.js \
@srcdir@/js/common/tests/shell-edge.js \
@srcdir@/js/common/tests/shell-collection.js
.PHONY: unittests-shell-client
UNITTESTS_CLIENT = $(addprefix --unit-tests ,$(SHELL_CLIENT))
unittests-shell-client:
$(MAKE) start-server PID=$(PID)
@echo
@echo "================================================================================"
@echo "|| SHELL CLIENT TESTS ||"
@echo "================================================================================"
@echo
$(VALGRIND) @builddir@/avocsh $(CLIENT_OPT) --server $(VOCHOST):$(VOCPORT) "$(VOCDIR)" $(UNITTESTS_CLIENT) || test "$(FORCE)" == "1"
kill `cat $(PIDFILE)`
while test -f $(PIDFILE); do sleep 1; done
@rm -rf "$(VOCDIR)"
@echo
################################################################################
## HTTP SERVER TESTS
################################################################################
.PHONY: unittests-http-server
unittests-http-server:
$(MAKE) start-server PID=$(PID)
@echo
@echo "================================================================================"
@echo "|| HTTP SERVER TESTS ||"
@echo "================================================================================"
@echo
cd @srcdir@/UnitTests/HttpInterface && AVOCADO_SERVER="$(VOCHOST):$(VOCPORT)" ./run_tests || test "$(FORCE)" == "1"
kill `cat $(PIDFILE)`
while test -f $(PIDFILE); do sleep 1; done
@rm -rf "$(VOCDIR)"
@echo