aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/envutil.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/envutil.rb')
-rw-r--r--test/ruby/envutil.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/ruby/envutil.rb b/test/ruby/envutil.rb
index 4d0ff6b6a2..35aad6d3bc 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
+