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

Reply via email to