Merge pull request #1062 from yossigo/fix-push-notification-order
Handle push notifications before or after reply.master
commit
47c3ecefc0
11
test.c
11
test.c
|
@ -914,6 +914,11 @@ static void test_resp3_push_handler(redisContext *c) {
|
||||||
old = redisSetPushCallback(c, push_handler);
|
old = redisSetPushCallback(c, push_handler);
|
||||||
test("We can set a custom RESP3 PUSH handler: ");
|
test("We can set a custom RESP3 PUSH handler: ");
|
||||||
reply = redisCommand(c, "SET key:0 val:0");
|
reply = redisCommand(c, "SET key:0 val:0");
|
||||||
|
/* We need another command because depending on the version of Redis, the
|
||||||
|
* notification may be delivered after the command's reply. */
|
||||||
|
test_cond(reply != NULL);
|
||||||
|
freeReplyObject(reply);
|
||||||
|
reply = redisCommand(c, "PING");
|
||||||
test_cond(reply != NULL && reply->type == REDIS_REPLY_STATUS && pc.str == 1);
|
test_cond(reply != NULL && reply->type == REDIS_REPLY_STATUS && pc.str == 1);
|
||||||
freeReplyObject(reply);
|
freeReplyObject(reply);
|
||||||
|
|
||||||
|
@ -929,6 +934,12 @@ static void test_resp3_push_handler(redisContext *c) {
|
||||||
assert((reply = redisCommand(c, "GET key:0")) != NULL);
|
assert((reply = redisCommand(c, "GET key:0")) != NULL);
|
||||||
freeReplyObject(reply);
|
freeReplyObject(reply);
|
||||||
assert((reply = redisCommand(c, "SET key:0 invalid")) != NULL);
|
assert((reply = redisCommand(c, "SET key:0 invalid")) != NULL);
|
||||||
|
/* Depending on Redis version, we may receive either push notification or
|
||||||
|
* status reply. Both cases are valid. */
|
||||||
|
if (reply->type == REDIS_REPLY_STATUS) {
|
||||||
|
freeReplyObject(reply);
|
||||||
|
reply = redisCommand(c, "PING");
|
||||||
|
}
|
||||||
test_cond(reply->type == REDIS_REPLY_PUSH);
|
test_cond(reply->type == REDIS_REPLY_PUSH);
|
||||||
freeReplyObject(reply);
|
freeReplyObject(reply);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue