Project

General

Profile

Bug #13972 ยป 0001-file.c-document-File.-setuid-setgid-sticky-support-f.patch

normalperson (Eric Wong), 10/04/2017 08:47 PM

View differences:

NEWS
* File.stat, File.exist?, and other rb_stat()-using methods release GVL
[Bug #13941]
* File.rename releases GVL [Feature #13951]
* File.setuid?, File.setgid?, File.sticky? accept bare IO objects
in addition to file names.
* Hash
file.c
* File.setuid?(file_name) -> true or false
*
* Returns <code>true</code> if the named file has the setuid bit set.
*
* _file_name_ can be an IO object.
*/
static VALUE
......
* File.setgid?(file_name) -> true or false
*
* Returns <code>true</code> if the named file has the setgid bit set.
*
* _file_name_ can be an IO object.
*/
static VALUE
......
* File.sticky?(file_name) -> true or false
*
* Returns <code>true</code> if the named file has the sticky bit set.
*
* _file_name_ can be an IO object.
*/
static VALUE
test/ruby/test_file_exhaustive.rb
assert_file.grpowned?(utf8_file)
end if POSIX
def io_open(file_name)
# avoid File.open since we do not want #to_path
io = IO.for_fd(IO.sysopen(file_name))
yield io
ensure
io&.close
end
def test_suid
assert_file.not_setuid?(regular_file)
assert_file.not_setuid?(utf8_file)
assert_file.setuid?(suidfile) if suidfile
if suidfile
assert_file.setuid?(suidfile)
io_open(suidfile) { |io| assert_file.setuid?(io) }
end
end
def test_sgid
assert_file.not_setgid?(regular_file)
assert_file.not_setgid?(utf8_file)
assert_file.setgid?(sgidfile) if sgidfile
if sgidfile
assert_file.setgid?(sgidfile)
io_open(sgidfile) { |io| assert_file.setgid?(io) }
end
end
def test_sticky
assert_file.not_sticky?(regular_file)
assert_file.not_sticky?(utf8_file)
assert_file.sticky?(stickyfile) if stickyfile
if stickyfile
assert_file.sticky?(stickyfile)
io_open(stickyfile) { |io| assert_file.sticky?(io) }
end
end
def test_path_identical_p
-
    (1-1/1)