diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | test/ruby/envutil.rb | 15 |
2 files changed, 14 insertions, 5 deletions
@@ -1,3 +1,7 @@ +Mon Jan 28 17:51:38 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * test/ruby/envutil.rb (assert_separately): imply no core dump. + Mon Jan 28 12:32:31 2013 Tanaka Akira <akr@fsij.org> * ext/fcntl/fcntl.c: update document. use "file descriptor" instead diff --git a/test/ruby/envutil.rb b/test/ruby/envutil.rb index 34963df653..b640dcd124 100644 --- a/test/ruby/envutil.rb +++ b/test/ruby/envutil.rb @@ -189,6 +189,10 @@ module Test child_env = [] end out, _, status = EnvUtil.invoke_ruby(child_env + %W'-W0', testsrc, true, :merge_to_stdout, opt) + assert !status.signaled?, FailDesc[status, message, out] + end + + FailDesc = proc do |status, message = "", out = ""| pid = status.pid faildesc = proc do signo = status.termsig @@ -201,17 +205,17 @@ module Test sigdesc << " (core dumped)" end full_message = '' - if !message.empty? + if message and !message.empty? full_message << message << "\n" end full_message << "pid #{pid} killed by #{sigdesc}" - if !out.empty? - out << "\n" if /\n\z/ !~ out + if out and !out.empty? full_message << "\n#{out.gsub(/^/, '| ')}" + full_message << "\n" if /\n\z/ !~ full_message end full_message end - assert !status.signaled?, faildesc + faildesc end def assert_in_out_err(args, test_stdin = "", test_stdout = [], test_stderr = [], message = nil, opt={}) @@ -257,7 +261,8 @@ module Test puts [Marshal.dump($!)].pack('m'), "assertions=\#{self._assertions}" end eom - stdout, _stderr, _status = EnvUtil.invoke_ruby(args, src, true, true, opt) + stdout, _stderr, status = EnvUtil.invoke_ruby(args, src, true, true, opt) + assert(!status.coredump?, FailDesc[status]) self._assertions += stdout[/^assertions=(\d+)/, 1].to_i res = Marshal.load(stdout.unpack("m")[0]) return unless res |