test/internals_test.rb in redis-3.3.0 vs test/internals_test.rb in redis-3.3.1
- old
+ new
@@ -3,10 +3,11 @@
require File.expand_path("helper", File.dirname(__FILE__))
class TestInternals < Test::Unit::TestCase
include Helper::Client
+ include Helper::Skipable
def test_logger
r.ping
assert log.string["[Redis] command=PING"]
@@ -156,9 +157,28 @@
start_time = Time.now
assert_raise Redis::CannotConnectError do
Redis.new(opts).ping
end
assert (Time.now - start_time) <= opts[:timeout]
+ end
+
+ driver(:ruby) do
+ def test_write_timeout
+ return skip("Relies on buffer sizes, might be unreliable")
+
+ server = TCPServer.new("127.0.0.1", 0)
+ port = server.addr[1]
+
+ # Hacky, but we need the buffer size
+ val = TCPSocket.new("127.0.0.1", port).getsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF).unpack("i")[0]
+
+ assert_raise(Redis::TimeoutError) do
+ Timeout.timeout(1) do
+ redis = Redis.new(:port => port, :timeout => 5, :write_timeout => 0.1)
+ redis.set("foo", "1" * val*2)
+ end
+ end
+ end
end
def close_on_ping(seq, options = {})
$request = 0