diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2000-12-22 16:14:33 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2000-12-22 16:14:33 +0000 |
commit | 9987a75b1ba2e14a80d4ca3c99402f4b3ecbcc2a (patch) | |
tree | a1a8d79b5cb33079a42fb18bae31b0f5f0fbae9c /tests/sched | |
parent | a914e7b210ef6e3db38772f3ef123ef174a6d387 (diff) |
Implemented some test cases... they all fail :-(
Original commit message from CVS:
Implemented some test cases... they all fail :-(
Added a flag to identity to for loop_based behaviour.
Added a signal to fakesink when a buffer is consumed.
Diffstat (limited to 'tests/sched')
-rw-r--r-- | tests/sched/Makefile | 12 | ||||
-rw-r--r-- | tests/sched/cases/(fs-fs).xml | 79 | ||||
-rw-r--r-- | tests/sched/cases/(fs-i-fs).xml | 235 | ||||
-rw-r--r-- | tests/sched/cases/(fs-i-i-fs).xml | 627 | ||||
-rw-r--r-- | tests/sched/cases/(fs-i-q[i-fs]).xml | 107 | ||||
-rwxr-xr-x | tests/sched/runtestcases | 15 | ||||
-rw-r--r-- | tests/sched/runxml.c | 74 | ||||
-rw-r--r-- | tests/sched/testcases | 9 |
8 files changed, 1158 insertions, 0 deletions
diff --git a/tests/sched/Makefile b/tests/sched/Makefile new file mode 100644 index 000000000..69ad83755 --- /dev/null +++ b/tests/sched/Makefile @@ -0,0 +1,12 @@ + +CC = libtool gcc + +all: runxml + +runxml: runxml.c + $(CC) -Wall `gstreamer-config --cflags --libs` runxml.c -o runxml + +clean: + rm -f *.o runxml + + diff --git a/tests/sched/cases/(fs-fs).xml b/tests/sched/cases/(fs-fs).xml new file mode 100644 index 000000000..fa7dc97ce --- /dev/null +++ b/tests/sched/cases/(fs-fs).xml @@ -0,0 +1,79 @@ +<?xml version="1.0"?> +<GST-Pipeline> + <element> + <name>new_element</name> + <type>thread</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>bin2</name> + <type>bin</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> +</GST-Pipeline> diff --git a/tests/sched/cases/(fs-i-fs).xml b/tests/sched/cases/(fs-i-fs).xml new file mode 100644 index 000000000..9171bd97c --- /dev/null +++ b/tests/sched/cases/(fs-i-fs).xml @@ -0,0 +1,235 @@ +<?xml version="1.0"?> +<GST-Pipeline> + <element> + <name>bin1</name> + <type>bin</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>bin2</name> + <type>bin</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>bin3</name> + <type>thread</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>bin4</name> + <type>thread</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> +</GST-Pipeline> diff --git a/tests/sched/cases/(fs-i-i-fs).xml b/tests/sched/cases/(fs-i-i-fs).xml new file mode 100644 index 000000000..a4ebc74b0 --- /dev/null +++ b/tests/sched/cases/(fs-i-i-fs).xml @@ -0,0 +1,627 @@ +<?xml version="1.0"?> +<GST-Pipeline> + <element> + <name>bin1</name> + <type>bin</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>bin2</name> + <type>bin</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>bin3</name> + <type>bin</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>bin4</name> + <type>bin</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>thread1</name> + <type>thread</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>thread2</name> + <type>thread</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>thread3</name> + <type>thread</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>false</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>thread4</name> + <type>thread</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstFakeSrc::num_sources</name> + <value>1</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GstIdentity::loop_based</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> +</GST-Pipeline> diff --git a/tests/sched/cases/(fs-i-q[i-fs]).xml b/tests/sched/cases/(fs-i-q[i-fs]).xml new file mode 100644 index 000000000..3d0abdc85 --- /dev/null +++ b/tests/sched/cases/(fs-i-q[i-fs]).xml @@ -0,0 +1,107 @@ +<?xml version="1.0"?> +<GST-Pipeline> + <element> + <name>new_element</name> + <type>bin</type> + <version>0.9.2</version> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>thread</name> + <type>thread</type> + <version>0.9.2</version> + <arg> + <name>GstThread::create_thread</name> + <value>true</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + <children> + <element> + <name>identity</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>queue.src</peer> + </pad> + <pad> + <name>src</name> + <peer>fakesink.sink</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesink</name> + <type>fakesink</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity.src</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> + <element> + <name>queue</name> + <type>queue</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>identity1.src</peer> + </pad> + <pad> + <name>src</name> + <peer>identity.sink</peer> + </pad> + <arg> + <name>GstQueue::level</name> + <value>0</value> + </arg> + <arg> + <name>GstQueue::max_level</name> + <value>20</value> + </arg> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>fakesrc</name> + <type>fakesrc</type> + <version>0.9.2</version> + <pad> + <name>src</name> + <peer>identity1.sink</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + <element> + <name>identity1</name> + <type>identity</type> + <version>0.9.2</version> + <pad> + <name>sink</name> + <peer>fakesrc.src</peer> + </pad> + <pad> + <name>src</name> + <peer>queue.sink</peer> + </pad> + <arg> + <name>GtkObject::user_data</name> + </arg> + </element> + </children> + </element> +</GST-Pipeline> diff --git a/tests/sched/runtestcases b/tests/sched/runtestcases new file mode 100755 index 000000000..c79ee3e92 --- /dev/null +++ b/tests/sched/runtestcases @@ -0,0 +1,15 @@ +#/bin/bash + +echo "log" > log.txt + +for i in cases/*.xml +do + ./runxml $i + error=$? + if test $error -ne 0; + then + echo $i " error," $error >>log.txt + else + echo $i " ok" >>log.txt + fi +done diff --git a/tests/sched/runxml.c b/tests/sched/runxml.c new file mode 100644 index 000000000..af3883355 --- /dev/null +++ b/tests/sched/runxml.c @@ -0,0 +1,74 @@ +#include <gst/gst.h> + +static void +buffer_handoff (GstElement *src, GstElement *bin) +{ + g_print ("\n\n *** buffer arrived in sink ***\n\n"); + gst_element_set_state(bin, GST_STATE_NULL); +} + +/* eos will be called when the src element has an end of stream */ +void eos(GstSrc *src, gpointer data) +{ + g_print("have eos, quitting\n"); +} + +int main(int argc,char *argv[]) +{ + GstXML *xml; + GList *toplevelelements; + gint i = 1; + + gst_init(&argc,&argv); + + if (argc < 2) { + g_print ("usage: %s <xml file>\n", argv[0]); + exit (-1); + } + + g_print ("\n *** using testfile %s\n", argv[1]); + + xml = gst_xml_new(argv[1], NULL); + + toplevelelements = gst_xml_get_topelements (xml); + + while (toplevelelements) { + GstElement *bin = (GstElement *)toplevelelements->data; + GstElement *src, *sink; + + g_print ("\n ***** testcase %d\n", i++); + + src = gst_bin_get_by_name (GST_BIN (bin), "fakesrc"); + if (src) { + } + else { + g_print ("could not find src element\n"); + exit(-1); + } + + sink = gst_bin_get_by_name (GST_BIN (bin), "fakesink"); + if (sink) { + gtk_signal_connect (GTK_OBJECT(sink), "handoff", + GTK_SIGNAL_FUNC(buffer_handoff), bin); + } + else { + g_print ("could not find sink element\n"); + exit(-1); + } + + gst_element_set_state(bin, GST_STATE_READY); + gst_element_set_state(bin, GST_STATE_PLAYING); + + if (GST_IS_THREAD (bin)) { + sleep (1); + } + else { + gst_bin_iterate(GST_BIN(bin)); + } + + toplevelelements = g_list_next (toplevelelements); + } + + exit(0); +} + diff --git a/tests/sched/testcases b/tests/sched/testcases index 8058fbf85..cdbb45656 100644 --- a/tests/sched/testcases +++ b/tests/sched/testcases @@ -39,6 +39,15 @@ [-bin--------------------------------------------------------------] ! [--------] [--------] [--------] [--------] ! ! !faksesrc! !identity! !identity! !fakesink! ! + ! ! src --- sink src -- sink src -- sink ! ! + ! [--------] [--------] [--------] [--------] ! + [------------------------------------------------------------------] + +4b) + + [-bin--------------------------------------------------------------] + ! [--------] [--------] [--------] [--------] ! + ! !faksesrc! !identity! !identity! !fakesink! ! ! ! src --- sink * src -- sink src -- sink ! ! ! [--------] [--------] [--------] [--------] ! [------------------------------------------------------------------] |