Added testcase for failing bin iterate function due to glib thread-unsafeness.
authorWim Taymans <wim.taymans@gmail.com>
Mon, 29 Nov 2004 17:29:37 +0000 (17:29 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Mon, 29 Nov 2004 17:29:37 +0000 (17:29 +0000)
Original commit message from CVS:
Added testcase for failing bin iterate function due to glib thread-unsafeness.

tests/old/testsuite/threads/159852.c [new file with mode: 0644]
tests/old/testsuite/threads/Makefile.am
testsuite/threads/159852.c [new file with mode: 0644]
testsuite/threads/Makefile.am

diff --git a/tests/old/testsuite/threads/159852.c b/tests/old/testsuite/threads/159852.c
new file mode 100644 (file)
index 0000000..3a57b9f
--- /dev/null
@@ -0,0 +1,33 @@
+#include <unistd.h>
+#include <gst/gst.h>
+
+
+
+static gpointer
+iterate_bin (GstBin * bin)
+{
+  while (TRUE) {
+    gst_bin_iterate (bin);
+  }
+  return NULL;
+}
+
+int
+main (int argc, char **argv)
+{
+  gint i;
+  GstElement *bin;
+
+  gst_init (&argc, &argv);
+
+  for (i = 0; i < 100; i++) {
+    bin = gst_element_factory_make ("bin", "bin");
+    gst_scheduler_factory_make (NULL, GST_ELEMENT (bin));
+
+    g_thread_create ((GThreadFunc) iterate_bin, bin, TRUE, NULL);
+  }
+
+  sleep (20000);
+
+  return 0;
+}
index 906dde27c63279c9c5cc18af463aa29add29c4e7..686a3ac150e0996df2f600c494ea226332c634df 100644 (file)
@@ -1,7 +1,7 @@
 include ../Rules
 
 tests_pass = thread1 thread2 thread3 thread4 thread5 threade threadf signal1
-tests_fail = 159566 signal2 signal3
+tests_fail = 159566 signal2 signal3 159852
 
 # threadh
 
diff --git a/testsuite/threads/159852.c b/testsuite/threads/159852.c
new file mode 100644 (file)
index 0000000..3a57b9f
--- /dev/null
@@ -0,0 +1,33 @@
+#include <unistd.h>
+#include <gst/gst.h>
+
+
+
+static gpointer
+iterate_bin (GstBin * bin)
+{
+  while (TRUE) {
+    gst_bin_iterate (bin);
+  }
+  return NULL;
+}
+
+int
+main (int argc, char **argv)
+{
+  gint i;
+  GstElement *bin;
+
+  gst_init (&argc, &argv);
+
+  for (i = 0; i < 100; i++) {
+    bin = gst_element_factory_make ("bin", "bin");
+    gst_scheduler_factory_make (NULL, GST_ELEMENT (bin));
+
+    g_thread_create ((GThreadFunc) iterate_bin, bin, TRUE, NULL);
+  }
+
+  sleep (20000);
+
+  return 0;
+}
index 906dde27c63279c9c5cc18af463aa29add29c4e7..686a3ac150e0996df2f600c494ea226332c634df 100644 (file)
@@ -1,7 +1,7 @@
 include ../Rules
 
 tests_pass = thread1 thread2 thread3 thread4 thread5 threade threadf signal1
-tests_fail = 159566 signal2 signal3
+tests_fail = 159566 signal2 signal3 159852
 
 # threadh