Unverified Commit ded32c7d authored by Michael Grunder's avatar Michael Grunder Committed by GitHub
Browse files

Add a test for the TCP_USER_TIMEOUT option. (#1192)

* Add a test for the TCP_USER_TIMEOUT option.
* Explicitly set errno to ENOTSUP on unsupported OS's
parent 5cbd1f29
...@@ -234,6 +234,7 @@ int redisContextSetTcpUserTimeout(redisContext *c, unsigned int timeout) { ...@@ -234,6 +234,7 @@ int redisContextSetTcpUserTimeout(redisContext *c, unsigned int timeout) {
res = setsockopt(c->fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &timeout, sizeof(timeout)); res = setsockopt(c->fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &timeout, sizeof(timeout));
#else #else
res = -1; res = -1;
errno = ENOTSUP;
(void)timeout; (void)timeout;
#endif #endif
if (res == -1) { if (res == -1) {
......
...@@ -409,10 +409,19 @@ static void test_tcp_options(struct config cfg) { ...@@ -409,10 +409,19 @@ static void test_tcp_options(struct config cfg) {
redisContext *c; redisContext *c;
c = do_connect(cfg); c = do_connect(cfg);
test("We can enable TCP_KEEPALIVE: "); test("We can enable TCP_KEEPALIVE: ");
test_cond(redisEnableKeepAlive(c) == REDIS_OK); test_cond(redisEnableKeepAlive(c) == REDIS_OK);
disconnect(c, 0); #ifdef TCP_USER_TIMEOUT
test("We can set TCP_USER_TIMEOUT: ");
test_cond(redisSetTcpUserTimeout(c, 100) == REDIS_OK);
#else
test("Setting TCP_USER_TIMEOUT errors when unsupported: ");
test_cond(redisSetTcpUserTimeout(c, 100) == REDIS_ERR && c->err == REDIS_ERR_IO);
#endif
redisFree(c);
} }
static void test_reply_reader(void) { static void test_reply_reader(void) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment