mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-20 03:35:35 -04:00
56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
"""CPU architecture normalization for HW Fit hardware detection."""
|
|
|
|
import pytest
|
|
|
|
from services.hwfit import hardware
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def _clear_hwfit_cache(monkeypatch):
|
|
hardware._cache_by_host.clear()
|
|
monkeypatch.setattr(hardware, "_remote_host", None)
|
|
monkeypatch.setattr(hardware, "_remote_platform", None)
|
|
monkeypatch.setattr(hardware, "_is_containerized", lambda: False)
|
|
yield
|
|
hardware._cache_by_host.clear()
|
|
|
|
|
|
def _stub_common_probe(monkeypatch, machine):
|
|
monkeypatch.setattr(hardware.platform, "machine", lambda: machine)
|
|
monkeypatch.setattr(hardware, "_get_ram_gb", lambda: 64.0)
|
|
monkeypatch.setattr(hardware, "_get_available_ram_gb", lambda: 48.0)
|
|
monkeypatch.setattr(hardware, "_get_cpu_count", lambda: 16)
|
|
monkeypatch.setattr(hardware, "_get_cpu_name", lambda: "Test CPU")
|
|
monkeypatch.setattr(hardware, "_detect_apple_silicon", lambda: None)
|
|
monkeypatch.setattr(hardware, "_detect_amd", lambda: None)
|
|
|
|
|
|
def test_detect_system_reports_cpu_arch_for_gpu_backends(monkeypatch):
|
|
"""GPU-backed systems still need CPU architecture for cpu_only estimates."""
|
|
_stub_common_probe(monkeypatch, "aarch64")
|
|
monkeypatch.setattr(hardware, "_detect_nvidia", lambda: {
|
|
"gpu_name": "NVIDIA GB10",
|
|
"gpu_vram_gb": 64.0,
|
|
"gpu_count": 1,
|
|
"gpus": [],
|
|
"gpu_groups": [],
|
|
"homogeneous": True,
|
|
"backend": "cuda",
|
|
})
|
|
|
|
system = hardware.detect_system(fresh=True)
|
|
|
|
assert system["backend"] == "cuda"
|
|
assert system["cpu_arch"] == "arm64"
|
|
|
|
|
|
def test_detect_system_keeps_32_bit_arm_on_conservative_cpu_backend(monkeypatch):
|
|
"""Plain arm/armv7 is not the same as the ARM64-class cpu_arm fallback."""
|
|
_stub_common_probe(monkeypatch, "armv7l")
|
|
monkeypatch.setattr(hardware, "_detect_nvidia", lambda: None)
|
|
|
|
system = hardware.detect_system(fresh=True)
|
|
|
|
assert system["cpu_arch"] == "arm"
|
|
assert system["backend"] == "cpu_x86"
|