# -*- mode: Makefile; -*- ## ----------------------------------------------------------------------------- ## --SECTION-- CONFIGURATION ## ----------------------------------------------------------------------------- FORCE = 0 SKIP_BOOST = 0 SKIP_GEO = 0 SKIP_RANGES = 0 VALGRIND = NO_LOG = USERNAME = root PASSWORD = PROTO = http ## ----------------------------------------------------------------------------- ## --SECTION-- UNITTESTS ## ----------------------------------------------------------------------------- ################################################################################ ### @brief unittests target ################################################################################ .PHONY: unittests unittests-brief unittests-verbose unittests: all unittests-verbose unittests-brief unittests-brief: \ jslint \ unittests-config \ unittests-recovery \ unittests-boost \ unittests-shell-client-readonly\ unittests-shell-server \ unittests-shell-server-aql \ unittests-http-server \ unittests-ssl-server \ unittests-shell-client \ unittests-dump \ unittests-dump-authentication \ unittests-arangob \ unittests-import \ unittests-upgrade \ unittests-dfdb \ unittests-foxx-manager \ unittests-authentication \ unittests-authentication-parameters unittests-verbose: @echo "################################################################################" @echo "## ##" @echo "## ArangoDB Unit-Tests ##" @echo "## ##" @echo "## > make unittests ##" @echo "## > make unittests FORCE=1 ##" @echo "## > make unittests SKIP_BOOST=1 ##" @echo "## > make unittests SKIP_GEO=1 ##" @echo "## > make unittests SKIP_RANGES=1 ##" @echo "## > make unittests VALGRIND=valgrind ##" @echo "## ##" @echo "################################################################################" @echo @sleep 1 ################################################################################ ### @brief single test ################################################################################ TEST := $(shell echo $$TEST) ################################################################################ ### @brief arango server configuration ################################################################################ PID := $(shell echo $$PPID) PIDFILE := /tmp/arango.$(PID).pid VOCDIR := /tmp/vocdir.$(PID) VOCPORT := $(shell printf "3%04d" `expr $(PID) % 10000`) VOCHOST := 127.0.0.1 STARTFILE := $(VOCDIR)/startup ################################################################################ ### @brief slave stuff ################################################################################ SLAVEPIDFILE := /tmp/arango-slave.$(PID).pid SLAVEPORT := $(shell printf "4%04d" `expr $(PID) % 10000`) SLAVEHOST := 127.0.0.1 SLAVEDIR := /tmp/vocdir-slave.$(PID) SLAVESTARTFILE := $(SLAVEDIR)/startup ################################################################################ ### @brief client configuration ################################################################################ CURL := curl CURL_OPT := --basic --user "$(USERNAME):$(PASSWORD)" CERT_FILE := @top_srcdir@/UnitTests/server.pem ################################################################################ ### @brief start the arango server ################################################################################ SERVER_START := SERVER_OPT := \ --configuration none \ --database.maximal-journal-size 1048576 \ --database.force-sync-properties false \ --javascript.app-path @top_srcdir@/js/apps \ --javascript.startup-directory @top_srcdir@/js \ --log.file "" \ --log.level fatal \ --wal.reserve-logfiles 1 \ --server.threads 4 \ $(SERVER_START) CLIENT_OPT := \ --configuration none \ --javascript.startup-directory @top_srcdir@/js \ --log.level fatal \ --no-colors \ --quiet .PHONY: start-server start-server: @echo @echo "================================================================================" @(test "$(PROTO)" == "http" && echo "<< STARTING SERVER ON TCP ENDPOINT >>") || true @(test "$(PROTO)" == "https" && echo "<< STARTING SERVER ON SSL ENDPOINT >>") || true @(test "$(PROTO)" == "unix" && echo "<< STARTING SERVER ON UNIX SOCKET ENDPOINT >>") || true @echo "================================================================================" @echo @echo "Server Options: $(SERVER_OPT)" @echo @rm -f "$(PIDFILE)" @rm -rf "$(VOCDIR)" @mkdir -p "$(VOCDIR)/databases" @test -d "$(VOCDIR)" ($(VALGRIND) @builddir@/bin/arangod "$(VOCDIR)" $(SERVER_OPT) --pid-file $(PIDFILE) --watch-process $(PID) && rm -rf "$(VOCDIR)") & # Wait for http/https server endpoints: @test "$(PROTO)" == "unix" || \ ( \ rm -f "$(STARTFILE)"; \ while [ ! -s "$(STARTFILE)" ]; do \ $(CURL) $(CURL_OPT) --insecure -X GET -s "$(PROTO)://$(VOCHOST):$(VOCPORT)/_api/version" > "$(STARTFILE)" || \ sleep 2; \ done) # wait for unix domain socket enpoints: @(test "$(PROTO)" == "unix" && \ while ! @builddir@/bin/arangosh $(CLIENT_OPT) \ --server.endpoint unix://$(VOCDIR)/arango.sock \ --server.disable-authentication true \ --javascript.execute-string 'if (arango.GET("/_api/version").server === "arango") { 0; } else {1; }'; do \ sleep 1; \ echo .; \ done;) ||\ true @rm -f "$(STARTFILE)" @echo "server has been started." @if [ "$(VALGRIND)" != "" ]; then echo "adding valgrind memorial time..."; sleep 75; else sleep 2; fi @echo .PHONY: start-slave start-slave: @echo @echo "================================================================================" @echo "<< STARTING SLAVE >>" @echo "================================================================================" @echo @echo "Slave Options: $(SERVER_OPT)" @echo @rm -f "$(SLAVEPIDFILE)" @rm -rf "$(SLAVEDIR)" @mkdir -p "$(SLAVEDIR)/databases" @test -d "$(SLAVEDIR)" ($(VALGRIND) @builddir@/bin/arangod "$(SLAVEDIR)" $(SERVER_OPT) --pid-file $(SLAVEPIDFILE) --watch-process $(PID) && rm -rf "$(SLAVEDIR)") & @rm -f "$(SLAVESTARTFILE)"; while [ ! -s "$(SLAVESTARTFILE)" ]; do $(CURL) $(CURL_OPT) -X GET -s "$(PROTO)://$(SLAVEHOST):$(SLAVEPORT)/_api/version" > "$(SLAVESTARTFILE)" || sleep 2; done @rm -f "$(SLAVESTARTFILE)" @echo "slave has been started." @if [ "$(VALGRIND)" != "" ]; then echo "adding valgrind memorial time..."; sleep 75; else sleep 2; fi @echo ################################################################################ ### @brief issue a curl request and return the status ################################################################################ .PHONY: curl-request-get curl-request-get: @declare -x ACTUAL=$$(curl --dump - -X GET "$(CURL_PROTO)://$(CURL_HOST):$(CURL_PORT)$(CURL_URL)" 2> /dev/null | head -n 1 | tr "\r" " " | sed -e 's/^HTTP\/1\.1 \([0-9]*\).*$$/\1/g'); if [ "x$$ACTUAL" != "x$(EXPECTED)" ]; then echo "request to $(CURL_PROTO)://$(CURL_HOST):$(CURL_PORT)$(CURL_URL) returned $$ACTUAL, expected: $(EXPECTED)"; false; else true; fi ################################################################################ ### @brief test recovery ################################################################################ .PHONY: unittests-recovery .PHONY: execute-recovery-test if ENABLE_FAILURE_TESTS execute-recovery-test: @rm -rf "$(VOCDIR)" @mkdir -p "$(VOCDIR)/databases" @builddir@/bin/arangod "$(VOCDIR)" --no-server $(SERVER_OPT) --server.threads 1 --wal.reserve-logfiles 1 --javascript.script "@top_srcdir@/js/server/tests/recovery/$(RECOVERY_SCRIPT).js" --javascript.script-parameter setup --log.level fatal || true # the server will crash with segfault intentionally in this test @rm -f core $(VALGRIND) @builddir@/bin/arangod --no-server "$(VOCDIR)" $(SERVER_OPT) --server.threads 1 --wal.ignore-logfile-errors true --wal.reserve-logfiles 1 --javascript.script "@top_srcdir@/js/server/tests/recovery/$(RECOVERY_SCRIPT).js" --javascript.script-parameter recover || test "x$(FORCE)" == "x1" unittests-recovery: @echo @echo "================================================================================" @echo "<< RECOVERY TESTS >>" @echo "================================================================================" @echo $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="disk-full-logfile" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="disk-full-logfile-data" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="disk-full-datafile" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="disk-full-datafile" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collection-drop-recreate" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="create-with-temp" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="create-collection-fail" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="create-database-fail" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="empty-datafiles" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="flush-drop-database-and-fail" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="drop-database-flush-and-fail" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="create-databases" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="recreate-databases" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="drop-databases" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="create-and-drop-databases" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="drop-database-and-fail" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="flush-drop-database-and-fail" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collection-rename-recreate" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collection-rename-recreate-flush" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collection-unload" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="resume-recovery-multi-flush" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="resume-recovery-simple" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="resume-recovery-all" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="resume-recovery-other" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="resume-recovery" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="foxx-directories" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collection-rename" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collection-properties" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="empty-logfiles" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="many-logs" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="multiple-logs" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collection-recreate" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="drop-indexes" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="create-indexes" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="create-collections" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="recreate-collection" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="drop-single-collection" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="drop-collections" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collections-reuse" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collections-different-attributes" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="indexes-hash" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="indexes-sparse-hash" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="indexes-skiplist" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="indexes-sparse-skiplist" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="indexes-geo" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="edges" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="cap-constraint" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="indexes" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="many-inserts" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="many-updates" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="wait-for-sync" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="attributes" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="no-journal" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="write-throttling" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="collector-oom" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="transaction-no-abort" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="transaction-no-commit" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="multi-database-durability" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="disk-full-no-collection-journal" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="no-shutdown-info-with-flush" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="no-shutdown-info-no-flush" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="no-shutdown-info-multiple-logs" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="insert-update-remove" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="insert-update-remove-distance" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="big-transaction-durability" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="transaction-durability" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="transaction-durability-multiple" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="corrupt-wal-marker-multiple" $(MAKE) execute-recovery-test PID=$(PID) RECOVERY_SCRIPT="corrupt-wal-marker-single" @rm -rf "$(VOCDIR)" core @echo else unittests-recovery: execute-recovery-test: endif ################################################################################ ### @brief test configuration files ################################################################################ .PHONY: unittests-config unittests-config: @echo @echo "================================================================================" @echo "<< CONFIGURATION FILE TESTS >>" @echo "================================================================================" @echo @builddir@/bin/arangod --configuration @builddir@/etc/arangodb/arangod.conf --help 1> /dev/null || false @builddir@/bin/arangob --configuration @builddir@/etc/arangodb/arangob.conf --help 1> /dev/null || false @builddir@/bin/arangodump --configuration @builddir@/etc/arangodb/arangodump.conf --help 1> /dev/null || false @builddir@/bin/arangoimp --configuration @builddir@/etc/arangodb/arangoimp.conf --help 1> /dev/null || false @builddir@/bin/arangorestore --configuration @builddir@/etc/arangodb/arangorestore.conf --help 1> /dev/null || false @builddir@/bin/arangosh --configuration @builddir@/etc/arangodb/arangosh.conf --help 1> /dev/null || false @builddir@/bin/arangod --configuration @builddir@/etc/relative/arangod.conf --help 1> /dev/null || false @builddir@/bin/arangob --configuration @builddir@/etc/relative/arangob.conf --help 1> /dev/null || false @builddir@/bin/arangodump --configuration @builddir@/etc/relative/arangodump.conf --help 1> /dev/null || false @builddir@/bin/arangoimp --configuration @builddir@/etc/relative/arangoimp.conf --help 1> /dev/null || false @builddir@/bin/arangorestore --configuration @builddir@/etc/relative/arangorestore.conf --help 1> /dev/null || false @builddir@/bin/arangosh --configuration @builddir@/etc/relative/arangosh.conf --help 1> /dev/null || false ################################################################################ ### @brief BOOST TESTS ################################################################################ .PHONY: unittests-boost if ENABLE_MAINTAINER_MODE unittests-boost: UnitTests/basics_suite UnitTests/geo_suite @echo @echo "================================================================================" @echo "<< BOOST TESTS >>" @echo "================================================================================" @echo test "x$(SKIP_BOOST)" == "x1" || $(VALGRIND) @builddir@/UnitTests/basics_suite --show_progress || test "x$(FORCE)" == "x1" test "x$(SKIP_GEO)" == "x1" || $(VALGRIND) @builddir@/UnitTests/geo_suite --show_progress || test "x$(FORCE)" == "x1" @echo noinst_PROGRAMS += UnitTests/basics_suite UnitTests/geo_suite UnitTests_basics_suite_CPPFLAGS = \ -I@top_srcdir@/3rdParty/velocypack/include \ -I@top_srcdir@/arangod \ -I@top_srcdir@/lib \ @ICU_CPPFLAGS@ \ @BOOST_CPPFLAGS@ UnitTests_basics_suite_LDADD = \ -L@top_builddir@/3rdParty/velocypack/include \ -L@top_builddir@/lib \ -larango \ -lboost_unit_test_framework \ @ICU_LDFLAGS@ UnitTests_basics_suite_DEPENDENCIES = @top_builddir@/lib/libarango.a UnitTests_basics_suite_SOURCES = \ UnitTests/Basics/Runner.cpp \ UnitTests/Basics/conversions-test.cpp \ UnitTests/Basics/csv-test.cpp \ UnitTests/Basics/files-test.cpp \ UnitTests/Basics/fpconv-test.cpp \ UnitTests/Basics/json-test.cpp \ UnitTests/Basics/json-utilities-test.cpp \ UnitTests/Basics/hashes-test.cpp \ UnitTests/Basics/associative-pointer-test.cpp \ UnitTests/Basics/associative-multi-pointer-test.cpp \ UnitTests/Basics/associative-multi-pointer-nohashcache-test.cpp \ UnitTests/Basics/skiplist-test.cpp \ UnitTests/Basics/priorityqueue-test.cpp \ UnitTests/Basics/string-buffer-test.cpp \ UnitTests/Basics/string-utf8-normalize-test.cpp \ UnitTests/Basics/string-utf8-test.cpp \ UnitTests/Basics/string-test.cpp \ UnitTests/Basics/structure-size-test.cpp \ UnitTests/Basics/vector-pointer-test.cpp \ UnitTests/Basics/vector-test.cpp \ UnitTests/Basics/EndpointTest.cpp \ UnitTests/Basics/StringBufferTest.cpp \ UnitTests/Basics/StringUtilsTest.cpp \ UnitTests/Basics/PathEnumeratorTest.cpp \ UnitTests/Basics/AttributeNameParserTest.cpp UnitTests_geo_suite_CPPFLAGS = -I@top_srcdir@/arangod -I@top_builddir@/lib -I@top_srcdir@/lib @BOOST_CPPFLAGS@ UnitTests_geo_suite_LDADD = -L@top_builddir@/lib -larango -lboost_unit_test_framework UnitTests_geo_suite_DEPENDENCIES = @top_builddir@/lib/libarango.a UnitTests_geo_suite_SOURCES = \ UnitTests/Geo/Runner.cpp \ UnitTests/Geo/georeg.cpp \ arangod/GeoIndex/GeoIndex.cpp else unittests-boost: @echo @echo "================================================================================" @echo "<< BOOST TESTS >>" @echo "================================================================================" @echo @echo "to enable boost unit-tests, install Boost test and configure with --enable-maintainer-mode" @echo endif ################################################################################ ### @brief CONVENIENCE TARGET TO EXECUTE A SINGLE TEST ON SERVER AND CLIENT ################################################################################ .PHONY: unittests-single-server unittests-single-client unittests-single unittests-single: $(MAKE) unittests-single-server unittests-single-client TEST=$(TEST) unittests-single-server: @echo @echo "================================================================================" @echo "<< SERVER TEST ($(TEST))" @echo "================================================================================" @echo @rm -rf "$(VOCDIR)" @mkdir -p "$(VOCDIR)/databases" $(VALGRIND) @builddir@/bin/arangod "$(VOCDIR)" $(SERVER_OPT) --server.endpoint "tcp://$(VOCHOST):$(VOCPORT)" --javascript.unit-tests $(TEST) || test "x$(FORCE)" == "x1" @rm -rf "$(VOCDIR)" @echo unittests-single-client: @echo @echo "================================================================================" @echo "<< SHELL CLIENT TEST ($(TEST))" @echo "================================================================================" @echo @rm -rf "$(VOCDIR)" $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true" PROTO=unix $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-test $(TEST) || test "x$(FORCE)" == "x1" sleep 2 kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief SHELL TESTS COMMON (BASICS) ################################################################################ SHELL_COMMON = \ @top_srcdir@/js/common/tests/shell-require.js \ @top_srcdir@/js/common/tests/shell-aqlfunctions.js \ @top_srcdir@/js/common/tests/shell-attributes.js \ @top_srcdir@/js/common/tests/shell-base64.js \ @top_srcdir@/js/common/tests/shell-collection.js \ @top_srcdir@/js/common/tests/shell-collection-volatile-noncluster.js \ @top_srcdir@/js/common/tests/shell-crypto.js \ @top_srcdir@/js/common/tests/shell-collection-noncluster.js \ @top_srcdir@/js/common/tests/shell-database.js \ @top_srcdir@/js/common/tests/shell-document.js \ @top_srcdir@/js/common/tests/shell-edge.js \ @top_srcdir@/js/common/tests/shell-edge-index-noncluster.js \ @top_srcdir@/js/common/tests/shell-errors.js \ @top_srcdir@/js/common/tests/shell-fs.js \ @top_srcdir@/js/common/tests/shell-env.js \ @top_srcdir@/js/common/tests/shell-foxx-manager-install-spec.js \ @top_srcdir@/js/common/tests/shell-general-graph.js \ @top_srcdir@/js/common/tests/shell-graph-algorithms.js \ @top_srcdir@/js/common/tests/shell-graph-measurement.js \ @top_srcdir@/js/common/tests/shell-graph-traversal.js \ @top_srcdir@/js/common/tests/shell-keygen.js \ @top_srcdir@/js/common/tests/shell-keygen-noncluster.js \ @top_srcdir@/js/common/tests/shell-index-ensure.js \ @top_srcdir@/js/common/tests/shell-rename-noncluster.js \ @top_srcdir@/js/common/tests/shell-simple-query.js \ @top_srcdir@/js/common/tests/shell-statement.js \ @top_srcdir@/js/common/tests/shell-statement-encoding-noncluster.js \ @top_srcdir@/js/common/tests/shell-statement-noncluster.js \ @top_srcdir@/js/common/tests/shell-explain-noncluster.js \ @top_srcdir@/js/common/tests/shell-tasks-timecritical.js \ @top_srcdir@/js/common/tests/shell-transactions.js \ @top_srcdir@/js/common/tests/shell-unload.js \ @top_srcdir@/js/common/tests/shell-users.js \ @top_srcdir@/js/common/tests/shell-index.js \ @top_srcdir@/js/common/tests/shell-index-geo.js \ @top_srcdir@/js/common/tests/shell-cap-constraint.js \ @top_srcdir@/js/common/tests/shell-cap-constraint-timecritical.js \ @top_srcdir@/js/common/tests/shell-unique-constraint.js \ @top_srcdir@/js/common/tests/shell-hash-index.js \ @top_srcdir@/js/common/tests/shell-hash-index-noncluster.js \ @top_srcdir@/js/common/tests/shell-fulltext.js \ @top_srcdir@/js/common/tests/shell-graph.js \ @top_srcdir@/js/common/tests/shell-query-timecritical-spec.js ################################################################################ ### @brief SHELL SERVER TESTS (BASICS) ################################################################################ SHELL_SERVER_ONLY = \ @top_srcdir@/js/server/tests/shell-readonly-noncluster-disabled.js \ @top_srcdir@/js/server/tests/shell-wal-noncluster-memoryintense.js \ @top_srcdir@/js/server/tests/shell-datafile-timecritical-noncluster.js \ @top_srcdir@/js/server/tests/shell-collection-not-loaded-timecritical-noncluster.js \ @top_srcdir@/js/server/tests/shell-sharding-helpers.js \ @top_srcdir@/js/server/tests/shell-compaction-noncluster-timecritical.js \ @top_srcdir@/js/server/tests/shell-shaped-noncluster.js \ @top_srcdir@/js/server/tests/shell-transactions-noncluster.js \ @top_srcdir@/js/server/tests/shell-any-noncluster.js \ @top_srcdir@/js/server/tests/shell-database-noncluster.js \ @top_srcdir@/js/server/tests/shell-foxx.js \ @top_srcdir@/js/server/tests/shell-foxx-base-middleware.js \ @top_srcdir@/js/server/tests/shell-foxx-model.js \ @top_srcdir@/js/server/tests/shell-foxx-model-events-spec.js \ @top_srcdir@/js/server/tests/shell-foxx-preprocessor.js \ @top_srcdir@/js/server/tests/shell-foxx-query-spec.js \ @top_srcdir@/js/server/tests/shell-foxx-repository-spec.js \ @top_srcdir@/js/server/tests/shell-foxx-template-middleware.js \ @top_srcdir@/js/server/tests/shell-routing.js \ @top_srcdir@/js/server/tests/shell-skiplist-index.js \ @top_srcdir@/js/server/tests/shell-skiplist-rm-performance-timecritical-noncluster.js \ @top_srcdir@/js/server/tests/shell-skiplist-correctness.js SHELL_SERVER = $(SHELL_COMMON) $(SHELL_SERVER_ONLY) .PHONY: unittests-shell-server UNITTESTS_SERVER = $(addprefix --javascript.unit-tests ,$(SHELL_SERVER)) unittests-shell-server: @echo @echo "================================================================================" @echo "<< SHELL SERVER TESTS (ALL) >>" @echo "================================================================================" @echo @rm -rf "$(VOCDIR)" @mkdir -p "$(VOCDIR)/databases" $(VALGRIND) @builddir@/bin/arangod "$(VOCDIR)" $(SERVER_OPT) --server.endpoint tcp://$(VOCHOST):$(VOCPORT) $(UNITTESTS_SERVER) || test "x$(FORCE)" == "x1" @rm -rf "$(VOCDIR)" @echo .PHONY: unittests-shell-server-only UNITTESTS_SERVER_ONLY = $(addprefix --javascript.unit-tests ,$(SHELL_SERVER_ONLY)) unittests-shell-server-only: @echo @echo "================================================================================" @echo "<< SHELL SERVER TESTS (SERVER-ONLY) >>" @echo "================================================================================" @echo @rm -rf "$(VOCDIR)" @mkdir -p "$(VOCDIR)/databases" $(VALGRIND) @builddir@/bin/arangod "$(VOCDIR)" $(SERVER_OPT) --server.endpoint tcp://$(VOCHOST):$(VOCPORT) $(UNITTESTS_SERVER_ONLY) || test "x$(FORCE)" == "x1" @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief SHELL SERVER TESTS (AQL) ################################################################################ SHELL_SERVER_AQL = @top_srcdir@/js/server/tests/aql-arithmetic.js \ @top_srcdir@/js/server/tests/aql-array-access.js \ @top_srcdir@/js/server/tests/aql-attribute-access.js \ @top_srcdir@/js/server/tests/aql-bind.js \ @top_srcdir@/js/server/tests/aql-call-apply.js \ @top_srcdir@/js/server/tests/aql-complex.js \ @top_srcdir@/js/server/tests/aql-cross.js \ @top_srcdir@/js/server/tests/aql-distinct.js \ @top_srcdir@/js/server/tests/aql-dynamic-attributes.js \ @top_srcdir@/js/server/tests/aql-edges-noncluster.js \ @top_srcdir@/js/server/tests/aql-escaping.js \ @top_srcdir@/js/server/tests/aql-explain-noncluster.js \ @top_srcdir@/js/server/tests/aql-failures-noncluster.js \ @top_srcdir@/js/server/tests/aql-fullcount.js \ @top_srcdir@/js/server/tests/aql-functions.js \ @top_srcdir@/js/server/tests/aql-functions-date.js \ @top_srcdir@/js/server/tests/aql-functions-list.js \ @top_srcdir@/js/server/tests/aql-functions-misc.js \ @top_srcdir@/js/server/tests/aql-functions-numeric.js \ @top_srcdir@/js/server/tests/aql-functions-string.js \ @top_srcdir@/js/server/tests/aql-functions-types.js \ @top_srcdir@/js/server/tests/aql-functions-types-cxx.js \ @top_srcdir@/js/server/tests/aql-general-graph.js \ @top_srcdir@/js/server/tests/aql-graph.js \ @top_srcdir@/js/server/tests/aql-graph-traverser.js \ @top_srcdir@/js/server/tests/aql-graph-visitors.js \ @top_srcdir@/js/server/tests/aql-hash-noncluster.js \ @top_srcdir@/js/server/tests/aql-is-in-polygon.js \ @top_srcdir@/js/server/tests/aql-logical.js \ @top_srcdir@/js/server/tests/aql-modify-noncluster.js \ @top_srcdir@/js/server/tests/aql-modify-noncluster-serializetest.js \ @top_srcdir@/js/server/tests/aql-multi-modify.js \ @top_srcdir@/js/server/tests/aql-operators.js \ @top_srcdir@/js/server/tests/aql-optimizer-collect-count.js \ @top_srcdir@/js/server/tests/aql-optimizer-collect-into.js \ @top_srcdir@/js/server/tests/aql-optimizer-collect-methods.js \ @top_srcdir@/js/server/tests/aql-optimizer-costs.js \ @top_srcdir@/js/server/tests/aql-optimizer-dynamic-bounds.js \ @top_srcdir@/js/server/tests/aql-optimizer-edge-index.js \ @top_srcdir@/js/server/tests/aql-optimizer-filters.js \ @top_srcdir@/js/server/tests/aql-optimizer-index-ranges.js \ @top_srcdir@/js/server/tests/aql-optimizer-indexes.js \ @top_srcdir@/js/server/tests/aql-optimizer-indexes-in-or.js \ @top_srcdir@/js/server/tests/aql-optimizer-indexes-multi.js \ @top_srcdir@/js/server/tests/aql-optimizer-indexes-sort.js \ @top_srcdir@/js/server/tests/aql-optimizer-keep.js \ @top_srcdir@/js/server/tests/aql-optimizer-plans.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-interchange-adjacent-enumerations-noncluster.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-move-calculations-down.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-move-calculations-up.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-move-filters-up.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-remove-collect-into.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-remove-filter-covered-by-index.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-remove-redundant-calculations.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-remove-redundant-or.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-remove-redundant-sorts.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-remove-unnecessary-calculations.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-remove-unnecessary-filters.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-replace-or-with-in.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-remove-sort-rand.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-sort-in-values.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-use-index-range.js \ @top_srcdir@/js/server/tests/aql-optimizer-rule-use-index-for-sort.js \ @top_srcdir@/js/server/tests/aql-optimizer-stats-noncluster.js \ @top_srcdir@/js/server/tests/aql-optimizer-v8.js \ @top_srcdir@/js/server/tests/aql-parse.js \ @top_srcdir@/js/server/tests/aql-primary-index-noncluster.js \ @top_srcdir@/js/server/tests/aql-queries-array.js \ @top_srcdir@/js/server/tests/aql-queries-array-nested.js \ @top_srcdir@/js/server/tests/aql-queries-collection.js \ @top_srcdir@/js/server/tests/aql-queries-fulltext.js \ @top_srcdir@/js/server/tests/aql-queries-geo.js \ @top_srcdir@/js/server/tests/aql-queries-noncollection.js \ @top_srcdir@/js/server/tests/aql-queries-optimizer-in-noncluster.js \ @top_srcdir@/js/server/tests/aql-queries-optimizer.js \ @top_srcdir@/js/server/tests/aql-queries-optimizer-limit-noncluster.js \ @top_srcdir@/js/server/tests/aql-queries-optimizer-ref-noncluster.js \ @top_srcdir@/js/server/tests/aql-queries-optimizer-sort-noncluster.js \ @top_srcdir@/js/server/tests/aql-queries-simple.js \ @top_srcdir@/js/server/tests/aql-queries-variables.js \ @top_srcdir@/js/server/tests/aql-query-cache-noncluster.js \ @top_srcdir@/js/server/tests/aql-range.js \ @top_srcdir@/js/server/tests/aql-ranges.js \ @top_srcdir@/js/server/tests/aql-refaccess-attribute.js \ @top_srcdir@/js/server/tests/aql-refaccess-variable.js \ @top_srcdir@/js/server/tests/aql-relational.js \ @top_srcdir@/js/server/tests/aql-simple-attributes.js \ @top_srcdir@/js/server/tests/aql-skiplist-noncluster.js \ @top_srcdir@/js/server/tests/aql-subquery.js \ @top_srcdir@/js/server/tests/aql-ternary.js \ @top_srcdir@/js/server/tests/aql-variables.js \ @top_srcdir@/js/server/tests/aql-within-rectangle.js SHELL_SERVER_AQL_RANGES = \ @top_srcdir@/js/server/tests/aql-ranges-combined-01.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-02.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-03.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-04.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-05.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-06.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-07.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-08.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-09.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-10.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-11.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-12.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-13.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-14.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-15.js \ @top_srcdir@/js/server/tests/aql-ranges-combined-16.js .PHONY: unittests-shell-server-aql UNITTESTS_SERVER_AQL = $(addprefix --javascript.unit-tests ,$(SHELL_SERVER_AQL)) UNITTESTS_SERVER_AQL_RANGES = $(addprefix --javascript.unit-tests ,$(SHELL_SERVER_AQL_RANGES)) unittests-shell-server-aql: @echo @echo "================================================================================" @echo "<< SHELL SERVER TESTS (AQL) >>" @echo "================================================================================" @echo @rm -rf "$(VOCDIR)" @mkdir -p "$(VOCDIR)/databases" @$(VALGRIND) @builddir@/bin/arangod "$(VOCDIR)" $(SERVER_OPT) --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true --server.threads 2 $(UNITTESTS_SERVER_AQL) || test "x$(FORCE)" == "x1" @test "x$(SKIP_RANGES)" == "x1" || $(VALGRIND) @builddir@/bin/arangod "$(VOCDIR)" $(SERVER_OPT) --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true --server.threads 2 $(UNITTESTS_SERVER_AQL_RANGES) || test "x$(FORCE)" == "x1" @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief SHELL CLIENT TESTS ################################################################################ UNITTESTS_READONLY = $(addprefix --javascript.unit-tests ,@top_srcdir@/js/client/tests/shell-changeMode-noncluster-disabled.js) UNITTESTS_NO_READONLY = $(addprefix --javascript.unit-tests ,@top_srcdir@/js/client/tests/shell-noChangeMode-noncluster.js) .PHONY: unittests-shell-client-readonly unittests-shell-client-readonly: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint unix://$(VOCDIR)/arango.sock --server.disable-authentication true" PROTO=unix @echo @echo "================================================================================" @echo "<< SHELL CLIENT READONLY >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock $(UNITTESTS_READONLY) || test "x$(FORCE)" == "x1" sleep 2 kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true" PROTO=http $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) $(UNITTESTS_NO_READONLY) || test "x$(FORCE)" == "x1" sleep 2 kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo SHELL_CLIENT_ONLY = \ @top_srcdir@/js/client/tests/shell-download.js \ @top_srcdir@/js/client/tests/shell-endpoints.js \ @top_srcdir@/js/client/tests/shell-client.js \ @top_srcdir@/js/client/tests/shell-fm.js \ @top_srcdir@/js/client/tests/shell-request.js \ @top_srcdir@/js/client/tests/shell-require-canceled.js SHELL_CLIENT = $(SHELL_COMMON) $(SHELL_CLIENT_ONLY) .PHONY: unittests-shell-client UNITTESTS_CLIENT = $(addprefix --javascript.unit-tests ,$(SHELL_CLIENT)) unittests-shell-client: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true" PROTO=http @echo @echo "================================================================================" @echo "<< SHELL CLIENT TESTS >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) $(UNITTESTS_CLIENT) || test "x$(FORCE)" == "x1" sleep 2 kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief HTTP SERVER TESTS ################################################################################ .PHONY: unittests-http-server unittests-http-server: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true" PROTO=http @echo @echo "================================================================================" @echo "<< HTTP SERVER TESTS >>" @echo "================================================================================" @echo cd @top_srcdir@/UnitTests/HttpInterface && ARANGO_NO_LOG="$(NO_LOG)" ARANGO_SERVER="$(VOCHOST):$(VOCPORT)" ARANGO_SSL=0 ARANGO_USER="$(USERNAME)" ARANGO_PASSWORD="$(PASSWORD)" ./run-tests || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief SSL SERVER TESTS (same as HTTP SERVER TESTS but using SSL) ################################################################################ .PHONY: unittests-ssl-server unittests-ssl-server: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint ssl://$(VOCHOST):$(VOCPORT) --server.keyfile $(CERT_FILE) --server.disable-authentication true" PROTO=https @echo @echo "================================================================================" @echo "<< SSL SERVER TESTS (same as HTTP SERVER TESTS but using SSL) >>" @echo "================================================================================" @echo cd @top_srcdir@/UnitTests/HttpInterface && ARANGO_SERVER="$(VOCHOST):$(VOCPORT)" ARANGO_SSL=1 ARANGO_USER="$(USERNAME)" ARANGO_PASSWORD="$(PASSWORD)" ./run-tests || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief IMPORT TESTS ################################################################################ .PHONY: unittests-import unittests-import: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint unix://$(VOCDIR)/arango.sock --server.disable-authentication true" PROTO=unix @echo @echo "================================================================================" @echo "<< IMPORT TESTS >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --javascript.unit-tests @top_srcdir@/js/server/tests/import-setup.js || test "x$(FORCE)" == "x1" for i in 1 2 3 4 5; do $(VALGRIND) @builddir@/bin/arangoimp --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --file UnitTests/import-$$i.json --collection UnitTestsImportJson$$i --type json || test "x$(FORCE)" == "x1"; done for i in 1 2 3; do $(VALGRIND) @builddir@/bin/arangoimp --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --file UnitTests/import-$$i.csv --collection UnitTestsImportCsv$$i --create-collection true --type csv || test "x$(FORCE)" == "x1"; done for i in 4 5; do $(VALGRIND) @builddir@/bin/arangoimp --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --file UnitTests/import-$$i.csv --collection UnitTestsImportCsv$$i --create-collection true --type csv --backslash-escape true --separator ";" || test "x$(FORCE)" == "x1"; done for i in 1 2; do $(VALGRIND) @builddir@/bin/arangoimp --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --file UnitTests/import-$$i.tsv --collection UnitTestsImportTsv$$i --create-collection true --type tsv || test "x$(FORCE)" == "x1"; done $(VALGRIND) @builddir@/bin/arangoimp --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --file UnitTests/import-edges.json --collection UnitTestsImportEdge --create-collection false --type json || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --javascript.unit-tests @top_srcdir@/js/server/tests/import.js || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --javascript.unit-tests @top_srcdir@/js/server/tests/import-teardown.js || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @sleep 5 @echo ################################################################################ ### @brief REPLICATION TESTS ### ### starts two servers (master & slave) and checks for data drift ################################################################################ .PHONY: unittests-replication unittests-replication-server unittests-replication-http unittests-replication-sync unittests-replication-static unittests-replication-ongoing unittests-replication: unittests-replication-server unittests-replication-http unittests-replication-sync unittests-replication-static unittests-replication-ongoing unittests-replication-server: @echo @echo "================================================================================" @echo "<< REPLICATION SERVER TESTS >>" @echo "================================================================================" @echo @rm -rf "$(VOCDIR)" @mkdir -p "$(VOCDIR)/databases" $(VALGRIND) @builddir@/bin/arangod "$(VOCDIR)" $(SERVER_OPT) --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/common/tests/replication.js || test "x$(FORCE)" == "x1" @rm -rf "$(VOCDIR)" @echo unittests-replication-http: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true" PROTO=http @echo @echo "================================================================================" @echo "<< REPLICATION HTTP TESTS >>" @echo "================================================================================" @echo cd @top_srcdir@/UnitTests/HttpInterface && ARANGO_SERVER="$(VOCHOST):$(VOCPORT)" ARANGO_SSL=0 ARANGO_USER="$(USERNAME)" ARANGO_PASSWORD="$(PASSWORD)" ./run-tests-replication || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo unittests-replication-sync: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true" PROTO=http $(MAKE) start-slave PID=$(PID) SERVER_START="--server.endpoint tcp://$(SLAVEHOST):$(SLAVEPORT) --server.disable-authentication true" PROTO=http @echo @echo "================================================================================" @echo "<< REPLICATION SYNC TESTS >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.execute-string "require('@arangodb/users').save('replicator-user', 'replicator-password', true); require('@arangodb/users').reload();" $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/server/tests/replication-sync.js || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` kill `cat $(SLAVEPIDFILE)` while test -f $(PIDFILE); do sleep 1; done while test -f $(SLAVEPIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @rm -rf "$(SLAVEDIR)" @echo unittests-replication-static: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication false" PROTO=http $(MAKE) start-slave PID=$(PID) SERVER_START="--server.endpoint tcp://$(SLAVEHOST):$(SLAVEPORT) --server.disable-authentication true" PROTO=http @echo @echo "================================================================================" @echo "<< REPLICATION DATA TESTS >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.execute-string "require('@arangodb/users').save('replicator-user', 'replicator-password', true); require('@arangodb/users').reload();" $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/server/tests/replication-static.js || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` kill `cat $(SLAVEPIDFILE)` while test -f $(PIDFILE); do sleep 1; done while test -f $(SLAVEPIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @rm -rf "$(SLAVEDIR)" @echo unittests-replication-ongoing: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true" PROTO=http $(MAKE) start-slave PID=$(PID) SERVER_START="--server.endpoint tcp://$(SLAVEHOST):$(SLAVEPORT) --server.disable-authentication true" PROTO=http @echo @echo "================================================================================" @echo "<< REPLICATION DATA TESTS >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/server/tests/replication-ongoing.js || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` kill `cat $(SLAVEPIDFILE)` while test -f $(PIDFILE); do sleep 1; done while test -f $(SLAVEPIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @rm -rf "$(SLAVEDIR)" @echo ################################################################################ ### @brief UPGRADE TESTS ### ### invokes the --upgrade option twice and checks for errors ################################################################################ .PHONY: unittests-upgrade unittests-upgrade: @echo @echo "================================================================================" @echo "<< UPGRADE TESTS >>" @echo "================================================================================" @echo @rm -rf "$(VOCDIR)" @mkdir -p "$(VOCDIR)/databases" @sleep 2 $(VALGRIND) @builddir@/bin/arangod "$(VOCDIR)" $(SERVER_OPT) --console --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --upgrade || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangod "$(VOCDIR)" $(SERVER_OPT) --console --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --upgrade || test "x$(FORCE)" == "x1" @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief DATAFILE DEBUGGER TESTS ### ### this test just checks whether the dfdb starts. ### we will send an EOT signal to the dfdb process to stop it right away. ################################################################################ .PHONY: unittests-dfdb unittests-dfdb: @mkdir -p "$(VOCDIR)/databases" @test -d "$(VOCDIR)" echo -e "\x04" | ($(VALGRIND) @builddir@/bin/arangod -c etc/relative/arango-dfdb.conf --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --database.directory "$(VOCDIR)" || test "x$(FORCE)" == "x1") ################################################################################ ### @brief FOXX MANAGER TESTS ### ### this test runs a few actions in the foxx manager binary ################################################################################ .PHONY: unittests-foxx-manager unittests-foxx-manager: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication false" PROTO=http @echo @echo "================================================================================" @echo "<< FOXX MANAGER TESTS >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh -c etc/relative/foxx-manager.conf --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) update || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangosh -c etc/relative/foxx-manager.conf --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) search "itzpapalotl" || test "x$(FORCE)" == "x1" sleep 2 kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief ARANGODUMP TESTS ################################################################################ .PHONY: unittests-dump unittests-dump: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true" PROTO=http @echo @echo "================================================================================" @echo "<< ARANGODUMP TESTS >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/server/tests/dump-setup.js || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangodump --configuration none --server.database "UnitTestsDumpSrc" --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --output-directory "$(VOCDIR)/dump" || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangorestore --configuration none --create-database true --server.database "UnitTestsDumpDst" --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --input-directory "$(VOCDIR)/dump" || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.database "UnitTestsDumpDst" --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/server/tests/dump.js || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/server/tests/dump-teardown.js || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo .PHONY: unittests-dump-authentication unittests-dump-authentication: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication false" PROTO=http @echo @echo "================================================================================" @echo "<< ARANGODUMP TESTS >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/server/tests/dump-authentication-setup.js || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangodump --configuration none --server.database "UnitTestsDumpSrc" --server.username "foobaruser" --server.password "foobarpasswd" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --output-directory "$(VOCDIR)/dump" || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.execute-string 'var db = require("internal").db; db._dropDatabase("UnitTestsDumpSrc");' || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangorestore --configuration none --create-database true --server.database "UnitTestsDumpSrc" --server.username "foobaruser" --server.password "foobarpasswd" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --input-directory "$(VOCDIR)/dump" || test "x$(FORCE)" == "x1" $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.database "UnitTestsDumpSrc" --server.username "foobaruser" --server.password "foobarpasswd" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/server/tests/dump-authentication.js || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief ARANGOB TESTS ################################################################################ .PHONY: unittests-arangob unittests-arangob: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint unix://$(VOCDIR)/arango.sock --server.disable-authentication true" PROTO=unix @echo @echo "================================================================================" @echo "<< ARANGOB TESTS >>" @echo "================================================================================" @echo @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 10000 --concurrency 2 --test version --keep-alive false || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 10000 --concurrency 2 --test version --async true || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 20000 --concurrency 1 --test version --async true || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 100000 --concurrency 2 --test shapes --batch-size 16 --complexity 2 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 100000 --concurrency 2 --test shapes-append --batch-size 16 --complexity 4 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 100000 --concurrency 2 --test random-shapes --batch-size 16 --complexity 2 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 1000 --batch-size 16 --concurrency 2 --test version || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 100 --batch-size 0 --concurrency 1 --test version || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 100 --batch-size 10 --concurrency 2 --test document --complexity 1 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 2000 --concurrency 2 --test crud --complexity 1 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 4000 --concurrency 2 --test crud-append --complexity 4 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 4000 --concurrency 2 --test edge --complexity 4 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 5000 --concurrency 2 --test hash --complexity 1 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 5000 --concurrency 2 --test skiplist --complexity 1 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 500 --concurrency 3 --test aqltrx --complexity 1 || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 100 --concurrency 3 --test counttrx || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 500 --concurrency 3 --test multitrx || test "x$(FORCE)" == "x1" @builddir@/bin/arangob --configuration none --quiet --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint unix://$(VOCDIR)/arango.sock --requests 500 --concurrency 3 --test import-document --complexity 500 || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo ################################################################################ ### @brief AUTHENTICATION ################################################################################ .PHONY: unittests-authentication unittests-authentication: $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication false" PROTO=http @echo @echo "================================================================================" @echo "<< AUTHENTICATION TESTS >>" @echo "================================================================================" @echo $(VALGRIND) @builddir@/bin/arangosh $(CLIENT_OPT) --server.username "$(USERNAME)" --server.password "$(PASSWORD)" --server.endpoint tcp://$(VOCHOST):$(VOCPORT) --javascript.unit-tests @top_srcdir@/js/client/tests/auth.js || test "x$(FORCE)" == "x1" sleep 2 kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" @echo .PHONY: unittests-authentication-parameters unittests-authentication-parameters: @echo @echo "================================================================================" @echo "<< AUTHENTICATION PARAMETER TESTS >>" @echo "================================================================================" @echo ################################################################################ ### @brief FULL AUTHENTICATION ################################################################################ $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication false --server.authenticate-system-only false" PROTO=http $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_api/" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_api" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_api/version" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_admin/html" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_admin/html/" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/test" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/the-big-fat-fox" EXPECTED="401" || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" ################################################################################ ### @brief AUTHENTICATION FOR /_ ONLY ################################################################################ $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication false --server.authenticate-system-only true" PROTO=http $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_api/" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_api" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_api/version" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_admin/html" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_admin/html/" EXPECTED="401" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/test" EXPECTED="404" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/the-big-fat-fox" EXPECTED="404" || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" ################################################################################ ### @brief NO AUTHENTICATION ################################################################################ $(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-authentication true --server.authenticate-system-only true" PROTO=http $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_api/" EXPECTED="404" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_api" EXPECTED="404" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_api/version" EXPECTED="200" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_admin/html" EXPECTED="301" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/_admin/html/" EXPECTED="301" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/test" EXPECTED="404" || test "x$(FORCE)" == "x1" $(MAKE) curl-request-get CURL_PROTO="http" CURL_HOST="$(VOCHOST)" CURL_PORT="$(VOCPORT)" CURL_URL="/the-big-fat-fox" EXPECTED="404" || test "x$(FORCE)" == "x1" kill `cat $(PIDFILE)` while test -f $(PIDFILE); do sleep 1; done @if [ "$(VALGRIND)" != "" ]; then sleep 60; fi @rm -rf "$(VOCDIR)" ################################################################################ ### @brief CPPCHECK ################################################################################ .PHONY: cppcheck cppcheck: @rm -f cppcheck.log cppcheck.log && echo -n "" > cppcheck.tmp for platform in unix32 unix64; do cppcheck -j4 --std=c++11 --enable=style --force --platform=$$platform --suppress="*:lib/JsonParser/json-parser.cpp" --suppress="*:lib/V8/v8-json.cpp" --suppress="*:arangod/Aql/grammar.cpp" --suppress="*:arangod/Aql/tokens.cpp" arangod/ arangosh/ lib/ 1> /dev/null 2>> cppcheck.tmp; done @sort cppcheck.tmp | uniq > cppcheck.log @rm cppcheck.tmp @cat cppcheck.log ## ----------------------------------------------------------------------------- ## --SECTION-- END-OF-FILE ## ----------------------------------------------------------------------------- ## Local Variables: ## mode: outline-minor ## outline-regexp: "^\\(### @brief\\|## --SECTION--\\|# -\\*- \\)" ## End: