2018-03-04 15:09:32 +00:00
|
|
|
require_relative '../../spec_helper'
|
2017-05-07 12:04:49 +00:00
|
|
|
|
|
|
|
describe "Process.setpgid" do
|
2019-04-28 23:20:11 +02:00
|
|
|
platform_is_not :windows do
|
|
|
|
# Must use fork as setpgid(2) gives EACCESS after execve()
|
2017-05-07 12:04:49 +00:00
|
|
|
it "sets the process group id of the specified process" do
|
|
|
|
rd, wr = IO.pipe
|
|
|
|
|
|
|
|
pid = Process.fork do
|
|
|
|
wr.close
|
|
|
|
rd.read
|
|
|
|
rd.close
|
|
|
|
Process.exit!
|
|
|
|
end
|
|
|
|
|
|
|
|
rd.close
|
|
|
|
|
|
|
|
begin
|
|
|
|
Process.getpgid(pid).should == Process.getpgrp
|
|
|
|
Process.setpgid(mock_int(pid), mock_int(pid)).should == 0
|
|
|
|
Process.getpgid(pid).should == pid
|
|
|
|
ensure
|
|
|
|
wr.write ' '
|
|
|
|
wr.close
|
|
|
|
Process.wait pid
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|