diff options
Diffstat (limited to 'test.c')
-rw-r--r-- | test.c | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -71,6 +71,30 @@ static void test_format_commands() { len == 4+4+(3+2)+4+(1+2)+4+(1+2)); free(cmd); + test("Format command with printf-delegation (long long): "); + len = redisFormatCommand(&cmd,"key:%08lld",1234ll); + test_cond(strncmp(cmd,"*1\r\n$12\r\nkey:00001234\r\n",len) == 0 && + len == 4+5+(12+2)); + free(cmd); + + test("Format command with printf-delegation (float): "); + len = redisFormatCommand(&cmd,"v:%06.1f",12.34f); + test_cond(strncmp(cmd,"*1\r\n$8\r\nv:0012.3\r\n",len) == 0 && + len == 4+4+(8+2)); + free(cmd); + + test("Format command with printf-delegation and extra interpolation: "); + len = redisFormatCommand(&cmd,"key:%d %b",1234,"foo",3); + test_cond(strncmp(cmd,"*2\r\n$8\r\nkey:1234\r\n$3\r\nfoo\r\n",len) == 0 && + len == 4+4+(8+2)+4+(3+2)); + free(cmd); + + test("Format command with wrong printf format and extra interpolation: "); + len = redisFormatCommand(&cmd,"key:%08p %b",1234,"foo",3); + test_cond(strncmp(cmd,"*2\r\n$6\r\nkey:8p\r\n$3\r\nfoo\r\n",len) == 0 && + len == 4+4+(6+2)+4+(3+2)); + free(cmd); + const char *argv[3]; argv[0] = "SET"; argv[1] = "foo\0xxx"; |