[libsoup] misc-test: add a test that preemptively cancelling a SoupRequest works
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup] misc-test: add a test that preemptively cancelling a SoupRequest works
- Date: Sat, 13 Jul 2013 14:23:01 +0000 (UTC)
commit 11811349f8a10ce419d980c01a518c774fe8a5e5
Author: Dan Winship <danw gnome org>
Date: Sat Jul 13 10:22:14 2013 -0400
misc-test: add a test that preemptively cancelling a SoupRequest works
https://bugzilla.gnome.org/show_bug.cgi?id=637039
tests/misc-test.c | 16 ++++++++++++++++
tests/test-utils.c | 2 ++
tests/test-utils.h | 3 ++-
3 files changed, 20 insertions(+), 1 deletions(-)
---
diff --git a/tests/misc-test.c b/tests/misc-test.c
index 39ee960..18f0e61 100644
--- a/tests/misc-test.c
+++ b/tests/misc-test.c
@@ -971,6 +971,22 @@ do_cancel_while_reading_req_test (void)
NULL);
do_cancel_while_reading_req_test_for_session (session, flags);
soup_test_session_abort_unref (session);
+
+ debug_printf (1, "\nCancelling (preemptively) message while reading response (request api)\n");
+ flags = SOUP_TEST_REQUEST_CANCEL_CANCELLABLE | SOUP_TEST_REQUEST_CANCEL_PREEMPTIVE;
+
+ debug_printf (1, " Async session\n");
+ session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC,
+ SOUP_SESSION_USE_THREAD_CONTEXT, TRUE,
+ NULL);
+ do_cancel_while_reading_req_test_for_session (session, flags);
+ soup_test_session_abort_unref (session);
+
+ debug_printf (1, " Sync session\n");
+ session = soup_test_session_new (SOUP_TYPE_SESSION_SYNC,
+ NULL);
+ do_cancel_while_reading_req_test_for_session (session, flags);
+ soup_test_session_abort_unref (session);
}
static void
diff --git a/tests/test-utils.c b/tests/test-utils.c
index b528b78..248f2fe 100644
--- a/tests/test-utils.c
+++ b/tests/test-utils.c
@@ -468,6 +468,8 @@ soup_test_request_send (SoupRequest *req,
guint interval = flags & SOUP_TEST_REQUEST_CANCEL_SOON ? 100 : 0;
g_timeout_add_full (G_PRIORITY_HIGH, interval, cancel_request_timeout, cancel_data, NULL);
}
+ if (cancel_data && (flags & SOUP_TEST_REQUEST_CANCEL_PREEMPTIVE))
+ g_cancellable_cancel (cancellable);
soup_request_send_async (req, cancellable, async_as_sync_callback, &data);
g_main_loop_run (data.loop);
diff --git a/tests/test-utils.h b/tests/test-utils.h
index b7b2195..98d9339 100644
--- a/tests/test-utils.h
+++ b/tests/test-utils.h
@@ -29,7 +29,8 @@ typedef enum {
SOUP_TEST_REQUEST_CANCEL_CANCELLABLE = (1 << 1),
SOUP_TEST_REQUEST_CANCEL_SOON = (1 << 2),
SOUP_TEST_REQUEST_CANCEL_IMMEDIATE = (1 << 3),
- SOUP_TEST_REQUEST_CANCEL_AFTER_SEND_FINISH = (1 << 4),
+ SOUP_TEST_REQUEST_CANCEL_PREEMPTIVE = (1 << 4),
+ SOUP_TEST_REQUEST_CANCEL_AFTER_SEND_FINISH = (1 << 5),
} SoupTestRequestFlags;
SoupSession *soup_test_session_new (GType type, ...);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]