summaryrefslogtreecommitdiff
path: root/test/ruby/test_file.rb
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-15 12:38:02 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-15 12:38:02 +0000
commitce3ca270a5433dc1f252c49ba2905e87f2ab2a92 (patch)
tree1f8c094f1a1845bbe63f439dc269168e78ddd5ba /test/ruby/test_file.rb
parentd6af2a2b214203da5b4bb8ef592026db3c4c1a40 (diff)
* test/ruby/test_file.rb (TestFile#test_truncate_size): test for
above changes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_file.rb')
-rw-r--r--test/ruby/test_file.rb26
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|