diff options
Diffstat (limited to 'test/ruby')
| -rw-r--r-- | test/ruby/test_file.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/ruby/test_file.rb b/test/ruby/test_file.rb index 528193dabb..50f101867a 100644 --- a/test/ruby/test_file.rb +++ b/test/ruby/test_file.rb @@ -1,5 +1,6 @@ require 'test/unit' require 'tempfile' +require "thread" require_relative 'envutil' require_relative 'ut_eof' @@ -118,6 +119,31 @@ class TestFile < Test::Unit::TestCase } end + def test_truncate_size + Tempfile.create("test-truncate") do |f| + q1 = Queue.new + q2 = Queue.new + + Thread.new do + data = '' + 64.times do |i| + data << i.to_s + f.rewind + f.print data + f.truncate(data.bytesize) + q1.push data.bytesize + q2.pop + end + q1.push nil + end + + while size = q1.pop + assert_equal size, File.size(f.path) + q2.push true + end + end + end + def test_read_all_extended_file [nil, {:textmode=>true}, {:binmode=>true}].each do |mode| Tempfile.create("test-extended-file", mode) {|f| |
