[clutter/clutter-1.18] test-utils: Skip tests if no DISPLAY is set
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter/clutter-1.18] test-utils: Skip tests if no DISPLAY is set
- Date: Wed, 2 Apr 2014 18:29:28 +0000 (UTC)
commit f9d99d1c4e573d08bdada42c0b70c984476c9541
Author: Emmanuele Bassi <ebassi gnome org>
Date: Wed Apr 2 19:25:55 2014 +0100
test-utils: Skip tests if no DISPLAY is set
Instead of just bailing out when initializing the test suite, we can do
a much better job and skip all the tests. This means that the TAP driver
will work correctly instead of dying a horrible death, and we get a nice
report with a proper cause of the test skipping.
clutter/clutter-test-utils.c | 28 ++++++++++++++++++++++------
1 files changed, 22 insertions(+), 6 deletions(-)
---
diff --git a/clutter/clutter-test-utils.c b/clutter/clutter-test-utils.c
index 415e222..a5f2f7b 100644
--- a/clutter/clutter-test-utils.c
+++ b/clutter/clutter-test-utils.c
@@ -15,6 +15,8 @@
typedef struct {
ClutterActor *stage;
+
+ guint no_display : 1;
} ClutterTestEnvironment;
static ClutterTestEnvironment *test_environ = NULL;
@@ -32,6 +34,8 @@ void
clutter_test_init (int *argc,
char ***argv)
{
+ gboolean no_display = FALSE;
+
if (G_UNLIKELY (test_environ != NULL))
g_error ("Attempting to initialize the test suite more than once, "
"aborting...\n");
@@ -48,9 +52,12 @@ clutter_test_init (int *argc,
if (display == NULL || *display == '\0')
{
- g_print ("No DISPLAY environment variable found, but we require a "
- "DISPLAY set in order to run the conformance test suite.");
- exit (0);
+ g_test_message ("No DISPLAY environment variable found, but we require a "
+ "DISPLAY set in order to run the conformance test suite.\n"
+ "Skipping all tests.\n");
+ no_display = TRUE;
+
+ goto out;
}
}
#endif
@@ -60,14 +67,16 @@ clutter_test_init (int *argc,
*/
_clutter_set_sync_to_vblank (FALSE);
- g_test_init (argc, argv, NULL);
- g_test_bug_base ("https://bugzilla.gnome.org/show_bug.cgi?id=%s");
-
/* perform the actual initialization */
g_assert (clutter_init (NULL, NULL) == CLUTTER_INIT_SUCCESS);
+out:
+ g_test_init (argc, argv, NULL);
+ g_test_bug_base ("https://bugzilla.gnome.org/show_bug.cgi?id=%s");
+
/* our global state, accessible from each test unit */
test_environ = g_new0 (ClutterTestEnvironment, 1);
+ test_environ->no_display = no_display;
}
/**
@@ -110,6 +119,12 @@ clutter_test_func_wrapper (gconstpointer data_)
/* ensure that the previous test state has been cleaned up */
g_assert_null (test_environ->stage);
+ if (test_environ->no_display)
+ {
+ g_test_skip ("No DISPLAY set");
+ goto out;
+ }
+
if (data->test_data != NULL)
{
GTestDataFunc test_func = data->test_func;
@@ -123,6 +138,7 @@ clutter_test_func_wrapper (gconstpointer data_)
test_func ();
}
+out:
if (data->test_notify != NULL)
data->test_notify (data->test_data);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]