-
Notifications
You must be signed in to change notification settings - Fork 479
/
scheduler_task_test.rb
39 lines (34 loc) · 1.09 KB
/
scheduler_task_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# vim:fileencoding=utf-8
require_relative 'test_helper'
context 'Resque::Scheduler' do
setup do
Resque::Scheduler.configure do |c|
c.dynamic = false
c.poll_sleep_amount = 0.1
end
Resque.redis.flushall
Resque::Scheduler.quiet = true
Resque::Scheduler.clear_schedule!
Resque::Scheduler.send(:instance_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.05)
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