Sha256: 22def0472c49952fb40a8b1cde5b97bcea3d3c6559ac53755f22c45232e3b93f

Contents?: true

Size: 1 KB

Versions: 7

Compression:

Stored size: 1 KB

Contents

require_relative 'test_helper'

context "Resque::Scheduler" do
  setup do
    Resque::Scheduler.dynamic = false
    Resque.redis.flushall
    Resque::Scheduler.mute = true
    Resque::Scheduler.clear_schedule!
    Resque::Scheduler.send(:class_variable_set, :@@scheduled_jobs, {})
    Resque::Scheduler.send(:instance_variable_set, :@shutdown, false)
  end

  test "shutdown raises Interrupt when sleeping" do
    Thread.current.expects(:raise).with(Interrupt)
    Resque::Scheduler.send(:instance_variable_set, :@th, Thread.current)
    Resque::Scheduler.send(:instance_variable_set, :@sleeping, true)
    Resque::Scheduler.shutdown
  end

  test "sending TERM to scheduler breaks out of poll_sleep" do
    Resque::Scheduler.expects(:release_master_lock!)
    fork do
      sleep(0.5)
      system("kill -TERM #{Process.ppid}")
      exit!
    end

    assert_raises SystemExit do
      Resque::Scheduler.run
    end

    Resque::Scheduler.unstub(:release_master_lock!)
    Resque::Scheduler.release_master_lock!
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
resque-scheduler-2.5.5 test/scheduler_task_test.rb
resque-scheduler-2.5.4 test/scheduler_task_test.rb
resque-scheduler-2.5.3 test/scheduler_task_test.rb
resque-scheduler-2.5.2 test/scheduler_task_test.rb
resque-scheduler-2.5.1 test/scheduler_task_test.rb
resque-scheduler-2.5.0 test/scheduler_task_test.rb
resque-scheduler-2.4.0 test/scheduler_task_test.rb