Skip to content

fix(locallibrary): five Hegel property failures on main - #358

Merged
botandbang merged 6 commits into
mainfrom
bnb/property-bounds
Nov 1, 2026
Merged

botandbang merged 6 commits into
mainfrom
bnb/property-bounds

Conversation

@botandbang

Copy link
Copy Markdown
Contributor

Five property tests on main fail from cases Hegel found after several PRs landed together.

  • a_filter_matches_what_the_rules_match: collection export fills an intelligent playlist with SmartList::matches, which reads a range in either order, but wrote the filter beside it as given, and a filter's date range from a later day to an earlier one holds nothing. The filter is now written low end first. Provisional: nothing records how rekordbox itself reads a reversed range.
  • files_are_analysed_for_what_is_asked: its model predates fix: bound what crafted audio files can make decoding and tagging do #305's 768 kHz cap (e433bec). It now expects that refusal for rates over the cap, so the cap stays tested.
  • identifying_again_from_the_cache_says_what_the_first_time_did: two equal seeds make two tracks of the same audio, which are rightly one play. The seeds are drawn distinct.
  • a_write_that_cant_go_stops_before_the_server: feat(locallibrary): unpublish deleted sets and their recordings, and MusicBrainz IDs without the drive #311 grants bare repo:<nsid> scopes for sets and recordings, which allow writes; the test's model only counted repo:<nsid>?.... It now matches whole scope tokens, and the failing case is pinned as an explicit case.
  • serato::header_sizes_are_tagged_or_refused (loclib-interop): a WAV or AIFF whose header counts bytes past its last chunk (a stray byte, or junk lofty stops reading at) was tagged when the file was exactly as long as the header says, since where the chunks end was only checked for a longer file. lofty then writes the tag where it never finds it again. The chunks are now always walked, as lofty walks them, and such a file is refused. Both failing inputs are pinned as explicit cases, and changes/property-bounds.md says so.

Each saved case fails with its fix reverted and passes with it. locallibrary passes 2205 of 2205 loclib-analysis and loclib-interop (57 of 57) their suites, with fmt and clippy (host and windows-gnu).

@botandbang
botandbang requested a review from bnb as a code owner November 1, 2026 17:57
@github-actions github-actions Bot added documentation Improvements or additions to documentation locallibrary locallibrary and the loclib-* crates locallibrary: core The core crate, the data model and rekordbox's formats locallibrary: analysis Tempo, key and loudness from tracks' audio locallibrary: mixes Finding the tracks a recorded mix plays, and mix reports locallibrary: interop Libraries for Traktor, Serato and Engine DJ locallibrary: publishing The Atmosphere account, and the sets and profile published to it tests Tests, fixtures and test harnesses labels Nov 1, 2026
@botandbang
botandbang enabled auto-merge November 1, 2026 17:58
@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

Rust coverage

From run 46. Both are held to the thresholds in .cargo/config.toml.

Tests Lines Functions Regions
All 97.39% (84513/86774) 96.54% (13525/14010) 95.67% (186090/194511)
Hegel property tests alone 95.42% (82803/86774) 94.2% (13197/14010) 93.51% (181888/194511)

@botandbang
botandbang added this pull request to the merge queue Nov 1, 2026
Merged via the queue into main with commit dcf37aa Nov 1, 2026
30 checks passed
@botandbang
botandbang deleted the bnb/property-bounds branch November 1, 2026 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation locallibrary: analysis Tempo, key and loudness from tracks' audio locallibrary: core The core crate, the data model and rekordbox's formats locallibrary: interop Libraries for Traktor, Serato and Engine DJ locallibrary: mixes Finding the tracks a recorded mix plays, and mix reports locallibrary: publishing The Atmosphere account, and the sets and profile published to it locallibrary locallibrary and the loclib-* crates tests Tests, fixtures and test harnesses

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants