anchor.diff:  rand_bits(Bits) ->
           Bytes = (Bits + 7) div 8,
           <<Result:Bits/bits, _/bits>> = crypto:strong_rand_bytes(Bytes),
  -        Result.+        Result.
  +
  +receiver(_Manager, BenchPid, 0) ->
  +    BenchPid ! done,
  +    ok;
  +receiver(Manager, BenchPid, Count) ->
  +    receive
  +        {_Message, _SourceNode, _SourcePid} ->
  +            receiver(Manager, BenchPid, Count - 1)
  +    end.
  +
  +sender(_EchoBinary, _Manager, _DestinationNode, _DestinationPid, 0) ->
  +    ok;
  +sender(EchoBinary, Manager, DestinationNode, DestinationPid, Count) ->
  +    Manager:forward_message(DestinationNode, undefined, DestinationPid, {EchoBinary, node(), self()}, []),
  +    sender(EchoBinary, Manager, DestinationNode, DestinationPid, Count - 1).
  +
  +sender(Manager, DestinationNode, DestinationPid, Count) ->
  +    EchoBinary = partisan_config:get(echo_binary),
  +    receive
  +        start ->
  +            ok
  +    end,
  +    sender(EchoBinary, Manager, DestinationNode, DestinationPid, Count).
  +
  +bench_receiver(0) ->
  +    ok;
  +bench_receiver(Count) ->
  +    ct:pal("Waiting for ~p processes to finish...", [Count]),
  +
  +    receive
  +        done ->
  +            ct:pal("Received, but still waiting for ~p", [Count -1]),
  +            bench_receiver(Count - 1)
  +    end.
positive.code: 
      ok.
  
  default_manager_test(Config) ->
      %% Use the default peer service manager.
      Manager = partisan_default_peer_service_manager,
  
negative.code:       [default_manager_test]},
  
       {with_parallelism, [],
        [default_manager_test,
         performance_test]},
       
       {with_channels, [],
        [default_manager_test]},
  