anchor.diff:  %%      information and stores information about all running processes.
   %%      Also starts the crypto application needed for unit tests using the
   %%      tester.
  --spec init_per_suite([tuple()]) -> [tuple()].
  +-spec init_per_suite(kv_opts()) -> kv_opts().
   init_per_suite(Config) ->
       Processes = get_processes(),
       ct:pal("Starting unittest ~p~n", [ct:get_status()]),
  
positive.code: %% @doc Creates a ring with the given IDs (or IDs returned by the IdFun).
  %%      Passes Options to the supervisor, e.g. to set config variables, specify
  %%      a {config, [{Key, Value},...]} option.
  -spec make_ring_with_ids([?RT:key(),...] | fun(() -> [?RT:key(),...]), Options::[tuple()]) -> pid().
  make_ring_with_ids(Ids, Options) when is_list(Ids) ->
      make_ring_with_ids(fun () -> Ids end, Options);
  make_ring_with_ids(IdsFun, Options) when is_function(IdsFun, 0) ->
  
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(),
  