From e4539132380b68e1d8d075d66384165357ececaa Mon Sep 17 00:00:00 2001 From: Mirochill Date: Thu, 21 May 2026 19:39:38 +0200 Subject: [PATCH] Set explicit ctypes layout for packed headers --- hdrh/codec.py | 2 ++ test/test_hdrhistogram.py | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/hdrh/codec.py b/hdrh/codec.py index f9f380b..75a6829 100644 --- a/hdrh/codec.py +++ b/hdrh/codec.py @@ -79,6 +79,7 @@ class HdrHistogramSettingsException(Exception): # External encoding header class ExternalHeader(BigEndianStructure): _pack_ = 1 + _layout_ = "ms" _fields_ = [ ("cookie", c_uint), ("length", c_uint)] @@ -89,6 +90,7 @@ class ExternalHeader(BigEndianStructure): # Header for the zlib compressed part class PayloadHeader(BigEndianStructure): _pack_ = 1 + _layout_ = "ms" _fields_ = [ ("cookie", c_uint), ("payload_len", c_uint), diff --git a/test/test_hdrhistogram.py b/test/test_hdrhistogram.py index 01ceb2f..b1c983e 100644 --- a/test/test_hdrhistogram.py +++ b/test/test_hdrhistogram.py @@ -46,8 +46,10 @@ from hdrh.histogram import HdrHistogram from hdrh.log import HistogramLogWriter from hdrh.log import HistogramLogReader +from hdrh.codec import ExternalHeader from hdrh.codec import HdrPayload from hdrh.codec import HdrCookieException +from hdrh.codec import PayloadHeader from hdrh.dump import dump @@ -64,6 +66,11 @@ def python_bitness(): INTERVAL = 10000 BITNESS = python_bitness() +@pytest.mark.codec +def test_codec_headers_use_explicit_packed_layout(): + assert ExternalHeader._layout_ == "ms" + assert PayloadHeader._layout_ == "ms" + @pytest.mark.basic def test_basic(): histogram = HdrHistogram(LOWEST, HIGHEST, SIGNIFICANT)