summaryrefslogtreecommitdiff
path: root/spec/ruby/core/io/buffer/empty_spec.rb
blob: e1fd4ab6a232687bf366ec9df0ad4baff32c277c (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#empty?" do
  after :each do
    @buffer&.free
    @buffer = nil
  end

  it_behaves_like :io_buffer_null_and_empty, :empty?

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

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

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