[gtk/test-protocol: 1/5] testsuite: Fix the accessible test



commit 068ec582870817ae78626db5d93cd35d3205c47e
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Mar 20 08:33:21 2020 -0400

    testsuite: Fix the accessible test
    
    This test was happily doing nothing.

 testsuite/gtk/accessible.c | 38 ++++++++++++++++++++++++++------------
 1 file changed, 26 insertions(+), 12 deletions(-)
---
diff --git a/testsuite/gtk/accessible.c b/testsuite/gtk/accessible.c
index 7f5a034b94..5671e536a4 100644
--- a/testsuite/gtk/accessible.c
+++ b/testsuite/gtk/accessible.c
@@ -1,21 +1,22 @@
 #include <gtk/gtk.h>
 
 static void
-test_type (GType t)
+test_type (gconstpointer data)
 {
+  GType t = *(GType *)data;
   GtkWidget *w;
   AtkObject *a;
 
-  if (g_type_is_a (t, GTK_TYPE_WIDGET))
-    {
-      w = (GtkWidget *)g_object_new (t, NULL);
-      a = gtk_widget_get_accessible (w);
+  w = (GtkWidget *)g_object_new (t, NULL);
+  if (g_type_is_a (t, G_TYPE_INITIALLY_UNOWNED))
+    g_object_ref_sink (w);
 
-      g_assert (GTK_IS_ACCESSIBLE (a));
-      g_assert (gtk_accessible_get_widget (GTK_ACCESSIBLE (a)) == w);
+  a = gtk_widget_get_accessible (w);
 
-      g_object_unref (w);
-    }
+  g_assert (GTK_IS_ACCESSIBLE (a));
+  g_assert (gtk_accessible_get_widget (GTK_ACCESSIBLE (a)) == w);
+
+  g_object_unref (w);
 }
 
 int
@@ -24,12 +25,25 @@ main (int argc, char *argv[])
   const GType *tp;
   guint i, n;
 
-  gtk_init ();
+  gtk_test_init (&argc, &argv, NULL);
+  gtk_test_register_all_types ();
 
   tp = gtk_test_list_all_types (&n);
 
   for (i = 0; i < n; i++)
-    test_type (tp[i]);
+    {
+      char *testname;
+
+      if (!g_type_is_a (tp[i], GTK_TYPE_WIDGET) ||
+          G_TYPE_IS_ABSTRACT (tp[i]) ||
+          !G_TYPE_IS_INSTANTIATABLE (tp[i]))
+        continue;
+
+      testname = g_strdup_printf ("/Accessible/%s", g_type_name (tp[i]));
+      g_test_add_data_func (testname, &tp[i], test_type);
+
+      g_free (testname);
+    }
 
-  return 0;
+  return g_test_run ();
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]