anchor.diff:      end.
   
   -spec start_driver( string() | binary(), [ string() | binary() ] ) ->
  -    { ok, port() }.
  +    { ok, port() } | { error, term() }.
   start_driver( Driver, Parameters ) ->
  -    % TODO - error logging
       try Port = open_port( { spawn_executable, driver_path( Driver ) },
                             [ { args, Parameters }
                             , { line, 8 }
  
positive.code: -spec enter_loop( string() | binary(),
                    [ string() | binary() ],
                    { pid(), reference() } ) ->
      { ok, { pid(), reference() } }.
  enter_loop( Driver, Parameters, { Pid, Tag } ) ->
      % FIXME - propagate error
      { ok, Port } = start_driver( Driver, Parameters ),
      Pid ! { { ok, self() }, { self(), Tag } },
      receive_loop( Port ).
  
  -spec receive_loop( port() ) -> { ok, { pid(), reference() } }.
  receive_loop( Port ) ->
      receive
          { stop, { Pid, Tag } } ->
              % FIXME - error propagation
              stop_driver( Port ),
              Pid ! { ok, { self(), Tag } };
  
  
negative.code:     [ { "port started", ?_assert( IsPort ) }
      , { "port stopped", ?_assertEqual( undefined, StoppedPortInfo ) }
      ].
  
  
  driver_start_nonexistent_test_() ->
      ?_assertEqual( { error, enoent }, start_test_driver( "nonexistent.sh" ) ).
  
  
  driver_stuck_test_() ->
      { ok, Port } = start_test_driver( "stuck.sh" ),
  