123456789_123456789_123456789_123456789_123456789_

Class: RSpec::Core::Bisect::ShellRunner Private

Do not use. This class is for internal use only.
Relationships & Source Files
Inherits: Object
Defined in: rspec-core/lib/rspec/core/bisect/shell_runner.rb

Overview

Provides an API to run the suite for a set of locations, using the given bisect server to capture the results.

Sets of specs are run by shelling out.

Class Method Summary

Instance Method Summary

Class Method Details

.name

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/bisect/shell_runner.rb', line 19

def self.name
  :shell
end

.start(shell_command, _spec_runner)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/bisect/shell_runner.rb', line 13

def self.start(shell_command, _spec_runner)
  Server.run do |server|
    yield new(server, shell_command)
  end
end

Instance Method Details

#original_results

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/bisect/shell_runner.rb', line 32

def original_results
  @original_results ||= run_locations(@shell_command.original_locations)
end

#run(locations)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/bisect/shell_runner.rb', line 28

def run(locations)
  run_locations(locations, original_results.failed_example_ids)
end

#run_command(cmd) (private)

:nocov:

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/bisect/shell_runner.rb', line 52

def run_command(cmd)
  Open3.capture2e(@shell_command.bisect_environment_hash, cmd).first
end

#run_locations(*capture_args) (private)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/bisect/shell_runner.rb', line 38

def run_locations(*capture_args)
  @server.capture_run_results(*capture_args) do
    run_command @shell_command.command_for([], @server)
  end
end