Sha256: 0caf3d802b93574ed664e8075953998318fb4d8cf5e121a68bfda9cbf5aec8dd
Contents?: true
Size: 1.72 KB
Versions: 6
Compression:
Stored size: 1.72 KB
Contents
# frozen_string_literal: true module KnapsackPro module Runners module Queue class BaseRunner TerminationError = Class.new(StandardError) TERMINATION_SIGNALS = %w(HUP INT TERM ABRT QUIT USR1 USR2) @@terminate_process = false def self.run(args) raise NotImplementedError end def self.run_tests(runner, can_initialize_queue, args, exitstatus) raise NotImplementedError end def initialize(adapter_class) @allocator_builder = KnapsackPro::QueueAllocatorBuilder.new(adapter_class) @allocator = allocator_builder.allocator trap_signals end def test_file_paths(args) can_initialize_queue = args.fetch(:can_initialize_queue) executed_test_files = args.fetch(:executed_test_files) allocator.test_file_paths(can_initialize_queue, executed_test_files) end def test_dir allocator_builder.test_dir end private attr_reader :allocator_builder, :allocator def self.child_status $? end def self.handle_signal! raise TerminationError.new('Knapsack Pro process was terminated!') if @@terminate_process end def self.set_terminate_process @@terminate_process = true end def set_terminate_process self.class.set_terminate_process end def trap_signals TERMINATION_SIGNALS.each do |signal| Signal.trap(signal) { puts "#{signal} signal has been received. Terminating Knapsack Pro..." @@terminate_process = true } end end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems