cddb07a176
docs / deploy (push) Has been cancelled
docs / changes (push) Has been cancelled
docs / check-and-build (push) Has been cancelled
build container image / cpu (push) Has been cancelled
build container image / cuda (push) Has been cancelled
build container image / rocm (push) Has been cancelled
frontend checks / frontend-checks (push) Has been cancelled
frontend tests / frontend-tests (push) Has been cancelled
lfs checks / lfs-check (push) Has been cancelled
python checks / python-checks (push) Has been cancelled
python tests / py3.12: macos-default (push) Has been cancelled
python tests / py3.11: windows-cpu (push) Has been cancelled
python tests / py3.12: windows-cpu (push) Has been cancelled
python tests / py3.11: linux-cpu (push) Has been cancelled
typegen checks / typegen-checks (push) Has been cancelled
uv lock checks / uv-lock-checks (push) Has been cancelled
openapi checks / openapi-checks (push) Has been cancelled
python tests / py3.11: macos-default (push) Has been cancelled
python tests / py3.12: linux-cpu (push) Has been cancelled
40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
import pytest
|
|
|
|
from invokeai.backend.model_manager.load.memory_snapshot import MemorySnapshot, get_pretty_snapshot_diff
|
|
from invokeai.backend.model_manager.util.libc_util import Struct_mallinfo2
|
|
|
|
|
|
def test_memory_snapshot_capture():
|
|
"""Smoke test of MemorySnapshot.capture()."""
|
|
snapshot = MemorySnapshot.capture()
|
|
|
|
# We just check process_ram, because it is the only field that should be supported on all platforms.
|
|
assert snapshot.process_ram > 0
|
|
|
|
|
|
snapshots = [
|
|
MemorySnapshot(process_ram=1, vram=2, malloc_info=Struct_mallinfo2()),
|
|
MemorySnapshot(process_ram=1, vram=2, malloc_info=None),
|
|
MemorySnapshot(process_ram=1, vram=None, malloc_info=Struct_mallinfo2()),
|
|
MemorySnapshot(process_ram=1, vram=None, malloc_info=None),
|
|
None,
|
|
]
|
|
|
|
|
|
@pytest.mark.parametrize("snapshot_1", snapshots)
|
|
@pytest.mark.parametrize("snapshot_2", snapshots)
|
|
def test_get_pretty_snapshot_diff(snapshot_1, snapshot_2):
|
|
"""Test that get_pretty_snapshot_diff() works with various combinations of missing MemorySnapshot fields."""
|
|
msg = get_pretty_snapshot_diff(snapshot_1, snapshot_2)
|
|
print(msg)
|
|
|
|
expected_lines = 0
|
|
if snapshot_1 is not None and snapshot_2 is not None:
|
|
expected_lines += 1
|
|
if snapshot_1.vram is not None and snapshot_2.vram is not None:
|
|
expected_lines += 1
|
|
if snapshot_1.malloc_info is not None and snapshot_2.malloc_info is not None:
|
|
expected_lines += 5
|
|
|
|
assert len(msg.splitlines()) == expected_lines
|