diff options
author | Nick Vatamaniuc <vatamane@gmail.com> | 2022-09-28 14:18:42 -0400 |
---|---|---|
committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2022-09-28 18:47:33 -0400 |
commit | 1407a51ee6898c39eeb551a9c3cd9d69751e7baa (patch) | |
tree | 75208ccc7ade19c947e2325bf7c74feb21fb8a46 | |
parent | ec5d19b4b460839fb6c1f23c098f5ceb9b1ca304 (diff) | |
download | couchdb-1407a51ee6898c39eeb551a9c3cd9d69751e7baa.tar.gz |
Clean up unit tests
* Centralize the definition of TDEF* macros
* Don't include eunit bits in the fabric at the top, instead use TEST specific
sections
* Remove some unused include files, as reported by erlang_ls + emacs
64 files changed, 286 insertions, 426 deletions
diff --git a/rebar.config.script b/rebar.config.script index 53e396597..bfae0c85f 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -141,7 +141,7 @@ SubDirs = [ DepDescs = [ %% Independent Apps -{config, "config", {tag, "2.2.0"}}, +{config, "config", {tag, "2.2.1"}}, {b64url, "b64url", {tag, "1.0.3"}}, {ets_lru, "ets-lru", {tag, "1.1.0"}}, {khash, "khash", {tag, "1.1.0"}}, diff --git a/src/chttpd/test/eunit/chttpd_auth_hash_algorithms_tests.erl b/src/chttpd/test/eunit/chttpd_auth_hash_algorithms_tests.erl index c78427d24..52f4f9e8b 100644 --- a/src/chttpd/test/eunit/chttpd_auth_hash_algorithms_tests.erl +++ b/src/chttpd/test/eunit/chttpd_auth_hash_algorithms_tests.erl @@ -14,7 +14,6 @@ -include_lib("eunit/include/eunit.hrl"). -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include_lib("chttpd/test/eunit/chttpd_test.hrl"). -define(ADM_USER, "adm_user"). -define(ADM_PASS, "adm_pass"). diff --git a/src/chttpd/test/eunit/chttpd_csp_tests.erl b/src/chttpd/test/eunit/chttpd_csp_tests.erl index c4a9e930e..09a06da04 100644 --- a/src/chttpd/test/eunit/chttpd_csp_tests.erl +++ b/src/chttpd/test/eunit/chttpd_csp_tests.erl @@ -31,12 +31,6 @@ -define(SHOW1, "show1"). -define(LIST1, "list1"). -define(SALT, <<"01234567890123456789012345678901">>). --define(TDEF(Name), {atom_to_list(Name), fun Name/1}). --define(TDEF(Name, Timeout), {atom_to_list(Name), Timeout, fun Name/1}). --define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end). --define(TDEF_FE(Name, Timeout), fun(Arg) -> - {atom_to_list(Name), {timeout, Timeout, ?_test(Name(Arg))}} -end). csp_test_() -> { diff --git a/src/chttpd/test/eunit/chttpd_dbs_info_test.erl b/src/chttpd/test/eunit/chttpd_dbs_info_test.erl index cb386d63f..ee4b2687f 100644 --- a/src/chttpd/test/eunit/chttpd_dbs_info_test.erl +++ b/src/chttpd/test/eunit/chttpd_dbs_info_test.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("chttpd_test.hrl"). -define(USER, "chttpd_db_test_admin"). -define(PASS, "pass"). diff --git a/src/chttpd/test/eunit/chttpd_revs_diff_tests.erl b/src/chttpd/test/eunit/chttpd_revs_diff_tests.erl index 7cdb81fa2..910c541cc 100644 --- a/src/chttpd/test/eunit/chttpd_revs_diff_tests.erl +++ b/src/chttpd/test/eunit/chttpd_revs_diff_tests.erl @@ -15,8 +15,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end). - -define(USER, "chttpd_revs_diff_test_admin"). -define(PASS, "pass"). -define(AUTH, {basic_auth, {?USER, ?PASS}}). diff --git a/src/chttpd/test/eunit/chttpd_session_tests.erl b/src/chttpd/test/eunit/chttpd_session_tests.erl index e00406fe1..0707090b0 100644 --- a/src/chttpd/test/eunit/chttpd_session_tests.erl +++ b/src/chttpd/test/eunit/chttpd_session_tests.erl @@ -13,7 +13,6 @@ -module(chttpd_session_tests). -include_lib("couch/include/couch_eunit.hrl"). --include("chttpd_test.hrl"). -define(USER, "chttpd_test_admin"). -define(PASS, "pass"). diff --git a/src/chttpd/test/eunit/chttpd_test.hrl b/src/chttpd/test/eunit/chttpd_test.hrl deleted file mode 100644 index 6db97ec2b..000000000 --- a/src/chttpd/test/eunit/chttpd_test.hrl +++ /dev/null @@ -1,35 +0,0 @@ -% Licensed under the Apache License, Version 2.0 (the "License"); you may not -% use this file except in compliance with the License. You may obtain a copy of -% the License at -% -% http://www.apache.org/licenses/LICENSE-2.0 -% -% Unless required by applicable law or agreed to in writing, software -% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -% License for the specific language governing permissions and limitations under -% the License. - - -% Borrowed from fabric2_test.hrl - -% Some test modules do not use with, so squash the unused fun compiler warning --compile([{nowarn_unused_function, [{with, 1}]}]). - - --define(TDEF(Name), {atom_to_list(Name), fun Name/1}). --define(TDEF(Name, Timeout), {atom_to_list(Name), Timeout, fun Name/1}). - --define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end). --define(TDEF_FE(Name, Timeout), fun(Arg) -> {atom_to_list(Name), {timeout, Timeout, ?_test(Name(Arg))}} end). - - -with(Tests) -> - fun(ArgsTuple) -> - lists:map(fun - ({Name, Fun}) -> - {Name, ?_test(Fun(ArgsTuple))}; - ({Name, Timeout, Fun}) -> - {Name, {timeout, Timeout, ?_test(Fun(ArgsTuple))}} - end, Tests) - end. diff --git a/src/chttpd/test/eunit/chttpd_util_test.erl b/src/chttpd/test/eunit/chttpd_util_test.erl index 69fb60156..c381dac6e 100644 --- a/src/chttpd/test/eunit/chttpd_util_test.erl +++ b/src/chttpd/test/eunit/chttpd_util_test.erl @@ -13,7 +13,6 @@ -module(chttpd_util_test). -include_lib("couch/include/couch_eunit.hrl"). --include("chttpd_test.hrl"). setup() -> ok = lists:foreach( diff --git a/src/couch/include/couch_eunit.hrl b/src/couch/include/couch_eunit.hrl index 188524893..3ffa0506f 100644 --- a/src/couch/include/couch_eunit.hrl +++ b/src/couch/include/couch_eunit.hrl @@ -12,6 +12,9 @@ -include_lib("eunit/include/eunit.hrl"). +% Some test modules do not use with, so squash the unused fun compiler warning +-compile([{nowarn_unused_function, [{with, 1}]}]). + -define(BUILDDIR, fun() -> case os:getenv("BUILDDIR") of @@ -75,3 +78,24 @@ end)(Expect))). -endif. -define(_assertEquiv(Expect, Expr), ?_test(?assertEquiv(Expect, Expr))). + + +-ifndef(TDEF). +-define(TDEF(Name), {atom_to_list(Name), fun Name/1}). +-define(TDEF(Name, Timeout), {atom_to_list(Name), Timeout, fun Name/1}). +-endif. + +-ifndef(TDEF_FE). +-define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end). +-define(TDEF_FE(Name, Timeout), fun(Arg) -> {atom_to_list(Name), {timeout, Timeout, ?_test(Name(Arg))}} end). +-endif. + +with(Tests) -> + fun(ArgsTuple) -> + lists:map(fun + ({Name, Fun}) -> + {Name, ?_test(Fun(ArgsTuple))}; + ({Name, Timeout, Fun}) -> + {Name, {timeout, Timeout, ?_test(Fun(ArgsTuple))}} + end, Tests) + end. diff --git a/src/couch/src/test_util.erl b/src/couch/src/test_util.erl index 165a5be2f..345359794 100644 --- a/src/couch/src/test_util.erl +++ b/src/couch/src/test_util.erl @@ -12,11 +12,6 @@ -module(test_util). --include_lib("couch/include/couch_eunit.hrl"). --include_lib("couch/include/couch_db.hrl"). --include("couch_db_int.hrl"). --include("couch_bt_engine.hrl"). - -export([init_code_path/0]). -export([source_file/1, build_file/1]). -export([revtree_generate/4, revtree_get_revs/1, random_rev/0]). @@ -42,6 +37,11 @@ -export([shuffle/1]). +-include_lib("couch/include/couch_eunit.hrl"). +-include_lib("couch/include/couch_db.hrl"). +-include("couch_db_int.hrl"). +-include("couch_bt_engine.hrl"). + -record(test_context, {mocked = [], started = [], module}). -define(DEFAULT_APPS, [inets, ibrowse, ssl, config, couch_epi, couch_event, couch]). diff --git a/src/couch/test/eunit/couch_flags_tests.erl b/src/couch/test/eunit/couch_flags_tests.erl index e3635e9f2..57775eac4 100644 --- a/src/couch/test/eunit/couch_flags_tests.erl +++ b/src/couch/test/eunit/couch_flags_tests.erl @@ -12,8 +12,6 @@ -module(couch_flags_tests). --include_lib("couch/include/couch_eunit.hrl"). - %% couch_epi_plugin behaviour callbacks -export([ app/0, @@ -29,6 +27,8 @@ rules/0 ]). +-include_lib("couch/include/couch_eunit.hrl"). + app() -> test_app. diff --git a/src/couch/test/eunit/couchdb_open_doc_revs_tests.erl b/src/couch/test/eunit/couchdb_open_doc_revs_tests.erl index 78d9c3182..07209cd73 100644 --- a/src/couch/test/eunit/couchdb_open_doc_revs_tests.erl +++ b/src/couch/test/eunit/couchdb_open_doc_revs_tests.erl @@ -15,8 +15,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end). - open_doc_revs_test_() -> { foreach, diff --git a/src/couch/test/eunit/test_web.erl b/src/couch/test/eunit/test_web.erl index 8998dad52..25fe7092b 100644 --- a/src/couch/test/eunit/test_web.erl +++ b/src/couch/test/eunit/test_web.erl @@ -15,12 +15,12 @@ -compile(tuple_calls). --include_lib("couch/include/couch_eunit.hrl"). - -export([start_link/0, stop/0, loop/1, get_port/0, set_assert/1, check_last/0]). -export([init/1, terminate/2, code_change/3]). -export([handle_call/3, handle_cast/2, handle_info/2]). +-include_lib("couch/include/couch_eunit.hrl"). + -define(SERVER, test_web_server). -define(HANDLER, test_web_handler). -define(DELAY, 500). diff --git a/src/couch_epi/test/eunit/couch_epi_tests.erl b/src/couch_epi/test/eunit/couch_epi_tests.erl index 796af1346..3c3503345 100644 --- a/src/couch_epi/test/eunit/couch_epi_tests.erl +++ b/src/couch_epi/test/eunit/couch_epi_tests.erl @@ -12,13 +12,13 @@ -module(couch_epi_tests). +-export([notify_cb/4, save/3, get/2]). + -include_lib("couch/include/couch_eunit.hrl"). -define(DATA_FILE1, ?ABS_PATH("test/eunit/fixtures/app_data1.cfg")). -define(DATA_FILE2, ?ABS_PATH("test/eunit/fixtures/app_data2.cfg")). --export([notify_cb/4, save/3, get/2]). - -record(ctx, {file, handle, pid, kv, key, modules = []}). -define(TIMEOUT, 5000). diff --git a/src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl b/src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl index 65828db62..547741c5f 100644 --- a/src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl +++ b/src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl @@ -14,11 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). --import(couch_prometheus_util, [ - to_prom/3, - to_prom_summary/2 -]). - couch_prometheus_util_test_() -> [ ?_assertEqual( @@ -67,9 +62,9 @@ couch_prometheus_util_test_() -> ]. test_to_prom_output(Metric, Type, Val) -> - Out = to_prom(Metric, Type, Val), + Out = couch_prometheus_util:to_prom(Metric, Type, Val), lists:nth(2, Out). test_to_prom_sum_output(Metric, Info) -> - Out = to_prom_summary(Metric, Info), + Out = couch_prometheus_util:to_prom_summary(Metric, Info), lists:nth(3, Out). diff --git a/src/couch_replicator/src/couch_replicator_ids.erl b/src/couch_replicator/src/couch_replicator_ids.erl index 9f4581afc..939070b95 100644 --- a/src/couch_replicator/src/couch_replicator_ids.erl +++ b/src/couch_replicator/src/couch_replicator_ids.erl @@ -178,8 +178,7 @@ get_non_default_port(_Schema, Port) -> -ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). --include_lib("couch_replicator/test/eunit/couch_replicator_test.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). winning_revs_id_test_() -> { diff --git a/src/couch_replicator/src/couch_replicator_share.erl b/src/couch_replicator/src/couch_replicator_share.erl index 8c9fa029a..fb7b2fcfc 100644 --- a/src/couch_replicator/src/couch_replicator_share.erl +++ b/src/couch_replicator/src/couch_replicator_share.erl @@ -333,7 +333,6 @@ float_val(Str, Default) when is_list(Str) -> -include_lib("eunit/include/eunit.hrl"). -include_lib("couch/include/couch_eunit.hrl"). --include_lib("couch_replicator/test/eunit/couch_replicator_test.hrl"). -define(DB1, <<"db1">>). -define(DB2, <<"db2">>). diff --git a/src/couch_replicator/test/eunit/couch_replicator_attachments_too_large.erl b/src/couch_replicator/test/eunit/couch_replicator_attachments_too_large.erl index 4c4ff9c14..0b4360378 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_attachments_too_large.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_attachments_too_large.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). attachment_too_large_replication_test_() -> { diff --git a/src/couch_replicator/test/eunit/couch_replicator_bulk_get_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_bulk_get_tests.erl index 52c623c85..2ecd0f4ee 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_bulk_get_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_bulk_get_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). -define(DOC_COUNT, 10). diff --git a/src/couch_replicator/test/eunit/couch_replicator_compact_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_compact_tests.erl index 373bd02ba..2d5ef96b1 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_compact_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_compact_tests.erl @@ -15,7 +15,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). -include_lib("couch_replicator/src/couch_replicator.hrl"). --include("couch_replicator_test.hrl"). -define(ATTFILE, filename:join([?FIXTURESDIR, "logo.png"])). -define(DELAY, 500). diff --git a/src/couch_replicator/test/eunit/couch_replicator_connection_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_connection_tests.erl index e8c90d02a..aa75bd746 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_connection_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_connection_tests.erl @@ -13,7 +13,6 @@ -module(couch_replicator_connection_tests). -include_lib("couch/include/couch_eunit.hrl"). --include("couch_replicator_test.hrl"). setup() -> Host = config:get("httpd", "bind_address", "127.0.0.1"), diff --git a/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl index fabb6480e..b6e361c8f 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_create_target_with_options_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). create_target_with_options_replication_test_() -> { diff --git a/src/couch_replicator/test/eunit/couch_replicator_error_reporting_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_error_reporting_tests.erl index 3f454b002..6bdb4ecb2 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_error_reporting_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_error_reporting_tests.erl @@ -15,7 +15,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). -include_lib("couch_replicator/src/couch_replicator.hrl"). --include("couch_replicator_test.hrl"). error_reporting_test_() -> { diff --git a/src/couch_replicator/test/eunit/couch_replicator_filtered_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_filtered_tests.erl index 267c4fab6..d99062b2b 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_filtered_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_filtered_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). -define(DDOC, {[ diff --git a/src/couch_replicator/test/eunit/couch_replicator_httpc_pool_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_httpc_pool_tests.erl index 5fce5e886..512d02037 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_httpc_pool_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_httpc_pool_tests.erl @@ -13,7 +13,6 @@ -module(couch_replicator_httpc_pool_tests). -include_lib("couch/include/couch_eunit.hrl"). --include("couch_replicator_test.hrl"). -define(TIMEOUT, 1000). diff --git a/src/couch_replicator/test/eunit/couch_replicator_id_too_long_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_id_too_long_tests.erl index 08454bd71..4d2095768 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_id_too_long_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_id_too_long_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). id_too_long_replication_test_() -> { diff --git a/src/couch_replicator/test/eunit/couch_replicator_large_atts_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_large_atts_tests.erl index 8190c7205..e60e3be5d 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_large_atts_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_large_atts_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). -define(ATT_SIZE_1, 2 * 1024 * 1024). -define(ATT_SIZE_2, round(6.6 * 1024 * 1024)). diff --git a/src/couch_replicator/test/eunit/couch_replicator_many_leaves_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_many_leaves_tests.erl index aa5752650..2ede0d47e 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_many_leaves_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_many_leaves_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). -define(DOCS_CONFLICTS, [ {<<"doc1">>, 10}, diff --git a/src/couch_replicator/test/eunit/couch_replicator_missing_stubs_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_missing_stubs_tests.erl index b0e205729..551de3f4c 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_missing_stubs_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_missing_stubs_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). -define(REVS_LIMIT, 3). -define(TIMEOUT_EUNIT, 30). diff --git a/src/couch_replicator/test/eunit/couch_replicator_proxy_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_proxy_tests.erl index 184d81aaf..3468cda73 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_proxy_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_proxy_tests.erl @@ -15,7 +15,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch_replicator/src/couch_replicator.hrl"). -include_lib("couch_replicator/include/couch_replicator_api_wrap.hrl"). --include("couch_replicator_test.hrl"). setup() -> ok. diff --git a/src/couch_replicator/test/eunit/couch_replicator_rate_limiter_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_rate_limiter_tests.erl index 0b7c48b62..acb931b9b 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_rate_limiter_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_rate_limiter_tests.erl @@ -1,7 +1,6 @@ -module(couch_replicator_rate_limiter_tests). -include_lib("couch/include/couch_eunit.hrl"). --include("couch_replicator_test.hrl"). rate_limiter_test_() -> { diff --git a/src/couch_replicator/test/eunit/couch_replicator_retain_stats_between_job_runs.erl b/src/couch_replicator/test/eunit/couch_replicator_retain_stats_between_job_runs.erl index d1116e8b0..04c665af5 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_retain_stats_between_job_runs.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_retain_stats_between_job_runs.erl @@ -15,7 +15,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). -include_lib("couch_replicator/src/couch_replicator.hrl"). --include("couch_replicator_test.hrl"). -define(DELAY, 500). -define(TIMEOUT, 60000). diff --git a/src/couch_replicator/test/eunit/couch_replicator_revs_diff_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_revs_diff_tests.erl index 75f01b20a..ccdfb506c 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_revs_diff_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_revs_diff_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). -define(DOC_COUNT, 100). -define(BATCH_SIZE, 5). diff --git a/src/couch_replicator/test/eunit/couch_replicator_selector_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_selector_tests.erl index 31c5dc93c..d5566a38f 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_selector_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_selector_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). selector_replication_test_() -> { diff --git a/src/couch_replicator/test/eunit/couch_replicator_small_max_request_size_target.erl b/src/couch_replicator/test/eunit/couch_replicator_small_max_request_size_target.erl index 4a905850d..c7e89e8be 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_small_max_request_size_target.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_small_max_request_size_target.erl @@ -2,7 +2,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). -define(TIMEOUT_EUNIT, 360). diff --git a/src/couch_replicator/test/eunit/couch_replicator_test.hrl b/src/couch_replicator/test/eunit/couch_replicator_test.hrl deleted file mode 100644 index 6db97ec2b..000000000 --- a/src/couch_replicator/test/eunit/couch_replicator_test.hrl +++ /dev/null @@ -1,35 +0,0 @@ -% Licensed under the Apache License, Version 2.0 (the "License"); you may not -% use this file except in compliance with the License. You may obtain a copy of -% the License at -% -% http://www.apache.org/licenses/LICENSE-2.0 -% -% Unless required by applicable law or agreed to in writing, software -% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -% License for the specific language governing permissions and limitations under -% the License. - - -% Borrowed from fabric2_test.hrl - -% Some test modules do not use with, so squash the unused fun compiler warning --compile([{nowarn_unused_function, [{with, 1}]}]). - - --define(TDEF(Name), {atom_to_list(Name), fun Name/1}). --define(TDEF(Name, Timeout), {atom_to_list(Name), Timeout, fun Name/1}). - --define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end). --define(TDEF_FE(Name, Timeout), fun(Arg) -> {atom_to_list(Name), {timeout, Timeout, ?_test(Name(Arg))}} end). - - -with(Tests) -> - fun(ArgsTuple) -> - lists:map(fun - ({Name, Fun}) -> - {Name, ?_test(Fun(ArgsTuple))}; - ({Name, Timeout, Fun}) -> - {Name, {timeout, Timeout, ?_test(Fun(ArgsTuple))}} - end, Tests) - end. diff --git a/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl b/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl index 16423e85c..f30bdb1cd 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_test_helper.erl @@ -1,12 +1,5 @@ -module(couch_replicator_test_helper). --include_lib("couch/include/couch_eunit.hrl"). --include_lib("couch/include/couch_db.hrl"). --include_lib("couch_replicator/src/couch_replicator.hrl"). - --define(USERNAME, "rep_test_user"). --define(PASSWORD, "rep_test_pass"). - -export([ cluster_compare_dbs/2, cluster_compare_dbs/3, @@ -23,6 +16,13 @@ teardown_db/1 ]). +-include_lib("couch/include/couch_eunit.hrl"). +-include_lib("couch/include/couch_db.hrl"). +-include_lib("couch_replicator/src/couch_replicator.hrl"). + +-define(USERNAME, "rep_test_user"). +-define(PASSWORD, "rep_test_pass"). + cluster_compare_dbs(Source, Target) -> cluster_compare_dbs(Source, Target, []). diff --git a/src/couch_replicator/test/eunit/couch_replicator_use_checkpoints_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_use_checkpoints_tests.erl index 193855a3d..9d6dd1ec0 100644 --- a/src/couch_replicator/test/eunit/couch_replicator_use_checkpoints_tests.erl +++ b/src/couch_replicator/test/eunit/couch_replicator_use_checkpoints_tests.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include("couch_replicator_test.hrl"). -define(DOCS_COUNT, 100). -define(TIMEOUT_EUNIT, 30). diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_basic_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_basic_test.erl index 54c8c585b..33175965c 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_basic_test.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_basic_test.erl @@ -17,7 +17,7 @@ ]). -include_lib("couch/include/couch_db.hrl"). --include_lib("eunit/include/eunit.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). -include("ddoc_cache_test.hrl"). recover(DbName) -> @@ -37,14 +37,14 @@ check_basic_test_() -> setup, fun start_couch/0, fun stop_couch/1, - ddoc_cache_tutil:with([ - {"cache_ddoc", fun cache_ddoc/1}, - {"cache_ddoc_rev", fun cache_ddoc_rev/1}, - {"cache_vdu", fun cache_vdu/1}, - {"cache_custom", fun cache_custom/1}, - {"cache_ddoc_refresher_unchanged", fun cache_ddoc_refresher_unchanged/1}, - {"dont_cache_not_found", fun dont_cache_not_found/1}, - {"deprecated_api_works", fun deprecated_api_works/1} + with([ + ?TDEF(cache_ddoc), + ?TDEF(cache_ddoc_rev), + ?TDEF(cache_vdu), + ?TDEF(cache_custom), + ?TDEF(cache_ddoc_refresher_unchanged), + ?TDEF(dont_cache_not_found), + ?TDEF(deprecated_api_works) ]) }. diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_disabled_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_disabled_test.erl index d6538e4a3..da7243ef0 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_disabled_test.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_disabled_test.erl @@ -13,7 +13,7 @@ -module(ddoc_cache_disabled_test). -include_lib("couch/include/couch_db.hrl"). --include_lib("eunit/include/eunit.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). -include("ddoc_cache_test.hrl"). start_couch() -> @@ -26,10 +26,10 @@ check_disabled_test_() -> setup, fun start_couch/0, fun ddoc_cache_tutil:stop_couch/1, - ddoc_cache_tutil:with([ - {"resp_ok", fun resp_ok/1}, - {"resp_not_found", fun resp_not_found/1}, - {"check_effectively_disabled", fun check_effectively_disabled/1} + with([ + ?TDEF(resp_ok), + ?TDEF(resp_not_found), + ?TDEF(check_effectively_disabled) ]) }. diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_entry_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_entry_test.erl index fdba0f030..b46815a1e 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_entry_test.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_entry_test.erl @@ -16,8 +16,7 @@ recover/1 ]). --include_lib("couch/include/couch_db.hrl"). --include_lib("eunit/include/eunit.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). -include("ddoc_cache_test.hrl"). recover(<<"foo">>) -> @@ -39,14 +38,14 @@ check_entry_test_() -> setup, fun start_couch/0, fun stop_couch/1, - ddoc_cache_tutil:with([ - {"cancel_and_replace_opener", fun cancel_and_replace_opener/1}, - {"condenses_access_messages", fun condenses_access_messages/1}, - {"kill_opener_on_terminate", fun kill_opener_on_terminate/1}, - {"evict_when_not_accessed", fun evict_when_not_accessed/1}, - {"open_dead_entry", fun open_dead_entry/1}, - {"handles_bad_messages", fun handles_bad_messages/1}, - {"handles_code_change", fun handles_code_change/1} + with([ + ?TDEF(cancel_and_replace_opener), + ?TDEF(condenses_access_messages), + ?TDEF(kill_opener_on_terminate), + ?TDEF(evict_when_not_accessed), + ?TDEF(open_dead_entry), + ?TDEF(handles_bad_messages), + ?TDEF(handles_code_change) ]) }. diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_eviction_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_eviction_test.erl index fffb3ed47..1111e3d73 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_eviction_test.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_eviction_test.erl @@ -16,8 +16,7 @@ recover/1 ]). --include_lib("couch/include/couch_db.hrl"). --include_lib("eunit/include/eunit.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). -include_lib("mem3/include/mem3.hrl"). -include("ddoc_cache_test.hrl"). @@ -38,9 +37,9 @@ check_eviction_test_() -> setup, fun start_couch/0, fun stop_couch/1, - ddoc_cache_tutil:with([ - {"evict_all", fun evict_all/1}, - {"dont_evict_all_unrelated", fun dont_evict_all_unrelated/1} + with([ + ?TDEF(evict_all), + ?TDEF(dont_evict_all_unrelated) ]) }. diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl index d1dac869a..162cdb549 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl @@ -17,7 +17,7 @@ ]). -include_lib("couch/include/couch_db.hrl"). --include_lib("eunit/include/eunit.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). -include("ddoc_cache_test.hrl"). recover(<<"pause", _/binary>>) -> @@ -58,12 +58,12 @@ check_lru_test_() -> setup, fun start_couch/0, fun stop_couch/1, - ddoc_cache_tutil:with([ - {"check_multi_start", fun check_multi_start/1}, - {"check_multi_open", fun check_multi_open/1}, - {"check_capped_size", fun check_capped_size/1}, - {"check_cache_refill", fun check_cache_refill/1}, - {"check_evict_and_exit", fun check_evict_and_exit/1} + with([ + ?TDEF(check_multi_start), + ?TDEF(check_multi_open), + ?TDEF(check_capped_size), + ?TDEF(check_cache_refill), + ?TDEF(check_evict_and_exit) ]) }. diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_open_error_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_open_error_test.erl index 8e71b1270..a92f898be 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_open_error_test.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_open_error_test.erl @@ -12,8 +12,7 @@ -module(ddoc_cache_open_error_test). --include_lib("couch/include/couch_db.hrl"). --include_lib("eunit/include/eunit.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). -include("ddoc_cache_test.hrl"). start_couch() -> @@ -32,8 +31,8 @@ check_open_error_test_() -> setup, fun start_couch/0, fun stop_couch/1, - ddoc_cache_tutil:with([ - {"handle_open_error", fun handle_open_error/1} + with([ + ?TDEF(handle_open_error) ]) }. diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl index f9a9460e7..778ef6cbb 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl @@ -19,9 +19,7 @@ insert/2 ]). --include_lib("couch/include/couch_db.hrl"). --include_lib("eunit/include/eunit.hrl"). --include("ddoc_cache_test.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). %% behaviour callbacks dbname(DbName) -> @@ -58,12 +56,11 @@ check_open_error_test_() -> setup, fun start_couch/0, fun stop_couch/1, - ddoc_cache_tutil:with([ - {"should_return_database_does_not_exist", fun should_return_database_does_not_exist/1}, - {"should_not_call_recover_when_database_does_not_exist", - fun should_not_call_recover_when_database_does_not_exist/1}, - {"should_call_recover_when_needed", fun should_call_recover_when_needed/1}, - {"should_call_recover_when_needed", fun should_not_crash_lru_process/1} + with([ + ?TDEF(should_return_database_does_not_exist), + ?TDEF(should_not_call_recover_when_database_does_not_exist), + ?TDEF(should_call_recover_when_needed), + ?TDEF(should_not_crash_lru_process) ]) }. diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_refresh_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_refresh_test.erl index e690f8235..9e897eee8 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_refresh_test.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_refresh_test.erl @@ -17,7 +17,7 @@ ]). -include_lib("couch/include/couch_db.hrl"). --include_lib("eunit/include/eunit.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). -include("ddoc_cache_test.hrl"). recover(DbName) -> @@ -37,12 +37,12 @@ check_refresh_test_() -> setup, fun start_couch/0, fun stop_couch/1, - ddoc_cache_tutil:with([ - {"refresh_ddoc", fun refresh_ddoc/1}, - {"refresh_ddoc_rev", fun refresh_ddoc_rev/1}, - {"refresh_vdu", fun refresh_vdu/1}, - {"refresh_custom", fun refresh_custom/1}, - {"refresh_multiple", fun refresh_multiple/1} + with([ + ?TDEF(refresh_ddoc), + ?TDEF(refresh_ddoc_rev), + ?TDEF(refresh_vdu), + ?TDEF(refresh_custom), + ?TDEF(refresh_multiple) ]) }. diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_remove_test.erl b/src/ddoc_cache/test/eunit/ddoc_cache_remove_test.erl index f974dd804..3186bbd63 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_remove_test.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_remove_test.erl @@ -18,7 +18,7 @@ -include_lib("couch/include/couch_db.hrl"). -include_lib("mem3/include/mem3.hrl"). --include_lib("eunit/include/eunit.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). -include("ddoc_cache_test.hrl"). recover(DbName) -> @@ -46,12 +46,12 @@ check_refresh_test_() -> setup, fun start_couch/0, fun stop_couch/1, - ddoc_cache_tutil:with([ - {"remove_ddoc", fun remove_ddoc/1}, - {"remove_ddoc_rev", fun remove_ddoc_rev/1}, - {"remove_ddoc_rev_only", fun remove_ddoc_rev_only/1}, - {"remove_custom_not_ok", fun remove_custom_not_ok/1}, - {"remove_custom_error", fun remove_custom_error/1} + with([ + ?TDEF(remove_ddoc), + ?TDEF(remove_ddoc_rev), + ?TDEF(remove_ddoc_rev_only), + ?TDEF(remove_custom_not_ok), + ?TDEF(remove_custom_error) ]) }. diff --git a/src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl b/src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl index ced5c9f99..156472265 100644 --- a/src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl +++ b/src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl @@ -102,9 +102,3 @@ purge_modules() -> undefined -> ok end. - -%% eunit implementation of {with, Tests} doesn't detect test name correctly -with(Tests) -> - fun(ArgsTuple) -> - [{Name, ?_test(Fun(ArgsTuple))} || {Name, Fun} <- Tests] - end. diff --git a/src/dreyfus/test/dreyfus_purge_test.erl b/src/dreyfus/test/dreyfus_purge_test.erl index e64a046a7..bed1f79f8 100644 --- a/src/dreyfus/test/dreyfus_purge_test.erl +++ b/src/dreyfus/test/dreyfus_purge_test.erl @@ -12,11 +12,6 @@ -module(dreyfus_purge_test). --include_lib("couch/include/couch_db.hrl"). --include_lib("dreyfus/include/dreyfus.hrl"). --include_lib("couch/include/couch_eunit.hrl"). --include_lib("mem3/include/mem3.hrl"). - -export([ test_purge_single/0, test_purge_multiple/0, @@ -32,6 +27,7 @@ test_delete_conflict/0, test_all/0 ]). + -export([ test_verify_index_exists1/0, test_verify_index_exists2/0, @@ -44,6 +40,11 @@ -compile(export_all). -compile(nowarn_export_all). +-include_lib("couch/include/couch_db.hrl"). +-include_lib("dreyfus/include/dreyfus.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). +-include_lib("mem3/include/mem3.hrl"). + test_all() -> test_purge_single(), test_purge_multiple(), diff --git a/src/fabric/include/fabric.hrl b/src/fabric/include/fabric.hrl index 2a4da8bcf..0c6ac5df8 100644 --- a/src/fabric/include/fabric.hrl +++ b/src/fabric/include/fabric.hrl @@ -10,8 +10,6 @@ % License for the specific language governing permissions and limitations under % the License. --include_lib("eunit/include/eunit.hrl"). - -record(collector, { db_name=nil, query_args, diff --git a/src/fabric/src/fabric_doc_open_revs.erl b/src/fabric/src/fabric_doc_open_revs.erl index a5ff871e7..71188dd51 100644 --- a/src/fabric/src/fabric_doc_open_revs.erl +++ b/src/fabric/src/fabric_doc_open_revs.erl @@ -14,10 +14,8 @@ -export([go/4]). --include_lib("fabric/include/fabric.hrl"). -include_lib("mem3/include/mem3.hrl"). -include_lib("couch/include/couch_db.hrl"). --include_lib("eunit/include/eunit.hrl"). -record(state, { dbname, @@ -317,7 +315,7 @@ collapse_duplicate_revs_int([Reply | Rest]) -> [Reply | collapse_duplicate_revs(Rest)]. -ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). +-include_lib("couch/include/couch_eunit.hrl"). setup_all() -> config:start_link([]), diff --git a/src/fabric/src/fabric_ring.erl b/src/fabric/src/fabric_ring.erl index 2bb7d717f..9349efb90 100644 --- a/src/fabric/src/fabric_ring.erl +++ b/src/fabric/src/fabric_ring.erl @@ -271,7 +271,9 @@ stop_unused_workers(Workers, AllResponses, UsedResponses, CleanupCb) -> stop_workers(Shards) when is_list(Shards) -> rexi:kill_all([{Node, Ref} || #shard{node = Node, ref = Ref} <- Shards]). -% Unit tests +-ifdef(TEST). + +-include_lib("couch/include/couch_eunit.hrl"). is_progress_possible_full_range_test() -> % a base case @@ -558,3 +560,5 @@ mk_shard(Name, Range) -> Node = list_to_atom(Name), BName = list_to_binary(Name), #shard{name = BName, node = Node, range = Range}. + +-endif. diff --git a/src/fabric/src/fabric_view.erl b/src/fabric/src/fabric_view.erl index c2ef13392..82f9c2bc6 100644 --- a/src/fabric/src/fabric_view.erl +++ b/src/fabric/src/fabric_view.erl @@ -480,6 +480,10 @@ fix_skip_and_limit(#mrargs{} = Args) -> remove_finalizer(Args) -> couch_mrview_util:set_extra(Args, finalizer, null). +-ifdef(TEST). + +-include_lib("couch/include/couch_eunit.hrl"). + remove_overlapping_shards_test() -> Cb = undefined, @@ -559,3 +563,5 @@ mk_shard(Name, Range) -> Node = list_to_atom(Name), BName = list_to_binary(Name), #shard{name = BName, node = Node, range = Range}. + +-endif. diff --git a/src/fabric/src/fabric_view_changes.erl b/src/fabric/src/fabric_view_changes.erl index 0ee996df7..693e24384 100644 --- a/src/fabric/src/fabric_view_changes.erl +++ b/src/fabric/src/fabric_view_changes.erl @@ -777,9 +777,7 @@ increment_changes_epoch() -> -ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). - --define(TDEF(Name), {atom_to_list(Name), fun Name/0}). +-include_lib("couch/include/couch_eunit.hrl"). unpack_seq_setup() -> meck:new(mem3), @@ -794,7 +792,7 @@ unpack_seqs_test_() -> setup, fun unpack_seq_setup/0, fun(_) -> meck:unload() end, - [ + with([ ?TDEF(t_full_seq), ?TDEF(t_full_seq_quoted), ?TDEF(t_full_seq_with_hyphen), @@ -811,73 +809,73 @@ unpack_seqs_test_() -> ?TDEF(t_fail_random_junk), ?TDEF(t_fail_old_bigcouch_term), ?TDEF(t_fail_old_bigcouch_string) - ] + ]) }. -t_full_seq() -> +t_full_seq(_) -> assert_shards( "23423-g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwND" "LXMwBCwxygOFMiQ5L8____sxIZcKlIUgCSSfZgRUw4FTmAFMWDFTHiVJQAUlSPX1Ee" "C5BkaABSQHXzsxKZ8StcAFG4H4_bIAoPQBTeJ2j1A4hCUJBkAQC7U1NA" ). -t_full_seq_quoted() -> +t_full_seq_quoted(_) -> assert_shards( "\"23423-g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwND" "LXMwBCwxygOFMiQ5L8____sxIZcKlIUgCSSfZgRUw4FTmAFMWDFTHiVJQAUlSPX1Ee" "C5BkaABSQHXzsxKZ8StcAFG4H4_bIAoPQBTeJ2j1A4hCUJBkAQC7U1NA\"" ). -t_full_seq_with_hyphen() -> +t_full_seq_with_hyphen(_) -> assert_shards( "651-g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwNDLXMwBCwxygOFMiQ" "5L8____sxJTcalIUgCSSfZgReE4FTmAFMWDFYXgVJQAUlQPVuSKS1EeC5BkaABSQHXz8" "VgJUbgAonB_VqIPfoUHIArvE7T6AUQh0I1-WQAzp1XB" ). -t_full_seq_quoted_with_hyphen() -> +t_full_seq_quoted_with_hyphen(_) -> assert_shards( "\"651-g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwNDLXMwBCwxygOFMiQ" "5L8____sxJTcalIUgCSSfZgReE4FTmAFMWDFYXgVJQAUlQPVuSKS1EeC5BkaABSQHXz8" "VgJUbgAonB_VqIPfoUHIArvE7T6AUQh0I1-WQAzp1XB\"" ). -t_no_numeric_prefix() -> +t_no_numeric_prefix(_) -> assert_shards( "g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwND" "LXMwBCwxygOFMiQ5L8____sxIZcKlIUgCSSfZgRUw4FTmAFMWDFTHiVJQAUlSPX1Ee" "C5BkaABSQHXzsxKZ8StcAFG4H4_bIAoPQBTeJ2j1A4hCUJBkAQC7U1NA" ). -t_zero_seq_int() -> +t_zero_seq_int(_) -> assert_shards(0). -t_zero_seq_string() -> +t_zero_seq_string(_) -> assert_shards("0"). -t_fail_now() -> +t_fail_now(_) -> % "now" should have been transformed into a sequence in get_start_seq/2 fail("now"). -t_fail_numeric_int() -> +t_fail_numeric_int(_) -> fail(1234). -t_fail_numeric_string() -> +t_fail_numeric_string(_) -> fail("1234"). -t_fail_numeric_string_quoted() -> +t_fail_numeric_string_quoted(_) -> fail("\"1234\""). -t_fail_empty_string() -> +t_fail_empty_string(_) -> fail(""). -t_fail_empty_string_quoted() -> +t_fail_empty_string_quoted(_) -> fail("\"\""). -t_fail_random_junk() -> +t_fail_random_junk(_) -> fail("randomjunk"). -t_fail_old_bigcouch_term() -> +t_fail_old_bigcouch_term(_) -> fail([ 23423, << @@ -887,7 +885,7 @@ t_fail_old_bigcouch_term() -> >> ]). -t_fail_old_bigcouch_string() -> +t_fail_old_bigcouch_string(_) -> fail( "[23423,\"g1AAAAE7eJzLYWBg4MhgTmHgS0ktM3QwND" "LXMwBCwxygOFMiQ5L8____sxIZcKlIUgCSSfZgRUw4FTmAFMWDFTHiVJQAUlSPX1Ee" diff --git a/src/fabric/test/eunit/fabric_db_create_tests.erl b/src/fabric/test/eunit/fabric_db_create_tests.erl index 5720f57d8..9d78d177d 100644 --- a/src/fabric/test/eunit/fabric_db_create_tests.erl +++ b/src/fabric/test/eunit/fabric_db_create_tests.erl @@ -13,19 +13,16 @@ -module(fabric_db_create_tests). -include_lib("couch/include/couch_eunit.hrl"). --include_lib("couch/include/couch_db.hrl"). -include_lib("mem3/include/mem3.hrl"). --define(TDEF(A), {atom_to_list(A), fun A/0}). - main_test_() -> { setup, fun setup/0, fun teardown/1, - [ + with([ ?TDEF(t_handle_shard_doc_conflict) - ] + ]) }. setup() -> @@ -34,7 +31,7 @@ setup() -> teardown(Ctx) -> test_util:stop_couch(Ctx). -t_handle_shard_doc_conflict() -> +t_handle_shard_doc_conflict(_) -> DbName = ?tempdb(), meck:new(mem3, [passthrough]), meck:new(fabric_util, [passthrough]), diff --git a/src/fabric/test/eunit/fabric_db_info_tests.erl b/src/fabric/test/eunit/fabric_db_info_tests.erl index d4fb1e73f..57313df50 100644 --- a/src/fabric/test/eunit/fabric_db_info_tests.erl +++ b/src/fabric/test/eunit/fabric_db_info_tests.erl @@ -13,19 +13,15 @@ -module(fabric_db_info_tests). -include_lib("couch/include/couch_eunit.hrl"). --include_lib("couch/include/couch_db.hrl"). --include_lib("mem3/include/mem3.hrl"). - --define(TDEF(A), {atom_to_list(A), fun A/0}). main_test_() -> { setup, fun setup/0, fun teardown/1, - [ + with([ ?TDEF(t_update_seq_has_uuids) - ] + ]) }. setup() -> @@ -35,7 +31,7 @@ teardown(Ctx) -> meck:unload(), test_util:stop_couch(Ctx). -t_update_seq_has_uuids() -> +t_update_seq_has_uuids(_) -> DbName = ?tempdb(), ok = fabric:create_db(DbName, [{q, 1}, {n, 1}]), diff --git a/src/fabric/test/eunit/fabric_db_uuids_tests.erl b/src/fabric/test/eunit/fabric_db_uuids_tests.erl index 1d99019a8..1042c7cd3 100644 --- a/src/fabric/test/eunit/fabric_db_uuids_tests.erl +++ b/src/fabric/test/eunit/fabric_db_uuids_tests.erl @@ -13,19 +13,16 @@ -module(fabric_db_uuids_tests). -include_lib("couch/include/couch_eunit.hrl"). --include_lib("couch/include/couch_db.hrl"). -include_lib("mem3/include/mem3.hrl"). --define(TDEF(A), {atom_to_list(A), fun A/0}). - main_test_() -> { setup, fun setup/0, fun teardown/1, - [ + with([ ?TDEF(t_can_get_shard_uuids) - ] + ]) }. setup() -> @@ -35,7 +32,7 @@ teardown(Ctx) -> meck:unload(), test_util:stop_couch(Ctx). -t_can_get_shard_uuids() -> +t_can_get_shard_uuids(_) -> DbName = ?tempdb(), ok = fabric:create_db(DbName, []), Shards = mem3:shards(DbName), diff --git a/src/fabric/test/eunit/fabric_moved_shards_seq_tests.erl b/src/fabric/test/eunit/fabric_moved_shards_seq_tests.erl index 5463a5170..c3bb0c880 100644 --- a/src/fabric/test/eunit/fabric_moved_shards_seq_tests.erl +++ b/src/fabric/test/eunit/fabric_moved_shards_seq_tests.erl @@ -14,18 +14,15 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --include_lib("mem3/include/mem3.hrl"). - --define(TDEF(A), {atom_to_list(A), fun A/0}). main_test_() -> { setup, fun setup/0, fun teardown/1, - [ + with([ ?TDEF(t_shard_moves_avoid_sequence_rewinds) - ] + ]) }. setup() -> @@ -35,7 +32,7 @@ teardown(Ctx) -> meck:unload(), test_util:stop_couch(Ctx). -t_shard_moves_avoid_sequence_rewinds() -> +t_shard_moves_avoid_sequence_rewinds(_) -> DocCnt = 30, DbName = ?tempdb(), diff --git a/src/fabric/test/eunit/fabric_rpc_purge_tests.erl b/src/fabric/test/eunit/fabric_rpc_purge_tests.erl index d3872410e..07e6b1d42 100644 --- a/src/fabric/test/eunit/fabric_rpc_purge_tests.erl +++ b/src/fabric/test/eunit/fabric_rpc_purge_tests.erl @@ -15,8 +15,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --define(TDEF(A), {A, fun A/1}). - % TODO: Add tests: % - filter some updates % - allow for an update that was filtered by a node @@ -33,35 +31,35 @@ main_test_() -> foreach, fun setup_no_purge/0, fun teardown_no_purge/1, - lists:map(fun wrap/1, [ - ?TDEF(t_no_purge_no_filter) - ]) + [ + ?TDEF_FE(t_no_purge_no_filter) + ] }, { foreach, fun setup_single_purge/0, fun teardown_single_purge/1, - lists:map(fun wrap/1, [ - ?TDEF(t_filter), - ?TDEF(t_filter_unknown_node), - ?TDEF(t_filter_local_node), - ?TDEF(t_no_filter_old_node), - ?TDEF(t_no_filter_different_node), - ?TDEF(t_no_filter_after_repl) - ]) + [ + ?TDEF_FE(t_filter), + ?TDEF_FE(t_filter_unknown_node), + ?TDEF_FE(t_filter_local_node), + ?TDEF_FE(t_no_filter_old_node), + ?TDEF_FE(t_no_filter_different_node), + ?TDEF_FE(t_no_filter_after_repl) + ] }, { foreach, fun setup_multi_purge/0, fun teardown_multi_purge/1, - lists:map(fun wrap/1, [ - ?TDEF(t_filter), - ?TDEF(t_filter_unknown_node), - ?TDEF(t_filter_local_node), - ?TDEF(t_no_filter_old_node), - ?TDEF(t_no_filter_different_node), - ?TDEF(t_no_filter_after_repl) - ]) + [ + ?TDEF_FE(t_filter), + ?TDEF_FE(t_filter_unknown_node), + ?TDEF_FE(t_filter_local_node), + ?TDEF_FE(t_no_filter_old_node), + ?TDEF_FE(t_no_filter_different_node), + ?TDEF_FE(t_no_filter_after_repl) + ] } ] }. @@ -190,15 +188,6 @@ t_no_filter_after_repl({DbName, DocId, OldDoc, PSeq}) -> ?assertEqual({ok, OldDoc}, open_doc(DbName, DocId)). -wrap({Name, Fun}) -> - fun(Arg) -> - {timeout, 60, - {atom_to_list(Name), fun() -> - process_flag(trap_exit, true), - Fun(Arg) - end}} - end. - create_db() -> DbName = ?tempdb(), couch_db:create(DbName, [?ADMIN_CTX]). diff --git a/src/fabric/test/eunit/fabric_rpc_tests.erl b/src/fabric/test/eunit/fabric_rpc_tests.erl index 0fc295cf4..16bb66bad 100644 --- a/src/fabric/test/eunit/fabric_rpc_tests.erl +++ b/src/fabric/test/eunit/fabric_rpc_tests.erl @@ -15,8 +15,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --define(TDEF(A), {A, fun A/1}). - main_test_() -> { setup, @@ -28,27 +26,27 @@ main_test_() -> foreach, fun setup_no_db_or_config/0, fun teardown_db/1, - lists:map(fun wrap/1, [ - ?TDEF(t_no_config_non_shard_db_create_succeeds) - ]) + [ + ?TDEF_FE(t_no_config_non_shard_db_create_succeeds) + ] }, { foreach, fun setup_shard/0, fun teardown_noop/1, - lists:map(fun wrap/1, [ - ?TDEF(t_no_db), - ?TDEF(t_no_config_db_create_fails_for_shard), - ?TDEF(t_no_config_db_create_fails_for_shard_rpc) - ]) + [ + ?TDEF_FE(t_no_db), + ?TDEF_FE(t_no_config_db_create_fails_for_shard), + ?TDEF_FE(t_no_config_db_create_fails_for_shard_rpc) + ] }, { foreach, fun setup_shard/0, fun teardown_db/1, - lists:map(fun wrap/1, [ - ?TDEF(t_db_create_with_config) - ]) + [ + ?TDEF_FE(t_db_create_with_config) + ] } ] }. @@ -78,15 +76,6 @@ teardown_noop(_DbName) -> teardown_db(DbName) -> ok = couch_server:delete(DbName, []). -wrap({Name, Fun}) -> - fun(Arg) -> - {timeout, 60, - {atom_to_list(Name), fun() -> - process_flag(trap_exit, true), - Fun(Arg) - end}} - end. - t_no_db(DbName) -> ?assertEqual({not_found, no_db_file}, couch_db:open_int(DbName, [?ADMIN_CTX])). diff --git a/src/global_changes/test/eunit/global_changes_hooks_tests.erl b/src/global_changes/test/eunit/global_changes_hooks_tests.erl index 4872da82b..66e3dcd67 100644 --- a/src/global_changes/test/eunit/global_changes_hooks_tests.erl +++ b/src/global_changes/test/eunit/global_changes_hooks_tests.erl @@ -12,11 +12,11 @@ -module(global_changes_hooks_tests). +-export([allowed_owner/2]). + -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --export([allowed_owner/2]). - -define(t2l(V), lists:flatten(io_lib:format("~p", [V]))). start() -> diff --git a/src/mem3/src/mem3_rep.erl b/src/mem3/src/mem3_rep.erl index f74b3c0ae..010d21364 100644 --- a/src/mem3/src/mem3_rep.erl +++ b/src/mem3/src/mem3_rep.erl @@ -845,49 +845,48 @@ reset_remaining(#{} = Targets) -> ). -ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). --define(TDEF(A), {atom_to_list(A), fun A/0}). +-include_lib("couch/include/couch_eunit.hrl"). find_source_seq_int_test_() -> { setup, fun() -> meck:expect(couch_log, warning, 2, ok) end, fun(_) -> meck:unload() end, - [ + with([ ?TDEF(t_unknown_node), ?TDEF(t_unknown_uuid), ?TDEF(t_ok), ?TDEF(t_old_ok), ?TDEF(t_different_node) - ] + ]) }. -t_unknown_node() -> +t_unknown_node(_) -> ?assertEqual( find_source_seq_int(doc_(), <<"foo">>, <<"bing">>, <<"bar_uuid">>, 10), 0 ). -t_unknown_uuid() -> +t_unknown_uuid(_) -> ?assertEqual( find_source_seq_int(doc_(), <<"foo">>, <<"bar">>, <<"teapot">>, 10), 0 ). -t_ok() -> +t_ok(_) -> ?assertEqual( find_source_seq_int(doc_(), <<"foo">>, <<"bar">>, <<"bar_uuid">>, 100), 100 ). -t_old_ok() -> +t_old_ok(_) -> ?assertEqual( find_source_seq_int(doc_(), <<"foo">>, <<"bar">>, <<"bar_uuid">>, 84), 50 ). -t_different_node() -> +t_different_node(_) -> ?assertEqual( find_source_seq_int(doc_(), <<"foo2">>, <<"bar">>, <<"bar_uuid">>, 92), 31 @@ -983,112 +982,104 @@ targets_map_test_() -> setup, fun() -> meck:new(mem3, [passthrough]) end, fun(_) -> meck:unload() end, - [ - target_not_a_shard(), - source_contained_in_target(), - multiple_targets(), - uneven_overlap(), - target_not_in_shard_map() - ] + with([ + ?TDEF(target_not_a_shard), + ?TDEF(source_contained_in_target), + ?TDEF(multiple_targets), + ?TDEF(uneven_overlap), + ?TDEF(target_not_in_shard_map) + ]) }. -target_not_a_shard() -> - ?_assertEqual(#{[0, ?RING_END] => <<"t">>}, targets_map(<<"s">>, <<"t">>)). - -source_contained_in_target() -> - ?_test(begin - R07 = [16#00000000, 16#7fffffff], - R8f = [16#80000000, 16#ffffffff], - R0f = [16#00000000, 16#ffffffff], - - Shards = [ - #shard{node = 'n1', range = R07}, - #shard{node = 'n1', range = R8f}, - #shard{node = 'n2', range = R07}, - #shard{node = 'n2', range = R8f}, - #shard{node = 'n3', range = R0f} - ], - meck:expect(mem3, shards, 1, Shards), - - SrcName1 = <<"shards/00000000-7fffffff/d.1551893552">>, - TgtName1 = <<"shards/00000000-7fffffff/d.1551893552">>, - - Src1 = #shard{name = SrcName1, node = 'n1'}, - Tgt1 = #shard{name = TgtName1, node = 'n2'}, - Map1 = targets_map(Src1, Tgt1), - ?assertEqual(1, map_size(Map1)), - ?assertMatch(#{R07 := #shard{node = 'n2'}}, Map1), - - Tgt2 = #shard{name = TgtName1, node = 'n3'}, - Map2 = targets_map(Src1, Tgt2), - ?assertEqual(1, map_size(Map2)), - ?assertMatch(#{R0f := #shard{node = 'n3'}}, Map2) - end). +target_not_a_shard(_) -> + ?assertEqual(#{[0, ?RING_END] => <<"t">>}, targets_map(<<"s">>, <<"t">>)). -multiple_targets() -> - ?_test(begin - R07 = [16#00000000, 16#7fffffff], - R8f = [16#80000000, 16#ffffffff], - R0f = [16#00000000, 16#ffffffff], - - Shards = [ - #shard{node = 'n1', range = R07}, - #shard{node = 'n1', range = R8f}, - #shard{node = 'n2', range = R0f} - ], - meck:expect(mem3, shards, 1, Shards), - - SrcName = <<"shards/00000000-ffffffff/d.1551893552">>, - TgtName = <<"shards/00000000-7fffffff/d.1551893552">>, - - Src = #shard{name = SrcName, node = 'n2'}, - Tgt = #shard{name = TgtName, node = 'n1'}, - Map = targets_map(Src, Tgt), - ?assertEqual(2, map_size(Map)), - ?assertMatch(#{R07 := #shard{node = 'n1'}}, Map), - ?assertMatch(#{R8f := #shard{node = 'n1'}}, Map) - end). +source_contained_in_target(_) -> + R07 = [16#00000000, 16#7fffffff], + R8f = [16#80000000, 16#ffffffff], + R0f = [16#00000000, 16#ffffffff], -uneven_overlap() -> - ?_test(begin - R04 = [16#00000000, 16#4fffffff], - R26 = [16#20000000, 16#6fffffff], - R58 = [16#50000000, 16#8fffffff], - R9f = [16#90000000, 16#ffffffff], - Shards = [ - #shard{node = 'n1', range = R04}, - #shard{node = 'n1', range = R58}, - #shard{node = 'n1', range = R9f}, - #shard{node = 'n2', range = R26} - ], - - meck:expect(mem3, shards, 1, Shards), - - SrcName = <<"shards/20000000-6fffffff/d.1551893552">>, - TgtName = <<"shards/20000000-6fffffff/d.1551893552">>, - - Src = #shard{name = SrcName, node = 'n2'}, - Tgt = #shard{name = TgtName, node = 'n1'}, - Map = targets_map(Src, Tgt), - ?assertEqual(2, map_size(Map)), - ?assertMatch(#{R04 := #shard{node = 'n1'}}, Map), - ?assertMatch(#{R58 := #shard{node = 'n1'}}, Map) - end). + Shards = [ + #shard{node = 'n1', range = R07}, + #shard{node = 'n1', range = R8f}, + #shard{node = 'n2', range = R07}, + #shard{node = 'n2', range = R8f}, + #shard{node = 'n3', range = R0f} + ], + meck:expect(mem3, shards, 1, Shards), + + SrcName1 = <<"shards/00000000-7fffffff/d.1551893552">>, + TgtName1 = <<"shards/00000000-7fffffff/d.1551893552">>, + + Src1 = #shard{name = SrcName1, node = 'n1'}, + Tgt1 = #shard{name = TgtName1, node = 'n2'}, + Map1 = targets_map(Src1, Tgt1), + ?assertEqual(1, map_size(Map1)), + ?assertMatch(#{R07 := #shard{node = 'n2'}}, Map1), + + Tgt2 = #shard{name = TgtName1, node = 'n3'}, + Map2 = targets_map(Src1, Tgt2), + ?assertEqual(1, map_size(Map2)), + ?assertMatch(#{R0f := #shard{node = 'n3'}}, Map2). + +multiple_targets(_) -> + R07 = [16#00000000, 16#7fffffff], + R8f = [16#80000000, 16#ffffffff], + R0f = [16#00000000, 16#ffffffff], + + Shards = [ + #shard{node = 'n1', range = R07}, + #shard{node = 'n1', range = R8f}, + #shard{node = 'n2', range = R0f} + ], + meck:expect(mem3, shards, 1, Shards), + + SrcName = <<"shards/00000000-ffffffff/d.1551893552">>, + TgtName = <<"shards/00000000-7fffffff/d.1551893552">>, + + Src = #shard{name = SrcName, node = 'n2'}, + Tgt = #shard{name = TgtName, node = 'n1'}, + Map = targets_map(Src, Tgt), + ?assertEqual(2, map_size(Map)), + ?assertMatch(#{R07 := #shard{node = 'n1'}}, Map), + ?assertMatch(#{R8f := #shard{node = 'n1'}}, Map). + +uneven_overlap(_) -> + R04 = [16#00000000, 16#4fffffff], + R26 = [16#20000000, 16#6fffffff], + R58 = [16#50000000, 16#8fffffff], + R9f = [16#90000000, 16#ffffffff], + Shards = [ + #shard{node = 'n1', range = R04}, + #shard{node = 'n1', range = R58}, + #shard{node = 'n1', range = R9f}, + #shard{node = 'n2', range = R26} + ], -target_not_in_shard_map() -> - ?_test(begin - R0f = [16#00000000, 16#ffffffff], - Name = <<"shards/00000000-ffffffff/d.1551893552">>, - Shards = [ - #shard{name = Name, node = 'n1', range = R0f}, - #shard{name = Name, node = 'n2', range = R0f} - ], - meck:expect(mem3, shards, 1, Shards), - Src = #shard{name = Name, node = 'n1'}, - Tgt = #shard{name = Name, node = 'n3'}, - Map = targets_map(Src, Tgt), - ?assertEqual(1, map_size(Map)), - ?assertMatch(#{R0f := #shard{name = Name, node = 'n3'}}, Map) - end). + meck:expect(mem3, shards, 1, Shards), + + SrcName = <<"shards/20000000-6fffffff/d.1551893552">>, + TgtName = <<"shards/20000000-6fffffff/d.1551893552">>, + + Src = #shard{name = SrcName, node = 'n2'}, + Tgt = #shard{name = TgtName, node = 'n1'}, + Map = targets_map(Src, Tgt), + ?assertEqual(2, map_size(Map)), + ?assertMatch(#{R04 := #shard{node = 'n1'}}, Map), + ?assertMatch(#{R58 := #shard{node = 'n1'}}, Map). + +target_not_in_shard_map(_) -> + R0f = [16#00000000, 16#ffffffff], + Name = <<"shards/00000000-ffffffff/d.1551893552">>, + Shards = [ + #shard{name = Name, node = 'n1', range = R0f}, + #shard{name = Name, node = 'n2', range = R0f} + ], + meck:expect(mem3, shards, 1, Shards), + Src = #shard{name = Name, node = 'n1'}, + Tgt = #shard{name = Name, node = 'n3'}, + Map = targets_map(Src, Tgt), + ?assertEqual(1, map_size(Map)), + ?assertMatch(#{R0f := #shard{name = Name, node = 'n3'}}, Map). -endif. diff --git a/src/mem3/test/eunit/mem3_bdu_test.erl b/src/mem3/test/eunit/mem3_bdu_test.erl index 849295691..a0ed0004a 100644 --- a/src/mem3/test/eunit/mem3_bdu_test.erl +++ b/src/mem3/test/eunit/mem3_bdu_test.erl @@ -15,8 +15,6 @@ -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). --define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end). - -define(USER, "mem3_bdu_test_admin"). -define(PASS, "pass"). -define(AUTH, {basic_auth, {?USER, ?PASS}}). diff --git a/src/mem3/test/eunit/mem3_distribution_test.erl b/src/mem3/test/eunit/mem3_distribution_test.erl index d442a47b3..6182ace71 100644 --- a/src/mem3/test/eunit/mem3_distribution_test.erl +++ b/src/mem3/test/eunit/mem3_distribution_test.erl @@ -14,7 +14,6 @@ -include_lib("couch/include/couch_eunit.hrl"). --define(TDEF_FE(Name), fun(Arg) -> {atom_to_list(Name), ?_test(Name(Arg))} end). -define(MOD, mem3_distribution). setup() -> |