diff options
Diffstat (limited to 'spec/ruby/core/process/uid_spec.rb')
| -rw-r--r-- | spec/ruby/core/process/uid_spec.rb | 63 |
1 files changed, 18 insertions, 45 deletions
diff --git a/spec/ruby/core/process/uid_spec.rb b/spec/ruby/core/process/uid_spec.rb index 1b561f47e0..1e218ef4fe 100644 --- a/spec/ruby/core/process/uid_spec.rb +++ b/spec/ruby/core/process/uid_spec.rb @@ -1,4 +1,4 @@ -require File.expand_path('../../../spec_helper', __FILE__) +require_relative '../../spec_helper' describe "Process.uid" do platform_is_not :windows do @@ -18,67 +18,40 @@ describe "Process.uid" do end describe "Process.uid=" do - platform_is_not :windows do it "raises TypeError if not passed an Integer" do - lambda { Process.uid = Object.new }.should raise_error(TypeError) + -> { Process.uid = Object.new }.should.raise(TypeError) end as_user do it "raises Errno::ERPERM if run by a non privileged user trying to set the superuser id" do - lambda { (Process.uid = 0)}.should raise_error(Errno::EPERM) + -> { (Process.uid = 0)}.should.raise(Errno::EPERM) end it "raises Errno::ERPERM if run by a non privileged user trying to set the superuser id from username" do - lambda { Process.uid = "root" }.should raise_error(Errno::EPERM) + -> { Process.uid = "root" }.should.raise(Errno::EPERM) end end as_superuser do describe "if run by a superuser" do - with_feature :fork do - it "sets the real user id for the current process" do - read, write = IO.pipe - pid = Process.fork do - begin - read.close - Process.uid = 1 - write << Process.uid - write.close - rescue Exception => e - write << e << e.backtrace - end - Process.exit! - end - write.close - uid = read.gets - uid.should == "1" - Process.wait pid - end + it "sets the real user id for the current process" do + code = <<-RUBY + Process.uid = 1 + puts Process.uid + RUBY + ruby_exe(code).should == "1\n" + end - it "sets the real user id if preceded by Process.euid=id" do - read, write = IO.pipe - pid = Process.fork do - begin - read.close - Process.euid = 1 - Process.uid = 1 - write << Process.uid - write.close - rescue Exception => e - write << e << e.backtrace - end - Process.exit! - end - write.close - uid = read.gets - uid.should == "1" - Process.wait pid - end + it "sets the real user id if preceded by Process.euid=id" do + code = <<-RUBY + Process.euid = 1 + Process.uid = 1 + puts Process.uid + RUBY + ruby_exe(code).should == "1\n" end end end end - - it "needs to be reviewed for spec completeness" end |
