diff options
Diffstat (limited to 'test/core/test-variant-recursion.c')
-rw-r--r-- | test/core/test-variant-recursion.c | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/test/core/test-variant-recursion.c b/test/core/test-variant-recursion.c deleted file mode 100644 index 507ea4d..0000000 --- a/test/core/test-variant-recursion.c +++ /dev/null @@ -1,109 +0,0 @@ -#include <config.h> - -/* -*- mode: C; c-file-style: "gnu" -*- */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <glib.h> -#include <glib-object.h> -#include <dbus/dbus.h> -#include <dbus/dbus-glib.h> -#include <dbus/dbus-glib-lowlevel.h> - -#include "dbus-gmain/tests/util.h" - -static gboolean -make_recursive_stringify_call (int recursion_depth, - DBusGProxy *proxy, - GError **error) -{ - gchar *out_str; - gboolean ret; - int i; - GValue *val = g_new0 (GValue, 1); - - g_value_init (val, G_TYPE_STRING); - g_value_set_string (val, "end of the line"); - - for (i = 0; i < recursion_depth; i++) - { - GValue *tmp = g_new0 (GValue, 1); - - g_value_init (tmp, G_TYPE_VALUE); - g_value_take_boxed (tmp, val); - val = tmp; - } - - ret = dbus_g_proxy_call (proxy, "Stringify", error, - G_TYPE_VALUE, val, - G_TYPE_INVALID, - G_TYPE_STRING, &out_str, - G_TYPE_INVALID); - - g_boxed_free (G_TYPE_VALUE, val); - - /* the out parameter is meaningless if it failed */ - if (ret) - g_free (out_str); - - return ret; -} - -int -main (int argc, char **argv) -{ - DBusGConnection *connection; - GError *error = NULL; - DBusGProxy *proxy; - GMainLoop *loop; - - g_type_init (); - - g_log_set_always_fatal (G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL); - - loop = g_main_loop_new (NULL, FALSE); - - connection = dbus_g_bus_get_private (DBUS_BUS_SESSION, NULL, &error); - if (connection == NULL) - g_error ("Failed to open connection to bus: %s", error->message); - - proxy = dbus_g_proxy_new_for_name (connection, - "org.freedesktop.DBus.GLib.TestService", - "/org/freedesktop/DBus/GLib/Tests/MyTestObject", - "org.freedesktop.DBus.GLib.Tests.MyObject"); - - if (proxy == NULL) - g_error ("Failed to create proxy for name owner: %s", error->message); - - /* Do an echo to be sure it started */ - if (!dbus_g_proxy_call (proxy, "DoNothing", &error, - G_TYPE_INVALID, - G_TYPE_INVALID)) - g_error ("Failed to complete DoNothing call: %s", error->message); - - /* Fewer than the current internal limit (16) */ - if (make_recursive_stringify_call (10, proxy, &error)) - g_error ("Unexpected success code from 10 recursive variant call: %s", error->message); - if (error->code != DBUS_GERROR_REMOTE_EXCEPTION) - g_error ("Error code was not remote exception: %s", error->message); - g_printerr ("Got expected error %d: \"%s\" from recursive variant call\n", error->code, error->message); - g_clear_error (&error); - /* More than the current internal limit (16) */ - if (make_recursive_stringify_call (50, proxy, &error)) - g_error ("Unexpected success code from 50 recursive variant call: %s", error->message); - if (error->code != DBUS_GERROR_REMOTE_EXCEPTION) - g_error ("Error code was not remote exception: %s", error->message); - g_printerr ("Got expected error %d: \"%s\" from recursive variant call\n", error->code, error->message); - g_clear_error (&error); - - g_object_unref (G_OBJECT (proxy)); - - test_run_until_disconnected (dbus_g_connection_get_connection (connection), NULL); - dbus_g_connection_unref (connection); - - g_main_loop_unref (loop); - dbus_shutdown (); - - return 0; -} |