Conversation
…e synthetic values (#104) tests/recorded/ held its procedure and no recording. This is the first: sixteen responses from a 12.0.0 server run for the purpose, one file per capability of 0272 that has a request to make, with a library of three generated black videos so that the item routes answer with items. RECORDED.md beside them says what each file shows, what has no request to record and why, and what was scrubbed in the order tests/recorded/README.md gives. WHAT IS IN A FILE IS AN ENVELOPE rather than the bare body: capability, method, path, status, the three headers kept, the request body where there was one, and the body as parsed JSON or as a byte count where it was not JSON or was empty. A comparison of shape, which is what #104 builds over these, needs the status and the content type as much as the fields, and a bare body carries neither. THE SIXTEEN SYNTHETIC IDENTIFIERS ARE FEWER THAN THE RECORDING HAD. Twenty-four distinct identifiers came back; the first sixteen by appearance got one each and the last eight, image tags and blur-hash keys, share the sixteenth. RECORDED.md says so, so a reader does not take two equal tags for a fact about the server. The check that judges these files refused nothing: bash .github/fixture-scrub/fixture-scrub.sh check Every rule above was applied to its subject and refused nothing. Contributes to #104. It does not build the comparison in the harness, which is what closes that issue; it gives it the first recording to compare against. Signed-off-by: iderex <30603423+iderex@users.noreply.github.com>
|
The two commands before a push, run in the worktree at this head with a target directory of its own: |
|
Closed in favour of #503, which carries the same recording scrubbed once more. Three things were wrong here, each a reason on its own: the files kept the server's timing header while |
Contributes to #104. It does not close it: the comparison in the harness is what closes that issue, and this gives it the first recording to compare against.
What changed
tests/recorded/jellyfin-12.0.0/holds sixteen responses from a Jellyfin 12.0.0 server, one file per capability of 0272 that has a request to make, andRECORDED.mdbeside them: what each file shows, which capabilities have no request to record and why, and what was scrubbed in the ordertests/recorded/README.mdgives. The server was run for the purpose in a container on this machine, with a library of three two-second black videos generated by its own ffmpeg, so the item routes answer with items rather than empty lists and nothing in the recording was made by a person.Each file is an envelope:
capability,method,path,status, the three headers kept, the request body where the call had one, andbodyas parsed JSON orbody_byteswithbody_content_typewhere the answer was image bytes or empty. A comparison of shape needs the status and the content type as much as the fields.The failure it prevents
A fake server whose every answer was written by hand is measuring the core against a guess, and #104 says what that costs: a field the real server dropped is right in the fixture and wrong on the wire, and the first report comes from somebody running it. A recording from a real server of a supported line is what the comparison reads, and the version it was taken against is written beside it.
Evidence
The scrub check over the tracked subject, run at this head before the commit:
What the scrub did, counted while it ran: twenty-four distinct server-supplied identifiers in the raw recording, sixteen synthetic values available, so the first sixteen by appearance got one each and the last eight, image tags and blur-hash keys, share the sixteenth; the token removed from every envelope; the address
https://server.invalid; the account namea-synthetic-user; the device identity synthetic from the first request. The raw recording never entered any tree.The two commands
CONTRIBUTING.mdnames before a push were run in this worktree and are pasted in the first comment below once they finish, because they take minutes and the check above is the leg this change is about.What this does not cover
The comparison itself, the harness case that reads these files, and a recording from the 10.11 line, which is #88 and needs a server of that line. The eight shared identifiers are a bound a reader of an image tag has to know, and
RECORDED.mdsays it where the files are.Nobody other than me has read this change.