reenable the global cleanup test (#5590)

This commit is contained in:
George Arama 2024-05-01 14:02:09 -07:00 committed by GitHub
parent a168e0ef0f
commit 8db62bf8da
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 10 deletions

View File

@ -29,7 +29,7 @@ namespace Azure { namespace Core { namespace Test {
class CurlConnectionPool_connectionPoolTest_Test;
class CurlConnectionPool_uniquePort_Test;
class CurlConnectionPool_connectionClose_Test;
class SdkWithLibcurl_DISABLED_globalCleanUp_Test;
class SdkWithLibcurl_globalCleanUp_Test;
}}} // namespace Azure::Core::Test
#endif
@ -48,7 +48,7 @@ namespace Azure { namespace Core { namespace Http { namespace _detail {
friend class Azure::Core::Test::CurlConnectionPool_connectionPoolTest_Test;
friend class Azure::Core::Test::CurlConnectionPool_uniquePort_Test;
friend class Azure::Core::Test::CurlConnectionPool_connectionClose_Test;
friend class Azure::Core::Test::SdkWithLibcurl_DISABLED_globalCleanUp_Test;
friend class Azure::Core::Test::SdkWithLibcurl_globalCleanUp_Test;
#endif
public:

View File

@ -22,7 +22,7 @@
// Define the class name that reads from ConnectionPool private members
namespace Azure { namespace Core { namespace Test {
class CurlConnectionPool_connectionPoolTest_Test;
class SdkWithLibcurl_DISABLED_globalCleanUp_Test;
class SdkWithLibcurl_globalCleanUp_Test;
}}} // namespace Azure::Core::Test
#endif
@ -43,7 +43,7 @@ namespace Azure { namespace Core { namespace Http {
#ifdef _azure_TESTING_BUILD
// Give access to private to this tests class
friend class Azure::Core::Test::CurlConnectionPool_connectionPoolTest_Test;
friend class Azure::Core::Test::SdkWithLibcurl_DISABLED_globalCleanUp_Test;
friend class Azure::Core::Test::SdkWithLibcurl_globalCleanUp_Test;
#endif
private:
/**

View File

@ -32,7 +32,7 @@
namespace Azure { namespace Core { namespace Test {
// This test fails intermittently: https://github.com/Azure/azure-sdk-for-cpp/issues/4332
TEST(SdkWithLibcurl, DISABLED_globalCleanUp)
TEST(SdkWithLibcurl, globalCleanUp)
{
Azure::Core::Http::Request req(
Azure::Core::Http::HttpMethod::Get, Azure::Core::Url("https://httpbin.org/get"));
@ -84,11 +84,19 @@ namespace Azure { namespace Core { namespace Test {
Azure::Core::Http::_detail::CurlConnectionPool::g_curlConnectionPool.ConnectionPoolIndex
.size(),
1);
// let the thread cleanup thread hit
std::this_thread::sleep_for(
std::chrono::milliseconds(
Azure::Core::Http::_detail::DefaultCleanerIntervalMilliseconds + 1000)
- ms_double);
std::uint16_t waitRepeats{0};
// wait for the cleanup thread to wake up and run. since this is a timing matter based on when
// the thread is scheduled we should let it run to completion max 2 minutes (12*10s)
while (Azure::Core::Http::_detail::CurlConnectionPool::g_curlConnectionPool
.ConnectionPoolIndex.size()
== 1
&& waitRepeats < 12)
{
// sleep for 10 seconds
std::this_thread::sleep_for(std::chrono::milliseconds(10000));
}
// Check that after the connection is gone and cleaned up, the pool is empty
EXPECT_EQ(
Azure::Core::Http::_detail::CurlConnectionPool::g_curlConnectionPool.ConnectionPoolIndex