* test/ruby/envutil.rb (assert_pattern_list) Renamed from

assert_regexp_list.
  Show multiline string in multi lines.

* test/-ext-/bug_reporter/test_bug_reporter.rb: Use
  assert_pattern_list.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2014-10-15 08:59:46 +00:00
parent 723cee93c4
commit e1ba2d418a
4 changed files with 39 additions and 9 deletions

View File

@ -1,3 +1,12 @@
Wed Oct 15 17:53:28 2014 Tanaka Akira <akr@fsij.org>
* test/ruby/envutil.rb (assert_pattern_list) Renamed from
assert_regexp_list.
Show multiline string in multi lines.
* test/-ext-/bug_reporter/test_bug_reporter.rb: Use
assert_pattern_list.
Wed Oct 15 12:26:58 2014 Tanaka Akira <akr@fsij.org>
* test/ruby/envutil.rb (assert_regexp_list): New assertion method.

View File

@ -4,13 +4,21 @@ require_relative "../../ruby/envutil"
class TestBugReporter < Test::Unit::TestCase
def test_bug_reporter_add
expected_stderr = /Sample bug reporter: 12345/
expected_stderr = [
:*,
/\[BUG\]\sSegmentation\sfault.*\n/,
/#{ Regexp.quote(RUBY_DESCRIPTION) }\n\n/,
:*,
/Sample bug reporter: 12345/,
:*
]
tmpdir = Dir.mktmpdir
assert_in_out_err(["--disable-gems", "-r-test-/bug_reporter/bug_reporter",
"-C", tmpdir],
"register_sample_bug_reporter(12345); Process.kill :SEGV, $$",
[],
expected_stderr, nil)
args = ["--disable-gems", "-r-test-/bug_reporter/bug_reporter",
"-C", tmpdir]
stdin = "register_sample_bug_reporter(12345); Process.kill :SEGV, $$"
_, stderr, status = EnvUtil.invoke_ruby(args, stdin, false, true)
assert_pattern_list(expected_stderr, stderr)
ensure
FileUtils.rm_rf(tmpdir) if tmpdir
end

View File

@ -482,7 +482,7 @@ eom
#
# pattern_list is anchored.
# Use [:*, regexp, :*] for non-anchored match.
def assert_regexp_list(pattern_list, actual, message=nil)
def assert_pattern_list(pattern_list, actual, message=nil)
rest = actual
anchored = true
pattern_list.each {|pattern|
@ -495,7 +495,20 @@ eom
match = pattern.match(rest)
end
unless match
msg = message(msg) { "Expected #{mu_pp pattern}\nto match #{mu_pp rest}" }
msg = message(msg) {
expect_msg = "Expected #{mu_pp pattern}\n"
if /\n[^\n]+\n/ =~ rest
actual_mesg = "to match\n"
prefix = " "
rest.scan(/.*\n+/) {
actual_mesg << ' ' << $&.inspect << "+\n"
}
actual_mesg.sub!(/\+\n\z/, '')
else
actual_mesg = "to match #{mu_pp rest}"
end
expect_msg + actual_mesg
}
assert false, msg
end
rest = match.post_match

View File

@ -562,7 +562,7 @@ class TestRubyOptions < Test::Unit::TestCase
EnvUtil.diagnostic_reports(Signal.signame(signo), EnvUtil.rubybin, status.pid, Time.now)
end
assert_regexp_list(SEGVTest::ExpectedStderrList, stderr, message)
assert_pattern_list(SEGVTest::ExpectedStderrList, stderr, message)
status
end