Bug #2575: a test fail for IO#readpartial is broken on *BSD
http://redmine.ruby-lang.org/issues/show/2575
e$B5/I<<Te(B: Takahiro K.
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal
e$B%+%F%4%je(B: core
ruby -v: ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-netbsdelf]
IO#readpartiale$B$N%F%9%H$K<:GT$7$^$9!#3NG’$Oe(BNetBSD 5.0_STABLE,
current (5.99.22)e$B$He(BFreeBSD
7.2-STABLEe$B!"$$$:$l$be(Bi386e$B4D6-$G9T$$$^$7$?!#e(B
test/ruby/test_io.rb e$B$Ne(B test_readpartial_pos() e$B$K!"e(B
open("foo", "w") {|f| f << "abc" }
open("foo") {|f|
f.seek(0)
assert_equal("ab", f.readpartial(2))
assert_equal(2, f.pos)
}
e$B$H$$$C$?%F%9%H$,$"$j$^$9!#$3$3$G!“e(Bf.pose$B$N7k2L$,%<%m$H$J$C$F%F%9%H$K<:GT$7$^$9!#D>A0$Ne(Bf.seek(0)e$B$r:o=|$9$k$H%F%9%[email protected]$9$k$h$&$K$J$j$^$9$,!”$3$NM-L5$G7k2L$,JQ$o$C$F$O$J$j$^$;$s!#e(B
io.ce$B$Ne(Bio_getpartial()e$B$G$O!"e(B
read_buffered_data()e$B$Ge(BFILEe$B9=B$BN$KFI$9~$:Q$$N%G!<%?$rFI$s$G$$k!#e(B
2. e$BFI$9~$:Q$_$N%G!<%?$,$J$1$l$P!"e(B
2.1 read(2)e$B$G%G!<%?$re(BFILEe$B9=B$BN$KFI$_9~$`!#e(B
2.2
e$B8e$Ge(Bfflush(3)e$B$r8F$S=P$7$Fe(BFILEe$B9=B$BN$NFbMF$N@09g@-$,<h$le(B(e$B$k$3$H$re(B
e$B4|BT$7$F$$e(B)e$B$k!#e(B
e$B$H$$$C$?$3$H$r$7$F$$$^$9!#e(B2.1e$B$N=hM}$O!"e(B
merge revision(s) 21913:
* io.c (io_getpartial): fflush after read for updating pos in
FILE.
not portable, I guess. [ruby-core:21561]
e$B$H%3%_%C%H$5$l$F$$$^$9!#$3$3$G?dB,$5$l$F$$$k$h$&$K<B:]$K0?“@-$O$”$j$^$;$s!#$=$b$=$b!“e(Bfflush(3)e$B$G9=B$BN$NFbMF$,E,@Z$K$J$5$l$k$H4|BT$9$k$3$H$KL5M}$,$”$k5$$b$7$^$9!#e(B
*BSDe$B$Ne(BFILEe$B9=B$BNe(B(DragonFlye$B$OITL@e(B)e$B$K$O!"e(B
o e$B%U%!%$%kCf$N%*%U%;%C%H$r<($99=B$BN%a%s%Pe(B _offset
e$B$,$"$j$^$9!#e(B
o
e$B9=B$BN%a%s%Pe(B_flagse$B$N%U%i%C%0CM$K$O!“e(B_offsete$B$NCM$,<B:]$KM-8z$+$I$&$+$re(B
e$B<($9e(B __SOFF e$B$H$$$&CM$,$”$j$^$9!#e(B
e$B$=$7$F!"$3$NLdBj$O0J2<$N$h$&$K@bL@$G$-$^$9!#e(B
(1)
f.seek(0)e$B$r8F$S=P$9$He(Bfseeko(3)e$B$,8F$S=P$5$l$F!"e(B_offsete$B$KCM$He(B__SOFFe$B$,e(B
e$B%U%i%C%0$,@_Dj$5$l$^$9!#$3$N$H$-$Ne(B _offset
e$B$,8e$Ne(Bf.telle$B$NLa$jCM$H$J$Ce(B
e$B$F$$$^$9!#e(B
(2)
f.seek(0)e$B$r8F$S=P$5$J$$$H!"e(Bf.telle$B$N8F$S=P$5$l$?;~E@$Ge(B_offsete$B$KCM$He(B
__SOFFe$B$,@_Dj$5$l$k$?$a!"4|BT$7$?CM$,JV$k$3$H$K$J$j$^$9!#e(B
e$B2r7h:v$H$7$F$O!“e(Bfflush(3)e$B$N8F$S=P$7$KBe$($Fe(B__SOFFe$B$r%”%s%;%C%H$7$F$+$ie(Bftello(3)e$B$r8F$S=P$9$H$$$C$?$3$H$,9M$($i$l$^$9!#<h$j4:$($:$N%Q%C%A$G!"LdBj$,2r7h$9$k$3$H$r3NG’$7$^$7$?!#e(B