diff options
Diffstat (limited to 'spec/rubyspec/shared/process/abort.rb')
-rw-r--r-- | spec/rubyspec/shared/process/abort.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/rubyspec/shared/process/abort.rb b/spec/rubyspec/shared/process/abort.rb new file mode 100644 index 0000000000..1a25aeffc2 --- /dev/null +++ b/spec/rubyspec/shared/process/abort.rb @@ -0,0 +1,36 @@ +describe :process_abort, shared: true do + before :each do + @stderr, $stderr = $stderr, IOStub.new + end + + after :each do + $stderr = @stderr + end + + it "raises a SystemExit exception" do + lambda { @object.abort }.should raise_error(SystemExit) + end + + it "sets the exception message to the given message" do + lambda { @object.abort "message" }.should raise_error { |e| e.message.should == "message" } + end + + it "sets the exception status code of 1" do + lambda { @object.abort }.should raise_error { |e| e.status.should == 1 } + end + + it "prints the specified message to STDERR" do + lambda { @object.abort "a message" }.should raise_error(SystemExit) + $stderr.should =~ /a message/ + end + + it "coerces the argument with #to_str" do + str = mock('to_str') + str.should_receive(:to_str).any_number_of_times.and_return("message") + lambda { @object.abort str }.should raise_error(SystemExit, "message") + end + + it "raises TypeError when given a non-String object" do + lambda { @object.abort 123 }.should raise_error(TypeError) + end +end |