summaryrefslogtreecommitdiff
path: root/qa/qa/specs/loop_runner.rb
blob: f97f5cbbd81a4737792a52a181dc5b4e7f0f5f6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# frozen_string_literal: true

module QA
  module Specs
    module LoopRunner
      module_function

      def run(args)
        start = Time.now
        loop_duration = 60 * QA::Runtime::Env.gitlab_qa_loop_runner_minutes

        while Time.now - start < loop_duration
          RSpec::Core::Runner.run(args.flatten, $stderr, $stdout).tap do |status|
            abort if status.nonzero?
          end
          RSpec.clear_examples
        end
      end
    end
  end
end