From af1c8eb5ed32e87e17c04702b5e2d1b6b2351621 Mon Sep 17 00:00:00 2001 From: Yujong Lee Date: Sat, 5 Sep 2026 11:55:29 -0700 Subject: [PATCH] fix(harness): preserve PDF trailers in benchmark fixtures --- .../strategies/e2e_benchmark/README.md | 2 +- .../strategies/e2e_benchmark/test_benchmark.py | 4 ++-- .../strategies/e2e_benchmark/workloads.py | 9 +++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/tests/rust-python-harness/strategies/e2e_benchmark/README.md b/tests/rust-python-harness/strategies/e2e_benchmark/README.md index f1fe6e96c84..58b17a65579 100644 --- a/tests/rust-python-harness/strategies/e2e_benchmark/README.md +++ b/tests/rust-python-harness/strategies/e2e_benchmark/README.md @@ -45,7 +45,7 @@ The seed cassette stays under `e2e_parity/sdk/ocr/fixtures/data`. The benchmark | response_medium | 32 KiB | 16 | | response_large | 32 KiB | 128 | -Request variants add PDF comment padding before the EOF marker, preserving existing object offsets. The SDK sends base64 plus JSON framing, so wire request sizes exceed the document sizes above. Response variants repeat recorded pages with contiguous indexes and adjusted usage. They exercise realistic response structure, but their page count intentionally varies independently of the input PDF's content +Request variants add PDF comment padding before the final `startxref` marker, preserving existing object offsets and the EOF trailer. The SDK sends base64 plus JSON framing, so wire request sizes exceed the document sizes above. Response variants repeat recorded pages with contiguous indexes and adjusted usage. They exercise realistic response structure, but their page count intentionally varies independently of the input PDF's content ## Measurements diff --git a/tests/rust-python-harness/strategies/e2e_benchmark/test_benchmark.py b/tests/rust-python-harness/strategies/e2e_benchmark/test_benchmark.py index e927847acd9..367cea1c410 100644 --- a/tests/rust-python-harness/strategies/e2e_benchmark/test_benchmark.py +++ b/tests/rust-python-harness/strategies/e2e_benchmark/test_benchmark.py @@ -64,8 +64,8 @@ def test_pdf_padding_preserves_existing_offsets_and_exact_size() -> None: seed: Final = b"%PDF-1.7\n1 0 obj\n<<>>\nendobj\nstartxref\n9\n%%EOF\n" padded: Final = padded_pdf(seed, 1024) assert len(padded) == 1024 - assert padded.startswith(seed.split(b"%%EOF")[0]) - assert padded.endswith(b"\n%%EOF\n") + assert padded.startswith(seed.split(b"startxref")[0]) + assert padded.endswith(b"\nstartxref\n9\n%%EOF\n") @pytest.mark.parametrize("arguments", (("--iterations=0",), ("--warmup=0",), ("--route=chat",), ("--profile=unknown",))) diff --git a/tests/rust-python-harness/strategies/e2e_benchmark/workloads.py b/tests/rust-python-harness/strategies/e2e_benchmark/workloads.py index d78e8699791..8b984b1ce85 100644 --- a/tests/rust-python-harness/strategies/e2e_benchmark/workloads.py +++ b/tests/rust-python-harness/strategies/e2e_benchmark/workloads.py @@ -47,8 +47,13 @@ def profile_sizes(profile: Profile) -> tuple[int, int]: def padded_pdf(document: bytes, size: int) -> bytes: - prefix, marker, suffix = document.rpartition(b"%%EOF") - if not marker or not document.startswith(b"%PDF-") or size < len(document) + 3: + prefix, marker, suffix = document.rpartition(b"startxref") + if ( + not marker + or not suffix.rstrip().endswith(b"%%EOF") + or not document.startswith(b"%PDF-") + or size < len(document) + 3 + ): raise ValueError("expected a PDF seed smaller than the requested document size") return prefix + b"%" + b"x" * (size - len(document) - 2) + b"\n" + marker + suffix