1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

added workaround for APFS file format.

* TestFileExhaustive#test_atime: It fails with nano-sec precise.
    I changed to use unixtime for this assertion for APFS.
  * TestFileExhaustive#test_expand_path: skip assertion when given
    invalid charactor on APFS.

  [Bug #13816][ruby-core:82383]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
hsbt 2017-09-14 05:04:38 +00:00
parent 3155da024c
commit a5641cdf7a

View file

@ -3,6 +3,7 @@ require "test/unit"
require "fileutils" require "fileutils"
require "tmpdir" require "tmpdir"
require "socket" require "socket"
require '-test-/file'
class TestFileExhaustive < Test::Unit::TestCase class TestFileExhaustive < Test::Unit::TestCase
DRIVE = Dir.pwd[%r'\A(?:[a-z]:|//[^/]+/[^/]+)'i] DRIVE = Dir.pwd[%r'\A(?:[a-z]:|//[^/]+/[^/]+)'i]
@ -572,7 +573,13 @@ class TestFileExhaustive < Test::Unit::TestCase
t2 = File.open(file) {|f| f.atime} t2 = File.open(file) {|f| f.atime}
assert_kind_of(Time, t1) assert_kind_of(Time, t1)
assert_kind_of(Time, t2) assert_kind_of(Time, t2)
assert_equal(t1, t2) # High Sierra's APFS can handle nano-sec precise.
# t1 value is difference from t2 on APFS.
if Bug::File::Fs.fsname(Dir.tmpdir) == "apfs"
assert_equal(t1.to_i, t2.to_i)
else
assert_equal(t1, t2)
end
end end
assert_raise(Errno::ENOENT) { File.atime(nofile) } assert_raise(Errno::ENOENT) { File.atime(nofile) }
end end
@ -749,6 +756,8 @@ class TestFileExhaustive < Test::Unit::TestCase
begin begin
open(file) {} open(file) {}
rescue rescue
# High Sierra's APFS cannot use filenames with undefined character
next if Bug::File::Fs.fsname(Dir.tmpdir) == "apfs"
assert_equal(file, full_path, mesg) assert_equal(file, full_path, mesg)
else else
assert_equal(regular_file, full_path, mesg) assert_equal(regular_file, full_path, mesg)