diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-02-08 07:08:32 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-02-08 07:08:32 +0000 |
commit | 49c5a3da6f7d17cb7864eebc564533754725c31d (patch) | |
tree | 3a93ee4ae997ae319a76c518ac9ef66a50b3c278 | |
parent | 70fc27b7facb8c73580428450989b66425c08177 (diff) | |
download | ruby-49c5a3da6f7d17cb7864eebc564533754725c31d.tar.gz |
envutil.rb: check termsig
* test/ruby/envutil.rb (assert_separately): check also terminating
signal not only if core dumped.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | test/ruby/envutil.rb | 7 |
2 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Fri Feb 8 16:08:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * test/ruby/envutil.rb (assert_separately): check also terminating + signal not only if core dumped. + Fri Feb 8 13:12:04 2013 Eric Hodel <drbrain@segment7.net> * lib/rdoc/generator/darkfish.rb: Set encoding on output template to diff --git a/test/ruby/envutil.rb b/test/ruby/envutil.rb index b640dcd124..02215120dd 100644 --- a/test/ruby/envutil.rb +++ b/test/ruby/envutil.rb @@ -249,6 +249,8 @@ module Test assert(status.success?, m) end + ABORT_SIGNALS = Signal.list.values_at(*%w"ILL ABRT BUS SEGV") + def assert_separately(args, file = nil, line = nil, src, **opt) unless file and line loc, = caller_locations(1,1) @@ -261,8 +263,9 @@ module Test puts [Marshal.dump($!)].pack('m'), "assertions=\#{self._assertions}" end eom - stdout, _stderr, status = EnvUtil.invoke_ruby(args, src, true, true, opt) - assert(!status.coredump?, FailDesc[status]) + stdout, stderr, status = EnvUtil.invoke_ruby(args, src, true, true, opt) + abort = status.coredump? || (status.signaled? && ABORT_SIGNALS.include?(status.termsig)) + assert(!abort, FailDesc[status, stderr]) self._assertions += stdout[/^assertions=(\d+)/, 1].to_i res = Marshal.load(stdout.unpack("m")[0]) return unless res |