mirror of
https://github.com/ruby/ruby.git
synced 2025-08-23 13:04:13 +02:00
Merge strscan-3.0.5
This commit is contained in:
parent
bcf01b18cf
commit
4e31fea77d
Notes:
git
2022-12-09 07:36:48 +00:00
5 changed files with 117 additions and 15 deletions
|
@ -207,6 +207,8 @@ class TestStringScanner < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def test_charpos_not_use_string_methods
|
||||
omit "not supported on TruffleRuby" if RUBY_ENGINE == "truffleruby"
|
||||
|
||||
string = +'abcädeföghi'
|
||||
scanner = create_string_scanner(string)
|
||||
|
||||
|
@ -567,6 +569,8 @@ class TestStringScanner < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def test_invalid_encoding_string
|
||||
omit "no encoding check on TruffleRuby for scan(String)" if RUBY_ENGINE == "truffleruby"
|
||||
|
||||
str = "\xA1\xA2".dup.force_encoding("euc-jp")
|
||||
ss = create_string_scanner(str)
|
||||
assert_raise(Encoding::CompatibilityError) do
|
||||
|
@ -712,6 +716,8 @@ class TestStringScanner < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def test_aref_without_regex
|
||||
omit "#[:missing] always raises on TruffleRuby if matched" if RUBY_ENGINE == "truffleruby"
|
||||
|
||||
s = create_string_scanner('abc')
|
||||
s.get_byte
|
||||
assert_nil(s[:c])
|
||||
|
@ -757,6 +763,33 @@ class TestStringScanner < Test::Unit::TestCase
|
|||
assert_equal(false, StringScanner.new("a", fixed_anchor: nil).fixed_anchor?)
|
||||
assert_equal(false, StringScanner.new("a", fixed_anchor: false).fixed_anchor?)
|
||||
end
|
||||
|
||||
def test_scan_aref_repeatedly
|
||||
s = StringScanner.new('test string')
|
||||
assert_equal "test", s.scan(/\w(\w)(\w*)/)
|
||||
assert_equal "test", s[0]
|
||||
assert_equal "e", s[1]
|
||||
assert_equal "st", s[2]
|
||||
assert_nil s.scan(/\w+/)
|
||||
assert_nil s[0]
|
||||
assert_nil s[1]
|
||||
assert_nil s[2]
|
||||
assert_equal " ", s.scan(/\s+/)
|
||||
assert_equal " ", s[0]
|
||||
assert_nil s[1]
|
||||
assert_nil s[2]
|
||||
assert_equal "string", s.scan(/\w(\w)(\w*)/)
|
||||
assert_equal "string", s[0]
|
||||
assert_equal "t", s[1]
|
||||
assert_equal "ring", s[2]
|
||||
end
|
||||
|
||||
def test_named_captures
|
||||
omit("not implemented on TruffleRuby") if ["truffleruby"].include?(RUBY_ENGINE)
|
||||
scan = StringScanner.new("foobarbaz")
|
||||
assert_equal(9, scan.match?(/(?<f>foo)(?<r>bar)(?<z>baz)/))
|
||||
assert_equal({"f" => "foo", "r" => "bar", "z" => "baz"}, scan.named_captures)
|
||||
end
|
||||
end
|
||||
|
||||
class TestStringScannerFixedAnchor < TestStringScanner
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue