Sha256: 077bc0b46ca4782f9f9b5521b38a59d1d37ce36a91994eb947c3d41ab7034c93

Contents?: true

Size: 903 Bytes

Versions: 3

Compression:

Stored size: 903 Bytes

Contents

# -*- encoding: binary -*-
require_relative 'helper'
require 'tempfile'
require 'socket'

class TestSendfile < Test::Unit::TestCase
  def test_linux_sendfile
    rd, wr = UNIXSocket.pair
    size = 5
    src = Tempfile.new('ruby_sf_src')
    assert_equal 0, SleepyPenguin.linux_sendfile(wr, src, size)
    str = 'abcde'.freeze
    assert_equal str.bytesize, src.syswrite(str)
    assert_equal 0, SleepyPenguin.linux_sendfile(wr, src, size)
    src.sysseek(0, IO::SEEK_SET)
    assert_equal str.bytesize,
                 SleepyPenguin.linux_sendfile(wr, src, size, offset: 0)
    assert_equal str, rd.read(size)
    assert_equal 0, src.sysseek(0, IO::SEEK_CUR), 'handle offset not changed'
    assert_equal 3, SleepyPenguin.linux_sendfile(wr, src, 3)
    assert_equal 3, src.sysseek(0, IO::SEEK_CUR), 'handle offset changed'
  ensure
    [ rd, wr ].compact.each(&:close)
    src.close! if src
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sleepy_penguin-3.5.2 test/test_sendfile.rb
sleepy_penguin-3.5.1 test/test_sendfile.rb
sleepy_penguin-3.5.0 test/test_sendfile.rb