mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* process.c (rlimit_resource_type): new function.
(rlimit_resource_value): new function. (proc_getrlimit): use rlimit_resource_type to accept symbol and string as resource type. (proc_setrlimit): use rlimit_resource_type and rlimit_resource_value to accept symbol and string as resource type and values. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7b218308e0
commit
310735aa4a
3 changed files with 202 additions and 24 deletions
|
@ -38,4 +38,36 @@ class TestProcess < Test::Unit::TestCase
|
|||
Process.wait pid
|
||||
assert_equal(0, $?.to_i, "#{$?}")
|
||||
end
|
||||
|
||||
def test_rlimit_name
|
||||
return unless rlimit_exist?
|
||||
[
|
||||
:AS, "AS",
|
||||
:CORE, "CORE",
|
||||
:CPU, "CPU",
|
||||
:DATA, "DATA",
|
||||
:FSIZE, "FSIZE",
|
||||
:MEMLOCK, "MEMLOCK",
|
||||
:NOFILE, "NOFILE",
|
||||
:NPROC, "NPROC",
|
||||
:RSS, "RSS",
|
||||
:STACK, "STACK",
|
||||
:SBSIZE, "SBSIZE",
|
||||
].each {|name|
|
||||
if Process.const_defined? "RLIMIT_#{name}"
|
||||
assert_nothing_raised { Process.getrlimit(name) }
|
||||
else
|
||||
assert_raise(ArgumentError) { Process.getrlimit(name) }
|
||||
end
|
||||
}
|
||||
assert_raise(ArgumentError) { Process.getrlimit(:FOO) }
|
||||
assert_raise(ArgumentError) { Process.getrlimit("FOO") }
|
||||
end
|
||||
|
||||
def test_rlimit_value
|
||||
return unless rlimit_exist?
|
||||
assert_raise(ArgumentError) { Process.setrlimit(:CORE, :FOO) }
|
||||
assert_raise(Errno::EPERM) { Process.setrlimit(:NOFILE, :INFINITY) }
|
||||
assert_raise(Errno::EPERM) { Process.setrlimit(:NOFILE, "INFINITY") }
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue