Test/ruby/test_beginendblock.rb

e$B!!$5$5$@$G$9!%e(B

e$B!!e(Btest/ruby/test_beginendblock.rb
e$B$G<:GT$9$k<!$N%F%9%H$G$9$,!$e(B

def test_should_propagate_signaled
ruby = EnvUtil.rubybin
out = IO.popen([ruby, ‘-e’, ‘STDERR.reopen(STDOUT)’,
‘-e’, ‘at_exit{Process.kill(:INT, $$)}’]) {|f|
f.read
}
assert_match /Interrupt$/, out
Process.kill(0, 0) rescue return # check if signal works
assert_nil $?.exitstatus
assert_equal Signal.list[“INT”], $?.termsig
end

e$B!!MW$9$k$K!$%7%0%J%k$,FO$/A0$K%W%m%;%9$,=*N;$7$F$7$^$C$F;DG0!$$H$$$&e(B
e$BOC$G$9!%$3$l$O!$e(B

at_exit{Process.kill(:INT, $$)}
e$B$re(B
at_exit{Process.kill(:INT, $$); sleep}
e$B$J$je(B
at_exit{Process.kill(:INT, $$); loop{}}

e$B$J$j$KJQ99$9$k$3$H$G2r7h$G$-$^$9$,!$$I$&$7$^$7$g$&$+!%$=$l$H$b!$$3$&e(B
e$B$$$&e(B kill e$B$KBP$9$k1~Ez$OB(:B$K=PMh$J$$$H$^$:$$$G$7$g$&$+!%e(B

e$B!!$A$J$_$K!$e(B0.01 sec
e$B$4$H$K%]!<%j%s%0$9$k$h$&$K$J$C$F$$$^$9!%CY$$!)e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:32332] test/ruby/test_beginendblock.rb”
on Thu, 22 Nov 2007 19:12:28 +0900, SASADA Koichi [email protected]
writes:

|e$B!!e(Btest/ruby/test_beginendblock.rb e$B$G<:GT$9$k<!$N%F%9%H$G$9$,!$e(B

|e$B!!MW$9$k$K!$%7%0%J%k$,FO$/A0$K%W%m%;%9$,=*N;$7$F$7$^$C$F;DG0!$$H$$$&e(B
|e$BOC$G$9!%$3$l$O!$e(B
|
| at_exit{Process.kill(:INT, $$)}
|e$B$re(B
| at_exit{Process.kill(:INT, $$); sleep}
|e$B$J$je(B
| at_exit{Process.kill(:INT, $$); loop{}}
|
|e$B$J$j$KJQ99$9$k$3$H$G2r7h$G$-$^$9$,!$$I$&$7$^$7$g$&$+!%$=$l$H$b!$$3$&e(B
|e$B$$$&e(B kill e$B$KBP$9$k1~Ez$OB(:B$K=PMh$J$$$H$^$:$$$G$7$g$&$+!%e(B

e$B0JA0$+$i%7%0%J%k$N%A%'%C%/$O%]!<%j%s%0$7$F$$$?$N$G!VB(:B$K$Ge(B
e$B$-$J$$$H$^$:$$!W$C$F$3$H$O$J$$$H;W$$$^$9!#$N$G!"e(Bsleepe$B$rF~$le(B
e$B$k$J$I$7$F$bBg>fIW$J$N$G$O$J$$$G$7$g$&$+!#e(B

|e$B!!$A$J$_$K!$e(B0.01 sec e$B$4$H$K%]!<%j%s%0$9$k$h$&$K$J$C$F$$$^$9!%CY$$!)e(B

e$B;d$N4p=`$G$O==J,$G$9$,!#e(B