anchor.diff:      Pid ! stop,
       ok = Result,
       State;
  -
   upgrade_downgraded(_, #state{server = Server, client = Client, soft = true, result_proxy = Pid} = State) ->
       ct:pal("Soft downgrade: ~n", []),
       Server ! changed_version,
  
positive.code: 	    State#state{soft = Soft, result_proxy = Pid}
      end.
  
  upgrade_upgraded(_, #state{soft = false, config = Config, result_proxy = Pid} = State) ->
      ct:pal("Restart upgrade ~n", []),
      {Server, Client} = restart_start_connection(Config, Pid),
  
negative.code: minor_upgrade(Config) when is_list(Config) ->
      ct_release_test:upgrade(ssl, minor,{?MODULE, #state{config = Config}}, Config).
  
  upgrade_init(CtData, State) -> 
      {ok,{FromVsn,ToVsn}} = ct_release_test:get_app_vsns(CtData, ssl),
      upgrade_init(FromVsn, ToVsn, CtData, State).
  
  upgrade_init(_, "8.0.2", _, State) ->
      %% Requires stdlib upgrade so it will be a node upgrade!
      State#state{skip = true};
  upgrade_init(_, _, CtData, #state{config = Config} = State) ->
      {ok, {_, _, Up, _Down}} = ct_release_test:get_appup(CtData, ssl),
      ct:pal("Up: ~p", [Up]),
      Soft = is_soft(Up), %% It is symmetrical, if upgrade is soft so is downgrade  
      Pid = spawn(?MODULE, result_proxy_init, [[]]),
  