forked from Karylab-cklius/vllm
[CI] Wait for SSL cert refresher events in the test (#45489)
Signed-off-by: Andreas Karatzas <akaratza@amd.com>
This commit is contained in:
@@ -41,6 +41,28 @@ def touch_file(path: str) -> None:
|
||||
Path(path).touch()
|
||||
|
||||
|
||||
async def wait_for_counts(
|
||||
ssl_context: MockSSLContext,
|
||||
*,
|
||||
cert_chain_count: int,
|
||||
ca_count: int,
|
||||
timeout: float = 5.0,
|
||||
) -> None:
|
||||
deadline = asyncio.get_running_loop().time() + timeout
|
||||
while True:
|
||||
if (
|
||||
ssl_context.load_cert_chain_count >= cert_chain_count
|
||||
and ssl_context.load_ca_count >= ca_count
|
||||
):
|
||||
return
|
||||
|
||||
if asyncio.get_running_loop().time() >= deadline:
|
||||
assert ssl_context.load_cert_chain_count >= cert_chain_count
|
||||
assert ssl_context.load_ca_count >= ca_count
|
||||
|
||||
await asyncio.sleep(0.05)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_ssl_refresher():
|
||||
ssl_context = MockSSLContext()
|
||||
@@ -53,20 +75,28 @@ async def test_ssl_refresher():
|
||||
assert ssl_context.load_ca_count == 0
|
||||
|
||||
touch_file(key_path)
|
||||
await asyncio.sleep(1)
|
||||
assert ssl_context.load_cert_chain_count == 1
|
||||
await wait_for_counts(
|
||||
ssl_context,
|
||||
cert_chain_count=1,
|
||||
ca_count=0,
|
||||
)
|
||||
assert ssl_context.load_ca_count == 0
|
||||
|
||||
touch_file(cert_path)
|
||||
touch_file(ca_path)
|
||||
await asyncio.sleep(1)
|
||||
assert ssl_context.load_cert_chain_count == 2
|
||||
assert ssl_context.load_ca_count == 1
|
||||
await wait_for_counts(
|
||||
ssl_context,
|
||||
cert_chain_count=2,
|
||||
ca_count=1,
|
||||
)
|
||||
|
||||
ssl_refresher.stop()
|
||||
await asyncio.sleep(0)
|
||||
cert_chain_count = ssl_context.load_cert_chain_count
|
||||
ca_count = ssl_context.load_ca_count
|
||||
|
||||
touch_file(cert_path)
|
||||
touch_file(ca_path)
|
||||
await asyncio.sleep(1)
|
||||
assert ssl_context.load_cert_chain_count == 2
|
||||
assert ssl_context.load_ca_count == 1
|
||||
assert ssl_context.load_cert_chain_count == cert_chain_count
|
||||
assert ssl_context.load_ca_count == ca_count
|
||||
|
||||
Reference in New Issue
Block a user