CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
37 lines
1.7 KiB
Markdown
37 lines
1.7 KiB
Markdown
# ais-check tests
|
|
|
|
Unit tests for the `ais-check` tool. They are fully hermetic: every system
|
|
touchpoint (kernel config files, `/proc/kallsyms`, environment variables,
|
|
`glob` over `/opt/rocm`, and `ctypes.CDLL`) is faked with `monkeypatch`, so the
|
|
suite runs and produces identical results on any machine — no ROCm install,
|
|
GPU, or special privileges required.
|
|
|
|
## Running
|
|
|
|
From the repository root:
|
|
|
|
```
|
|
pip install pytest
|
|
cd projects/hipfile/tools/ais-check/tests
|
|
python3 -m pytest
|
|
```
|
|
|
|
## Layout
|
|
|
|
| File | Covers |
|
|
|------|--------|
|
|
| `conftest.py` | Loads the extensionless `ais-check` script as an importable `ais_check` module (via `SourceFileLoader`) and exposes it as a fixture. |
|
|
| `test_p2pdma.py` | `kernel_supports_p2pdma()` — each config source, missing/`=m`/commented options, and the "no configs found" warning. |
|
|
| `test_find_hip_runtimes.py` | `find_hip_runtimes()` — env-var search paths, symlink dedup, soname handling, and literal matching of glob metacharacters. |
|
|
| `test_hip_runtime_ais.py` | `hip_runtime_supports_ais()` — symbol probing via a fake HIP handle, old-runtime and load-failure paths, and the three-part symbol success check. |
|
|
| `test_amdgpu.py` | `amdgpu_supports_ais()` — symbol present/absent and the not-found/permission-denied branches. |
|
|
| `test_main.py` | `main()` — the exit-code contract and `-q`/`-v` output behavior. |
|
|
|
|
## Notes
|
|
|
|
- The `ais_check` fixture imports the script as a module, which means
|
|
`if __name__ == "__main__"` does not run `main()` at import time.
|
|
- Tests patch attributes on the loaded module (e.g. `ais_check.os.uname`,
|
|
`ais_check.ctypes.CDLL`), so the real environment never leaks in — capturing
|
|
the original `glob.glob` before patching avoids recursion.
|