Sha256: 49575789b7ce3c823efdacc663c4a66fbc181721d0d68d19b6e21b91c2ebba14

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

require File.expand_path('../../fixtures/classes', __FILE__)

describe "UNIXSocket#recvfrom" do

  platform_is_not :windows do
    before :each do
      @path = SocketSpecs.socket_path
      rm_r @path

      @server = UNIXServer.open(@path)
      @client = UNIXSocket.open(@path)
    end

    after :each do
      @client.close
      @server.close
      rm_r @path
    end

    it "receives len bytes from sock" do
      @client.send("foobar", 0)
      sock = @server.accept
      sock.recvfrom(6).first.should == "foobar"
      sock.close
    end

    it "returns an array with data and information on the sender" do
      @client.send("foobar", 0)
      sock = @server.accept
      data = sock.recvfrom(6)
      data.first.should == "foobar"
      data.last.should == ["AF_UNIX", ""]
      sock.close
    end

    it "uses different message options" do
      @client.send("foobar", Socket::MSG_PEEK)
      sock = @server.accept
      peek_data = sock.recvfrom(6, Socket::MSG_PEEK) # Does not retrieve the message
      real_data = sock.recvfrom(6)

      real_data.should == peek_data
      peek_data.should == ["foobar", ["AF_UNIX", ""]]
      sock.close
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rubysl-socket-1.0.1 spec/unixsocket/recvfrom_spec.rb
rubysl-socket-2.0.1 spec/unixsocket/recvfrom_spec.rb
rubysl-socket-1.0.0 spec/unixsocket/recvfrom_spec.rb
rubysl-socket-2.0.0 spec/unixsocket/recvfrom_spec.rb