Reduce number of behaviour undefined compiler warnings
authorJay Doane <jay.s.doane@gmail.com>
Thu, 13 Dec 2018 06:00:48 +0000 (22:00 -0800)
committerJay Doane <jay.s.doane@gmail.com>
Thu, 27 Dec 2018 21:07:57 +0000 (13:07 -0800)
Move couch_event and mem3 modules earlier in the list of SubDirs to
suppress behaviour undefined warnings.

This has the side effect of running the tests in the new order, which
induces failures in couch_index tests. Those failures are related to
quorum, and can be traced to mem3 seeds tests leaving a _nodes db
containing several node docs in the tmp/data directory, ultimately
resulting in badmatch errors e.g. when a test expects 'ok' but gets
'accepted' instead.

To prevent test failures, a cleanup function is implemented which
deletes any existing "nodes_db" left after test completion.

rebar.config.script
src/mem3/test/mem3_seeds_test.erl

index 5f17c29..85cc20f 100644 (file)
@@ -27,12 +27,13 @@ SubDirs = [
     "src/couch_log",
     "src/chttpd",
     "src/couch",
+    "src/couch_event",
+    "src/mem3",
     "src/couch_index",
     "src/couch_mrview",
     "src/couch_replicator",
     "src/couch_plugins",
     "src/couch_pse_tests",
-    "src/couch_event",
     "src/couch_stats",
     "src/couch_peruser",
     "src/couch_tests",
@@ -40,7 +41,6 @@ SubDirs = [
     "src/fabric",
     "src/global_changes",
     "src/mango",
-    "src/mem3",
     "src/rexi",
     "src/setup",
     "rel"
index 19e0079..ba83b66 100644 (file)
@@ -12,7 +12,7 @@
 
 -module(mem3_seeds_test).
 
--include_lib("eunit/include/eunit.hrl").
+-include_lib("couch/include/couch_eunit.hrl").
 
 a_test_() ->
     Tests = [
@@ -29,7 +29,7 @@ empty_seedlist_status_ok() ->
         ?assertEqual({[]}, couch_util:get_value(seeds, Result)),
         ?assertEqual(ok, couch_util:get_value(status, Result))
     after
-        application:stop(mem3)
+        cleanup()
     end.
 
 seedlist_misconfiguration() ->
@@ -43,7 +43,7 @@ seedlist_misconfiguration() ->
         ?assertMatch({_}, couch_util:get_value('couchdb@node2.example.com', Seeds)),
         ?assertEqual(seeding, couch_util:get_value(status, Result))
     after
-        application:stop(mem3)
+        cleanup()
     end.
 
 check_nodelist() ->
@@ -54,9 +54,14 @@ check_nodelist() ->
         ?assert(lists:member('couchdb@node1.example.com', Nodes)),
         ?assert(lists:member('couchdb@node2.example.com', Nodes))
     after
-        application:stop(mem3)
+        cleanup()
     end.
 
+cleanup() ->
+    application:stop(mem3),
+    Filename = config:get("mem3", "nodes_db", "_nodes") ++ ".couch",
+    file:delete(filename:join([?BUILDDIR(), "tmp", "data", Filename])).
+
 setup() ->
     test_util:start_couch([rexi]).