Tests layout
Each folder under tests/ corresponds to a test category for a sub-namespace in verl. For instance:
tests/trainerfor testing functionality related toverl/trainertests/modelsfor testing functionality related toverl/models- ...
There are a few folders with special_ prefix, created for special purposes:
special_distributed: unit tests that must run with multiple GPUsspecial_e2e: end-to-end tests with training/generation scriptsspecial_npu: tests for NPUsspecial_sanity: a suite of quick sanity testsspecial_standalone: a set of test that are designed to run in dedicated environments
Accelerators for tests
- By default tests are run with GPU available, except for the ones under
special_npu, and any test script whose name ends withon_cpu.py. - For test scripts with
on_cpu.pyname suffix would be tested on CPU resources in linux environment.
Workflow layout
All CI tests are configured by yaml files in .github/workflows/. Here's an overview of all test configs:
- A list of always triggered CPU sanity tests:
check-pr-title.yml,secrets_scan.yml,check-pr-title,yml,pre-commit.yml,doc.yml - Some heavy multi-GPU unit tests, such as
model.yml,vllm.yml,sgl.yml - End-to-end tests:
e2e_*.yml - Unit tests
cpu_unit_tests.yml, run pytest on all scripts with file name patterntests/**/test_*_on_cpu.pygpu_unit_tests.yml, run pytest on all scripts with file without theon_cpu.pysuffix.- Since cpu/gpu unit tests by default runs all tests under
tests, please make sure tests are manually excluded in them when- new workflow yaml is added to
.github/workflows - new tests are added to workflow mentioned in 2.
- new workflow yaml is added to