Sha256: 04b7054761909fe12eb35c8869dcc1739f550f620598acf803a81643aebc7090

Contents?: true

Size: 1.04 KB

Versions: 79

Compression:

Stored size: 1.04 KB

Contents

# encoding: utf-8
require "childprocess"
module ClientProcessHelpers
  def start_client(timeout = 5)
    @client_out = Stud::Temporary.file
    @client_out.sync

    @process = ChildProcess.build(*cmd)
    @process.duplex = true
    @process.io.stdout = @process.io.stderr = @client_out
    ChildProcess.posix_spawn = true
    @process.start

    sleep_interval = 0.1
    max_iterations = (timeout / sleep_interval).to_i
    max_iterations.times do
      sleep(sleep_interval)
      if @process.alive?
        break
      end
    end
    #Note - can not raise error here if process failed to start, since some tests expects for the process to not start due to invalid configuration

    @client_out.rewind

    # can be used to helper debugging when a test fails
    @execution_output = @client_out.read
  end

  def is_alive
    return @process.alive?
  end

  def stop_client
    unless @process.nil?
      begin
        @process.poll_for_exit(5)
      rescue ChildProcess::TimeoutError
        Process.kill("KILL", @process.pid)
      end
    end
  end
end

Version data entries

79 entries across 79 versions & 1 rubygems

Version Path
logstash-input-beats-7.0.2-java spec/support/client_process_helpers.rb
logstash-input-beats-6.9.3-java spec/support/client_process_helpers.rb
logstash-input-beats-6.9.2-java spec/support/client_process_helpers.rb
logstash-input-beats-7.0.1-java spec/support/client_process_helpers.rb
logstash-input-beats-7.0.0-java spec/support/client_process_helpers.rb
logstash-input-beats-6.9.1-java spec/support/client_process_helpers.rb
logstash-input-beats-6.9.0-java spec/support/client_process_helpers.rb
logstash-input-beats-6.8.4-java spec/support/client_process_helpers.rb
logstash-input-beats-6.8.3-java spec/support/client_process_helpers.rb
logstash-input-beats-6.8.2-java spec/support/client_process_helpers.rb
logstash-input-beats-6.8.1-java spec/support/client_process_helpers.rb
logstash-input-beats-6.8.0-java spec/support/client_process_helpers.rb
logstash-input-beats-6.7.2-java spec/support/client_process_helpers.rb
logstash-input-beats-6.7.1-java spec/support/client_process_helpers.rb
logstash-input-beats-6.7.0-java spec/support/client_process_helpers.rb
logstash-input-beats-6.6.4-java spec/support/client_process_helpers.rb
logstash-input-beats-6.6.3-java spec/support/client_process_helpers.rb
logstash-input-beats-6.6.2-java spec/support/client_process_helpers.rb
logstash-input-beats-6.6.1-java spec/support/client_process_helpers.rb
logstash-input-beats-6.6.0-java spec/support/client_process_helpers.rb