зеркало из 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__)
|
require File.expand_path('../../../spec_helper', __FILE__)
|
||||||
|
|
||||||
describe "Process.setpriority" do
|
describe "Process.setpriority" do
|
||||||
# Needs a valid version written for Linux
|
platform_is_not :windows do
|
||||||
platform_is :darwin do
|
|
||||||
it "sets the scheduling priority for a specified process" do
|
it "sets the scheduling priority for a specified process" do
|
||||||
priority = Process.getpriority(Process::PRIO_PROCESS, 0)
|
priority = Process.getpriority(Process::PRIO_PROCESS, 0)
|
||||||
IO.popen('-') do |f|
|
IO.popen('-') do |f|
|
||||||
|
@ -19,31 +18,29 @@ describe "Process.setpriority" do
|
||||||
end
|
end
|
||||||
Process.getpriority(Process::PRIO_PROCESS, 0).should == priority
|
Process.getpriority(Process::PRIO_PROCESS, 0).should == priority
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
# Darwin and FreeBSD don't seem to handle these at all, getting all out of
|
# 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
|
# whack with either permission errors or just the wrong value
|
||||||
platform_is_not :darwin, :freebsd, :windows do
|
platform_is_not :darwin, :freebsd do
|
||||||
it "sets the scheduling priority for a specified process group" do
|
it "sets the scheduling priority for a specified process group" do
|
||||||
priority = Process.getpriority(Process::PRIO_PGRP, 0)
|
priority = Process.getpriority(Process::PRIO_PGRP, 0)
|
||||||
IO.popen('-') do |f|
|
IO.popen('-') do |f|
|
||||||
if f
|
if f
|
||||||
pr = Integer(f.gets)
|
pr = Integer(f.gets)
|
||||||
Integer(f.gets).should == 0
|
Integer(f.gets).should == 0
|
||||||
Integer(f.gets).should == (pr+1)
|
Integer(f.gets).should == (pr+1)
|
||||||
else
|
else
|
||||||
Process.setpgrp
|
Process.setpgrp
|
||||||
pr = Process.getpriority(Process::PRIO_PGRP, 0)
|
pr = Process.getpriority(Process::PRIO_PGRP, 0)
|
||||||
p pr
|
p pr
|
||||||
p Process.setpriority(Process::PRIO_PGRP, 0, pr + 1)
|
p Process.setpriority(Process::PRIO_PGRP, 0, pr + 1)
|
||||||
p Process.getpriority(Process::PRIO_PGRP, 0)
|
p Process.getpriority(Process::PRIO_PGRP, 0)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Process.getpriority(Process::PRIO_PGRP, 0).should == priority
|
||||||
end
|
end
|
||||||
Process.getpriority(Process::PRIO_PGRP, 0).should == priority
|
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
platform_is_not :windows do
|
|
||||||
as_superuser do
|
as_superuser do
|
||||||
it "sets the scheduling priority for a specified user" do
|
it "sets the scheduling priority for a specified user" do
|
||||||
p = Process.getpriority(Process::PRIO_USER, 0)
|
p = Process.getpriority(Process::PRIO_USER, 0)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче