ruby-changes:69971
From: Benoit <ko1@a...>
Date: Mon, 29 Nov 2021 23:51:10 +0900 (JST)
Subject: [ruby-changes:69971] 67a1e22589 (master): Update to ruby/spec@7f22a0b
https://git.ruby-lang.org/ruby.git/commit/?id=67a1e22589 From 67a1e2258974df4b597d019739595c18fbb9a7c1 Mon Sep 17 00:00:00 2001 From: Benoit Daloze <eregontp@g...> Date: Mon, 29 Nov 2021 15:50:28 +0100 Subject: Update to ruby/spec@7f22a0b --- spec/ruby/core/array/shared/slice.rb | 24 ++++++++ spec/ruby/core/dir/shared/glob.rb | 22 ++++++-- spec/ruby/core/encoding/compatible_spec.rb | 2 +- spec/ruby/core/encoding/converter/putback_spec.rb | 13 ++++- spec/ruby/core/enumerable/grep_spec.rb | 12 ++++ spec/ruby/core/enumerable/grep_v_spec.rb | 12 ++++ .../enumerator/arithmetic_sequence/begin_spec.rb | 9 +++ .../enumerator/arithmetic_sequence/end_spec.rb | 7 +++ spec/ruby/core/exception/errno_spec.rb | 9 +++ spec/ruby/core/gc/auto_compact_spec.rb | 5 ++ spec/ruby/core/gc/measure_total_time_spec.rb | 19 +++++++ spec/ruby/core/gc/stat_spec.rb | 18 ++++++ spec/ruby/core/gc/total_time_spec.rb | 15 +++++ spec/ruby/core/integer/plus_spec.rb | 15 +++++ spec/ruby/core/kernel/clone_spec.rb | 36 +++++++++++- spec/ruby/core/kernel/fixtures/classes.rb | 7 ++- spec/ruby/core/kernel/initialize_clone_spec.rb | 28 ++++++++++ spec/ruby/core/kernel/initialize_dup_spec.rb | 20 +++++++ spec/ruby/core/kernel/instance_variables_spec.rb | 11 ++++ spec/ruby/core/kernel/print_spec.rb | 12 ++++ spec/ruby/core/kernel/warn_spec.rb | 64 ++++++++++++++++++++++ spec/ruby/core/matchdata/captures_spec.rb | 8 +++ spec/ruby/core/matchdata/element_reference_spec.rb | 8 +++ spec/ruby/core/matchdata/fixtures/classes.rb | 3 + spec/ruby/core/matchdata/post_match_spec.rb | 8 +++ spec/ruby/core/matchdata/pre_match_spec.rb | 8 +++ spec/ruby/core/matchdata/to_a_spec.rb | 8 +++ spec/ruby/core/matchdata/to_s_spec.rb | 8 +++ spec/ruby/core/numeric/clone_spec.rb | 7 +++ spec/ruby/core/numeric/quo_spec.rb | 9 +++ spec/ruby/core/range/step_spec.rb | 26 +++++++++ .../ruby/core/string/each_grapheme_cluster_spec.rb | 8 +++ spec/ruby/core/string/force_encoding_spec.rb | 2 +- spec/ruby/core/string/scan_spec.rb | 8 +++ spec/ruby/core/string/scrub_spec.rb | 4 +- spec/ruby/core/string/shared/eql.rb | 2 +- spec/ruby/core/string/shared/length.rb | 16 ++++++ spec/ruby/core/string/valid_encoding_spec.rb | 8 +-- spec/ruby/core/warning/element_reference_spec.rb | 6 ++ spec/ruby/core/warning/element_set_spec.rb | 6 ++ spec/ruby/core/warning/warn_spec.rb | 3 +- spec/ruby/language/class_variable_spec.rb | 6 ++ spec/ruby/language/regexp/encoding_spec.rb | 17 ++++++ spec/ruby/library/fiber/resume_spec.rb | 12 ++++ .../element/each_element_with_attribute_spec.rb | 18 +++--- .../rexml/element/each_element_with_text_spec.rb | 4 +- spec/ruby/library/rexml/element/has_text_spec.rb | 2 +- spec/ruby/library/rexml/node/parent_spec.rb | 2 +- spec/ruby/library/rexml/shared/elements_to_a.rb | 2 +- spec/ruby/library/stringio/ungetbyte_spec.rb | 2 +- .../ruby/library/stringscanner/check_until_spec.rb | 6 ++ spec/ruby/library/stringscanner/exist_spec.rb | 6 ++ .../library/stringscanner/matched_size_spec.rb | 21 ++++++- spec/ruby/library/stringscanner/scan_until_spec.rb | 6 ++ .../ruby/library/stringscanner/search_full_spec.rb | 6 ++ .../library/stringscanner/shared/matched_size.rb | 21 ------- spec/ruby/library/stringscanner/size_spec.rb | 17 ++++++ spec/ruby/library/stringscanner/skip_until_spec.rb | 6 ++ spec/ruby/optional/capi/class_spec.rb | 5 +- spec/ruby/optional/capi/ext/string_spec.c | 10 ++++ spec/ruby/optional/capi/fixtures/class.rb | 3 + spec/ruby/optional/capi/string_spec.rb | 27 +++++++++ 62 files changed, 656 insertions(+), 59 deletions(-) create mode 100644 spec/ruby/core/gc/measure_total_time_spec.rb create mode 100644 spec/ruby/core/gc/total_time_spec.rb create mode 100644 spec/ruby/core/kernel/initialize_clone_spec.rb create mode 100644 spec/ruby/core/kernel/initialize_dup_spec.rb create mode 100644 spec/ruby/core/matchdata/fixtures/classes.rb delete mode 100644 spec/ruby/library/stringscanner/shared/matched_size.rb create mode 100644 spec/ruby/library/stringscanner/size_spec.rb diff --git a/spec/ruby/core/array/shared/slice.rb b/spec/ruby/core/array/shared/slice.rb index cf195ad7a46..540a050130c 100644 --- a/spec/ruby/core/array/shared/slice.rb +++ b/spec/ruby/core/array/shared/slice.rb @@ -743,6 +743,30 @@ describe :array_slice, shared: true do https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/array/shared/slice.rb#L743 @array.send(@method, eval("(-2..-4).step(10)")).should == [] @array.send(@method, eval("(-2...-4).step(10)")).should == [] end + + it "has range with bounds outside of array" do + # end is equal to array's length + @array.send(@method, (0..6).step(1)).should == [0, 1, 2, 3, 4, 5] + -> { @array.send(@method, (0..6).step(2)) }.should raise_error(RangeError) + + # end is greater than length with positive steps + @array.send(@method, (1..6).step(2)).should == [1, 3, 5] + @array.send(@method, (2..7).step(2)).should == [2, 4] + -> { @array.send(@method, (2..8).step(2)) }.should raise_error(RangeError) + + # begin is greater than length with negative steps + @array.send(@method, (6..1).step(-2)).should == [5, 3, 1] + @array.send(@method, (7..2).step(-2)).should == [5, 3] + -> { @array.send(@method, (8..2).step(-2)) }.should raise_error(RangeError) + end + + it "has endless range with start outside of array's bounds" do + @array.send(@method, eval("(6..).step(1)")).should == [] + @array.send(@method, eval("(7..).step(1)")).should == nil + + @array.send(@method, eval("(6..).step(2)")).should == [] + -> { @array.send(@method, eval("(7..).step(2)")) }.should raise_error(RangeError) + end end end diff --git a/spec/ruby/core/dir/shared/glob.rb b/spec/ruby/core/dir/shared/glob.rb index 69fb0f0a012..a38ff8aa68b 100644 --- a/spec/ruby/core/dir/shared/glob.rb +++ b/spec/ruby/core/dir/shared/glob.rb @@ -55,12 +55,24 @@ describe :dir_glob, shared: true do https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/dir/shared/glob.rb#L55 end end + ruby_version_is "3.0"..."3.1" do + it "result is sorted with any non false value of sort:" do + result = Dir.send(@method, '*', sort: 0) + result.should == result.sort + + result = Dir.send(@method, '*', sort: nil) + result.should == result.sort + + result = Dir.send(@method, '*', sort: 'false') + result.should == result.sort + end + end + ruby_version_is "3.1" do - it "true or false is expected as sort:" do - -> {Dir.send(@method, '*', sort: nil)}.should raise_error ArgumentError, /true or false/ - -> {Dir.send(@method, '*', sort: 0)}.should raise_error ArgumentError, /true or false/ - -> {Dir.send(@method, '*', sort: "")}.should raise_error ArgumentError, /true or false/ - -> {Dir.send(@method, '*', sort: Object.new)}.should raise_error ArgumentError, /true or false/ + it "raises an ArgumentError if sort: is not true or false" do + -> { Dir.send(@method, '*', sort: 0) }.should raise_error ArgumentError, /expected true or false/ + -> { Dir.send(@method, '*', sort: nil) }.should raise_error ArgumentError, /expected true or false/ + -> { Dir.send(@method, '*', sort: 'false') }.should raise_error ArgumentError, /expected true or false/ end end diff --git a/spec/ruby/core/encoding/compatible_spec.rb b/spec/ruby/core/encoding/compatible_spec.rb index dc47a6553a8..80ecab61558 100644 --- a/spec/ruby/core/encoding/compatible_spec.rb +++ b/spec/ruby/core/encoding/compatible_spec.rb @@ -54,7 +54,7 @@ describe "Encoding.compatible? String, String" do https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/encoding/compatible_spec.rb#L54 it "returns nil if the second's Encoding is not ASCII compatible" do a = "abc".force_encoding("UTF-8") - b = "123".force_encoding("UTF-16LE") + b = "1234".force_encoding("UTF-16LE") Encoding.compatible?(a, b).should be_nil end end diff --git a/spec/ruby/core/encoding/converter/putback_spec.rb b/spec/ruby/core/encoding/converter/putback_spec.rb index 87495eaf3f1..c4e0a5da213 100644 --- a/spec/ruby/core/encoding/converter/putback_spec.rb +++ b/spec/ruby/core/encoding/converter/putback_spec.rb @@ -34,14 +34,23 @@ describe "Encoding::Converter#putback" do https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/encoding/converter/putback_spec.rb#L34 @ec.putback.should == "" end + it "returns the problematic bytes for UTF-16LE" do + ec = Encoding::Converter.new("utf-16le", "iso-8859-1") + src = "\x00\xd8\x61\x00" + dst = "" + ec.primitive_convert(src, dst).should == :invalid_byte_sequence + ec.primitive_errinfo.should == [:invalid_byte_sequence, "UTF-16LE", "UTF-8", "\x00\xD8", "a\x00"] + ec.putback.should == "a\x00".force_encoding("utf-16le") + ec.putback.should == "" + end + it "accepts an integer argument corresponding to the number of bytes to be put back" do ec = Encoding::Converter.new("utf-16le", "iso-8859-1") src = "\x00\xd8\x61\x00" dst = "" ec.primitive_convert(src, dst).should == :invalid_byte_sequence ec.primitive_errinfo.should == [:invalid_byte_sequence, "UTF-16LE", "UTF-8", "\x00\xD8", "a\x00"] - ec.putback(1).should == "\x00".force_encoding("utf-16le") - ec.putback.should == "a".force_encoding("utf-16le") + ec.putback(2).should == "a\x00".force_encoding("utf-16le") ec. (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/