[Spice-devel] [spice-gtk v4 22/24] tests: file-transfer cancel on task init
Victor Toso
victortoso at redhat.com
Thu Jun 23 17:37:54 UTC 2016
---
tests/file-transfer.c | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/tests/file-transfer.c b/tests/file-transfer.c
index 6ef178b..61d0dcc 100644
--- a/tests/file-transfer.c
+++ b/tests/file-transfer.c
@@ -137,6 +137,41 @@ test_simple_transfer(Fixture *f, gconstpointer user_data)
g_main_loop_run (f->loop);
}
+/*******************************************************************************
+ * TEST CANCEL ON INIT TASK
+ ******************************************************************************/
+static void
+transfer_cancelled_on_init_async_cb(GObject *obj, GAsyncResult *res, gpointer data)
+{
+ GFileInfo *info;
+ SpiceFileTransferTask *xfer_task;
+ GError *error = NULL;
+
+ xfer_task = SPICE_FILE_TRANSFER_TASK(obj);
+ info = spice_file_transfer_task_init_task_finish(xfer_task, res, &error);
+ g_assert_error(error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
+ g_assert_null(info);
+
+ transfer_xfer_task_on_finished(NULL, NULL, data);
+}
+
+static void
+test_cancel_on_task_init(Fixture *f, gconstpointer user_data)
+{
+ GHashTableIter iter;
+ gpointer key, value;
+
+ f->xfer_task_ht = spice_file_transfer_task_create_tasks(f->files, NULL, G_FILE_COPY_NONE, f->cancellable);
+ g_hash_table_iter_init(&iter, f->xfer_task_ht);
+ while (g_hash_table_iter_next(&iter, &key, &value)) {
+ SpiceFileTransferTask *xfer_task = SPICE_FILE_TRANSFER_TASK(value);
+ g_signal_connect(xfer_task, "finished", G_CALLBACK(transfer_xfer_task_on_finished), f);
+ g_cancellable_cancel(f->cancellable);
+ spice_file_transfer_task_init_task_async(xfer_task, transfer_cancelled_on_init_async_cb, f);
+ }
+ g_main_loop_run (f->loop);
+}
+
/* Tests summary:
*
* This tests are specific to SpiceFileTransferTask and how it handles the
@@ -175,9 +210,17 @@ int main(int argc, char* argv[])
Fixture, GUINT_TO_POINTER(SINGLE_FILE),
f_setup, test_simple_transfer, f_teardown);
+ g_test_add("/spice-file-transfer-task/single/cancel/on-task-init",
+ Fixture, GUINT_TO_POINTER(SINGLE_FILE),
+ f_setup, test_cancel_on_task_init, f_teardown);
+
g_test_add("/spice-file-transfer-task/multiple/simple-transfer",
Fixture, GUINT_TO_POINTER(MULTIPLE_FILES),
f_setup, test_simple_transfer, f_teardown);
+ g_test_add("/spice-file-transfer-task/multiple/cancel/on-task-init",
+ Fixture, GUINT_TO_POINTER(MULTIPLE_FILES),
+ f_setup, test_cancel_on_task_init, f_teardown);
+
return g_test_run();
}
--
2.7.4
More information about the Spice-devel
mailing list