@private A DRb server that receives run results from a separate RSpec process started by the bisect process.
Fetched via DRb by the BisectFormatter to determine when to abort.
Set via DRb by the BisectFormatter with the results of the run.
# File lib/rspec/core/bisect/server.rb, line 15 def self.run server = new server.start yield server ensure server.stop end
# File lib/rspec/core/bisect/server.rb, line 23 def capture_run_results(expected_failures=[]) self.expected_failures = expected_failures self.latest_run_results = nil run_output = yield latest_run_results || raise_bisect_failed(run_output) end
# File lib/rspec/core/bisect/server.rb, line 42 def drb_port @drb_port ||= Integer(@drb.uri[/\d+$/]) end
# File lib/rspec/core/bisect/server.rb, line 30 def start # Only allow remote DRb requests from this machine. DRb.install_acl ACL.new(%w[ deny all allow localhost allow 127.0.0.1 ]) # We pass `nil` as the first arg to allow it to pick a DRb port. @drb = DRb.start_service(nil, self) end
# File lib/rspec/core/bisect/server.rb, line 38 def stop @drb.stop_service end
# File lib/rspec/core/bisect/server.rb, line 54 def raise_bisect_failed(run_output) raise BisectFailedError, "Failed to get results from the spec " "run. Spec run output:\n\n#{run_output}" end