Files
sglang/test

Run Unit Tests

SGLang uses the built-in library unittest as the testing framework.

Test Backend Runtime

cd sglang/test/srt

# Run a single file
python3 test_srt_endpoint.py

# Run a single test
python3 -m unittest test_srt_endpoint.TestSRTEndpoint.test_simple_decode

# Run a suite with multiple files
python3 run_suite.py --suite minimal

Test Frontend Language

cd sglang/test/lang
export OPENAI_API_KEY=sk-*****

# Run a single file
python3 test_openai_backend.py

# Run a single test
python3 -m unittest test_openai_backend.TestOpenAIBackend.test_few_shot_qa

# Run a suite with multiple files
python3 run_suite.py --suite minimal

Adding or Updating Tests in CI

  • Create new test files under test/srt or test/lang depending on the type of test.
  • Ensure they are referenced in the respective run_suite.py (e.g., test/srt/run_suite.py or test/lang/run_suite.py) so theyre picked up in CI.
  • In CI, all tests run automatically. You may modify the workflows in .github/workflows/ to add custom test groups or extra checks.

Writing Elegant Test Cases

  • Examine existing tests in sglang/test for practical examples.
  • Keep each test function focused on a single scenario or piece of functionality.
  • Give tests descriptive names reflecting their purpose.
  • Use robust assertions (e.g., assert, unittest methods) to validate outcomes.
  • Clean up resources to avoid side effects and preserve test independence.