Skip to content

Commit 78ce750

Browse files
author
chengyuan
committed
add ut for envs.py
1 parent 359c157 commit 78ce750

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed

tests/ut/test_envs.py

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
from tests.ut.base import TestBase
2+
from unittest.mock import patch
3+
import os
4+
# 替换为你的实际模块路径
5+
from vllm_ascend.envs import env_variables
6+
7+
8+
class TestEnvVariables(TestBase):
9+
"""验证 env_variables 中所有环境变量的解析逻辑"""
10+
11+
# 与 env_variables 完全匹配的默认值映射
12+
_default_values = {
13+
"MAX_JOBS": None,
14+
"CMAKE_BUILD_TYPE": None,
15+
"COMPILE_CUSTOM_KERNELS": True,
16+
"CXX_COMPILER": None,
17+
"C_COMPILER": None,
18+
"SOC_VERSION": "ASCEND910B1",
19+
"VERBOSE": False,
20+
"ASCEND_HOME_PATH": None,
21+
"HCCN_PATH": "/usr/local/Ascend/driver/tools/hccn_tool",
22+
"HCCL_SO_PATH": None,
23+
"PROMPT_DEVICE_ID": None,
24+
"DECODE_DEVICE_ID": None,
25+
"LLMDATADIST_COMM_PORT": "26000",
26+
"LLMDATADIST_SYNC_CACHE_WAIT_TIME": "5000",
27+
"VLLM_VERSION": None,
28+
"VLLM_ASCEND_TRACE_RECOMPILES": False,
29+
"VLLM_ENABLE_FUSED_EXPERTS_ALLGATHER_EP": False,
30+
"VLLM_ASCEND_ENABLE_DBO": False,
31+
"VLLM_ASCEND_MODEL_EXECUTE_TIME_OBSERVE": False,
32+
"MOE_ALL2ALL_BUFFER": False,
33+
"USE_OPTIMIZED_MODEL": True,
34+
"SELECT_GATING_TOPK_SOTFMAX_EXPERTS": False,
35+
"VLLM_ASCEND_KV_CACHE_MEGABYTES_FLOATING_TOLERANCE": 64,
36+
"VLLM_ASCEND_ENABLE_TOPK_TOPP_OPTIMIZATION": False,
37+
"DISAGGREGATED_PREFILL_RANK_TABLE_PATH": None,
38+
"VLLM_ASCEND_LLMDD_RPC_IP": "0.0.0.0",
39+
"VLLM_LLMDD_RPC_PORT": 5557,
40+
"VLLM_ASCEND_MLA_PA": False,
41+
"VLLM_ASCEND_ENABLE_MATMUL_ALLREDUCE": False
42+
}
43+
44+
# 与 env_variables 完全匹配的测试值映射
45+
_test_values = {
46+
"MAX_JOBS": ("8", "8"),
47+
"CMAKE_BUILD_TYPE": ("Debug", "Debug"),
48+
"COMPILE_CUSTOM_KERNELS": ("0", False),
49+
"CXX_COMPILER": ("/usr/bin/g++", "/usr/bin/g++"),
50+
"C_COMPILER": ("/usr/bin/gcc", "/usr/bin/gcc"),
51+
"SOC_VERSION": ("ASCEND910A", "ASCEND910A"),
52+
"VERBOSE": ("1", True),
53+
"ASCEND_HOME_PATH": ("/opt/ascend", "/opt/ascend"),
54+
"HCCN_PATH": ("/custom/hccn_tool", "/custom/hccn_tool"),
55+
"HCCL_SO_PATH": ("libhccl_custom.so", "libhccl_custom.so"),
56+
"PROMPT_DEVICE_ID": ("1", "1"),
57+
"DECODE_DEVICE_ID": ("2", "2"),
58+
"LLMDATADIST_COMM_PORT": ("27000", "27000"),
59+
"LLMDATADIST_SYNC_CACHE_WAIT_TIME": ("6000", "6000"),
60+
"VLLM_VERSION": ("0.9.1", "0.9.1"),
61+
"VLLM_ASCEND_TRACE_RECOMPILES": ("1", True),
62+
"VLLM_ENABLE_FUSED_EXPERTS_ALLGATHER_EP": ("1", True),
63+
"VLLM_ASCEND_ENABLE_DBO": ("1", True),
64+
"VLLM_ASCEND_MODEL_EXECUTE_TIME_OBSERVE": ("1", True),
65+
"MOE_ALL2ALL_BUFFER": ("1", True),
66+
"USE_OPTIMIZED_MODEL": ("0", False),
67+
"SELECT_GATING_TOPK_SOTFMAX_EXPERTS": ("1", True),
68+
"VLLM_ASCEND_KV_CACHE_MEGABYTES_FLOATING_TOLERANCE": ("128", 128),
69+
"VLLM_ASCEND_ENABLE_TOPK_TOPP_OPTIMIZATION": ("1", True),
70+
"DISAGGREGATED_PREFILL_RANK_TABLE_PATH": ("/path/to/rank_table.json", "/path/to/rank_table.json"),
71+
"VLLM_ASCEND_LLMDD_RPC_IP": ("192.168.1.1", "192.168.1.1"),
72+
"VLLM_LLMDD_RPC_PORT": ("5558", 5558),
73+
"VLLM_ASCEND_MLA_PA": ("1", True),
74+
"VLLM_ASCEND_ENABLE_MATMUL_ALLREDUCE": ("1", True)
75+
}
76+
77+
def setUp(self):
78+
env_keys = set(env_variables.keys())
79+
# 检查默认值是否覆盖所有变量
80+
self.assertEqual(
81+
env_keys, set(self._default_values.keys()),
82+
"错误:_default_values 未覆盖所有环境变量,请检查是否有遗漏或多余的键"
83+
)
84+
# 检查测试值是否覆盖所有变量
85+
self.assertEqual(
86+
env_keys, set(self._test_values.keys()),
87+
"错误:_test_values 未覆盖所有环境变量,请检查是否有遗漏或多余的键"
88+
)
89+
90+
def test_default_values(self):
91+
"""测试所有环境变量未设置时的默认值"""
92+
for var_name, getter in env_variables.items():
93+
with self.subTest(var_name=var_name):
94+
with patch.dict(os.environ, {}, clear=True): # 清空环境变量
95+
actual = getter()
96+
expected = self._default_values[var_name]
97+
self.assertEqual(
98+
actual, expected,
99+
f"{var_name} 默认值错误:预期 {expected},实际 {actual}"
100+
)
101+
102+
def test_set_values(self):
103+
"""测试所有环境变量设置后的解析结果"""
104+
for var_name, getter in env_variables.items():
105+
with self.subTest(var_name=var_name):
106+
input_val, expected = self._test_values[var_name]
107+
with patch.dict(os.environ, {var_name: input_val}): # 设置环境变量
108+
actual = getter()
109+
self.assertEqual(
110+
actual, expected,
111+
f"{var_name} 解析错误:输入 {input_val},预期 {expected},实际 {actual}"
112+
)

0 commit comments

Comments
 (0)