diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2003-01-08 21:28:37 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2003-01-08 21:28:37 +0000 |
commit | b005b541c8da45b818dece45ee0e72635852d22b (patch) | |
tree | f32b334122b85e2f8cc558b191cbce56b3757f38 /tests/sched | |
parent | 16870983fbc9fe5e059972ce0b72cbc59bb4b709 (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.am | 2 | ||||
-rw-r--r-- | tests/sched/interrupt1.c | 38 | ||||
-rw-r--r-- | tests/sched/interrupt2.c | 42 |
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; +} + |