summaryrefslogtreecommitdiff
path: root/spec/support/timeout_helper.rb
blob: 8b1c14ad2d55109af8e39cc11252e1898528a0e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
module TimeoutHelper
  def command_exists?(command)
    _, status = Gitlab::Popen.popen(%W{ #{command} 1 echo })
    status == 0
  rescue Errno::ENOENT
    false
  end

  def any_timeout_command_exists?
    command_exists?('timeout') || command_exists?('gtimeout')
  end

  def timeout_command
    @timeout_command ||=
      if command_exists?('timeout')
        'timeout'
      elsif command_exists?('gtimeout')
        'gtimeout'
      else
        ''
      end
  end
end