docs(as370): a fixture with a committed listing is an oracle input - #90
Merged
Conversation
IFOX00 prints a fixture's comment cards into the SOURCE STATEMENT column and
numbers every statement from them, so the fixture and its listing are one
artifact. Editing a comment card alone leaves the listing's source column, and
every statement number after it, quietly wrong -- harmless while check.sh does
not compare that listing column by column, and a planted failure for whoever
wires it in, which listref/README.md asks for in three places.
undefsym.s was the case that made this explicit. Its header was written in the
present tense about as370's then-current behaviour ("as370 assembles zero and
says nothing") and read as a lie the day #82 landed. multi_csect.s and
fltoracl.s do not have that problem: they describe the source and say what as370
did in the past tense, which survives the fix.
So: rewrite the header to describe the source and the oracle, and re-capture the
listing in the same change rather than editing one side. Re-captured on mvsdev
as JOB02899 -- against JOB02870 nothing moved but those five cards and IFOX's own
timestamp, so every object-code line, statement number, the ESD, RLD, both
cross-references and the diagnostics page are unchanged.
Both rules are written down in listref/README.md, together with the one that cost
the most: keep every card inside column 71. A sixth comment card was tried on
this fixture while closing #82, reached column 72, and under the continuation
rule of #72 consumed `UNDEFSYM CSECT` outright -- in the fixture for the
diagnostic about symbols lost to exactly that rule.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #87, which left
tests/undefsym.scarrying a header that had become false the moment the fix landed.The rule
IFOX00 prints a fixture's comment cards into the SOURCE STATEMENT column and numbers every statement from them. The fixture and its listing are therefore one artifact — edit a comment card alone and the listing's source column, and every statement number after it, are quietly wrong.
That is harmless today only because
check.shdoes not compareifox-listing-undefsym.txtcolumn by column. It is a planted failure for whoever wires it in, whichlistref/README.mdasks for in three places.Two rules, both now written down in
tests/listref/README.md:The second rule is already followed by the other fixtures without anyone having stated it:
multi_csect.s("as370 looked up the module's first section instead of…") andfltoracl.s(what the deck pins) both survive their own fix.undefsym.swas the only one written in the present tense about as370's then-current behaviour, and it was the only one that went stale.Plus the one that cost the most time: keep every card inside column 71. A sixth comment card was tried on this fixture while closing #82, reached column 72, and under the continuation rule of #72 consumed
UNDEFSYM CSECToutright — in the fixture for the diagnostic about symbols lost to exactly that rule.capture.pywarns per line, but only once the job has run.The re-capture
tests/oracle/capture.pyon mvsdev, JOB02899. One job,--listingonly, so nothing is left on the guest.Against the JOB02870 capture the diff is exactly the five comment cards and IFOX's own timestamp — every object-code line, every statement number, the ESD, the RLD, both cross-references and the diagnostics page (
NUMBER OF STATEMENTS FLAGGED = 4,HIGHEST SEVERITY 8) are byte-identical. So the fixture change is provably cosmetic and the oracle is consistent with it again.Verification
No source change —
as370.cis untouched, and the corpus gate says so (as370 source is unchanged against origin/main).tests/run.sh41 OK / 0 failures,tests/listref/check.shall four references still column-exact.