* lib/tempfile.rb (Tempfile#size): stat by path name when it is

closed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2010-05-01 13:54:01 +00:00
Родитель 9ad152e555
Коммит 5e02a28a8b
3 изменённых файлов: 14 добавлений и 9 удалений

Просмотреть файл

@ -1,4 +1,7 @@
Sat May 1 22:41:05 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
Sat May 1 22:53:57 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/tempfile.rb (Tempfile#size): stat by path name when it is
closed.
* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):
keep the first trace.

Просмотреть файл

@ -255,6 +255,8 @@ class Tempfile < DelegateClass(File)
if @tmpfile
@tmpfile.flush
@tmpfile.stat.size
elsif @tmpname
File.size(@tmpname)
else
0
end

Просмотреть файл

@ -153,7 +153,7 @@ class TestTempfile < Test::Unit::TestCase
end
def test_finalizer_does_not_unlink_if_already_unlinked
assert_in_out_err('-rtempfile', <<-'EOS') do |(filename), (error)|
assert_in_out_err('-rtempfile', <<-'EOS') do |(filename,), (error,)|
file = Tempfile.new('foo')
path = file.path
puts path
@ -165,7 +165,7 @@ File.open(path, "w").close
assert_nil error
end
assert_in_out_err('-rtempfile', <<-'EOS') do |(filename), (error)|
assert_in_out_err('-rtempfile', <<-'EOS') do |(filename,), (error,)|
file = Tempfile.new('foo')
path = file.path
file.unlink
@ -191,11 +191,11 @@ File.open(path, "w").close
t = tempfile("foo")
t.write("hello")
t.close
assert 5, File.size(t.path)
assert_equal 5, File.size(t.path)
end
def test_tempfile_is_unlinked_when_ruby_exits
assert_in_out_err('-rtempfile', <<-'EOS') do |(filename), (error)|
assert_in_out_err('-rtempfile', <<-'EOS') do |(filename,), (error,)|
puts Tempfile.new('foo').path
EOS
assert !File.exist?(filename)
@ -205,16 +205,16 @@ puts Tempfile.new('foo').path
def test_size_flushes_buffer_before_determining_file_size
t = tempfile("foo")
t.write("hello")
assert 0, File.size(t.path)
assert 5, t.size
assert 5, File.size(t.path)
assert_equal 0, File.size(t.path)
assert_equal 5, t.size
assert_equal 5, File.size(t.path)
end
def test_size_works_if_file_is_closed
t = tempfile("foo")
t.write("hello")
t.close
assert 5, t.size
assert_equal 5, t.size
end
def test_concurrency