Skip to content

test: run the lsm tests in CI and fix the one that rotted - #608

Merged
polaz merged 1 commit into
mainfrom
test/#607-lsm-ci
Oct 18, 2026
Merged

polaz merged 1 commit into
mainfrom
test/#607-lsm-ci

Conversation

@polaz

@polaz polaz commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Summary

  • The CI test job runs the lsm tests, which every test run compiled out until now.
  • expect_window_descriptor_mismatch_fails_before_decode compresses past the default level's largest window, so its frame carries a window descriptor; a one-shot frame of known size is single-segment, as upstream emits it.

Changes

  • .github/workflows/ci.yml: lsm joins the first suite's feature set.
  • zstd/src/decoding/frame_decoder/tests.rs: 3 MiB input instead of 512 KiB, with the reason at the test.

Testing

  • cargo nextest run -p structured-zstd --features hash,std,dict-builder,lsm passes locally; fmt clean.

Closes #607

Summary by CodeRabbit

  • Tests
    • Expanded automated test runs to cover LSM functionality.
    • Updated frame-decoding checks to verify behavior with larger payloads and window-descriptor mismatches. These changes improve coverage of compression and decoding scenarios without changing the public interface or user-facing behavior.

The test job never enabled `lsm`, so its tests were compiled by clippy
and skipped by every test run, and one of them went red unnoticed:
expect_window_descriptor_mismatch_fails_before_decode compressed 512 KiB
in one shot and expected a window descriptor. With the content size
known the window is fitted to the input and the frame is single-segment,
as upstream zstd emits it; the test now compresses past the default
level's largest window (2 MiB), where the descriptor is on the wire.

Closes #607
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-18T22:41:29.914735Z 03b9ee0 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: structured-world/structured-zstd/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 59fc0a83-3d84-42f4-aa4b-57396dbc6759
📥 Commits

Reviewing files that changed from the base of the PR and between 15e4dec and 03b9ee0.

📒 Files selected for processing: 2
  • .github/workflows/ci.yml
  • zstd/src/decoding/frame_decoder/tests.rs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

The CI test command now enables lsm. The window-descriptor mismatch test uses a 3 MiB payload and documents when known-size inputs omit the window descriptor.

Changes: LSM Test Coverage

Layer / File(s) Summary
Window descriptor test and CI coverage
.github/workflows/ci.yml, zstd/src/decoding/frame_decoder/tests.rs
The test fixture increases from 512 KiB to 3 MiB, and its comments describe when known-size inputs omit the window descriptor. The CI test command adds the lsm feature.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Other

Suggested reviewers: myers

Merge Risk: ⚪ Minimal · up to 03b9e

The LSM tests are included across the configured operating systems, and the mismatch test verifies early rejection when a descriptor is present. No actionable merge risk remains.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes both main changes: enabling LSM tests in CI and fixing the affected window-descriptor test.
Linked Issues check Passed Issue [#607] requires the lsm tests to run in CI and requires the window-descriptor test to use input larger than the default 2 MiB window. The CI test command now enables lsm with `hash,std,dic…
Out of Scope Changes check Passed The diff changes only the CI feature set and the payload and comments in expect_window_descriptor_mismatch_fails_before_decode. Both changes directly implement issue [#607]. No unrelated behavior or…
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 …
Full details: Linked Issues check

Explanation

Issue [#607] requires the lsm tests to run in CI and requires the window-descriptor test to use input larger than the default 2 MiB window. The CI test command now enables lsm with hash,std,dict-builder,lsm. The test payload now uses 3 MiB and documents why this produces a window descriptor. The PR reports that cargo nextest run -p structured-zstd --features hash,std,dict-builder,lsm passes.

Full details: Out of Scope Changes check

Explanation

The diff changes only the CI feature set and the payload and comments in expect_window_descriptor_mismatch_fails_before_decode. Both changes directly implement issue [#607]. No unrelated behavior or files are changed.

Full details: Docstring Coverage

Explanation

Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@polaz
polaz enabled auto-merge (squash) October 18, 2026 22:55
@polaz
polaz merged commit 6cada9e into main Oct 18, 2026
30 checks passed
@polaz
polaz deleted the test/#607-lsm-ci branch October 18, 2026 23:05
@sw-release-bot sw-release-bot Bot mentioned this pull request Oct 18, 2026
polaz pushed a commit that referenced this pull request Oct 19, 2026
## 🤖 New release

* `structured-zstd`: 0.2.2 -> 0.2.3

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.2.3](v0.2.2...v0.2.3)
- 2026-10-19

### Added

- *(c-api)* the experimental zstd.h and zdict.h surface
([#602](#602))

### Fixed

- *(decoder)* hand out every decoded byte, not only what left the window
([#605](#605))
- *(encoder)* take table pointers from the table, not a slice
([#598](#598))

### Testing

- *(ci)* prove the drop-in claim against upstream's suites, the
reference CLI and real consumers
([#610](#610))
- run the lsm tests in CI and fix the one that rotted
([#608](#608))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

Co-authored-by: sw-release-bot[bot] <255865126+sw-release-bot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: run the lsm tests in CI and fix the one that rotted

1 participant