anchor.diff:           start_minimal_procs/3, stop_minimal_procs/1,
            check_ring_load/1, check_ring_data/0, check_ring_data/2]).
   
  +-ifdef(with_export_type_support).
  +-export_type([process_info/0, kv_opts/0]).
  +-endif.
  +
   -include("scalaris.hrl").
  +
  +-type kv_opts() :: [{Key::atom(), Value::term()}].
   
   %% @doc Sets the current working directory to "../bin" if it does not end with
   %%      "/bin" yet. Assumes that the current working directory is a sub-dir of
  
positive.code:          {testcase_to_groupname(TestCase), Options, [TestCase]}
       end || TestCase <- TestCases].
  
  -spec init_per_group(atom(), [tuple()]) -> [tuple()].
  init_per_group(_Group, Config) -> Config.
  
  -spec end_per_group(atom(), [tuple()]) -> {return_group_result, ok | failed}.
  end_per_group(_Group, Config) ->
      Status = test_server:lookup_config(tc_group_result, Config),
      case proplists:get_value(failed, Status) of
  
negative.code: %%      of processes which are now running but haven't been running before.
  %%      Thus allows a clean start of succeeding test suites.
  %%      Prints information about the processes that have been killed.
  -spec end_per_suite(Config) -> Config when is_subtype(Config, kv_opts()).
  end_per_suite(Config) ->
      ct:pal("Stopping unittest ~p~n", [ct:get_status()]),
      unittest_helper:stop_ring(),
  