mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
tests: unit test fixes
Removed port allocation test from the media suite. The port allocation failure is now in the stream suite. rtspserver: Make sure that the media is suspended after the DESCRIBE request before reconfiguring the UDP sinks. rtspclientsink: In the RECORD case we have to set async property to false for the appsink element in the test in order to make sure that the media pipeline doesn't hang in start_preroll(). https://bugzilla.gnome.org/show_bug.cgi?id=757488
This commit is contained in:
parent
f62a9a7eb9
commit
a6367c5971
4 changed files with 72 additions and 42 deletions
|
@ -298,45 +298,6 @@ GST_START_TEST (test_media_dyn_prepare)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_media_prepare_port_alloc_fail)
|
|
||||||
{
|
|
||||||
GstRTSPMediaFactory *factory;
|
|
||||||
GstRTSPMedia *media;
|
|
||||||
GstRTSPUrl *url;
|
|
||||||
GstRTSPThreadPool *pool;
|
|
||||||
GstRTSPThread *thread;
|
|
||||||
GstRTSPAddressPool *addrpool;
|
|
||||||
|
|
||||||
pool = gst_rtsp_thread_pool_new ();
|
|
||||||
|
|
||||||
factory = gst_rtsp_media_factory_new ();
|
|
||||||
fail_unless (gst_rtsp_url_parse ("rtsp://localhost:8554/test",
|
|
||||||
&url) == GST_RTSP_OK);
|
|
||||||
|
|
||||||
gst_rtsp_media_factory_set_launch (factory,
|
|
||||||
"( fakesrc is-live=true ! text/plain ! rtpgstpay name=pay0 )");
|
|
||||||
|
|
||||||
media = gst_rtsp_media_factory_construct (factory, url);
|
|
||||||
fail_unless (GST_IS_RTSP_MEDIA (media));
|
|
||||||
|
|
||||||
addrpool = gst_rtsp_address_pool_new ();
|
|
||||||
fail_unless (gst_rtsp_address_pool_add_range (addrpool, "192.168.1.1",
|
|
||||||
"192.168.1.1", 6000, 6001, 0));
|
|
||||||
gst_rtsp_media_set_address_pool (media, addrpool);
|
|
||||||
|
|
||||||
thread = gst_rtsp_thread_pool_get_thread (pool,
|
|
||||||
GST_RTSP_THREAD_TYPE_MEDIA, NULL);
|
|
||||||
fail_if (gst_rtsp_media_prepare (media, thread));
|
|
||||||
|
|
||||||
g_object_unref (media);
|
|
||||||
g_object_unref (addrpool);
|
|
||||||
gst_rtsp_url_free (url);
|
|
||||||
g_object_unref (factory);
|
|
||||||
g_object_unref (pool);
|
|
||||||
}
|
|
||||||
|
|
||||||
GST_END_TEST;
|
|
||||||
|
|
||||||
GST_START_TEST (test_media_take_pipeline)
|
GST_START_TEST (test_media_take_pipeline)
|
||||||
{
|
{
|
||||||
GstRTSPMediaFactory *factory;
|
GstRTSPMediaFactory *factory;
|
||||||
|
@ -497,7 +458,6 @@ rtspmedia_suite (void)
|
||||||
tcase_add_test (tc, test_media);
|
tcase_add_test (tc, test_media);
|
||||||
tcase_add_test (tc, test_media_prepare);
|
tcase_add_test (tc, test_media_prepare);
|
||||||
tcase_add_test (tc, test_media_dyn_prepare);
|
tcase_add_test (tc, test_media_dyn_prepare);
|
||||||
tcase_add_test (tc, test_media_prepare_port_alloc_fail);
|
|
||||||
tcase_add_test (tc, test_media_take_pipeline);
|
tcase_add_test (tc, test_media_take_pipeline);
|
||||||
tcase_add_test (tc, test_media_reset);
|
tcase_add_test (tc, test_media_reset);
|
||||||
tcase_add_test (tc, test_media_multidyn_prepare);
|
tcase_add_test (tc, test_media_multidyn_prepare);
|
||||||
|
|
|
@ -155,7 +155,7 @@ GST_START_TEST (test_record)
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
mfactory =
|
mfactory =
|
||||||
start_record_server ("( rtppcmadepay name=depay0 ! appsink name=sink )");
|
start_record_server ("( rtppcmadepay name=depay0 ! appsink name=sink async=false )");
|
||||||
|
|
||||||
g_signal_connect (mfactory, "media-constructed",
|
g_signal_connect (mfactory, "media-constructed",
|
||||||
G_CALLBACK (media_constructed_cb), &server_sink);
|
G_CALLBACK (media_constructed_cb), &server_sink);
|
||||||
|
|
|
@ -169,6 +169,8 @@ start_server (void)
|
||||||
pool = gst_rtsp_address_pool_new ();
|
pool = gst_rtsp_address_pool_new ();
|
||||||
gst_rtsp_address_pool_add_range (pool,
|
gst_rtsp_address_pool_add_range (pool,
|
||||||
"224.3.0.0", "224.3.0.10", 5000, 5010, 16);
|
"224.3.0.0", "224.3.0.10", 5000, 5010, 16);
|
||||||
|
gst_rtsp_address_pool_add_range (pool, GST_RTSP_ADDRESS_POOL_ANY_IPV4,
|
||||||
|
GST_RTSP_ADDRESS_POOL_ANY_IPV4, 6000, 6010, 0);
|
||||||
gst_rtsp_media_factory_set_address_pool (factory, pool);
|
gst_rtsp_media_factory_set_address_pool (factory, pool);
|
||||||
gst_object_unref (pool);
|
gst_object_unref (pool);
|
||||||
|
|
||||||
|
@ -1511,6 +1513,9 @@ GST_START_TEST (test_play_specific_server_port)
|
||||||
mounts = gst_rtsp_server_get_mount_points (server);
|
mounts = gst_rtsp_server_get_mount_points (server);
|
||||||
|
|
||||||
factory = gst_rtsp_media_factory_new ();
|
factory = gst_rtsp_media_factory_new ();
|
||||||
|
/* we have to suspend media after SDP in order to make sure that
|
||||||
|
* we can reconfigure UDP sink with new UDP ports */
|
||||||
|
gst_rtsp_media_factory_set_suspend_mode (factory, GST_RTSP_SUSPEND_MODE_RESET);
|
||||||
pool = gst_rtsp_address_pool_new ();
|
pool = gst_rtsp_address_pool_new ();
|
||||||
gst_rtsp_address_pool_add_range (pool, GST_RTSP_ADDRESS_POOL_ANY_IPV4,
|
gst_rtsp_address_pool_add_range (pool, GST_RTSP_ADDRESS_POOL_ANY_IPV4,
|
||||||
GST_RTSP_ADDRESS_POOL_ANY_IPV4, 7770, 7780, 0);
|
GST_RTSP_ADDRESS_POOL_ANY_IPV4, 7770, 7780, 0);
|
||||||
|
@ -1744,7 +1749,7 @@ GST_START_TEST (test_record_tcp)
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
mfactory =
|
mfactory =
|
||||||
start_record_server ("( rtppcmadepay name=depay0 ! appsink name=sink )");
|
start_record_server ("( rtppcmadepay name=depay0 ! appsink name=sink async=false )");
|
||||||
|
|
||||||
g_signal_connect (mfactory, "media-constructed",
|
g_signal_connect (mfactory, "media-constructed",
|
||||||
G_CALLBACK (media_constructed_cb), &server_sink);
|
G_CALLBACK (media_constructed_cb), &server_sink);
|
||||||
|
|
|
@ -29,9 +29,11 @@ GST_START_TEST (test_get_sockets)
|
||||||
GstRTSPStream *stream;
|
GstRTSPStream *stream;
|
||||||
GstBin *bin;
|
GstBin *bin;
|
||||||
GstElement *rtpbin;
|
GstElement *rtpbin;
|
||||||
|
GstRTSPAddressPool *pool;
|
||||||
GSocket *socket;
|
GSocket *socket;
|
||||||
gboolean have_ipv4;
|
gboolean have_ipv4;
|
||||||
gboolean have_ipv6;
|
gboolean have_ipv6;
|
||||||
|
GstRTSPTransport *tr;
|
||||||
|
|
||||||
srcpad = gst_pad_new ("testsrcpad", GST_PAD_SRC);
|
srcpad = gst_pad_new ("testsrcpad", GST_PAD_SRC);
|
||||||
fail_unless (srcpad != NULL);
|
fail_unless (srcpad != NULL);
|
||||||
|
@ -48,8 +50,21 @@ GST_START_TEST (test_get_sockets)
|
||||||
fail_unless (bin != NULL);
|
fail_unless (bin != NULL);
|
||||||
fail_unless (gst_bin_add (bin, rtpbin));
|
fail_unless (gst_bin_add (bin, rtpbin));
|
||||||
|
|
||||||
|
/* configure address pool for IPv4 and IPv6 unicast addresses */
|
||||||
|
pool = gst_rtsp_address_pool_new ();
|
||||||
|
fail_unless (gst_rtsp_address_pool_add_range (pool, GST_RTSP_ADDRESS_POOL_ANY_IPV4,
|
||||||
|
GST_RTSP_ADDRESS_POOL_ANY_IPV4, 50000, 60000, 0));
|
||||||
|
fail_unless (gst_rtsp_address_pool_add_range (pool, GST_RTSP_ADDRESS_POOL_ANY_IPV6,
|
||||||
|
GST_RTSP_ADDRESS_POOL_ANY_IPV6, 50000, 60000, 0));
|
||||||
|
gst_rtsp_stream_set_address_pool (stream, pool);
|
||||||
|
|
||||||
fail_unless (gst_rtsp_stream_join_bin (stream, bin, rtpbin, GST_STATE_NULL));
|
fail_unless (gst_rtsp_stream_join_bin (stream, bin, rtpbin, GST_STATE_NULL));
|
||||||
|
|
||||||
|
gst_rtsp_transport_new (&tr);
|
||||||
|
tr->lower_transport = GST_RTSP_LOWER_TRANS_UDP;
|
||||||
|
fail_unless (gst_rtsp_stream_allocate_udp_sockets (stream, G_SOCKET_FAMILY_IPV4,
|
||||||
|
tr, FALSE));
|
||||||
|
|
||||||
socket = gst_rtsp_stream_get_rtp_socket (stream, G_SOCKET_FAMILY_IPV4);
|
socket = gst_rtsp_stream_get_rtp_socket (stream, G_SOCKET_FAMILY_IPV4);
|
||||||
have_ipv4 = (socket != NULL);
|
have_ipv4 = (socket != NULL);
|
||||||
if (have_ipv4) {
|
if (have_ipv4) {
|
||||||
|
@ -85,6 +100,9 @@ GST_START_TEST (test_get_sockets)
|
||||||
/* check that at least one family is available */
|
/* check that at least one family is available */
|
||||||
fail_unless (have_ipv4 || have_ipv6);
|
fail_unless (have_ipv4 || have_ipv6);
|
||||||
|
|
||||||
|
gst_rtsp_transport_free (tr);
|
||||||
|
g_object_unref (pool);
|
||||||
|
|
||||||
fail_unless (gst_rtsp_stream_leave_bin (stream, bin, rtpbin));
|
fail_unless (gst_rtsp_stream_leave_bin (stream, bin, rtpbin));
|
||||||
|
|
||||||
gst_object_unref (bin);
|
gst_object_unref (bin);
|
||||||
|
@ -93,6 +111,52 @@ GST_START_TEST (test_get_sockets)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_allocate_udp_ports_fail)
|
||||||
|
{
|
||||||
|
GstPad *srcpad;
|
||||||
|
GstElement *pay;
|
||||||
|
GstRTSPStream *stream;
|
||||||
|
GstBin *bin;
|
||||||
|
GstElement *rtpbin;
|
||||||
|
GstRTSPAddressPool *pool;
|
||||||
|
GstRTSPTransport *tr;
|
||||||
|
|
||||||
|
srcpad = gst_pad_new ("testsrcpad", GST_PAD_SRC);
|
||||||
|
fail_unless (srcpad != NULL);
|
||||||
|
gst_pad_set_active (srcpad, TRUE);
|
||||||
|
pay = gst_element_factory_make ("rtpgstpay", "testpayloader");
|
||||||
|
fail_unless (pay != NULL);
|
||||||
|
stream = gst_rtsp_stream_new (0, pay, srcpad);
|
||||||
|
fail_unless (stream != NULL);
|
||||||
|
gst_object_unref (pay);
|
||||||
|
gst_object_unref (srcpad);
|
||||||
|
rtpbin = gst_element_factory_make ("rtpbin", "testrtpbin");
|
||||||
|
fail_unless (rtpbin != NULL);
|
||||||
|
bin = GST_BIN (gst_bin_new ("testbin"));
|
||||||
|
fail_unless (bin != NULL);
|
||||||
|
fail_unless (gst_bin_add (bin, rtpbin));
|
||||||
|
|
||||||
|
pool = gst_rtsp_address_pool_new ();
|
||||||
|
fail_unless (gst_rtsp_address_pool_add_range (pool, "192.168.1.1",
|
||||||
|
"192.168.1.1", 6000, 6001, 0));
|
||||||
|
gst_rtsp_stream_set_address_pool (stream, pool);
|
||||||
|
|
||||||
|
fail_unless (gst_rtsp_stream_join_bin (stream, bin, rtpbin, GST_STATE_NULL));
|
||||||
|
|
||||||
|
gst_rtsp_transport_new (&tr);
|
||||||
|
tr->lower_transport = GST_RTSP_LOWER_TRANS_UDP;
|
||||||
|
fail_if (gst_rtsp_stream_allocate_udp_sockets (stream, G_SOCKET_FAMILY_IPV4,
|
||||||
|
tr, FALSE));
|
||||||
|
|
||||||
|
gst_rtsp_transport_free (tr);
|
||||||
|
g_object_unref (pool);
|
||||||
|
fail_unless (gst_rtsp_stream_leave_bin (stream, bin, rtpbin));
|
||||||
|
gst_object_unref (bin);
|
||||||
|
gst_object_unref (stream);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_get_multicast_address)
|
GST_START_TEST (test_get_multicast_address)
|
||||||
{
|
{
|
||||||
GstPad *srcpad;
|
GstPad *srcpad;
|
||||||
|
@ -164,6 +228,7 @@ rtspstream_suite (void)
|
||||||
|
|
||||||
suite_add_tcase (s, tc);
|
suite_add_tcase (s, tc);
|
||||||
tcase_add_test (tc, test_get_sockets);
|
tcase_add_test (tc, test_get_sockets);
|
||||||
|
tcase_add_test (tc, test_allocate_udp_ports_fail);
|
||||||
tcase_add_test (tc, test_get_multicast_address);
|
tcase_add_test (tc, test_get_multicast_address);
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
|
|
Loading…
Reference in a new issue