anchor.diff:        [ fun test_start_device/1
         , fun test_get_event/1
         , fun test_code_change/1
  +      , fun test_no_code_change/1
         %, fun test_stop_device/1
         ]
       }.
  
positive.code:     when is_binary( Driver ) or
           is_list( Driver )
      -> lurch_device_ext.
  
  call_impl_ctx( Func, Params, State ) ->
      call_impl_ctx( Func, Params, State, State#state.id ).
  
negative.code:     ].
  
  test_code_change( S0 ) ->
      mock_impl_module_code_change(),
  
      R1 = code_change( make_ref(), S0, go_well ),
      R2 = code_change( make_ref(), S0, go_wrong ),
      [ ?_assertMatch( { ok, #state{ context = context1 } }, R1 )
      , ?_assertMatch( { error, went_wrong }, R2 )
      ].
  
  test_no_code_change( S0 ) ->
      R1 = code_change( make_ref(), S0, go_well ),
      R2 = code_change( make_ref(), S0, go_wrong ),
      [ ?_assertMatch( { ok, S0 }, R1 )
      , ?_assertMatch( { ok, S0 }, R2 )
      ].
  
  mock_impl_module_code_change() ->
      meck:expect( ?IMPL, code_change,
          fun( _OldVsn, _Ctx, go_well ) -> { ok, context1 };
             ( _OldVsn, _Ctx, go_wrong ) -> { error, went_wrong }
          end ).
  
  mock_impl_module() ->
      meck:new( ?IMPL, [ non_strict ] ),
  