Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
hiredis
Commits
19709152
Commit
19709152
authored
Apr 21, 2011
by
Pieter Noordhuis
Browse files
Reflect rename in tests
parent
965d4264
Changes
1
Hide whitespace changes
Inline
Side-by-side
test.c
View file @
19709152
...
@@ -270,68 +270,64 @@ static void test_blocking_connection(void) {
...
@@ -270,68 +270,64 @@ static void test_blocking_connection(void) {
static
void
test_reply_reader
(
void
)
{
static
void
test_reply_reader
(
void
)
{
redisReader
*
reader
;
redisReader
*
reader
;
void
*
reply
;
void
*
reply
;
char
*
err
;
int
ret
;
int
ret
;
test
(
"Error handling in reply parser: "
);
test
(
"Error handling in reply parser: "
);
reader
=
redisReplyReaderCreate
();
reader
=
redisReaderCreate
();
redisReplyReaderFeed
(
reader
,(
char
*
)
"@foo
\r\n
"
,
6
);
redisReaderFeed
(
reader
,(
char
*
)
"@foo
\r\n
"
,
6
);
ret
=
redisReplyReaderGetReply
(
reader
,
NULL
);
ret
=
redisReaderGetReply
(
reader
,
NULL
);
err
=
redisReplyReaderGetError
(
reader
);
test_cond
(
ret
==
REDIS_ERR
&&
test_cond
(
ret
==
REDIS_ERR
&&
strcasecmp
(
e
rr
,
"Protocol error, got
\"
@
\"
as reply type byte"
)
==
0
);
strcasecmp
(
r
eader
->
errst
r
,
"Protocol error, got
\"
@
\"
as reply type byte"
)
==
0
);
redisRe
plyRe
aderFree
(
reader
);
redisReaderFree
(
reader
);
/* when the reply already contains multiple items, they must be free'd
/* when the reply already contains multiple items, they must be free'd
* on an error. valgrind will bark when this doesn't happen. */
* on an error. valgrind will bark when this doesn't happen. */
test
(
"Memory cleanup in reply parser: "
);
test
(
"Memory cleanup in reply parser: "
);
reader
=
redisReplyReaderCreate
();
reader
=
redisReaderCreate
();
redisReplyReaderFeed
(
reader
,(
char
*
)
"*2
\r\n
"
,
4
);
redisReaderFeed
(
reader
,(
char
*
)
"*2
\r\n
"
,
4
);
redisReplyReaderFeed
(
reader
,(
char
*
)
"$5
\r\n
hello
\r\n
"
,
11
);
redisReaderFeed
(
reader
,(
char
*
)
"$5
\r\n
hello
\r\n
"
,
11
);
redisReplyReaderFeed
(
reader
,(
char
*
)
"@foo
\r\n
"
,
6
);
redisReaderFeed
(
reader
,(
char
*
)
"@foo
\r\n
"
,
6
);
ret
=
redisReplyReaderGetReply
(
reader
,
NULL
);
ret
=
redisReaderGetReply
(
reader
,
NULL
);
err
=
redisReplyReaderGetError
(
reader
);
test_cond
(
ret
==
REDIS_ERR
&&
test_cond
(
ret
==
REDIS_ERR
&&
strcasecmp
(
e
rr
,
"Protocol error, got
\"
@
\"
as reply type byte"
)
==
0
);
strcasecmp
(
r
eader
->
errst
r
,
"Protocol error, got
\"
@
\"
as reply type byte"
)
==
0
);
redisRe
plyRe
aderFree
(
reader
);
redisReaderFree
(
reader
);
test
(
"Set error on nested multi bulks with depth > 1: "
);
test
(
"Set error on nested multi bulks with depth > 1: "
);
reader
=
redisReplyReaderCreate
();
reader
=
redisReaderCreate
();
redisReplyReaderFeed
(
reader
,(
char
*
)
"*1
\r\n
"
,
4
);
redisReaderFeed
(
reader
,(
char
*
)
"*1
\r\n
"
,
4
);
redisReplyReaderFeed
(
reader
,(
char
*
)
"*1
\r\n
"
,
4
);
redisReaderFeed
(
reader
,(
char
*
)
"*1
\r\n
"
,
4
);
redisReplyReaderFeed
(
reader
,(
char
*
)
"*1
\r\n
"
,
4
);
redisReaderFeed
(
reader
,(
char
*
)
"*1
\r\n
"
,
4
);
ret
=
redisReplyReaderGetReply
(
reader
,
NULL
);
ret
=
redisReaderGetReply
(
reader
,
NULL
);
err
=
redisReplyReaderGetError
(
reader
);
test_cond
(
ret
==
REDIS_ERR
&&
test_cond
(
ret
==
REDIS_ERR
&&
strncasecmp
(
e
rr
,
"No support for"
,
14
)
==
0
);
strncasecmp
(
r
eader
->
errst
r
,
"No support for"
,
14
)
==
0
);
redisRe
plyRe
aderFree
(
reader
);
redisReaderFree
(
reader
);
test
(
"Works with NULL functions for reply: "
);
test
(
"Works with NULL functions for reply: "
);
reader
=
redisRe
plyRe
aderCreate
();
reader
=
redisReaderCreate
();
reader
->
fn
=
NULL
;
reader
->
fn
=
NULL
;
redisRe
plyRe
aderFeed
(
reader
,(
char
*
)
"+OK
\r\n
"
,
5
);
redisReaderFeed
(
reader
,(
char
*
)
"+OK
\r\n
"
,
5
);
ret
=
redisRe
plyRe
aderGetReply
(
reader
,
&
reply
);
ret
=
redisReaderGetReply
(
reader
,
&
reply
);
test_cond
(
ret
==
REDIS_OK
&&
reply
==
(
void
*
)
REDIS_REPLY_STATUS
);
test_cond
(
ret
==
REDIS_OK
&&
reply
==
(
void
*
)
REDIS_REPLY_STATUS
);
redisRe
plyRe
aderFree
(
reader
);
redisReaderFree
(
reader
);
test
(
"Works when a single newline (
\\
r
\\
n) covers two calls to feed: "
);
test
(
"Works when a single newline (
\\
r
\\
n) covers two calls to feed: "
);
reader
=
redisRe
plyRe
aderCreate
();
reader
=
redisReaderCreate
();
reader
->
fn
=
NULL
;
reader
->
fn
=
NULL
;
redisRe
plyRe
aderFeed
(
reader
,(
char
*
)
"+OK
\r
"
,
4
);
redisReaderFeed
(
reader
,(
char
*
)
"+OK
\r
"
,
4
);
ret
=
redisRe
plyRe
aderGetReply
(
reader
,
&
reply
);
ret
=
redisReaderGetReply
(
reader
,
&
reply
);
assert
(
ret
==
REDIS_OK
&&
reply
==
NULL
);
assert
(
ret
==
REDIS_OK
&&
reply
==
NULL
);
redisRe
plyRe
aderFeed
(
reader
,(
char
*
)
"
\n
"
,
1
);
redisReaderFeed
(
reader
,(
char
*
)
"
\n
"
,
1
);
ret
=
redisRe
plyRe
aderGetReply
(
reader
,
&
reply
);
ret
=
redisReaderGetReply
(
reader
,
&
reply
);
test_cond
(
ret
==
REDIS_OK
&&
reply
==
(
void
*
)
REDIS_REPLY_STATUS
);
test_cond
(
ret
==
REDIS_OK
&&
reply
==
(
void
*
)
REDIS_REPLY_STATUS
);
redisRe
plyRe
aderFree
(
reader
);
redisReaderFree
(
reader
);
test
(
"Don't reset state after protocol error: "
);
test
(
"Don't reset state after protocol error: "
);
reader
=
redisRe
plyRe
aderCreate
();
reader
=
redisReaderCreate
();
reader
->
fn
=
NULL
;
reader
->
fn
=
NULL
;
redisRe
plyRe
aderFeed
(
reader
,(
char
*
)
"x"
,
1
);
redisReaderFeed
(
reader
,(
char
*
)
"x"
,
1
);
ret
=
redisRe
plyRe
aderGetReply
(
reader
,
&
reply
);
ret
=
redisReaderGetReply
(
reader
,
&
reply
);
assert
(
ret
==
REDIS_ERR
);
assert
(
ret
==
REDIS_ERR
);
ret
=
redisRe
plyRe
aderGetReply
(
reader
,
&
reply
);
ret
=
redisReaderGetReply
(
reader
,
&
reply
);
test_cond
(
ret
==
REDIS_ERR
&&
reply
==
NULL
);
test_cond
(
ret
==
REDIS_ERR
&&
reply
==
NULL
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment