This is an automated email from the ASF dual-hosted git repository. garren pushed a commit to branch partition-review-fixes in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit fd9d87ed9c984234625214b47d366078a0165ad7 Author: Garren Smith <garren.sm...@gmail.com> AuthorDate: Tue Oct 16 12:23:19 2018 +0200 fix use of meck in unit tests --- src/couch/test/couchdb_views_tests.erl | 1 - src/fabric/src/fabric_view_all_docs.erl | 177 +++++++++++++++++++------------- src/mem3/src/mem3.erl | 26 +++-- 3 files changed, 122 insertions(+), 82 deletions(-) diff --git a/src/couch/test/couchdb_views_tests.erl b/src/couch/test/couchdb_views_tests.erl index a023a8c..1b1a8e5 100644 --- a/src/couch/test/couchdb_views_tests.erl +++ b/src/couch/test/couchdb_views_tests.erl @@ -60,7 +60,6 @@ setup_legacy() -> lists:foreach(fun(File) -> file:delete(File) end, Files), % copy old db file into db dir - ?debugFmt("copy ~p ~p", [OldDbFilePath, NewDbFilePath]), {ok, _} = file:copy(OldDbFilePath, NewDbFilePath), % copy old view file into view dir diff --git a/src/fabric/src/fabric_view_all_docs.erl b/src/fabric/src/fabric_view_all_docs.erl index 635f2d8..6eb626a 100644 --- a/src/fabric/src/fabric_view_all_docs.erl +++ b/src/fabric/src/fabric_view_all_docs.erl @@ -327,85 +327,114 @@ cancel_read_pids(Pids) -> -ifdef(TEST). -include_lib("eunit/include/eunit.hrl"). + check_partitions_work_with_shards_test_() -> + { + foreach, + fun setup/0, + fun teardown/1, + [ + t_shards_for_partition_gets_partitioned_shards(), + t_shards_for_no_partition_gets_all_shards(), + t_shards_for_different_partitions_gets_all_shards(), + t_shards_for_no_startkey_all_shards(), + t_shards_for_no_endkey_all_shards(), + t_shards_for_no_keys_all_shards(), + t_shards_for_non_binary_keys_all_shards() - shards_for_partition_gets_partitioned_shards_test() -> - DbName = <<"db">>, - Args = #mrargs{ - start_key = <<"pk:id">>, - end_key = <<"pk:idZ">>, - extra = [{partitioned, true}] - }, - meck:expect(mem3, shards, fun(<<"db">>, <<"pk:foo">>) -> [] end), - shards(DbName, Args), - meck:validate(mem3), - meck:unload(mem3). - - shards_for_no_partition_gets_all_shards_test() -> - DbName = <<"db">>, - Args = #mrargs{ - start_key = <<"pk:id">>, - end_key = <<"pk:idZ">>, - extra = [{partitioned, false}] - }, - meck:expect(mem3, shards, fun(<<"db">>) -> [] end), - shards(DbName, Args), - meck:validate(mem3), - meck:unload(mem3). + ] + }. + + setup() -> + ok. + + teardown(_) -> + meck:unload(). + + t_shards_for_partition_gets_partitioned_shards() -> + ?_test(begin + DbName = <<"db">>, + Args = #mrargs{ + start_key = <<"pk:id">>, + end_key = <<"pk:idZ">>, + extra = [{partitioned, true}] + }, + meck:expect(mem3, shards, fun(<<"db">>, <<"pk:foo">>) -> [] end), + shards(DbName, Args), + ?assertEqual(1, meck:num_calls(mem3, shards, '_')) + end). + + t_shards_for_no_partition_gets_all_shards() -> + ?_test(begin + DbName = <<"db">>, + Args = #mrargs{ + start_key = <<"pk:id">>, + end_key = <<"pk:idZ">>, + extra = [{partitioned, false}] + }, + meck:expect(mem3, shards, fun(<<"db">>) -> [] end), + shards(DbName, Args), + ?assertEqual(1, meck:num_calls(mem3, shards, '_')) + end). - shards_for_different_partitions_gets_all_shards_test() -> - DbName = <<"db">>, - Args = #mrargs{ - start_key = <<"pk1:id">>, - end_key = <<"pk2:idZ">>, - extra = [{partitioned, true}] - }, - meck:expect(mem3, shards, fun(<<"db">>) -> [] end), - shards(DbName, Args), - meck:validate(mem3), - meck:unload(mem3). + t_shards_for_different_partitions_gets_all_shards() -> + ?_test(begin + DbName = <<"db">>, + Args = #mrargs{ + start_key = <<"pk1:id">>, + end_key = <<"pk2:idZ">>, + extra = [{partitioned, true}] + }, + meck:expect(mem3, shards, fun(<<"db">>) -> [] end), + shards(DbName, Args), + ?assertEqual(1, meck:num_calls(mem3, shards, '_')) + end). - shards_for_no_startkey_all_shards_test() -> - DbName = <<"db">>, - Args = #mrargs{ - end_key = <<"pk:idZ">>, - extra = [{partitioned, true}] - }, - meck:expect(mem3, shards, fun(<<"db">>) -> [] end), - shards(DbName, Args), - meck:validate(mem3), - meck:unload(mem3). + t_shards_for_no_startkey_all_shards() -> + ?_test(begin + DbName = <<"db">>, + Args = #mrargs{ + end_key = <<"pk:idZ">>, + extra = [{partitioned, true}] + }, + meck:expect(mem3, shards, fun(<<"db">>) -> [] end), + shards(DbName, Args), + ?assertEqual(1, meck:num_calls(mem3, shards, '_')) + end). - shards_for_no_endkey_all_shards_test() -> - DbName = <<"db">>, - Args = #mrargs{ - start_key = <<"pk:idZ">>, - extra = [{partitioned, true}] - }, - meck:expect(mem3, shards, fun(<<"db">>) -> [] end), - shards(DbName, Args), - meck:validate(mem3), - meck:unload(mem3). + t_shards_for_no_endkey_all_shards() -> + ?_test(begin + DbName = <<"db">>, + Args = #mrargs{ + start_key = <<"pk:idZ">>, + extra = [{partitioned, true}] + }, + meck:expect(mem3, shards, fun(<<"db">>) -> [] end), + shards(DbName, Args), + ?assertEqual(1, meck:num_calls(mem3, shards, '_')) + end). - shards_for_no_keys_all_shards_test() -> - DbName = <<"db">>, - Args = #mrargs{ - extra = [{partitioned, true}] - }, - meck:expect(mem3, shards, fun(<<"db">>) -> [] end), - shards(DbName, Args), - meck:validate(mem3), - meck:unload(mem3). + t_shards_for_no_keys_all_shards() -> + ?_test(begin + DbName = <<"db">>, + Args = #mrargs{ + extra = [{partitioned, true}] + }, + meck:expect(mem3, shards, fun(<<"db">>) -> [] end), + shards(DbName, Args), + ?assertEqual(1, meck:num_calls(mem3, shards, '_')) + end). - shards_for_non_binary_keys_all_shards_test() -> - DbName = <<"db">>, - Args = #mrargs{ - start_key = null, - end_key = null, - extra = [{partitioned, true}] - }, - meck:expect(mem3, shards, fun(<<"db">>) -> [] end), - shards(DbName, Args), - meck:validate(mem3), - meck:unload(mem3). + t_shards_for_non_binary_keys_all_shards() -> + ?_test(begin + DbName = <<"db">>, + Args = #mrargs{ + start_key = null, + end_key = null, + extra = [{partitioned, true}] + }, + meck:expect(mem3, shards, fun(<<"db">>) -> [] end), + shards(DbName, Args), + ?assertEqual(1, meck:num_calls(mem3, shards, '_')) + end). -endif. diff --git a/src/mem3/src/mem3.erl b/src/mem3/src/mem3.erl index d6d14dd..17a2322 100644 --- a/src/mem3/src/mem3.erl +++ b/src/mem3/src/mem3.erl @@ -412,15 +412,27 @@ allowed_nodes_test_() -> ] }]}. -is_partitioned_false_shards_db_test() -> - meck:expect(config, get, fun (_, _, Default) -> Default end), - ?assertEqual(is_partitioned(<<"_dbs">>), false), +check_partitions_and_system_dbs_test_() -> + { + foreach, + fun setup/0, + fun teardown/1, + [ + t_is_partitioned_false_shards_db() + ] + }. + +setup() -> + ok. + +teardown(_) -> meck:unload(). -is_partitioned_false_nodes_db_test() -> - meck:expect(config, get, fun (_, _, Default) -> Default end), - ?assertEqual(is_partitioned(<<"_nodes">>), false), - meck:unload(). +t_is_partitioned_false_shards_db() -> + ?_test(begin + meck:expect(config, get, fun (_, _, Default) -> Default end), + ?assertEqual(is_partitioned(<<"_dbs">>), false) + end). is_partitioned_true_partitioned_db_test() -> Shard = #shard{