[gnome-builder] tests: port test-ide-buffer-manager to new style tests
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] tests: port test-ide-buffer-manager to new style tests
- Date: Thu, 14 Jan 2016 01:25:21 +0000 (UTC)
commit 8be374874f276606d46472efa8166456a894f647
Author: Christian Hergert <chergert redhat com>
Date: Wed Jan 13 17:24:58 2016 -0800
tests: port test-ide-buffer-manager to new style tests
tests/test-ide-buffer-manager.c | 162 ++++++++++++++++++---------------------
1 files changed, 74 insertions(+), 88 deletions(-)
---
diff --git a/tests/test-ide-buffer-manager.c b/tests/test-ide-buffer-manager.c
index 2df78e2..e81a42e 100644
--- a/tests/test-ide-buffer-manager.c
+++ b/tests/test-ide-buffer-manager.c
@@ -20,34 +20,26 @@
#include <glib/gstdio.h>
#include <ide.h>
-#include "gb-plugins.h"
-#include "test-helper.h"
+#include "ide-application-tests.h"
-typedef struct
-{
- GMainLoop *main_loop;
- IdeContext *context;
- GCancellable *cancellable;
- GError *error;
- gchar *tmpfile;
- gint load_count;
- gint save_count;
-} test_buffer_manager_basic_state;
+static gint save_count;
+static gint load_count;
+static gchar *tmpfilename;
static void
-save_buffer_cb (IdeBufferManager *buffer_manager,
- IdeBuffer *buffer,
- test_buffer_manager_basic_state *state)
+save_buffer_cb (IdeBufferManager *buffer_manager,
+ IdeBuffer *buffer,
+ gpointer user_data)
{
- state->save_count++;
+ save_count++;
}
static void
-buffer_loaded_cb (IdeBufferManager *buffer_manager,
- IdeBuffer *buffer,
- test_buffer_manager_basic_state *state)
+buffer_loaded_cb (IdeBufferManager *buffer_manager,
+ IdeBuffer *buffer,
+ gpointer user_data)
{
- state->load_count++;
+ load_count++;
}
static void
@@ -56,15 +48,19 @@ test_buffer_manager_basic_cb3 (GObject *object,
gpointer user_data)
{
IdeBufferManager *buffer_manager = (IdeBufferManager *)object;
- test_buffer_manager_basic_state *state = user_data;
+ g_autoptr(GTask) task = user_data;
+ GError *error = NULL;
gboolean ret;
- ret = ide_buffer_manager_save_file_finish (buffer_manager, result, &state->error);
+ g_unlink (tmpfilename);
+ g_free (tmpfilename);
+ tmpfilename = NULL;
- g_assert_no_error (state->error);
+ ret = ide_buffer_manager_save_file_finish (buffer_manager, result, &error);
+ g_assert_no_error (error);
g_assert (ret);
- g_main_loop_quit (state->main_loop);
+ g_task_return_boolean (task, TRUE);
}
static void
@@ -75,36 +71,40 @@ test_buffer_manager_basic_cb2 (GObject *object,
g_autoptr(IdeBuffer) buffer = NULL;
IdeBufferManager *buffer_manager = (IdeBufferManager *)object;
g_autoptr(IdeProgress) progress = NULL;
+ g_autoptr(GTask) task = user_data;
+ IdeContext *context;
IdeProject *project;
GtkTextIter begin, end;
IdeFile *file;
- test_buffer_manager_basic_state *state = user_data;
g_autofree gchar *text = NULL;
- int fd;
+ GError *error = NULL;
+ int tmpfd;
+
+ context = ide_object_get_context (IDE_OBJECT (buffer_manager));
+
+ buffer = ide_buffer_manager_load_file_finish (buffer_manager, result, &error);
+ g_assert_no_error (error);
+ g_assert (!buffer || IDE_IS_BUFFER (buffer));
- buffer = ide_buffer_manager_load_file_finish (buffer_manager, result, &state->error);
gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (buffer), &begin, &end);
text = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (buffer), &begin, &end, TRUE);
g_assert_cmpstr (text, ==, "LT_INIT");
- g_assert_no_error (state->error);
- g_assert (!buffer || IDE_IS_BUFFER (buffer));
-
- fd = g_file_open_tmp (NULL, &state->tmpfile, &state->error);
- g_assert_no_error (state->error);
- g_assert_cmpint (-1, !=, fd);
- close (fd); /* not secure, but okay for tests */
+ tmpfd = g_file_open_tmp (NULL, &tmpfilename, &error);
+ g_assert_no_error (error);
+ g_assert_cmpint (-1, !=, tmpfd);
+ close (tmpfd); /* not secure, but okay for tests */
- project = ide_context_get_project (state->context);
- file = ide_project_get_file_for_path (project, state->tmpfile);
+ project = ide_context_get_project (context);
+ file = ide_project_get_file_for_path (project, tmpfilename);
ide_buffer_manager_save_file_async (buffer_manager,
buffer,
file,
&progress,
- state->cancellable,
+ g_task_get_cancellable (task),
test_buffer_manager_basic_cb3,
- state);
+ g_object_ref (task));
g_assert (IDE_IS_PROGRESS (progress));
}
@@ -114,24 +114,24 @@ test_buffer_manager_basic_cb1 (GObject *object,
GAsyncResult *result,
gpointer user_data)
{
- test_buffer_manager_basic_state *state = user_data;
g_autoptr(IdeFile) file = NULL;
+ g_autoptr(GTask) task = user_data;
g_autoptr(IdeProgress) progress = NULL;
+ g_autoptr(IdeContext) context = NULL;
IdeBufferManager *buffer_manager;
IdeProject *project;
g_autofree gchar *path = NULL;
+ GError *error = NULL;
- state->context = ide_context_new_finish (result, &state->error);
+ context = ide_context_new_finish (result, &error);
+ g_assert_no_error (error);
+ g_assert (context != NULL);
- if (!state->context)
- goto failure;
+ buffer_manager = ide_context_get_buffer_manager (context);
+ g_signal_connect (buffer_manager, "save-buffer", G_CALLBACK (save_buffer_cb), task);
+ g_signal_connect (buffer_manager, "buffer-loaded", G_CALLBACK (buffer_loaded_cb), task);
- buffer_manager = ide_context_get_buffer_manager (state->context);
-
- g_signal_connect (buffer_manager, "save-buffer", G_CALLBACK (save_buffer_cb), state);
- g_signal_connect (buffer_manager, "buffer-loaded", G_CALLBACK (buffer_loaded_cb), state);
-
- project = ide_context_get_project (state->context);
+ project = ide_context_get_project (context);
path = g_build_filename (g_get_current_dir (), TEST_DATA_DIR, "project1", "configure.ac", NULL);
file = ide_project_get_file_for_path (project, path);
@@ -140,64 +140,50 @@ test_buffer_manager_basic_cb1 (GObject *object,
file,
FALSE,
&progress,
- state->cancellable,
+ g_task_get_cancellable (task),
test_buffer_manager_basic_cb2,
- state);
+ g_object_ref (task));
g_assert (IDE_IS_PROGRESS (progress));
-
- return;
-
-failure:
- g_main_loop_quit (state->main_loop);
}
static void
-test_buffer_manager_basic (void)
+test_buffer_manager_basic (GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
- test_buffer_manager_basic_state state = { 0 };
- IdeBufferManager *buffer_manager;
- GFile *project_file;
+ g_autoptr(GFile) project_file = NULL;
g_autofree gchar *path = NULL;
const gchar *builddir = g_getenv ("G_TEST_BUILDDIR");
+ g_autoptr(GTask) task = NULL;
- test_helper_begin_test ();
+ task = g_task_new (NULL, cancellable, callback, user_data);
path = g_build_filename (builddir, "data", "project1", "configure.ac", NULL);
project_file = g_file_new_for_path (path);
- state.main_loop = g_main_loop_new (NULL, FALSE);
- state.cancellable = g_cancellable_new ();
-
- ide_context_new_async (project_file, state.cancellable,
- test_buffer_manager_basic_cb1, &state);
-
- g_main_loop_run (state.main_loop);
-
- if (state.tmpfile)
- g_unlink (state.tmpfile);
-
- g_assert_no_error (state.error);
- g_assert (state.context);
-
- buffer_manager = ide_context_get_buffer_manager (state.context);
- g_assert (IDE_IS_BUFFER_MANAGER (buffer_manager));
-
- g_assert_cmpint (state.load_count, ==, 1);
- g_assert_cmpint (state.save_count, ==, 1);
-
- g_clear_object (&state.cancellable);
- g_clear_object (&state.context);
- g_clear_error (&state.error);
- g_main_loop_unref (state.main_loop);
- g_clear_object (&project_file);
+ ide_context_new_async (project_file,
+ cancellable,
+ test_buffer_manager_basic_cb1,
+ g_object_ref (task));
}
gint
main (gint argc,
gchar *argv[])
{
- test_helper_init (&argc, &argv);
- g_test_add_func ("/Ide/BufferManager/basic", test_buffer_manager_basic);
- return g_test_run ();
+ IdeApplication *app;
+ gint ret;
+
+ g_test_init (&argc, &argv, NULL);
+
+ ide_log_init (TRUE, NULL);
+ ide_log_set_verbosity (4);
+
+ app = ide_application_new ();
+ ide_application_add_test (app, "/Ide/BufferManager/basic", test_buffer_manager_basic, NULL);
+ ret = g_application_run (G_APPLICATION (app), argc, argv);
+ g_object_unref (app);
+
+ return ret;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]