Skip to content

Commit 682ba5d

Browse files
update test to not reference metrics by index and count assertions
Signed-off-by: BenjaminBraunDev <benjaminbraun@google.com>
1 parent 14382b3 commit 682ba5d

1 file changed

Lines changed: 22 additions & 8 deletions

File tree

tests/unittest/llmapi/test_llm_pytorch.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1547,18 +1547,22 @@ def test_llm_context_only_timed_out(transceiver_runtime):
15471547
disaggregated_params=disaggregated_params):
15481548
print(output)
15491549

1550+
# Wait until the context-only request has allocated KV cache blocks
15501551
max_retries = 10
1552+
all_results = []
15511553
for _ in range(max_retries):
15521554
results = llm.get_stats(2)
1553-
if len(results) == 1:
1555+
all_results.extend(results)
1556+
if all_results and all_results[-1]["kvCacheStats"]["usedNumBlocks"] > 0:
15541557
break
15551558
time.sleep(1)
15561559
else:
15571560
pytest.fail(
1558-
f"Failed to get stats with len==1 after {max_retries} retries")
1561+
f"Context-only KV cache blocks not allocated after {max_retries} retries"
1562+
)
1563+
results = all_results
15591564

1560-
assert len(results) == 1
1561-
context_only_used_num_blocks = results[0]["kvCacheStats"]["usedNumBlocks"]
1565+
context_only_used_num_blocks = results[-1]["kvCacheStats"]["usedNumBlocks"]
15621566
print(f"Context only used num blocks: {context_only_used_num_blocks}")
15631567

15641568
# Sleep 5 seconds to allow context only request to time out
@@ -1568,11 +1572,21 @@ def test_llm_context_only_timed_out(transceiver_runtime):
15681572
for output in llm.generate(prompts0, sampling_params=sampling_params):
15691573
print(output)
15701574

1571-
# Get number of allocated blocks
1572-
results = llm.get_stats(2)
1573-
assert len(results) == 1
1574-
final_used_num_blocks = results[0]["kvCacheStats"]["usedNumBlocks"]
1575+
# Wait until KV cache blocks are released (usedNumBlocks == 0)
1576+
max_retries = 10
1577+
all_results = []
1578+
for _ in range(max_retries):
1579+
results = llm.get_stats(2)
1580+
all_results.extend(results)
1581+
if all_results and all_results[-1]["kvCacheStats"]["usedNumBlocks"] == 0:
1582+
break
1583+
time.sleep(1)
1584+
else:
1585+
pytest.fail(
1586+
f"KV cache blocks not released after {max_retries} retries")
1587+
results = all_results
15751588

1589+
final_used_num_blocks = results[-1]["kvCacheStats"]["usedNumBlocks"]
15761590
assert final_used_num_blocks == 0
15771591

15781592

0 commit comments

Comments
 (0)