summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/test/ruby/test_process.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_6/test/ruby/test_process.rb')
-rw-r--r--ruby_1_8_6/test/ruby/test_process.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/ruby_1_8_6/test/ruby/test_process.rb b/ruby_1_8_6/test/ruby/test_process.rb
new file mode 100644
index 0000000000..93eb871edc
--- /dev/null
+++ b/ruby_1_8_6/test/ruby/test_process.rb
@@ -0,0 +1,41 @@
+require 'test/unit'
+
+class TestProcess < Test::Unit::TestCase
+ def test_rlimit_availability
+ begin
+ Process.getrlimit(nil)
+ rescue NotImplementedError
+ assert_raise(NotImplementedError) { Process.setrlimit }
+ rescue TypeError
+ assert_raise(ArgumentError) { Process.setrlimit }
+ end
+ end
+
+ def rlimit_exist?
+ Process.getrlimit(nil)
+ rescue NotImplementedError
+ return false
+ rescue TypeError
+ return true
+ end
+
+ def test_rlimit_nofile
+ return unless rlimit_exist?
+ pid = fork {
+ cur_nofile, max_nofile = Process.getrlimit(Process::RLIMIT_NOFILE)
+ begin
+ Process.setrlimit(Process::RLIMIT_NOFILE, 0, max_nofile)
+ rescue Errno::EINVAL
+ exit 0
+ end
+ begin
+ IO.pipe
+ rescue Errno::EMFILE
+ exit 0
+ end
+ exit 1
+ }
+ Process.wait pid
+ assert_equal(0, $?.to_i)
+ end
+end