Skip to content

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:

  1. It copies Z390RT.INI → Z390CICS.INI with SEQ_TERM=YES.
  2. That disables normal local terminals and starts one sequential terminal SQ01 with no initial transid.
  3. Z390KCP opens cics\seq\SEQI0001.TXT for input and cics\seq\SEQO0001.TXT for output.
  4. Each TGET from application code reads the next CRLF-terminated record from the current SEQI file.
  5. Each TPUT writes a CRLF-terminated record to SEQO0001.TXT.
  6. On end-of-file, LCL0402 closes the file, increments the number (0001 → 0002 → ...), and opens the next SEQI file.
  7. 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

  1. Records are separated by 0D 0A (CRLF).
  2. Decode bytes as EBCDIC cp037 (not ASCII).
  3. Byte 1 is the AID; see AIDINDEX in cics\LCL0402.MLC.
  4. Cross-check against SEQDOC.TXT and the matching test program (TESTBED*, TESTBMS1, etc.).