1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
This commit is contained in:
Benoit Daloze 2019-07-27 12:40:09 +02:00
parent a06301b103
commit 5c276e1cc9
1247 changed files with 5316 additions and 5028 deletions

View file

@ -12,13 +12,13 @@ describe "Socket::BasicSocket#close_read" do
it "closes the reading end of the socket" do
@server.close_read
lambda { @server.read }.should raise_error(IOError)
-> { @server.read }.should raise_error(IOError)
end
it 'does not raise when called on a socket already closed for reading' do
@server.close_read
@server.close_read
lambda { @server.read }.should raise_error(IOError)
-> { @server.read }.should raise_error(IOError)
end
it 'does not fully close the socket' do
@ -34,7 +34,7 @@ describe "Socket::BasicSocket#close_read" do
it 'raises IOError when called on a fully closed socket' do
@server.close
lambda { @server.close_read }.should raise_error(IOError)
-> { @server.close_read }.should raise_error(IOError)
end
it "returns nil" do

View file

@ -12,13 +12,13 @@ describe "Socket::BasicSocket#close_write" do
it "closes the writing end of the socket" do
@server.close_write
lambda { @server.write("foo") }.should raise_error(IOError)
-> { @server.write("foo") }.should raise_error(IOError)
end
it 'does not raise when called on a socket already closed for writing' do
@server.close_write
@server.close_write
lambda { @server.write("foo") }.should raise_error(IOError)
-> { @server.write("foo") }.should raise_error(IOError)
end
it 'does not fully close the socket' do
@ -39,7 +39,7 @@ describe "Socket::BasicSocket#close_write" do
it 'raises IOError when called on a fully closed socket' do
@server.close
lambda { @server.close_write }.should raise_error(IOError)
-> { @server.close_write }.should raise_error(IOError)
end
it "returns nil" do

View file

@ -10,7 +10,7 @@ describe 'Socket#connect_address' do
it 'raises SocketError' do
@sock = Socket.new(:INET, :STREAM)
lambda { @sock.connect_address }.should raise_error(SocketError)
-> { @sock.connect_address }.should raise_error(SocketError)
end
end
@ -110,7 +110,7 @@ describe 'Socket#connect_address' do
end
it 'raises SocketError' do
lambda { @client.connect_address }.should raise_error(SocketError)
-> { @client.connect_address }.should raise_error(SocketError)
end
end
end

View file

@ -30,7 +30,7 @@ describe 'BasicSocket#getpeereid' do
it 'raises NoMethodError' do
@sock = TCPServer.new('127.0.0.1', 0)
lambda { @sock.getpeereid }.should raise_error(NoMethodError)
-> { @sock.getpeereid }.should raise_error(NoMethodError)
end
end
end

View file

@ -20,6 +20,6 @@ describe "Socket::BasicSocket#getpeername" do
end
it 'raises Errno::ENOTCONN for a disconnected socket' do
lambda { @server.getpeername }.should raise_error(Errno::ENOTCONN)
-> { @server.getpeername }.should raise_error(Errno::ENOTCONN)
end
end

View file

@ -41,7 +41,7 @@ describe "BasicSocket#getsockopt" do
end
it "raises a SystemCallError with an invalid socket option" do
lambda { @sock.getsockopt Socket::SOL_SOCKET, -1 }.should raise_error(Errno::ENOPROTOOPT)
-> { @sock.getsockopt Socket::SOL_SOCKET, -1 }.should raise_error(Errno::ENOPROTOOPT)
end
it 'returns a Socket::Option using a constant' do
@ -69,7 +69,7 @@ describe "BasicSocket#getsockopt" do
end
it 'raises Errno::ENOPROTOOPT when requesting an invalid option' do
lambda { @sock.getsockopt(Socket::SOL_SOCKET, -1) }.should raise_error(Errno::ENOPROTOOPT)
-> { @sock.getsockopt(Socket::SOL_SOCKET, -1) }.should raise_error(Errno::ENOPROTOOPT)
end
describe 'using Symbols as arguments' do

View file

