def wait
      exit_status = Process.wait2 @sipp_pid.to_i
      @err_rd.close if @err_rd
      @stdout_rd.close if @stdout_rd
      final_result = process_exit_status exit_status, @stderr_buffer
      if final_result
        @logger.info "Test completed successfully!"
      else
        @logger.info "Test completed successfully but some calls failed."
      end
      @logger.info "Statistics logged at #{File.expand_path @scenario_options[:stats_file]}" if @scenario_options[:stats_file]

      final_result
    ensure
      cleanup_input_files
    end
def wait
      exit_status = Process.wait2 @sipp_pid.to_i
      @err_rd.close if @err_rd
      @stdout_rd.close if @stdout_rd
      final_result = process_exit_status exit_status, @stderr_buffer
      if final_result
        @logger.info "Test completed successfully!"
      else
        @logger.info "Test completed successfully but some calls failed."
      end
      @logger.info "Statistics logged at #{File.expand_path @scenario_options[:stats_file]}" if @scenario_options[:stats_file]

      final_result
    ensure
      cleanup_input_files
    end
Waits for the runner to finish execution

 @raises Errno::ENOENT when the SIPp executable cannot be found
 @raises SippyCup::ExitOnInternalCommand when SIPp exits on an internal command. Calls may have been processed
 @raises SippyCup::NoCallsProcessed when SIPp exit normally, but has processed no calls
 @raises SippyCup::FatalError when SIPp encounters a fatal failure
 @raises SippyCup::FatalSocketBindingError when SIPp fails to bind to the specified socket
 @raises SippyCup::SippGenericError when SIPp encounters another type of error

 @return Boolean true if execution succeeded without any failed calls, false otherwise