mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Move spec/rubyspec to spec/ruby for consistency
* Other ruby implementations use the spec/ruby directory. [Misc #13792] [ruby-core:82287] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
75bfc6440d
commit
1d15d5f080
4370 changed files with 0 additions and 0 deletions
|
@ -1,90 +0,0 @@
|
|||
describe :process_fork, shared: true do
|
||||
platform_is :windows do
|
||||
it "returns false from #respond_to?" do
|
||||
# Workaround for Kernel::Method being public and losing the "non-respond_to? magic"
|
||||
mod = @object.class.name == "KernelSpecs::Method" ? Object.new : @object
|
||||
mod.respond_to?(:fork).should be_false
|
||||
mod.respond_to?(:fork, true).should be_false
|
||||
end
|
||||
|
||||
it "raises a NotImplementedError when called" do
|
||||
lambda { @object.fork }.should raise_error(NotImplementedError)
|
||||
end
|
||||
end
|
||||
|
||||
platform_is_not :windows do
|
||||
before :each do
|
||||
@file = tmp('i_exist')
|
||||
rm_r @file
|
||||
end
|
||||
|
||||
after :each do
|
||||
rm_r @file
|
||||
end
|
||||
|
||||
it "returns status zero" do
|
||||
pid = Process.fork { exit! 0 }
|
||||
_, result = Process.wait2(pid)
|
||||
result.exitstatus.should == 0
|
||||
end
|
||||
|
||||
it "returns status zero" do
|
||||
pid = Process.fork { exit 0 }
|
||||
_, result = Process.wait2(pid)
|
||||
result.exitstatus.should == 0
|
||||
end
|
||||
|
||||
it "returns status zero" do
|
||||
pid = Process.fork {}
|
||||
_, result = Process.wait2(pid)
|
||||
result.exitstatus.should == 0
|
||||
end
|
||||
|
||||
it "returns status non-zero" do
|
||||
pid = Process.fork { exit! 42 }
|
||||
_, result = Process.wait2(pid)
|
||||
result.exitstatus.should == 42
|
||||
end
|
||||
|
||||
it "returns status non-zero" do
|
||||
pid = Process.fork { exit 42 }
|
||||
_, result = Process.wait2(pid)
|
||||
result.exitstatus.should == 42
|
||||
end
|
||||
|
||||
it "returns nil for the child process" do
|
||||
child_id = @object.fork
|
||||
if child_id == nil
|
||||
touch(@file) { |f| f.write 'rubinius' }
|
||||
Process.exit!
|
||||
else
|
||||
Process.waitpid(child_id)
|
||||
end
|
||||
File.exist?(@file).should == true
|
||||
end
|
||||
|
||||
it "runs a block in a child process" do
|
||||
pid = @object.fork {
|
||||
touch(@file) { |f| f.write 'rubinius' }
|
||||
Process.exit!
|
||||
}
|
||||
Process.waitpid(pid)
|
||||
File.exist?(@file).should == true
|
||||
end
|
||||
|
||||
it "marks threads from the parent as killed" do
|
||||
t = Thread.new { sleep }
|
||||
pid = @object.fork {
|
||||
touch(@file) do |f|
|
||||
f.write Thread.current.alive?
|
||||
f.write t.alive?
|
||||
end
|
||||
Process.exit!
|
||||
}
|
||||
Process.waitpid(pid)
|
||||
t.kill
|
||||
t.join
|
||||
File.read(@file).should == "truefalse"
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue