Imported Upstream version 2.53.3
[platform/upstream/glib.git] / gio / tests / gdbus-proxy.c
index 2cf539b..fff1f48 100644 (file)
@@ -5,7 +5,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,9 +13,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General
- * Public License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
  *
  * Author: David Zeuthen <davidz@redhat.com>
  */
@@ -569,7 +567,7 @@ test_bogus_property (GDBusProxy *proxy)
 static const gchar *frob_dbus_interface_xml =
   "<node>"
   "  <interface name='com.example.Frob'>"
-  /* PairReturn() is deliberately different from gdbus-testserver.py's definition */
+  /* PairReturn() is deliberately different from gdbus-testserver's definition */
   "    <method name='PairReturn'>"
   "      <arg type='u' name='somenumber' direction='in'/>"
   "      <arg type='s' name='somestring' direction='out'/>"
@@ -583,9 +581,9 @@ static const gchar *frob_dbus_interface_xml =
   "    </method>"
   /* We deliberately only mention a single property here */
   "    <property name='y' type='y' access='readwrite'/>"
-  /* The 'i' property is deliberately different from gdbus-testserver.py's definition */
+  /* The 'i' property is deliberately different from gdbus-testserver's definition */
   "    <property name='i' type='u' access='readwrite'/>"
-  /* ::TestSignal2 is deliberately different from gdbus-testserver.py's definition */
+  /* ::TestSignal2 is deliberately different from gdbus-testserver's definition */
   "    <signal name='TestSignal2'>"
   "      <arg type='u' name='somenumber'/>"
   "    </signal>"
@@ -620,12 +618,10 @@ test_expected_interface (GDBusProxy *proxy)
   if (g_test_undefined ())
     {
       /* Also check that we complain if setting a cached property of the wrong type */
-      if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
-        {
-          g_dbus_proxy_set_cached_property (proxy, "y", g_variant_new_string ("error_me_out!"));
-        }
-      g_test_trap_assert_stderr ("*Trying to set property y of type s but according to the expected interface the type is y*");
-      g_test_trap_assert_failed();
+      g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
+                             "*Trying to set property y of type s but according to the expected interface the type is y*");
+      g_dbus_proxy_set_cached_property (proxy, "y", g_variant_new_string ("error_me_out!"));
+      g_test_assert_expected_messages ();
     }
 
   /* this should work, however (since the type is correct) */
@@ -636,12 +632,10 @@ test_expected_interface (GDBusProxy *proxy)
       /* Try to get the value of a property where the type we expect is different from
        * what we have in our cache (e.g. what the service returned)
        */
-      if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
-        {
-          value = g_dbus_proxy_get_cached_property (proxy, "i");
-        }
-      g_test_trap_assert_stderr ("*Trying to get property i with type i but according to the expected interface the type is u*");
-      g_test_trap_assert_failed();
+      g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
+                             "*Trying to get property i with type i but according to the expected interface the type is u*");
+      value = g_dbus_proxy_get_cached_property (proxy, "i");
+      g_test_assert_expected_messages ();
     }
 
   /* Even if a property does not exist in expected_interface, looking it
@@ -784,7 +778,7 @@ test_proxy (void)
   g_assert_no_error (error);
 
   /* this is safe; testserver will exit once the bus goes away */
-  g_assert (g_spawn_command_line_async (SRCDIR "/gdbus-testserver.py", NULL));
+  g_assert (g_spawn_command_line_async (g_test_get_filename (G_TEST_BUILT, "gdbus-testserver", NULL), NULL));
 
   _g_assert_property_notify (proxy, "g-name-owner");
 
@@ -846,7 +840,7 @@ test_async (void)
                             NULL);
 
   /* this is safe; testserver will exit once the bus goes away */
-  g_assert (g_spawn_command_line_async (SRCDIR "/gdbus-testserver.py", NULL));
+  g_assert (g_spawn_command_line_async (g_test_get_filename (G_TEST_BUILT, "gdbus-testserver", NULL), NULL));
 
   g_timeout_add (10000, fail_test, NULL);
   g_main_loop_run (loop);
@@ -925,17 +919,14 @@ main (int   argc,
   /* all the tests rely on a shared main loop */
   loop = g_main_loop_new (NULL, FALSE);
 
-  session_bus_up ();
-
   g_test_add_func ("/gdbus/proxy", test_proxy);
   g_test_add_func ("/gdbus/proxy/no-properties", test_no_properties);
   g_test_add_func ("/gdbus/proxy/wellknown-noauto", test_wellknown_noauto);
   g_test_add_func ("/gdbus/proxy/async", test_async);
 
-  ret = g_test_run();
+  ret = session_bus_run();
 
   g_dbus_node_info_unref (introspection_data);
 
-  session_bus_down ();
   return ret;
 }