diff --git a/ruby-2.7.2-psych-fix-yaml-tests.patch b/ruby-2.7.2-psych-fix-yaml-tests.patch new file mode 100644 index 0000000..5a4be77 --- /dev/null +++ b/ruby-2.7.2-psych-fix-yaml-tests.patch @@ -0,0 +1,162 @@ +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"]], <