From 3c55d93cf68b1a969b90b306de4dd8b88d74a2f2 Mon Sep 17 00:00:00 2001 From: nagachika Date: Sat, 13 Jun 2020 11:29:51 +0900 Subject: [PATCH] merge revision(s) 7e289cdf3fed588b2d5a6973e29f9ff95cb8d76c: [Backport #16949] [ruby/psych] Fixing compatibility with libyaml 0.2.5 The main issue is that commas aren't allowed in local tags. libyaml was updated to follow the spec, and our tests were out of date. See: https://github.com/yaml/libyaml/issues/196 https://github.com/ruby/psych/commit/3f5e520fd3 --- test/psych/test_nil.rb | 4 ++-- test/psych/test_psych.rb | 17 +++++++---------- test/psych/test_yaml.rb | 24 ++++++++++++------------ version.h | 4 ++-- 4 files changed, 23 insertions(+), 26 deletions(-) diff --git a/test/psych/test_nil.rb b/test/psych/test_nil.rb index 910a2e697def..bcbbcb9c9397 100644 --- a/test/psych/test_nil.rb +++ b/test/psych/test_nil.rb @@ -5,13 +5,13 @@ module Psych class TestNil < TestCase def test_nil yml = Psych.dump nil - assert_match(/--- \n(?:\.\.\.\n)?/, yml) + assert_match(/---[ ]?\n(?:\.\.\.\n)?/, yml) assert_nil Psych.load(yml) end def test_array_nil yml = Psych.dump [nil] - assert_equal "---\n- \n", yml + assert_match(/---\n-[ ]?\n/, yml) assert_equal [nil], Psych.load(yml) end diff --git a/test/psych/test_psych.rb b/test/psych/test_psych.rb index eeadc864ef4e..e557feffb76a 100644 --- a/test/psych/test_psych.rb +++ b/test/psych/test_psych.rb @@ -178,17 +178,17 @@ def test_add_builtin_type def test_domain_types got = nil - Psych.add_domain_type 'foo.bar,2002', 'foo' do |type, val| + Psych.add_domain_type 'foo.bar/2002', 'foo' do |type, val| got = val end - Psych.load('--- !foo.bar,2002/foo hello') + Psych.load('--- !foo.bar/2002:foo hello') assert_equal 'hello', got - Psych.load("--- !foo.bar,2002/foo\n- hello\n- world") + Psych.load("--- !foo.bar/2002:foo\n- hello\n- world") assert_equal %w{ hello world }, got - Psych.load("--- !foo.bar,2002/foo\nhello: world") + Psych.load("--- !foo.bar/2002:foo\nhello: world") assert_equal({ 'hello' => 'world' }, got) end @@ -295,16 +295,13 @@ def test_callbacks types = [] appender = lambda { |*args| types << args } - Psych.add_builtin_type('foo', &appender) - Psych.add_domain_type('example.com,2002', 'foo', &appender) + Psych.add_domain_type('example.com:2002', 'foo', &appender) Psych.load <<-eoyml -- !tag:yaml.org,2002:foo bar -- !tag:example.com,2002:foo bar +- !tag:example.com:2002:foo bar eoyml assert_equal [ - ["tag:yaml.org,2002:foo", "bar"], - ["tag:example.com,2002:foo", "bar"] + ["tag:example.com:2002:foo", "bar"] ], types end diff --git a/test/psych/test_yaml.rb b/test/psych/test_yaml.rb index 5fa759c981b2..0dfd60f89434 100644 --- a/test/psych/test_yaml.rb +++ b/test/psych/test_yaml.rb @@ -617,11 +617,11 @@ def test_spec_domain_prefix raise ArgumentError, "Not a Hash in domain.tld,2002/invoice: " + val.inspect end } - Psych.add_domain_type( "domain.tld,2002", 'invoice', &customer_proc ) - Psych.add_domain_type( "domain.tld,2002", 'customer', &customer_proc ) + Psych.add_domain_type( "domain.tld/2002", 'invoice', &customer_proc ) + Psych.add_domain_type( "domain.tld/2002", 'customer', &customer_proc ) assert_parse_only( { "invoice"=> { "customers"=> [ { "given"=>"Chris", "type"=>"domain customer", "family"=>"Dumars" } ], "type"=>"domain invoice" } }, <7, "center"=>{"x"=>73, "y"=>129}, "TYPE"=>"Shape: graph/circle"}, {"finish"=>{"x"=>89, "y"=>102}, "TYPE"=>"Shape: graph/line", "start"=>{"x"=>73, "y"=>129}}, {"TYPE"=>"Shape: graph/text", "value"=>"Pretty vector drawing.", "start"=>{"x"=>73, "y"=>129}, "color"=>16772795}, "Shape Container"]], <