anchor.diff:      {ok, [Reply0, Reply1, Reply2]} = wait_future(Future),
       ?assertMatch({ok, #ofp_message{type = features_reply, xid = RXID0}}, Reply0),
       ?assertMatch({ok, #ofp_message{type = features_reply, xid = RXID1}}, Reply1),
  -    ?assertMatch({ok, #ofp_message{type = features_reply, xid = RXID2}}, Reply2).
  -    % no message callback
  +    ?assertMatch({ok, #ofp_message{type = features_reply, xid = RXID2}}, Reply2),
  +    ?assertNot(meck:called(of_driver_handler_mock, handle_message, '_')).
   
   sync_send_list_no_reply({Socket, ConnTable}) ->
  +    meck:expect(of_driver_handler_mock, handle_message,
  +                fun(#ofp_message{type = features_reply, xid = 9999}, State) ->
  +                    {ok, State} end),
       Connection = get_connection(ConnTable),
       Msg = of_msg_lib:get_features(4),
       Future = future(of_driver, sync_send_list, [Connection, [Msg, Msg, Msg]]),
  
positive.code:           {"gen_xid",             fun gen_xid/0},
            {"main_connect", fun main_connect/0},
            {"main_terminate", fun main_terminate/0},
            {"early_message", fun early_message/0}|
            [{N, fun() -> F(S) end}
                       || {N, F} <- [
                                     {"aux_connect", fun aux_connect/1}
  
negative.code:     {ok, [Reply0, Reply1, Reply2]} = wait_future(Future),
      ?assertMatch({ok, noreply}, Reply0),
      ?assertMatch({ok, noreply}, Reply1),
      ?assertMatch({ok, #ofp_message{type = features_reply, xid = RXID2}}, Reply2),
      ?assert(meck:validate(of_driver_handler_mock)).
  
  %%------------------------------------------------------------------------------
  
  