Skip to content

Commit 6da29f0

Browse files
author
chengyuan
committed
add ut for envs.py
Signed-off-by: chengyuan <[email protected]>
1 parent 5748bb6 commit 6da29f0

File tree

1 file changed

+40
-88
lines changed

1 file changed

+40
-88
lines changed

tests/ut/test_envs.py

Lines changed: 40 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -13,95 +13,47 @@
1313
# This file is a part of the vllm-ascend project.
1414

1515
import os
16-
from unittest.mock import patch
16+
import inspect
1717

1818
from tests.ut.base import TestBase
19-
from vllm_ascend.envs import env_variables
20-
19+
from vllm_ascend import envs
2120

2221
class TestEnvVariables(TestBase):
23-
_default_values = {
24-
"MAX_JOBS": None,
25-
"CMAKE_BUILD_TYPE": None,
26-
"COMPILE_CUSTOM_KERNELS": True,
27-
"CXX_COMPILER": None,
28-
"C_COMPILER": None,
29-
"SOC_VERSION": "ASCEND910B1",
30-
"VERBOSE": False,
31-
"ASCEND_HOME_PATH": None,
32-
"HCCN_PATH": "/usr/local/Ascend/driver/tools/hccn_tool",
33-
"HCCL_SO_PATH": None,
34-
"PROMPT_DEVICE_ID": None,
35-
"DECODE_DEVICE_ID": None,
36-
"LLMDATADIST_COMM_PORT": "26000",
37-
"LLMDATADIST_SYNC_CACHE_WAIT_TIME": "5000",
38-
"VLLM_VERSION": None,
39-
"VLLM_ASCEND_TRACE_RECOMPILES": False,
40-
"VLLM_ENABLE_FUSED_EXPERTS_ALLGATHER_EP": False,
41-
"VLLM_ASCEND_ENABLE_DBO": False,
42-
"VLLM_ASCEND_MODEL_EXECUTE_TIME_OBSERVE": False,
43-
"MOE_ALL2ALL_BUFFER": False,
44-
"USE_OPTIMIZED_MODEL": True,
45-
"SELECT_GATING_TOPK_SOTFMAX_EXPERTS": False,
46-
"VLLM_ASCEND_KV_CACHE_MEGABYTES_FLOATING_TOLERANCE": 64,
47-
"VLLM_ASCEND_ENABLE_TOPK_TOPP_OPTIMIZATION": True,
48-
"DISAGGREGATED_PREFILL_RANK_TABLE_PATH": None,
49-
"VLLM_ASCEND_LLMDD_RPC_IP": "0.0.0.0",
50-
"VLLM_LLMDD_RPC_PORT": 5557,
51-
"VLLM_ASCEND_MLA_PA": False,
52-
"VLLM_ASCEND_ENABLE_MATMUL_ALLREDUCE": False
53-
}
54-
55-
_test_values = {
56-
"MAX_JOBS": ("8", "8"),
57-
"CMAKE_BUILD_TYPE": ("Debug", "Debug"),
58-
"COMPILE_CUSTOM_KERNELS": ("0", False),
59-
"CXX_COMPILER": ("/usr/bin/g++", "/usr/bin/g++"),
60-
"C_COMPILER": ("/usr/bin/gcc", "/usr/bin/gcc"),
61-
"SOC_VERSION": ("ASCEND910A", "ASCEND910A"),
62-
"VERBOSE": ("1", True),
63-
"ASCEND_HOME_PATH": ("/opt/ascend", "/opt/ascend"),
64-
"HCCN_PATH": ("/custom/hccn_tool", "/custom/hccn_tool"),
65-
"HCCL_SO_PATH": ("libhccl_custom.so", "libhccl_custom.so"),
66-
"PROMPT_DEVICE_ID": ("1", "1"),
67-
"DECODE_DEVICE_ID": ("2", "2"),
68-
"LLMDATADIST_COMM_PORT": ("27000", "27000"),
69-
"LLMDATADIST_SYNC_CACHE_WAIT_TIME": ("6000", "6000"),
70-
"VLLM_VERSION": ("0.9.1", "0.9.1"),
71-
"VLLM_ASCEND_TRACE_RECOMPILES": ("1", True),
72-
"VLLM_ENABLE_FUSED_EXPERTS_ALLGATHER_EP": ("1", True),
73-
"VLLM_ASCEND_ENABLE_DBO": ("1", True),
74-
"VLLM_ASCEND_MODEL_EXECUTE_TIME_OBSERVE": ("1", True),
75-
"MOE_ALL2ALL_BUFFER": ("1", True),
76-
"USE_OPTIMIZED_MODEL": ("0", False),
77-
"SELECT_GATING_TOPK_SOTFMAX_EXPERTS": ("1", True),
78-
"VLLM_ASCEND_KV_CACHE_MEGABYTES_FLOATING_TOLERANCE": ("128", 128),
79-
"VLLM_ASCEND_ENABLE_TOPK_TOPP_OPTIMIZATION": ("0", False),
80-
"DISAGGREGATED_PREFILL_RANK_TABLE_PATH":
81-
("/path/to/rank_table.json", "/path/to/rank_table.json"),
82-
"VLLM_ASCEND_LLMDD_RPC_IP": ("192.168.1.1", "192.168.1.1"),
83-
"VLLM_LLMDD_RPC_PORT": ("5558", 5558),
84-
"VLLM_ASCEND_MLA_PA": ("1", True),
85-
"VLLM_ASCEND_ENABLE_MATMUL_ALLREDUCE": ("1", True)
86-
}
87-
88-
def setUp(self):
89-
env_keys = set(env_variables.keys())
90-
self.assertEqual(env_keys, set(self._default_values.keys()))
91-
self.assertEqual(env_keys, set(self._test_values.keys()))
92-
93-
def test_default_values(self):
94-
for var_name, getter in env_variables.items():
95-
with self.subTest(var_name=var_name):
96-
with patch.dict(os.environ, {}, clear=True):
97-
actual = getter()
98-
expected = self._default_values[var_name]
99-
self.assertEqual(actual, expected)
100-
101-
def test_set_values(self):
102-
for var_name, getter in env_variables.items():
103-
with self.subTest(var_name=var_name):
104-
input_val, expected = self._test_values[var_name]
105-
with patch.dict(os.environ, {var_name: input_val}):
106-
actual = getter()
107-
self.assertEqual(actual, expected)
22+
@classmethod
23+
def setUpClass(cls):
24+
cls.env_vars = list(envs.env_variables.keys())
25+
26+
def test_env_vars_behavior(self):
27+
for var_name in self.env_vars:
28+
with self.subTest(var=var_name):
29+
original_val = os.environ.get(var_name)
30+
var_handler = envs.env_variables[var_name]
31+
32+
try:
33+
if var_name in os.environ:
34+
del os.environ[var_name]
35+
self.assertEqual(getattr(envs, var_name), var_handler())
36+
37+
handler_source = inspect.getsource(var_handler)
38+
if 'int(' in handler_source:
39+
test_vals = ["123", "456"]
40+
elif 'bool(int(' in handler_source:
41+
test_vals = ["0", "1"]
42+
else:
43+
test_vals = [f"test_{var_name}", f"custom_{var_name}"]
44+
45+
for test_val in test_vals:
46+
os.environ[var_name] = test_val
47+
self.assertEqual(getattr(envs, var_name), var_handler())
48+
49+
finally:
50+
if original_val is None:
51+
os.environ.pop(var_name, None)
52+
else:
53+
os.environ[var_name] = original_val
54+
55+
def test_dir_and_getattr(self):
56+
self.assertEqual(sorted(envs.__dir__()), sorted(self.env_vars))
57+
for var_name in self.env_vars:
58+
with self.subTest(var=var_name):
59+
getattr(envs, var_name)

0 commit comments

Comments
 (0)