diff options
author | Michael Grunder <michael.grunder@gmail.com> | 2023-06-01 09:09:11 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-01 09:09:11 -0700 |
commit | ded32c7d1a449a94b0241270342cb75696c64224 (patch) | |
tree | 965e55f5189b3e106774438bae6a6f928adb123a | |
parent | 5cbd1f2960662c18b1d2b2dac7352f2b5b1ba776 (diff) |
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
-rw-r--r-- | net.c | 1 | ||||
-rw-r--r-- | test.c | 11 |
2 files changed, 11 insertions, 1 deletions
@@ -234,6 +234,7 @@ int redisContextSetTcpUserTimeout(redisContext *c, unsigned int timeout) { res = setsockopt(c->fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &timeout, sizeof(timeout)); #else res = -1; + errno = ENOTSUP; (void)timeout; #endif if (res == -1) { @@ -409,10 +409,19 @@ static void test_tcp_options(struct config cfg) { redisContext *c; c = do_connect(cfg); + test("We can enable TCP_KEEPALIVE: "); 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) { |