main
py 77 lines 2.64 KB
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3 """Tests for vllm.v1.executor.ray_env_utils."""
4
5 import os
6 from unittest.mock import patch
7
8 from vllm.v1.executor.ray_env_utils import (
9 get_driver_env_vars,
10 update_runtime_env_for_worker_import,
11 )
12
13 WORKER_VARS: set[str] = {
14 "CUDA_VISIBLE_DEVICES",
15 "LOCAL_RANK",
16 }
17
18
19 class TestDefaultPropagation:
20 """All env vars are propagated unless explicitly excluded."""
21
22 @patch.dict(os.environ, {"NCCL_DEBUG": "INFO"}, clear=False)
23 def test_nccl_prefix(self):
24 assert get_driver_env_vars(WORKER_VARS)["NCCL_DEBUG"] == "INFO"
25
26 @patch.dict(os.environ, {"HF_TOKEN": "secret"}, clear=False)
27 def test_hf_token(self):
28 assert "HF_TOKEN" in get_driver_env_vars(WORKER_VARS)
29
30 @patch.dict(os.environ, {"LMCACHE_LOCAL_CPU": "True"}, clear=False)
31 def test_lmcache_prefix(self):
32 assert "LMCACHE_LOCAL_CPU" in get_driver_env_vars(WORKER_VARS)
33
34 @patch.dict(os.environ, {"PYTHONHASHSEED": "42"}, clear=False)
35 def test_pythonhashseed(self):
36 assert get_driver_env_vars(WORKER_VARS)["PYTHONHASHSEED"] == "42"
37
38 @patch.dict(os.environ, {"MYLIB_FOO": "bar"}, clear=False)
39 def test_arbitrary_var_propagated(self):
40 assert get_driver_env_vars(WORKER_VARS)["MYLIB_FOO"] == "bar"
41
42
43 class TestExclusion:
44 @patch.dict(os.environ, {"CUDA_VISIBLE_DEVICES": "0,1"}, clear=False)
45 def test_worker_specific_excluded(self):
46 assert "CUDA_VISIBLE_DEVICES" not in get_driver_env_vars(WORKER_VARS)
47
48 @patch.dict(os.environ, {"LMCACHE_LOCAL_CPU": "True"}, clear=False)
49 @patch(
50 "vllm.v1.executor.ray_env_utils.RAY_NON_CARRY_OVER_ENV_VARS",
51 {"LMCACHE_LOCAL_CPU"},
52 )
53 def test_non_carry_over_blacklist(self):
54 assert "LMCACHE_LOCAL_CPU" not in get_driver_env_vars(WORKER_VARS)
55
56
57 class TestImportTimePropagation:
58 @patch.dict(os.environ, {"VLLM_USE_BREAKABLE_CUDAGRAPH": "1"}, clear=False)
59 def test_breakable_cudagraph_is_available_during_actor_import(self):
60 runtime_env = {"env_vars": {"EXISTING": "value"}}
61
62 result = update_runtime_env_for_worker_import(runtime_env)
63
64 assert result is runtime_env
65 assert result["env_vars"] == {
66 "EXISTING": "value",
67 "VLLM_USE_BREAKABLE_CUDAGRAPH": "1",
68 }
69
70 @patch.dict(os.environ, {"OTHER_ENV_VAR": "value"}, clear=True)
71 def test_other_env_vars_are_unchanged(self):
72 runtime_env = {"env_vars": {"EXISTING": "value"}}
73
74 result = update_runtime_env_for_worker_import(runtime_env)
75
76 assert result is runtime_env
77 assert result["env_vars"] == {"EXISTING": "value"}