Skip to content

oracle: zecs-zecs001 case with two stated ZUIDSTCK TODs; TEST AFTER VARYING and short-record fixes (Part of #5945) - #5979

Merged
squid-protocol merged 7 commits into
mainfrom
churn/5945-20261022T0717Z
Oct 22, 2026
Merged

squid-protocol merged 7 commits into
mainfrom
churn/5945-20261022T0717Z

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #5945 (slice 2 of 3; slice 1 is #5968).

What changed

  • tests/equivalence/le/zuidstck.c: the oracle twin. Reads GGC_ZUIDSTCK_TOD (32 hex digits), writes 16 bytes, exits 98 by name when unstated or malformed. Zuidstck.java gains state(hex) (all scenarios share a JVM).
  • tests/tools/equivalence_cics.py: tod case key (per scenario, both runtimes), ZUIDSTCK in the calls_le regex, and install-symbol templates resolved in files.cfg names.
  • tests/equivalence/zecs-zecs001: POST to the zECS cache with two stated TODs. det_port.py run: 561/561 translated, PROVED; the 6-byte key prefix is the stated TOD's on both runtimes.
  • Register X47 records the evidence level.
  • Two engine defects surfaced and are fixed (plan was wrong to expect none): PERFORM ... WITH TEST AFTER VARYING was emitted test-before (det/gen.py); a WRITE ... LENGTH(n) short of the record was not space-padded in the entity fromRecord (cobol_to_java_repository_forge.py).

Evidence

Translated 561/561 (the COMMAREA DTO hole from the earlier count is not hit by this case); executed-equivalent on 2 scenarios, application/octet-stream path only (a text/* body hits the stub's second-WEB-RECEIVE refusal). Assumption unchanged: the 16 bytes are opaque (X47, ASSUMED).

Cross-repo

None. Overlaps with #5898, #5900, #5975 on equivalence_cics.py: origin/main merged, small edits.

Gates

New + related tests (965 passed), pr_gates --fast 7/7, --ratchets 9/9, audit_check clear, plain pytest from /tmp OK. det_port.py check: the forge change moves generated entity text in 105 ports; all re-proved, 104 PROVED. cbsa-crecust DIFFERS: its oracle refuses CEEDAYS: picture not modelled: a non-blank tail (ceedays.c untouched here), unrelated to this PR. No golden bless needed (no parser change).

Sibling gaps

DSNTIAR / CEEHDLR / CEEHDLU refused by different mechanisms; ZECS002 / ZECSNC are assembler; other text/* media types hit the second-WEB-RECEIVE refusal. More than 5 hand-written files (two engine fixes).

Remaining

Slice 3: cics_census.py survey showing ZECS001 with 0 holes, L1 evidence refresh, tests/fixtures/evidence_report/zecs/report.*. det_sweep_coverage/zecs-zecs001.json not added (scheduled job).

Lessons for agents

  • Any fromRecord change moves ~105 det-port outputs; run det_port.py check early.
  • The stub pads short WRITE LENGTH(n) with spaces, not zeros.
  • files.cfg names with &ID;-style templates need install-symbol substitution on the harness side.

🤖 Generated with Claude Code

squid-protocol and others added 3 commits October 22, 2026 03:21
…Part of #5945)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ARYING and short-record padding fixed (Part of #5945)

The case posts to the zECS cache with two stated ZUIDSTCK TODs; both runtimes agree on every event and on the key
record. Two engine defects surfaced and are fixed: PERFORM WITH TEST AFTER VARYING was emitted test-before, and a
WRITE ... LENGTH(n) short of the record was not padded with spaces in the entity's fromRecord. The harness resolves
install-symbol templates in files.cfg names. Register X47 records the evidence level.

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 08:10
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol enabled auto-merge (squash) October 22, 2026 08:10
@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
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #5979 @ be4861a: 2 failed check(s)

== ground-truth (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/39745794406/job/119717072330
repro: python tests/tools/pr_gates.py --ratchets --only-ratchets ground-truth (when a ground-truth part failed too, run that part's repro)
errors:
##[error]Process completed with exit code 1.
log tail:
##[endgroup]
##[group]Operating System
Ubuntu
24.04.5
LTS
##[endgroup]
##[group]Runner Image
Image: ubuntu-24.04
Version: 20261018.339.1
Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261018.339/images/ubuntu/Ubuntu2404-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261018.339
##[endgroup]
##[group]GITHUB_TOKEN Permissions
Contents: read
Metadata: read
##[endgroup]
Secret source: Actions
Cache mode: write
Prepare workflow directory
Prepare all required actions
Complete job name: ground-truth
##[group]Run echo "ground-truth warm: $WARM, parts: $PARTS (tested-tree skip: $SKIP, plan mode: $MODE, layout: $LAYOUT, warm planned: $PLANNED_WARM)"
echo "ground-truth warm: $WARM, parts: $PARTS (tested-tree skip: $SKIP, plan mode: $MODE, layout: $LAYOUT, warm planned: $PLANNED_WARM)"
# #4935: "skipped" is a pass only when the gate proved this tree green on the PR; otherwise it is a failure
# #5164: ... or when the plan found no ground-truth input in the PR (mode none). An empty mode is not none.
ok() { test "$1" = "success" || { test "$1" = "skipped" && { test "$SKIP" = "true" || test "$MODE" = "none"; }; }; }
# #5543: ... or when the layout needs no warm job (a cache hit on the scans, or the busy layout): the parts then warm for themselves
{ ok "$WARM" || { test "$WARM" = "skipped" && test "$PLANNED_WARM" = "false"; }; } && ok "$PARTS"
shell: /usr/bin/bash -e {0}
env:
WARM: success
PARTS: failure
SKIP:
MODE: full
PLANNED_WARM: true
LAYOUT: calm
##[endgroup]
ground-truth warm: success, parts: failure (tested-tree skip: , plan mode: full, layout: calm, warm planned: true)
##[error]Process completed with exit code 1.
Cleaning up orphan processes

== ground-truth part 4/4 (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/39745794406/job/119715508274
repro: python -m pytest -q tests/cobol_mainframe/test_cobolrt_rules.py::test_the_catalogue_matches_the_runtime
failing tests: tests/cobol_mainframe/test_cobolrt_rules.py::test_the_catalogue_matches_the_runtime
errors:
fail-on-cache-miss: false
E AssertionError: assert ['le/Zuidstck...its plumbing'] == []
tests/cobol_mainframe/test_cobolrt_rules.py:88: AssertionError
FAILED tests/cobol_mainframe/test_cobolrt_rules.py::test_the_catalogue_matches_the_runtime - AssertionError: assert ['le/Zuidstck...its plumbing'] == []
##[error]Process completed with exit code 1.
log tail:
env:
GITGALAXY_LICENSE_KEY: COMMUNITY_FREE_TIER
GITGALAXY_MAINFRAME_CORPORA: /home/runner/work/gitgalaxy/gitgalaxy/.mainframe_corpora
MAINFRAME_ENGINE_KEY: 4854469acdfb46dc248e33448754e336bedd5760d5973545a864e267b1546b02
PYTHONUTF8: 1
pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
##[endgroup]
With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: test-times-ground-truth-part-4.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 61531
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is 27164958831b5619ce72b09b4a0e50465686367926f4d063f207eed295920ef8
Finalizing artifact upload
Artifact test-times-ground-truth-part-4 successfully finalized. Artifact ID 12410944683
Artifact test-times-ground-truth-part-4 has been successfully uploaded! Final size is 61531 bytes. Artifact ID is 12410944683
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/39745794406/artifacts/12410944683
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/7b493319-dffe-4f0c-bff0-4c60452fe3f5' 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

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
…ime catalogue (Part of #5945)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol removed 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

CI shepherd: the head of this PR (f9fcefb) is not the one a maintainer labelled shepherd:merge on (new commits, or never approved), so the label was removed and nothing merges unreviewed code. Re-add the label when the new head is ready (shepherd:reapprove marks this PR until then).

@squid-protocol squid-protocol added shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md labels Oct 22, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol enabled auto-merge (squash) October 22, 2026 08:35
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol squid-protocol added the shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md label Oct 22, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #5979 @ f9fcefb: 2 failed check(s)

== db2 4/6 (failure) -- infra
https://github.com/squid-protocol/gitgalaxy/actions/runs/39748847261/job/119725158674
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
Traceback (most recent call last):
equivalence_db2.Db2ImagePullError: INFRASTRUCTURE (not a code defect): could not pull the pinned Db2 image icr.io/db2_community/db2@sha256:2de8151713c261843868c5c3411b57be6ae79d99d70a5b3022337836776bfda6 after 4 attempts: docker pull -q icr
##[error]the background Db2 start did not bring up GGDB
##[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: 4
GITGALAXY_DB2_POOL: 4
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-3.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 597
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is 8deebb2615a7e008c0bce6843e47e37677edfeb958071050a9dff8800c6844c7
Finalizing artifact upload
Artifact det-sweep-db2-logs-3 successfully finalized. Artifact ID 12412259758
Artifact det-sweep-db2-logs-3 has been successfully uploaded! Final size is 597 bytes. Artifact ID is 12412259758
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/39748847261/artifacts/12412259758
Post job cleanup.
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/1b5ea58b-0f0a-4344-9350-f2f5df4e5c65' 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

== det (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/39748847261/job/119731000692
repro: tests/tools/box/heavy-run.sh python tests/tools/proof_sweep.py --det-only --skip-db2 --cases cbsa-crecust,mortgage-cmort,mortgage-csmrt,mortgage-mpmt --work /tmp/gitgalaxy-scratch/ci-digest/sweep
det cases not proven: cbsa-crecust,mortgage-cmort,mortgage-csmrt,mortgage-mpmt
errors:
det mortgage-csmrt NOT PROVEN proven on 5 scenarios, covering 1/1 paragraphs and 1/2 branches
det mortgage-mpmt NOT PROVEN
det cbsa-crecust NOT PROVEN
det mortgage-cmort NOT PROVEN proven on 16 scenarios, covering 6/6 paragraphs and 18/21 branches
##[error]Process completed with exit code 1.
log tail:
compression-level: 6
overwrite: false
include-hidden-files: false
archive: true
env:
pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
##[endgroup]
With the provided path, there will be 164 files uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: det-sweep-ledger.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 132334
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is 56a756116ef70e41a2dce3dacb49746de90ebcc8734e7636e6ba6737eccd6be9
Finalizing artifact upload
Artifact det-sweep-ledger successfully finalized. Artifact ID 12413960828
Artifact det-sweep-ledger has been successfully uploaded! Final size is 132334 bytes. Artifact ID is 12413960828
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/39748847261/artifacts/12413960828
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/db579f1d-a506-4de9-9a0e-72f70ed0988c' 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
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 removed 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

CI shepherd: the head of this PR (60aed3c) is not the one a maintainer labelled shepherd:merge on (new commits, or never approved), so the label was removed and nothing merges unreviewed code. Re-add the label when the new head is ready (shepherd:reapprove marks this PR until then).

@squid-protocol squid-protocol added shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md and removed shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md labels Oct 22, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

CI shepherd: the head of this PR (60aed3c) is not the one a maintainer labelled shepherd:merge on (new commits, or never approved), so the label was removed and nothing merges unreviewed code. Re-add the label when the new head is ready (shepherd:reapprove marks this PR until then).

@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md labels Oct 22, 2026
… of #5945) (#5984)

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol removed 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

CI shepherd: the head of this PR (6049122) is not the one a maintainer labelled shepherd:merge on (new commits, or never approved), so the label was removed and nothing merges unreviewed code. Re-add the label when the new head is ready (shepherd:reapprove marks this PR until then).

@squid-protocol squid-protocol added the shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md label Oct 22, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md labels Oct 22, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol enabled auto-merge (squash) October 22, 2026 09:19
@squid-protocol squid-protocol added the shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md label Oct 22, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

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 shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant