45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
|
|
def pytest_addoption(parser):
|
|
parser.addoption(
|
|
"--config-list-file",
|
|
action="store",
|
|
help="Path to the file listing model config YAMLs (one per line)",
|
|
)
|
|
parser.addoption(
|
|
"--tp-size",
|
|
action="store",
|
|
default="1",
|
|
help="Tensor parallel size to use for evaluation",
|
|
)
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def config_list_file(pytestconfig, config_dir):
|
|
rel_path = pytestconfig.getoption("--config-list-file")
|
|
return config_dir / rel_path
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def tp_size(pytestconfig):
|
|
return pytestconfig.getoption("--tp-size")
|
|
|
|
|
|
def pytest_generate_tests(metafunc):
|
|
if "config_filename" in metafunc.fixturenames:
|
|
rel_path = metafunc.config.getoption("--config-list-file")
|
|
config_list_file = Path(rel_path).resolve()
|
|
config_dir = config_list_file.parent
|
|
with open(config_list_file, encoding="utf-8") as f:
|
|
configs = [
|
|
config_dir / line.strip()
|
|
for line in f
|
|
if line.strip() and not line.startswith("#")
|
|
]
|
|
metafunc.parametrize("config_filename", configs)
|