summaryrefslogtreecommitdiff
path: root/testapp.c
diff options
context:
space:
mode:
authorTrond Norbye <Trond.Norbye@sun.com>2009-11-02 18:16:46 +0100
committerDustin Sallings <dustin@spy.net>2009-11-02 09:54:37 -0800
commite24110a42dcf036f25e38211198c8a1f8f9590da (patch)
tree4da58b488e0d11ef65fc0fbba3ddb1304d46553b /testapp.c
parentd9cd01ede97f4145af9781d448c62a3318952719 (diff)
downloadmemcached-e24110a42dcf036f25e38211198c8a1f8f9590da.tar.gz
Extend test-case for 102 to verify that large multigets work1.4.3-rc2
Diffstat (limited to 'testapp.c')
-rw-r--r--testapp.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/testapp.c b/testapp.c
index 2d71d8e..b3f6c3f 100644
--- a/testapp.c
+++ b/testapp.c
@@ -552,6 +552,37 @@ static enum test_return test_issue_102(void) {
assert(read(sock, buffer, sizeof(buffer)) == 0);
close(sock);
sock = connect_server("127.0.0.1", port, false);
+
+ sprintf(buffer, "gets ");
+ size_t offset = 5;
+ while (offset < 4000) {
+ offset += sprintf(buffer + offset, "%010u ", (unsigned int)offset);
+ }
+
+ send_ascii_command(buffer);
+ usleep(250);
+
+ send_ascii_command("\r\n");
+ char rsp[80];
+ read_ascii_response(rsp, sizeof(rsp));
+ assert(strncmp(rsp, "END", strlen("END")) == 0);
+ buffer[3]= ' ';
+ send_ascii_command(buffer);
+ usleep(250);
+ send_ascii_command("\r\n");
+ read_ascii_response(rsp, sizeof(rsp));
+ assert(strncmp(rsp, "END", strlen("END")) == 0);
+
+
+ memset(buffer, ' ', 101);
+ strcat(buffer + 101, "gets foo");
+ send_ascii_command(buffer);
+ /* verify that the server closed the connection */
+ assert(read(sock, buffer, sizeof(buffer)) == 0);
+
+ close(sock);
+ sock = connect_server("127.0.0.1", port, false);
+
return TEST_PASS;
}