diff options
Diffstat (limited to 'spec/ruby/core/io/binread_spec.rb')
| -rw-r--r-- | spec/ruby/core/io/binread_spec.rb | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/spec/ruby/core/io/binread_spec.rb b/spec/ruby/core/io/binread_spec.rb index b592639f9d..3023c7f177 100644 --- a/spec/ruby/core/io/binread_spec.rb +++ b/spec/ruby/core/io/binread_spec.rb @@ -1,6 +1,6 @@ # -*- encoding: utf-8 -*- -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) +require_relative '../../spec_helper' +require_relative 'fixtures/classes' describe "IO.binread" do before :each do @@ -28,22 +28,30 @@ describe "IO.binread" do IO.binread(@fname, 5, 3).should == @contents.slice(3, 5) end - it "returns a String in ASCII-8BIT encoding" do - IO.binread(@fname).encoding.should == Encoding::ASCII_8BIT + it "returns a String in BINARY encoding" do + IO.binread(@fname).encoding.should == Encoding::BINARY end - it "returns a String in ASCII-8BIT encoding regardless of Encoding.default_internal" do + it "returns a String in BINARY encoding regardless of Encoding.default_internal" do Encoding.default_internal = Encoding::EUC_JP - IO.binread(@fname).encoding.should == Encoding::ASCII_8BIT + IO.binread(@fname).encoding.should == Encoding::BINARY end it "raises an ArgumentError when not passed a valid length" do - lambda { IO.binread @fname, -1 }.should raise_error(ArgumentError) + -> { IO.binread @fname, -1 }.should.raise(ArgumentError) end - ruby_version_is "2.3" do # MRI leaks the fd on older versions - it "raises an Errno::EINVAL when not passed a valid offset" do - lambda { IO.binread @fname, 0, -1 }.should raise_error(Errno::EINVAL) + it "raises an Errno::EINVAL when not passed a valid offset" do + -> { IO.binread @fname, 0, -1 }.should.raise(Errno::EINVAL) + end + + ruby_version_is ""..."4.0" do + # https://bugs.ruby-lang.org/issues/19630 + it "warns about deprecation given a path with a pipe" do + cmd = "|echo ok" + -> { + IO.binread(cmd) + }.should complain(/IO process creation with a leading '\|'/) end end end |
