|
|
|
|
|
""" |
|
|
Test GPU detection functionality |
|
|
""" |
|
|
|
|
|
import pytest |
|
|
import sys |
|
|
from pathlib import Path |
|
|
|
|
|
|
|
|
sys.path.insert(0, str(Path(__file__).parent.parent)) |
|
|
|
|
|
from cli.main import detect_gpus, choose_training_mode |
|
|
|
|
|
|
|
|
def test_gpu_detection(): |
|
|
"""Test GPU detection returns valid results""" |
|
|
gpu_count, gpus = detect_gpus() |
|
|
|
|
|
|
|
|
assert isinstance(gpu_count, int) |
|
|
assert isinstance(gpus, list) |
|
|
assert gpu_count >= 0 |
|
|
assert len(gpus) == gpu_count |
|
|
|
|
|
|
|
|
for gpu in gpus: |
|
|
assert "index" in gpu |
|
|
assert "name" in gpu |
|
|
assert "memory" in gpu |
|
|
assert isinstance(gpu["index"], int) |
|
|
assert isinstance(gpu["name"], str) |
|
|
assert isinstance(gpu["memory"], str) |
|
|
|
|
|
|
|
|
def test_training_mode_selection(): |
|
|
"""Test training mode selection logic""" |
|
|
|
|
|
result = choose_training_mode(0, []) |
|
|
assert result is None |
|
|
|
|
|
|
|
|
single_gpu = [{"index": 0, "name": "Test GPU", "memory": "8GB"}] |
|
|
result = choose_training_mode(1, single_gpu) |
|
|
assert result == "single" |
|
|
|
|
|
|
|
|
multi_gpus = [ |
|
|
{"index": 0, "name": "GPU 0", "memory": "8GB"}, |
|
|
{"index": 1, "name": "GPU 1", "memory": "8GB"} |
|
|
] |
|
|
|
|
|
|
|
|
try: |
|
|
result = choose_training_mode(2, multi_gpus) |
|
|
|
|
|
assert result is not None |
|
|
except Exception: |
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
pytest.main([__file__]) |
|
|
|