From b22e7a6c74d209323c5daa0f3ab1303a92056178 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 3 May 2008 11:57:55 +0000 Subject: * test/ruby/envutil.rb (Test::Unit::Assertions#assert_normal_exit): new method. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/envutil.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'test/ruby/envutil.rb') diff --git a/test/ruby/envutil.rb b/test/ruby/envutil.rb index 4d0ff6b6a..35aad6d3b 100644 --- a/test/ruby/envutil.rb +++ b/test/ruby/envutil.rb @@ -71,3 +71,29 @@ module EnvUtil end module_function :rubyexec end + +module Test + module Unit + module Assertions + public + def assert_normal_exit(testsrc, message = '') + IO.popen([EnvUtil.rubybin, '-W0'], 'w') {|io| + io.write testsrc + } + status = $? + faildesc = nil + if status.signaled? + signo = status.termsig + signame = Signal.list.invert[signo] + sigdesc = "signal #{signo}" + if signame + sigdesc = "SIG#{signame} (#{sigdesc})" + end + full_message = build_message(message, "killed by ?", sigdesc) + end + assert_block(full_message) { !status.signaled? } + end + end + end +end + -- cgit