ruby-changes:29202
From: nobu <ko1@a...>
Date: Wed, 12 Jun 2013 17:06:16 +0900 (JST)
Subject: [ruby-changes:29202] nobu:r41254 (trunk): test_io.rb: fix test error
nobu 2013-06-12 17:05:56 +0900 (Wed, 12 Jun 2013) New Revision: 41254 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=41254 Log: test_io.rb: fix test error * test/ruby/test_io.rb (TestIO#test_write_32bit_boundary): retry to remove the temporary file while EACCES occurs because of syncing in the system probably. rescue ENOSPC from IO#tell. [ruby-core:55457] [Bug #8519] Modified files: trunk/test/ruby/test_io.rb Index: test/ruby/test_io.rb =================================================================== --- test/ruby/test_io.rb (revision 41253) +++ test/ruby/test_io.rb (revision 41254) @@ -2690,6 +2690,23 @@ End https://github.com/ruby/ruby/blob/trunk/test/ruby/test_io.rb#L2690 def test_write_32bit_boundary bug8431 = '[ruby-core:55098] [Bug #8431]' make_tempfile {|t| + def t.close(unlink_now = false) + # TODO: Tempfile should deal with this delay on Windows? + # NOTE: re-opening with O_TEMPORARY does not work. + path = self.path + ret = super + if unlink_now + begin + File.unlink(path) + rescue Errno::ENOENT + rescue Errno::EACCES + sleep(2) + retry + end + end + ret + end + assert_separately(["-", bug8431, t.path], <<-"end;", timeout: 30) msg = ARGV.shift f = open(ARGV[0], "wb") @@ -2698,9 +2715,12 @@ End https://github.com/ruby/ruby/blob/trunk/test/ruby/test_io.rb#L2715 # this will consume very long time or fail by ENOSPC on a # filesystem which sparse file is not supported f.write('1') + pos = f.tell + rescue Errno::ENOSPC + skip "non-sparse file system" rescue SystemCallError else - assert_equal(0x1_0000_0000, f.tell, msg) + assert_equal(0x1_0000_0000, pos, msg) end end; } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/