summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-19 18:55:32 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-19 18:55:32 +0000
commitc151679cc3fba31952109b39747efc7aa66b57fa (patch)
tree159008526a4008198fbd4357db3109bc7f8bcf8b
parentc4380069b7ccbb99f8e1418b558639de51cfe21d (diff)
r61950 changes mode_t to ushort on FreeBSD and Darwin
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--spec/ruby/core/file/chmod_spec.rb47
-rw-r--r--spec/ruby/core/file/umask_spec.rb31
2 files changed, 64 insertions, 14 deletions
diff --git a/spec/ruby/core/file/chmod_spec.rb b/spec/ruby/core/file/chmod_spec.rb
index a741ebb966..f42dea6585 100644
--- a/spec/ruby/core/file/chmod_spec.rb
+++ b/spec/ruby/core/file/chmod_spec.rb
@@ -15,7 +15,7 @@ describe "File#chmod" do
@file.chmod(0755).should == 0
end
- platform_is_not :freebsd, :netbsd, :openbsd do
+ platform_is_not :freebsd, :netbsd, :openbsd, :darwin do
it "always succeeds with any numeric values" do
vals = [-2**30, -2**16, -2**8, -2, -1,
-0.5, 0, 1, 2, 5.555575, 16, 32, 64, 2**8, 2**16, 2**30]
@@ -25,9 +25,8 @@ describe "File#chmod" do
end
end
- # -256, -2 and -1 raise Errno::E079 on FreeBSD
# -256, -2 and -1 raise Errno::EFTYPE on NetBSD
- platform_is :freebsd, :netbsd do
+ platform_is :netbsd do
it "always succeeds with any numeric values" do
vals = [-2**30, -2**16, #-2**8, -2, -1,
-0.5, 0, 1, 2, 5.555575, 16, 32, 64, 2**8, 2**16, 2**30]
@@ -38,7 +37,7 @@ describe "File#chmod" do
end
# -256, -2 and -1 raise Errno::EINVAL on OpenBSD
- platform_is :openbsd do
+ platform_is :freebsd, :openbsd, :darwin do
it "always succeeds with any numeric values" do
vals = [#-2**30, -2**16, -2**8, -2, -1,
-0.5, 0, 1, 2, 5.555575, 16, 32, 64, 2**8]#, 2**16, 2**30
@@ -47,6 +46,7 @@ describe "File#chmod" do
}
end
end
+
it "invokes to_int on non-integer argument" do
mode = File.stat(@filename).mode
(obj = mock('mode')).should_receive(:to_int).and_return(mode)
@@ -123,7 +123,7 @@ describe "File.chmod" do
@count.should == 1
end
- platform_is_not :freebsd, :netbsd, :openbsd do
+ platform_is_not :freebsd, :netbsd, :openbsd, :darwin do
it "always succeeds with any numeric values" do
vals = [-2**30, -2**16, -2**8, -2, -1,
-0.5, 0, 1, 2, 5.555575, 16, 32, 64, 2**8, 2**16, 2**30]
@@ -133,9 +133,8 @@ describe "File.chmod" do
end
end
- # -256, -2 and -1 raise Errno::E079 on FreeBSD
# -256, -2 and -1 raise Errno::EFTYPE on NetBSD
- platform_is :freebsd, :netbsd do
+ platform_is :netbsd do
it "always succeeds with any numeric values" do
vals = [-2**30, -2**16, #-2**8, -2, -1,
-0.5, 0, 1, 2, 5.555575, 16, 32, 64, 2**8, 2**16, 2**30]
@@ -145,14 +144,46 @@ describe "File.chmod" do
end
end
- platform_is :openbsd do
+ platform_is :darwin do
+ it "succeeds with valid values" do
+ vals = [-2**8, -2, -1, -0.5, 0, 1, 2, 5.555575, 16, 32, 64, 2**8]
+ vals.each { |v|
+ lambda { File.chmod(v, @file) }.should_not raise_error
+ }
+ end
+
+ it "fails with invalid values" do
+ vals = [-2**30, -2**16, 2**16, 2**30]
+ vals.each { |v|
+ lambda { File.chmod(v, @file) }.should raise_error(RangeError)
+ }
+ end
+ end
+
+ platform_is :freebsd, :openbsd do
it "succeeds with valid values" do
vals = [-0.5, 0, 1, 2, 5.555575, 16, 32, 64, 2**8]
vals.each { |v|
lambda { File.chmod(v, @file) }.should_not raise_error
}
end
+ end
+
+ # -256, -2 and -1 raise Errno::EFTYPE on FreeBSD
+ platform_is :freebsd do
+ it "fails with invalid values" do
+ vals = [-2**30, -2**16, 2**16, 2**30]
+ vals.each { |v|
+ lambda { File.chmod(v, @file) }.should raise_error(RangeError)
+ }
+ vals = [-2**8, -2, -1, 65535]
+ vals.each { |v|
+ lambda { File.chmod(v, @file) }.should raise_error(Errno::EFTYPE)
+ }
+ end
+ end
+ platform_is :openbsd do
it "fails with invalid values" do
vals = [-2**30, -2**16, -2**8, -2, -1, 2**16, 2**30]
vals.each { |v|
diff --git a/spec/ruby/core/file/umask_spec.rb b/spec/ruby/core/file/umask_spec.rb
index 2286bf064f..53a07b6a54 100644
--- a/spec/ruby/core/file/umask_spec.rb
+++ b/spec/ruby/core/file/umask_spec.rb
@@ -30,12 +30,31 @@ describe "File.umask" do
end
end
- it "always succeeds with any integer values" do
- vals = [-2**30, -2**16, -2**8, -2,
- -1.5, -1, 0.5, 0, 1, 2, 7.77777, 16, 32, 64, 2**8, 2**16, 2**30]
- vals.each { |v|
- lambda { File.umask(v) }.should_not raise_error
- }
+ platform_is_not :freebsd, :darwin do
+ it "always succeeds with any integer values" do
+ vals = [-2**30, -2**16, -2**8, -2,
+ -1.5, -1, 0.5, 0, 1, 2, 7.77777, 16, 32, 64, 2**8, 2**16, 2**30]
+ vals.each { |v|
+ lambda { File.umask(v) }.should_not raise_error
+ }
+ end
+ end
+
+ platform_is :freebsd, :darwin do
+ it "always succeeds with any integer values" do
+ vals = [-2**8, -2,
+ -1.5, -1, 0.5, 0, 1, 2, 7.77777, 16, 32, 64, 2**8]
+ vals.each { |v|
+ lambda { File.umask(v) }.should_not raise_error
+ }
+ end
+
+ it "fails with invalid values" do
+ vals = [-2**30, -2**16, 2**16, 2**30]
+ vals.each { |v|
+ lambda { File.chmod(v, @file) }.should raise_error(RangeError)
+ }
+ end
end
it "raises ArgumentError when more than one argument is provided" do