mirror of https://gitee.com/bigwinds/arangodb
250 lines
8.8 KiB
Makefile
250 lines
8.8 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 \
|
|
unittests-shell-server-ahuacatl \
|
|
unittests-http-server \
|
|
unittests-shell-client
|
|
|
|
|
|
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 -sS http://$(VOCHOST):$(VOCPORT)/version
|
|
|
|
@if [ "$(VALGRIND)" != "" ]; then sleep 60; fi
|
|
|
|
@echo
|
|
|
|
################################################################################
|
|
## BOOST TESTS
|
|
################################################################################
|
|
|
|
.PHONY: unittests-boost
|
|
|
|
if ENABLE_BOOST_TEST
|
|
|
|
unittests-boost:
|
|
@echo
|
|
@echo "================================================================================"
|
|
@echo "<< BOOST TESTS >>"
|
|
@echo "================================================================================"
|
|
@echo
|
|
|
|
$(VALGRIND) @builddir@/UnitTests/basics_suite --show_progress || test "$(FORCE)" == "1"
|
|
$(VALGRIND) @builddir@/UnitTests/geo_suite --show_progress || test "$(FORCE)" == "1"
|
|
|
|
@echo
|
|
|
|
unittests-boost: UnitTests/basics_suite
|
|
|
|
noinst_PROGRAMS = UnitTests/basics_suite UnitTests/geo_suite
|
|
|
|
UnitTests_basics_suite_LDADD = -L@top_builddir@ -lavocado -lboost_unit_test_framework
|
|
UnitTests_basics_suite_DEPENDENCIES = @top_builddir@/libavocado.a
|
|
|
|
UnitTests_basics_suite_SOURCES = \
|
|
UnitTests/Runner.cpp \
|
|
UnitTests/Philadelphia/json-test.cpp \
|
|
UnitTests/Philadelphia/hashes-test.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
|
|
|
|
UnitTests_geo_suite_LDADD = -L@top_builddir@ -lavocado -lboost_unit_test_framework
|
|
UnitTests_geo_suite_DEPENDENCIES = @top_builddir@/libavocado.a
|
|
|
|
UnitTests_geo_suite_SOURCES = \
|
|
UnitTests/Cambridge/Runner.cpp \
|
|
UnitTests/Cambridge/georeg.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_COMMON = @srcdir@/js/common/tests/shell-document.js \
|
|
@srcdir@/js/common/tests/shell-edge.js \
|
|
@srcdir@/js/common/tests/shell-collection.js \
|
|
@srcdir@/js/common/tests/shell-simple-query.js \
|
|
@srcdir@/js/common/tests/shell-index.js \
|
|
@srcdir@/js/common/tests/shell-index-geo.js \
|
|
@srcdir@/js/common/tests/shell-cap-constraint.js
|
|
|
|
SHELL_SERVER = $(SHELL_COMMON)
|
|
|
|
.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 CLIENT TESTS
|
|
################################################################################
|
|
|
|
SHELL_CLIENT = $(SHELL_COMMON)
|
|
|
|
.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
|