summaryrefslogtreecommitdiff
path: root/test/psych
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2019-04-26 19:38:43 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-06-25 15:56:20 +0900
commit746812ee9645ff821a039136f9576b7c8f18b920 (patch)
treec2a67b05cf402b2ab3a44981fbc10171c2dfbc18 /test/psych
parent5a4d2b9f2f1cb5124a4dccc103c7bbe8d27554d5 (diff)
Do not allocate a string to check if a scalar is an integer
Diffstat (limited to 'test/psych')
-rw-r--r--test/psych/test_scalar_scanner.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/psych/test_scalar_scanner.rb b/test/psych/test_scalar_scanner.rb
index ebe8daf6727..d12a9053307 100644
--- a/test/psych/test_scalar_scanner.rb
+++ b/test/psych/test_scalar_scanner.rb
@@ -113,5 +113,22 @@ module Psych
def test_scan_strings_starting_with_underscores
assert_equal "_100", ss.tokenize('_100')
end
+
+ def test_scan_int_commas_and_underscores
+ # NB: This test is to ensure backward compatibility with prior Psych versions,
+ # not to test against any actual YAML specification.
+ assert_equal 123_456_789, ss.tokenize('123_456_789')
+ assert_equal 123_456_789, ss.tokenize('123,456,789')
+ assert_equal 123_456_789, ss.tokenize('1_2,3,4_5,6_789')
+
+ assert_equal 0b010101010, ss.tokenize('0b010101010')
+ assert_equal 0b010101010, ss.tokenize('0b0,1_0,1_,0,1_01,0')
+
+ assert_equal 01234567, ss.tokenize('01234567')
+ assert_equal 01234567, ss.tokenize('0_,,,1_2,_34567')
+
+ assert_equal 0x123456789abcdef, ss.tokenize('0x123456789abcdef')
+ assert_equal 0x123456789abcdef, ss.tokenize('0x12_,34,_56,_789abcdef')
+ end
end
end