test/x11: properly clean up also when skipping test
authorRan Benita <ran234@gmail.com>
Tue, 12 Dec 2017 13:57:58 +0000 (15:57 +0200)
committerRan Benita <ran234@gmail.com>
Tue, 12 Dec 2017 13:58:32 +0000 (15:58 +0200)
To make valgrind happy.

Signed-off-by: Ran Benita <ran234@gmail.com>
test/x11.c

index 232e136..17e8ad8 100644 (file)
@@ -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;
 }