[CI] Migrate nightly tests to test/registered/ (#15582)

This commit is contained in:
Alison Shao
2025-12-22 22:16:32 -08:00
committed by GitHub
parent bc3ca30023
commit 989d4b3012
64 changed files with 168 additions and 140 deletions

View File

@@ -191,7 +191,7 @@ jobs:
timeout-minutes: 120
run: |
cd test
python3 nightly/test_text_models_gsm8k_eval.py
python3 run_suite.py --hw cuda --suite nightly-eval-text-2-gpu --nightly --continue-on-error --timeout-per-file 4500
# Text model performance tests
nightly-test-text-perf-2-gpu-runner:
@@ -216,7 +216,7 @@ jobs:
run: |
cd test
rm -rf performance_profiles_text_models/
python3 nightly/test_text_models_perf.py
python3 run_suite.py --hw cuda --suite nightly-perf-text-2-gpu --nightly --continue-on-error
- name: Publish traces to storage repo
env:
@@ -244,7 +244,7 @@ jobs:
timeout-minutes: 240
run: |
cd test
python3 nightly/test_vlms_mmmu_eval.py
python3 run_suite.py --hw cuda --suite nightly-eval-vlm-2-gpu --nightly --continue-on-error --timeout-per-file 9000
# VLM performance tests
nightly-test-vlm-perf-2-gpu-runner:
@@ -269,7 +269,7 @@ jobs:
run: |
cd test
rm -rf performance_profiles_vlms/
python3 nightly/test_vlms_perf.py
python3 run_suite.py --hw cuda --suite nightly-perf-vlm-2-gpu --nightly --continue-on-error
- name: Publish traces to storage repo
env:

View File

View File

@@ -87,7 +87,7 @@ class TestVLMModels(CustomTestCase):
"--limit",
limit,
"--config",
"/__w/sglang/sglang/test/nightly/ascend/vlm_models/mmmu-val.yaml",
"/__w/sglang/sglang/test/registered/ascend/vlm_models/mmmu-val.yaml",
]
subprocess.run(

View File

@@ -1,9 +1,8 @@
from dataclasses import dataclass, field
from typing import List, Optional, Tuple
from nightly_utils import NightlyBenchmarkRunner
from sglang.test.nightly_bench_utils import BenchmarkResult
from sglang.test.nightly_utils import NightlyBenchmarkRunner
from sglang.test.test_utils import DEFAULT_URL_FOR_TEST, ModelLaunchSettings

View File

@@ -1,18 +1,17 @@
from typing import List, Optional
from accuracy_test_runner import (
from sglang.test.accuracy_test_runner import (
AccuracyTestParams,
AccuracyTestResult,
run_accuracy_test,
write_accuracy_github_summary,
)
from nightly_utils import NightlyBenchmarkRunner
from performance_test_runner import (
from sglang.test.nightly_utils import NightlyBenchmarkRunner
from sglang.test.performance_test_runner import (
PerformanceTestParams,
PerformanceTestResult,
run_performance_test,
)
from sglang.test.test_utils import DEFAULT_URL_FOR_TEST, ModelLaunchSettings, is_in_ci

View File

@@ -1,15 +1,9 @@
import sys
import unittest
from pathlib import Path
# Add nightly directory to path for run_combined_tests import
sys.path.insert(0, str(Path(__file__).parent.parent.parent / "nightly"))
from accuracy_test_runner import AccuracyTestParams
from performance_test_runner import PerformanceTestParams
from run_combined_tests import run_combined_tests
from sglang.test.accuracy_test_runner import AccuracyTestParams
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.performance_test_runner import PerformanceTestParams
from sglang.test.run_combined_tests import run_combined_tests
from sglang.test.test_utils import ModelLaunchSettings, is_blackwell_system
# Runs on both H200 and B200 via nightly-8-gpu-common suite

View File

@@ -1,15 +1,9 @@
import sys
import unittest
from pathlib import Path
# Add nightly directory to path for run_combined_tests import
sys.path.insert(0, str(Path(__file__).parent.parent.parent / "nightly"))
from accuracy_test_runner import AccuracyTestParams
from performance_test_runner import PerformanceTestParams
from run_combined_tests import run_combined_tests
from sglang.test.accuracy_test_runner import AccuracyTestParams
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.performance_test_runner import PerformanceTestParams
from sglang.test.run_combined_tests import run_combined_tests
from sglang.test.test_utils import ModelLaunchSettings, is_blackwell_system
register_cuda_ci(est_time=8000, suite="nightly-8-gpu-common", nightly=True)

View File

@@ -1,15 +1,9 @@
import sys
import unittest
from pathlib import Path
# Add nightly directory to path for run_combined_tests import
sys.path.insert(0, str(Path(__file__).parent.parent.parent / "nightly"))
from accuracy_test_runner import AccuracyTestParams
from performance_test_runner import PerformanceTestParams
from run_combined_tests import run_combined_tests
from sglang.test.accuracy_test_runner import AccuracyTestParams
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.performance_test_runner import PerformanceTestParams
from sglang.test.run_combined_tests import run_combined_tests
from sglang.test.test_utils import ModelLaunchSettings
# Runs on both H200 and B200 via nightly-8-gpu-common suite

View File

@@ -1,15 +1,9 @@
import sys
import unittest
from pathlib import Path
# Add nightly directory to path for run_combined_tests import
sys.path.insert(0, str(Path(__file__).parent.parent.parent / "nightly"))
from accuracy_test_runner import AccuracyTestParams
from performance_test_runner import PerformanceTestParams
from run_combined_tests import run_combined_tests
from sglang.test.accuracy_test_runner import AccuracyTestParams
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.performance_test_runner import PerformanceTestParams
from sglang.test.run_combined_tests import run_combined_tests
from sglang.test.test_utils import ModelLaunchSettings
# Runs on both H200 and B200 via nightly-8-gpu-common suite

View File

@@ -1,15 +1,9 @@
import sys
import unittest
from pathlib import Path
# Add nightly directory to path for run_combined_tests import
sys.path.insert(0, str(Path(__file__).parent.parent.parent / "nightly"))
from accuracy_test_runner import AccuracyTestParams
from performance_test_runner import PerformanceTestParams
from run_combined_tests import run_combined_tests
from sglang.test.accuracy_test_runner import AccuracyTestParams
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.performance_test_runner import PerformanceTestParams
from sglang.test.run_combined_tests import run_combined_tests
from sglang.test.test_utils import ModelLaunchSettings
# Runs on both H200 and B200 via nightly-8-gpu-common suite

View File

@@ -1,16 +1,10 @@
import os
import sys
import unittest
from pathlib import Path
# Add nightly directory to path for run_combined_tests import
sys.path.insert(0, str(Path(__file__).parent.parent.parent / "nightly"))
from accuracy_test_runner import AccuracyTestParams
from performance_test_runner import PerformanceTestParams
from run_combined_tests import run_combined_tests
from sglang.test.accuracy_test_runner import AccuracyTestParams
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.performance_test_runner import PerformanceTestParams
from sglang.test.run_combined_tests import run_combined_tests
from sglang.test.test_utils import ModelLaunchSettings, is_blackwell_system
# Runs on both H200 and B200 via nightly-8-gpu-common suite

View File

@@ -1,15 +1,9 @@
import sys
import unittest
from pathlib import Path
# Add nightly directory to path for run_combined_tests import
sys.path.insert(0, str(Path(__file__).parent.parent.parent / "nightly"))
from accuracy_test_runner import AccuracyTestParams
from performance_test_runner import PerformanceTestParams
from run_combined_tests import run_combined_tests
from sglang.test.accuracy_test_runner import AccuracyTestParams
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.performance_test_runner import PerformanceTestParams
from sglang.test.run_combined_tests import run_combined_tests
from sglang.test.test_utils import ModelLaunchSettings, is_blackwell_system
# Runs on both H200 and B200 via nightly-8-gpu-common suite

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin
from sglang.test.ci.ci_register import register_npu_ci
from sglang.test.test_utils import CustomTestCase

View File

@@ -1,7 +1,6 @@
import unittest
from test_vlm_utils import TestVLMModels
from sglang.test.ascend.vlm_utils import TestVLMModels
from sglang.test.ci.ci_register import register_npu_ci
register_npu_ci(est_time=400, suite="nightly-4-npu-a3", nightly=True)

View File

@@ -1,7 +1,6 @@
import unittest
from test_vlm_utils import TestVLMModels
from sglang.test.ascend.vlm_utils import TestVLMModels
from sglang.test.ci.ci_register import register_npu_ci
register_npu_ci(est_time=400, suite="nightly-4-npu-a3", nightly=True)

View File

@@ -1,7 +1,6 @@
import unittest
from test_vlm_utils import TestVLMModels
from sglang.test.ascend.vlm_utils import TestVLMModels
from sglang.test.ci.ci_register import register_npu_ci
register_npu_ci(est_time=400, suite="nightly-4-npu-a3", nightly=True)

View File

@@ -1,7 +1,6 @@
import unittest
from test_vlm_utils import TestVLMModels
from sglang.test.ascend.vlm_utils import TestVLMModels
from sglang.test.ci.ci_register import register_npu_ci
register_npu_ci(est_time=400, suite="nightly-4-npu-a3", nightly=True)

View File

@@ -1,7 +1,6 @@
import unittest
from test_vlm_utils import TestVLMModels
from sglang.test.ascend.vlm_utils import TestVLMModels
from sglang.test.ci.ci_register import register_npu_ci
register_npu_ci(est_time=400, suite="nightly-4-npu-a3", nightly=True)

View File

@@ -1,7 +1,6 @@
import unittest
from test_vlm_utils import TestVLMModels
from sglang.test.ascend.vlm_utils import TestVLMModels
from sglang.test.ci.ci_register import register_npu_ci
register_npu_ci(est_time=400, suite="nightly-4-npu-a3", nightly=True)

View File

@@ -1,7 +1,6 @@
import unittest
from test_vlm_utils import TestVLMModels
from sglang.test.ascend.vlm_utils import TestVLMModels
from sglang.test.ci.ci_register import register_npu_ci
register_npu_ci(est_time=400, suite="nightly-4-npu-a3", nightly=True)

View File

@@ -1,7 +1,6 @@
import unittest
from test_vlm_utils import TestVLMModels
from sglang.test.ascend.vlm_utils import TestVLMModels
from sglang.test.ci.ci_register import register_npu_ci
register_npu_ci(est_time=400, suite="nightly-4-npu-a3", nightly=True)

View File

@@ -0,0 +1,75 @@
import unittest
from types import SimpleNamespace
from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k
from sglang.test.test_utils import (
DEFAULT_URL_FOR_TEST,
CustomTestCase,
is_in_ci,
popen_launch_server,
write_github_step_summary,
)
register_cuda_ci(est_time=900, suite="nightly-4-gpu-b200", nightly=True)
FULL_DEEPSEEK_V3_FP4_MODEL_PATH = "nvidia/DeepSeek-V3-0324-FP4"
SERVER_LAUNCH_TIMEOUT = 1000
class TestDeepseekV3FP4CutlassMoE(CustomTestCase):
@classmethod
def setUpClass(cls):
cls.model = FULL_DEEPSEEK_V3_FP4_MODEL_PATH
cls.base_url = DEFAULT_URL_FOR_TEST
other_args = [
"--tp",
"4",
"--ep",
"4",
"--attention-backend",
"trtllm_mla",
"--moe-runner-backend",
"flashinfer_cutlass",
"--quantization",
"modelopt_fp4",
"--model-loader-extra-config",
'{"enable_multithread_load": true}',
]
cls.process = popen_launch_server(
cls.model,
cls.base_url,
timeout=SERVER_LAUNCH_TIMEOUT,
other_args=other_args,
)
@classmethod
def tearDownClass(cls):
kill_process_tree(cls.process.pid)
def test_a_gsm8k(
self,
): # Append an "a" to make this test run first (alphabetically) to warm up the server
args = SimpleNamespace(
num_shots=8,
data_path=None,
num_questions=1319,
parallel=1319,
max_new_tokens=512,
host="http://127.0.0.1",
port=int(self.base_url.split(":")[-1]),
)
metrics = run_eval_few_shot_gsm8k(args)
print(f"{metrics=}")
if is_in_ci():
write_github_step_summary(
f"### test_gsm8k (deepseek-v3-fp4-cutlass-moe)\n"
f'{metrics["accuracy"]=:.3f}\n'
)
self.assertGreater(metrics["accuracy"], 0.935)
if __name__ == "__main__":
unittest.main()

View File

@@ -1,7 +1,8 @@
import unittest
from types import SimpleNamespace
from sglang.srt.utils import kill_process_tree
from sglang.srt.utils import get_device_sm, kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.few_shot_gsm8k import run_eval
from sglang.test.test_utils import (
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
@@ -10,7 +11,13 @@ from sglang.test.test_utils import (
popen_launch_server,
)
# modelopt_fp4 requires SM 100+ (Blackwell)
register_cuda_ci(est_time=300, suite="nightly-1-gpu", nightly=True)
@unittest.skipIf(
get_device_sm() < 100, "Test requires CUDA SM 100 or higher (Blackwell)"
)
class TestFlashinferTrtllmGenMoeBackend(CustomTestCase):
@classmethod
def setUpClass(cls):

View File

@@ -4,6 +4,7 @@ import warnings
from types import SimpleNamespace
from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.run_eval import run_eval
from sglang.test.test_utils import (
DEFAULT_MODEL_NAME_FOR_NIGHTLY_EVAL_FP8_TP1,
@@ -19,6 +20,8 @@ from sglang.test.test_utils import (
write_results_to_json,
)
register_cuda_ci(est_time=3600, suite="nightly-eval-text-2-gpu", nightly=True)
MODEL_SCORE_THRESHOLDS = {
"meta-llama/Llama-3.1-8B-Instruct": 0.82,
"mistralai/Mistral-7B-Instruct-v0.3": 0.58,

View File

@@ -4,6 +4,7 @@ import warnings
from types import SimpleNamespace
from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.run_eval import run_eval
from sglang.test.test_utils import (
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
@@ -15,6 +16,8 @@ from sglang.test.test_utils import (
write_results_to_json,
)
register_cuda_ci(est_time=7200, suite="nightly-eval-vlm-2-gpu", nightly=True)
MODEL_THRESHOLDS = {
# Conservative thresholds on 100 MMMU samples, especially for latency thresholds
ModelLaunchSettings("deepseek-ai/deepseek-vl2-small"): ModelEvalMetrics(

View File

@@ -1,8 +1,7 @@
import unittest
from nightly_utils import NightlyBenchmarkRunner
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.nightly_utils import NightlyBenchmarkRunner
from sglang.test.test_utils import DEFAULT_URL_FOR_TEST
register_cuda_ci(est_time=600, suite="nightly-4-gpu-b200", nightly=True)
@@ -38,7 +37,7 @@ class TestNightlyGptOss4GpuPerformance(unittest.TestCase):
for model_path, other_args in self.models:
with self.subTest(model=model_path):
results, success = self.runner.run_benchmark_for_model(
results, success, _ = self.runner.run_benchmark_for_model(
model_path=model_path,
batch_sizes=self.batch_sizes,
input_lens=self.input_lens,

View File

@@ -1,7 +1,7 @@
import unittest
from nightly_utils import NightlyBenchmarkRunner
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.nightly_utils import NightlyBenchmarkRunner
from sglang.test.test_utils import (
DEFAULT_URL_FOR_TEST,
ModelLaunchSettings,
@@ -9,6 +9,8 @@ from sglang.test.test_utils import (
parse_models,
)
register_cuda_ci(est_time=3600, suite="nightly-perf-text-2-gpu", nightly=True)
PROFILE_DIR = "performance_profiles_text_models"
@@ -37,7 +39,7 @@ class TestNightlyTextModelsPerformance(unittest.TestCase):
for model_setup in self.models:
with self.subTest(model=model_setup.model_path):
results, success = self.runner.run_benchmark_for_model(
results, success, _ = self.runner.run_benchmark_for_model(
model_path=model_setup.model_path,
batch_sizes=self.batch_sizes,
input_lens=self.input_lens,

View File

@@ -2,8 +2,8 @@ import os
import unittest
import warnings
from nightly_utils import NightlyBenchmarkRunner
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.nightly_utils import NightlyBenchmarkRunner
from sglang.test.test_utils import (
DEFAULT_URL_FOR_TEST,
ModelLaunchSettings,
@@ -11,6 +11,8 @@ from sglang.test.test_utils import (
parse_models,
)
register_cuda_ci(est_time=7200, suite="nightly-perf-vlm-2-gpu", nightly=True)
PROFILE_DIR = "performance_profiles_vlms"
MODEL_DEFAULTS = [
@@ -64,7 +66,7 @@ class TestNightlyVLMModelsPerformance(unittest.TestCase):
"--dataset-name=mmmu",
]
results, success = self.runner.run_benchmark_for_model(
results, success, _ = self.runner.run_benchmark_for_model(
model_path=model_setup.model_path,
batch_sizes=self.batch_sizes,
input_lens=self.input_lens,

View File

@@ -5,6 +5,7 @@ import requests
from sglang.srt.environ import envs
from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k
from sglang.test.test_utils import (
DEFAULT_DEEPSEEK_NVFP4_MODEL_FOR_TEST,
@@ -16,6 +17,9 @@ from sglang.test.test_utils import (
write_github_step_summary,
)
# 16 GPU test (4 TP x 4 DP), runs on 2x 8-GPU B200 nodes
register_cuda_ci(est_time=600, suite="nightly-8-gpu-b200", nightly=True)
def test_gsm8k(base_url: str):
requests.get(base_url + "/flush_cache")

View File

@@ -43,6 +43,11 @@ NIGHTLY_SUITES = {
"nightly-8-gpu-h200-basic", # Basic tests for large models on H200
"nightly-8-gpu-b200-basic", # Basic tests for large models on B200
"nightly-8-gpu-common", # Common tests that run on both H200 and B200
# Eval and perf suites (2-gpu)
"nightly-eval-text-2-gpu",
"nightly-eval-vlm-2-gpu",
"nightly-perf-text-2-gpu",
"nightly-perf-vlm-2-gpu",
],
HWBackend.AMD: ["nightly-amd", "nightly-amd-8-gpu"],
HWBackend.CPU: [],
@@ -149,14 +154,10 @@ def run_a_suite(args):
auto_partition_id = args.auto_partition_id
auto_partition_size = args.auto_partition_size
# Temporary: search broadly for nightly tests during migration to registered/
if nightly:
files = glob.glob("**/*.py", recursive=True)
sanity_check = False # Allow files without registration during migration
else:
files = glob.glob("registered/**/*.py", recursive=True)
# Strict: all registered files must have proper registration
sanity_check = True
# All tests (per-commit and nightly) are now in registered/
files = glob.glob("registered/**/*.py", recursive=True)
# Strict: all registered files must have proper registration
sanity_check = True
all_tests = collect_tests(files, sanity_check=sanity_check)
ci_tests, skipped_tests = filter_tests(all_tests, hw, suite, nightly)