From 8d4e7591464d083ee15868b5a0d6cf9dbbfe0aa6 Mon Sep 17 00:00:00 2001 From: akr Date: Fri, 22 Feb 2008 16:12:32 +0000 Subject: * 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: http://svn.ruby-lang.org/repos/ruby/trunk@15579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_process.rb | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb index 1e9ad4d45..167f21ae4 100644 --- a/test/ruby/test_process.rb +++ b/test/ruby/test_process.rb @@ -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 -- cgit