zCics Sequential Terminal Regression Testing
Note: This document was generated by Cursor AI.
How the Regression Run Works
When you run cics\bat\Z390RT.BAT:
- It copies
Z390RT.INI→Z390CICS.INIwithSEQ_TERM=YES. - That disables normal local terminals and starts one sequential terminal
SQ01with no initial transid. Z390KCPopenscics\seq\SEQI0001.TXTfor input andcics\seq\SEQO0001.TXTfor output.- Each TGET from application code reads the next CRLF-terminated record from the current
SEQIfile. - Each TPUT writes a CRLF-terminated record to
SEQO0001.TXT. - On end-of-file,
LCL0402closes the file, increments the number (0001→0002→ ...), and opens the nextSEQIfile. - When input is exhausted, the terminal requests shutdown.
Key files
| File | Role |
|---|---|
cics\seq\SEQDOC.TXT |
Authoritative human summary of each stream |
cics\seq\SEQInnnn.TXT |
Input byte streams (TGET replay) |
cics\seq\SEQCnnnn.TXT |
Golden output streams for comparison |
cics\seq\SEQO0001.TXT |
Output from a regression run |
cics\bat\Z390CMPG.BAT |
Compares SEQC files against SEQO0001.TXT |
cics\bat\Z390TRC.BAT |
Capture mode (SEQ_TERM=TRACE) |
cics\bat\Z390SEQG.BAT |
Extracts .TRE trace → SEQI/SEQC files |
cics\seq\SEQISHUT.TXT |
Sample shutdown stream (CEMT P SHUT) |
How to Read a SEQI Record
Each record is one simulated 3270 keystroke/data submission:
| Byte(s) | Meaning |
|---|---|
| 1 | AID — 7D=ENTER, 6D=CLEAR, F1-F9=PF1-PF9, 7A-7C=PF10-PF12, C1-C6=PF13-PF18 |
| 2-3 | Cursor position (3270 address, EBCDIC-encoded) |
| 4+ | Field data (EBCDIC text, map fields, CEBR commands, etc.) |
Records are separated by 0D 0A (CRLF). Decode field data as EBCDIC cp037.
Starting a transaction from a blank screen:
ENTER + cursor + 4-char TRANSID
Example from SEQI0001.TXT: 7D 40 C4 C1 C1 C1 C1 → ENTER, then transid AAAA.
CLEAR (6D) ends a transaction and returns to an empty screen.
For CEBR:
ENTER + cursor + "CEBR" + optional argument(s)
e.g. Icebr MYQUEUE1, Icebr x'01cb458f'.
AID reference: AIDINDEX table in cics\LCL0402.MLC.
Transaction Reconstruction by SEQI File
Below, steps are the user-visible actions encoded in each file. Program is from DFHPCT.MLC.
SEQI0001 — Invalid transaction (×2)
| Step | Action |
|---|---|
| 1 | ENTER AAAA |
| 2 | CLEAR |
| 3 | ENTER AAAA again |
| 4 | CLEAR |
Program: none (invalid transid → APCT/NOTFND handling).
SEQI0002 — MMM1 APCT (×2)
| Step | Action |
|---|---|
| 1 | ENTER MMM1 (program BADPROG → APCT) |
| 2 | CLEAR |
| 3 | ENTER MMM1 |
| 4 | CLEAR |
SEQI0003 — MMM2 (×2)
| Step | Action |
|---|---|
| 1 | ENTER MMM2 |
| 2 | CLEAR |
| 3 | ENTER MMM2 |
| 4 | CLEAR |
Program: MMMMCIC2.
SEQI0004 — GUI4 map test
| Step | Action |
|---|---|
| 1 | ENTER GUI4 |
| 2 | ENTER field data abc (map field 1) |
| 3 | ENTER field data def |
| 4 | ENTER END |
| 5 | CLEAR |
Program: TESTGUI4.
SEQI0005 — GUI6 map test (full keyboard exercise)
| Step | Action |
|---|---|
| 1 | ENTER GUI6 |
| 2 | Field 1: aaa (underscore-padded) |
| 3 | Field 2: bbb |
| 4 | Field 3: 123 |
| 5 | PF1 |
| 6 | PF3 → switches to reverse field order |
| 7 | Field 3: 987 |
| 8 | Field 2: qqq |
| 9 | Field 1: xxx |
| 10 | PF3 → end |
| 11 | CLEAR |
Program: TESTGUI6.
SEQI0006 — TST1
| Step | Action |
|---|---|
| 1 | ENTER TST1 |
| 2-4 | Three ENTER presses (in-transaction prompts) |
| 5 | PF3 |
| 6 | CLEAR |
Program: TESTCIC1.
SEQI0007 — BED1 (×2)
| Step | Action |
|---|---|
| Run 1 | ENTER BED1, then 8× ENTER (exercise temp storage screens), CLEAR |
| Run 2 | Same again |
Program: TESTBED1 — tests EXEC CICS WRITEQ TS and related temp-storage APIs.
SEQI0008 — BED2 (×2, PF-key sweep)
| Step | Action |
|---|---|
| Run 1 | ENTER BED2, then PF12 down through PF1, then PF13-PF18, CLEAR |
| Run 2 | ENTER BED2, then PF22-PF18 descending (PF24..PF18 via 4C 4B 4A C9..C7), CLEAR |
Program: TESTBED4.
SEQI0009 — BED3 (×2)
| Step | Action |
|---|---|
| Run 1 | ENTER BED3, PF4, PF5, PF6, CLEAR |
| Run 2 | ENTER BED3, PF6, PF5, PF4, PF6, PF5, PF7, PF6, CLEAR |
Program: TESTBED5.
SEQI0010 — BED4 (×2)
| Step | Action |
|---|---|
| Each run | ENTER BED4, 3× ENTER, CLEAR |
Program: TESTBED6.
SEQI0011 — BED5 (×2)
Same pattern as 0010 but transid BED5.
Program: TESTBED6.
SEQI0012 — BED9 + extensive CEBR exercise
Largest stream (58 input records).
| Phase | Steps |
|---|---|
| BED9 setup | ENTER BED9, CLEAR |
| CEBR entry variants | CEBR (blank), CLEAR |
| CEBR FRED, CLEAR | |
| CEBR MYQUEUE1, CLEAR | |
| CEBR x'01cb458f', CLEAR | |
| Cursor select | ENTER CEBR, cursor-select MYQUEUE1 |
| Navigation | PF11, PF5, PF4, PF8, PF4, PF1, ENTER, PF2×3, PF3 |
| Queue list | PF2×3, cursor-select MYQUEUE2 |
| Scrolling/commands | PF9×3, c 5, l 30, PF7, PF8×2, PF12, PF9, PF10 |
| More commands | PF4, PF5, t, b |
| Queue lookup | q MYQUEUE1, q x'01cb458f' |
| Wrap-up | PF2×3, PF11, PF2×3, PF11, c 36, PF7, PF12, PF2, PURGE, CLEAR |
Programs: TESTBED9 (creates TS queues), then Z390CEBR.
Note: contribute_cics.md documents a current failure (AEIV/U0444) triggered from this stream (GitHub issue 784).
SEQI0013 — IC01
| Step | Action |
|---|---|
| 1 | ENTER IC01 |
| 2 | CLEAR |
Program: TESTIC01 (interval control).
SEQI0014 — VSM1 + CEBR
| Step | Action |
|---|---|
| 1 | ENTER VSM1 |
| 2 | CLEAR |
| 3 | ENTER CEBR VSM1 |
| 4 | PF5 |
| 5 | CLEAR |
Program: TESTVSM1, then CEBR on VSAM file.
SEQI0015 — VSM2 + CEBR
Same as 0014 with VSM2 / CEBR VSM2.
SEQI0016 — VSM3 + CEBR
| Step | Action |
|---|---|
| 1 | ENTER VSM3, CLEAR |
| 2 | ENTER CEBR VSM3 |
| 3 | PF11×2 |
| 4 | PF5 |
| 5 | CLEAR |
SEQI0017 — BMS1 (mapping support)
| Step | Action |
|---|---|
| 1 | ENTER BMS1 |
| 2 | GUI4 phase: fields ABC, DEF, END |
| 3 | GUI6 phase: long map input including test with underscores, test erase eof, numeric/date fields, PF keys |
| 4 | PF1, PF4 (twice), ENTER, PF3 |
| 5 | CLEAR |
Program: TESTBMS1 (BMS SEND/RECEIVE MAP — mirrors GUI4/GUI6 flow).
SEQI0018 — BEC1 (zCobol clone of BED1)
| Step | Action |
|---|---|
| 1 | ENTER BEC1 |
| 2-9 | 8× ENTER (same screen flow as BED1) |
| 10 | CLEAR |
Program: TESTBEC1.
SEQI0019 — BEC2 (zCobol clone of BED2)
PF12→PF1, PF13→PF18 sweep after BEC2, then CLEAR.
Program: TESTBEC4.
SEQI0020 — BEC3 (×2)
Same PF-key patterns as BED3 but transid BEC3.
Program: TESTBEC5.
SEQI0021 — BEC4
Same as BED4 pattern: BEC4, 3× ENTER, CLEAR.
Program: TESTBEC6.
SEQI0022 — BEC5
Same as BED5 pattern.
Program: TESTBEC6.
SEQI0023 — BEC9
| Step | Action |
|---|---|
| 1 | ENTER BEC9 |
| 2 | CLEAR |
Program: TESTBEC9.
SEQI0024 — ICC1
| Step | Action |
|---|---|
| 1 | ENTER ICC1 |
| 2 | CLEAR |
Program: TESTICC1 (zCobol IC01).
SEQI0025 — VSC1 + CEBR
Same pattern as 0014: VSC1, CLEAR, CEBR VSC1, PF5, CLEAR.
Program: TESTVSC1.
SEQI0026 — VSC2 + CEBR
Same with VSC2.
SEQI0027 — VSC3 + CEBR
Same as 0016: VSC3, CEBR, PF11×2, PF5, CLEAR.
SEQI0028 — BMC1 (zCobol clone of BMS1)
Identical step sequence to SEQI0017 but transid BMC1.
Program: TESTBMC1.
SEQI0029 — LOGO + ASGN
| Step | Action |
|---|---|
| 1 | ENTER LOGO (map consistency check) |
| 2 | CLEAR |
| 3 | ENTER ASGN (ASSIGN testing) |
| 4 | CLEAR |
Programs: Z390LOGO, TESTASGN.
SEQI0030 — SETF (×2)
| Step | Action |
|---|---|
| 1 | ENTER SETF, CLEAR |
| 2 | ENTER SETF, CLEAR |
Program: TESTSETF.
SEQI0031 — CHN1 + CEBR
| Step | Action |
|---|---|
| 1 | ENTER CHN1, CLEAR |
| 2 | ENTER CEBR CHN1 |
| 3 | PF11 × 6 |
| 4 | CLEAR |
Program: TESTCHN1, then CEBR.
SEQI0032 — Shutdown
| Step | Action |
|---|---|
| 1 | ENTER .CEMT P SHUT (master-terminal CEMT shutdown command) |
| 2 | EOF marker (0x1A) |
Same content as SEQISHUT.TXT. Used to terminate the regression run cleanly.
SEQC Comparator Coverage
Only these streams currently have golden SEQC files for Z390CMPG in wrk_rt:
0001–0011, 0017–0024, 0028
Streams 0012–0016, 0025–0027, 0029–0031 have input (SEQI) but no SEQC golden output.
Practical Decoding Tips
- Records are separated by
0D 0A(CRLF). - Decode bytes as EBCDIC cp037 (not ASCII).
- Byte 1 is the AID; see
AIDINDEXincics\LCL0402.MLC. - Cross-check against
SEQDOC.TXTand the matching test program (TESTBED*,TESTBMS1, etc.).