diff options
Diffstat (limited to 'testapp.c')
-rw-r--r-- | testapp.c | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -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; } |