]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: adapt unit test to avoid race on OpenBSD 14602/head
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 28 Aug 2024 07:28:48 +0000 (09:28 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Tue, 3 Sep 2024 07:11:55 +0000 (09:11 +0200)
It looks like OpenBSD has different thread scheduler behaviour, and it
can take a while for the error condition to be set.

pdns/dnsdistdist/test-dnsdistasync.cc

index e535ba3cb4d6268f9c3f88e79dff961a3451208b..3b7d09efbaa1f5884e7200c4fdbe3539bbf1d4d4 100644 (file)
@@ -135,7 +135,10 @@ BOOST_AUTO_TEST_CASE(test_TimeoutFailClose)
   // the event should be triggered after 10 ms, but we have seen
   // many spurious failures on our CI, likely because the box is
   // overloaded, so sleep for up to 100 ms to be sure
-  for (size_t counter = 0; !holder->empty() && counter < 10; counter++) {
+  for (size_t counter = 0; counter < 10; counter++) {
+    if (holder->empty() && sender->errorRaised.load()) {
+      break;
+    }
     usleep(10000);
   }
 
@@ -168,7 +171,10 @@ BOOST_AUTO_TEST_CASE(test_AddingExpiredEvent)
   // but we have seen many spurious failures on our CI,
   // likely because the box is overloaded, so sleep for up to
   // 100 ms to be sure
-  for (size_t counter = 0; !holder->empty() && counter < 10; counter++) {
+  for (size_t counter = 0; counter < 10; counter++) {
+    if (holder->empty() && sender->errorRaised.load()) {
+      break;
+    }
     usleep(10000);
   }