config: resolution reads the declarations, not the fields (#36253)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import unittest
|
||||
from types import SimpleNamespace
|
||||
|
||||
from sglang.srt.arg_groups.overrides import resolution_result
|
||||
from sglang.srt.arg_groups.speculative_hook import handle_speculative_decoding
|
||||
from sglang.srt.server_args import ServerArgs
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
@@ -33,18 +34,18 @@ def _make_spec_args(device: str, algorithm: str = "EAGLE", **overrides) -> Serve
|
||||
class TestSpecCPUOverlapConstraint(CustomTestCase):
|
||||
def test_cpu_eagle_forces_disable_overlap_schedule(self):
|
||||
args = _make_spec_args(device="cpu")
|
||||
self.assertFalse(args.disable_overlap_schedule)
|
||||
self.assertFalse(resolution_result(args, "disable_overlap_schedule"))
|
||||
|
||||
handle_speculative_decoding(args)
|
||||
|
||||
self.assertTrue(args.disable_overlap_schedule)
|
||||
self.assertTrue(resolution_result(args, "disable_overlap_schedule"))
|
||||
|
||||
def test_cpu_eagle3_forces_disable_overlap_schedule(self):
|
||||
args = _make_spec_args(device="cpu", algorithm="EAGLE3")
|
||||
|
||||
handle_speculative_decoding(args)
|
||||
|
||||
self.assertTrue(args.disable_overlap_schedule)
|
||||
self.assertTrue(resolution_result(args, "disable_overlap_schedule"))
|
||||
|
||||
def test_cpu_explicit_disable_overlap_is_preserved(self):
|
||||
args = _make_spec_args(device="cpu", disable_overlap_schedule=True)
|
||||
@@ -56,7 +57,7 @@ class TestSpecCPUOverlapConstraint(CustomTestCase):
|
||||
) as logs:
|
||||
handle_speculative_decoding(args)
|
||||
|
||||
self.assertTrue(args.disable_overlap_schedule)
|
||||
self.assertTrue(resolution_result(args, "disable_overlap_schedule"))
|
||||
self.assertFalse(
|
||||
any("Overlap schedule" in message for message in logs.output),
|
||||
f"hook warned about overriding an already-disabled overlap: {logs.output}",
|
||||
@@ -68,7 +69,7 @@ class TestSpecCPUOverlapConstraint(CustomTestCase):
|
||||
|
||||
handle_speculative_decoding(args)
|
||||
|
||||
self.assertFalse(args.disable_overlap_schedule)
|
||||
self.assertFalse(resolution_result(args, "disable_overlap_schedule"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -4,6 +4,7 @@ import unittest
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from sglang.srt.arg_groups.overrides import resolution_result
|
||||
from sglang.srt.arg_groups.speculative_hook import handle_speculative_decoding
|
||||
from sglang.srt.speculative.spec_info import SpeculativeAlgorithm
|
||||
from sglang.srt.speculative.spec_registry import (
|
||||
@@ -237,7 +238,9 @@ class TestServerArgsHook(_RegistryIsolated):
|
||||
|
||||
handle_speculative_decoding(server_args)
|
||||
|
||||
self.assertEqual(server_args.speculative_algorithm, "MY_HANDLE_ARGS")
|
||||
self.assertEqual(
|
||||
resolution_result(server_args, "speculative_algorithm"), "MY_HANDLE_ARGS"
|
||||
)
|
||||
self.assertEqual(server_args.custom_spec_handle_seen, "MY_HANDLE_ARGS")
|
||||
self.assertEqual(server_args.speculative_num_draft_tokens, 7)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user