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