13
13
# This file is a part of the vllm-ascend project.
14
14
15
15
import os
16
- from unittest . mock import patch
16
+ import inspect
17
17
18
18
from tests .ut .base import TestBase
19
- from vllm_ascend .envs import env_variables
20
-
19
+ from vllm_ascend import envs
21
20
22
21
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