summaryrefslogtreecommitdiff
path: root/spec/ruby/core/process/waitall_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/process/waitall_spec.rb')
-rw-r--r--spec/ruby/core/process/waitall_spec.rb30
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