anchor.diff:  stuck_test_() ->
       { ok, Port } = start_test_driver( "stuck.sh" ),
       { os_pid, OsPid } = erlang:port_info( Port, os_pid ),
  -    stop_driver( Port ),
  +    ResStop = stop_driver( Port ),
       IsOsPidAliveCmd = lists:flatten( io_lib:format("kill -0 ~b", [ OsPid ] ) ),
  -    [ { "process killed", ?_assertCmdStatus( 1, IsOsPidAliveCmd ) }
  +    [ { "stop driver", ?_assertEqual( ok, ResStop ) }
  +    , { "process killed", ?_assertCmdStatus( 1, IsOsPidAliveCmd ) }
       ].
   
   
   get_event_test_() ->
       { ok, Port } = start_test_driver( "echo.sh" ),
       Res = get_event( Port, "SomeEvent" ),
  +    ResStop = stop_driver( Port ),
       ExpData = { ok, [ "EVENT", "SomeEvent" ] },
       [ { "get event", ?_assertEqual( ExpData, Res ) }
  +    , { "stop driver", ?_assertEqual( ok, ResStop ) }
       ].
   
   
  
positive.code:     { noreply, State }.
  
  
  terminate( _Reason, _State ) ->
      ok.
  
  
  code_change( _OldVsn, State, _Extra ) ->
  
negative.code:         error:Error -> { error, Error }
      end.
  
  -spec stop_driver( port() ) -> ok.
  stop_driver( Port ) ->
      case erlang:port_info( Port, os_pid ) of
          { os_pid, Pid } -> do_stop_driver( Port, Pid );
          undefined -> ok
      end.
  
  -spec do_stop_driver( port(), non_neg_integer() ) -> ok.
  do_stop_driver( Port, Pid ) ->
      catch erlang:port_close( Port ),
      % TODO - give the driver some time to finish cleanly
      case lurch_os:is_os_process_alive( Pid ) of
          true -> lurch_os:kill_os_process(9, Pid),
  