anchor.diff:  
       ClientF =
           fun() ->
  +                ?P("[client] started"),
                   Payload = <<0:50000/unit:8>>,
                   Cnt = 10000,
  +                ?P("[client] send size"),
                   P ! {size, Cnt * byte_size(Payload)},
  +                ?P("[client] try connect"),
                   S = case gen_tcp:connect("localhost", Port,
                                            [binary, {active, false}]) of
                           {ok, CS} ->
  +                            ?P("[client] connected"),
                               P ! {continue, self()},
                               CS;
                           {error, eaddrnotavail = Reason} ->
                               ?SKIPE(connect_failed_str(Reason))
                       end,
  +                ?P("[client] send payload"),
                   _ = [gen_tcp:send(S, Payload) || _ <- lists:seq(1, Cnt)],
  +                ?P("[client] close socket"),
                   gen_tcp:close(S),
  -                %% Try to "ensure" that teh close get there before the DOWN...
  -                receive after 1000 -> ok end,
  +                ?P("[client] done"),
                   exit(ok)
           end,
       ?P("create client process"),
  
positive.code:             ok;
         true ->
              ct:fail("Send and Recv size not equal: ~p ~p", [SendSize, RecvSize])
      end.
  
  %% Test the send_timeout socket option.
  
negative.code:     {ok, S} = gen_tcp:accept(L),
      inet:setopts(S, [{active, 10}]),
      ?P("start collecting data"),
      RecvSize = anc_await_closed_and_down(S, Pid, MRef),
      %% {RecvSize, Down} =
      %%     (fun Server(Size) ->
      %%              receive
      %%                  {tcp, S, Bin} ->
      %%                      %% ?P("got a chunk (~w) of data", [byte_size(Bin)]),
      %%                      Server(byte_size(Bin) + Size);
      %%                  {tcp_closed, S} ->
      %%                      ?P("got closed -> we are done: ~w", [Size]),
      %%                      Size;
      %%                  {tcp_passive, S} ->
      %%                      %% ?P("got passive -> active"),
      %%                      inet:setopts(S, [{active, 10}]),
      %%                      Server(Size);
      %%                  {'DOWN', MRef, process, Pid, Reason} ->
      %%                      ?P("Received UNEXPECTED down message regarding client:"
      %%                         "~n   Reason: ~p"
      %%                         "~n   S:      ~p"
      %%                         "~n   Port Info: ~p",
      %%                         [Reason, ]),
      %%                      ct:fail({unexpected_client_down, Reason});
      %%                  Msg ->
      %%                      ?P("ignore: ~p", [Msg]),
      %%                      Server(Size)
      %%              end
      %%      end)(0),
      %% ?P("await client process termination"),
      %% receive
      %%     {'DOWN', MRef, process, Pid, ok} ->
      %%         ok;
      %%     {'DOWN', MRef, process, Pid, CloseRes} ->
      %%         exit({unexpected, close, CloseRes})
      %% end,
  
      ?P("close listen socket"),
      gen_tcp:close(L),
  