From 74579cc013166f66429e96b356b41dc796ac1f5f Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Mon, 21 Aug 2006 11:42:12 +0000 Subject: [PATCH] tests/check/elements/audioconvert.c: Fix leaks. Wait for state transitions that might happen ASYNC, as well as some t... Original commit message from CVS: * tests/check/elements/audioconvert.c: (GST_START_TEST): Fix leaks. Wait for state transitions that might happen ASYNC, as well as some that won't. --- ChangeLog | 6 ++++++ tests/check/elements/audioconvert.c | 35 +++++++++++++++++++++++++++++++---- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7b03b37..ca7e81c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-08-21 Jan Schmidt + + * tests/check/elements/audioconvert.c: (GST_START_TEST): + Fix leaks. Wait for state transitions that might happen ASYNC, as well + as some that won't. + 2006-08-21 Wim Taymans * docs/libs/Makefile.am: diff --git a/tests/check/elements/audioconvert.c b/tests/check/elements/audioconvert.c index 81a902e..1e8d680 100644 --- a/tests/check/elements/audioconvert.c +++ b/tests/check/elements/audioconvert.c @@ -537,21 +537,48 @@ GST_START_TEST (test_caps_negotiation) /* 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); + + /* Set to PAUSED and wait for PREROLL */ + fail_if (gst_element_set_state (pipeline, GST_STATE_PAUSED) == + GST_STATE_CHANGE_FAILURE, "Failed to set test pipeline to PAUSED"); + fail_if (gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE) != + GST_STATE_CHANGE_SUCCESS, "Failed to set test pipeline to PAUSED"); + caps1 = gst_pad_get_caps (ac3_src); + fail_if (caps1 == NULL, "gst_pad_get_caps returned NULL"); GST_DEBUG ("Caps size 1 : %d", gst_caps_get_size (caps1)); - gst_element_set_state (pipeline, GST_STATE_READY); + + fail_if (gst_element_set_state (pipeline, GST_STATE_READY) == + GST_STATE_CHANGE_FAILURE, "Failed to set test pipeline back to READY"); + fail_if (gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE) != + GST_STATE_CHANGE_SUCCESS, "Failed to set test pipeline back to 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); + + fail_if (gst_element_set_state (pipeline, GST_STATE_PAUSED) == + GST_STATE_CHANGE_FAILURE, "Failed to set test pipeline back to PAUSED"); + fail_if (gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE) != + GST_STATE_CHANGE_SUCCESS, "Failed to set test pipeline back to PAUSED"); + caps2 = gst_pad_get_caps (ac3_src); + + fail_if (caps2 == NULL, "gst_pad_get_caps returned NULL"); 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_caps_unref (caps1); + gst_caps_unref (caps2); + + fail_if (gst_element_set_state (pipeline, GST_STATE_NULL) == + GST_STATE_CHANGE_FAILURE, "Failed to set test pipeline back to NULL"); + fail_if (gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE) != + GST_STATE_CHANGE_SUCCESS, "Failed to set test pipeline back to NULL"); + + gst_object_unref (ac3_src); + gst_object_unref (pipeline); } GST_END_TEST; -- 2.7.4