summaryrefslogtreecommitdiff
path: root/tests/sched
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2003-01-08 21:28:37 +0000
committerWim Taymans <wim.taymans@gmail.com>2003-01-08 21:28:37 +0000
commitb005b541c8da45b818dece45ee0e72635852d22b (patch)
treef32b334122b85e2f8cc558b191cbce56b3757f38 /tests/sched
parent16870983fbc9fe5e059972ce0b72cbc59bb4b709 (diff)
Test for scheduler interrupt
Original commit message from CVS: Test for scheduler interrupt
Diffstat (limited to 'tests/sched')
-rw-r--r--tests/sched/Makefile.am2
-rw-r--r--tests/sched/interrupt1.c38
-rw-r--r--tests/sched/interrupt2.c42
3 files changed, 81 insertions, 1 deletions
diff --git a/tests/sched/Makefile.am b/tests/sched/Makefile.am
index cd0a3ee5e..e7ddf6f11 100644
--- a/tests/sched/Makefile.am
+++ b/tests/sched/Makefile.am
@@ -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
index 000000000..92c7c38c4
--- /dev/null
+++ b/tests/sched/interrupt1.c
@@ -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
index 000000000..e2c8ed17d
--- /dev/null
+++ b/tests/sched/interrupt2.c
@@ -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;
+}
+