1
0
Fork 0
mirror of https://github.com/anrieff/libcpuid synced 2024-11-30 23:05:48 +00:00
libcpuid/python/tests/sanity_test.py

47 lines
1.5 KiB
Python
Raw Normal View History

"""Sanity tests for the libcpuid package."""
import os
import tempfile
import libcpuid
from libcpuid.info import CPUInfo, SystemInfo
from libcpuid.raw import CPURawData, CPURawDataArray
def test_cpu_name_in_vendor_list():
"""
Checks that the current CPU codename appears
in the list of all CPUs of its vendor.
"""
info = CPUInfo.from_current_cpu()
cpulist = libcpuid.get_cpu_list(info.vendor)
assert info.cpu_codename in cpulist
def test_serialization():
"""
Checks that CPU data serialization and
deserialization does not raise any errors.
"""
with tempfile.TemporaryDirectory() as tmpdirname:
info_file = os.path.join(tmpdirname, "info.txt")
raw = CPURawData.from_current_cpu()
raw.serialize(info_file)
info = CPUInfo.from_raw(raw)
info_from_file = CPUInfo.from_raw(CPURawData.from_file(info_file))
assert info.features == info_from_file.features
def test_array_serialization():
"""
Checks that CPU array data serialization and
deserialization does not raise any errors.
"""
with tempfile.TemporaryDirectory() as tmpdirname:
info_file = os.path.join(tmpdirname, "info.txt")
raw_array = CPURawDataArray.from_all_cpus()
raw_array.serialize(info_file)
info = SystemInfo.from_raw_array(raw_array)
info_from_file = SystemInfo.from_raw_array(CPURawDataArray.from_file(info_file))
assert len(info) == len(info_from_file)
assert info[0].features == info_from_file[0].features