aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/core/signal
diff options
context:
space:
mode:
authoreregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-27 14:25:00 +0000
committereregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-27 14:25:00 +0000
commit8180b5bfc0fe4d4b91b590de9110687294552a8f (patch)
treefb6b2270b710d2a8390a1cb0d0bb76b9cbc1c6ad /spec/ruby/core/signal
parenta6413848153e6c37f6b0fea64e3e871460732e34 (diff)
downloadruby-8180b5bfc0fe4d4b91b590de9110687294552a8f.tar.gz
Update to ruby/spec@09fa86c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/ruby/core/signal')
-rw-r--r--spec/ruby/core/signal/trap_spec.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/spec/ruby/core/signal/trap_spec.rb b/spec/ruby/core/signal/trap_spec.rb
index 867094d6dd..c11c900add 100644
--- a/spec/ruby/core/signal/trap_spec.rb
+++ b/spec/ruby/core/signal/trap_spec.rb
@@ -158,9 +158,28 @@ platform_is_not :windows do
$?.exitstatus.should == 0
end
+ it "returns 'DEFAULT' for the initial SIGINT handler" do
+ ruby_exe('print trap(:INT) { abort }').should == 'DEFAULT'
+ end
+
it "returns SYSTEM_DEFAULT if passed DEFAULT and no handler was ever set" do
Signal.trap("PROF", "DEFAULT").should == "SYSTEM_DEFAULT"
end
+
+ it "accepts 'SYSTEM_DEFAULT' and uses the OS handler for SIGPIPE" do
+ code = <<-RUBY
+ p Signal.trap('PIPE', 'SYSTEM_DEFAULT')
+ r, w = IO.pipe
+ r.close
+ loop { w.write("a"*1024) }
+ RUBY
+ out = ruby_exe(code)
+ status = $?
+ out.should == "nil\n"
+ status.signaled?.should == true
+ status.termsig.should be_kind_of(Integer)
+ Signal.signame(status.termsig).should == "PIPE"
+ end
end
end