diff options
author | Adam Kocoloski <kocolosk@apache.org> | 2021-11-12 14:15:48 -0500 |
---|---|---|
committer | Adam Kocoloski <kocolosk@apache.org> | 2021-11-15 12:58:33 -0500 |
commit | b765d195bdf73a242a66160b34678e98b0758175 (patch) | |
tree | f7a0add3039925554f0c0a82bb775e0dd3ef4763 | |
parent | 8aed406e69a4fec69a5514b1c8e446819a612dab (diff) | |
download | couchdb-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-- | Makefile | 44 | ||||
-rw-r--r-- | test/elixir/test/config/test-config.ini | 8 | ||||
-rw-r--r-- | test/elixir/test/replication_test.exs | 7 |
3 files changed, 18 insertions, 41 deletions
@@ -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" |