tests: Update for new GstIterator API
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 17 Mar 2011 10:52:42 +0000 (11:52 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 5 May 2011 13:36:04 +0000 (15:36 +0200)
tests/check/elements/tee.c
tests/check/gst/gstbin.c
tests/check/gst/gstiterator.c

index c1c18f2..5c44ea8 100644 (file)
@@ -337,7 +337,9 @@ GST_START_TEST (test_internal_links)
   GstPad *sinkpad, *srcpad1, *srcpad2;
   GstIterator *it;
   GstIteratorResult res;
-  gpointer val1, val2;
+  GValue val1 = { 0, }
+  , val2 = {
+  0,};
 
   tee = gst_check_setup_element ("tee");
 
@@ -347,10 +349,9 @@ GST_START_TEST (test_internal_links)
   fail_unless (it != NULL);
 
   /* iterator should not return anything */
-  val1 = NULL;
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_DONE);
-  fail_unless (val1 == NULL);
+  fail_unless (g_value_get_object (&val1) == NULL);
 
   srcpad1 = gst_element_get_request_pad (tee, "src%d");
   fail_unless (srcpad1 != NULL);
@@ -358,20 +359,19 @@ GST_START_TEST (test_internal_links)
   /* iterator should resync */
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_RESYNC);
-  fail_unless (val1 == NULL);
+  fail_unless (g_value_get_object (&val1) == NULL);
   gst_iterator_resync (it);
 
   /* we should get something now */
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_OK);
-  fail_unless (GST_PAD_CAST (val1) == srcpad1);
+  fail_unless (GST_PAD_CAST (g_value_get_object (&val1)) == srcpad1);
 
-  gst_object_unref (val1);
+  g_value_reset (&val1);
 
-  val1 = NULL;
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_DONE);
-  fail_unless (val1 == NULL);
+  fail_unless (g_value_get_object (&val1) == NULL);
 
   srcpad2 = gst_element_get_request_pad (tee, "src%d");
   fail_unless (srcpad2 != NULL);
@@ -379,28 +379,27 @@ GST_START_TEST (test_internal_links)
   /* iterator should resync */
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_RESYNC);
-  fail_unless (val1 == NULL);
+  fail_unless (g_value_get_object (&val1) == NULL);
   gst_iterator_resync (it);
 
   /* we should get one of the 2 pads now */
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_OK);
-  fail_unless (GST_PAD_CAST (val1) == srcpad1
-      || GST_PAD_CAST (val1) == srcpad2);
+  fail_unless (GST_PAD_CAST (g_value_get_object (&val1)) == srcpad1
+      || GST_PAD_CAST (g_value_get_object (&val1)) == srcpad2);
 
   /* and the other */
   res = gst_iterator_next (it, &val2);
   fail_unless (res == GST_ITERATOR_OK);
-  fail_unless (GST_PAD_CAST (val2) == srcpad1
-      || GST_PAD_CAST (val2) == srcpad2);
-  fail_unless (val1 != val2);
-  gst_object_unref (val1);
-  gst_object_unref (val2);
+  fail_unless (GST_PAD_CAST (g_value_get_object (&val2)) == srcpad1
+      || GST_PAD_CAST (g_value_get_object (&val2)) == srcpad2);
+  fail_unless (g_value_get_object (&val1) != g_value_get_object (&val2));
+  g_value_reset (&val1);
+  g_value_reset (&val2);
 
-  val1 = NULL;
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_DONE);
-  fail_unless (val1 == NULL);
+  fail_unless (g_value_get_object (&val1) == NULL);
 
   gst_iterator_free (it);
 
