diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-08-27 14:25:00 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-08-27 14:25:00 +0000 |
commit | 8180b5bfc0fe4d4b91b590de9110687294552a8f (patch) | |
tree | fb6b2270b710d2a8390a1cb0d0bb76b9cbc1c6ad /spec/ruby/core/signal | |
parent | a6413848153e6c37f6b0fea64e3e871460732e34 (diff) | |
download | ruby-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.rb | 19 |
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 |