[libpeas] Cleanup extension tests
- From: Garrett Regier <gregier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libpeas] Cleanup extension tests
- Date: Fri, 10 Feb 2012 18:51:48 +0000 (UTC)
commit 8449235a89c62b402941b1401631b91caf92bb18
Author: Garrett Regier <garrettregier gmail com>
Date: Fri Dec 9 06:12:04 2011 -0800
Cleanup extension tests
tests/libpeas/extension-c.c | 14 +-
tests/libpeas/extension-gjs.c | 12 +-
tests/libpeas/extension-python.c | 27 +--
tests/libpeas/extension-seed.c | 12 +-
tests/libpeas/testing/testing-extension.c | 315 ++++++++++++++++-------------
tests/libpeas/testing/testing-extension.h | 88 +-------
6 files changed, 204 insertions(+), 264 deletions(-)
---
diff --git a/tests/libpeas/extension-c.c b/tests/libpeas/extension-c.c
index bfe6556..8ea9f9a 100644
--- a/tests/libpeas/extension-c.c
+++ b/tests/libpeas/extension-c.c
@@ -29,15 +29,11 @@
#include "introspection/introspection-callable.h"
static void
-test_extension_c_instance_refcount (PeasEngine *engine)
+test_extension_c_instance_refcount (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
- info = peas_engine_get_plugin_info (engine, "extension-c");
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_CALLABLE,
NULL);
@@ -94,16 +90,16 @@ main (int argc,
g_type_init ();
/* Only test the basics */
- EXTENSION_TESTS_INIT (c);
+ testing_extension_basic ("c");
/* We still need to add the callable tests
* because of peas_extension_call()
*/
- EXTENSION_TESTS_CALLABLE (c);
+ testing_extension_callable ("c");
EXTENSION_TEST (c, "instance-refcount", instance_refcount);
EXTENSION_TEST (c, "plugin-info", plugin_info);
EXTENSION_TEST (c, "nonexistent", nonexistent);
- return testing_run_tests ();
+ return testing_extension_run_tests ();
}
diff --git a/tests/libpeas/extension-gjs.c b/tests/libpeas/extension-gjs.c
index 963a7e0..e57764d 100644
--- a/tests/libpeas/extension-gjs.c
+++ b/tests/libpeas/extension-gjs.c
@@ -31,18 +31,14 @@
#include "introspection/introspection-callable.h"
static void
-test_extension_gjs_plugin_info (PeasEngine *engine)
+test_extension_gjs_plugin_info (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
PeasExtensionGjs *gexten;
jsval js_value;
GValue gvalue = { 0 };
- info = peas_engine_get_plugin_info (engine, "extension-gjs");
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_CALLABLE,
NULL);
@@ -85,10 +81,10 @@ main (int argc,
g_type_init ();
- EXTENSION_TESTS (gjs);
+ testing_extension_all ("gjs");
EXTENSION_TEST (gjs, "plugin-info", plugin_info);
EXTENSION_TEST (gjs, "nonexistent", nonexistent);
- return testing_run_tests ();
+ return testing_extension_run_tests ();
}
diff --git a/tests/libpeas/extension-python.c b/tests/libpeas/extension-python.c
index e40a5cf..0b577ad 100644
--- a/tests/libpeas/extension-python.c
+++ b/tests/libpeas/extension-python.c
@@ -32,16 +32,12 @@
#include "introspection/introspection-callable.h"
static void
-test_extension_python_instance_refcount (PeasEngine *engine)
+test_extension_python_instance_refcount (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
PyObject *instance;
- info = peas_engine_get_plugin_info (engine, "extension-python");
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_CALLABLE,
NULL);
@@ -59,16 +55,13 @@ test_extension_python_instance_refcount (PeasEngine *engine)
}
static void
-test_extension_python_activatable_subject_refcount (PeasEngine *engine)
+test_extension_python_activatable_subject_refcount (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
GObject *object;
PyObject *wrapper;
- info = peas_engine_get_plugin_info (engine, "extension-python");
- g_assert (peas_engine_load_plugin (engine, info));
-
/* Create the 'object' property value, to be similar to a GtkWindow
* instance: a sunk GInitiallyUnowned object. */
object = g_object_new (G_TYPE_INITIALLY_UNOWNED, NULL);
@@ -103,17 +96,13 @@ test_extension_python_activatable_subject_refcount (PeasEngine *engine)
}
static void
-test_extension_python_plugin_info (PeasEngine *engine)
+test_extension_python_plugin_info (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
PyObject *instance;
PyObject *plugin_info;
- info = peas_engine_get_plugin_info (engine, "extension-python");
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_CALLABLE,
NULL);
@@ -147,12 +136,12 @@ main (int argc,
g_test_init (&argc, &argv, NULL);
g_type_init ();
- EXTENSION_TESTS (python);
+ testing_extension_all ("python");
EXTENSION_TEST (python, "instance-refcount", instance_refcount);
EXTENSION_TEST (python, "activatable-subject-refcount", activatable_subject_refcount);
EXTENSION_TEST (python, "plugin-info", plugin_info);
EXTENSION_TEST (python, "nonexistent", nonexistent);
- return testing_run_tests ();
+ return testing_extension_run_tests ();
}
diff --git a/tests/libpeas/extension-seed.c b/tests/libpeas/extension-seed.c
index cd7923c..ceff7eb 100644
--- a/tests/libpeas/extension-seed.c
+++ b/tests/libpeas/extension-seed.c
@@ -31,18 +31,14 @@
#include "introspection/introspection-callable.h"
static void
-test_extension_seed_plugin_info (PeasEngine *engine)
+test_extension_seed_plugin_info (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
PeasExtensionSeed *sexten;
SeedValue seed_value;
GValue gvalue = { 0 };
- info = peas_engine_get_plugin_info (engine, "extension-seed");
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_CALLABLE,
NULL);
@@ -85,10 +81,10 @@ main (int argc,
g_type_init ();
- EXTENSION_TESTS (seed);
+ testing_extension_all ("seed");
EXTENSION_TEST (seed, "plugin-info", plugin_info);
EXTENSION_TEST (seed, "nonexistent", nonexistent);
- return testing_run_tests ();
+ return testing_extension_run_tests ();
}
diff --git a/tests/libpeas/testing/testing-extension.c b/tests/libpeas/testing/testing-extension.c
index d2333b5..e14b391 100644
--- a/tests/libpeas/testing/testing-extension.c
+++ b/tests/libpeas/testing/testing-extension.c
@@ -39,78 +39,71 @@
#include "introspection-properties.h"
#include "introspection-unimplemented.h"
-static gchar *extension_plugin;
+typedef struct _TestFixture TestFixture;
-void
-testing_extension_set_plugin_ (const gchar *plugin)
-{
- extension_plugin = (gchar *) plugin;
-}
+struct _TestFixture {
+ PeasEngine *engine;
+ PeasPluginInfo *info;
+};
-void
-testing_extension_test_setup_ (TestingExtensionFixture_ *fixture,
- gconstpointer data)
+#define I_(s) (g_ptr_array_add (interned_strings, (s)), (const gchar *) (s))
+
+static GPtrArray *interned_strings = NULL;
+static const gchar *extension_plugin = NULL;
+
+static void
+test_setup (TestFixture *fixture,
+ gconstpointer data)
{
fixture->engine = testing_engine_new ();
+ fixture->info = peas_engine_get_plugin_info (fixture->engine,
+ extension_plugin);
}
-void
-testing_extension_test_teardown_ (TestingExtensionFixture_ *fixture,
- gconstpointer data)
+static void
+test_teardown (TestFixture *fixture,
+ gconstpointer data)
{
testing_engine_free (fixture->engine);
}
-void
-testing_extension_test_runner_ (TestingExtensionFixture_ *fixture,
- gconstpointer data)
+static void
+test_runner (TestFixture *fixture,
+ gconstpointer data)
{
- ((void (*) (PeasEngine *engine)) data) (fixture->engine);
+ g_assert (fixture->info != NULL);
+ g_assert (peas_engine_load_plugin (fixture->engine, fixture->info));
+
+ ((void (*) (PeasEngine *, PeasPluginInfo *)) data) (fixture->engine,
+ fixture->info);
}
-void
-testing_extension_garbage_collect_ (PeasEngine *engine)
+static void
+test_extension_garbage_collect (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
-
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- /* See that we can collect the garbage when no plugins are loaded */
peas_engine_garbage_collect (engine);
- g_assert (peas_engine_load_plugin (engine, info));
-
+ /* Check that we can collect the garbage when no plugins are loaded */
+ g_assert (peas_engine_unload_plugin (engine, info));
peas_engine_garbage_collect (engine);
}
-void
-testing_extension_provides_valid_ (PeasEngine *engine)
+static void
+test_extension_provides_valid (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
-
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
g_assert (peas_engine_provides_extension (engine, info,
INTROSPECTION_TYPE_CALLABLE));
}
-void
-testing_extension_provides_invalid_ (PeasEngine *engine)
+static void
+test_extension_provides_invalid (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
testing_util_push_log_hook ("*assertion `G_TYPE_IS_INTERFACE (*)' failed");
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- /* Not loaded */
- g_assert (!peas_engine_provides_extension (engine, info,
- INTROSPECTION_TYPE_CALLABLE));
-
- g_assert (peas_engine_load_plugin (engine, info));
-
/* Invalid GType */
peas_engine_provides_extension (engine, info, G_TYPE_INVALID);
@@ -122,18 +115,19 @@ testing_extension_provides_invalid_ (PeasEngine *engine)
/* Does not implement this GType */
g_assert (!peas_engine_provides_extension (engine, info,
INTROSPECTION_TYPE_UNIMPLEMENTED));
+
+ /* Not loaded */
+ g_assert (peas_engine_unload_plugin (engine, info));
+ g_assert (!peas_engine_provides_extension (engine, info,
+ INTROSPECTION_TYPE_CALLABLE));
}
-void
-testing_extension_create_valid_ (PeasEngine *engine)
+static void
+test_extension_create_valid (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_CALLABLE,
NULL);
@@ -144,26 +138,16 @@ testing_extension_create_valid_ (PeasEngine *engine)
g_object_unref (extension);
}
-void
-testing_extension_create_invalid_ (PeasEngine *engine)
+static void
+test_extension_create_invalid (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
- testing_util_push_log_hook ("*assertion `peas_plugin_info_is_loaded (*)' failed");
testing_util_push_log_hook ("*assertion `G_TYPE_IS_INTERFACE (*)' failed");
testing_util_push_log_hook ("*does not provide a 'IntrospectionUnimplemented' extension");
testing_util_push_log_hook ("*type 'IntrospectionCallable' has no property named 'invalid-property'");
-
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- /* Not loaded */
- extension = peas_engine_create_extension (engine, info,
- INTROSPECTION_TYPE_CALLABLE,
- NULL);
- g_assert (!PEAS_IS_EXTENSION (extension));
-
- g_assert (peas_engine_load_plugin (engine, info));
+ testing_util_push_log_hook ("*assertion `peas_plugin_info_is_loaded (*)' failed");
/* Invalid GType */
extension = peas_engine_create_extension (engine, info, G_TYPE_INVALID, NULL);
@@ -189,33 +173,36 @@ testing_extension_create_invalid_ (PeasEngine *engine)
g_assert (!PEAS_IS_EXTENSION (extension));
/* This cannot be tested in PyGI and Seed's log handler messes this up */
- if (g_strcmp0 (extension_plugin, "extension-c") == 0 ||
- g_strcmp0 (extension_plugin, "extension-python") == 0 ||
- g_strcmp0 (extension_plugin, "extension-seed") == 0)
- return;
-
- testing_util_push_log_hook ("*cannot add *IntrospectionHasMissingPrerequisite* "
- "which does not conform to *IntrospectionCallable*");
- testing_util_push_log_hook ("*Type *HasMissingPrerequisite* is invalid");
- testing_util_push_log_hook ("*does not provide a *HasMissingPrerequisite* extension");
+ if (g_strcmp0 (extension_plugin, "extension-c") != 0 &&
+ g_strcmp0 (extension_plugin, "extension-python") != 0 &&
+ g_strcmp0 (extension_plugin, "extension-seed") != 0)
+ {
+ testing_util_push_log_hook ("*cannot add *IntrospectionHasMissingPrerequisite* "
+ "which does not conform to *IntrospectionCallable*");
+ testing_util_push_log_hook ("*Type *HasMissingPrerequisite* is invalid");
+ testing_util_push_log_hook ("*does not provide a *HasMissingPrerequisite* extension");
+
+ /* Missing Prerequisite */
+ extension = peas_engine_create_extension (engine, info,
+ INTROSPECTION_TYPE_HAS_MISSING_PREREQUISITE,
+ NULL);
+ g_assert (!PEAS_IS_EXTENSION (extension));
+ }
- /* Missing Prerequisite */
+ /* Not loaded */
+ g_assert (peas_engine_unload_plugin (engine, info));
extension = peas_engine_create_extension (engine, info,
- INTROSPECTION_TYPE_HAS_MISSING_PREREQUISITE,
+ INTROSPECTION_TYPE_CALLABLE,
NULL);
g_assert (!PEAS_IS_EXTENSION (extension));
}
-void
-testing_extension_create_with_prerequisite_ (PeasEngine *engine)
+static void
+test_extension_create_with_prerequisite (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_HAS_PREREQUISITE,
NULL);
@@ -226,13 +213,11 @@ testing_extension_create_with_prerequisite_ (PeasEngine *engine)
g_object_unref (extension);
}
-void
-testing_extension_reload_ (PeasEngine *engine)
+static void
+test_extension_reload (PeasEngine *engine,
+ PeasPluginInfo *info)
{
gint i;
- PeasPluginInfo *info;
-
- info = peas_engine_get_plugin_info (engine, extension_plugin);
for (i = 0; i < 3; ++i)
{
@@ -241,17 +226,13 @@ testing_extension_reload_ (PeasEngine *engine)
}
}
-void
-testing_extension_call_no_args_ (PeasEngine *engine)
+static void
+test_extension_call_no_args (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
IntrospectionCallable *callable;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
PEAS_TYPE_ACTIVATABLE,
"object", NULL,
@@ -265,18 +246,14 @@ testing_extension_call_no_args_ (PeasEngine *engine)
g_object_unref (extension);
}
-void
-testing_extension_call_with_return_ (PeasEngine *engine)
+static void
+test_extension_call_with_return (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
IntrospectionCallable *callable;
const gchar *return_val = NULL;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
PEAS_TYPE_ACTIVATABLE,
"object", NULL,
@@ -295,18 +272,14 @@ testing_extension_call_with_return_ (PeasEngine *engine)
g_object_unref (extension);
}
-void
-testing_extension_call_single_arg_ (PeasEngine *engine)
+static void
+test_extension_call_single_arg (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
IntrospectionCallable *callable;
gboolean called = FALSE;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
PEAS_TYPE_ACTIVATABLE,
"object", NULL,
@@ -325,19 +298,15 @@ testing_extension_call_single_arg_ (PeasEngine *engine)
g_object_unref (extension);
}
-void
-testing_extension_call_multi_args_ (PeasEngine *engine)
+static void
+test_extension_call_multi_args (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
IntrospectionCallable *callable;
gint in, out, inout;
gint inout_saved;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
PEAS_TYPE_ACTIVATABLE,
"object", NULL,
@@ -357,17 +326,13 @@ testing_extension_call_multi_args_ (PeasEngine *engine)
g_object_unref (extension);
}
-void
-testing_extension_properties_construct_only_ (PeasEngine *engine)
+static void
+test_extension_properties_construct_only (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
gchar *construct_only;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_PROPERTIES,
"construct-only", "my-construct-only",
@@ -380,17 +345,13 @@ testing_extension_properties_construct_only_ (PeasEngine *engine)
g_object_unref (extension);
}
-void
-testing_extension_properties_read_only_ (PeasEngine *engine)
+static void
+test_extension_properties_read_only (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
gchar *read_only;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_PROPERTIES,
NULL);
@@ -402,16 +363,12 @@ testing_extension_properties_read_only_ (PeasEngine *engine)
g_object_unref (extension);
}
-void
-testing_extension_properties_write_only_ (PeasEngine *engine)
+static void
+test_extension_properties_write_only (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_PROPERTIES,
NULL);
@@ -421,17 +378,13 @@ testing_extension_properties_write_only_ (PeasEngine *engine)
g_object_unref (extension);
}
-void
-testing_extension_properties_readwrite_ (PeasEngine *engine)
+static void
+test_extension_properties_readwrite (PeasEngine *engine,
+ PeasPluginInfo *info)
{
- PeasPluginInfo *info;
PeasExtension *extension;
gchar *readwrite;
- info = peas_engine_get_plugin_info (engine, extension_plugin);
-
- g_assert (peas_engine_load_plugin (engine, info));
-
extension = peas_engine_create_extension (engine, info,
INTROSPECTION_TYPE_PROPERTIES,
NULL);
@@ -448,3 +401,77 @@ testing_extension_properties_readwrite_ (PeasEngine *engine)
g_object_unref (extension);
}
+
+#define _EXTENSION_TEST(loader, path, ftest) \
+ g_test_add (I_(g_strdup_printf ("/extension/%s/" path, loader)), \
+ TestFixture, \
+ (gpointer) test_extension_##ftest, \
+ test_setup, test_runner, test_teardown)
+
+void
+testing_extension_basic (const gchar *loader)
+{
+ PeasEngine *engine;
+
+ testing_init ();
+
+ interned_strings = g_ptr_array_new_with_free_func (g_free);
+ extension_plugin = I_(g_strdup_printf ("extension-%s", loader));
+
+ engine = testing_engine_new ();
+ peas_engine_enable_loader (engine, loader);
+
+ /* Check that the loaders are created lazily */
+ g_assert (g_type_from_name ("PeasPluginLoader") == G_TYPE_INVALID);
+
+ testing_engine_free (engine);
+
+
+ _EXTENSION_TEST (loader, "garbage-collect", garbage_collect);
+
+ _EXTENSION_TEST (loader, "provides-valid", provides_valid);
+ _EXTENSION_TEST (loader, "provides-invalid", provides_invalid);
+
+ _EXTENSION_TEST (loader, "create-valid", create_valid);
+ _EXTENSION_TEST (loader, "create-invalid", create_invalid);
+ _EXTENSION_TEST (loader, "create-with-prerequisite", create_with_prerequisite);
+
+ _EXTENSION_TEST (loader, "reload", reload);
+}
+
+void
+testing_extension_callable (const gchar *loader)
+{
+ _EXTENSION_TEST (loader, "call-no-args", call_no_args);
+ _EXTENSION_TEST (loader, "call-with-return", call_with_return);
+ _EXTENSION_TEST (loader, "call-single-arg", call_single_arg);
+ _EXTENSION_TEST (loader, "call-multi-args", call_multi_args);
+}
+
+void
+testing_extension_properties (const gchar *loader)
+{
+ _EXTENSION_TEST (loader, "properties-construct-only", properties_construct_only);
+ _EXTENSION_TEST (loader, "properties-read-only", properties_read_only);
+ _EXTENSION_TEST (loader, "properties-write-only", properties_write_only);
+ _EXTENSION_TEST (loader, "properties-readwrite", properties_readwrite);
+}
+
+void
+testing_extension_add (const gchar *path,
+ gpointer func)
+{
+ g_test_add (path, TestFixture, func, test_setup, test_runner, test_teardown);
+}
+
+int
+testing_extension_run_tests (void)
+{
+ int retval;
+
+ retval = testing_run_tests ();
+
+ g_ptr_array_unref (interned_strings);
+
+ return retval;
+}
diff --git a/tests/libpeas/testing/testing-extension.h b/tests/libpeas/testing/testing-extension.h
index 11a7980..84097ea 100644
--- a/tests/libpeas/testing/testing-extension.h
+++ b/tests/libpeas/testing/testing-extension.h
@@ -28,87 +28,23 @@
G_BEGIN_DECLS
-typedef struct _TestingExtensionFixture_ TestingExtensionFixture_;
+void testing_extension_basic (const gchar *loader);
+void testing_extension_callable (const gchar *loader);
+void testing_extension_properties (const gchar *loader);
+void testing_extension_add (const gchar *path,
+ gpointer func);
-struct _TestingExtensionFixture_ {
- PeasEngine *engine;
-};
+int testing_extension_run_tests (void);
-void testing_extension_set_plugin_ (const gchar *plugin);
-
-void testing_extension_test_setup_ (TestingExtensionFixture_ *fixture,
- gconstpointer data);
-void testing_extension_test_teardown_ (TestingExtensionFixture_ *fixture,
- gconstpointer data);
-void testing_extension_test_runner_ (TestingExtensionFixture_ *fixture,
- gconstpointer data);
-
-void testing_extension_garbage_collect_ (PeasEngine *engine);
-void testing_extension_provides_valid_ (PeasEngine *engine);
-void testing_extension_provides_invalid_ (PeasEngine *engine);
-void testing_extension_create_valid_ (PeasEngine *engine);
-void testing_extension_create_invalid_ (PeasEngine *engine);
-void testing_extension_create_with_prerequisite_ (PeasEngine *engine);
-void testing_extension_reload_ (PeasEngine *engine);
-void testing_extension_call_no_args_ (PeasEngine *engine);
-void testing_extension_call_with_return_ (PeasEngine *engine);
-void testing_extension_call_single_arg_ (PeasEngine *engine);
-void testing_extension_call_multi_args_ (PeasEngine *engine);
-void testing_extension_properties_construct_only_ (PeasEngine *engine);
-void testing_extension_properties_read_only_ (PeasEngine *engine);
-void testing_extension_properties_write_only_ (PeasEngine *engine);
-void testing_extension_properties_readwrite_ (PeasEngine *engine);
-
-#define _EXTENSION_TEST(loader, path, ftest) \
- g_test_add ("/extension/" #loader "/" path, TestingExtensionFixture_, \
- (gpointer) testing_extension_##ftest##_, \
- testing_extension_test_setup_, \
- testing_extension_test_runner_, \
- testing_extension_test_teardown_)
-
-/* This also tests that loaders are loaded lazily */
-#define EXTENSION_TESTS_INIT(loader) \
- testing_init (); \
- peas_engine_enable_loader (peas_engine_get_default (), #loader); \
- g_assert (g_type_from_name ("PeasPluginLoader") == G_TYPE_INVALID); \
- g_object_unref (peas_engine_get_default ()); \
- testing_extension_set_plugin_ ("extension-" #loader); \
-\
- _EXTENSION_TEST (loader, "garbage-collect", garbage_collect); \
-\
- _EXTENSION_TEST (loader, "provides-valid", provides_valid); \
- _EXTENSION_TEST (loader, "provides-invalid", provides_invalid); \
-\
- _EXTENSION_TEST (loader, "create-valid", create_valid); \
- _EXTENSION_TEST (loader, "create-invalid", create_invalid); \
- _EXTENSION_TEST (loader, "create-with-prerequisite", create_with_prerequisite); \
-\
- _EXTENSION_TEST (loader, "reload", reload)
-
-#define EXTENSION_TESTS_CALLABLE(loader) \
- _EXTENSION_TEST (loader, "call-no-args", call_no_args); \
- _EXTENSION_TEST (loader, "call-with-return", call_with_return); \
- _EXTENSION_TEST (loader, "call-single-arg", call_single_arg); \
- _EXTENSION_TEST (loader, "call-multi-args", call_multi_args)
-
-#define EXTENSION_TESTS_PROPERTIES(loader) \
- _EXTENSION_TEST (loader, "properties-construct-only", properties_construct_only); \
- _EXTENSION_TEST (loader, "properties-read-only", properties_read_only); \
- _EXTENSION_TEST (loader, "properties-write-only", properties_write_only); \
- _EXTENSION_TEST (loader, "properties-readwrite", properties_readwrite)
-
-#define EXTENSION_TESTS(loader) \
- EXTENSION_TESTS_INIT (loader); \
- EXTENSION_TESTS_CALLABLE (loader); \
- EXTENSION_TESTS_PROPERTIES (loader)
+#define testing_extension_all(loader) \
+ testing_extension_basic (loader); \
+ testing_extension_callable (loader); \
+ testing_extension_properties (loader)
/* This macro is there to add loader-specific tests. */
#define EXTENSION_TEST(loader, path, func) \
- g_test_add ("/extension/" #loader "/" path, TestingExtensionFixture_, \
- (gpointer) test_extension_##loader##_##func, \
- testing_extension_test_setup_, \
- testing_extension_test_runner_, \
- testing_extension_test_teardown_)
+ testing_extension_add ("/extension/" #loader "/" path, \
+ (gpointer) test_extension_##loader##_##func)
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]