From: Tanaka Akira Date: 2005-01-01T22:53:23+09:00 Subject: [ruby-dev:25383] test_copy_entry(TestFileUtils) fail: entry data/all != tmp/all make test-all で次の失敗に出会いました。 1) Failure: test_copy_entry(TestFileUtils) [/home/akr/ruby/head-ruby/ruby/test/fileutils/fileasserts.rb:17:in `assert_same_entry' /home/akr/ruby/head-ruby/ruby/test/fileutils/fileasserts.rb:16:in `_wrap_assertion' /home/akr/ruby/head-ruby/ruby/test/fileutils/fileasserts.rb:16:in `assert_same_entry' ./fileutils/test_fileutils.rb:754:in `test_copy_entry' ./fileutils/test_fileutils.rb:751:in `each_sample_file' ./fileutils/test_fileutils.rb:145:in `each' ./fileutils/test_fileutils.rb:145:in `each_sample_file' ./fileutils/test_fileutils.rb:751:in `test_copy_entry']: entry data/all != tmp/all 調べてみると、 Index: lib/fileutils.rb =================================================================== RCS file: /src/ruby/lib/fileutils.rb,v retrieving revision 1.51 diff -u -p -r1.51 fileutils.rb --- lib/fileutils.rb 1 Jan 2005 08:59:48 -0000 1.51 +++ lib/fileutils.rb 1 Jan 2005 13:51:22 -0000 @@ -507,6 +507,7 @@ module FileUtils def _copy_content(src, dest) st = stat(src) + sleep 2 File.open(src, 'rb') {|r| File.open(dest, 'wb', st.mode) {|w| fu_copy_stream0 r, w, (fu_blksize(st) || fu_default_blksize()) という変更を加えて、次のようにすると再現するようです。 % ./ruby -Ilib test/runner.rb test/fileutils/test_fileutils.rb -n test_copy_entry Loaded suite test_fileutils.rb Started F Finished in 2.011766 seconds. 1) Failure: test_copy_entry(TestFileUtils) [/home/akr/ruby/tmp-ruby/ruby/test/fileutils/fileasserts.rb:17:in `assert_same_entry' /home/akr/ruby/tmp-ruby/ruby/test/fileutils/fileasserts.rb:16:in `_wrap_assertion' /home/akr/ruby/tmp-ruby/ruby/test/fileutils/fileasserts.rb:16:in `assert_same_entry' ./test/fileutils/test_fileutils.rb:754:in `test_copy_entry' ./test/fileutils/test_fileutils.rb:751:in `each_sample_file' ./test/fileutils/test_fileutils.rb:145:in `each' ./test/fileutils/test_fileutils.rb:145:in `each_sample_file' ./test/fileutils/test_fileutils.rb:751:in `test_copy_entry']: entry data/a != tmp/a 1 tests, 2 assertions, 1 failures, 0 errors sleep をいれて失敗するようになるのは変なんじゃないでしょうか。 -- [田中 哲][たなか あきら][Tanaka Akira]