Skip to content

Commit 0730373

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

File tree

1 file changed

+39
-85
lines changed

1 file changed

+39
-85
lines changed

tests/ut/test_envs.py

Lines changed: 39 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -12,96 +12,50 @@
1212
# limitations under the License.
1313
# This file is a part of the vllm-ascend project.
1414

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

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

2121

2222
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-
}
8723

8824
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)
25+
self.env_vars = list(envs.env_variables.keys())
26+
27+
def test_env_vars_behavior(self):
28+
for var_name in self.env_vars:
29+
with self.subTest(var=var_name):
30+
original_val = os.environ.get(var_name)
31+
var_handler = envs.env_variables[var_name]
32+
33+
try:
34+
if var_name in os.environ:
35+
del os.environ[var_name]
36+
self.assertEqual(getattr(envs, var_name), var_handler())
37+
38+
handler_source = inspect.getsource(var_handler)
39+
if 'int(' in handler_source:
40+
test_vals = ["123", "456"]
41+
elif 'bool(int(' in handler_source:
42+
test_vals = ["0", "1"]
43+
else:
44+
test_vals = [f"test_{var_name}", f"custom_{var_name}"]
45+
46+
for test_val in test_vals:
47+
os.environ[var_name] = test_val
48+
self.assertEqual(getattr(envs, var_name),
49+
var_handler())
50+
51+
finally:
52+
if original_val is None:
53+
os.environ.pop(var_name, None)
54+
else:
55+
os.environ[var_name] = original_val
56+
57+
def test_dir_and_getattr(self):
58+
self.assertEqual(sorted(envs.__dir__()), sorted(self.env_vars))
59+
for var_name in self.env_vars:
60+
with self.subTest(var=var_name):
61+
getattr(envs, var_name)

0 commit comments

Comments
 (0)