anchor.diff:  -ifdef(EUNIT).
   
   redundant_manager_test_() ->
  -    {foreach, fun setup/0, fun teardown/1,
  -     [{with, [T]} || T <- [fun redundant_manager_0_/1,
  +    {timeout, 300,
  +     {foreach, fun setup/0, fun teardown/1,
  +      [{with, [T]} || T <- [fun redundant_manager_0_/1,
                              fun redundant_manager_1_/1,
                              fun attach_/1,
                              fun detach_/1,
  
positive.code:     ok.
  
  rack_aware_1_({Hostname}) ->
      {ok, _RefSup} = leo_redundant_manager_sup:start_link(master),
      %% ok = leo_redundant_manager_table_member:create_members(),
  
      leo_redundant_manager_api:set_options([{n, 3},
                                             {r, 1},
                                             {w ,2},
  
negative.code:     leo_redundant_manager_api:attach(Node15, "R2"),
  
      {ok, _, _} =leo_redundant_manager_api:create(),
      ServerRef = poolboy:checkout(?RING_WORKER_POOL_NAME),
      ok = leo_redundant_manager_worker:force_sync(ServerRef, {ets, ?CUR_RING_TABLE}),
      ok = leo_redundant_manager_worker:force_sync(ServerRef, {ets, ?PREV_RING_TABLE}),
  
      lists:foreach(
        fun(N) ->
                {ok, #redundancies{nodes = Nodes}} =
                    leo_redundant_manager_api:get_redundancies_by_key(
                      lists:append(["LEOFS_", integer_to_list(N)])),
                ?assertEqual(5, length(Nodes))
        end, lists:seq(1, 300)),
  
      ?debugVal(ok),
      poolboy:checkin(?RING_WORKER_POOL_NAME, ServerRef),
      ok.
  
  
  