anchor.diff:           {testcase_to_groupname(TestCase), Options, [TestCase]}
        end || TestCase <- TestCases].
   
  --spec init_per_group(atom(), [tuple()]) -> [tuple()].
  +-spec init_per_group(atom(), Config) -> Config when is_subtype(Config, kv_opts()).
   init_per_group(_Group, Config) -> Config.
   
  --spec end_per_group(atom(), [tuple()]) -> {return_group_result, ok | failed}.
  +-spec end_per_group(atom(), kv_opts()) -> {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
  
positive.code:                           end, fun(_P1, P2) -> P2 end),
  %%     ct:pal("Proc-Old: ~.0p~n", [_OnlyOld]),
  %%     ct:pal("Proc-Both: ~.0p~n", [_Both]),
  %%     ct:pal("Proc-New: ~.0p~n", [_OnlyNew]),
      Killed = [begin
  %%                   ct:pal("killing ~.0p~n", [Proc]),
                    Tabs = util:ets_tables_of(X),
  
negative.code:                            {succ, comm:erl_pid_plain()},
                             ok | timeout}].
  get_ring_data() ->
      Self = self(),
      erlang:spawn(
        fun() ->
                DHTNodes = pid_groups:find_all(dht_node),
                Data =
                    lists:sort(
                      fun(E1, E2) ->
                              erlang:element(2, E1) =< erlang:element(2, E2)
                      end,
                      [begin
                           comm:send_local(DhtNode,
                                           {unittest_get_bounds_and_data, comm:this()}),
                           receive
                               {unittest_get_bounds_and_data_response, Bounds, Data, Pred, Succ} ->
                                   {DhtNode, Bounds, Data,
                                    {pred, comm:make_local(node:pidX(Pred))},
                                    {succ, comm:make_local(node:pidX(Succ))}, ok}
                           % we are in a separate process, any message in the
                           % message box should not influence the calling process
                               after 500 -> {DhtNode, empty, [], {pred, null}, {succ, null}, timeout}
                           end
                       end || DhtNode <- DHTNodes]),
                Self ! {data, Data}
        end),
      receive {data, Data} -> Data
      end.
  
  -spec print_ring_data() -> ok.
  print_ring_data() ->
      DataAll = get_ring_data(),
      ct:pal("Scalaris ring data:~n~.0p~n", [DataAll]).
  
  -include("unittest.hrl").
  
  