summaryrefslogtreecommitdiff
path: root/spec/ruby/core/io/buffer/null_spec.rb
blob: 3fb1144d0ed66f260c9e960fcd9a729e53515c8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require_relative '../../../spec_helper'
require_relative 'shared/null_and_empty'

describe "IO::Buffer#null?" do
  after :each do
    @buffer&.free
    @buffer = nil
  end

  it_behaves_like :io_buffer_null_and_empty, :null?

  it "is false for a 0-length String-backed buffer created with .for" do
    @buffer = IO::Buffer.for("")
    @buffer.null?.should be_false
  end

  ruby_version_is "3.3" do
    it "is false for a 0-length String-backed buffer created with .string" do
      IO::Buffer.string(0) do |buffer|
        buffer.null?.should be_false
      end
    end
  end

  it "is false for a 0-length slice of a buffer with size > 0" do
    @buffer = IO::Buffer.new(4)
    @buffer.slice(3, 0).null?.should be_false
  end
end