зеркало из https://github.com/github/ruby.git
Enable Process.setpriority for a single process on more platforms.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
ab86387a35
Коммит
a578c375ad
|
@ -1,8 +1,7 @@
|
|||
require File.expand_path('../../../spec_helper', __FILE__)
|
||||
|
||||
describe "Process.setpriority" do
|
||||
# Needs a valid version written for Linux
|
||||
platform_is :darwin do
|
||||
platform_is_not :windows do
|
||||
it "sets the scheduling priority for a specified process" do
|
||||
priority = Process.getpriority(Process::PRIO_PROCESS, 0)
|
||||
IO.popen('-') do |f|
|
||||
|
@ -19,31 +18,29 @@ describe "Process.setpriority" do
|
|||
end
|
||||
Process.getpriority(Process::PRIO_PROCESS, 0).should == priority
|
||||
end
|
||||
end
|
||||
|
||||
# Darwin and FreeBSD don't seem to handle these at all, getting all out of
|
||||
# whack with either permission errors or just the wrong value
|
||||
platform_is_not :darwin, :freebsd, :windows do
|
||||
it "sets the scheduling priority for a specified process group" do
|
||||
priority = Process.getpriority(Process::PRIO_PGRP, 0)
|
||||
IO.popen('-') do |f|
|
||||
if f
|
||||
pr = Integer(f.gets)
|
||||
Integer(f.gets).should == 0
|
||||
Integer(f.gets).should == (pr+1)
|
||||
else
|
||||
Process.setpgrp
|
||||
pr = Process.getpriority(Process::PRIO_PGRP, 0)
|
||||
p pr
|
||||
p Process.setpriority(Process::PRIO_PGRP, 0, pr + 1)
|
||||
p Process.getpriority(Process::PRIO_PGRP, 0)
|
||||
# Darwin and FreeBSD don't seem to handle these at all, getting all out of
|
||||
# whack with either permission errors or just the wrong value
|
||||
platform_is_not :darwin, :freebsd do
|
||||
it "sets the scheduling priority for a specified process group" do
|
||||
priority = Process.getpriority(Process::PRIO_PGRP, 0)
|
||||
IO.popen('-') do |f|
|
||||
if f
|
||||
pr = Integer(f.gets)
|
||||
Integer(f.gets).should == 0
|
||||
Integer(f.gets).should == (pr+1)
|
||||
else
|
||||
Process.setpgrp
|
||||
pr = Process.getpriority(Process::PRIO_PGRP, 0)
|
||||
p pr
|
||||
p Process.setpriority(Process::PRIO_PGRP, 0, pr + 1)
|
||||
p Process.getpriority(Process::PRIO_PGRP, 0)
|
||||
end
|
||||
end
|
||||
Process.getpriority(Process::PRIO_PGRP, 0).should == priority
|
||||
end
|
||||
Process.getpriority(Process::PRIO_PGRP, 0).should == priority
|
||||
end
|
||||
end
|
||||
|
||||
platform_is_not :windows do
|
||||
as_superuser do
|
||||
it "sets the scheduling priority for a specified user" do
|
||||
p = Process.getpriority(Process::PRIO_USER, 0)
|
||||
|
|
Загрузка…
Ссылка в новой задаче