summaryrefslogtreecommitdiff
path: root/spec/ruby/library/stringio/shared
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/stringio/shared')
-rw-r--r--spec/ruby/library/stringio/shared/codepoints.rb10
-rw-r--r--spec/ruby/library/stringio/shared/each.rb90
-rw-r--r--spec/ruby/library/stringio/shared/each_byte.rb10
-rw-r--r--spec/ruby/library/stringio/shared/each_char.rb8
-rw-r--r--spec/ruby/library/stringio/shared/eof.rb10
-rw-r--r--spec/ruby/library/stringio/shared/getc.rb20
-rw-r--r--spec/ruby/library/stringio/shared/gets.rb249
-rw-r--r--spec/ruby/library/stringio/shared/isatty.rb2
-rw-r--r--spec/ruby/library/stringio/shared/read.rb30
-rw-r--r--spec/ruby/library/stringio/shared/readchar.rb6
-rw-r--r--spec/ruby/library/stringio/shared/sysread.rb2
-rw-r--r--spec/ruby/library/stringio/shared/write.rb8
12 files changed, 370 insertions, 75 deletions
diff --git a/spec/ruby/library/stringio/shared/codepoints.rb b/spec/ruby/library/stringio/shared/codepoints.rb
index 25333bb0fd..e35a02ccb4 100644
--- a/spec/ruby/library/stringio/shared/codepoints.rb
+++ b/spec/ruby/library/stringio/shared/codepoints.rb
@@ -6,7 +6,7 @@ describe :stringio_codepoints, shared: true do
end
it "returns an Enumerator" do
- @enum.should be_an_instance_of(Enumerator)
+ @enum.should.instance_of?(Enumerator)
end
it "yields each codepoint code in turn" do
@@ -20,15 +20,15 @@ describe :stringio_codepoints, shared: true do
it "raises an error if reading invalid sequence" do
@io.pos = 1 # inside of a multibyte sequence
- -> { @enum.first }.should raise_error(ArgumentError)
+ -> { @enum.first }.should.raise(ArgumentError)
end
it "raises an IOError if not readable" do
@io.close_read
- -> { @enum.to_a }.should raise_error(IOError)
+ -> { @enum.to_a }.should.raise(IOError)
io = StringIO.new(+"xyz", "w")
- -> { io.send(@method).to_a }.should raise_error(IOError)
+ -> { io.send(@method).to_a }.should.raise(IOError)
end
@@ -39,7 +39,7 @@ describe :stringio_codepoints, shared: true do
end
it "returns self" do
- @io.send(@method) {|l| l }.should equal(@io)
+ @io.send(@method) {|l| l }.should.equal?(@io)
end
end
diff --git a/spec/ruby/library/stringio/shared/each.rb b/spec/ruby/library/stringio/shared/each.rb
index e0dd3f9b8f..04e40b6b2a 100644
--- a/spec/ruby/library/stringio/shared/each.rb
+++ b/spec/ruby/library/stringio/shared/each.rb
@@ -16,7 +16,7 @@ describe :stringio_each_separator, shared: true do
end
it "returns self" do
- @io.send(@method) {|l| l }.should equal(@io)
+ @io.send(@method) {|l| l }.should.equal?(@io)
end
it "tries to convert the passed separator to a String using #to_str" do
@@ -36,22 +36,11 @@ describe :stringio_each_separator, shared: true do
seen.should == ["2 1 2 1 2"]
end
- version_is StringIO::VERSION, ""..."3.0.4" do #ruby_version_is ""..."3.2" do
- it "yields each paragraph with two separation characters when passed an empty String as separator" do
- seen = []
- io = StringIO.new("para1\n\npara2\n\n\npara3")
- io.send(@method, "") {|s| seen << s}
- seen.should == ["para1\n\n", "para2\n\n", "para3"]
- end
- end
-
- version_is StringIO::VERSION, "3.0.4" do #ruby_version_is "3.2" do
- it "yields each paragraph with all separation characters when passed an empty String as separator" do
- seen = []
- io = StringIO.new("para1\n\npara2\n\n\npara3")
- io.send(@method, "") {|s| seen << s}
- seen.should == ["para1\n\n", "para2\n\n\n", "para3"]
- end
+ it "yields each paragraph with all separation characters when passed an empty String as separator" do
+ seen = []
+ io = StringIO.new("para1\n\npara2\n\n\npara3")
+ io.send(@method, "") {|s| seen << s}
+ seen.should == ["para1\n\n", "para2\n\n\n", "para3"]
end
end
@@ -85,19 +74,19 @@ describe :stringio_each_no_arguments, shared: true do
old_rs = $/
suppress_warning {$/ = " "}
@io.send(@method) {|s| seen << s }
- seen.should eql(["a ", "b ", "c ", "d ", "e\n1 ", "2 ", "3 ", "4 ", "5"])
+ seen.should.eql?(["a ", "b ", "c ", "d ", "e\n1 ", "2 ", "3 ", "4 ", "5"])
ensure
suppress_warning {$/ = old_rs}
end
end
it "returns self" do
- @io.send(@method) {|l| l }.should equal(@io)
+ @io.send(@method) {|l| l }.should.equal?(@io)
end
it "returns an Enumerator when passed no block" do
enum = @io.send(@method)
- enum.instance_of?(Enumerator).should be_true
+ enum.instance_of?(Enumerator).should == true
seen = []
enum.each { |b| seen << b }
@@ -108,11 +97,11 @@ end
describe :stringio_each_not_readable, shared: true do
it "raises an IOError" do
io = StringIO.new(+"a b c d e", "w")
- -> { io.send(@method) { |b| b } }.should raise_error(IOError)
+ -> { io.send(@method) { |b| b } }.should.raise(IOError)
io = StringIO.new("a b c d e")
io.close_read
- -> { io.send(@method) { |b| b } }.should raise_error(IOError)
+ -> { io.send(@method) { |b| b } }.should.raise(IOError)
end
end
@@ -161,3 +150,60 @@ describe :stringio_each_limit, shared: true do
seen.should == ["a b ", "c d ", "e\n", "1 2 ", "3 4 ", "5"]
end
end
+
+describe :stringio_each_separator_and_limit, shared: true do
+ before :each do
+ @io = StringIO.new("this>is>an>example")
+ end
+
+ it "returns the data read until the limit is consumed or the separator is met" do
+ @io.send(@method, '>', 8) { |s| break s }.should == "this>"
+ @io.send(@method, '>', 2) { |s| break s }.should == "is"
+ @io.send(@method, '>', 10) { |s| break s }.should == ">"
+ @io.send(@method, '>', 6) { |s| break s }.should == "an>"
+ @io.send(@method, '>', 5) { |s| break s }.should == "examp"
+ end
+
+ it "truncates the multi-character separator at the end to meet the limit" do
+ @io.send(@method, "is>an", 7) { |s| break s }.should == "this>is"
+ end
+
+ it "does not change $_" do
+ $_ = "test"
+ @io.send(@method, '>', 8) { |s| s }
+ $_.should == "test"
+ end
+
+ it "updates self's lineno by one" do
+ @io.send(@method, '>', 3) { |s| break s }
+ @io.lineno.should.eql?(1)
+
+ @io.send(@method, '>', 3) { |s| break s }
+ @io.lineno.should.eql?(2)
+
+ @io.send(@method, '>', 3) { |s| break s }
+ @io.lineno.should.eql?(3)
+ end
+
+ it "tries to convert the passed separator to a String using #to_str" do # TODO
+ obj = mock('to_str')
+ obj.should_receive(:to_str).and_return('>')
+
+ seen = []
+ @io.send(@method, obj, 5) { |s| seen << s }
+ seen.should == ["this>", "is>", "an>", "examp", "le"]
+ end
+
+ it "does not raise TypeError if passed separator is nil" do
+ @io.send(@method, nil, 5) { |s| break s }.should == "this>"
+ end
+
+ it "tries to convert the passed limit to an Integer using #to_int" do # TODO
+ obj = mock('to_int')
+ obj.should_receive(:to_int).and_return(5)
+
+ seen = []
+ @io.send(@method, '>', obj) { |s| seen << s }
+ seen.should == ["this>", "is>", "an>", "examp", "le"]
+ end
+end
diff --git a/spec/ruby/library/stringio/shared/each_byte.rb b/spec/ruby/library/stringio/shared/each_byte.rb
index b51fa38f2f..b3939c26de 100644
--- a/spec/ruby/library/stringio/shared/each_byte.rb
+++ b/spec/ruby/library/stringio/shared/each_byte.rb
@@ -19,16 +19,16 @@ describe :stringio_each_byte, shared: true do
@io.pos = 1000
seen = nil
@io.send(@method) { |b| seen = b }
- seen.should be_nil
+ seen.should == nil
end
it "returns self" do
- @io.send(@method) {}.should equal(@io)
+ @io.send(@method) {}.should.equal?(@io)
end
it "returns an Enumerator when passed no block" do
enum = @io.send(@method)
- enum.instance_of?(Enumerator).should be_true
+ enum.instance_of?(Enumerator).should == true
seen = []
enum.each { |b| seen << b }
@@ -39,10 +39,10 @@ end
describe :stringio_each_byte_not_readable, shared: true do
it "raises an IOError" do
io = StringIO.new(+"xyz", "w")
- -> { io.send(@method) { |b| b } }.should raise_error(IOError)
+ -> { io.send(@method) { |b| b } }.should.raise(IOError)
io = StringIO.new("xyz")
io.close_read
- -> { io.send(@method) { |b| b } }.should raise_error(IOError)
+ -> { io.send(@method) { |b| b } }.should.raise(IOError)
end
end
diff --git a/spec/ruby/library/stringio/shared/each_char.rb b/spec/ruby/library/stringio/shared/each_char.rb
index 197237c1c8..4215a9952b 100644
--- a/spec/ruby/library/stringio/shared/each_char.rb
+++ b/spec/ruby/library/stringio/shared/each_char.rb
@@ -11,12 +11,12 @@ describe :stringio_each_char, shared: true do
end
it "returns self" do
- @io.send(@method) {}.should equal(@io)
+ @io.send(@method) {}.should.equal?(@io)
end
it "returns an Enumerator when passed no block" do
enum = @io.send(@method)
- enum.instance_of?(Enumerator).should be_true
+ enum.instance_of?(Enumerator).should == true
seen = []
enum.each { |c| seen << c }
@@ -27,10 +27,10 @@ end
describe :stringio_each_char_not_readable, shared: true do
it "raises an IOError" do
io = StringIO.new(+"xyz", "w")
- -> { io.send(@method) { |b| b } }.should raise_error(IOError)
+ -> { io.send(@method) { |b| b } }.should.raise(IOError)
io = StringIO.new("xyz")
io.close_read
- -> { io.send(@method) { |b| b } }.should raise_error(IOError)
+ -> { io.send(@method) { |b| b } }.should.raise(IOError)
end
end
diff --git a/spec/ruby/library/stringio/shared/eof.rb b/spec/ruby/library/stringio/shared/eof.rb
index e0368a2892..a9489581fc 100644
--- a/spec/ruby/library/stringio/shared/eof.rb
+++ b/spec/ruby/library/stringio/shared/eof.rb
@@ -5,20 +5,20 @@ describe :stringio_eof, shared: true do
it "returns true when self's position is greater than or equal to self's size" do
@io.pos = 3
- @io.send(@method).should be_true
+ @io.send(@method).should == true
@io.pos = 6
- @io.send(@method).should be_true
+ @io.send(@method).should == true
end
it "returns false when self's position is less than self's size" do
@io.pos = 0
- @io.send(@method).should be_false
+ @io.send(@method).should == false
@io.pos = 1
- @io.send(@method).should be_false
+ @io.send(@method).should == false
@io.pos = 2
- @io.send(@method).should be_false
+ @io.send(@method).should == false
end
end
diff --git a/spec/ruby/library/stringio/shared/getc.rb b/spec/ruby/library/stringio/shared/getc.rb
index ba65040bce..a146b2d4cf 100644
--- a/spec/ruby/library/stringio/shared/getc.rb
+++ b/spec/ruby/library/stringio/shared/getc.rb
@@ -5,39 +5,39 @@ describe :stringio_getc, shared: true do
it "increases self's position by one" do
@io.send(@method)
- @io.pos.should eql(1)
+ @io.pos.should.eql?(1)
@io.send(@method)
- @io.pos.should eql(2)
+ @io.pos.should.eql?(2)
@io.send(@method)
- @io.pos.should eql(3)
+ @io.pos.should.eql?(3)
end
it "returns nil when called at the end of self" do
@io.pos = 7
- @io.send(@method).should be_nil
- @io.send(@method).should be_nil
- @io.send(@method).should be_nil
+ @io.send(@method).should == nil
+ @io.send(@method).should == nil
+ @io.send(@method).should == nil
end
it "does not increase self's position when called at the end of file" do
@io.pos = 7
@io.send(@method)
- @io.pos.should eql(7)
+ @io.pos.should.eql?(7)
@io.send(@method)
- @io.pos.should eql(7)
+ @io.pos.should.eql?(7)
end
end
describe :stringio_getc_not_readable, shared: true do
it "raises an IOError" do
io = StringIO.new(+"xyz", "w")
- -> { io.send(@method) }.should raise_error(IOError)
+ -> { io.send(@method) }.should.raise(IOError)
io = StringIO.new("xyz")
io.close_read
- -> { io.send(@method) }.should raise_error(IOError)
+ -> { io.send(@method) }.should.raise(IOError)
end
end
diff --git a/spec/ruby/library/stringio/shared/gets.rb b/spec/ruby/library/stringio/shared/gets.rb
new file mode 100644
index 0000000000..16039b18ef
--- /dev/null
+++ b/spec/ruby/library/stringio/shared/gets.rb
@@ -0,0 +1,249 @@
+describe :stringio_gets_separator, shared: true do
+ describe "when passed [separator]" do
+ before :each do
+ @io = StringIO.new("this>is>an>example")
+ end
+
+ it "returns the data read till the next occurrence of the passed separator" do
+ @io.send(@method, ">").should == "this>"
+ @io.send(@method, ">").should == "is>"
+ @io.send(@method, ">").should == "an>"
+ @io.send(@method, ">").should == "example"
+ end
+
+ it "sets $_ to the read content" do
+ @io.send(@method, ">")
+ $_.should == "this>"
+ @io.send(@method, ">")
+ $_.should == "is>"
+ @io.send(@method, ">")
+ $_.should == "an>"
+ @io.send(@method, ">")
+ $_.should == "example"
+ end
+
+ it "accepts string as separator" do
+ @io.send(@method, "is>")
+ $_.should == "this>"
+ @io.send(@method, "an>")
+ $_.should == "is>an>"
+ @io.send(@method, "example")
+ $_.should == "example"
+ end
+
+ it "updates self's lineno by one" do
+ @io.send(@method, ">")
+ @io.lineno.should.eql?(1)
+
+ @io.send(@method, ">")
+ @io.lineno.should.eql?(2)
+
+ @io.send(@method, ">")
+ @io.lineno.should.eql?(3)
+ end
+
+ it "returns the next paragraph when the passed separator is an empty String" do
+ io = StringIO.new("this is\n\nan example")
+ io.send(@method, "").should == "this is\n\n"
+ io.send(@method, "").should == "an example"
+ end
+
+ it "returns the remaining content starting at the current position when passed nil" do
+ io = StringIO.new("this is\n\nan example")
+ io.pos = 5
+ io.send(@method, nil).should == "is\n\nan example"
+ end
+
+ it "tries to convert the passed separator to a String using #to_str" do
+ obj = mock('to_str')
+ obj.should_receive(:to_str).and_return(">")
+ @io.send(@method, obj).should == "this>"
+ end
+ end
+end
+
+describe :stringio_gets_limit, shared: true do
+ describe "when passed [limit]" do
+ before :each do
+ @io = StringIO.new("this>is>an>example")
+ end
+
+ it "returns the data read until the limit is met" do
+ @io.send(@method, 4).should == "this"
+ @io.send(@method, 3).should == ">is"
+ @io.send(@method, 5).should == ">an>e"
+ @io.send(@method, 6).should == "xample"
+ end
+
+ it "sets $_ to the read content" do
+ @io.send(@method, 4)
+ $_.should == "this"
+ @io.send(@method, 3)
+ $_.should == ">is"
+ @io.send(@method, 5)
+ $_.should == ">an>e"
+ @io.send(@method, 6)
+ $_.should == "xample"
+ end
+
+ it "updates self's lineno by one" do
+ @io.send(@method, 3)
+ @io.lineno.should.eql?(1)
+
+ @io.send(@method, 3)
+ @io.lineno.should.eql?(2)
+
+ @io.send(@method, 3)
+ @io.lineno.should.eql?(3)
+ end
+
+ it "tries to convert the passed limit to an Integer using #to_int" do
+ obj = mock('to_int')
+ obj.should_receive(:to_int).and_return(4)
+ @io.send(@method, obj).should == "this"
+ end
+
+ it "returns a blank string when passed a limit of 0" do
+ @io.send(@method, 0).should == ""
+ end
+
+ it "ignores it when passed a negative limit" do
+ @io.send(@method, -4).should == "this>is>an>example"
+ end
+ end
+end
+
+describe :stringio_gets_separator_and_limit, shared: true do
+ describe "when passed [separator] and [limit]" do
+ before :each do
+ @io = StringIO.new("this>is>an>example")
+ end
+
+ it "returns the data read until the limit is consumed or the separator is met" do
+ @io.send(@method, '>', 8).should == "this>"
+ @io.send(@method, '>', 2).should == "is"
+ @io.send(@method, '>', 10).should == ">"
+ @io.send(@method, '>', 6).should == "an>"
+ @io.send(@method, '>', 5).should == "examp"
+ end
+
+ it "truncates the multi-character separator at the end to meet the limit" do
+ @io.send(@method, "is>an", 7).should == "this>is"
+ end
+
+ it "sets $_ to the read content" do
+ @io.send(@method, '>', 8)
+ $_.should == "this>"
+ @io.send(@method, '>', 2)
+ $_.should == "is"
+ @io.send(@method, '>', 10)
+ $_.should == ">"
+ @io.send(@method, '>', 6)
+ $_.should == "an>"
+ @io.send(@method, '>', 5)
+ $_.should == "examp"
+ end
+
+ it "updates self's lineno by one" do
+ @io.send(@method, '>', 3)
+ @io.lineno.should.eql?(1)
+
+ @io.send(@method, '>', 3)
+ @io.lineno.should.eql?(2)
+
+ @io.send(@method, '>', 3)
+ @io.lineno.should.eql?(3)
+ end
+
+ it "tries to convert the passed separator to a String using #to_str" do
+ obj = mock('to_str')
+ obj.should_receive(:to_str).and_return('>')
+ @io.send(@method, obj, 5).should == "this>"
+ end
+
+ it "does not raise TypeError if passed separator is nil" do
+ @io.send(@method, nil, 5).should == "this>"
+ end
+
+ it "tries to convert the passed limit to an Integer using #to_int" do
+ obj = mock('to_int')
+ obj.should_receive(:to_int).and_return(5)
+ @io.send(@method, '>', obj).should == "this>"
+ end
+ end
+end
+
+describe :stringio_gets_no_argument, shared: true do
+ describe "when passed no argument" do
+ before :each do
+ @io = StringIO.new("this is\nan example\nfor StringIO#gets")
+ end
+
+ it "returns the data read till the next occurrence of $/ or till eof" do
+ @io.send(@method).should == "this is\n"
+
+ begin
+ old_sep = $/
+ suppress_warning {$/ = " "}
+ @io.send(@method).should == "an "
+ @io.send(@method).should == "example\nfor "
+ @io.send(@method).should == "StringIO#gets"
+ ensure
+ suppress_warning {$/ = old_sep}
+ end
+ end
+
+ it "sets $_ to the read content" do
+ @io.send(@method)
+ $_.should == "this is\n"
+ @io.send(@method)
+ $_.should == "an example\n"
+ @io.send(@method)
+ $_.should == "for StringIO#gets"
+ end
+
+ it "updates self's position" do
+ @io.send(@method)
+ @io.pos.should.eql?(8)
+
+ @io.send(@method)
+ @io.pos.should.eql?(19)
+
+ @io.send(@method)
+ @io.pos.should.eql?(36)
+ end
+
+ it "updates self's lineno" do
+ @io.send(@method)
+ @io.lineno.should.eql?(1)
+
+ @io.send(@method)
+ @io.lineno.should.eql?(2)
+
+ @io.send(@method)
+ @io.lineno.should.eql?(3)
+ end
+ end
+end
+
+describe :stringio_gets_chomp, shared: true do
+ describe "when passed [chomp]" do
+ it "returns the data read without a trailing newline character" do
+ io = StringIO.new("this>is>an>example\n")
+ io.send(@method, chomp: true).should == "this>is>an>example"
+ end
+ end
+end
+
+describe :stringio_gets_write_only, shared: true do
+ describe "when in write-only mode" do
+ it "raises an IOError" do
+ io = StringIO.new(+"xyz", "w")
+ -> { io.send(@method) }.should.raise(IOError)
+
+ io = StringIO.new("xyz")
+ io.close_read
+ -> { io.send(@method) }.should.raise(IOError)
+ end
+ end
+end
diff --git a/spec/ruby/library/stringio/shared/isatty.rb b/spec/ruby/library/stringio/shared/isatty.rb
index c9e7ee7321..2b92e8d656 100644
--- a/spec/ruby/library/stringio/shared/isatty.rb
+++ b/spec/ruby/library/stringio/shared/isatty.rb
@@ -1,5 +1,5 @@
describe :stringio_isatty, shared: true do
it "returns false" do
- StringIO.new("tty").send(@method).should be_false
+ StringIO.new("tty").send(@method).should == false
end
end
diff --git a/spec/ruby/library/stringio/shared/read.rb b/spec/ruby/library/stringio/shared/read.rb
index 8ef6ec2734..6e04e75dba 100644
--- a/spec/ruby/library/stringio/shared/read.rb
+++ b/spec/ruby/library/stringio/shared/read.rb
@@ -5,9 +5,9 @@ describe :stringio_read, shared: true do
it "returns the passed buffer String" do
# Note: Rubinius bug:
- # @io.send(@method, 7, buffer = +"").should equal(buffer)
+ # @io.send(@method, 7, buffer = +"").should.equal?(buffer)
ret = @io.send(@method, 7, buffer = +"")
- ret.should equal(buffer)
+ ret.should.equal?(buffer)
end
it "reads length bytes and writes them to the buffer String" do
@@ -15,7 +15,7 @@ describe :stringio_read, shared: true do
buffer.should == "example"
end
- ruby_version_is ""..."3.4" do
+ guard -> { StringIO::VERSION < "3.1.2" } do
it "does not preserve the encoding of the given buffer" do
buffer = ''.encode(Encoding::ISO_8859_1)
@io.send(@method, 7, buffer)
@@ -24,7 +24,7 @@ describe :stringio_read, shared: true do
end
end
- ruby_version_is "3.4" do
+ guard -> { StringIO::VERSION >= "3.1.2" } do
it "preserves the encoding of the given buffer" do
buffer = ''.encode(Encoding::ISO_8859_1)
@io.send(@method, 7, buffer)
@@ -42,11 +42,11 @@ describe :stringio_read, shared: true do
end
it "raises a TypeError when the passed buffer Object can't be converted to a String" do
- -> { @io.send(@method, 7, Object.new) }.should raise_error(TypeError)
+ -> { @io.send(@method, 7, Object.new) }.should.raise(TypeError)
end
it "raises a FrozenError error when passed a frozen String as buffer" do
- -> { @io.send(@method, 7, "".freeze) }.should raise_error(FrozenError)
+ -> { @io.send(@method, 7, "".freeze) }.should.raise(FrozenError)
end
end
@@ -66,10 +66,10 @@ describe :stringio_read_length, shared: true do
it "correctly updates the position" do
@io.send(@method, 3)
- @io.pos.should eql(3)
+ @io.pos.should.eql?(3)
@io.send(@method, 999)
- @io.pos.should eql(7)
+ @io.pos.should.eql?(7)
end
it "tries to convert the passed length to an Integer using #to_int" do
@@ -79,11 +79,11 @@ describe :stringio_read_length, shared: true do
end
it "raises a TypeError when the passed length can't be converted to an Integer" do
- -> { @io.send(@method, Object.new) }.should raise_error(TypeError)
+ -> { @io.send(@method, Object.new) }.should.raise(TypeError)
end
it "raises a TypeError when the passed length is negative" do
- -> { @io.send(@method, -2) }.should raise_error(ArgumentError)
+ -> { @io.send(@method, -2) }.should.raise(ArgumentError)
end
it "returns a binary String" do
@@ -105,13 +105,13 @@ describe :stringio_read_no_arguments, shared: true do
it "correctly updates the current position" do
@io.send(@method)
- @io.pos.should eql(7)
+ @io.pos.should.eql?(7)
end
it "correctly update the current position in bytes when multi-byte characters are used" do
@io.print("example\u03A3") # Overwrite the original string with 8 characters containing 9 bytes.
@io.send(@method)
- @io.pos.should eql(9)
+ @io.pos.should.eql?(9)
end
end
@@ -129,17 +129,17 @@ describe :stringio_read_nil, shared: true do
it "updates the current position" do
@io.send(@method, nil)
- @io.pos.should eql(7)
+ @io.pos.should.eql?(7)
end
end
describe :stringio_read_not_readable, shared: true do
it "raises an IOError" do
io = StringIO.new(+"test", "w")
- -> { io.send(@method) }.should raise_error(IOError)
+ -> { io.send(@method) }.should.raise(IOError)
io = StringIO.new("test")
io.close_read
- -> { io.send(@method) }.should raise_error(IOError)
+ -> { io.send(@method) }.should.raise(IOError)
end
end
diff --git a/spec/ruby/library/stringio/shared/readchar.rb b/spec/ruby/library/stringio/shared/readchar.rb
index 72d7446c36..5ac28e0743 100644
--- a/spec/ruby/library/stringio/shared/readchar.rb
+++ b/spec/ruby/library/stringio/shared/readchar.rb
@@ -13,17 +13,17 @@ describe :stringio_readchar, shared: true do
it "raises an EOFError when self is at the end" do
@io.pos = 7
- -> { @io.send(@method) }.should raise_error(EOFError)
+ -> { @io.send(@method) }.should.raise(EOFError)
end
end
describe :stringio_readchar_not_readable, shared: true do
it "raises an IOError" do
io = StringIO.new(+"a b c d e", "w")
- -> { io.send(@method) }.should raise_error(IOError)
+ -> { io.send(@method) }.should.raise(IOError)
io = StringIO.new("a b c d e")
io.close_read
- -> { io.send(@method) }.should raise_error(IOError)
+ -> { io.send(@method) }.should.raise(IOError)
end
end
diff --git a/spec/ruby/library/stringio/shared/sysread.rb b/spec/ruby/library/stringio/shared/sysread.rb
index 3e23fbc233..bc448d3379 100644
--- a/spec/ruby/library/stringio/shared/sysread.rb
+++ b/spec/ruby/library/stringio/shared/sysread.rb
@@ -10,6 +10,6 @@ describe :stringio_sysread_length, shared: true do
it "raises an EOFError when passed length > 0 and no data remains" do
@io.read.should == "example"
- -> { @io.send(@method, 1) }.should raise_error(EOFError)
+ -> { @io.send(@method, 1) }.should.raise(EOFError)
end
end
diff --git a/spec/ruby/library/stringio/shared/write.rb b/spec/ruby/library/stringio/shared/write.rb
index 4661658baf..b6bffe7f12 100644
--- a/spec/ruby/library/stringio/shared/write.rb
+++ b/spec/ruby/library/stringio/shared/write.rb
@@ -42,7 +42,7 @@ describe :stringio_write_string, shared: true do
it "updates self's position" do
@io.send(@method, 'test')
- @io.pos.should eql(4)
+ @io.pos.should.eql?(4)
end
it "handles concurrent writes correctly" do
@@ -107,11 +107,11 @@ end
describe :stringio_write_not_writable, shared: true do
it "raises an IOError" do
io = StringIO.new(+"test", "r")
- -> { io.send(@method, "test") }.should raise_error(IOError)
+ -> { io.send(@method, "test") }.should.raise(IOError)
io = StringIO.new(+"test")
io.close_write
- -> { io.send(@method, "test") }.should raise_error(IOError)
+ -> { io.send(@method, "test") }.should.raise(IOError)
end
end
@@ -130,6 +130,6 @@ describe :stringio_write_append, shared: true do
it "correctly updates self's position" do
@io.send(@method, ", testing")
- @io.pos.should eql(16)
+ @io.pos.should.eql?(16)
end
end