anchor.diff:          orelse ?P("Connect differs: ~p neq ~p",
                     [OptsVals2, OptsValsDefault]),
       %%
  +    ?P("close connect socket"),
       ok = gen_tcp:close(S2),
  +    ?P("close accept socket"),
       ok = gen_tcp:close(S1),
       %%
       %%
       %% Clear RecvOpts on listen socket and set Option values
  +    ?P("clear (recv) options on listen socket"),
       ok = inet:setopts(L, FalseRecvOpts ++ OptsVals),
       {ok,FalseRecvOpts} = inet:getopts(L, RecvOpts),
  +    ?P("set  options on listen socket"),
       {ok,OptsVals} = inet:getopts(L, Opts),
  +
       %%
       %% Set RecvOpts on connecting socket
       %%
  +    ?P("create connect socket with"
  +       "~n   ~p", [TrueRecvOpts]),
       {ok,S4} =
  -        gen_tcp:connect(
  +        ?CONNECT(Config, 
             Address, P,
             [Family,binary,{active,false},{send_timeout,Timeout}
             |TrueRecvOpts],
             Timeout),
  +    ?P("get (recv) options on connect socket"),
       {ok,TrueRecvOpts} = inet:getopts(S4, RecvOpts),
  +    ?P("get options on connect socket"),
       {ok,OptsValsDefault} = inet:getopts(S4, Opts),
  +
       %%
       %% Accept socket inherits the options from listen socket
  +    ?P("create accept socket"),
       {ok,S3} = gen_tcp:accept(L, Timeout),
  +    ?P("get (recv) options on accept socket"),
       {ok,FalseRecvOpts} = inet:getopts(S3, RecvOpts),
       {ok,OptsVals} = inet:getopts(S3, Opts),
       %%
       %% Verify returned remote options
  +    ?P("verify pktoptions on accept socket"),
       {ok,[{pktoptions,[]}]} = inet:getopts(S3, [pktoptions]),
  +    ?P("verify pktoptions on connect socket"),
       {ok,[{pktoptions,OptsVals4}]} = inet:getopts(S4, [pktoptions]),
  +    ?P("verify options set"),
       (Result3 = sets_eq(OptsVals4, OptsVals))
  -        orelse io:format(
  -                 "Accept2 differs: ~p neq ~p~n", [OptsVals4,OptsVals]),
  +        orelse ?P("Accept2 differs: ~p neq ~p", [OptsVals4, OptsVals]),
       %%
  +    ?P("close connect socket"),
       ok = gen_tcp:close(S4),
  +    ?P("close accept socket"),
       ok = gen_tcp:close(S3),
  +    ?P("close listen socket"),
       ok = gen_tcp:close(L),
  +    ?P("verify final result"),
       (Result1 and ((not CheckConnect) or (Result2 and Result3)))
           orelse
           exit({failed,
  
positive.code:     [{ct_hooks,[ts_install_cth]},
       {timetrap,{minutes,4}}].
  
  all() -> 
      [controlling_process, controlling_process_self, no_accept,
       close_with_pending_output, data_before_close,
       iter_max_socks, passive_sockets, active_n, active_n_closed,
       accept_closed_by_other_process, otp_3924, closed_socket,
  
negative.code:     of
          [_] ->
              test_pktoptions(
                Config,
                inet6, [{recvtclass,tclass,224}],
                fun recvtclass_ok/2,
                true);
  