aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--test/ruby/envutil.rb15
2 files changed, 14 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 5a40954f3f..51863f6bbc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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