Details
-
Type:
Bug
-
Status:
Reopened
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: JRuby 1.4, JRuby 1.6.3
-
Fix Version/s: JRuby 1.6.4
-
Component/s: Core Classes/Modules, Intro, RubySpec
-
Labels:None
-
Number of attachments :
Description
FileTest.identical? is currently implemented in such a way that it only compares stat info of two files, so different files with same stats would be considered equal, which is obviously wrong. This happens more often on Windows, since stat info (dates) are with granularity 1 sec or so. So the two files created quickly one after another would be considered the same!
This leads to rubyspec failures:
D:\work\jruby-dev\rubyspec.git>mspec -t j core\filetest\identical_spec.rb jruby 1.5.0.dev (ruby 1.8.7 patchlevel 174) (2010-01-10 c3a86fb) (Java HotSpot(TM) Client VM 1.6.0_17) [x86-java] ...F 1) FileTest.identical? returns true if both named files are identical FAILED Expected true to be false D:/work/jruby-dev/rubyspec.git/shared/file/identical.rb:41 D:/work/jruby-dev/rubyspec.git/core/filetest/identical_spec.rb:4 D:/work/jruby-dev/rubyspec.git/core/filetest/identical_spec.rb:55:in `load' D:/work/jruby-dev/mspec.git/bin/mspec-run:8
MRI compares not only the sizes and stat info, but the file names as well (after proper expanding).
This is the patch file for this issue. If you think it's not correct, send me a message in order to code a new fix.