| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import unittest
- from pathlib import Path
- ROOT = Path(r"E:\GitProjects\llama-cpp-server")
- ROUTER_SCRIPT = ROOT / "start-llama-router.ps1"
- ASR_SCRIPT = ROOT / "start-asr-server.ps1"
- QWEN_SCRIPT = ROOT / "start-qwen3.6-35b-a3b.ps1"
- class Ps1MigrationTests(unittest.TestCase):
- def test_ps1_scripts_exist(self):
- self.assertTrue(ROUTER_SCRIPT.exists(), ROUTER_SCRIPT)
- self.assertTrue(ASR_SCRIPT.exists(), ASR_SCRIPT)
- self.assertTrue(QWEN_SCRIPT.exists(), QWEN_SCRIPT)
- def test_legacy_bat_scripts_are_removed(self):
- self.assertFalse((ROOT / "start-llama-router.bat").exists())
- self.assertFalse((ROOT / "start-asr-server.bat").exists())
- self.assertFalse((ROOT / "start-qwen3.6-35b-a3b.bat").exists())
- class RouterScriptTests(unittest.TestCase):
- def test_router_script_uses_utf8_and_optional_gated_server_flags(self):
- text = ROUTER_SCRIPT.read_text(encoding="utf-8")
- self.assertIn("[Console]::OutputEncoding", text)
- self.assertIn("$env:PYTHONIOENCODING = 'utf-8'", text)
- self.assertIn("--models-preset", text)
- self.assertIn("--models-autoload", text)
- self.assertIn("--models-max", text)
- self.assertIn("--sleep-idle-seconds", text)
- self.assertIn("--cache-idle-slots", text)
- self.assertIn("--api-key", text)
- self.assertIn("--timeout", text)
- self.assertIn("--cache-ram", text)
- self.assertIn("--threads-http", text)
- self.assertIn("--metrics", text)
- self.assertIn("--ssl-cert-file", text)
- self.assertIn("--ssl-key-file", text)
- self.assertIn("--ui", text)
- self.assertIn("--no-ui", text)
- self.assertIn("if ($ApiKey)", text)
- self.assertIn("if ($EnableMetrics)", text)
- def test_router_script_can_regenerate_models_preset(self):
- text = ROUTER_SCRIPT.read_text(encoding="utf-8")
- self.assertIn("generate_models_preset.py", text)
- self.assertIn("--alias-style", text)
- self.assertIn("--profile", text)
- self.assertIn("--select", text)
- class SingleModelScriptTests(unittest.TestCase):
- def test_asr_script_uses_mmproj_and_ps1_argument_array(self):
- text = ASR_SCRIPT.read_text(encoding="utf-8")
- self.assertIn("$Args = @(", text)
- self.assertIn("-m", text)
- self.assertIn("--mmproj", text)
- self.assertIn("--parallel", text)
- self.assertIn("--mmap", text)
- def test_qwen_script_uses_recommended_threads_and_moe_runtime_flags(self):
- text = QWEN_SCRIPT.read_text(encoding="utf-8")
- self.assertIn("[Environment]::ProcessorCount", text)
- self.assertIn("* 0.7", text)
- self.assertIn("-b", text)
- self.assertIn("2048", text)
- self.assertIn("-ub", text)
- self.assertIn("512", text)
- self.assertIn("--parallel", text)
- self.assertIn("4", text)
- self.assertIn("-ncmoe", text)
- self.assertIn("--mmap", text)
- self.assertIn("--reasoning", text)
- self.assertIn("--reasoning-budget", text)
- self.assertIn("--spec-type", text)
- self.assertIn("--temp", text)
- self.assertIn("--top-k", text)
- self.assertIn("--top-p", text)
- self.assertIn("--min-p", text)
- self.assertIn("--repeat-penalty", text)
- if __name__ == "__main__":
- unittest.main()
|