diff options
Diffstat (limited to 'spec/ruby/core')
-rw-r--r-- | spec/ruby/core/dir/shared/glob.rb | 8 | ||||
-rw-r--r-- | spec/ruby/core/file/utime_spec.rb | 2 | ||||
-rw-r--r-- | spec/ruby/core/integer/pow_spec.rb | 4 | ||||
-rw-r--r-- | spec/ruby/core/integer/shared/arithmetic_coerce.rb | 20 |
4 files changed, 27 insertions, 7 deletions
diff --git a/spec/ruby/core/dir/shared/glob.rb b/spec/ruby/core/dir/shared/glob.rb index 0fcfcc4eea..fcaa0d8a43 100644 --- a/spec/ruby/core/dir/shared/glob.rb +++ b/spec/ruby/core/dir/shared/glob.rb @@ -296,10 +296,10 @@ describe :dir_glob, shared: true do @mock_dir = File.expand_path tmp('dir_glob_mock') %w[ - a/b/x - a/b/c/y - a/b/c/d/z - ].each do |path| + a/b/x + a/b/c/y + a/b/c/d/z + ].each do |path| file = File.join @mock_dir, path mkdir_p File.dirname(file) touch file diff --git a/spec/ruby/core/file/utime_spec.rb b/spec/ruby/core/file/utime_spec.rb index 9c198af18b..d703681115 100644 --- a/spec/ruby/core/file/utime_spec.rb +++ b/spec/ruby/core/file/utime_spec.rb @@ -3,7 +3,7 @@ require_relative '../../spec_helper' describe "File.utime" do before :all do - @time_is_float = /mswin|mingw/ =~ RUBY_PLATFORM && RUBY_VERSION >= '2.5' + @time_is_float = /mswin|mingw/ =~ RUBY_PLATFORM end before :each do diff --git a/spec/ruby/core/integer/pow_spec.rb b/spec/ruby/core/integer/pow_spec.rb index f3fb1da916..d7561baf96 100644 --- a/spec/ruby/core/integer/pow_spec.rb +++ b/spec/ruby/core/integer/pow_spec.rb @@ -23,8 +23,8 @@ describe "Integer#pow" do end it "handles sign like #divmod does" do - 2.pow(5, 12).should == 8 - 2.pow(5, -12).should == -4 + 2.pow(5, 12).should == 8 + 2.pow(5, -12).should == -4 -2.pow(5, 12).should == 4 -2.pow(5, -12).should == -8 end diff --git a/spec/ruby/core/integer/shared/arithmetic_coerce.rb b/spec/ruby/core/integer/shared/arithmetic_coerce.rb index 1260192df1..4c0cbcb999 100644 --- a/spec/ruby/core/integer/shared/arithmetic_coerce.rb +++ b/spec/ruby/core/integer/shared/arithmetic_coerce.rb @@ -1,5 +1,25 @@ require_relative '../fixtures/classes' +describe :integer_arithmetic_coerce_rescue, shared: true do + it "rescues exception (StandardError and subclasses) raised in other#coerce and raises TypeError" do + b = mock("numeric with failed #coerce") + b.should_receive(:coerce).and_raise(IntegerSpecs::CoerceError) + + # e.g. 1 + b + -> { 1.send(@method, b) }.should raise_error(TypeError, /MockObject can't be coerced into Integer/) + end + + it "does not rescue Exception and StandardError siblings raised in other#coerce" do + [Exception, NoMemoryError].each do |exception| + b = mock("numeric with failed #coerce") + b.should_receive(:coerce).and_raise(exception) + + # e.g. 1 + b + -> { 1.send(@method, b) }.should raise_error(exception) + end + end +end + describe :integer_arithmetic_coerce_not_rescue, shared: true do it "does not rescue exception raised in other#coerce" do b = mock("numeric with failed #coerce") |