@@ -410,8 +409,8 @@ GST_START_TEST (test_internal_links)
 
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_OK);
-  fail_unless (GST_PAD_CAST (val1) == sinkpad);
-  gst_object_unref (val1);
+  fail_unless (GST_PAD_CAST (g_value_get_object (&val1)) == sinkpad);
+  g_value_reset (&val1);
 
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_DONE);
@@ -422,12 +421,14 @@ GST_START_TEST (test_internal_links)
 
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_OK);
-  fail_unless (GST_PAD_CAST (val1) == sinkpad);
-  gst_object_unref (val1);
+  fail_unless (GST_PAD_CAST (g_value_get_object (&val1)) == sinkpad);
+  g_value_reset (&val1);
 
   res = gst_iterator_next (it, &val1);
   fail_unless (res == GST_ITERATOR_DONE);
 
+  g_value_unset (&val1);
+  g_value_unset (&val2);
   gst_iterator_free (it);
   gst_object_unref (srcpad1);
   gst_object_unref (srcpad2);
index c81fdeb..598e595 100644 (file)
@@ -61,7 +61,7 @@ GST_START_TEST (test_interface)
   GstBin *bin, *bin2;
   GstElement *filesrc;
   GstIterator *it;
-  gpointer item;
+  GValue item = { 0, };
 
   bin = GST_BIN (gst_bin_new (NULL));
   fail_unless (bin != NULL, "Could not create bin");
@@ -77,8 +77,8 @@ GST_START_TEST (test_interface)
   it = gst_bin_iterate_all_by_interface (bin, GST_TYPE_URI_HANDLER);
   fail_unless (it != NULL);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
-  fail_unless (item == (gpointer) filesrc);
-  gst_object_unref (GST_OBJECT (item));
+  fail_unless (g_value_get_object (&item) == (gpointer) filesrc);
+  g_value_reset (&item);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_DONE);
   gst_iterator_free (it);
 
@@ -89,8 +89,8 @@ GST_START_TEST (test_interface)
   it = gst_bin_iterate_all_by_interface (bin, GST_TYPE_URI_HANDLER);
   fail_unless (it != NULL);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
-  fail_unless (item == (gpointer) filesrc);
-  gst_object_unref (GST_OBJECT (item));
+  fail_unless (g_value_get_object (&item) == (gpointer) filesrc);
+  g_value_reset (&item);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_DONE);
   gst_iterator_free (it);
 
@@ -103,8 +103,8 @@ GST_START_TEST (test_interface)
       GST_ELEMENT (bin2), gst_element_factory_make ("identity", NULL), NULL);
   it = gst_bin_iterate_all_by_interface (bin, GST_TYPE_URI_HANDLER);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
-  fail_unless (item == (gpointer) filesrc);
-  gst_object_unref (GST_OBJECT (item));
+  fail_unless (g_value_get_object (&item) == (gpointer) filesrc);
+  g_value_reset (&item);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_DONE);
   gst_iterator_free (it);
 
@@ -112,12 +112,13 @@ GST_START_TEST (test_interface)
   gst_bin_add (bin2, gst_element_factory_make ("filesrc", NULL));
   it = gst_bin_iterate_all_by_interface (bin, GST_TYPE_URI_HANDLER);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
-  gst_object_unref (GST_OBJECT (item));
+  g_value_reset (&item);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
-  gst_object_unref (GST_OBJECT (item));
+  g_value_reset (&item);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
-  gst_object_unref (GST_OBJECT (item));
+  g_value_reset (&item);
   fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_DONE);
+  g_value_unset (&item);
   gst_iterator_free (it);
 
   gst_object_unref (bin);