@ -16,14 +16,14 @@ 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
lambda { @s1.recv_nonblock(1) }.should raise_error(IO::WaitReadable)
-> { @s1.recv_nonblock(1) }.should raise_error(IO::WaitReadable)
end
end
end
it "raises an exception extending IO::WaitReadable if there's no data available" do
@s1.bind(Socket.pack_sockaddr_in(0, ip_address))
lambda {
-> {
@s1.recv_nonblock(5)
}.should raise_error(IO::WaitReadable) { |e|
platform_is_not :windows do
@ -62,7 +62,7 @@ describe "Socket::BasicSocket#recv_nonblock" do
@s2.send("a", 0, @s1.getsockname)
IO.select([@s1], nil, nil, 2)
@s1.recv_nonblock(1).should == "a"
lambda {
-> {
@s1.recv_nonblock(5)
}.should raise_error(IO::WaitReadable)
end

View file

@ -107,7 +107,7 @@ describe 'BasicSocket#recv' do
describe 'using an unbound socket' do
it 'blocks the caller' do
lambda { @server.recv(4) }.should block_caller
-> { @server.recv(4) }.should block_caller
end
end
@ -118,7 +118,7 @@ describe 'BasicSocket#recv' do
describe 'without any data available' do
it 'blocks the caller' do
lambda { @server.recv(4) }.should block_caller
-> { @server.recv(4) }.should block_caller
end
end
@ -144,7 +144,7 @@ describe 'BasicSocket#recv' do
@server.recv(2).should == 'he'
lambda { @server.recv(4) }.should block_caller
-> { @server.recv(4) }.should block_caller
end
it 'takes a peek at the data when using the MSG_PEEK flag' do

View file

@ -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
lambda { @server.recvmsg_nonblock }.should raise_error(IO::WaitReadable)
-> { @server.recvmsg_nonblock }.should raise_error(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
lambda { @server.recvmsg_nonblock }.should raise_error(IO::WaitReadable)
-> { @server.recvmsg_nonblock }.should raise_error(IO::WaitReadable)
end
it 'returns :wait_readable with exception: false' do
@ -132,7 +132,7 @@ describe 'BasicSocket#recvmsg_nonblock' do
describe 'without any data available' do
it 'raises IO::WaitReadable' do
lambda {
-> {
socket, _ = @server.accept
begin
socket.recvmsg_nonblock
@ -182,7 +182,7 @@ describe 'BasicSocket#recvmsg_nonblock' do
end
it 'raises when receiving the ip_address message' do
lambda { @addr.ip_address }.should raise_error(SocketError)
-> { @addr.ip_address }.should raise_error(SocketError)
end
it 'uses the correct address family' do
@ -198,7 +198,7 @@ describe 'BasicSocket#recvmsg_nonblock' do
end
it 'raises when receiving the ip_port message' do
lambda { @addr.ip_port }.should raise_error(SocketError)
-> { @addr.ip_port }.should raise_error(SocketError)
end
end
end

View file

@ -17,7 +17,7 @@ describe 'BasicSocket#recvmsg' do
platform_is_not :windows do
describe 'using an unbound socket' do
it 'blocks the caller' do
lambda { @server.recvmsg }.should block_caller
-> { @server.recvmsg }.should block_caller
end
end
end
@ -29,7 +29,7 @@ describe 'BasicSocket#recvmsg' do
describe 'without any data available' do
it 'blocks the caller' do
lambda { @server.recvmsg }.should block_caller
-> { @server.recvmsg }.should block_caller
end
end
@ -126,7 +126,7 @@ describe 'BasicSocket#recvmsg' do
it 'blocks the caller' do
socket, _ = @server.accept
begin
lambda { socket.recvmsg }.should block_caller
-> { socket.recvmsg }.should block_caller
ensure
socket.close
end
@ -170,7 +170,7 @@ describe 'BasicSocket#recvmsg' do
end
it 'raises when receiving the ip_address message' do
lambda { @addr.ip_address }.should raise_error(SocketError)
-> { @addr.ip_address }.should raise_error(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
lambda { @addr.ip_port }.should raise_error(SocketError)
-> { @addr.ip_port }.should raise_error(SocketError)
end
end
end

View file

@ -101,7 +101,7 @@ describe 'BasicSocket#send' do
describe 'without a destination address' do
it "raises #{SocketSpecs.dest_addr_req_error}" do
lambda { @client.send('hello', 0) }.should raise_error(SocketSpecs.dest_addr_req_error)
-> { @client.send('hello', 0) }.should raise_error(SocketSpecs.dest_addr_req_error)
end
end
@ -113,7 +113,7 @@ describe 'BasicSocket#send' do
it 'does not persist the connection after writing to the socket' do
@client.send('hello', 0, @server.getsockname)
lambda { @client.send('hello', 0) }.should raise_error(SocketSpecs.dest_addr_req_error)
-> { @client.send('hello', 0) }.should raise_error(SocketSpecs.dest_addr_req_error)
end
end
@ -161,7 +161,7 @@ describe 'BasicSocket#send' do
it 'sends the message to the given address instead' do
@client.send('hello', 0, @alt_server.getsockname).should == 5
lambda { @server.recv(5) }.should block_caller
-> { @server.recv(5) }.should block_caller
@alt_server.recv(5).should == 'hello'
end

View file

@ -18,7 +18,7 @@ describe 'BasicSocket#sendmsg_nonblock' do
describe 'without a destination address' do
it "raises #{SocketSpecs.dest_addr_req_error}" do
lambda { @client.sendmsg_nonblock('hello') }.should raise_error(SocketSpecs.dest_addr_req_error)
-> { @client.sendmsg_nonblock('hello') }.should raise_error(SocketSpecs.dest_addr_req_error)
end
end
@ -70,7 +70,7 @@ describe 'BasicSocket#sendmsg_nonblock' do
it 'sends the message to the given address instead' do
@client.sendmsg_nonblock('hello', 0, @alt_server.getsockname).should == 5
lambda { @server.recv(5) }.should block_caller
-> { @server.recv(5) }.should block_caller
@alt_server.recv(5).should == 'hello'
end
end
@ -94,7 +94,7 @@ describe 'BasicSocket#sendmsg_nonblock' do
end
it 'raises IO::WaitWritable when the underlying buffer is full' do
lambda {
-> {
10.times { @client.sendmsg_nonblock('hello' * 1_000_000) }
}.should raise_error(IO::WaitWritable)
end

View file

@ -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
lambda { @client.sendmsg('hello') }.should raise_error(SocketSpecs.dest_addr_req_error)
-> { @client.sendmsg('hello') }.should raise_error(SocketSpecs.dest_addr_req_error)
end
end
end
@ -74,7 +74,7 @@ describe 'BasicSocket#sendmsg' do
it 'sends the message to the given address instead' do
@client.sendmsg('hello', 0, @alt_server.getsockname).should == 5
lambda { @server.recv(5) }.should block_caller
-> { @server.recv(5) }.should block_caller
@alt_server.recv(5).should == 'hello'
end
@ -101,7 +101,7 @@ describe 'BasicSocket#sendmsg' do
it 'blocks when the underlying buffer is full' do
# Buffer sizes may differ per platform, so sadly this is the only
# reliable way of testing blocking behaviour.
lambda do
-> do
10.times { @client.sendmsg('hello' * 1_000_000) }
end.should block_caller
end

View file

@ -38,7 +38,7 @@ describe "BasicSocket#setsockopt" do
platform_is_not :windows do
it "raises EINVAL if passed wrong linger value" do
lambda do
-> do
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, 0)
end.should raise_error(Errno::EINVAL)
end
@ -70,7 +70,7 @@ describe "BasicSocket#setsockopt" do
n.should_not == [0].pack("i")
platform_is_not :windows do
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "")
}.should raise_error(SystemCallError)
end
@ -80,7 +80,7 @@ describe "BasicSocket#setsockopt" do
n.should_not == [0].pack("i")
platform_is_not :windows do
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "0")
}.should raise_error(SystemCallError)
end
@ -90,13 +90,13 @@ describe "BasicSocket#setsockopt" do
n.should == [0].pack("i")
platform_is_not :windows do
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "1")
}.should raise_error(SystemCallError)
end
platform_is_not :windows do
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_OOBINLINE, "\x00\x00\x00")
}.should raise_error(SystemCallError)
end
@ -125,7 +125,7 @@ describe "BasicSocket#setsockopt" do
n = @sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF).to_s
n.unpack('i')[0].should >= 1
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, nil).should == 0
}.should raise_error(TypeError)
@ -137,23 +137,23 @@ describe "BasicSocket#setsockopt" do
n = @sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF).to_s
n.unpack('i')[0].should >= 2
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "")
}.should raise_error(SystemCallError)
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "bla")
}.should raise_error(SystemCallError)
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "0")
}.should raise_error(SystemCallError)
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "1")
}.should raise_error(SystemCallError)
lambda {
-> {
@sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, "\x00\x00\x00")
}.should raise_error(SystemCallError)
@ -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
lambda { @socket.setsockopt(nil, :REUSEADDR, true) }.should raise_error(TypeError)
-> { @socket.setsockopt(nil, :REUSEADDR, true) }.should raise_error(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
lambda { @socket.setsockopt(:SOCKET, :OOBINLINE, 'bla') }.should raise_error(Errno::EINVAL)
-> { @socket.setsockopt(:SOCKET, :OOBINLINE, 'bla') }.should raise_error(Errno::EINVAL)
end
end
end
@ -305,12 +305,12 @@ describe 'BasicSocket#setsockopt' do
it 'raises ArgumentError when passing 2 arguments' do
option = Socket::Option.bool(:INET, :SOCKET, :REUSEADDR, true)
lambda { @socket.setsockopt(option, :REUSEADDR) }.should raise_error(ArgumentError)
-> { @socket.setsockopt(option, :REUSEADDR) }.should raise_error(ArgumentError)
end
it 'raises TypeError when passing 3 arguments' do
option = Socket::Option.bool(:INET, :SOCKET, :REUSEADDR, true)
lambda { @socket.setsockopt(option, :REUSEADDR, true) }.should raise_error(TypeError)
-> { @socket.setsockopt(option, :REUSEADDR, true) }.should raise_error(TypeError)
end
end
end

View file

@ -29,7 +29,7 @@ platform_is_not :windows do # hangs
it 'shuts down a socket for writing' do
@client.shutdown(Socket::SHUT_WR)
lambda { @client.write('hello') }.should raise_error(Errno::EPIPE)
-> { @client.write('hello') }.should raise_error(Errno::EPIPE)
end
it 'shuts down a socket for reading and writing' do
@ -37,11 +37,11 @@ platform_is_not :windows do # hangs
@client.recv(1).should be_empty
lambda { @client.write('hello') }.should raise_error(Errno::EPIPE)
-> { @client.write('hello') }.should raise_error(Errno::EPIPE)
end
it 'raises ArgumentError when using an invalid option' do
lambda { @server.shutdown(666) }.should raise_error(ArgumentError)
-> { @server.shutdown(666) }.should raise_error(ArgumentError)
end
end
@ -61,13 +61,13 @@ platform_is_not :windows do # hangs
it 'shuts down a socket for writing using :WR' do
@client.shutdown(:WR)
lambda { @client.write('hello') }.should raise_error(Errno::EPIPE)
-> { @client.write('hello') }.should raise_error(Errno::EPIPE)
end
it 'shuts down a socket for writing using :SHUT_WR' do
@client.shutdown(:SHUT_WR)
lambda { @client.write('hello') }.should raise_error(Errno::EPIPE)
-> { @client.write('hello') }.should raise_error(Errno::EPIPE)
end
it 'shuts down a socket for reading and writing' do
@ -75,11 +75,11 @@ platform_is_not :windows do # hangs
@client.recv(1).should be_empty
lambda { @client.write('hello') }.should raise_error(Errno::EPIPE)
-> { @client.write('hello') }.should raise_error(Errno::EPIPE)
end
it 'raises ArgumentError when using an invalid option' do
lambda { @server.shutdown(:Nope) }.should raise_error(SocketError)
-> { @server.shutdown(:Nope) }.should raise_error(SocketError)
end
end
@ -99,17 +99,17 @@ platform_is_not :windows do # hangs
it 'shuts down a socket for writing using "WR"' do
@client.shutdown('WR')
lambda { @client.write('hello') }.should raise_error(Errno::EPIPE)
-> { @client.write('hello') }.should raise_error(Errno::EPIPE)
end
it 'shuts down a socket for writing using "SHUT_WR"' do
@client.shutdown('SHUT_WR')
lambda { @client.write('hello') }.should raise_error(Errno::EPIPE)
-> { @client.write('hello') }.should raise_error(Errno::EPIPE)
end
it 'raises ArgumentError when using an invalid option' do
lambda { @server.shutdown('Nope') }.should raise_error(SocketError)
-> { @server.shutdown('Nope') }.should raise_error(SocketError)
end
end
@ -141,13 +141,13 @@ platform_is_not :windows do # hangs
@client.recv(1).should be_empty
lambda { @client.write('hello') }.should raise_error(Errno::EPIPE)
-> { @client.write('hello') }.should raise_error(Errno::EPIPE)
end
end
describe 'using an object that does not respond to #to_str' do
it 'raises TypeError' do
lambda { @server.shutdown(mock(:dummy)) }.should raise_error(TypeError)
-> { @server.shutdown(mock(:dummy)) }.should raise_error(TypeError)
end
end
end