Sha256: 5fcd1852c70b6ec0f608b7de5adb1d2633f0f02e264dd5b93a5259c9d5060ae6

Contents?: true

Size: 952 Bytes

Versions: 6

Compression:

Stored size: 952 Bytes

Contents

# frozen_string_literal: true

require "spec_helper"

RSpec.describe UDPSocket, if: !defined?(JRUBY_VERSION) do
  let(:udp_port) { 23_456 }

  let :readable_subject do
    sock = UDPSocket.new
    sock.bind("127.0.0.1", udp_port)

    peer = UDPSocket.new
    peer.send("hi there", 0, "127.0.0.1", udp_port)

    sock
  end

  let :unreadable_subject do
    sock = UDPSocket.new
    sock.bind("127.0.0.1", udp_port + 1)
    sock
  end

  let :writable_subject do
    peer = UDPSocket.new
    peer.connect "127.0.0.1", udp_port
    cntr = 0
    begin
      peer.send("X" * 1024, 0)
      cntr += 1
      t = select [], [peer], [], 0
    rescue Errno::ECONNREFUSED => ex
      skip "Couln't make writable UDPSocket subject: #{ex.class}: #{ex}"
    end while t && t[1].include?(peer) && cntr < 5
    peer
  end

  let :unwritable_subject do
    pending "come up with a UDPSocket that's blocked on writing"
  end

  it_behaves_like "an NIO selectable"
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
nio4r-2.3.1-java spec/nio/selectables/udp_socket_spec.rb
nio4r-2.3.1 spec/nio/selectables/udp_socket_spec.rb
nio4r-2.3.0-java spec/nio/selectables/udp_socket_spec.rb
nio4r-2.3.0 spec/nio/selectables/udp_socket_spec.rb
nio4r-2.2.0-java spec/nio/selectables/udp_socket_spec.rb
nio4r-2.2.0 spec/nio/selectables/udp_socket_spec.rb