141
145
apr_pool_t *iter_pool;
142
146
apr_array_header_t *accepted_requests, *handled_requests, *sent_requests;
148
test_server_message_t message_list[] = {
149
{"GET / HTTP/1.1" CRLF
150
"Transfer-Encoding: chunked" CRLF
156
{"GET / HTTP/1.1" CRLF
157
"Transfer-Encoding: chunked" CRLF
144
165
test_server_action_t action_list[] = {
146
"GET / HTTP/1.1" CRLF
147
"Transfer-Encoding: chunked" CRLF
153
"GET / HTTP/1.1" CRLF
154
"Transfer-Encoding: chunked" CRLF
162
"HTTP/1.1 200 OK" CRLF
163
"Transfer-Encoding: chunked" CRLF
167
"HTTP/1.1 200 OK" CRLF
168
"Transfer-Encoding: chunked" CRLF
167
"HTTP/1.1 200 OK" CRLF
168
"Transfer-Encoding: chunked" CRLF
173
"HTTP/1.1 200 OK" CRLF
174
"Transfer-Encoding: chunked" CRLF
175
180
accepted_requests = apr_array_make(test_pool, 2, sizeof(int));
177
182
handled_requests = apr_array_make(test_pool, 2, sizeof(int));
179
184
/* Set up a test context with a server */
180
status = test_server_create(&tb, action_list, 2, 0, NULL, NULL, NULL,
185
status = test_server_create(&tb,
187
action_list, 2, 0, NULL, NULL, NULL,
182
189
CuAssertIntEquals(tc, APR_SUCCESS, status);
258
265
apr_pool_t *iter_pool;
259
266
apr_array_header_t *accepted_requests, *handled_requests, *sent_requests;
269
test_server_message_t message_list[] = {
270
{CHUNCKED_REQUEST(1, "1")},
271
{CHUNCKED_REQUEST(1, "2")},
272
{CHUNCKED_REQUEST(1, "3")},
261
275
test_server_action_t action_list[] = {
263
CHUNCKED_REQUEST(1, "1")
264
CHUNCKED_REQUEST(1, "2")
265
CHUNCKED_REQUEST(1, "3")
268
CHUNKED_EMPTY_RESPONSE
269
CHUNKED_EMPTY_RESPONSE
270
CHUNKED_EMPTY_RESPONSE
276
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
277
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
278
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
274
281
accepted_requests = apr_array_make(test_pool, 3, sizeof(int));
276
283
handled_requests = apr_array_make(test_pool, 3, sizeof(int));
278
285
/* Set up a test context with a server */
279
status = test_server_create(&tb, action_list, 2, 0, NULL, NULL, NULL,
286
status = test_server_create(&tb,
288
action_list, 3, 0, NULL, NULL, NULL,
281
290
CuAssertIntEquals(tc, APR_SUCCESS, status);
363
372
handler_baton_t handler_ctx[NUM_REQUESTS];
364
373
int done = FALSE, i;
375
test_server_message_t message_list[] = {
376
{CHUNCKED_REQUEST(1, "1")},
377
{CHUNCKED_REQUEST(1, "2")},
378
{CHUNCKED_REQUEST(1, "3")},
379
{CHUNCKED_REQUEST(1, "4")},
380
{CHUNCKED_REQUEST(1, "5")},
381
{CHUNCKED_REQUEST(1, "6")},
382
{CHUNCKED_REQUEST(1, "7")},
383
{CHUNCKED_REQUEST(1, "8")},
384
{CHUNCKED_REQUEST(1, "9")},
385
{CHUNCKED_REQUEST(2, "10")}
366
388
test_server_action_t action_list[] = {
368
CHUNCKED_REQUEST(1, "1")
369
CHUNCKED_REQUEST(1, "2")
370
CHUNCKED_REQUEST(1, "3")
371
CHUNCKED_REQUEST(1, "4")
372
CHUNCKED_REQUEST(1, "5")
373
CHUNCKED_REQUEST(1, "6")
374
CHUNCKED_REQUEST(1, "7")
375
CHUNCKED_REQUEST(1, "8")
376
CHUNCKED_REQUEST(1, "9")
377
CHUNCKED_REQUEST(2, "10")
380
CHUNKED_EMPTY_RESPONSE
381
CHUNKED_EMPTY_RESPONSE
382
CHUNKED_EMPTY_RESPONSE
383
"HTTP/1.1 200 OK" CRLF
384
"Transfer-Encoding: chunked" CRLF
385
"Connection: close" CRLF
390
{SERVER_KILL_CONNECTION},
392
CHUNKED_EMPTY_RESPONSE
393
CHUNKED_EMPTY_RESPONSE
394
CHUNKED_EMPTY_RESPONSE
395
"HTTP/1.1 200 OK" CRLF
396
"Transfer-Encoding: chunked" CRLF
397
"Connection: close" CRLF
402
{SERVER_KILL_CONNECTION},
404
CHUNKED_EMPTY_RESPONSE
405
CHUNKED_EMPTY_RESPONSE
389
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
390
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
391
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
393
"HTTP/1.1 200 OK" CRLF
394
"Transfer-Encoding: chunked" CRLF
395
"Connection: close" CRLF
400
{SERVER_IGNORE_AND_KILL_CONNECTION},
401
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
402
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
403
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
405
"HTTP/1.1 200 OK" CRLF
406
"Transfer-Encoding: chunked" CRLF
407
"Connection: close" CRLF
412
{SERVER_IGNORE_AND_KILL_CONNECTION},
413
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
414
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
409
417
accepted_requests = apr_array_make(test_pool, NUM_REQUESTS, sizeof(int));
411
419
handled_requests = apr_array_make(test_pool, NUM_REQUESTS, sizeof(int));
413
421
/* Set up a test context with a server. */
414
status = test_server_create(&tb, action_list, 6, 0, NULL, NULL, NULL,
422
status = test_server_create(&tb,
416
428
CuAssertIntEquals(tc, APR_SUCCESS, status);
485
497
int numrequests = 1;
486
498
apr_sockaddr_t *proxy_address;
487
test_server_action_t *action_list_server = NULL;
488
test_server_action_t action_list_proxy[] = {
490
"GET http://localhost:" SERV_PORT_STR " HTTP/1.1" CRLF\
500
test_server_message_t message_list[] = {
501
{"GET http://localhost:" SERV_PORT_STR " HTTP/1.1" CRLF\
502
"Host: localhost:" SERV_PORT_STR CRLF\
491
503
"Transfer-Encoding: chunked" CRLF\
492
"Host: localhost" CRLF\
500
CHUNKED_EMPTY_RESPONSE
511
test_server_action_t action_list_proxy[] = {
512
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
504
515
accepted_requests = apr_array_make(test_pool, numrequests, sizeof(int));
505
516
sent_requests = apr_array_make(test_pool, numrequests, sizeof(int));
506
517
handled_requests = apr_array_make(test_pool, numrequests, sizeof(int));
508
/* Set up a test context with a server */
509
status = test_server_create(&tb_server, action_list_server, 2, 0,
519
/* Set up a test context with a server, no messages expected. */
520
status = test_server_create(&tb_server,
510
523
"http://localhost:" SERV_PORT_STR, NULL,
511
524
NULL, test_pool);
512
525
CuAssertIntEquals(tc, APR_SUCCESS, status);
518
531
CuAssertIntEquals(tc, APR_SUCCESS, status);
520
status = test_server_create(&tb_proxy, action_list_proxy, 2, 0,
533
status = test_server_create(&tb_proxy,
535
action_list_proxy, 1, 0,
521
536
NULL, proxy_address, NULL,
645
660
handler_baton_t handler_ctx[SEND_REQUESTS];
646
661
int done = FALSE, i;
663
test_server_message_t message_list[] = {
664
{CHUNCKED_REQUEST(1, "1")},
665
{CHUNCKED_REQUEST(1, "1")},
666
{CHUNCKED_REQUEST(1, "1")},
667
{CHUNCKED_REQUEST(1, "2")},
668
{CHUNCKED_REQUEST(1, "3")},
669
{CHUNCKED_REQUEST(1, "4")},
670
{CHUNCKED_REQUEST(1, "5")},
648
673
test_server_action_t action_list[] = {
650
CHUNCKED_REQUEST(1, "1")
653
CHUNKED_EMPTY_RESPONSE
656
CHUNCKED_REQUEST(1, "1")
659
CHUNKED_EMPTY_RESPONSE
662
CHUNCKED_REQUEST(1, "1")
665
CHUNKED_EMPTY_RESPONSE
668
CHUNCKED_REQUEST(1, "2")
671
CHUNKED_EMPTY_RESPONSE
674
CHUNCKED_REQUEST(1, "3")
677
CHUNKED_EMPTY_RESPONSE
680
CHUNCKED_REQUEST(1, "4")
683
CHUNKED_EMPTY_RESPONSE
686
CHUNCKED_REQUEST(1, "5")
689
CHUNKED_EMPTY_RESPONSE
674
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
675
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
676
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
677
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
678
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
679
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
680
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
693
683
accepted_requests = apr_array_make(test_pool, RCVD_REQUESTS, sizeof(int));
695
685
handled_requests = apr_array_make(test_pool, RCVD_REQUESTS, sizeof(int));
697
687
/* Set up a test context with a server. */
698
status = test_server_create(&tb, action_list, 14, 0, NULL, NULL, NULL,
688
status = test_server_create(&tb,
690
action_list, 7, 0, NULL, NULL, NULL,
700
692
CuAssertIntEquals(tc, APR_SUCCESS, status);
817
813
handler_baton_t handler_ctx[SEND_REQUESTS];
818
814
int done = FALSE, i;
816
test_server_message_t message_list[] = {
817
{CHUNCKED_REQUEST(1, "1")},
818
{CHUNCKED_REQUEST(1, "1")},
819
{CHUNCKED_REQUEST(1, "1")},
820
{CHUNCKED_REQUEST(1, "2")},
821
{CHUNCKED_REQUEST(1, "3")},
822
{CHUNCKED_REQUEST(1, "4")},
823
{CHUNCKED_REQUEST(1, "5")},
820
826
test_server_action_t action_list[] = {
822
CHUNCKED_REQUEST(1, "1")
825
CHUNKED_EMPTY_RESPONSE
828
CHUNCKED_REQUEST(1, "1")
831
CHUNKED_EMPTY_RESPONSE
834
CHUNCKED_REQUEST(1, "1")
837
CHUNKED_EMPTY_RESPONSE
840
CHUNCKED_REQUEST(1, "2")
841
CHUNCKED_REQUEST(1, "3")
842
CHUNCKED_REQUEST(1, "4")
843
CHUNCKED_REQUEST(1, "5")
846
CHUNKED_EMPTY_RESPONSE
847
CHUNKED_EMPTY_RESPONSE
848
CHUNKED_EMPTY_RESPONSE
849
CHUNKED_EMPTY_RESPONSE
827
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
828
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
829
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
830
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
831
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
832
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
833
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
853
836
accepted_requests = apr_array_make(test_pool, RCVD_REQUESTS, sizeof(int));
855
838
handled_requests = apr_array_make(test_pool, RCVD_REQUESTS, sizeof(int));
857
840
/* Set up a test context with a server. */
858
status = test_server_create(&tb, action_list, 8, 0, NULL, NULL, NULL,
841
status = test_server_create(&tb,
843
action_list, 7, 0, NULL, NULL, NULL,
860
845
CuAssertIntEquals(tc, APR_SUCCESS, status);
933
918
pb->written = written;
936
static serf_bucket_t* progress_conn_setup(apr_socket_t *skt,
921
static apr_status_t progress_conn_setup(apr_socket_t *skt,
922
serf_bucket_t **input_bkt,
923
serf_bucket_t **output_bkt,
937
924
void *setup_baton,
938
925
apr_pool_t *pool)
940
927
test_baton_t *tb = setup_baton;
942
return serf_context_bucket_socket_create(tb->context, skt, tb->bkt_alloc);
928
*input_bkt = serf_context_bucket_socket_create(tb->context, skt, tb->bkt_alloc);
945
932
static void test_serf_progress_callback(CuTest *tc)
951
938
int done = FALSE, i;
952
939
progress_baton_t *pb;
941
test_server_message_t message_list[] = {
942
{CHUNCKED_REQUEST(1, "1")},
943
{CHUNCKED_REQUEST(1, "2")},
944
{CHUNCKED_REQUEST(1, "3")},
945
{CHUNCKED_REQUEST(1, "4")},
946
{CHUNCKED_REQUEST(1, "5")},
954
949
test_server_action_t action_list[] = {
956
CHUNCKED_REQUEST(1, "1")
957
CHUNCKED_REQUEST(1, "2")
958
CHUNCKED_REQUEST(1, "3")
959
CHUNCKED_REQUEST(1, "4")
960
CHUNCKED_REQUEST(1, "5")
963
CHUNKED_EMPTY_RESPONSE
964
CHUNKED_RESPONSE(1, "2")
965
CHUNKED_EMPTY_RESPONSE
966
CHUNKED_EMPTY_RESPONSE
967
CHUNKED_EMPTY_RESPONSE
950
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
951
{SERVER_RESPOND, CHUNKED_RESPONSE(1, "2")},
952
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
953
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
954
{SERVER_RESPOND, CHUNKED_EMPTY_RESPONSE},
971
957
accepted_requests = apr_array_make(test_pool, NUM_REQUESTS, sizeof(int));
973
959
handled_requests = apr_array_make(test_pool, NUM_REQUESTS, sizeof(int));
975
961
/* Set up a test context with a server. */
976
status = test_server_create(&tb, action_list, 2, 0, NULL, NULL,
962
status = test_server_create(&tb,
964
action_list, 5, 0, NULL, NULL,
977
965
progress_conn_setup, test_pool);
978
966
CuAssertIntEquals(tc, APR_SUCCESS, status);