Add test for ushards COUCHDB-2953
Project: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/commit/bfd83b4e Tree: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/tree/bfd83b4e Diff: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/diff/bfd83b4e Branch: refs/heads/2953-ushards-mm Commit: bfd83b4e952a7f9f62ecd89c0e424c851b10128e Parents: f9dcbc2 Author: Tony Sun <tony....@cloudant.com> Authored: Wed Feb 24 13:02:52 2016 -0800 Committer: Tony Sun <tony....@cloudant.com> Committed: Wed Feb 24 13:05:57 2016 -0800 ---------------------------------------------------------------------- test/mem3_ushards_test.erl | 57 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-mem3/blob/bfd83b4e/test/mem3_ushards_test.erl ---------------------------------------------------------------------- diff --git a/test/mem3_ushards_test.erl b/test/mem3_ushards_test.erl new file mode 100644 index 0000000..d2b51c4 --- /dev/null +++ b/test/mem3_ushards_test.erl @@ -0,0 +1,57 @@ +% 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. + +-module(mem3_ushards_test). + +-include_lib("couch/include/couch_eunit.hrl"). +-include_lib("couch/include/couch_db.hrl"). +-include_lib("mem3/include/mem3.hrl"). + +-define(TIMEOUT, 10000). + +setup() -> + DbName = ?tempdb(), + ok = fabric:create_db(DbName, [?ADMIN_CTX]), + DbName. + +teardown(DbName) -> + ok = fabric:delete_db(DbName, [?ADMIN_CTX]). + +ushard_test_() -> + { + "Maintenance node test", + { + setup, + fun() -> test_util:start_couch([mem3]) end, + fun test_util:stop/1, + { + foreach, + fun setup/0, fun teardown/1, + [ + fun maintenance_mode_true/1, + fun maintenance_mode_nolb/1 + ] + } + } + }. + +maintenance_mode_true(DbName) -> + config:set("couchdb", "maintenance_mode", "true"), + UShards = mem3:ushards(DbName), + Nodes = [Node || #shard{node=Node} <- UShards, Node =:= node()], + ?_assertEqual([], Nodes). + +maintenance_mode_nolb(DbName) -> + config:set("couchdb", "maintenance_mode", "nolb"), + UShards = mem3:ushards(DbName), + Nodes = [Node || #shard{node=Node} <- UShards, Node =:= node()], + ?_assertEqual([], Nodes). \ No newline at end of file