system_timer 1.0 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,121 +0,0 @@
1
- # $: << File.dirname(__FILE__) + '/../ext/xray'
2
- $: << File.dirname(__FILE__) + '/../lib'
3
- $: << File.dirname(__FILE__) + '/../ext/system_timer'
4
- $: << File.dirname(__FILE__) + "/../../../vendor/gems/dust-0.1.4/lib"
5
- $: << File.dirname(__FILE__) + "/../../../vendor/gems/mocha-0.5.3/lib"
6
- require 'test/unit'
7
- require 'system_timer'
8
- require 'dust'
9
- require 'mocha'
10
- require 'stringio'
11
-
12
- functional_tests do
13
-
14
- test "original_ruby_sigalrm_handler is nil after reset" do
15
- SystemTimer.send(:install_ruby_sigalrm_handler)
16
- SystemTimer.send(:reset_original_ruby_sigalrm_handler)
17
- assert_nil SystemTimer.send(:original_ruby_sigalrm_handler)
18
- end
19
-
20
- test "original_ruby_sigalrm_handler is set to existing handler after install_ruby_sigalrm_handler" do
21
- SystemTimer.expects(:trap).with('SIGALRM').returns(:an_existing_handler)
22
- SystemTimer.send(:install_ruby_sigalrm_handler)
23
- assert_equal :an_existing_handler, SystemTimer.send(:original_ruby_sigalrm_handler)
24
- end
25
-
26
- test "restore_original_ruby_sigalrm_handler traps sigalrm using original_ruby_sigalrm_handler" do
27
- SystemTimer.stubs(:original_ruby_sigalrm_handler).returns(:the_original_handler)
28
- SystemTimer.expects(:trap).with('SIGALRM', :the_original_handler)
29
- SystemTimer.send :restore_original_ruby_sigalrm_handler
30
- end
31
-
32
- test "restore_original_ruby_sigalrm_handler resets original_ruby_sigalrm_handler" do
33
- SystemTimer.stubs(:trap)
34
- SystemTimer.expects(:reset_original_ruby_sigalrm_handler)
35
- SystemTimer.send :restore_original_ruby_sigalrm_handler
36
- end
37
-
38
- test "restore_original_ruby_sigalrm_handler reset SIGALRM handler to default when original_ruby_sigalrm_handler is nil" do
39
- SystemTimer.stubs(:original_ruby_sigalrm_handler)
40
- SystemTimer.expects(:trap).with('SIGALRM', 'DEFAULT')
41
- SystemTimer.stubs(:reset_original_ruby_sigalrm_handler)
42
- SystemTimer.send :restore_original_ruby_sigalrm_handler
43
- end
44
-
45
- test "restore_original_ruby_sigalrm_handler resets original_ruby_sigalrm_handler when trap raises" do
46
- SystemTimer.stubs(:trap).returns(:the_original_handler)
47
- SystemTimer.send(:install_ruby_sigalrm_handler)
48
- SystemTimer.expects(:trap).raises("next time maybe...")
49
- SystemTimer.expects(:reset_original_ruby_sigalrm_handler)
50
-
51
- SystemTimer.send(:restore_original_ruby_sigalrm_handler) rescue nil
52
- end
53
-
54
- test "timeout_after raises TimeoutError if block takes too long" do
55
- assert_raises(Timeout::Error) do
56
- SystemTimer.timeout_after(1) {sleep 5}
57
- end
58
- end
59
-
60
- test "timeout_after does not raises Timeout Error if block completes in time" do
61
- SystemTimer.timeout_after(5) {sleep 1}
62
- end
63
-
64
- test "timeout_after returns the value returned by the black" do
65
- assert_equal :block_value, SystemTimer.timeout_after(1) {:block_value}
66
- end
67
-
68
- test "timeout_after raises TimeoutError in thread that called timeout_after" do
69
- raised_thread = nil
70
- other_thread = Thread.new do
71
- begin
72
- SystemTimer.timeout_after(1) {sleep 5}
73
- flunk "Should have timed out"
74
- rescue Timeout::Error
75
- raised_thread = Thread.current
76
- end
77
- end
78
-
79
- other_thread.join
80
- assert_equal other_thread, raised_thread
81
- end
82
-
83
- test "cancelling a timer that was installed restores previous ruby handler for SIG_ALRM" do
84
- begin
85
- fake_original_ruby_handler = proc {}
86
- initial_ruby_handler = trap "SIGALRM", fake_original_ruby_handler
87
- SystemTimer.install_timer(3)
88
- SystemTimer.cleanup_timer
89
- assert_equal fake_original_ruby_handler, trap("SIGALRM", "IGNORE")
90
- ensure # avoid interfering with test infrastructure
91
- trap("SIGALRM", initial_ruby_handler) if initial_ruby_handler
92
- end
93
- end
94
-
95
- test "debug_enabled returns true after enabling debug" do
96
- begin
97
- SystemTimer.disable_debug
98
- SystemTimer.enable_debug
99
- assert_equal true, SystemTimer.debug_enabled?
100
- ensure
101
- SystemTimer.disable_debug
102
- end
103
- end
104
-
105
- test "debug_enabled returns false after disable debug" do
106
- begin
107
- SystemTimer.enable_debug
108
- SystemTimer.disable_debug
109
- assert_equal false, SystemTimer.debug_enabled?
110
- ensure
111
- SystemTimer.disable_debug
112
- end
113
- end
114
-
115
- test "timeout offers an API fully compatible with timeout.rb" do
116
- assert_raises(Timeout::Error) do
117
- SystemTimer.timeout(1) {sleep 5}
118
- end
119
- end
120
-
121
- end