diff options
author | wyhaines <wyhaines@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-22 20:10:13 +0000 |
---|---|---|
committer | wyhaines <wyhaines@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-22 20:10:13 +0000 |
commit | 2176130373f03ad76c814dd652044f23f9158a69 (patch) | |
tree | bc7722f9b8f380172ead89eb946ac4d406e9a7cc /test | |
parent | 2c0b73f16a997b6b957e435d808a0b60e6afd9d3 (diff) |
io.c: Backport #2267 [ruby-core:26300]; Fix problem with IO so that the file position is correct after a direct write on BSDish platforms like OS X.
test/ruby/test_io.rb: Added a test for the fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@28393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_io.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index 642c8f4430..4bc9593420 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -1,6 +1,33 @@ require 'test/unit' +require 'tempfile' class TestIO < Test::Unit::TestCase + + def make_tempfile + t = Tempfile.new("foo") + t.binmode + t.puts "foo" + t.puts "bar" + t.puts "baz" + t.close + t + end + + def test_pos + t = make_tempfile + + open(t.path, IO::RDWR|IO::CREAT|IO::TRUNC, 0600) do |f| + f.write "Hello" + assert_equal(5, f.pos) + end + open(t.path, IO::RDWR|IO::CREAT|IO::TRUNC, 0600) do |f| + f.sync = true + f.read + f.write "Hello" + assert_equal(5, f.pos) + end + end + def test_gets_rs r, w = IO.pipe w.print "\377xyz" |