summaryrefslogtreecommitdiff
path: root/spec/ruby
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2021-06-02 15:54:38 +0200
committerBenoit Daloze <eregontp@gmail.com>2021-06-02 15:54:38 +0200
commit750f80757523bb916beff51cf30e585a378acd84 (patch)
treedde4a331ac7f96828f3690d81b4190e39848bfdf /spec/ruby
parent22e2a6a999b958efe5d84d9c7314e450fda82254 (diff)
Update to ruby/spec@c6e9285
Diffstat (limited to 'spec/ruby')
-rw-r--r--spec/ruby/library/yaml/fixtures/common.rb6
-rw-r--r--spec/ruby/library/yaml/load_spec.rb8
-rw-r--r--spec/ruby/library/yaml/shared/load.rb22
-rw-r--r--spec/ruby/library/yaml/unsafe_load_spec.rb5
4 files changed, 19 insertions, 22 deletions
diff --git a/spec/ruby/library/yaml/fixtures/common.rb b/spec/ruby/library/yaml/fixtures/common.rb
index 1d868806f1..f7fb4037e7 100644
--- a/spec/ruby/library/yaml/fixtures/common.rb
+++ b/spec/ruby/library/yaml/fixtures/common.rb
@@ -1,9 +1,3 @@
-begin
- require 'syck'
-rescue LoadError
- # do nothing
-end
-
require 'yaml'
$test_file = tmp("yaml_test_file")
diff --git a/spec/ruby/library/yaml/load_spec.rb b/spec/ruby/library/yaml/load_spec.rb
index a84b6097c7..56700a85f9 100644
--- a/spec/ruby/library/yaml/load_spec.rb
+++ b/spec/ruby/library/yaml/load_spec.rb
@@ -1,8 +1,10 @@
require_relative '../../spec_helper'
require_relative 'shared/load'
-ruby_version_is ""..."3.1" do
- describe "YAML.load" do
- it_behaves_like :yaml_load, :load
+describe "YAML.load" do
+ it_behaves_like :yaml_load_safe, :load
+
+ guard -> { Psych::VERSION < "4.0.0" } do
+ it_behaves_like :yaml_load_unsafe, :load
end
end
diff --git a/spec/ruby/library/yaml/shared/load.rb b/spec/ruby/library/yaml/shared/load.rb
index 5e7b455462..185a5a60cd 100644
--- a/spec/ruby/library/yaml/shared/load.rb
+++ b/spec/ruby/library/yaml/shared/load.rb
@@ -1,16 +1,14 @@
require_relative '../fixtures/common'
require_relative '../fixtures/strings'
-describe :yaml_load, shared: true do
- after :each do
- rm_r $test_file
- end
-
+describe :yaml_load_safe, shared: true do
it "returns a document from current io stream when io provided" do
File.open($test_file, 'w') do |io|
YAML.dump( ['badger', 'elephant', 'tiger'], io )
end
File.open($test_file) { |yf| YAML.send(@method, yf ) }.should == ['badger', 'elephant', 'tiger']
+ ensure
+ rm_r $test_file
end
it "loads strings" do
@@ -90,6 +88,14 @@ describe :yaml_load, shared: true do
YAML.send(@method, block_seq).should == [[["one", "two", "three"]]]
end
+ it "loads a symbol key that contains spaces" do
+ string = ":user name: This is the user name."
+ expected = { :"user name" => "This is the user name."}
+ YAML.send(@method, string).should == expected
+ end
+end
+
+describe :yaml_load_unsafe, shared: true do
it "works on complex keys" do
require 'date'
expected = {
@@ -101,12 +107,6 @@ describe :yaml_load, shared: true do
YAML.send(@method, $complex_key_1).should == expected
end
- it "loads a symbol key that contains spaces" do
- string = ":user name: This is the user name."
- expected = { :"user name" => "This is the user name."}
- YAML.send(@method, string).should == expected
- end
-
describe "with iso8601 timestamp" do
it "computes the microseconds" do
[ [YAML.send(@method, "2011-03-22t23:32:11.2233+01:00"), 223300],
diff --git a/spec/ruby/library/yaml/unsafe_load_spec.rb b/spec/ruby/library/yaml/unsafe_load_spec.rb
index 66eaf859c1..385cd2a6e2 100644
--- a/spec/ruby/library/yaml/unsafe_load_spec.rb
+++ b/spec/ruby/library/yaml/unsafe_load_spec.rb
@@ -1,8 +1,9 @@
require_relative '../../spec_helper'
require_relative 'shared/load'
-ruby_version_is "3.1" do
+guard -> { Psych::VERSION >= "4.0.0" } do
describe "YAML.unsafe_load" do
- it_behaves_like :yaml_load, :unsafe_load
+ it_behaves_like :yaml_load_safe, :unsafe_load
+ it_behaves_like :yaml_load_unsafe, :unsafe_load
end
end