tests/check/elements/audioconvert.c: Add testcase for caps-size-explosion
authorStefan Kost <ensonic@users.sourceforge.net>
Mon, 21 Aug 2006 08:54:06 +0000 (08:54 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Mon, 21 Aug 2006 08:54:06 +0000 (08:54 +0000)
Original commit message from CVS:
* tests/check/elements/audioconvert.c: (GST_START_TEST),
(audioconvert_suite):
Add testcase for caps-size-explosion

ChangeLog
tests/check/elements/audioconvert.c

index e03a72c..0b1dc4c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,14 @@
+2006-08-21  Stefan Kost  <ensonic@users.sf.net>
+
+       * tests/check/elements/audioconvert.c: (GST_START_TEST),
+       (audioconvert_suite):
+         Add testcase for caps-size-explosion
+
 2006-08-20  Stefan Kost  <ensonic@users.sf.net>
 
        * gst/audioconvert/gstaudioconvert.c:
        (gst_audio_convert_get_unit_size), (set_structure_widths):
-        Lower debug, use g_assert in _get_unit_size
+          Lower debug, use g_assert in _get_unit_size
 
        * gst/audioresample/gstaudioresample.c:
        (audioresample_get_unit_size):
index a215a4c..81a902e 100644 (file)
@@ -517,6 +517,46 @@ GST_START_TEST (test_channel_remapping)
 
 GST_END_TEST;
 
+GST_START_TEST (test_caps_negotiation)
+{
+  GstElement *src, *ac1, *ac2, *ac3, *sink;
+  GstElement *pipeline;
+  GstPad *ac3_src;
+  GstCaps *caps1, *caps2;
+
+  pipeline = gst_pipeline_new ("test");
+
+  /* create elements */
+  src = gst_element_factory_make ("audiotestsrc", "src");
+  ac1 = gst_element_factory_make ("audioconvert", "ac1");
+  ac2 = gst_element_factory_make ("audioconvert", "ac2");
+  ac3 = gst_element_factory_make ("audioconvert", "ac3");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  ac3_src = gst_element_get_pad (ac3, "src");
+
+  /* test with 2 audioconvert elements */
+  gst_bin_add_many (GST_BIN (pipeline), src, ac1, ac3, sink, NULL);
+  gst_element_link_many (src, ac1, ac3, sink, NULL);
+  gst_element_set_state (pipeline, GST_STATE_PAUSED);
+  caps1 = gst_pad_get_caps (ac3_src);
+  GST_DEBUG ("Caps size 1 : %d", gst_caps_get_size (caps1));
+  gst_element_set_state (pipeline, GST_STATE_READY);
+
+  /* test with 3 audioconvert elements */
+  gst_element_unlink (ac1, ac3);
+  gst_bin_add (GST_BIN (pipeline), ac2);
+  gst_element_link_many (ac1, ac2, ac3, NULL);
+  gst_element_set_state (pipeline, GST_STATE_PAUSED);
+  caps2 = gst_pad_get_caps (ac3_src);
+  GST_DEBUG ("Caps size 2 : %d", gst_caps_get_size (caps2));
+  fail_unless (gst_caps_get_size (caps1) == gst_caps_get_size (caps2));
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+}
+
+GST_END_TEST;
+
+
 Suite *
 audioconvert_suite (void)
 {
@@ -529,6 +569,7 @@ audioconvert_suite (void)
   tcase_add_test (tc_chain, test_float_conversion);
   tcase_add_test (tc_chain, test_multichannel_conversion);
   tcase_add_test (tc_chain, test_channel_remapping);
+  tcase_add_test (tc_chain, test_caps_negotiation);
 
   return s;
 }