[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gstreamer-cvs
Subject:    [1.0] gstreamer: tests: one more test for gst_queue_array_drop_element()
From:       tpm () kemper ! freedesktop ! org (Tim Müller)
Date:       2013-01-30 11:17:36
Message-ID: 20130130111736.EE0D476A54 () kemper ! freedesktop ! org
[Download RAW message or body]

Module: gstreamer
Branch: 1.0
Commit: eb37f4e5905f2c29bfeb1e8345d2af54438548f0
URL:    http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=eb37f4e5905f2c29bfeb1e8345d2af54438548f0


Author: Tim-Philipp Müller <tim@centricular.net>
Date:   Tue Jan 29 22:54:21 2013 +0000

tests: one more test for gst_queue_array_drop_element()

https://bugzilla.gnome.org/show_bug.cgi?id=692691

---

 tests/check/libs/queuearray.c |   43 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/tests/check/libs/queuearray.c b/tests/check/libs/queuearray.c
index 586fa8a..b8fac2b 100644
--- a/tests/check/libs/queuearray.c
+++ b/tests/check/libs/queuearray.c
@@ -370,6 +370,48 @@ GST_START_TEST (test_array_drop)
 
 GST_END_TEST;
 
+GST_START_TEST (test_array_drop2)
+{
+#define NUM_QA_ELEMENTS 674
+  gboolean in_array[NUM_QA_ELEMENTS] = { FALSE, };
+  GstQueueArray *array;
+  guint i, j, count, idx;
+
+  array = gst_queue_array_new (10);
+
+  for (i = 0; i < NUM_QA_ELEMENTS; i++) {
+    gpointer element = GUINT_TO_POINTER (i);
+
+    if (g_random_boolean ()) {
+      gst_queue_array_push_tail (array, element);
+      in_array[i] = TRUE;
+    }
+  }
+
+  for (j = 0, count = 0; j < NUM_QA_ELEMENTS; j++)
+    count += in_array[j] ? 1 : 0;
+  fail_unless_equals_int (array->length, count);
+
+  while (array->length > 0) {
+    for (i = 0; i < NUM_QA_ELEMENTS; i++) {
+      if (g_random_boolean () && g_random_boolean () && in_array[i]) {
+        idx = gst_queue_array_find (array, compare_pointer_value,
+            GUINT_TO_POINTER (i));
+        gst_queue_array_drop_element (array, idx);
+        in_array[i] = FALSE;
+      }
+    }
+
+    for (j = 0, count = 0; j < NUM_QA_ELEMENTS; j++)
+      count += in_array[j] ? 1 : 0;
+    fail_unless_equals_int (array->length, count);
+  }
+
+  gst_queue_array_free (array);
+}
+
+GST_END_TEST;
+
 static Suite *
 gst_queue_array_suite (void)
 {
@@ -385,6 +427,7 @@ gst_queue_array_suite (void)
   tcase_add_test (tc_chain, test_array_grow_end);
   tcase_add_test (tc_chain, test_array_find);
   tcase_add_test (tc_chain, test_array_drop);
+  tcase_add_test (tc_chain, test_array_drop2);
 
   return s;
 }



_______________________________________________
gstreamer-commits mailing list
gstreamer-commits@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic