Skip to content

equivalence: dli_faults scenarios in carddemo-copaus1c and copaus0c (Part of #5233) - #6035

Merged
squid-protocol merged 2 commits into
mainfrom
churn/5233-20261022T1715Z
Oct 22, 2026
Merged

squid-protocol merged 2 commits into
mainfrom
churn/5233-20261022T1715Z

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #5233 (slice 4: DL/I status faults under CICS in the COPAU* cases).

What

dli_faults scenarios ({op, nth, status}, read by ggdli.c and DetDli) in the two burned-estate CICS cases, proven GnuCOBOL vs the det port (deployed entry point too), coverage ledger refreshed from a proof_sweep.py --det-only run.

Case Scenarios Branches Faults planned
carddemo-copaus1c 25 -> 32 39/48 -> 44/48 GU AC/GB; qualified GNP AC/GB; PF8 GNP AC/GB; REPL AC (ROLL-BACK, the Db2 INSERT undone)
carddemo-copaus0c 27 -> 33 80/93 -> 84/93 GU AC; first GNP AC; mid-page GNP GB; PF8 reposition GNP AC and GE; GNP after it AC

Class table (DL/I status arms in the CICS programs): GU / GNP / REPL arms of COPAUS0C and COPAUS1C handled here; SCHD TC retry not handled (below).

Not done: SCHD TC retry

Planned SCHD TC makes the program issue TERM, which both stubs refuse (a TERM with no PSB scheduled, ggdli.c:827, DetDli.java:400). Modelling TC-then-TERM changes the runtime and re-proves every IMS port: own slice. It accounts for the 2 + 2 SCHD branches still uncovered (COPAUS1C l.580/590, COPAUS0C l.1007/1017).

Notes

  • The GE scenario in COPAUS0C is the harness's planned status, not a real qualified miss (still refused, I3).
  • det_port.py run crashes with KeyError in proof_order when none of the requested cases has a recorded duration (new cases): I ran them alongside a recorded case.
  • Files: 2 case.json, 2 tests, det_port_design.md (5 hand-written) + 2 regenerated coverage JSONs.

Cross-repo: none.

Gates

pr_gates --fast 7/7, --ratchets 9/9, test_evidence / test_source_reads / test_proof_reach pass, the touched tests + test_equivalence_cics_dli.py pass. Near-overlap: PRs #5898 / #5900 touch equivalence_cics.py (not touched here); if either merges first the coverage ledger's harness hash goes stale and needs det_coverage_ledger.py update.

Lessons for agents

  • tests/tools/det_port.py run of only-new cases fails with KeyError in proof_order (proof_sweep.case_weights returns {} when no requested case has a recorded duration): include one recorded case (e.g. carddemo-posttran-generated) and git checkout its ledger file after det_coverage_ledger.py update.

🤖 Generated with Claude Code

…coverage refreshed (Part of #5233)

COPAUS1C: 7 scenarios (GU AC/GB, qualified and unqualified GNP AC/GB, REPL AC -> ROLL-BACK), 44/48 branches.
COPAUS0C: 6 scenarios (GU AC, GNP AC/GB, PF8 reposition AC/GE, the GNP after it AC), 84/93 branches.
SCHD TC stays unplanned: the program's TERM after it is refused (no PSB scheduled in the model).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 22, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol marked this pull request as ready for review October 22, 2026 17:30
@squid-protocol
squid-protocol enabled auto-merge (squash) October 22, 2026 17:30
@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #6035 @ 3c151c5: 1 failed check(s)

== db2 1/1 (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/39823284512/job/119980109768
repro: tests/tools/box/heavy-run.sh python tests/tools/proof_sweep.py --det-only --db2-only --cases --work /tmp/gitgalaxy-scratch/ci-digest/sweep
errors:
fail-on-cache-miss: false
2026-10-22 17:35:56,007 [WARNING] [GalaxyScope] ┃ (--fail-on-malware cannot fire). Rule-based threats still run. ┃
Traceback (most recent call last):
KeyError: 'carddemo-copaus1c'
FileNotFoundError: [Errno 2] No such file or directory: '/home/runner/work/_temp/sweep/det/summary.json'
##[error]Process completed with exit code 1.
log tail:
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
GITGALAXY_ORACLE_PREBUILT: 1
DB2_JOBS: 1
GITGALAXY_DB2_POOL: 1
GITGALAXY_DB2_READY_DIR: /home/runner/work/_temp/db2-ready.d
JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
JAVA_HOME_17_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
MAVEN_ARGS: -ntp
##[endgroup]
Multiple search paths detected. Calculating the least common ancestor of all paths
The least common ancestor is /home/runner/work/_temp. This will be the root directory of the artifact
With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: det-sweep-db2-logs-0.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 190
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is f73562d49f7c583f6ccc31bde576ff4298f24d86b42584db5e7142feab106da9
Finalizing artifact upload
Artifact det-sweep-db2-logs-0 successfully finalized. Artifact ID 12446575131
Artifact det-sweep-db2-logs-0 has been successfully uploaded! Final size is 190 bytes. Artifact ID is 12446575131
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/39823284512/artifacts/12446575131
Post job cleanup.
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/67153dbc-575c-41f1-af79-bfa0f0fd8dc4' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/gitgalaxy/gitgalaxy/gitgalaxy
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf.gitdir:
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Cleaning up orphan processes

@squid-protocol squid-protocol added the shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md label Oct 22, 2026
@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md labels Oct 22, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol squid-protocol removed the shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md label Oct 22, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol merged commit 04b3636 into main Oct 22, 2026
31 checks passed
@squid-protocol
squid-protocol deleted the churn/5233-20261022T1715Z branch October 22, 2026 18:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant