mirror of
https://github.com/anrieff/libcpuid
synced 2024-11-20 23:01:51 +00:00
9915832b21
And include them in the CI together with pylint and formatting checks.
46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
"""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
|