Test for scheduler interrupt
authorWim Taymans <wim.taymans@gmail.com>
Wed, 8 Jan 2003 21:28:37 +0000 (21:28 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Wed, 8 Jan 2003 21:28:37 +0000 (21:28 +0000)
Original commit message from CVS:
Test for scheduler interrupt

tests/sched/Makefile.am
tests/sched/interrupt1.c [new file with mode: 0644]
tests/sched/interrupt2.c [new file with mode: 0644]

index cd0a3ee..e7ddf6f 100644 (file)
@@ -1,7 +1,7 @@
 if GST_DISABLE_LOADSAVE
 noinst_PROGRAMS =
 else
-noinst_PROGRAMS = runxml dynamic-pipeline sched-stress
+noinst_PROGRAMS = runxml dynamic-pipeline sched-stress interrupt1 interrupt2
 endif
 
 dynamic_pipeline_SOURCES = dynamic-pipeline.c 
diff --git a/tests/sched/interrupt1.c b/tests/sched/interrupt1.c
new file mode 100644 (file)
index 0000000..92c7c38
--- /dev/null
@@ -0,0 +1,38 @@
+#include <gst/gst.h>
+
+int main (int argc, char *argv[]) 
+{
+  GstElement *pipeline, *thread, *queue, *src, *sink;
+
+  gst_init (&argc, &argv);
+
+  free (malloc (8)); /* -lefence */
+
+  pipeline = gst_pipeline_new ("pipeline");
+
+  src = gst_element_factory_make ("fakesrc", "src");
+
+  thread = gst_thread_new ("thread");
+  
+  queue = gst_element_factory_make ("queue", "queue");
+  sink = gst_element_factory_make ("fakesink", "sink");
+    
+  gst_bin_add (GST_BIN (thread), queue);
+  gst_bin_add (GST_BIN (thread), sink);
+  gst_bin_add (GST_BIN (pipeline), thread);
+  gst_bin_add (GST_BIN (pipeline), src);
+
+  gst_element_connect_pads (src, "src", queue, "sink");
+  gst_element_connect_pads (queue, "src", sink, "sink");
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  sleep (1);
+  gst_element_set_state (pipeline, GST_STATE_PAUSED);
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  sleep (1);
+  gst_element_set_state (pipeline, GST_STATE_PAUSED);
+
+  return 0;
+}
+
diff --git a/tests/sched/interrupt2.c b/tests/sched/interrupt2.c
new file mode 100644 (file)
index 0000000..e2c8ed1
--- /dev/null
@@ -0,0 +1,42 @@
+#include <gst/gst.h>
+
+int main (int argc, char *argv[]) 
+{
+  GstElement *pipeline, *thread, *queue, *src, *identity, *sink;
+
+  gst_init (&argc, &argv);
+
+  free (malloc (8)); /* -lefence */
+
+  pipeline = gst_pipeline_new ("pipeline");
+
+  src = gst_element_factory_make ("fakesrc", "src");
+
+  thread = gst_thread_new ("thread");
+  
+  queue = gst_element_factory_make ("queue", "queue");
+  identity = gst_element_factory_make ("identity", "identity");
+  g_object_set (G_OBJECT (identity), "loop_based", TRUE, NULL);
+  sink = gst_element_factory_make ("fakesink", "sink");
+    
+  gst_bin_add (GST_BIN (thread), queue);
+  gst_bin_add (GST_BIN (thread), identity);
+  gst_bin_add (GST_BIN (thread), sink);
+  gst_bin_add (GST_BIN (pipeline), thread);
+  gst_bin_add (GST_BIN (pipeline), src);
+
+  gst_element_connect_pads (src, "src", queue, "sink");
+  gst_element_connect_pads (queue, "src", identity, "sink");
+  gst_element_connect_pads (identity, "src", sink, "sink");
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  sleep (1);
+  gst_element_set_state (pipeline, GST_STATE_PAUSED);
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  sleep (1);
+  gst_element_set_state (pipeline, GST_STATE_PAUSED);
+
+  return 0;
+}
+