Commit 29998c258c805344b5f3fae9a347f39cfc5d5447

Ran Benita 2017-12-12T15:57:58

test/x11: properly clean up also when skipping test To make valgrind happy. Signed-off-by: Ran Benita <ran234@gmail.com>

diff --git a/test/x11.c b/test/x11.c
index 232e136..17e8ad8 100644
--- a/test/x11.c
+++ b/test/x11.c
@@ -34,6 +34,7 @@ main(void)
     struct xkb_keymap *keymap;
     struct xkb_state *state;
     char *dump;
+    int exit_code = 0;
 
     /*
     * The next two steps depend on a running X server with XKB support.
@@ -41,16 +42,20 @@ main(void)
     * So we don't want a FAIL here.
     */
     conn = xcb_connect(NULL, NULL);
-    if (!conn || xcb_connection_has_error(conn))
-        return SKIP_TEST;
+    if (!conn || xcb_connection_has_error(conn)) {
+        exit_code = SKIP_TEST;
+        goto err_conn;
+    }
 
     ret = xkb_x11_setup_xkb_extension(conn,
                                       XKB_X11_MIN_MAJOR_XKB_VERSION,
                                       XKB_X11_MIN_MINOR_XKB_VERSION,
                                       XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS,
                                       NULL, NULL, NULL, NULL);
-    if (!ret)
-        return SKIP_TEST;
+    if (!ret) {
+        exit_code = SKIP_TEST;
+        goto err_conn;
+    }
 
     device_id = xkb_x11_get_core_keyboard_device_id(conn);
     assert(device_id != -1);
@@ -71,8 +76,9 @@ main(void)
     free(dump);
     xkb_state_unref(state);
     xkb_keymap_unref(keymap);
+err_conn:
     xcb_disconnect(conn);
     xkb_context_unref(ctx);
 
-    return 0;
+    return exit_code;
 }