webrtcbin test: Wait for set-local-desc & set-remote-desc to continue
authorOlivier Crête <olivier.crete@collabora.com>
Mon, 12 Apr 2021 19:35:41 +0000 (15:35 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Mon, 12 Apr 2021 22:37:27 +0000 (18:37 -0400)
To avoid racing betwen the SDPs being set and the next step of the
test, let's wait for setting the SDP both locally and remotely to succeed.
of the test

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>

tests/check/elements/webrtcbin.c

index d3c8dc7..9cdeb43 100644 (file)
@@ -159,12 +159,13 @@ _on_answer_set (GstPromise * promise, gpointer user_data)
   GstElement *answerer = TEST_GET_ANSWERER (t);
 
   g_mutex_lock (&t->lock);
-  if (++t->answer_set_count >= 2 && t->on_answer_set) {
-    t->on_answer_set (t, answerer, promise, t->answer_set_data);
+  if (++t->answer_set_count >= 2) {
+    if (t->on_answer_set)
+      t->on_answer_set (t, answerer, promise, t->answer_set_data);
+    if (t->state == STATE_ANSWER_CREATED)
+      t->state = STATE_ANSWER_SET;
+    g_cond_broadcast (&t->cond);
   }
-  if (t->state == STATE_ANSWER_CREATED)
-    t->state = STATE_ANSWER_SET;
-  g_cond_broadcast (&t->cond);
   gst_promise_unref (promise);
   g_mutex_unlock (&t->lock);
 }
@@ -232,12 +233,13 @@ _on_offer_set (GstPromise * promise, gpointer user_data)
   GstElement *offeror = TEST_GET_OFFEROR (t);
 
   g_mutex_lock (&t->lock);
-  if (++t->offer_set_count >= 2 && t->on_offer_set) {
-    t->on_offer_set (t, offeror, promise, t->offer_set_data);
+  if (++t->offer_set_count >= 2) {
+    if (t->on_offer_set)
+      t->on_offer_set (t, offeror, promise, t->offer_set_data);
+    if (t->state == STATE_OFFER_CREATED)
+      t->state = STATE_OFFER_SET;
+    g_cond_broadcast (&t->cond);
   }
-  if (t->state == STATE_OFFER_CREATED)
-    t->state = STATE_OFFER_SET;
-  g_cond_broadcast (&t->cond);
   gst_promise_unref (promise);
   g_mutex_unlock (&t->lock);
 }