mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* test/ruby/test_signal.rb: add tests to achieve over 80% test
coverage of signal.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
bd9030438e
commit
76f2fc8b46
2 changed files with 104 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Fri May 30 22:40:53 2008 Yusuke Endoh <mame@tsg.ne.jp>
|
||||||
|
|
||||||
|
* test/ruby/test_signal.rb: add tests to achieve over 80% test
|
||||||
|
coverage of signal.c.
|
||||||
|
|
||||||
Fri May 30 22:28:03 2008 Yusuke Endoh <mame@tsg.ne.jp>
|
Fri May 30 22:28:03 2008 Yusuke Endoh <mame@tsg.ne.jp>
|
||||||
|
|
||||||
* signal.c (esignal_signo): fix SignalException#signo which returned
|
* signal.c (esignal_signo): fix SignalException#signo which returned
|
||||||
|
|
|
@ -64,4 +64,103 @@ class TestSignal < Test::Unit::TestCase
|
||||||
w0.close
|
w0.close
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_invalid_signal_name
|
||||||
|
return unless Process.respond_to?(:kill)
|
||||||
|
|
||||||
|
assert_raise(ArgumentError) { Process.kill(:XXXXXXXXXX, $$) }
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_signal_exception
|
||||||
|
assert_raise(ArgumentError) { SignalException.new }
|
||||||
|
assert_raise(ArgumentError) { SignalException.new(-1) }
|
||||||
|
assert_raise(ArgumentError) { SignalException.new(:XXXXXXXXXX) }
|
||||||
|
Signal.list.each do |signm, signo|
|
||||||
|
next if signm == "EXIT"
|
||||||
|
assert_equal(SignalException.new(signm).signo, signo)
|
||||||
|
assert_equal(SignalException.new(signm.to_sym).signo, signo)
|
||||||
|
assert_equal(SignalException.new(signo).signo, signo)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_interrupt
|
||||||
|
assert_raise(Interrupt) { raise Interrupt.new }
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_signal2
|
||||||
|
return unless Process.respond_to?(:kill)
|
||||||
|
begin
|
||||||
|
x = false
|
||||||
|
oldtrap = Signal.trap(:INT) {|sig| x = true }
|
||||||
|
GC.start
|
||||||
|
|
||||||
|
assert_raise(ArgumentError) { Process.kill }
|
||||||
|
|
||||||
|
Timeout.timeout(10) do
|
||||||
|
x = false
|
||||||
|
Process.kill(SignalException.new(:INT).signo, $$)
|
||||||
|
nil until x
|
||||||
|
|
||||||
|
x = false
|
||||||
|
Process.kill("INT", $$)
|
||||||
|
nil until x
|
||||||
|
|
||||||
|
x = false
|
||||||
|
Process.kill("SIGINT", $$)
|
||||||
|
nil until x
|
||||||
|
|
||||||
|
x = false
|
||||||
|
o = Object.new
|
||||||
|
def o.to_str; "SIGINT"; end
|
||||||
|
Process.kill(o, $$)
|
||||||
|
nil until x
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_raise(ArgumentError) { Process.kill(Object.new, $$) }
|
||||||
|
|
||||||
|
ensure
|
||||||
|
Signal.trap(:INT, oldtrap) if oldtrap
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_trap
|
||||||
|
return unless Process.respond_to?(:kill)
|
||||||
|
begin
|
||||||
|
oldtrap = Signal.trap(:INT) {|sig| }
|
||||||
|
|
||||||
|
assert_raise(ArgumentError) { Signal.trap }
|
||||||
|
|
||||||
|
assert_raise(SecurityError) do
|
||||||
|
s = proc {}.taint
|
||||||
|
Signal.trap(:INT, s)
|
||||||
|
end
|
||||||
|
|
||||||
|
# FIXME!
|
||||||
|
Signal.trap(:INT, nil)
|
||||||
|
Signal.trap(:INT, "")
|
||||||
|
Signal.trap(:INT, "SIG_IGN")
|
||||||
|
Signal.trap(:INT, "IGNORE")
|
||||||
|
|
||||||
|
Signal.trap(:INT, "SIG_DFL")
|
||||||
|
Signal.trap(:INT, "SYSTEM_DEFAULT")
|
||||||
|
|
||||||
|
Signal.trap(:INT, "EXIT")
|
||||||
|
|
||||||
|
assert_raise(ArgumentError) { Signal.trap(:INT, "xxxxxx") }
|
||||||
|
assert_raise(ArgumentError) { Signal.trap(:INT, "xxxx") }
|
||||||
|
|
||||||
|
Signal.trap(SignalException.new(:INT).signo, "SIG_DFL")
|
||||||
|
|
||||||
|
assert_raise(ArgumentError) { Signal.trap(-1, "xxxx") }
|
||||||
|
|
||||||
|
o = Object.new
|
||||||
|
def o.to_str; "SIGINT"; end
|
||||||
|
Signal.trap(o, "SIG_DFL")
|
||||||
|
|
||||||
|
assert_raise(ArgumentError) { Signal.trap("XXXXXXXXXX", "SIG_DFL") }
|
||||||
|
|
||||||
|
ensure
|
||||||
|
Signal.trap(:INT, oldtrap) if oldtrap
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue