diff options
author | Pieter Noordhuis <pcnoordhuis@gmail.com> | 2011-12-20 10:45:27 -0800 |
---|---|---|
committer | Pieter Noordhuis <pcnoordhuis@gmail.com> | 2011-12-20 10:45:27 -0800 |
commit | d5d884378d3df75f8ce4ed86ffe62f1210ffe4fb (patch) | |
tree | fe98c1f594142f6ca7578575733796b8d43864ed | |
parent | 95e83386f7d592d021bed87f4df1530eda454c6a (diff) | |
parent | 56ae8aa11097f3973c20a5b04fc07dc0f3729766 (diff) | |
download | hiredict-d5d884378d3df75f8ce4ed86ffe62f1210ffe4fb.tar.xz |
Merge pull request #72 from chipdude/master
Fix self-test of connect error on Linux; merge duplicated string (DRY)
-rw-r--r-- | hiredis.c | 11 | ||||
-rw-r--r-- | test.c | 5 |
2 files changed, 9 insertions, 7 deletions
@@ -749,6 +749,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) { default: /* Try to detect printf format */ { + static const char intfmts[] = "diouxX"; char _format[16]; const char *_p = c+1; size_t _l = 0; @@ -774,7 +775,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) { va_copy(_cpy,ap); /* Integer conversion (without modifiers) */ - if (strchr("diouxX",*_p) != NULL) { + if (strchr(intfmts,*_p) != NULL) { va_arg(ap,int); goto fmt_valid; } @@ -788,7 +789,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) { /* Size: char */ if (_p[0] == 'h' && _p[1] == 'h') { _p += 2; - if (*_p != '\0' && strchr("diouxX",*_p) != NULL) { + if (*_p != '\0' && strchr(intfmts,*_p) != NULL) { va_arg(ap,int); /* char gets promoted to int */ goto fmt_valid; } @@ -798,7 +799,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) { /* Size: short */ if (_p[0] == 'h') { _p += 1; - if (*_p != '\0' && strchr("diouxX",*_p) != NULL) { + if (*_p != '\0' && strchr(intfmts,*_p) != NULL) { va_arg(ap,int); /* short gets promoted to int */ goto fmt_valid; } @@ -808,7 +809,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) { /* Size: long long */ if (_p[0] == 'l' && _p[1] == 'l') { _p += 2; - if (*_p != '\0' && strchr("diouxX",*_p) != NULL) { + if (*_p != '\0' && strchr(intfmts,*_p) != NULL) { va_arg(ap,long long); goto fmt_valid; } @@ -818,7 +819,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) { /* Size: long */ if (_p[0] == 'l') { _p += 1; - if (*_p != '\0' && strchr("diouxX",*_p) != NULL) { + if (*_p != '\0' && strchr(intfmts,*_p) != NULL) { va_arg(ap,long); goto fmt_valid; } @@ -177,7 +177,7 @@ static void test_format_commands(void) { FLOAT_WIDTH_TEST(double); test("Format command with invalid printf format: "); - len = redisFormatCommand(&cmd,"key:%08p %b",1234,"foo",3); + len = redisFormatCommand(&cmd,"key:%08p %b",(void*)1234,"foo",3); test_cond(len == -1); const char *argv[3]; @@ -283,7 +283,8 @@ static void test_blocking_connection_errors(void) { test("Returns error when host cannot be resolved: "); c = redisConnect((char*)"idontexist.local", 6379); test_cond(c->err == REDIS_ERR_OTHER && - strcmp(c->errstr,"Can't resolve: idontexist.local") == 0); + (strcmp(c->errstr,"Name or service not known") == 0 || + strcmp(c->errstr,"Can't resolve: idontexist.local") == 0)); redisFree(c); test("Returns error when the port is not open: "); |