Repository navigation
equivalence: carddemo-copaus0c -- the CPVS summary screen, DBPAUTP0 GU/GNP browse (Part of #5233) - #5975
Merged
Conversation
…U/GNP browse (Part of #5233) COPAUS0C: 27 scenarios (entry, ENTER, row selection, PF3/5/7/8 paging, three VSAM faults), proven against GnuCOBOL and through the deployed entry point, 20/20 paragraphs and 80/93 branches. Harness: an OCCURS table of scalars (DTO List) is carried in the area's bytes (TableField) and read back as NAME(n); the facade's byte-carrying handleTransaction gets the scenario's own bytes, not none; a map attribute byte of X'40' (DFHBMUNP) is not claimed by either side. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Owner
Author
|
No description provided. |
squid-protocol
marked this pull request as ready for review
October 22, 2026 07:07
squid-protocol
enabled auto-merge (squash)
October 22, 2026 07:11
This was referenced Oct 22, 2026
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.
First slice of #5233: the equivalence case for CardDemo COPAUS0C (the pending-authorization summary screen, transid CPVS), the program that browses DBPAUTP0 with SCHD / GU / GNP, reads three VSAM files and pages with PF7/PF8. Part of #5233; the issue stays open for the siblings below.
Result
det_port.py run carddemo-copaus0c: 370/370 statements translated (no holes), PROVED on 27 scenarios against GnuCOBOL + theggdli.cstub, main run and the deployed entry point (java-facade) both. Covers 20/20 paragraphs, 80/93 branches. Det-sweep ledger written (proof_sweep.py --det-only --cases carddemo-copaus0c).Class table (EXEC DLI / DL/I calls beyond the first slice)
ggdli.c+DetDliHarness changes (
tests/tools/equivalence_cics.py, small; overlaps #5898/#5900, merged origin/main clean)Listproperty (anOCCURStable of scalars: the screen'sAUTH-KEYS,PAUKEY-PREV-PG) is aTableField: carried in the area's bytes (tabled), never as JSON;_DTO_FIELDtolerates the// OCCURS n TIMESsecond comment line;first_occurrencesreads a list back asNAME(n).handleTransaction(transid, commarea, null)calledRegion.transaction(.., bytes), whose default doeswithLinkArea(null), replacing the scenario task's area. The facade now passesscenario.linkAreaView(). Before, a port whose state is only in a table's later occurrences ran blank in the facade and hit the (correctly) refused qualified GNP.map_subfieldsdoes not claim an attribute byte of X'40' (DFHBMUNP): the port's side (java_subfields) cannot tell it from a cleared byte, so neither side compares it. The SEL000n fields were the only ones affected.Not covered (13 branches), each with its reason
WHEN@298(select row 2), l.500WHEN@503, l.536 false, l.207/447/612/668: scenario work, not modelling; left for the COPAUS1C slice.ggdli.cboth stop by name).Gates
pr_gates.py --fast7/7,--ratchets9/9,audit_check.pyall clear,test_equivalence_cics.py+test_det_dli.py+test_evidence.py+ the newtest_carddemo_copaus0c_5233.pypass (plainpytestfrom/tmptoo). No parsing-logic change, so no golden bless. Evidence records show "stale on harness" for the cases that use the CICS harness component, as for any change to this file (the scheduled job re-proves them).Cross-repo
None. CardDemo is a pinned corpus read as-is; no companion PR.
Lessons for agents
Region.transaction(transid, ca, bytes)defaults totransaction(..).withLinkArea(bytes): passingnullclears the area the harness set. The facade must hand itscenario.linkAreaView().List<String>for anOCCURSscalar has no JSON form (Jackson: "Cannot coerce empty String to ArrayList"); keep it out ofscenarios.jsonand carry it inarea.area; blank keys make the GNP find nothing, which both runtimes refuse by name.heavy-run.shneeds/srv/storage_16tb/projects/gitgalaxy/venvs/selfscan/binon PATH (novenvs/selfscaninside a worktree).🤖 Generated with Claude Code