From: "Bernhard Übelacker" Subject: [PATCH 1/3] inetmib1/tests: Limit the time spent in the loops. Message-Id: <20211216102909.39696-1-bernhardu@mailbox.org> Date: Thu, 16 Dec 2021 11:29:07 +0100 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52224 Signed-off-by: Bernhard Übelacker --- dlls/inetmib1/tests/main.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/dlls/inetmib1/tests/main.c b/dlls/inetmib1/tests/main.c index 32785fcc3fe..a4a1dbe7cdb 100644 --- a/dlls/inetmib1/tests/main.c +++ b/dlls/inetmib1/tests/main.c @@ -95,6 +95,8 @@ static void testQuery(void) UINT mib2UdpTable[] = { 1,3,6,1,2,1,7,5,1,1 }; SnmpVarBind vars[3], vars2[3], vars3[3]; UINT entry; + ULONGLONG start_time; + int timeout_reached; if (!pSnmpExtensionQuery) { @@ -189,6 +191,7 @@ if (0) /* crashes on native */ moreData = TRUE; noChange = FALSE; entry = 0; + start_time = GetTickCount64(); do { SetLastError(0xdeadbeef); error = 0xdeadbeef; @@ -259,7 +262,9 @@ if (0) /* crashes on native */ } else if (noChange) skip("no change in OID, no MIB2 IF table implementation\n"); - } while (moreData && !noChange); + timeout_reached = GetTickCount64() > start_time + 5000; + } while (moreData && !noChange && !timeout_reached); + ok(!timeout_reached, "loop finished not in time.\n"); SnmpUtilVarBindFree(&vars2[0]); SnmpUtilVarBindFree(&vars2[1]); SnmpUtilVarBindFree(&vars2[2]); @@ -296,6 +301,7 @@ if (0) /* crashes on native */ list.len = 1; list.list = vars2; moreData = TRUE; + start_time = GetTickCount64(); do { ret = pSnmpExtensionQuery(SNMP_PDU_GETNEXT, &list, &error, &index); ok(ret, "SnmpExtensionQuery failed: %d, %d\n", error, index); @@ -350,7 +356,9 @@ if (0) /* crashes on native */ } else if (noChange) skip("no change in OID, no MIB2 IP address table implementation\n"); - } while (moreData && !noChange); + timeout_reached = GetTickCount64() > start_time + 5000; + } while (moreData && !noChange && !timeout_reached); + ok(!timeout_reached, "loop finished not in time.\n"); SnmpUtilVarBindFree(&vars2[0]); /* Check the type and OIDs of the IP route table */ @@ -362,6 +370,7 @@ if (0) /* crashes on native */ list.list = vars2; moreData = TRUE; noChange = FALSE; + start_time = GetTickCount64(); do { ret = pSnmpExtensionQuery(SNMP_PDU_GETNEXT, &list, &error, &index); ok(ret, "SnmpExtensionQuery failed: %d, %d\n", error, index); @@ -416,7 +425,9 @@ if (0) /* crashes on native */ } else if (noChange) skip("no change in OID, no MIB2 IP route table implementation\n"); - } while (moreData && !noChange); + timeout_reached = GetTickCount64() > start_time + 5000; + } while (moreData && !noChange && !timeout_reached); + ok(!timeout_reached, "loop finished not in time.\n"); SnmpUtilVarBindFree(&vars2[0]); /* Check the type and OIDs of the UDP table */ @@ -428,6 +439,7 @@ if (0) /* crashes on native */ list.list = vars2; moreData = TRUE; noChange = FALSE; + start_time = GetTickCount64(); do { ret = pSnmpExtensionQuery(SNMP_PDU_GETNEXT, &list, &error, &index); ok(ret, "SnmpExtensionQuery failed: %d, %d\n", error, index); @@ -488,7 +500,9 @@ if (0) /* crashes on native */ } else if (noChange) skip("no change in OID, no MIB2 UDP table implementation\n"); - } while (moreData && !noChange); + timeout_reached = GetTickCount64() > start_time + 5000; + } while (moreData && !noChange && !timeout_reached); + ok(!timeout_reached, "loop finished not in time.\n"); SnmpUtilVarBindFree(&vars2[0]); } -- 2.34.1