summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/ruby/core/file/link_spec.rb2
-rw-r--r--spec/ruby/core/file/stat/nlink_spec.rb2
-rw-r--r--spec/ruby/library/socket/socket/listen_spec.rb12
-rw-r--r--spec/ruby/shared/file/identical.rb6
-rw-r--r--test/fileutils/test_fileutils.rb9
-rw-r--r--test/pathname/test_pathname.rb20
-rw-r--r--test/ruby/test_file_exhaustive.rb2
7 files changed, 44 insertions, 9 deletions
diff --git a/spec/ruby/core/file/link_spec.rb b/spec/ruby/core/file/link_spec.rb
index cc63c76aa3..a5d5b4815f 100644
--- a/spec/ruby/core/file/link_spec.rb
+++ b/spec/ruby/core/file/link_spec.rb
@@ -13,7 +13,7 @@ describe "File.link" do
rm_r @link, @file
end
- platform_is_not :windows do
+ platform_is_not :windows, :android do
it "link a file with another" do
File.link(@file, @link).should == 0
File.should.exist?(@link)
diff --git a/spec/ruby/core/file/stat/nlink_spec.rb b/spec/ruby/core/file/stat/nlink_spec.rb
index 2dd0bff124..7143923cfc 100644
--- a/spec/ruby/core/file/stat/nlink_spec.rb
+++ b/spec/ruby/core/file/stat/nlink_spec.rb
@@ -11,7 +11,7 @@ describe "File::Stat#nlink" do
rm_r @link, @file
end
- platform_is_not :windows do
+ platform_is_not :windows, :android do
it "returns the number of links to a file" do
File::Stat.new(@file).nlink.should == 1
File.link(@file, @link)
diff --git a/spec/ruby/library/socket/socket/listen_spec.rb b/spec/ruby/library/socket/socket/listen_spec.rb
index 5de70d6db0..986d9f8259 100644
--- a/spec/ruby/library/socket/socket/listen_spec.rb
+++ b/spec/ruby/library/socket/socket/listen_spec.rb
@@ -34,8 +34,16 @@ describe 'Socket#listen' do
@server.close
end
- it 'raises Errno::EOPNOTSUPP' do
- -> { @server.listen(1) }.should raise_error(Errno::EOPNOTSUPP)
+ platform_is_not :android do
+ it 'raises Errno::EOPNOTSUPP' do
+ -> { @server.listen(1) }.should raise_error(Errno::EOPNOTSUPP)
+ end
+ end
+
+ platform_is :android do
+ it 'raises Errno::EACCES' do
+ -> { @server.listen(1) }.should raise_error(Errno::EACCES)
+ end
end
end
diff --git a/spec/ruby/shared/file/identical.rb b/spec/ruby/shared/file/identical.rb
index ecc21727ca..b7a2904839 100644
--- a/spec/ruby/shared/file/identical.rb
+++ b/spec/ruby/shared/file/identical.rb
@@ -9,7 +9,11 @@ describe :file_identical, shared: true do
touch(@file2) { |f| f.puts "file2" }
rm_r @link
- File.link(@file1, @link)
+ begin
+ File.link(@file1, @link)
+ rescue Errno::EACCES
+ File.symlink(@file1, @link)
+ end
end
after :each do
diff --git a/test/fileutils/test_fileutils.rb b/test/fileutils/test_fileutils.rb
index 8a546ccf1b..fbc8e3dd83 100644
--- a/test/fileutils/test_fileutils.rb
+++ b/test/fileutils/test_fileutils.rb
@@ -72,8 +72,13 @@ class TestFileUtils < Test::Unit::TestCase
end
def check_have_hardlink?
- File.link nil, nil
- rescue NotImplementedError
+ Dir.mktmpdir do |dir|
+ Dir.chdir(dir) do
+ File.write "dummy", "dummy"
+ File.link "dummy", "hardlink"
+ end
+ end
+ rescue NotImplementedError, Errno::EACCES
return false
rescue
return true
diff --git a/test/pathname/test_pathname.rb b/test/pathname/test_pathname.rb
index dadcd1398c..43cef4849f 100644
--- a/test/pathname/test_pathname.rb
+++ b/test/pathname/test_pathname.rb
@@ -345,9 +345,26 @@ class TestPathname < Test::Unit::TestCase
def has_symlink?
begin
File.symlink("", "")
- rescue NotImplementedError, Errno::EACCES
+ rescue NotImplementedError
return false
rescue Errno::ENOENT
+ return false
+ rescue Errno::EACCES
+ return false
+ end
+ return true
+ end
+
+ def has_hardlink?
+ begin
+ with_tmpchdir("rubytest-pathname") {|dir|
+ File.write("dummy", "dummy")
+ File.link("dummy", "hardlink")
+ }
+ rescue NotImplementedError
+ return false
+ rescue Errno::EACCES
+ return false
end
return true
end
@@ -886,6 +903,7 @@ class TestPathname < Test::Unit::TestCase
end
def test_make_link
+ return if !has_hardlink?
with_tmpchdir('rubytest-pathname') {|dir|
open("a", "w") {|f| f.write "abc" }
Pathname("l").make_link(Pathname("a"))
diff --git a/test/ruby/test_file_exhaustive.rb b/test/ruby/test_file_exhaustive.rb
index 975bcb6bc2..ac11e0cc85 100644
--- a/test/ruby/test_file_exhaustive.rb
+++ b/test/ruby/test_file_exhaustive.rb
@@ -130,7 +130,7 @@ class TestFileExhaustive < Test::Unit::TestCase
@hardlinkfile = make_tmp_filename("hardlinkfile")
begin
File.link(regular_file, @hardlinkfile)
- rescue NotImplementedError, Errno::EINVAL # EINVAL for Windows Vista
+ rescue NotImplementedError, Errno::EINVAL, Errno::EACCES # EINVAL for Windows Vista, EACCES for Android Termux
@hardlinkfile = nil
end
@hardlinkfile