anchor.diff:  api_to_recvmsg_udp4(_Config) when is_list(_Config) ->
       tc_try(api_to_recvmsg_udp4,
              fun() ->
  -                   ok = api_to_recvmsg_udp(inet)
  +                   Recv = fun(Sock) -> socket:recvmsg(Sock, 5000) end,
  +                   InitState = #{domain => inet, recv => Recv},
  +                   ok = api_to_receive_udp(InitState)
              end).
   
   
  
positive.code:     tc_try(api_to_recvmsg_udp6,
             fun() ->
                     not_yet_implemented(),
                     ok = api_to_recvmsg_udp(inet6)
             end).
  
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  api_to_recvmsg_udp(Domain) ->
      process_flag(trap_exit, true),
      p("init"),
      LocalAddr = which_local_addr(Domain),
      LocalSA   = #{family => Domain, addr => LocalAddr}, 
      p("open"),
      Sock      = sock_open(Domain, dgram, udp),
      p("bind"),
      _Port     = sock_bind(Sock, LocalSA),
      p("recv"),
      case socket:recvmsg(Sock, 5000) of
          {error, timeout} ->
              p("expected timeout"),
              ok;
          {ok, _MsgHdr} ->
              ?FAIL(unexpected_success);
          {error, Reason} ->
              ?FAIL({recv, Reason})
      end,
      ok.
  
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
negative.code: api_to_recvfrom_udp4(_Config) when is_list(_Config) ->
      tc_try(api_to_recvfrom_udp4,
             fun() ->
                     Recv = fun(Sock) -> socket:recvfrom(Sock, 0, 5000) end,
                     InitState = #{domain => inet, recv => Recv},
                     ok = api_to_receive_udp(InitState)
             end).
  
  
  