diff options
Diffstat (limited to 'spec/ruby/library/socket/basicsocket')
18 files changed, 221 insertions, 333 deletions
diff --git a/spec/ruby/library/socket/basicsocket/close_read_spec.rb b/spec/ruby/library/socket/basicsocket/close_read_spec.rb index f317b34955..35bec203d7 100644 --- a/spec/ruby/library/socket/basicsocket/close_read_spec.rb +++ b/spec/ruby/library/socket/basicsocket/close_read_spec.rb @@ -12,32 +12,32 @@ describe "Socket::BasicSocket#close_read" do it "closes the reading end of the socket" do @server.close_read - -> { @server.read }.should raise_error(IOError) + -> { @server.read }.should.raise(IOError) end it 'does not raise when called on a socket already closed for reading' do @server.close_read @server.close_read - -> { @server.read }.should raise_error(IOError) + -> { @server.read }.should.raise(IOError) end it 'does not fully close the socket' do @server.close_read - @server.closed?.should be_false + @server.closed?.should == false end it "fully closes the socket if it was already closed for writing" do @server.close_write @server.close_read - @server.closed?.should be_true + @server.closed?.should == true end it 'raises IOError when called on a fully closed socket' do @server.close - -> { @server.close_read }.should raise_error(IOError) + -> { @server.close_read }.should.raise(IOError) end it "returns nil" do - @server.close_read.should be_nil + @server.close_read.should == nil end end diff --git a/spec/ruby/library/socket/basicsocket/close_write_spec.rb b/spec/ruby/library/socket/basicsocket/close_write_spec.rb index 232cfbb7c6..c1b6d9e9ef 100644 --- a/spec/ruby/library/socket/basicsocket/close_write_spec.rb +++ b/spec/ruby/library/socket/basicsocket/close_write_spec.rb @@ -12,18 +12,18 @@ describe "Socket::BasicSocket#close_write" do it "closes the writing end of the socket" do @server.close_write - -> { @server.write("foo") }.should raise_error(IOError) + -> { @server.write("foo") }.should.raise(IOError) end it 'does not raise when called on a socket already closed for writing' do @server.close_write @server.close_write - -> { @server.write("foo") }.should raise_error(IOError) + -> { @server.write("foo") }.should.raise(IOError) end it 'does not fully close the socket' do @server.close_write - @server.closed?.should be_false + @server.closed?.should == false end it "does not prevent reading" do @@ -34,15 +34,15 @@ describe "Socket::BasicSocket#close_write" do it "fully closes the socket if it was already closed for reading" do @server.close_read @server.close_write - @server.closed?.should be_true + @server.closed?.should == true end it 'raises IOError when called on a fully closed socket' do @server.close - -> { @server.close_write }.should raise_error(IOError) + -> { @server.close_write }.should.raise(IOError) end it "returns nil" do - @server.close_write.should be_nil + @server.close_write.should == nil end end diff --git a/spec/ruby/library/socket/basicsocket/connect_address_spec.rb b/spec/ruby/library/socket/basicsocket/connect_address_spec.rb index 1a1c9982d9..e330b6e1be 100644 --- a/spec/ruby/library/socket/basicsocket/connect_address_spec.rb +++ b/spec/ruby/library/socket/basicsocket/connect_address_spec.rb @@ -10,7 +10,7 @@ describe 'Socket#connect_address' do it 'raises SocketError' do @sock = Socket.new(:INET, :STREAM) - -> { @sock.connect_address }.should raise_error(SocketError) + -> { @sock.connect_address }.should.raise(SocketError) end end @@ -25,7 +25,7 @@ describe 'Socket#connect_address' do end it 'returns an Addrinfo' do - @sock.connect_address.should be_an_instance_of(Addrinfo) + @sock.connect_address.should.instance_of?(Addrinfo) end it 'uses 127.0.0.1 as the IP address' do @@ -65,7 +65,7 @@ describe 'Socket#connect_address' do end it 'returns an Addrinfo' do - @sock.connect_address.should be_an_instance_of(Addrinfo) + @sock.connect_address.should.instance_of?(Addrinfo) end it 'uses ::1 as the IP address' do @@ -94,61 +94,59 @@ describe 'Socket#connect_address' do end end - with_feature :unix_socket do - platform_is_not :aix do - describe 'using an unbound UNIX socket' do - before do - @path = SocketSpecs.socket_path - @server = UNIXServer.new(@path) - @client = UNIXSocket.new(@path) - end - - after do - @client.close - @server.close - rm_r(@path) - end - - it 'raises SocketError' do - -> { @client.connect_address }.should raise_error(SocketError) - end - end - end - - describe 'using a bound UNIX socket' do + platform_is_not :aix do + describe 'using an unbound UNIX socket' do before do @path = SocketSpecs.socket_path - @sock = UNIXServer.new(@path) + @server = UNIXServer.new(@path) + @client = UNIXSocket.new(@path) end after do - @sock.close + @client.close + @server.close rm_r(@path) end - it 'returns an Addrinfo' do - @sock.connect_address.should be_an_instance_of(Addrinfo) + it 'raises SocketError' do + -> { @client.connect_address }.should.raise(SocketError) end + end + end - it 'uses the correct socket path' do - @sock.connect_address.unix_path.should == @path - end + describe 'using a bound UNIX socket' do + before do + @path = SocketSpecs.socket_path + @sock = UNIXServer.new(@path) + end - it 'uses AF_UNIX as the address family' do - @sock.connect_address.afamily.should == Socket::AF_UNIX - end + after do + @sock.close + rm_r(@path) + end - it 'uses PF_UNIX as the protocol family' do - @sock.connect_address.pfamily.should == Socket::PF_UNIX - end + it 'returns an Addrinfo' do + @sock.connect_address.should.instance_of?(Addrinfo) + end - it 'uses SOCK_STREAM as the socket type' do - @sock.connect_address.socktype.should == Socket::SOCK_STREAM - end + it 'uses the correct socket path' do + @sock.connect_address.unix_path.should == @path + end - it 'uses 0 as the protocol' do - @sock.connect_address.protocol.should == 0 - end + it 'uses AF_UNIX as the address family' do + @sock.connect_address.afamily.should == Socket::AF_UNIX + end + + it 'uses PF_UNIX as the protocol family' do + @sock.connect_address.pfamily.should == Socket::PF_UNIX + end + + it 'uses SOCK_STREAM as the socket type' do + @sock.connect_address.socktype.should == Socket::SOCK_STREAM + end + + it 'uses 0 as the protocol' do + @sock.connect_address.protocol.should == 0 end end end diff --git a/spec/ruby/library/socket/basicsocket/do_not_reverse_lookup_spec.rb b/spec/ruby/library/socket/basicsocket/do_not_reverse_lookup_spec.rb index a8800a8493..36338bfd59 100644 --- a/spec/ruby/library/socket/basicsocket/do_not_reverse_lookup_spec.rb +++ b/spec/ruby/library/socket/basicsocket/do_not_reverse_lookup_spec.rb @@ -16,7 +16,7 @@ describe "BasicSocket.do_not_reverse_lookup" do end it "defaults to true" do - BasicSocket.do_not_reverse_lookup.should be_true + BasicSocket.do_not_reverse_lookup.should == true end it "causes 'peeraddr' to avoid name lookups" do diff --git a/spec/ruby/library/socket/basicsocket/for_fd_spec.rb b/spec/ruby/library/socket/basicsocket/for_fd_spec.rb index 9c9e6a8b55..8d5b71cfa9 100644 --- a/spec/ruby/library/socket/basicsocket/for_fd_spec.rb +++ b/spec/ruby/library/socket/basicsocket/for_fd_spec.rb @@ -15,7 +15,7 @@ describe "BasicSocket.for_fd" do it "return a Socket instance wrapped around the descriptor" do @s2 = TCPServer.for_fd(@server.fileno) @s2.autoclose = false - @s2.should be_kind_of(TCPServer) + @s2.should.is_a?(TCPServer) @s2.fileno.should == @server.fileno end @@ -24,7 +24,7 @@ describe "BasicSocket.for_fd" do socket2 = Socket.for_fd(@socket1.fileno) socket2.autoclose = false - socket2.should be_an_instance_of(Socket) + socket2.should.instance_of?(Socket) socket2.fileno.should == @socket1.fileno end @@ -33,6 +33,6 @@ describe "BasicSocket.for_fd" do socket2 = Socket.for_fd(@socket1.fileno) socket2.autoclose = false - socket2.binmode?.should be_true + socket2.binmode?.should == true end end diff --git a/spec/ruby/library/socket/basicsocket/getpeereid_spec.rb b/spec/ruby/library/socket/basicsocket/getpeereid_spec.rb index 6179211d96..b9851bae15 100644 --- a/spec/ruby/library/socket/basicsocket/getpeereid_spec.rb +++ b/spec/ruby/library/socket/basicsocket/getpeereid_spec.rb @@ -2,7 +2,7 @@ require_relative '../spec_helper' require_relative '../fixtures/classes' describe 'BasicSocket#getpeereid' do - with_feature :unix_socket do + platform_is_not :windows do describe 'using a UNIXSocket' do before do @path = SocketSpecs.socket_path @@ -30,7 +30,7 @@ describe 'BasicSocket#getpeereid' do it 'raises NoMethodError' do @sock = TCPServer.new('127.0.0.1', 0) - -> { @sock.getpeereid }.should raise_error(NoMethodError) + -> { @sock.getpeereid }.should.raise(NoMethodError) end end end diff --git a/spec/ruby/library/socket/basicsocket/getpeername_spec.rb b/spec/ruby/library/socket/basicsocket/getpeername_spec.rb index 0b93f02eef..7e2f6f2e7b 100644 --- a/spec/ruby/library/socket/basicsocket/getpeername_spec.rb +++ b/spec/ruby/library/socket/basicsocket/getpeername_spec.rb @@ -20,6 +20,6 @@ describe "Socket::BasicSocket#getpeername" do end it 'raises Errno::ENOTCONN for a disconnected socket' do - -> { @server.getpeername }.should raise_error(Errno::ENOTCONN) + -> { @server.getpeername }.should.raise(Errno::ENOTCONN) end end diff --git a/spec/ruby/library/socket/basicsocket/getsockname_spec.rb b/spec/ruby/library/socket/basicsocket/getsockname_spec.rb index b33db088b6..a54626647e 100644 --- a/spec/ruby/library/socket/basicsocket/getsockname_spec.rb +++ b/spec/ruby/library/socket/basicsocket/getsockname_spec.rb @@ -3,7 +3,7 @@ require_relative '../fixtures/classes' describe "Socket::BasicSocket#getsockname" do after :each do - @socket.closed?.should be_false + @socket.closed?.should == false @socket.close end @@ -16,7 +16,7 @@ describe "Socket::BasicSocket#getsockname" do it "works on sockets listening in ipaddr_any" do @socket = TCPServer.new(0) sockaddr = Socket.unpack_sockaddr_in(@socket.getsockname) - ["::", "0.0.0.0", "::ffff:0.0.0.0"].include?(sockaddr[1]).should be_true + ["::", "0.0.0.0", "::ffff:0.0.0.0"].include?(sockaddr[1]).should == true sockaddr[0].should == @socket.addr[1] end diff --git a/spec/ruby/library/socket/basicsocket/getsockopt_spec.rb b/spec/ruby/library/socket/basicsocket/getsockopt_spec.rb index ce65d6c92b..744297ad02 100644 --- a/spec/ruby/library/socket/basicsocket/getsockopt_spec.rb +++ b/spec/ruby/library/socket/basicsocket/getsockopt_spec.rb @@ -7,7 +7,7 @@ describe "BasicSocket#getsockopt" do end after :each do - @sock.closed?.should be_false + @sock.closed?.should == false @sock.close end @@ -41,13 +41,13 @@ describe "BasicSocket#getsockopt" do end it "raises a SystemCallError with an invalid socket option" do - -> { @sock.getsockopt Socket::SOL_SOCKET, -1 }.should raise_error(Errno::ENOPROTOOPT) + -> { @sock.getsockopt Socket::SOL_SOCKET, -1 }.should.raise(Errno::ENOPROTOOPT) end it 'returns a Socket::Option using a constant' do opt = @sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_TYPE) - opt.should be_an_instance_of(Socket::Option) + opt.should.instance_of?(Socket::Option) end it 'returns a Socket::Option for a boolean option' do @@ -59,7 +59,7 @@ describe "BasicSocket#getsockopt" do it 'returns a Socket::Option for a numeric option' do opt = @sock.getsockopt(Socket::IPPROTO_IP, Socket::IP_TTL) - opt.int.should be_kind_of(Integer) + opt.int.should.is_a?(Integer) end it 'returns a Socket::Option for a struct option' do @@ -69,7 +69,7 @@ describe "BasicSocket#getsockopt" do end it 'raises Errno::ENOPROTOOPT when requesting an invalid option' do - -> { @sock.getsockopt(Socket::SOL_SOCKET, -1) }.should raise_error(Errno::ENOPROTOOPT) + -> { @sock.getsockopt(Socket::SOL_SOCKET, -1) }.should.raise(Errno::ENOPROTOOPT) end describe 'using Symbols as arguments' do @@ -171,7 +171,7 @@ describe "BasicSocket#getsockopt" do opt = @sock.getsockopt(Socket::IPPROTO_IP, Socket::IP_TTL).to_s array = opt.unpack('i') - array[0].should be_kind_of(Integer) + array[0].should.is_a?(Integer) array[0].should > 0 end diff --git a/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb b/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb index f2a6682f12..8aca7d0332 100644 --- a/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb +++ b/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb @@ -16,7 +16,7 @@ describe "Socket::BasicSocket#recv_nonblock" do platform_is_not :windows do describe 'using an unbound socket' do it 'raises an exception extending IO::WaitReadable' do - -> { @s1.recv_nonblock(1) }.should raise_error(IO::WaitReadable) + -> { @s1.recv_nonblock(1) }.should.raise(IO::WaitReadable) end end end @@ -25,12 +25,12 @@ describe "Socket::BasicSocket#recv_nonblock" do @s1.bind(Socket.pack_sockaddr_in(0, ip_address)) -> { @s1.recv_nonblock(5) - }.should raise_error(IO::WaitReadable) { |e| + }.should.raise(IO::WaitReadable) { |e| platform_is_not :windows do - e.should be_kind_of(Errno::EAGAIN) + e.should.is_a?(Errno::EAGAIN) end platform_is :windows do - e.should be_kind_of(Errno::EWOULDBLOCK) + e.should.is_a?(Errno::EWOULDBLOCK) end } end @@ -74,7 +74,7 @@ describe "Socket::BasicSocket#recv_nonblock" do @s1.recv_nonblock(1).should == "a" -> { @s1.recv_nonblock(5) - }.should raise_error(IO::WaitReadable) + }.should.raise(IO::WaitReadable) end end @@ -89,10 +89,10 @@ describe "Socket::BasicSocket#recv_nonblock" do end it "raises Errno::ENOTCONN" do - -> { @server.recv_nonblock(1) }.should raise_error { |e| + -> { @server.recv_nonblock(1) }.should.raise { |e| [Errno::ENOTCONN, Errno::EINVAL].should.include?(e.class) } - -> { @server.recv_nonblock(1, exception: false) }.should raise_error { |e| + -> { @server.recv_nonblock(1, exception: false) }.should.raise { |e| [Errno::ENOTCONN, Errno::EINVAL].should.include?(e.class) } end @@ -112,60 +112,30 @@ describe "Socket::BasicSocket#recv_nonblock" do @server.close unless @server.closed? end - ruby_version_is ""..."3.3" do - it "returns an empty String on a closed stream socket" do - ready = false - - t = Thread.new do - client = @server.accept - - Thread.pass while !ready - begin - client.recv_nonblock(10) - rescue IO::EAGAINWaitReadable - retry - end - ensure - client.close if client - end - - Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + it "returns nil on a closed stream socket" do + ready = false - socket = TCPSocket.new('127.0.0.1', @port) - socket.close - ready = true + t = Thread.new do + client = @server.accept - t.value.should == "" - end - end - - ruby_version_is "3.3" do - it "returns nil on a closed stream socket" do - ready = false - - t = Thread.new do - client = @server.accept - - Thread.pass while !ready - begin - client.recv_nonblock(10) - rescue IO::EAGAINWaitReadable - retry - end - ensure - client.close if client + Thread.pass while !ready + begin + client.recv_nonblock(10) + rescue IO::EAGAINWaitReadable + retry end + ensure + client.close if client + end - Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + Thread.pass while t.status and t.status != "sleep" + t.status.should_not == nil - socket = TCPSocket.new('127.0.0.1', @port) - socket.close - ready = true + socket = TCPSocket.new('127.0.0.1', @port) + socket.close + ready = true - t.value.should be_nil - end + t.value.should == nil end end end diff --git a/spec/ruby/library/socket/basicsocket/recv_spec.rb b/spec/ruby/library/socket/basicsocket/recv_spec.rb index 40033a5f5d..5c393218bc 100644 --- a/spec/ruby/library/socket/basicsocket/recv_spec.rb +++ b/spec/ruby/library/socket/basicsocket/recv_spec.rb @@ -1,4 +1,4 @@ -# -*- encoding: binary -*- +# encoding: binary require_relative '../spec_helper' require_relative '../fixtures/classes' @@ -22,7 +22,7 @@ describe "BasicSocket#recv" do client.close end Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + t.status.should_not == nil socket = TCPSocket.new('127.0.0.1', @port) socket.send('hello', 0) @@ -44,7 +44,7 @@ describe "BasicSocket#recv" do client.close end Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + t.status.should_not == nil socket = TCPSocket.new('127.0.0.1', @port) socket.send('helloU', Socket::MSG_OOB) @@ -64,7 +64,7 @@ describe "BasicSocket#recv" do client.close end Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + t.status.should_not == nil socket = TCPSocket.new('127.0.0.1', @port) socket.write("firstline\377secondline\377") @@ -184,42 +184,21 @@ describe "BasicSocket#recv" do @server.close unless @server.closed? end - ruby_version_is ""..."3.3" do - it "returns an empty String on a closed stream socket" do - t = Thread.new do - client = @server.accept - client.recv(10) - ensure - client.close if client - end - - Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil - - socket = TCPSocket.new('127.0.0.1', @port) - socket.close - - t.value.should == "" + it "returns nil on a closed stream socket" do + t = Thread.new do + client = @server.accept + client.recv(10) + ensure + client.close if client end - end - - ruby_version_is "3.3" do - it "returns nil on a closed stream socket" do - t = Thread.new do - client = @server.accept - client.recv(10) - ensure - client.close if client - end - Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + Thread.pass while t.status and t.status != "sleep" + t.status.should_not == nil - socket = TCPSocket.new('127.0.0.1', @port) - socket.close + socket = TCPSocket.new('127.0.0.1', @port) + socket.close - t.value.should be_nil - end + t.value.should == nil end end diff --git a/spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb b/spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb index b5fdd7c93b..9d77f5df6b 100644 --- a/spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb +++ b/spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb @@ -17,7 +17,7 @@ describe 'BasicSocket#recvmsg_nonblock' do platform_is_not :windows do describe 'using an unbound socket' do it 'raises an exception extending IO::WaitReadable' do - -> { @server.recvmsg_nonblock }.should raise_error(IO::WaitReadable) + -> { @server.recvmsg_nonblock }.should.raise(IO::WaitReadable) end end end @@ -29,7 +29,7 @@ describe 'BasicSocket#recvmsg_nonblock' do describe 'without any data available' do it 'raises an exception extending IO::WaitReadable' do - -> { @server.recvmsg_nonblock }.should raise_error(IO::WaitReadable) + -> { @server.recvmsg_nonblock }.should.raise(IO::WaitReadable) end it 'returns :wait_readable with exception: false' do @@ -47,7 +47,7 @@ describe 'BasicSocket#recvmsg_nonblock' do end it 'returns an Array containing the data, an Addrinfo and the flags' do - @server.recvmsg_nonblock.should be_an_instance_of(Array) + @server.recvmsg_nonblock.should.instance_of?(Array) end describe 'without a maximum message length' do @@ -74,12 +74,12 @@ describe 'BasicSocket#recvmsg_nonblock' do end it 'stores an Addrinfo at index 1' do - @array[1].should be_an_instance_of(Addrinfo) + @array[1].should.instance_of?(Addrinfo) end platform_is_not :windows do it 'stores the flags at index 2' do - @array[2].should be_kind_of(Integer) + @array[2].should.is_a?(Integer) end end @@ -124,8 +124,8 @@ describe 'BasicSocket#recvmsg_nonblock' do end it "raises Errno::ENOTCONN" do - -> { @server.recvmsg_nonblock }.should raise_error(Errno::ENOTCONN) - -> { @server.recvmsg_nonblock(exception: false) }.should raise_error(Errno::ENOTCONN) + -> { @server.recvmsg_nonblock }.should.raise(Errno::ENOTCONN) + -> { @server.recvmsg_nonblock(exception: false) }.should.raise(Errno::ENOTCONN) end end @@ -154,7 +154,7 @@ describe 'BasicSocket#recvmsg_nonblock' do ensure socket.close end - }.should raise_error(IO::WaitReadable) + }.should.raise(IO::WaitReadable) end end @@ -171,7 +171,7 @@ describe 'BasicSocket#recvmsg_nonblock' do end it 'returns an Array containing the data, an Addrinfo and the flags' do - @socket.recvmsg_nonblock.should be_an_instance_of(Array) + @socket.recvmsg_nonblock.should.instance_of?(Array) end describe 'the returned Array' do @@ -184,11 +184,11 @@ describe 'BasicSocket#recvmsg_nonblock' do end it 'stores an Addrinfo at index 1' do - @array[1].should be_an_instance_of(Addrinfo) + @array[1].should.instance_of?(Addrinfo) end it 'stores the flags at index 2' do - @array[2].should be_kind_of(Integer) + @array[2].should.is_a?(Integer) end describe 'the returned Addrinfo' do @@ -197,7 +197,7 @@ describe 'BasicSocket#recvmsg_nonblock' do end it 'raises when receiving the ip_address message' do - -> { @addr.ip_address }.should raise_error(SocketError) + -> { @addr.ip_address }.should.raise(SocketError) end it 'uses the correct address family' do @@ -213,7 +213,7 @@ describe 'BasicSocket#recvmsg_nonblock' do end it 'raises when receiving the ip_port message' do - -> { @addr.ip_port }.should raise_error(SocketError) + -> { @addr.ip_port }.should.raise(SocketError) end end end @@ -235,64 +235,31 @@ describe 'BasicSocket#recvmsg_nonblock' do @server.close unless @server.closed? end - ruby_version_is ""..."3.3" do - platform_is_not :windows do # #recvmsg_nonblock() raises 'Errno::EINVAL: Invalid argument - recvmsg(2)' - it "returns an empty String as received data on a closed stream socket" do - ready = false + platform_is_not :windows do + it "returns nil on a closed stream socket" do + ready = false - t = Thread.new do - client = @server.accept + t = Thread.new do + client = @server.accept - Thread.pass while !ready - begin - client.recvmsg_nonblock(10) - rescue IO::EAGAINWaitReadable - retry - end - ensure - client.close if client + Thread.pass while !ready + begin + client.recvmsg_nonblock(10) + rescue IO::EAGAINWaitReadable + retry end - - Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil - - socket = TCPSocket.new('127.0.0.1', @port) - socket.close - ready = true - - t.value.should.is_a? Array - t.value[0].should == "" + ensure + client.close if client end - end - end - ruby_version_is "3.3" do - platform_is_not :windows do - it "returns nil on a closed stream socket" do - ready = false + Thread.pass while t.status and t.status != "sleep" + t.status.should_not == nil - t = Thread.new do - client = @server.accept + socket = TCPSocket.new('127.0.0.1', @port) + socket.close + ready = true - Thread.pass while !ready - begin - client.recvmsg_nonblock(10) - rescue IO::EAGAINWaitReadable - retry - end - ensure - client.close if client - end - - Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil - - socket = TCPSocket.new('127.0.0.1', @port) - socket.close - ready = true - - t.value.should be_nil - end + t.value.should == nil end end end diff --git a/spec/ruby/library/socket/basicsocket/recvmsg_spec.rb b/spec/ruby/library/socket/basicsocket/recvmsg_spec.rb index 04ba1d74c7..eabfb9dd18 100644 --- a/spec/ruby/library/socket/basicsocket/recvmsg_spec.rb +++ b/spec/ruby/library/socket/basicsocket/recvmsg_spec.rb @@ -41,7 +41,7 @@ describe 'BasicSocket#recvmsg' do end it 'returns an Array containing the data, an Addrinfo and the flags' do - @server.recvmsg.should be_an_instance_of(Array) + @server.recvmsg.should.instance_of?(Array) end describe 'without a maximum message length' do @@ -66,12 +66,12 @@ describe 'BasicSocket#recvmsg' do end it 'stores an Addrinfo at index 1' do - @array[1].should be_an_instance_of(Addrinfo) + @array[1].should.instance_of?(Addrinfo) end platform_is_not :windows do it 'stores the flags at index 2' do - @array[2].should be_kind_of(Integer) + @array[2].should.is_a?(Integer) end end @@ -144,7 +144,7 @@ describe 'BasicSocket#recvmsg' do end it 'returns an Array containing the data, an Addrinfo and the flags' do - @socket.recvmsg.should be_an_instance_of(Array) + @socket.recvmsg.should.instance_of?(Array) end describe 'the returned Array' do @@ -157,11 +157,11 @@ describe 'BasicSocket#recvmsg' do end it 'stores an Addrinfo at index 1' do - @array[1].should be_an_instance_of(Addrinfo) + @array[1].should.instance_of?(Addrinfo) end it 'stores the flags at index 2' do - @array[2].should be_kind_of(Integer) + @array[2].should.is_a?(Integer) end describe 'the returned Addrinfo' do @@ -170,7 +170,7 @@ describe 'BasicSocket#recvmsg' do end it 'raises when receiving the ip_address message' do - -> { @addr.ip_address }.should raise_error(SocketError) + -> { @addr.ip_address }.should.raise(SocketError) end it 'uses the correct address family' do @@ -186,7 +186,7 @@ describe 'BasicSocket#recvmsg' do end it 'raises when receiving the ip_port message' do - -> { @addr.ip_port }.should raise_error(SocketError) + -> { @addr.ip_port }.should.raise(SocketError) end end end @@ -208,46 +208,22 @@ describe 'BasicSocket#recvmsg' do @server.close unless @server.closed? end - ruby_version_is ""..."3.3" do - platform_is_not :windows do - it "returns an empty String as received data on a closed stream socket" do - t = Thread.new do - client = @server.accept - client.recvmsg(10) - ensure - client.close if client - end - - Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil - - socket = TCPSocket.new('127.0.0.1', @port) - socket.close - - t.value.should.is_a? Array - t.value[0].should == "" + platform_is_not :windows do + it "returns nil on a closed stream socket" do + t = Thread.new do + client = @server.accept + client.recvmsg(10) + ensure + client.close if client end - end - end - - ruby_version_is "3.3" do - platform_is_not :windows do - it "returns nil on a closed stream socket" do - t = Thread.new do - client = @server.accept - client.recvmsg(10) - ensure - client.close if client - end - Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + Thread.pass while t.status and t.status != "sleep" + t.status.should_not == nil - socket = TCPSocket.new('127.0.0.1', @port) - socket.close + socket = TCPSocket.new('127.0.0.1', @port) + socket.close - t.value.should be_nil - end + t.value.should == nil end end end diff --git a/spec/ruby/library/socket/basicsocket/send_spec.rb b/spec/ruby/library/socket/basicsocket/send_spec.rb index 25ba3f5655..a2c2ee8de9 100644 --- a/spec/ruby/library/socket/basicsocket/send_spec.rb +++ b/spec/ruby/library/socket/basicsocket/send_spec.rb @@ -9,8 +9,8 @@ describe "BasicSocket#send" do end after :each do - @server.closed?.should be_false - @socket.closed?.should be_false + @server.closed?.should == false + @socket.closed?.should == false @server.close @socket.close @@ -28,7 +28,7 @@ describe "BasicSocket#send" do client.close end Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + t.status.should_not == nil @socket.send('hello', 0).should == 5 @socket.shutdown(1) # indicate, that we are done sending @@ -50,7 +50,7 @@ describe "BasicSocket#send" do client.close end Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + t.status.should_not == nil @socket.send('helloU', Socket::MSG_PEEK | Socket::MSG_OOB).should == 6 @socket.shutdown # indicate, that we are done sending @@ -73,7 +73,7 @@ describe "BasicSocket#send" do client.close end Thread.pass while t.status and t.status != "sleep" - t.status.should_not be_nil + t.status.should_not == nil sockaddr = Socket.pack_sockaddr_in(@port, "127.0.0.1") @socket.send('hello', 0, sockaddr).should == 5 @@ -109,7 +109,7 @@ describe 'BasicSocket#send' do describe 'without a destination address' do it "raises #{SocketSpecs.dest_addr_req_error}" do - -> { @client.send('hello', 0) }.should raise_error(SocketSpecs.dest_addr_req_error) + -> { @client.send('hello', 0) }.should.raise(SocketSpecs.dest_addr_req_error) end end @@ -121,7 +121,7 @@ describe 'BasicSocket#send' do it 'does not persist the connection after writing to the socket' do @client.send('hello', 0, @server.getsockname) - -> { @client.send('hello', 0) }.should raise_error(SocketSpecs.dest_addr_req_error) + -> { @client.send('hello', 0) }.should.raise(SocketSpecs.dest_addr_req_error) end end diff --git a/spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb b/spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb index 7acfc659bd..4cd6e8bdca 100644 --- a/spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb +++ b/spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb @@ -20,10 +20,10 @@ describe 'BasicSocket#sendmsg_nonblock' do it "raises #{SocketSpecs.dest_addr_req_error}" do -> { @client.sendmsg_nonblock('hello') - }.should raise_error(SocketSpecs.dest_addr_req_error) + }.should.raise(SocketSpecs.dest_addr_req_error) -> { @client.sendmsg_nonblock('hello', exception: false) - }.should raise_error(SocketSpecs.dest_addr_req_error) + }.should.raise(SocketSpecs.dest_addr_req_error) end end @@ -101,7 +101,7 @@ describe 'BasicSocket#sendmsg_nonblock' do it 'raises IO::WaitWritable when the underlying buffer is full' do -> { 10.times { @client.sendmsg_nonblock('hello' * 1_000_000) } - }.should raise_error(IO::WaitWritable) + }.should.raise(IO::WaitWritable) end it 'returns :wait_writable when the underlying buffer is full with exception: false' do diff --git a/spec/ruby/library/socket/basicsocket/sendmsg_spec.rb b/spec/ruby/library/socket/basicsocket/sendmsg_spec.rb index 7ff336c0b7..dc999b32df 100644 --- a/spec/ruby/library/socket/basicsocket/sendmsg_spec.rb +++ b/spec/ruby/library/socket/basicsocket/sendmsg_spec.rb @@ -19,7 +19,7 @@ describe 'BasicSocket#sendmsg' do platform_is_not :windows do describe 'without a destination address' do it "raises #{SocketSpecs.dest_addr_req_error}" do - -> { @client.sendmsg('hello') }.should raise_error(SocketSpecs.dest_addr_req_error) + -> { @client.sendmsg('hello') }.should.raise(SocketSpecs.dest_addr_req_error) end end end diff --git a/spec/ruby/library/socket/basicsocket/setsockopt_spec.rb b/spec/ruby/library/socket/basicsocket/setsockopt_spec.rb index 1e8d84e1c9..e306581aa3 100644 --- a/spec/ruby/library/socket/basicsocket/setsockopt_spec.rb +++ b/spec/ruby/library/socket/basicsocket/setsockopt_spec.rb @@ -40,7 +40,7 @@ describe "BasicSocket#setsockopt" do it "raises EINVAL if passed wrong linger value" do -> do @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, 0) - end.should raise_error(Errno::EINVAL) + end.should.raise(Errno::EINVAL) end end @@ -72,7 +72,7 @@ describe "BasicSocket#setsockopt" do platform_is_not :windows do -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "") - }.should raise_error(SystemCallError) + }.should.raise(SystemCallError) end @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "blah").should == 0 @@ -82,7 +82,7 @@ describe "BasicSocket#setsockopt" do platform_is_not :windows do -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "0") - }.should raise_error(SystemCallError) + }.should.raise(SystemCallError) end @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "\x00\x00\x00\x00").should == 0 @@ -92,13 +92,13 @@ describe "BasicSocket#setsockopt" do platform_is_not :windows do -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "1") - }.should raise_error(SystemCallError) + }.should.raise(SystemCallError) end platform_is_not :windows do -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "\x00\x00\x00") - }.should raise_error(SystemCallError) + }.should.raise(SystemCallError) end @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, [1].pack('i')).should == 0 @@ -127,7 +127,7 @@ describe "BasicSocket#setsockopt" do -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, nil).should == 0 - }.should raise_error(TypeError) + }.should.raise(TypeError) @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, 1).should == 0 n = @sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF).to_s @@ -139,23 +139,23 @@ describe "BasicSocket#setsockopt" do -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "") - }.should raise_error(SystemCallError) + }.should.raise(SystemCallError) -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "bla") - }.should raise_error(SystemCallError) + }.should.raise(SystemCallError) -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "0") - }.should raise_error(SystemCallError) + }.should.raise(SystemCallError) -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "1") - }.should raise_error(SystemCallError) + }.should.raise(SystemCallError) -> { @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "\x00\x00\x00") - }.should raise_error(SystemCallError) + }.should.raise(SystemCallError) @sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "\x00\x00\x01\x00").should == 0 n = @sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF).to_s @@ -207,7 +207,7 @@ describe "BasicSocket#setsockopt" do onoff, seconds = @sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER).linger seconds.should == 10 # Both results can be produced depending on the OS and value of Socket::SO_LINGER - [true, Socket::SO_LINGER].should include(onoff) + [true, Socket::SO_LINGER].should.include?(onoff) end end end @@ -224,7 +224,7 @@ describe 'BasicSocket#setsockopt' do describe 'using separate arguments with Symbols' do it 'raises TypeError when the first argument is nil' do - -> { @socket.setsockopt(nil, :REUSEADDR, true) }.should raise_error(TypeError) + -> { @socket.setsockopt(nil, :REUSEADDR, true) }.should.raise(TypeError) end it 'sets a boolean option' do @@ -251,7 +251,7 @@ describe 'BasicSocket#setsockopt' do platform_is_not :windows do it 'raises Errno::EINVAL when setting an invalid option value' do - -> { @socket.setsockopt(:SOCKET, :OOBINLINE, 'bla') }.should raise_error(Errno::EINVAL) + -> { @socket.setsockopt(:SOCKET, :OOBINLINE, 'bla') }.should.raise(Errno::EINVAL) end end end @@ -305,32 +305,30 @@ describe 'BasicSocket#setsockopt' do it 'raises ArgumentError when passing 2 arguments' do option = Socket::Option.bool(:INET, :SOCKET, :REUSEADDR, true) - -> { @socket.setsockopt(option, :REUSEADDR) }.should raise_error(ArgumentError) + -> { @socket.setsockopt(option, :REUSEADDR) }.should.raise(ArgumentError) end it 'raises TypeError when passing 3 arguments' do option = Socket::Option.bool(:INET, :SOCKET, :REUSEADDR, true) - -> { @socket.setsockopt(option, :REUSEADDR, true) }.should raise_error(TypeError) + -> { @socket.setsockopt(option, :REUSEADDR, true) }.should.raise(TypeError) end end end - with_feature :unix_socket do - describe 'using a UNIX socket' do - before do - @path = SocketSpecs.socket_path - @server = UNIXServer.new(@path) - end + describe 'using a UNIX socket' do + before do + @path = SocketSpecs.socket_path + @server = UNIXServer.new(@path) + end - after do - @server.close - rm_r @path - end + after do + @server.close + rm_r @path + end - it 'sets a boolean option' do - @server.setsockopt(:SOCKET, :REUSEADDR, true) - @server.getsockopt(:SOCKET, :REUSEADDR).bool.should == true - end + it 'sets a boolean option' do + @server.setsockopt(:SOCKET, :REUSEADDR, true) + @server.getsockopt(:SOCKET, :REUSEADDR).bool.should == true end end end diff --git a/spec/ruby/library/socket/basicsocket/shutdown_spec.rb b/spec/ruby/library/socket/basicsocket/shutdown_spec.rb index c78b32de38..c96c62abe1 100644 --- a/spec/ruby/library/socket/basicsocket/shutdown_spec.rb +++ b/spec/ruby/library/socket/basicsocket/shutdown_spec.rb @@ -23,25 +23,25 @@ platform_is_not :windows do # hangs it 'shuts down a socket for reading' do @client.shutdown(Socket::SHUT_RD) - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? end it 'shuts down a socket for writing' do @client.shutdown(Socket::SHUT_WR) - -> { @client.write('hello') }.should raise_error(Errno::EPIPE) + -> { @client.write('hello') }.should.raise(Errno::EPIPE) end it 'shuts down a socket for reading and writing' do @client.shutdown(Socket::SHUT_RDWR) - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? - -> { @client.write('hello') }.should raise_error(Errno::EPIPE) + -> { @client.write('hello') }.should.raise(Errno::EPIPE) end it 'raises ArgumentError when using an invalid option' do - -> { @server.shutdown(666) }.should raise_error(ArgumentError) + -> { @server.shutdown(666) }.should.raise(ArgumentError) end end @@ -49,37 +49,37 @@ platform_is_not :windows do # hangs it 'shuts down a socket for reading using :RD' do @client.shutdown(:RD) - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? end it 'shuts down a socket for reading using :SHUT_RD' do @client.shutdown(:SHUT_RD) - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? end it 'shuts down a socket for writing using :WR' do @client.shutdown(:WR) - -> { @client.write('hello') }.should raise_error(Errno::EPIPE) + -> { @client.write('hello') }.should.raise(Errno::EPIPE) end it 'shuts down a socket for writing using :SHUT_WR' do @client.shutdown(:SHUT_WR) - -> { @client.write('hello') }.should raise_error(Errno::EPIPE) + -> { @client.write('hello') }.should.raise(Errno::EPIPE) end it 'shuts down a socket for reading and writing' do @client.shutdown(:RDWR) - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? - -> { @client.write('hello') }.should raise_error(Errno::EPIPE) + -> { @client.write('hello') }.should.raise(Errno::EPIPE) end it 'raises ArgumentError when using an invalid option' do - -> { @server.shutdown(:Nope) }.should raise_error(SocketError) + -> { @server.shutdown(:Nope) }.should.raise(SocketError) end end @@ -87,29 +87,29 @@ platform_is_not :windows do # hangs it 'shuts down a socket for reading using "RD"' do @client.shutdown('RD') - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? end it 'shuts down a socket for reading using "SHUT_RD"' do @client.shutdown('SHUT_RD') - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? end it 'shuts down a socket for writing using "WR"' do @client.shutdown('WR') - -> { @client.write('hello') }.should raise_error(Errno::EPIPE) + -> { @client.write('hello') }.should.raise(Errno::EPIPE) end it 'shuts down a socket for writing using "SHUT_WR"' do @client.shutdown('SHUT_WR') - -> { @client.write('hello') }.should raise_error(Errno::EPIPE) + -> { @client.write('hello') }.should.raise(Errno::EPIPE) end it 'raises ArgumentError when using an invalid option' do - -> { @server.shutdown('Nope') }.should raise_error(SocketError) + -> { @server.shutdown('Nope') }.should.raise(SocketError) end end @@ -123,7 +123,7 @@ platform_is_not :windows do # hangs @client.shutdown(@dummy) - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? end it 'shuts down a socket for reading using "SHUT_RD"' do @@ -131,7 +131,7 @@ platform_is_not :windows do # hangs @client.shutdown(@dummy) - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? end it 'shuts down a socket for reading and writing' do @@ -139,15 +139,15 @@ platform_is_not :windows do # hangs @client.shutdown(@dummy) - @client.recv(1).to_s.should be_empty + @client.recv(1).to_s.should.empty? - -> { @client.write('hello') }.should raise_error(Errno::EPIPE) + -> { @client.write('hello') }.should.raise(Errno::EPIPE) end end describe 'using an object that does not respond to #to_str' do it 'raises TypeError' do - -> { @server.shutdown(mock(:dummy)) }.should raise_error(TypeError) + -> { @server.shutdown(mock(:dummy)) }.should.raise(TypeError) end end end |
