Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
hiredis
Commits
2ef4a5be
Commit
2ef4a5be
authored
Mar 06, 2012
by
Pieter Noordhuis
Browse files
Test write callback for empty requests
parent
50c41814
Changes
1
Hide whitespace changes
Inline
Side-by-side
test/test-request.c
View file @
2ef4a5be
...
...
@@ -389,6 +389,40 @@ TEST(write_cb) {
TEARDOWN
();
}
TEST
(
write_cb_skip_empty
)
{
SETUP_INSERTED
(
""
,
"hello"
);
SETUP_DRAIN_WRITE_PTR
();
/* Assume 1 byte was written ("h") */
rv
=
redis_request_queue_write_cb
(
&
q
,
1
);
assert_equal_size_t
(
rv
,
0
);
assert_equal_size_t
(
req1
.
nwritten
,
0
);
assert_equal_size_t
(
req2
.
nwritten
,
1
);
assert
(
req1
.
write_cb_done
==
1
);
assert
(
req2
.
write_cb_done
==
0
);
/* Both requests should have moved to the wait_read queue now */
assert_equal_int
(
request_wait_read_cb_calls
.
callc
,
2
);
assert
(
request_wait_read_cb_calls
.
callv
[
0
].
q
==
&
q
);
assert
(
request_wait_read_cb_calls
.
callv
[
0
].
r
==
(
redis_request
*
)
&
req1
);
assert
(
request_wait_read_cb_calls
.
callv
[
1
].
q
==
&
q
);
assert
(
request_wait_read_cb_calls
.
callv
[
1
].
r
==
(
redis_request
*
)
&
req2
);
/* Run callback for remaining bytes */
rv
=
redis_request_queue_write_cb
(
&
q
,
4
);
assert_equal_size_t
(
rv
,
0
);
assert_equal_size_t
(
req1
.
nwritten
,
0
);
assert_equal_size_t
(
req2
.
nwritten
,
5
);
assert
(
req1
.
write_cb_done
==
1
);
assert
(
req2
.
write_cb_done
==
1
);
/* More bytes cannot be mapped to requests... */
rv
=
redis_request_queue_write_cb
(
&
q
,
4
);
assert_equal_size_t
(
rv
,
-
1
);
TEARDOWN
();
}
#define SETUP_WRITTEN_CONFIRMED() \
SETUP_WRITTEN_UNCONFIRMED(); \
rv = redis_request_queue_write_cb(&q, req1.len); \
...
...
@@ -545,6 +579,7 @@ int main(void) {
test_write_ptr
();
test_write_ptr_skip_empty
();
test_write_cb
();
test_write_cb_skip_empty
();
test_read_cb
();
test_read_cb_with_parse_error
();
test_read_cb_with_pending_write_ptr_emit
();
...
...
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