mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* test/ruby/test_regexp.rb
(TestRegexp#test_options_in_look_behind) (TestRegexp#assert_match_at): Add tests for another problem fixed in Onigmo 5.13.5. Previously Onigmo did not allow option enclosures in look-behind, which makes it impossible to interpolate a regexp into another in the middle of a look-behind pattern. cf. https://github.com/k-takata/Onigmo/pull/17 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
738fee09de
commit
a62ee369a1
2 changed files with 42 additions and 1 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
Fri Jul 5 16:01:21 2013 Akinori MUSHA <knu@iDaemons.org>
|
||||
|
||||
* test/ruby/test_regexp.rb
|
||||
(TestRegexp#test_options_in_look_behind)
|
||||
(TestRegexp#assert_match_at): Add tests for another problem
|
||||
fixed in Onigmo 5.13.5. Previously Onigmo did not allow option
|
||||
enclosures in look-behind, which makes it impossible to
|
||||
interpolate a regexp into another in the middle of a look-behind
|
||||
pattern. cf. https://github.com/k-takata/Onigmo/pull/17
|
||||
|
||||
Fri Jul 5 12:14:40 2013 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_notfound): after
|
||||
|
@ -19,7 +29,6 @@ Fri Jul 5 11:08:00 2013 NAKAMURA Usaku <usa@ruby-lang.org>
|
|||
test/webrick.
|
||||
|
||||
Fri Jul 5 09:53:15 2013 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* lib/mkmf.rb (CONFIG['CPPOUTFILE']): fix r41769; CONFIG['CPPOUTFILE']
|
||||
may be nil.
|
||||
|
||||
|
|
|
@ -944,6 +944,38 @@ class TestRegexp < Test::Unit::TestCase
|
|||
assert_match_each(/\A((?<x>x)|(?<y>y))(?(<x>)y|x)\z/, conds, bug8583)
|
||||
end
|
||||
|
||||
def test_options_in_look_behind
|
||||
assert_nothing_raised {
|
||||
assert_match_at(/(?<=(?i)ab)cd/, "ABcd", [[2,4]])
|
||||
assert_match_at(/(?<=(?i:ab))cd/, "ABcd", [[2,4]])
|
||||
assert_match_at(/(?<!(?i)ab)cd/, "aacd", [[2,4]])
|
||||
assert_match_at(/(?<!(?i:ab))cd/, "aacd", [[2,4]])
|
||||
|
||||
assert_not_match(/(?<=(?i)ab)cd/, "ABCD")
|
||||
assert_not_match(/(?<=(?i:ab))cd/, "ABCD")
|
||||
assert_not_match(/(?<!(?i)ab)cd/, "ABcd")
|
||||
assert_not_match(/(?<!(?i:ab))cd/, "ABcd")
|
||||
}
|
||||
end
|
||||
|
||||
def assert_match_at(re, str, positions, msg = nil)
|
||||
match = re.match(str)
|
||||
|
||||
assert_not_nil match, message(msg) {
|
||||
"Expected #{re.inspect} to match #{str.inspect}"
|
||||
}
|
||||
|
||||
if match
|
||||
actual_positions = (0...match.size).map { |i|
|
||||
[match.begin(i), match.end(i)]
|
||||
}
|
||||
|
||||
assert_equal positions, actual_positions, message(msg) {
|
||||
"Expected #{re.inspect} to match #{str.inspect} at: #{positions.inspect}"
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def assert_match_each(re, conds, msg = nil)
|
||||
errs = conds.select {|str, match| match ^ (re =~ str)}
|
||||
msg = message(msg) {
|
||||
|
|
Loading…
Add table
Reference in a new issue