anchor.diff:  %% API
   -export([prepare_test_environment/3, prepare_test_environment/2,
       clean_environment/1, clean_environment/2, load_modules/2,
  -    maybe_start_cover/0, maybe_stop_cover/0, maybe_gather_cover/1]).
  +    maybe_start_cover/0, maybe_stop_cover/0, finalize/1]).
   
   -define(NODE_CALL_TIMEOUT, timer:seconds(60)).
   -define(COOKIE_KEY, "vm.args/setcookie").
  
positive.code:     Apps :: [{AppName :: atom(), ConfigName :: atom()}]) -> ok.
  clean_environment(Config, Apps) ->
      StopStatus = try
          maybe_gather_cover(Config, Apps)
      catch
          E1:E2:Stacktrace ->
              ct:pal("Environment cleanup failed - ~p:~p~n" ++
  
negative.code:                 _ -> false
              end
          end, Nodes)
      end, Apps).
  
  
  -spec gather_cover([node()]) -> ok.
  gather_cover([]) ->
      ok;
  gather_cover(NodesWithCover) ->
      erlang:register(?CLEANING_PROC_NAME, self()),
  
      ct:pal("Gathering cover from nodes: ~s", [?FORMAT_ATOM_LIST(NodesWithCover)]),
      lists:foreach(fun(Node) ->
          receive
              {app_ended, CoverNode, FileData} ->
  