@@ -887,7 +888,7 @@ GST_START_TEST (test_iterate_sorted)
 {
   GstElement *src, *tee, *identity, *sink1, *sink2, *pipeline, *bin;
   GstIterator *it;
-  gpointer elem;
+  GValue elem = { 0, };
 
   pipeline = gst_pipeline_new (NULL);
   fail_unless (pipeline != NULL, "Could not create pipeline");
@@ -922,19 +923,21 @@ GST_START_TEST (test_iterate_sorted)
 
   it = gst_bin_iterate_sorted (GST_BIN (pipeline));
   fail_unless (gst_iterator_next (it, &elem) == GST_ITERATOR_OK);
-  fail_unless (elem == sink2);
-  gst_object_unref (elem);
+  fail_unless (g_value_get_object (&elem) == (gpointer) sink2);
+  g_value_reset (&elem);
 
   fail_unless (gst_iterator_next (it, &elem) == GST_ITERATOR_OK);
-  fail_unless (elem == identity);
-  gst_object_unref (elem);
+  fail_unless (g_value_get_object (&elem) == (gpointer) identity);
+  g_value_reset (&elem);
 
   fail_unless (gst_iterator_next (it, &elem) == GST_ITERATOR_OK);
-  fail_unless (elem == bin);
-  gst_object_unref (elem);
+  fail_unless (g_value_get_object (&elem) == (gpointer) bin);
+  g_value_reset (&elem);
 
+  g_value_unset (&elem);
   gst_iterator_free (it);
 
+  ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 1);
   gst_object_unref (pipeline);
 }
 
index 8a2b464..e6d9389 100644 (file)
@@ -44,13 +44,13 @@ GST_START_TEST (test_manual_iteration)
   GMutex *m;
   GstIterator *iter;
   GstIteratorResult res;
-  gpointer item;
+  GValue item = { 0, };
   gint i = 0;
 
   l = make_list_of_ints (NUM_ELEMENTS);
   m = g_mutex_new ();
 
-  iter = gst_iterator_new_list (G_TYPE_INT, m, &cookie, &l, NULL, NULL, NULL);
+  iter = gst_iterator_new_list (G_TYPE_POINTER, m, &cookie, &l, NULL, NULL);
 
   fail_unless (iter != NULL);
 
@@ -58,7 +58,8 @@ GST_START_TEST (test_manual_iteration)
     res = gst_iterator_next (iter, &item);
     if (i < NUM_ELEMENTS) {
       fail_unless (res == GST_ITERATOR_OK);
-      fail_unless (GPOINTER_TO_INT (item) == i);
+      fail_unless (GPOINTER_TO_INT (g_value_get_pointer (&item)) == i);
+      g_value_reset (&item);
       i++;
       continue;
     } else {
@@ -66,8 +67,8 @@ GST_START_TEST (test_manual_iteration)
       break;
     }
   }
-
   /* clean up */
+  g_value_unset (&item);
   gst_iterator_free (iter);
   g_mutex_free (m);
   g_list_free (l);
@@ -82,14 +83,14 @@ GST_START_TEST (test_resync)
   GMutex *m;
   GstIterator *iter;
   GstIteratorResult res;
-  gpointer item;
+  GValue item = { 0, };
   gint i = 0;
   gboolean hacked_list = FALSE;
 
   l = make_list_of_ints (NUM_ELEMENTS);
   m = g_mutex_new ();
 
-  iter = gst_iterator_new_list (G_TYPE_INT, m, &cookie, &l, NULL, NULL, NULL);
+  iter = gst_iterator_new_list (G_TYPE_POINTER, m, &cookie, &l, NULL, NULL);
 
   fail_unless (iter != NULL);
 
@@ -97,12 +98,14 @@ GST_START_TEST (test_resync)
     res = gst_iterator_next (iter, &item);
     if (i < NUM_ELEMENTS / 2) {
       fail_unless (res == GST_ITERATOR_OK);
-      fail_unless (GPOINTER_TO_INT (item) == i);
+      fail_unless (GPOINTER_TO_INT (g_value_get_pointer (&item)) == i);
+      g_value_reset (&item);
       i++;
       continue;
     } else if (!hacked_list) {
       /* here's where we test resync */
       fail_unless (res == GST_ITERATOR_OK);
+      g_value_reset (&item);
       l = g_list_prepend (l, GINT_TO_POINTER (-1));
       cookie++;
       hacked_list = TRUE;
@@ -112,12 +115,14 @@ GST_START_TEST (test_resync)
       gst_iterator_resync (iter);
       res = gst_iterator_next (iter, &item);
       fail_unless (res == GST_ITERATOR_OK);
-      fail_unless (GPOINTER_TO_INT (item) == -1);
+      fail_unless (GPOINTER_TO_INT (g_value_get_pointer (&item)) == -1);
+      g_value_reset (&item);
       break;
     }
   }
 
   /* clean up */
