Class: Testjour::SlaveServer
- Inherits:
-
Object
- Object
- Testjour::SlaveServer
- Defined in:
- lib/testjour/slave_server.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.start ⇒ Object
11 12 13 14 15 16 |
# File 'lib/testjour/slave_server.rb', line 11 def self.start server = self.new DRb.start_service(nil, server) uri = URI.parse(DRb.uri) return uri.port.to_i end |
.stop ⇒ Object
18 19 20 |
# File 'lib/testjour/slave_server.rb', line 18 def self.stop DRb.stop_service end |
Instance Method Details
#run(queue_server_url, cucumber_options) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/testjour/slave_server.rb', line 50 def run(queue_server_url, ) if running? Testjour.logger.info "Not running because pid exists: #{@pid}" return false end pid_queue = Queue.new @pid = nil Thread.new do Thread.current.abort_on_exception = true cmd = command_to_run_for(queue_server_url, ) Testjour.logger.debug "Starting runner with command: #{cmd}" status, stdout, stderr = systemu(cmd) { |pid| pid_queue << pid } Testjour.logger.warn stderr if stderr.strip.size > 0 end @pid = pid_queue.pop Testjour.logger.info "Running tests from queue #{queue_server_url} on PID #{@pid}" return @pid end |
#status ⇒ Object
22 23 24 |
# File 'lib/testjour/slave_server.rb', line 22 def status running? ? "busy" : "available" end |
#warm(queue_server_url) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/testjour/slave_server.rb', line 26 def warm(queue_server_url) if running? Testjour.logger.info "Not running because pid exists: #{@pid}" return false end pid_queue = Queue.new @pid = nil Thread.new do Thread.current.abort_on_exception = true cmd = command_to_warm_for(queue_server_url) Testjour.logger.debug "Starting warm with command: #{cmd}" status, stdout, stderr = systemu(cmd) { |pid| pid_queue << pid } Testjour.logger.warn stderr if stderr.strip.size > 0 end @pid = pid_queue.pop Testjour.logger.info "Warming from server #{queue_server_url} on PID #{@pid}" return @pid end |