* test/ruby/envutil.rb (assert_regexp_list): New assertion method.
* test/ruby/test_rubyoptions.rb: Use assert_regexp_list. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7643c2b37d
commit
2386407223
@ -1,3 +1,9 @@
|
||||
Wed Oct 15 12:26:58 2014 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* test/ruby/envutil.rb (assert_regexp_list): New assertion method.
|
||||
|
||||
* test/ruby/test_rubyoptions.rb: Use assert_regexp_list.
|
||||
|
||||
Wed Oct 15 07:21:09 2014 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* enum.c: min(n) drops elements bigger than the n-th maximum element.
|
||||
|
@ -477,6 +477,36 @@ eom
|
||||
AssertFile
|
||||
end
|
||||
|
||||
# pattern_list is an array which contains regexp and :*.
|
||||
# :* means any sequence.
|
||||
#
|
||||
# pattern_list is anchored.
|
||||
# Use [:*, regexp, :*] for non-anchored match.
|
||||
def assert_regexp_list(pattern_list, actual, message=nil)
|
||||
rest = actual
|
||||
anchored = true
|
||||
pattern_list.each {|pattern|
|
||||
if pattern == :*
|
||||
anchored = false
|
||||
else
|
||||
if anchored
|
||||
match = /\A#{pattern}/.match(rest)
|
||||
else
|
||||
match = pattern.match(rest)
|
||||
end
|
||||
unless match
|
||||
msg = message(msg) { "Expected #{mu_pp pattern}\nto match #{mu_pp rest}" }
|
||||
assert false, msg
|
||||
end
|
||||
rest = match.post_match
|
||||
anchored = true
|
||||
end
|
||||
}
|
||||
if anchored
|
||||
assert_equal("", rest)
|
||||
end
|
||||
end
|
||||
|
||||
class << (AssertFile = Struct.new(:failure_message).new)
|
||||
include Assertions
|
||||
def assert_file_predicate(predicate, *args)
|
||||
|
@ -536,7 +536,9 @@ class TestRubyOptions < Test::Unit::TestCase
|
||||
--\sC\slevel\sbacktrace\sinformation\s-------------------------------------------\n
|
||||
(?:(?:.*\s)?\[0x\h+\]\n)*\n
|
||||
)?
|
||||
(?m:.*)
|
||||
)x,
|
||||
:*,
|
||||
%r(
|
||||
\[NOTE\]\n
|
||||
You\smay\shave\sencountered\sa\sbug\sin\sthe\sRuby\sinterpreter\sor\sextension\slibraries.\n
|
||||
Bug\sreports\sare\swelcome.\n
|
||||
@ -559,15 +561,7 @@ class TestRubyOptions < Test::Unit::TestCase
|
||||
EnvUtil.diagnostic_reports(Signal.signame(signo), EnvUtil.rubybin, status.pid, Time.now)
|
||||
end
|
||||
|
||||
str = stderr
|
||||
SEGVTest::ExpectedStderrList.each {|regexp|
|
||||
r = /\A#{regexp}/
|
||||
unless r =~ str
|
||||
assert_match(r, str, message)
|
||||
end
|
||||
str = $'
|
||||
}
|
||||
assert_equal('', str)
|
||||
assert_regexp_list(SEGVTest::ExpectedStderrList, stderr, message)
|
||||
|
||||
status
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user