Repository navigation
CICS: a fullword GET / QUERY COUNTER over a counter past 31 bits is LENGERR RESP2 1/2/3 (Part of #4770) - #5213
Conversation
…ENGERR RESP2 1/2/3 with the low 32 bits (Part of #4770) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
No description provided. |
| import sys | ||
| from pathlib import Path | ||
|
|
||
| import pytest |
|
No description provided. |
|
PR #5213 @ 312cec7: 2 failed check(s) == ground-truth (failure) -- real == ground-truth part 1/2 (failure) -- real |
…ERR shape (Part of #4770) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
CI shepherd: the head of this PR (304f0fb) is not the one a maintainer labelled |
|
No description provided. |
|
No description provided. |
Part of #4770 (does not close it: cics-crucible case C3 and the pin bump are separate).
What
IBM's GET COUNTER / QUERY COUNTER pages say LENGERR is a warning: for a counter a DCOUNTER command made, past 31 bits, "the named counter server completes the operation", VALUE holds the low-order 32 bits (possibly negative), RESP2 1 (sign-bit overflow), 2 (too large by exactly 1 bit), 3 (by more than 1); "LENGERR can't occur at counter-at-limit". It never applies to DCOUNTER. Before: fullword QUERY refused the value; fullword GET handed it out whole with RESP NORMAL.
Now (both runtimes, both translators): RESP 22 with RESP2 1 / 2 / 3 and the low 32 bits written; a counter at its limit is NORMAL; QUERY COUNTER MINIMUM / MAXIMUM of a counter whose limits exceed a fullword is REFUSED by name. Register X30 records it with the ASSUMED points (numbering by high word, the GET advances the counter, the limits refusal).
Class table
Tests
tests/cics_crucible/test_counter_shared_namespace_4770.py(stub and CicsTask over one scenario list: 2^31-1, 2^31, 2^32-1, 2^32, 2^33, 2^40+1, 2^63+5, at-limit, limits past a fullword, 202 both ways), translator test intest_counter_ops_translate_5039.py; two older assertions that pinned the refusal / old text updated (test_cics_runtimes.py,test_det_translate.py).Gates
pr_gates --fast6/6,--ratchets8/8 (none skipped),det_port.py check: every port's CicsTask.java moves (runtime text), only genapp-lgwebst5 changes otherwise;det_port.py run genapp-lgwebst5PROVED. No golden drift expected (no scanner change; not run).Cross-repo
None required. cics-crucible C2 / C3 cases can now cite this behaviour; no pin bump here.
Lessons for agents
...?topic=summary-get-counter-get-dcounter); read them before deciding a condition is "refused".det_port check; re-prove only the ports whose generated source changed.🤖 Generated with Claude Code