e$B6a1J$H?=$7$^$9!#e(B
Bug e$B$J$N$+4D6-$,0-$$$N$+C1$Ke(B test
e$B$NLdBj$J$N$+H=CG$,$D$+$J$$$N$Ge(B ML e$B$GJs9p$5$;$FD:$-$^$9!#e(B
ruby_1_9_2 e$B%V%i%s%A$He(B trunk e$B$G!"e(Bmake test-all
e$B$,0J2<$N$h$&$K8G$^$C$F?J$^$J$/$J$C$F$7$^$$$^$9!#e(B
$ uname -a
Linux cluster05 2.4.21-47.ELsmp #1 SMP Wed Jul 5 20:38:41 EDT 2006 i686
i686 i386 GNU/Linux
$ ./ruby-trunk -v
ruby 1.9.3dev (2010-05-25 trunk 28010) [i686-linux]
$ make test-all TESTS=-v
(snip)
TestIO#test_pipe_block_close: 0.00 s: .
TestIO#test_pos: 0.00 s: .
TestIO#test_print: 0.05 s: .
TestIO#test_print_separators:
e$B",$3$3$G;_$^$ke(B
test_io.rb e$B$+$iH4$-=P$7$F:o$C$F$$$/$H0J2<$NFbMF$G:F8=$G$-$^$7$?!#e(B
========= e$B:F8=%9%/%j%W%He(B ==========
begin
Thread.new do
thr = Thread.start { sleep }
$SAFE = 4
thr.kill
end.join
rescue SecurityError
puts “caught SecurityError : #{$!}”
end
#$, = ‘:’
$\ = “\n”
r, w = IO.pipe
w.print(‘a’) # <- hangup here
w.close
r.close
shrink e$B$N2aDx$Ge(B
- $SAFE = 4 e$B$H$9$k%F%9%H$Ge(B Timeout.timeout
e$B$rMxMQ$7$F$$$k$?$a$Ke(B
timeout e$B%a%=%C%I$Ne(B ensure e$B@a$Ne(B Thread#kill e$B$,e(B
SecurityError e$BNc30$re(B
e$BH/@8$5$;$F$7$^$$!"K\Mh%F%9%H$7$?$$e(B SecurityError
e$BNc30$NH/@8$,3NG’$G$-$F$$$J$$e(B - test_print_separators e$B$Ge(B pipe
e$B$NFI$_=q$-$G%V%m%C%/$7$F$$$?e(B
e$B$N$G!"$=$l$>$lB>$N%F%9%H$r;29M$K2sHr$9$k%Q%C%A$r=q$-%F%9%H$ODL$k$h$&$K$J$j$^$7$?!#e(B
e$BKvHx$K%Q%C%A$r$O$j$D$1$F$$$^$9!#e(B
e$B5$$K$J$k$N$O!“e(Btest_print_separators
e$B$NFbMF$O$=$l$@$1$r<B9T$9$l$PDL$k$H$$$&$3$H$G$9!#e(B
pipe
e$B$X$N=q$-9~$$,e(B(e$BFI$=P$5$l$J$$$He(B)e$B%V%m%C%/$7$F$7$^$&$3$H<+BN$O$”$j$&$k$H$O;W$$$^$9$,e(B
e$B$=$NA0$Ke(B SecurityError
e$BNc30$NH/@8!)$,$"$k$+$I$&$+$G%V%m%C%/$;$:$Ke(B pipe e$B$K=q$-9~$a$ke(B
e$B%5%$%:$,JQ2=$7$F$7$^$&$N$,$I$&$b4XO"$,$"$k$h$&$K;W$($J$/$F$9$C$-$j$7$^$;$s!#e(B
e$B$3$l$O$3$&$$$&$b$N$G$7$g$&$+!)$"$k$$$O2?$+%P%0$,@x$s$G$$$kM=C{$G$7$g$&$+!)e(B
e$B0J>e!"$h$m$7$/$*4j$$CW$7$^$9!#e(B
Index: test/ruby/test_io.rb
— test/ruby/test_io.rb (revision 28018)
+++ test/ruby/test_io.rb (working copy)
@@ -740,12 +740,12 @@
end
def safe_4
- Thread.new do
-
Timeout.timeout(10) do -
$SAFE = 4 -
yield -
end - end.join
- unless (Thread.new do
-
$SAFE = 4 -
yield - end.join(10))
-
flunk("timeout in safe_4") - end
end
def pipe(wp, rp)
@@ -1461,15 +1461,16 @@
def test_print_separators
$, = ‘:’
$\ = “\n”
- r, w = IO.pipe
- w.print(‘a’)
- w.print(‘a’,‘b’,‘c’)
- w.close
- assert_equal(“a\n”, r.gets)
- assert_equal(“a:b:c\n”, r.gets)
- assert_nil r.gets
- r.close
- pipe(proc do |w|
-
w.print('a') -
w.print('a','b','c') -
w.close - end, proc do |r|
-
assert_equal("a\n", r.gets) -
assert_equal("a:b:c\n", r.gets) -
assert_nil r.gets -
r.close - end)
ensure
$, = nil
$\ = nil