Spaces:
Runtime error
Runtime error
| """Tests for kernel stubs. | |
| Verifies that: | |
| 1. Every kernel stub file exists on disk. | |
| 2. Python stub files contain a module-level docstring. | |
| 3. Python stub files do NOT define a callable with that name | |
| (they are stubs — Phase 2 will implement them). | |
| Run: | |
| uv run pytest tests/test_kernels.py -v | |
| """ | |
| import os | |
| import pytest | |
| import sys | |
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| _REPO = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
| KERNEL_DIR = os.path.join(_REPO, "kernels") | |
| # --------------------------------------------------------------------------- | |
| # Existence checks — one per stub file | |
| # --------------------------------------------------------------------------- | |
| _ALL_STUBS = [ | |
| ("triton", "ssd_exp_trap.py"), | |
| ("triton", "sinkhorn_fused.py"), | |
| ("triton", "bcnorm_fused.py"), | |
| ("triton", "oja_update.py"), | |
| ("tilelang", "ssd_mimo_prefill.py"), | |
| ("tilelang", "mhc_kernels.py"), | |
| ("cuda", "hash_kernel.cu"), | |
| ("cuda", "decode_kernels.cu"), | |
| ] | |
| _PYTHON_STUBS = [ | |
| ("triton", "ssd_exp_trap.py"), | |
| ("triton", "sinkhorn_fused.py"), | |
| ("triton", "bcnorm_fused.py"), | |
| ("triton", "oja_update.py"), | |
| ("tilelang", "ssd_mimo_prefill.py"), | |
| ("tilelang", "mhc_kernels.py"), | |
| ] | |
| _CUDA_STUBS = [ | |
| ("cuda", "hash_kernel.cu"), | |
| ("cuda", "decode_kernels.cu"), | |
| ] | |
| def test_kernel_stub_exists(subdir: str, filename: str) -> None: | |
| """Each kernel stub file must exist on disk.""" | |
| path = os.path.join(KERNEL_DIR, subdir, filename) | |
| assert os.path.exists(path), ( | |
| f"Missing kernel stub: kernels/{subdir}/{filename}\n" | |
| f"(Full path: {path})" | |
| ) | |
| def test_python_stub_has_docstring(subdir: str, filename: str) -> None: | |
| """Python kernel stubs must have a module-level docstring.""" | |
| path = os.path.join(KERNEL_DIR, subdir, filename) | |
| with open(path) as fh: | |
| content = fh.read() | |
| assert '"""' in content or "'''" in content, ( | |
| f"No docstring found in kernels/{subdir}/{filename}" | |
| ) | |
| def test_python_stub_is_non_empty(subdir: str, filename: str) -> None: | |
| """Python stub files must contain at least some text (not empty).""" | |
| path = os.path.join(KERNEL_DIR, subdir, filename) | |
| assert os.path.getsize(path) > 0, ( | |
| f"kernels/{subdir}/{filename} is empty" | |
| ) | |
| def test_cuda_stub_has_comment(subdir: str, filename: str) -> None: | |
| """CUDA stub files must contain a comment describing their purpose.""" | |
| path = os.path.join(KERNEL_DIR, subdir, filename) | |
| with open(path) as fh: | |
| content = fh.read() | |
| assert "/*" in content or "//" in content, ( | |
| f"No comment found in kernels/{subdir}/{filename}" | |
| ) | |
| def test_kernel_dir_structure() -> None: | |
| """kernels/ directory contains triton/, tilelang/, and cuda/ subdirectories.""" | |
| for subdir in ("triton", "tilelang", "cuda"): | |
| path = os.path.join(KERNEL_DIR, subdir) | |
| assert os.path.isdir(path), f"Missing kernels/{subdir}/ directory" | |
| def test_triton_stub_count() -> None: | |
| """kernels/triton/ contains exactly the expected number of stubs.""" | |
| triton_dir = os.path.join(KERNEL_DIR, "triton") | |
| py_files = [f for f in os.listdir(triton_dir) if f.endswith(".py")] | |
| expected = {name for _, name in _PYTHON_STUBS if _ == "triton"} | |
| assert expected.issubset(set(py_files)), ( | |
| f"Missing triton stubs: {expected - set(py_files)}" | |
| ) | |
| def test_tilelang_stub_count() -> None: | |
| """kernels/tilelang/ contains exactly the expected number of stubs.""" | |
| tilelang_dir = os.path.join(KERNEL_DIR, "tilelang") | |
| py_files = [f for f in os.listdir(tilelang_dir) if f.endswith(".py")] | |
| expected = {name for _, name in _PYTHON_STUBS if _ == "tilelang"} | |
| assert expected.issubset(set(py_files)), ( | |
| f"Missing tilelang stubs: {expected - set(py_files)}" | |
| ) | |
| def test_cuda_stub_count() -> None: | |
| """kernels/cuda/ contains exactly the expected number of stubs.""" | |
| cuda_dir = os.path.join(KERNEL_DIR, "cuda") | |
| cu_files = [f for f in os.listdir(cuda_dir) if f.endswith(".cu")] | |
| expected = {name for _, name in _CUDA_STUBS} | |
| assert expected.issubset(set(cu_files)), ( | |
| f"Missing CUDA stubs: {expected - set(cu_files)}" | |
| ) | |
| # --------------------------------------------------------------------------- | |
| # Content-quality checks for Python stubs | |
| # --------------------------------------------------------------------------- | |
| def test_stub_mentions_phase(subdir: str, filename: str) -> None: | |
| """Python stubs should document which Phase will implement them.""" | |
| path = os.path.join(KERNEL_DIR, subdir, filename) | |
| with open(path) as fh: | |
| content = fh.read() | |
| assert "Phase" in content, ( | |
| f"kernels/{subdir}/{filename} should mention 'Phase 1' or 'Phase 2' in its docs" | |
| ) | |