From: Tim-Philipp Müller Date: Thu, 11 Jan 2018 19:52:41 +0000 (+0000) Subject: tests: fakesink: make notify stress test work better on Windows X-Git-Tag: 1.16.2~516 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c33e1224a79ad1fbe7f1b11ad0b1c5015989d868;hp=a69dc71f79cea712bdb2806e77b87b59b244e04d;p=platform%2Fupstream%2Fgstreamer.git tests: fakesink: make notify stress test work better on Windows Set up all ten pipelines and preroll them first, and only set them to playing to run wild after they're all set up. If we set them to PLAYING directly and let those threads run wild, then it might take ages (many seconds) for the other pipelines to even get up and running, especially on machines with only one or two cores, and operating systems that suck at scheduling. Now the fakesink test takes 19 secs instead of 71 secs on a single-cpu windows machine. --- diff --git a/tests/check/elements/fakesink.c b/tests/check/elements/fakesink.c index b8e7321..352031a 100644 --- a/tests/check/elements/fakesink.c +++ b/tests/check/elements/fakesink.c @@ -953,12 +953,13 @@ test_notify_race_setup_pipeline (NotifyRacePipeline * p) gst_bin_add (GST_BIN (p->pipe), p->sink); gst_element_link_many (p->src, p->queue, p->sink, NULL); - GST_DEBUG ("Setting pipeline to PLAYING"); - fail_unless_equals_int (gst_element_set_state (p->pipe, GST_STATE_PLAYING), + GST_DEBUG ("Setting pipeline to PAUSED.."); + fail_unless_equals_int (gst_element_set_state (p->pipe, GST_STATE_PAUSED), GST_STATE_CHANGE_ASYNC); - GST_DEBUG ("Getting state"); + GST_DEBUG ("Waiting for pipeline to preroll.."); fail_unless_equals_int (gst_element_get_state (p->pipe, NULL, NULL, -1), GST_STATE_CHANGE_SUCCESS); + GST_DEBUG ("Ready to party!"); } static void @@ -977,10 +978,15 @@ GST_START_TEST (test_notify_race) int i; for (i = 0; i < G_N_ELEMENTS (pipelines); ++i) { - GST_DEBUG ("Starting up pipeline %d", i); + GST_DEBUG ("Setting up pipeline %d", i); test_notify_race_setup_pipeline (&pipelines[i]); } + for (i = 0; i < G_N_ELEMENTS (pipelines); ++i) { + GST_DEBUG ("Starting pipeline %d", i); + gst_element_set_state (pipelines[i].pipe, GST_STATE_PLAYING); + } + g_usleep (2 * G_USEC_PER_SEC); for (i = 0; i < G_N_ELEMENTS (pipelines); ++i) {