mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
spec/ruby/core/process/setpriority_spec.rb: allow to run under docker
Docker container is not always able to lower the nice value even if the euid is a root. It depends upon the configuration of docker which cannot check from the container itself. This change does check it by actually trying to lower the value first. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
925a722ae2
commit
7453cdba1b
1 changed files with 20 additions and 5 deletions
|
@ -29,11 +29,26 @@ describe "Process.setpriority" do
|
|||
end
|
||||
|
||||
as_superuser do
|
||||
it "sets the scheduling priority for a specified user" do
|
||||
p = Process.getpriority(Process::PRIO_USER, 0)
|
||||
Process.setpriority(Process::PRIO_USER, 0, p + 1).should == 0
|
||||
Process.getpriority(Process::PRIO_USER, 0).should == (p + 1)
|
||||
Process.setpriority(Process::PRIO_USER, 0, p).should == 0
|
||||
p = Process.getpriority(Process::PRIO_USER, 0)
|
||||
# The nice value is a value in the range -20 to 19.
|
||||
# This test tries to change the nice value to +-1, so it cannot run if p == -20 || p == 19.
|
||||
if -20 < p && p < 19
|
||||
begin
|
||||
# Check if we can lower the nice value or not.
|
||||
#
|
||||
# We are not always able to do it even as a root.
|
||||
# Docker container is not always able to do it depending upon the configuration,
|
||||
# which cannot know from the container itself.
|
||||
Process.setpriority(Process::PRIO_USER, 0, p - 1)
|
||||
Process.setpriority(Process::PRIO_USER, 0, p)
|
||||
|
||||
it "sets the scheduling priority for a specified user" do
|
||||
Process.setpriority(Process::PRIO_USER, 0, p + 1).should == 0
|
||||
Process.getpriority(Process::PRIO_USER, 0).should == (p + 1)
|
||||
Process.setpriority(Process::PRIO_USER, 0, p).should == 0
|
||||
end
|
||||
rescue Errno::EACCES
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue