Skip to content

Commit 0e6e4e6

Browse files
committed
Add specs for IO::Buffer#empty? and #null?
1 parent 43635eb commit 0e6e4e6

File tree

3 files changed

+105
-0
lines changed

3 files changed

+105
-0
lines changed

core/io/buffer/empty_spec.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
require_relative '../../../spec_helper'
2+
require_relative 'shared/null_and_empty'
3+
4+
describe "IO::Buffer#empty?" do
5+
after :each do
6+
@buffer&.free
7+
@buffer = nil
8+
end
9+
10+
it_behaves_like :io_buffer_null_and_empty, :empty?
11+
12+
it "is true for a 0-length String-backed buffer created with .for" do
13+
@buffer = IO::Buffer.for("")
14+
@buffer.empty?.should be_true
15+
end
16+
17+
it "is true for a 0-length String-backed buffer created with .string" do
18+
IO::Buffer.string(0) do |buffer|
19+
buffer.empty?.should be_true
20+
end
21+
end
22+
23+
it "is true for a 0-length slice of a buffer with size > 0" do
24+
@buffer = IO::Buffer.new(4)
25+
@buffer.slice(3, 0).empty?.should be_true
26+
end
27+
end

core/io/buffer/null_spec.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
require_relative '../../../spec_helper'
2+
require_relative 'shared/null_and_empty'
3+
4+
describe "IO::Buffer#null?" do
5+
after :each do
6+
@buffer&.free
7+
@buffer = nil
8+
end
9+
10+
it_behaves_like :io_buffer_null_and_empty, :null?
11+
12+
it "is false for a 0-length String-backed buffer created with .for" do
13+
@buffer = IO::Buffer.for("")
14+
@buffer.null?.should be_false
15+
end
16+
17+
it "is false for a 0-length String-backed buffer created with .string" do
18+
IO::Buffer.string(0) do |buffer|
19+
buffer.null?.should be_false
20+
end
21+
end
22+
23+
it "is false for a 0-length slice of a buffer with size > 0" do
24+
@buffer = IO::Buffer.new(4)
25+
@buffer.slice(3, 0).null?.should be_false
26+
end
27+
end
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
describe :io_buffer_null_and_empty, shared: true do
2+
it "is false for a buffer with size > 0" do
3+
@buffer = IO::Buffer.new(1)
4+
@buffer.send(@method).should be_false
5+
end
6+
7+
it "is false for a slice with length > 0" do
8+
@buffer = IO::Buffer.new(4)
9+
@buffer.slice(1, 2).send(@method).should be_false
10+
end
11+
12+
it "is false for a file-mapped buffer" do
13+
File.open(__FILE__, "rb") do |file|
14+
@buffer = IO::Buffer.map(file, nil, 0, IO::Buffer::READONLY)
15+
@buffer.send(@method).should be_false
16+
end
17+
end
18+
19+
it "is false for a non-empty String-backed buffer created with .for" do
20+
@buffer = IO::Buffer.for("test")
21+
@buffer.send(@method).should be_false
22+
end
23+
24+
it "is false for a non-empty String-backed buffer created with .string" do
25+
IO::Buffer.string(4) do |buffer|
26+
buffer.send(@method).should be_false
27+
end
28+
end
29+
30+
it "is true for a 0-sized buffer" do
31+
@buffer = IO::Buffer.new(0)
32+
@buffer.send(@method).should be_true
33+
end
34+
35+
it "is true for a slice of a 0-sized buffer" do
36+
@buffer = IO::Buffer.new(0)
37+
@buffer.slice(0, 0).send(@method).should be_true
38+
end
39+
40+
it "is true for a freed buffer" do
41+
@buffer = IO::Buffer.new(1)
42+
@buffer.free
43+
@buffer.send(@method).should be_true
44+
end
45+
46+
it "is true for a buffer resized to 0" do
47+
@buffer = IO::Buffer.new(1)
48+
@buffer.resize(0)
49+
@buffer.send(@method).should be_true
50+
end
51+
end

0 commit comments

Comments
 (0)