diff --git a/src/ukify/test/test_ukify.py b/src/ukify/test/test_ukify.py index f1f3dbfd36..8633015e9f 100755 --- a/src/ukify/test/test_ukify.py +++ b/src/ukify/test/test_ukify.py @@ -21,6 +21,7 @@ import os import pathlib import re import shutil +import struct import subprocess import sys import tempfile @@ -875,6 +876,20 @@ def test_inspect_json_profiles(tmp_path, capsys): shutil.rmtree(tmp_path) +def test_parse_efifw_dir(tmp_path): + fwdir = tmp_path / 'fw0' + fwdir.mkdir() + payload = b'EFIFW0' + (fwdir / 'firmware.bin').write_bytes(payload) + + fwname = fwdir.name.encode() + b'\0' + + comp = (ukify.FWHEADERMAGIC, ukify.EFIFW_HEADER_SIZE, len(fwname), len(payload)) + blob = ukify.parse_efifw_dir(fwdir) + assert comp == struct.unpack_from(' bytes: # terminated by NULL. fwid = b'' + dirname.encode() + b'\0' fwid_len = len(fwid) - magic = bytes.fromhex(FWHEADERMAGIC) efifw_header_blob = b'' - efifw_header_blob += struct.pack('