+  g_value_unset (&item);
   gst_iterator_free (iter);
   g_mutex_free (m);
   g_list_free (l);
@@ -126,9 +131,10 @@ GST_START_TEST (test_resync)
 GST_END_TEST;
 
 static gboolean
-add_fold_func (gpointer item, GValue * ret, gpointer user_data)
+add_fold_func (const GValue * item, GValue * ret, gpointer user_data)
 {
-  g_value_set_int (ret, g_value_get_int (ret) + GPOINTER_TO_INT (item));
+  g_value_set_int (ret,
+      g_value_get_int (ret) + GPOINTER_TO_INT (g_value_get_pointer (item)));
   return TRUE;
 }
 
@@ -144,7 +150,7 @@ GST_START_TEST (test_fold)
 
   l = make_list_of_ints (NUM_ELEMENTS);
   m = g_mutex_new ();
-  iter = gst_iterator_new_list (G_TYPE_INT, m, &cookie, &l, NULL, NULL, NULL);
+  iter = gst_iterator_new_list (G_TYPE_POINTER, m, &cookie, &l, NULL, NULL);
   fail_unless (iter != NULL);
 
   expected = 0;
@@ -171,27 +177,33 @@ GST_START_TEST (test_single)
 {
   GstIterator *it;
   GstStructure *s = gst_structure_new ("test", NULL);
+  GValue v = { 0, };
   GstStructure *i;
 
-  it = gst_iterator_new_single (GST_TYPE_STRUCTURE, s,
-      (GstCopyFunction) gst_structure_copy, (GFreeFunc) gst_structure_free);
+  g_value_init (&v, GST_TYPE_STRUCTURE);
+  g_value_set_boxed (&v, s);
+  it = gst_iterator_new_single (GST_TYPE_STRUCTURE, &v);
+  g_value_reset (&v);
 
-  fail_unless (gst_iterator_next (it, (gpointer) & i) == GST_ITERATOR_OK);
+  fail_unless (gst_iterator_next (it, &v) == GST_ITERATOR_OK);
+  i = g_value_get_boxed (&v);
   fail_unless (strcmp (gst_structure_get_name (s),
           gst_structure_get_name (i)) == 0);
-  gst_structure_free (i);
   i = NULL;
-  fail_unless (gst_iterator_next (it, (gpointer) & i) == GST_ITERATOR_DONE);
-  fail_unless (i == NULL);
+  g_value_reset (&v);
+
+  fail_unless (gst_iterator_next (it, &v) == GST_ITERATOR_DONE);
+  fail_unless (g_value_get_boxed (&v) == NULL);
 
   gst_iterator_free (it);
   gst_structure_free (s);
 
-  it = gst_iterator_new_single (GST_TYPE_STRUCTURE, NULL,
-      (GstCopyFunction) gst_structure_copy, (GFreeFunc) gst_structure_free);
+  it = gst_iterator_new_single (GST_TYPE_STRUCTURE, NULL);
+
+  fail_unless (gst_iterator_next (it, &v) == GST_ITERATOR_DONE);
+  fail_unless (g_value_get_boxed (&v) == NULL);
 
-  fail_unless (gst_iterator_next (it, (gpointer) & i) == GST_ITERATOR_DONE);
-  fail_unless (i == NULL);
+  g_value_reset (&v);
 
   gst_iterator_free (it);
 }