From 1ab6fc0b39abb646b787eb1d12b46c6cb967db8d Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 7 Jun 2012 12:23:49 +0100 Subject: [PATCH] conform/events-touch: Silently bail out if init failed This removes the need to conditionally run the test. --- tests/conform/events-touch.c | 33 ++++++++++++++++++++++++--------- tests/conform/test-conform-main.c | 11 ++--------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/tests/conform/events-touch.c b/tests/conform/events-touch.c index 80a0d15..52ee4d7 100644 --- a/tests/conform/events-touch.c +++ b/tests/conform/events-touch.c @@ -316,7 +316,7 @@ error: } static int -init_uinput () +init_uinput (void) { struct uinput_user_dev dev; @@ -324,22 +324,35 @@ init_uinput () if (fd < 0 && errno == ENODEV) fd = open ("/dev/input/uinput", O_RDWR); if (fd < 0) - goto error; + { + if (g_test_verbose ()) + perror ("open"); + + return 0; + }; memset (&dev, 0, sizeof (dev)); setup (&dev, fd); if (write (fd, &dev, sizeof (dev)) < sizeof (dev)) - goto error; + { + if (g_test_verbose ()) + perror ("write"); + + goto error; + } + if (ioctl (fd, UI_DEV_CREATE, NULL) == -1) - goto error; + { + if (g_test_verbose ()) + perror ("ioctl"); + + goto error; + } return 0; error: - if (g_test_verbose ()) - g_print ("error: %s\n", strerror (errno)); - if (fd != -1) close (fd); @@ -355,6 +368,10 @@ events_touch (void) ClutterActor *stage; State state; + /* bail out if we could not initialize evdev */ + if (!init_uinput ()) + return; + state.pass = TRUE; state.gesture_points = 0; @@ -363,8 +380,6 @@ events_touch (void) clutter_stage_set_fullscreen (CLUTTER_STAGE (stage), TRUE); clutter_actor_show (stage); - g_assert (init_uinput () == 0); - clutter_threads_add_timeout (500, perform_gesture, &state); clutter_main (); diff --git a/tests/conform/test-conform-main.c b/tests/conform/test-conform-main.c index 54afb57..41922c0 100644 --- a/tests/conform/test-conform-main.c +++ b/tests/conform/test-conform-main.c @@ -116,13 +116,6 @@ clutter_test_init (gint *argc, shared_state->argv_addr = argv; } -static int -can_write_to_uinput () -{ - return g_access ("/dev/uinput", R_OK | W_OK) || - g_access ("/dev/input/uinput", R_OK | W_OK); -} - int main (int argc, char **argv) { @@ -239,6 +232,8 @@ main (int argc, char **argv) TEST_CONFORM_SIMPLE ("/behaviours", behaviours_base); + TEST_CONFORM_SIMPLE ("/events", events_touch); + /* FIXME - see bug https://bugzilla.gnome.org/show_bug.cgi?id=655588 */ TEST_CONFORM_TODO ("/cally", cally_text); @@ -260,8 +255,6 @@ main (int argc, char **argv) TEST_CONFORM_SIMPLE ("/cogl/vertex-buffer", test_cogl_vertex_buffer_interleved); TEST_CONFORM_SIMPLE ("/cogl/vertex-buffer", test_cogl_vertex_buffer_mutability); - TEST_CONFORM_SKIP (can_write_to_uinput (), "/events", events_touch); - /* left to the end because they aren't currently very orthogonal and tend to * break subsequent tests! */ TEST_CONFORM_SIMPLE ("/cogl", test_cogl_viewport); -- 2.7.4