From c33e1224a79ad1fbe7f1b11ad0b1c5015989d868 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 11 Jan 2018 19:52:41 +0000 Subject: [PATCH 1/1] 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. --- tests/check/elements/fakesink.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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) { -- 2.7.4