mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Document File.{setuid?,setgid?,sticky?} support for IO objects [Bug #13972]
* file.c (rb_file_setuid_p): rdoc for IO object support (rb_file_sgid_p): ditto (rb_file_sticky_p): ditto * NEWS: inform users of new feature * test/file/test_file_exhaustive.rb (io_open): wrapper for bare IO object (test_suid): test for bare IO support (test_sgid): ditto (test_sticky): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
9f5d9d3169
commit
39a840d084
2 changed files with 26 additions and 3 deletions
6
file.c
6
file.c
|
@ -1948,6 +1948,8 @@ check3rdbyte(VALUE fname, int mode)
|
|||
* 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
|
||||
|
@ -1965,6 +1967,8 @@ rb_file_suid_p(VALUE obj, VALUE fname)
|
|||
* 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
|
||||
|
@ -1982,6 +1986,8 @@ rb_file_sgid_p(VALUE obj, VALUE fname)
|
|||
* 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
|
||||
|
|
|
@ -495,22 +495,39 @@ class TestFileExhaustive < Test::Unit::TestCase
|
|||
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
|
||||
|
|
Loading…
Reference in a new issue