diff options
Diffstat (limited to 'spec/ruby/core/process/waitall_spec.rb')
| -rw-r--r-- | spec/ruby/core/process/waitall_spec.rb | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/spec/ruby/core/process/waitall_spec.rb b/spec/ruby/core/process/waitall_spec.rb index bdc1ea7490..f5fbce71c1 100644 --- a/spec/ruby/core/process/waitall_spec.rb +++ b/spec/ruby/core/process/waitall_spec.rb @@ -1,6 +1,9 @@ require_relative '../../spec_helper' +require_relative 'fixtures/common' describe "Process.waitall" do + ProcessSpecs.use_system_ruby(self) + before :all do begin Process.waitall @@ -13,35 +16,28 @@ describe "Process.waitall" do end it "takes no arguments" do - lambda { Process.waitall(0) }.should raise_error(ArgumentError) + -> { Process.waitall(0) }.should.raise(ArgumentError) end platform_is_not :windows do - it "waits for all children" do + it "waits for all children and returns an array of pid/status pairs" do pids = [] - pids << Process.fork { Process.exit! 2 } - pids << Process.fork { Process.exit! 1 } - pids << Process.fork { Process.exit! 0 } - Process.waitall + pids << Process.spawn(ruby_cmd('exit 2')) + pids << Process.spawn(ruby_cmd('exit 1')) + pids << Process.spawn(ruby_cmd('exit 0')) + a = Process.waitall pids.each { |pid| - lambda { Process.kill(0, pid) }.should raise_error(Errno::ESRCH) + -> { Process.kill(0, pid) }.should.raise(Errno::ESRCH) } - end - it "returns an array of pid/status pairs" do - pids = [] - pids << Process.fork { Process.exit! 2 } - pids << Process.fork { Process.exit! 1 } - pids << Process.fork { Process.exit! 0 } - a = Process.waitall - a.should be_kind_of(Array) + a.should.is_a?(Array) a.size.should == 3 pids.each { |pid| pid_status = a.assoc(pid) - pid_status.should be_kind_of(Array) + pid_status.should.is_a?(Array) pid_status.size.should == 2 pid_status.first.should == pid - pid_status.last.should be_kind_of(Process::Status) + pid_status.last.should.is_a?(Process::Status) } end end |
