/tmp/tmp_3a.0mn pidfile /tmp/tmp_3a.0mn/hiredis-test-redis.pid port 56379 unixsocket /tmp/tmp_3a.0mn/hiredis-test-redis.sock unixsocketperm 777 daemonize yes bind 127.0.0.1 waiting for server #01 redisContext uses injected allocators: PASSED #02 redisReader uses injected allocators: PASSED #03 hiredis calloc wrapper protects against overflow: PASSED #04 Format command without interpolation: PASSED #05 Format command with %s string interpolation: PASSED #06 Format command with %s and an empty string: PASSED #07 Format command with an empty string in between proper interpolations: PASSED #08 Format command with %b string interpolation: PASSED #09 Format command with %b and an empty string: PASSED #10 Format command with literal %: PASSED #11 Format command with printf-delegation (int): PASSED #12 Format command with printf-delegation (char): PASSED #13 Format command with printf-delegation (short): PASSED #14 Format command with printf-delegation (long): PASSED #15 Format command with printf-delegation (long long): PASSED #16 Format command with printf-delegation (unsigned int): PASSED #17 Format command with printf-delegation (unsigned char): PASSED #18 Format command with printf-delegation (unsigned short): PASSED #19 Format command with printf-delegation (unsigned long): PASSED #20 Format command with printf-delegation (unsigned long long): PASSED #21 Format command with printf-delegation (float): PASSED #22 Format command with printf-delegation (double): PASSED #23 Format command with unhandled printf format (specifier 'p' not supported): PASSED #24 Format command with invalid printf format (specifier missing): PASSED #25 Format command by passing argc/argv without lengths: PASSED #26 Format command by passing argc/argv with lengths: PASSED #27 Format command into sds by passing argc/argv without lengths: PASSED #28 Format command into sds by passing argc/argv with lengths: PASSED #29 Error handling in reply parser: PASSED #30 Memory cleanup in reply parser: PASSED #31 Can handle arbitrarily nested multi-bulks: PASSED #32 Can parse arbitrarily nested multi-bulks correctly: PASSED #33 Correctly parses LLONG_MAX: PASSED #34 Set error when > LLONG_MAX: PASSED #35 Correctly parses LLONG_MIN: PASSED #36 Set error when < LLONG_MIN: PASSED #37 Set error when array < -1: PASSED #38 Set error when bulk < -1: PASSED #39 Can configure maximum multi-bulk elements: PASSED #40 Multi-bulk never overflows regardless of maxelements: PASSED #41 Works with NULL functions for reply: PASSED #42 Works when a single newline (\r\n) covers two calls to feed: PASSED #43 Don't reset state after protocol error: PASSED #44 Don't reset state after protocol error(not segfault): PASSED #45 Don't do empty allocation for empty multi bulk: PASSED #46 Can parse RESP3 verbatim strings: PASSED #47 Can parse RESP3 push messages: PASSED #48 Can parse RESP3 doubles: PASSED #49 Set error on invalid RESP3 double: PASSED #50 Correctly parses RESP3 double INFINITY: PASSED #51 Correctly parses RESP3 double NaN: PASSED #52 Correctly parses RESP3 double -Nan: PASSED #53 Can parse RESP3 nil: PASSED #54 Set error on invalid RESP3 nil: PASSED #55 Can parse RESP3 bool (true): PASSED #56 Can parse RESP3 bool (false): PASSED #57 Set error on invalid RESP3 bool: PASSED #58 Can parse RESP3 map: PASSED #59 Can parse RESP3 attribute: PASSED #60 Can parse RESP3 set: PASSED #61 Can parse RESP3 bignum: PASSED #62 Can parse RESP3 doubles in an array: PASSED #63 Returns error when host cannot be resolved: PASSED #64 Returns error when the port is not open: PASSED #65 We don't clobber connection exception with setsockopt error: PASSED #66 Returns error when the unix_sock socket path doesn't accept connections: PASSED #67 Don't fail when redisFree is passed a NULL value: PASSED #68 Don't fail when freeReplyObject is passed a NULL value: PASSED Testing against TCP connection (127.0.0.1:56379): #69 Is able to deliver commands: PASSED #70 Is a able to send commands verbatim: PASSED #71 %s String interpolation works: PASSED #72 %b String interpolation works: PASSED #73 Binary reply length is correct: PASSED #74 Can parse nil replies: PASSED #75 Can parse integer replies: PASSED #76 Can parse multi bulk replies: PASSED #77 Can handle nested multi bulk replies: PASSED #78 Send command by passing argc/argv: PASSED #79 Can pass NULL to redisGetReply: PASSED #80 RESP3 PUSH messages are handled out of band by default: PASSED #81 We can set a custom RESP3 PUSH handler: PASSED #82 We properly handle a NIL invalidation payload: PASSED #83 With no handler, PUSH replies come in-band: PASSED #84 With no PUSH handler, no replies are lost: PASSED #85 We set a default RESP3 handler for redisContext: PASSED #86 We don't set a default RESP3 push handler for redisAsyncContext: PASSED #87 Our REDIS_OPT_NO_PUSH_AUTOFREE flag works: PASSED #88 We can use redisOptions to set a custom PUSH handler for redisContext: PASSED #89 We can use redisOptions to set a custom PUSH handler for redisAsyncContext: PASSED #90 We can use redisOptions to set privdata: PASSED #91 Our privdata destructor fires when we free the context: PASSED #92 Successfully completes a command when the timeout is not exceeded: PASSED #93 Does not return a reply when the command times out: PASSED #94 Reconnect properly reconnects after a timeout: PASSED #95 Reconnect properly uses owned parameters: PASSED #96 Returns I/O error when the connection is lost: PASSED #97 Returns I/O error on socket timeout: PASSED #98 Set error when an invalid timeout usec value is used during connect: PASSED #99 Set error when an invalid timeout sec value is used during connect: PASSED #100 Append format command: PASSED #101 We can enable TCP_KEEPALIVE: PASSED #102 Setting TCP_USER_TIMEOUT errors when unsupported: PASSED #103 Throughput: (1000x PING) (1000x LRANGE with 500 elements) (1000x INCRBY) (10000x PING (pipelined)) (10000x LRANGE with 500 elements (pipelined)) (10000x INCRBY (pipelined)) Testing against Unix socket connection (/tmp/tmp_3a.0mn/hiredis-test-redis.sock): #104 Is able to deliver commands: PASSED #105 Is a able to send commands verbatim: PASSED #106 %s String interpolation works: PASSED #107 %b String interpolation works: PASSED #108 Binary reply length is correct: PASSED #109 Can parse nil replies: PASSED #110 Can parse integer replies: PASSED #111 Can parse multi bulk replies: PASSED #112 Can handle nested multi bulk replies: PASSED #113 Send command by passing argc/argv: PASSED #114 Can pass NULL to redisGetReply: PASSED #115 RESP3 PUSH messages are handled out of band by default: PASSED #116 We can set a custom RESP3 PUSH handler: PASSED #117 We properly handle a NIL invalidation payload: PASSED #118 With no handler, PUSH replies come in-band: PASSED #119 With no PUSH handler, no replies are lost: PASSED #120 We set a default RESP3 handler for redisContext: PASSED #121 We don't set a default RESP3 push handler for redisAsyncContext: PASSED #122 Our REDIS_OPT_NO_PUSH_AUTOFREE flag works: PASSED #123 We can use redisOptions to set a custom PUSH handler for redisContext: PASSED #124 We can use redisOptions to set a custom PUSH handler for redisAsyncContext: PASSED #125 We can use redisOptions to set privdata: PASSED #126 Our privdata destructor fires when we free the context: PASSED #127 Successfully completes a command when the timeout is not exceeded: PASSED #128 Does not return a reply when the command times out: PASSED #129 Reconnect properly reconnects after a timeout: PASSED #130 Reconnect properly uses owned parameters: PASSED #131 Returns I/O error when the connection is lost: PASSED #132 Returns I/O error on socket timeout: PASSED #133 Set error when an invalid timeout usec value is used during connect: PASSED #134 Set error when an invalid timeout sec value is used during connect: PASSED #135 Setting TCP_KEEPALIVE on a unix socket returns an error: PASSED #136 Setting TCP_KEEPALIVE on a unix socket doesn't break the connection: PASSED #137 Throughput: (1000x PING) (1000x LRANGE with 500 elements) (1000x INCRBY) (10000x PING (pipelined)) (10000x LRANGE with 500 elements (pipelined)) (10000x INCRBY (pipelined)) Testing asynchronous API using polling_adapter TCP (127.0.0.1:56379): #138 Async connect: PASSED #139 Async free after connect: PASSED #140 Async connect timeout: PASSED #141 Async PING/PONG: PASSED #142 Async PING/PONG after connect timeout: PASSED #143 Disconnect from onConnected callback (Issue #931): PASSED #144 Ping/Pong from onConnected callback (Issue #931): PASSED Testing asynchronous API using polling_adapter UNIX (/tmp/tmp_3a.0mn/hiredis-test-redis.sock): #145 Async connect: PASSED #146 Async free after connect: PASSED #147 Async PING/PONG: PASSED #148 Disconnect from onConnected callback (Issue #931): PASSED #149 Ping/Pong from onConnected callback (Issue #931): PASSED Testing against inherited fd (/tmp/tmp_3a.0mn/hiredis-test-redis.sock): Connecting to inherited fd 4 #150 Is able to deliver commands: PASSED #151 Is a able to send commands verbatim: PASSED #152 %s String interpolation works: PASSED #153 %b String interpolation works: PASSED #154 Binary reply length is correct: PASSED #155 Can parse nil replies: PASSED #156 Can parse integer replies: PASSED #157 Can parse multi bulk replies: PASSED #158 Can handle nested multi bulk replies: PASSED #159 Send command by passing argc/argv: PASSED #160 Can pass NULL to redisGetReply: PASSED #161 RESP3 PUSH messages are handled out of band by default: PASSED #162 We can set a custom RESP3 PUSH handler: PASSED #163 We properly handle a NIL invalidation payload: PASSED #164 With no handler, PUSH replies come in-band: PASSED #165 With no PUSH handler, no replies are lost: PASSED #166 We set a default RESP3 handler for redisContext: PASSED #167 We don't set a default RESP3 push handler for redisAsyncContext: PASSED #168 Our REDIS_OPT_NO_PUSH_AUTOFREE flag works: PASSED #169 We can use redisOptions to set a custom PUSH handler for redisContext: PASSED #170 We can use redisOptions to set a custom PUSH handler for redisAsyncContext: PASSED #171 We can use redisOptions to set privdata: PASSED #172 Our privdata destructor fires when we free the context: PASSED ALL TESTS PASSED (0 skipped)