summaryrefslogtreecommitdiff
path: root/tests/sched
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2000-12-22 16:14:33 +0000
committerWim Taymans <wim.taymans@gmail.com>2000-12-22 16:14:33 +0000
commit9987a75b1ba2e14a80d4ca3c99402f4b3ecbcc2a (patch)
treea1a8d79b5cb33079a42fb18bae31b0f5f0fbae9c /tests/sched
parenta914e7b210ef6e3db38772f3ef123ef174a6d387 (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/Makefile12
-rw-r--r--tests/sched/cases/(fs-fs).xml79
-rw-r--r--tests/sched/cases/(fs-i-fs).xml235
-rw-r--r--tests/sched/cases/(fs-i-i-fs).xml627
-rw-r--r--tests/sched/cases/(fs-i-q[i-fs]).xml107
-rwxr-xr-xtests/sched/runtestcases15
-rw-r--r--tests/sched/runxml.c74
-rw-r--r--tests/sched/testcases9
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 ! !
! [--------] [--------] [--------] [--------] !
[------------------------------------------------------------------]