File size: 1,682 Bytes
8ec915d
 
 
 
 
1d6826f
8ec915d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1d6826f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from __future__ import annotations

from pathlib import Path

import inference
import pandas as pd
from server import replay_assets


def test_resolve_data_path_finds_lookup_table() -> None:
    path = replay_assets.resolve_data_path("lookup_tables/latency_table.parquet")
    assert path.exists()
    assert path.name in {"latency_table.parquet", "serving_profile_table.parquet"}


def test_main_returns_zero_when_env_init_fails(monkeypatch, capsys) -> None:
    class BrokenEnv:
        def __init__(self, *args, **kwargs) -> None:
            raise RuntimeError("simulator bootstrap failed")

    monkeypatch.setattr(inference, "LLMServeEnvironment", BrokenEnv)
    monkeypatch.setattr(inference, "_create_client", lambda: None)

    rc = inference.main()
    output = capsys.readouterr().out

    assert rc == 0
    assert output.count("[START]") == len(inference.TASKS)
    assert output.count("[END]") == len(inference.TASKS)
    assert "simulator bootstrap failed" in output


def test_fallback_assets_work_when_parquet_loading_breaks(monkeypatch) -> None:
    def _boom(*args, **kwargs):
        raise RuntimeError("parquet unavailable")

    monkeypatch.setattr(pd, "read_parquet", _boom)
    replay_assets.load_lookup_table.cache_clear()
    replay_assets.load_trace_table.cache_clear()
    replay_assets.load_prompt_samples.cache_clear()

    lookup = replay_assets.load_lookup_table("lookup_tables/latency_table.parquet")
    trace = replay_assets.load_trace_table("traces/static_workload_trace.parquet")
    prompts = replay_assets.load_prompt_samples("traces/sharegpt_prompt_lengths.parquet")

    assert not lookup.empty
    assert not trace.empty
    assert prompts