};
typedef void (*test_server_init_t)(unsigned int index);
-typedef void (*test_client_init_t)
+typedef bool (*test_client_init_t)
(const struct http_client_settings *client_set);
typedef void (*test_dns_init_t)(void);
}
}
-static void
+static bool
test_client_host_lookup_failed(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
"GET", "host.in-addr.arpa", "/host-lookup-failed2.txt",
test_client_host_lookup_failed_response, ctx);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_connection_refused(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_connection_refused_response, ctx);
http_client_request_set_port(hreq, bind_ports[0]);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_connection_timed_out(
const struct http_client_settings *client_set)
{
"GET", "192.168.0.0", "/connection-timed-out2.txt",
test_client_connection_timed_out_response, ctx);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
io_loop_stop(ioloop);
}
-static void
+static bool
test_client_invalid_redirect(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_invalid_redirect_response, NULL);
http_client_request_set_port(hreq, bind_ports[0]);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
io_loop_stop(ioloop);
}
-static void
+static bool
test_client_unseekable_redirect(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
http_client_request_set_payload(hreq, input, FALSE);
http_client_request_submit(hreq);
- i_stream_unref(&input);
+ i_stream_unref(&input);
+ return TRUE;
}
/* test */
io_loop_stop(ioloop);
}
-static void
+static bool
test_client_unseekable_retry(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
http_client_request_set_payload(hreq, input, FALSE);
http_client_request_submit(hreq);
- i_stream_unref(&input);
+ i_stream_unref(&input);
+ return TRUE;
}
/* test */
io_loop_stop(ioloop);
}
-static void
+static bool
test_client_broken_payload(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
http_client_request_set_payload(hreq, input, FALSE);
http_client_request_submit(hreq);
- i_stream_unref(&input);
+ i_stream_unref(&input);
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_connection_lost(const struct http_client_settings *client_set)
{
static const char payload[] =
http_client_request_set_port(hreq, bind_ports[0]);
http_client_request_submit(hreq);
- i_stream_unref(&input);
+ i_stream_unref(&input);
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_connection_lost_100(
const struct http_client_settings *client_set)
{
http_client_request_set_payload(hreq, input, TRUE);
http_client_request_submit(hreq);
- i_stream_unref(&input);
+ i_stream_unref(&input);
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_connection_lost_sub_ioloop(
const struct http_client_settings *client_set)
{
http_client_request_set_payload(hreq, input, TRUE);
http_client_request_submit(hreq);
- i_stream_unref(&input);
+ i_stream_unref(&input);
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_early_success(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_early_success_response, ctx);
http_client_request_set_port(hreq, bind_ports[0]);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_bad_response(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_bad_response_response, ctx);
http_client_request_set_port(hreq, bind_ports[0]);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_request_timed_out(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_request_timed_out_response, ctx);
http_client_request_set_port(hreq, bind_ports[0]);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_request_aborted_early(
const struct http_client_settings *client_set)
{
ctx->to = timeout_add_short(500,
test_client_request_aborted_early_timeout, ctx);
+ return TRUE;
}
/* test */
io_loop_stop(ioloop);
}
-static void
+static bool
test_client_client_deinit_early(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
ctx->to = timeout_add_short(500,
test_client_client_deinit_early_timeout, ctx);
+ return TRUE;
}
/* test */
io_loop_stop(ioloop);
}
-static void
+static bool
test_client_retry_with_delay(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_retry_with_delay_response, ctx);
http_client_request_set_port(hreq, bind_ports[0]);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_dns_service_failure(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_dns_service_failure_response, ctx);
http_client_request_set_port(hreq, 80);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_dns_timeout(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_dns_timeout_response, ctx);
http_client_request_set_port(hreq, 80);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_dns_lookup_failure(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_dns_lookup_failure_response, ctx);
http_client_request_set_port(hreq, 80);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
}
}
-static void
+static bool
test_client_dns_lookup_ttl(const struct http_client_settings *client_set)
{
struct http_client_request *hreq;
test_client_dns_lookup_ttl_response_stage1, ctx);
http_client_request_set_port(hreq, bind_ports[0]);
http_client_request_submit(hreq);
+
+ return TRUE;
}
/* test */
usleep(100000); /* wait a little for server setup */
ioloop = io_loop_create();
- client_test(client_set);
- io_loop_run(ioloop);
+ if (client_test(client_set))
+ io_loop_run(ioloop);
test_client_deinit();
io_loop_destroy(&ioloop);