2003-09-04 16:18:59 +00:00
|
|
|
require 'test/unit'
|
|
|
|
|
|
|
|
$KCODE = 'none'
|
|
|
|
|
|
|
|
class TestSignal < Test::Unit::TestCase
|
|
|
|
def test_signal
|
|
|
|
if defined? Process.kill
|
|
|
|
$x = 0
|
|
|
|
trap "SIGINT", proc{|sig| $x = 2}
|
|
|
|
Process.kill "SIGINT", $$
|
|
|
|
sleep 0.1
|
2003-09-05 11:28:27 +00:00
|
|
|
assert_equal($x, 2)
|
2003-09-04 16:18:59 +00:00
|
|
|
|
|
|
|
trap "SIGINT", proc{raise "Interrupt"}
|
|
|
|
|
|
|
|
x = false
|
|
|
|
begin
|
|
|
|
Process.kill "SIGINT", $$
|
|
|
|
sleep 0.1
|
|
|
|
rescue
|
|
|
|
x = $!
|
|
|
|
end
|
|
|
|
assert(x && /Interrupt/ =~ x.message)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|