diff options
author | not-a-robot <not-a-robot@rediger.net> | 2016-05-14 11:45:18 +0200 |
---|---|---|
committer | not-a-robot <not-a-robot@rediger.net> | 2016-05-14 11:45:18 +0200 |
commit | e30db1a3bea4ad464470dc22be9280c0ef58f4c1 (patch) | |
tree | 994fca157b0334c27924c2b4be1647c50720196c | |
parent | e93c05a7aa64736c91e455322c83181e8e67cd0e (diff) | |
parent | 8655a6ac7a1bdd9b04d669585b4ae430c167ad80 (diff) |
Auto merge of #427 - redis:pr-426, r=badboy
Pr 426
Closes #426, now with test
-rw-r--r-- | hiredis.c | 2 | ||||
-rw-r--r-- | test.c | 16 |
2 files changed, 17 insertions, 1 deletions
@@ -507,7 +507,7 @@ int redisFormatSdsCommandArgv(sds *target, int argc, const char **argv, cmd = sdscatfmt(cmd, "*%i\r\n", argc); for (j=0; j < argc; j++) { len = argvlen ? argvlen[j] : strlen(argv[j]); - cmd = sdscatfmt(cmd, "$%T\r\n", len); + cmd = sdscatfmt(cmd, "$%u\r\n", len); cmd = sdscatlen(cmd, argv[j], len); cmd = sdscatlen(cmd, "\r\n", sizeof("\r\n")-1); } @@ -224,6 +224,22 @@ static void test_format_commands(void) { test_cond(strncmp(cmd,"*3\r\n$3\r\nSET\r\n$7\r\nfoo\0xxx\r\n$3\r\nbar\r\n",len) == 0 && len == 4+4+(3+2)+4+(7+2)+4+(3+2)); free(cmd); + + sds sds_cmd; + + sds_cmd = sdsempty(); + test("Format command into sds by passing argc/argv without lengths: "); + len = redisFormatSdsCommandArgv(&sds_cmd,argc,argv,NULL); + test_cond(strncmp(sds_cmd,"*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\nbar\r\n",len) == 0 && + len == 4+4+(3+2)+4+(3+2)+4+(3+2)); + sdsfree(sds_cmd); + + sds_cmd = sdsempty(); + test("Format command into sds by passing argc/argv with lengths: "); + len = redisFormatSdsCommandArgv(&sds_cmd,argc,argv,lens); + test_cond(strncmp(sds_cmd,"*3\r\n$3\r\nSET\r\n$7\r\nfoo\0xxx\r\n$3\r\nbar\r\n",len) == 0 && + len == 4+4+(3+2)+4+(7+2)+4+(3+2)); + sdsfree(sds_cmd); } static void test_append_formatted_commands(struct config config) { |