From 907493c56d093f7d6da8a73d426e9746ce8b343c Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Wed, 28 Aug 2024 09:28:48 +0200 Subject: [PATCH] dnsdist: adapt unit test to avoid race on OpenBSD 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 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pdns/dnsdistdist/test-dnsdistasync.cc b/pdns/dnsdistdist/test-dnsdistasync.cc index e535ba3cb4..3b7d09efba 100644 --- a/pdns/dnsdistdist/test-dnsdistasync.cc +++ b/pdns/dnsdistdist/test-dnsdistasync.cc @@ -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); } -- 2.47.2