| 1087 int fds[2]; |
1087 int fds[2]; |
| 1088 util_socketpair(fds); |
1088 util_socketpair(fds); |
| 1089 util_socket_setnonblock(fds[0], 1); |
1089 util_socket_setnonblock(fds[0], 1); |
| 1090 util_socket_setnonblock(fds[1], 1); |
1090 util_socket_setnonblock(fds[1], 1); |
| 1091 client->socketfd = fds[0]; |
1091 client->socketfd = fds[0]; |
| |
1092 client->event.cookie = client; |
| 1092 int sock = fds[1]; |
1093 int sock = fds[1]; |
| 1093 |
1094 |
| 1094 // setup client |
1095 // setup client |
| 1095 http_client_set_uri(client, "/test/uri/"); |
1096 http_client_set_uri(client, "/test/uri/"); |
| 1096 http_client_set_method(client, "GET"); |
1097 http_client_set_method(client, "GET"); |
| 1108 client->response_start_userdata = &testr; |
1109 client->response_start_userdata = &testr; |
| 1109 client->response_body_write = test_response_body_write; |
1110 client->response_body_write = test_response_body_write; |
| 1110 client->response_body_write_userdata = &testr; |
1111 client->response_body_write_userdata = &testr; |
| 1111 |
1112 |
| 1112 // test IO |
1113 // test IO |
| 1113 Event event; |
1114 int ret = client_io(&dummy, &client->event); |
| 1114 event.cookie = client; |
|
| 1115 int ret = client_io(&dummy, &event); |
|
| 1116 CX_TEST_ASSERT(!client->error); |
1115 CX_TEST_ASSERT(!client->error); |
| 1117 CX_TEST_ASSERT(ret == 1); |
1116 CX_TEST_ASSERT(ret == 1); |
| 1118 |
1117 |
| 1119 // do IO and read request until the header is processed |
1118 // do IO and read request until the header is processed |
| 1120 size_t req_header_pos = 0; |
1119 size_t req_header_pos = 0; |
| 1124 if(r == 0) { |
1123 if(r == 0) { |
| 1125 break; |
1124 break; |
| 1126 } |
1125 } |
| 1127 CX_TEST_ASSERT(r > 0); |
1126 CX_TEST_ASSERT(r > 0); |
| 1128 req_header_pos += r; |
1127 req_header_pos += r; |
| 1129 ret = client_io(&dummy, &event); |
1128 ret = client_io(&dummy, &client->event); |
| 1130 CX_TEST_ASSERT(!client->error); |
1129 CX_TEST_ASSERT(!client->error); |
| 1131 CX_TEST_ASSERT(ret == 1); |
1130 CX_TEST_ASSERT(ret == 1); |
| 1132 } |
1131 } |
| 1133 CX_TEST_ASSERT(req_header_pos == req_header_len); |
1132 CX_TEST_ASSERT(req_header_pos == req_header_len); |
| 1134 |
1133 |