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

file.c: cygwin behavior

* file.c: recent cygwin hides NTFS specific features.
  [ruby-core:78497] [Bug #13008]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-12-07 02:19:29 +00:00
parent 2201331de3
commit 7eb8d74f34
2 changed files with 18 additions and 2 deletions

2
file.c
View file

@ -2916,7 +2916,7 @@ static const char file_alt_separator[] = {FILE_ALT_SEPARATOR, '\0'};
#endif
#ifndef USE_NTFS
#if defined _WIN32 || defined __CYGWIN__
#if defined _WIN32
#define USE_NTFS 1
#else
#define USE_NTFS 0

View file

@ -7,7 +7,7 @@ require "socket"
class TestFileExhaustive < Test::Unit::TestCase
DRIVE = Dir.pwd[%r'\A(?:[a-z]:|//[^/]+/[^/]+)'i]
POSIX = /cygwin|mswin|bccwin|mingw|emx/ !~ RUBY_PLATFORM
NTFS = !(/cygwin|mingw|mswin|bccwin/ !~ RUBY_PLATFORM)
NTFS = !(/mingw|mswin|bccwin/ !~ RUBY_PLATFORM)
def assert_incompatible_encoding
d = "\u{3042}\u{3044}".encode("utf-16le")
@ -782,6 +782,8 @@ class TestFileExhaustive < Test::Unit::TestCase
a = "#{drive}/\225\\\\"
if File::ALT_SEPARATOR == '\\'
[%W"cp437 #{drive}/\225", %W"cp932 #{drive}/\225\\"]
elsif File.directory?("#{@dir}/\\")
[%W"cp437 /\225", %W"cp932 /\225\\"]
else
[["cp437", a], ["cp932", a]]
end.each do |cp, expected|
@ -1137,6 +1139,20 @@ class TestFileExhaustive < Test::Unit::TestCase
assert_equal(basename, File.basename(file + ".", ".*"))
assert_equal(basename, File.basename(file + "::$DATA", ".*"))
end
else
[regular_file, utf8_file].each do |file|
basename = File.basename(file)
assert_equal(basename + " ", File.basename(file + " "))
assert_equal(basename + ".", File.basename(file + "."))
assert_equal(basename + "::$DATA", File.basename(file + "::$DATA"))
assert_equal(basename + " ", File.basename(file + " ", ".test"))
assert_equal(basename + ".", File.basename(file + ".", ".test"))
assert_equal(basename + "::$DATA", File.basename(file + "::$DATA", ".test"))
assert_equal(basename, File.basename(file + ".", ".*"))
basename.chomp!(".test")
assert_equal(basename, File.basename(file + " ", ".*"))
assert_equal(basename, File.basename(file + "::$DATA", ".*"))
end
end
if File::ALT_SEPARATOR == '\\'
a = "foo/\225\\\\"