aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-14 12:53:32 +0000
committerglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-14 12:53:32 +0000
commitb688003aa19c5f30780821e54f5f60470fc8a8aa (patch)
tree9d71ba2ecbcba860da5f56f875e6060b6f04ebec
parent2f61481929483c0bbbaf24bdd317217c84c2b2af (diff)
downloadruby-b688003aa19c5f30780821e54f5f60470fc8a8aa.tar.gz
Fix bug of Tempfile#size if nothing is written [Bug #13198]
* lib/tempfile.rb (Tempfile#size): Fix its behavior when nothing is written. Tempfile#size should return 0 in this case. The patch is from nobu <nobu@ruby-lang.org>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--lib/tempfile.rb2
-rw-r--r--test/test_tempfile.rb7
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/tempfile.rb b/lib/tempfile.rb
index d068dd603c..b36c6638b6 100644
--- a/lib/tempfile.rb
+++ b/lib/tempfile.rb
@@ -227,7 +227,7 @@ class Tempfile < DelegateClass(File)
if !@tmpfile.closed?
@tmpfile.size # File#size calls rb_io_flush_raw()
else
- File.size?(@tmpfile.path)
+ File.size(@tmpfile.path)
end
end
alias length size
diff --git a/test/test_tempfile.rb b/test/test_tempfile.rb
index 7f7f75c7db..a2b272747e 100644
--- a/test/test_tempfile.rb
+++ b/test/test_tempfile.rb
@@ -247,6 +247,13 @@ puts Tempfile.new('foo').path
assert_equal 5, t.size
end
+ def test_size_on_empty_file
+ t = tempfile("foo")
+ t.write("")
+ t.close
+ assert_equal 0, t.size
+ end
+
def test_concurrency
threads = []
tempfiles = []