summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Kocoloski <kocolosk@apache.org>2021-11-12 14:15:48 -0500
committerAdam Kocoloski <kocolosk@apache.org>2021-11-15 12:58:33 -0500
commitb765d195bdf73a242a66160b34678e98b0758175 (patch)
treef7a0add3039925554f0c0a82bb775e0dd3ef4763
parent8aed406e69a4fec69a5514b1c8e446819a612dab (diff)
downloadcouchdb-b765d195bdf73a242a66160b34678e98b0758175.tar.gz
Consolidate ExUnit integration test configuration
Two main pieces of work here: 1) Consoidate elixir / elixir-only / elixir-suite into two targets: - elixir-integration, which only runs ExUnit integration tests - elixir-suite, which depends on elixir-integration and also calls format + credo This preserves the flexibility of the previous targets while reducing code duplication and removing some obsolete configurations 2) Limit the number of places where we define test configurations Previously we were relying on dev/run to inject config entries in addition to specifiying a .ini file on the command-line. We sometimes also write config settings in the test definitions themselves. This is at least an initial attempt to just define the config settings in one place.
-rw-r--r--Makefile44
-rw-r--r--test/elixir/test/config/test-config.ini8
-rw-r--r--test/elixir/test/replication_test.exs7
3 files changed, 18 insertions, 41 deletions
diff --git a/Makefile b/Makefile
index 05c2c0ca7..cb81e1729 100644
--- a/Makefile
+++ b/Makefile
@@ -233,27 +233,13 @@ python-black-update: .venv/bin/black
--exclude="build/|buck-out/|dist/|_build/|\.git/|\.hg/|\.mypy_cache/|\.nox/|\.tox/|\.venv/|src/erlfmt|src/rebar/pr2relnotes.py|src/fauxton" \
build-aux/*.py dev/run dev/format_*.py src/mango/test/*.py src/docs/src/conf.py src/docs/ext/*.py .
-.PHONY: elixir
-elixir: export MIX_ENV=integration
-elixir: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-elixir: elixir-init elixir-check-formatted elixir-credo devclean
- @dev/run "$(TEST_OPTS)" \
- -a adm:pass \
- -n 1 \
- --enable-erlang-views \
- --locald-config test/elixir/test/config/test-config.ini \
- --erlang-config rel/files/eunit.config \
- --no-eval 'mix test --trace --exclude pending $(EXUNIT_OPTS)'
-
-.PHONY: elixir-only
-elixir-only: devclean
- @dev/run "$(TEST_OPTS)" \
- -a adm:pass \
- -n 1 \
- --enable-erlang-views \
+.PHONY: elixir-integration
+elixir-integration: export MIX_ENV=integration
+elixir-integration: devclean
+ @dev/run -n 1 -q -a adm:pass \
--locald-config test/elixir/test/config/test-config.ini \
--erlang-config rel/files/eunit.config \
- --no-eval 'mix test --trace --exclude pending $(EXUNIT_OPTS)'
+ --no-eval 'mix test --trace --include test/elixir/test/config/suite.elixir --exclude test/elixir/test/config/skip.elixir $(EXUNIT_OPTS)'
.PHONY: elixir-init
elixir-init: MIX_ENV=test
@@ -262,26 +248,16 @@ elixir-init: config.erl
.PHONY: elixir-suite
elixir-suite: export MIX_ENV=integration
-elixir-suite: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-elixir-suite: elixir-init elixir-check-formatted elixir-credo devclean
- @dev/run -n 1 -q -a adm:pass \
- --enable-erlang-views \
- --no-join \
- --locald-config test/elixir/test/config/test-config.ini \
- --erlang-config rel/files/eunit.config \
- --no-eval 'mix test --trace --include test/elixir/test/config/suite.elixir --exclude test/elixir/test/config/skip.elixir'
+elixir-suite: elixir-init elixir-check-formatted elixir-credo elixir-integration
-.PHONY: buggify-elixir-suite
-buggify-elixir-suite: export MIX_ENV=integration
-buggify-elixir-suite: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-buggify-elixir-suite: elixir-init devclean
+.PHONY: buggify-elixir-integration
+buggify-elixir-integration: export MIX_ENV=integration
+buggify-elixir-integration: elixir-init devclean
@dev/run -n 1 -q -a adm:pass \
- --enable-erlang-views \
- --no-join \
--locald-config test/elixir/test/config/test-config.ini \
--locald-config test/elixir/test/config/buggify-test-config.ini \
--erlang-config rel/files/buggify-eunit.config \
- --no-eval 'mix test --trace --include test/elixir/test/config/suite.elixir --exclude test/elixir/test/config/skip.elixir'
+ --no-eval 'mix test --trace --include test/elixir/test/config/suite.elixir --exclude test/elixir/test/config/skip.elixir $(EXUNIT_OPTS)'
.PHONY: elixir-check-formatted
elixir-check-formatted: elixir-init
diff --git a/test/elixir/test/config/test-config.ini b/test/elixir/test/config/test-config.ini
index 1980139d1..ab96390ce 100644
--- a/test/elixir/test/config/test-config.ini
+++ b/test/elixir/test/config/test-config.ini
@@ -1,2 +1,10 @@
[chttpd]
authentication_handlers = {chttpd_auth, jwt_authentication_handler}, {chttpd_auth, proxy_authentication_handler}, {chttpd_auth, cookie_authentication_handler}, {chttpd_auth, default_authentication_handler}
+
+[replicator]
+; disable jitter to reduce test run times
+startup_jitter = 0
+stats_update_interval_sec = 0
+
+[native_query_servers]
+erlang = {couch_native_process, start_link, []}
diff --git a/test/elixir/test/replication_test.exs b/test/elixir/test/replication_test.exs
index 0e72683b2..3ec857316 100644
--- a/test/elixir/test/replication_test.exs
+++ b/test/elixir/test/replication_test.exs
@@ -14,13 +14,6 @@ defmodule ReplicationTest do
{"remote-to-remote", "http://127.0.0.1:15984/", "http://127.0.0.1:15984/"}
]
- # This should probably go into `make elixir` like what
- # happens for JavaScript tests.
- @moduletag config: [
- {"replicator", "startup_jitter", "0"},
- {"replicator", "stats_update_interval_sec", "0"}
- ]
-
test "source database not found with host" do
name = random_db_name()
src_url = "http://127.0.0.1:15984/" <> name <> "_src"