summaryrefslogtreecommitdiff
path: root/tests/http2-test.c
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2021-05-21 12:58:24 +0200
committerCarlos Garcia Campos <cgarcia@igalia.com>2021-05-21 12:59:01 +0200
commit5eefe4460b02a3f330b826007926518f57ba0983 (patch)
tree8397b8a07fd8337f954deae42126ae42951398dc /tests/http2-test.c
parent16ddc7fa6331688a130360d32bec30a26b4383f5 (diff)
downloadlibsoup-5eefe4460b02a3f330b826007926518f57ba0983.tar.gz
http2-test: check the connection is idle after a preconnect
Also use a different message for the following request to ensure we don't get any cached information.
Diffstat (limited to 'tests/http2-test.c')
-rw-r--r--tests/http2-test.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/tests/http2-test.c b/tests/http2-test.c
index a6d24640..2d3906d8 100644
--- a/tests/http2-test.c
+++ b/tests/http2-test.c
@@ -548,41 +548,47 @@ do_metrics_test (Test *test, gconstpointer data)
}
static void
-on_preconnect_ready (SoupSession *session, GAsyncResult *res, gboolean *has_preconnected)
+on_preconnect_ready (SoupSession *session,
+ GAsyncResult *result,
+ SoupConnection **conn)
{
+ SoupMessage *msg = soup_session_get_async_result_message (session, result);
GError *error = NULL;
- soup_session_preconnect_finish (session, res, &error);
+ *conn = soup_message_get_connection (msg);
+ soup_session_preconnect_finish (session, result, &error);
g_assert_no_error (error);
-
- *has_preconnected = TRUE;
}
static void
do_preconnect_test (Test *test, gconstpointer data)
{
GMainContext *async_context = g_main_context_ref_thread_default ();
- test->msg = soup_message_new (SOUP_METHOD_GET, "https://127.0.0.1:5000/");
- gboolean has_preconnected = FALSE;
+ SoupMessage *msg = soup_message_new (SOUP_METHOD_GET, "https://127.0.0.1:5000/");
GError *error = NULL;
+ SoupConnection *conn = NULL;
guint32 connection_id;
- soup_session_preconnect_async (test->session, test->msg, G_PRIORITY_DEFAULT, NULL,
- (GAsyncReadyCallback)on_preconnect_ready, &has_preconnected);
+ soup_session_preconnect_async (test->session, msg, G_PRIORITY_DEFAULT, NULL,
+ (GAsyncReadyCallback)on_preconnect_ready,
+ &conn);
- while (!has_preconnected)
+ while (!conn)
g_main_context_iteration (async_context, FALSE);
- connection_id = soup_message_get_connection_id (test->msg);
+ connection_id = soup_message_get_connection_id (msg);
+ g_assert_cmpuint (soup_connection_get_state (conn), ==, SOUP_CONNECTION_IDLE);
+ g_object_unref (msg);
- GBytes *response = soup_test_session_async_send (test->session, test->msg, NULL, &error);
+ msg = soup_message_new (SOUP_METHOD_GET, "https://127.0.0.1:5000/");
+ GBytes *response = soup_test_session_async_send (test->session, msg, NULL, &error);
g_assert_no_error (error);
g_assert_cmpstr (g_bytes_get_data (response, NULL), ==, "Hello world");
- g_assert_cmpuint (soup_message_get_connection_id (test->msg), ==, connection_id);
+ g_assert_cmpuint (soup_message_get_connection_id (msg), ==, connection_id);
g_bytes_unref (response);
- g_object_unref (test->msg);
+ g_object_unref (msg);
g_main_context_unref (async_context);
}