test_platform_plugins.py 1.8 KB
Newer Older
1
# SPDX-License-Identifier: Apache-2.0
2
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3

4
import pytest
5
6
import torch

7
from vllm.plugins import load_general_plugins
8
9


10
11
12
13
14
15
16
17
18
@pytest.fixture(scope="function", autouse=True)
def use_v0_only(monkeypatch):
    """
    Since this module is V0 only, set VLLM_USE_V1=0 for
    all tests in the module.
    """
    monkeypatch.setenv('VLLM_USE_V1', '0')


19
20
21
22
23
24
25
def test_platform_plugins():
    # simulate workload by running an example
    import runpy
    current_file = __file__
    import os
    example_file = os.path.join(
        os.path.dirname(os.path.dirname(os.path.dirname(current_file))),
26
        "examples", "offline_inference/basic/basic.py")
27
28
29
30
    runpy.run_path(example_file)

    # check if the plugin is loaded correctly
    from vllm.platforms import _init_trace, current_platform
31
32
    # assert current_platform.device_name == "DummyDevice", (
    assert current_platform.device_name == "rocm", (
33
34
35
        f"Expected DummyDevice, got {current_platform.device_name}, "
        "possibly because current_platform is imported before the plugin"
        f" is loaded. The first import:\n{_init_trace}")
36
37


38
39
40
41
42
43
44
45
46
47
48
49
# TODO
# def test_oot_custom_op(monkeypatch: pytest.MonkeyPatch):
#     # simulate workload by running an example
#     load_general_plugins()
#     from vllm.model_executor.layers.rotary_embedding import RotaryEmbedding
#     layer = RotaryEmbedding(16, 16, 16, 16, True, torch.float16)
#     assert layer.__class__.__name__ == "DummyRotaryEmbedding", (
#         f"Expected DummyRotaryEmbedding, got {layer.__class__.__name__}, "
#         "possibly because the custom op is not registered correctly.")
#     assert hasattr(layer, "addition_config"), (
#         "Expected DummyRotaryEmbedding to have an 'addition_config' attribute, "
#         "which is set by the custom op.")