diff options
Diffstat (limited to 'spec/ruby/core/process/euid_spec.rb')
-rw-r--r-- | spec/ruby/core/process/euid_spec.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/spec/ruby/core/process/euid_spec.rb b/spec/ruby/core/process/euid_spec.rb index a2f1bbf42e..c1ec4171d0 100644 --- a/spec/ruby/core/process/euid_spec.rb +++ b/spec/ruby/core/process/euid_spec.rb @@ -21,9 +21,19 @@ describe "Process.euid=" do -> { Process.euid = Object.new }.should raise_error(TypeError) end + it "sets the effective user id to its own uid if given the username corresponding to its own uid" do + raise unless Process.uid == Process.euid + + require "etc" + user = Etc.getpwuid(Process.uid).name + + Process.euid = user + Process.euid.should == Process.uid + end + as_user do it "raises Errno::ERPERM if run by a non superuser trying to set the superuser id" do - -> { (Process.euid = 0)}.should raise_error(Errno::EPERM) + -> { Process.euid = 0 }.should raise_error(Errno::EPERM) end it "raises Errno::ERPERM if run by a non superuser trying to set the superuser id from username" do |