# Trunk/1.9.2 $B$G(B test\_io.rb $B$,(B test\_print\_separators $B$G8G$^$k(B

**URL:** <https://www.ruby-forum.com/t/trunk-1-9-2-b-g-b-test-io-rb-b-b-test-print-separators-b-g8g-k-b/189188>\
**Category:** Development\
**Created:** [May 26, 2010, 11:29am UTC](https://www.ruby-forum.com/t/trunk-1-9-2-b-g-b-test-io-rb-b-b-test-print-separators-b-g8g-k-b/189188 "2010-05-26T11:29:41Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tomoyuki\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c0e974/32.png) [@Tomoyuki\_C](https://www.ruby-forum.com/u/Tomoyuki_C)\
**Post date:** [May 26, 2010, 11:29am UTC](https://www.ruby-forum.com/t/trunk-1-9-2-b-g-b-test-io-rb-b-b-test-print-separators-b-g8g-k-b/189188/1 "2010-05-26T11:29:41Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Tomoyuki\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c0e974/32.png) [@Tomoyuki\_C](https://www.ruby-forum.com/u/Tomoyuki_C)\
**Post date:** [May 31, 2010, 1:35pm UTC](https://www.ruby-forum.com/t/trunk-1-9-2-b-g-b-test-io-rb-b-b-test-print-separators-b-g8g-k-b/189188/2 "2010-05-31T13:35:34Z")

</div>

e$B6a1J$H?=$7$^$9!#e(B

e$B$=$N8e$$$/$D$+$N%^%7%s\>e$GDI;n$7$F$\_$Fe(B

2.6.9-89 e$B$^$Ge(B e$B"\*e(B e$B8G$^$ke(B  
2.6.18-164 e$B0J9\_e(B e$B"\*e(B e$B:F8=$7$J$$e(B

e$B$He(B Kernel Version e$B$,?7$7$$$HH/@8$7$J$/$J$k$h$&$G$7$?$N$Ge(B  
e$B4D6-$NLdBj$@$m$&$H9M$($F?\<DI$$$O$7$J$$$3$H$K$7$^$7$?!#e(B

e$B$=$l$O$$$$$N$G$9$,!“e(Btest\_io.rb e$B$Ne(B $SAFE = 4 e$B$N%F%9%H$,e(B  
Timeout.timeout e$BFb$Ne(B  
Thread#kill e$B$GNc30$,H/@8$9$k$?$a$KK\Mh3NG’$7$?$$e(B SecurityError  
e$B$NH/@8$re(B  
e$B%F%9%H$G$-$F$$$J$$LdBj$,$”$j$^$9$N$G!"0J2\<$N%Q%C%A$r$48!F$$/$@$5$$!#e(B

# Index: test/ruby/test\_io.rb

— test/ruby/test\_io.rb (revision 28108)  
+++ 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

Chikanaga Tomoyuki  
Nippon Control System Corp.
