anchor.diff:  end_per_suite(Config) ->
       _ = unittest_helper:end_per_suite(Config),
       ok.
  +
  +init_per_testcase(TestCase, Config) ->
  +    _ = case TestCase of
  +            tm_crash ->
  +                %% stop ring from previous test case (may ran into a timeout)
  +                unittest_helper:stop_ring(),
  +                {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config),
  +                unittest_helper:make_ring(4, [{config, [{log_path, PrivDir}]}]),
  +                timer:sleep(500);
  +            tp_crash ->
  +                %% stop ring from previous test case (may ran into a timeout)
  +                unittest_helper:stop_ring(),
  +                {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config),
  +                unittest_helper:make_ring(4, [{config, [{log_path, PrivDir}]}]),
  +                timer:sleep(500);
  +            all_tp_crash ->
  +                %% stop ring from previous test case (may ran into a timeout)
  +                unittest_helper:stop_ring(),
  +                {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config),
  +                unittest_helper:make_ring(4, [{config, [{log_path, PrivDir}]}]),
  +                timer:sleep(500);
  +            _ -> ok
  +        end,
  +    Config.
  +
  +end_per_testcase(TestCase, Config) ->
  +    _ = case TestCase of
  +            tm_crash ->
  +                unittest_helper:stop_ring();
  +            tp_crash ->
  +                unittest_helper:stop_ring();
  +            all_tp_crash ->
  +                unittest_helper:stop_ring();
  +            _ -> ok
  +        end,
  +    Config.
   
   causes() -> [readlock, writelock, versiondec, versioninc, none].
   
  
positive.code:      abort_prepared_w,
       abort_prepared_rc,
       abort_prepared_rmc,
       abort_prepared_wmc,%,
       tm_crash, tp_crash,
       all_tp_crash
      ].
  
  
negative.code:     ct:pal("Starting all_tp_crash, simulated by holding the dht_node_proposers~n"),
      api_tx:write("a", "Hello world!"),
      %% ct:pal("written initial value and setting breakpoints now~n"),
      AllProposers = pid_groups:find_all(paxos_proposer),
      Proposers = [X || X <- AllProposers,
                        "basic_services" =/= pid_groups:group_of(X)],
      %% break all TPs (majority) after proposer initialize:
      [ gen_component:bp_set(Proposer, proposer_initialize, all_tp_crash)
        || Proposer <- Proposers],
  