/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)